{"version":3,"file":"Transfer.cjs","sources":["../../../../../../packages/components/transfer/src/Transfer.tsx"],"sourcesContent":["import type { TransferLocale } from '@antdv/locale';\nimport type { CSSProperties, SlotsType } from 'vue';\nimport type { RenderEmptyHandler } from '../../config-provider';\nimport type { ListStyle, TransferDirection, TransferItem } from './interface';\nimport { enUS as defaultLocale } from '@antdv/locale';\nimport {\n  classNames,\n  getMergedStatus,\n  getPropsSlot,\n  getStatusClassNames,\n  groupDisabledKeysMap,\n  groupKeysMap,\n} from '@antdv/utils';\nimport {\n  computed,\n  defineComponent,\n  ref,\n  toRaw,\n  watch,\n  watchEffect,\n} from 'vue';\n\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\n\nimport { FormItemInputContext, useInjectFormItemContext } from '../../form/src/FormItemContext';\nimport LocaleReceiver from '../../locale-provider/src/LocaleReceiver';\nimport useStyle from '../style';\nimport List from './list';\nimport Operation from './operation';\nimport { transferProps } from './props';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ATransfer',\n  inheritAttrs: false,\n  props: transferProps(),\n  slots: Object as SlotsType<{\n    leftTitle?: any\n    rightTitle?: any\n    children?: any\n    render?: TransferItem\n    notFoundContent?: any\n    leftSelectAllLabel?: any\n    rightSelectAllLabel?: any\n    footer?: any\n    default?: any\n  }>,\n  // emits: ['update:targetKeys', 'update:selectedKeys', 'change', 'search', 'scroll', 'selectChange'],\n  setup(props, { emit, attrs, slots, expose }) {\n    const { configProvider, prefixCls, direction } = useConfigInject('transfer', props);\n\n    // style\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n\n    const sourceSelectedKeys = ref([]);\n    const targetSelectedKeys = ref([]);\n\n    const formItemContext = useInjectFormItemContext();\n    const formItemInputContext = FormItemInputContext.useInject();\n    const mergedStatus = computed(() => getMergedStatus(formItemInputContext.status, props.status));\n    watch(\n      () => props.selectedKeys,\n      () => {\n        sourceSelectedKeys.value\n          = props.selectedKeys?.filter(key => !props.targetKeys.includes(key)) || [];\n        targetSelectedKeys.value\n          = props.selectedKeys?.filter(key => props.targetKeys.includes(key)) || [];\n      },\n      { immediate: true },\n    );\n\n    const getLocale = (transferLocale: TransferLocale, renderEmpty: RenderEmptyHandler) => {\n      // Keep old locale props still working.\n      const oldLocale: { notFoundContent?: any, searchPlaceholder?: string } = {\n        notFoundContent: renderEmpty('Transfer'),\n      };\n      const notFoundContent = getPropsSlot(slots, props, 'notFoundContent');\n      if (notFoundContent)\n        oldLocale.notFoundContent = notFoundContent;\n\n      if (props.searchPlaceholder !== undefined)\n        oldLocale.searchPlaceholder = props.searchPlaceholder;\n\n      return { ...transferLocale, ...oldLocale, ...props.locale };\n    };\n    const handleSelectChange = (direction: TransferDirection, holder: string[]) => {\n      if (direction === 'left') {\n        if (!props.selectedKeys)\n          sourceSelectedKeys.value = holder;\n\n        emit('update:selectedKeys', [...holder, ...targetSelectedKeys.value]);\n        emit('selectChange', holder, toRaw(targetSelectedKeys.value));\n      } else {\n        if (!props.selectedKeys)\n          targetSelectedKeys.value = holder;\n\n        emit('update:selectedKeys', [...holder, ...sourceSelectedKeys.value]);\n        emit('selectChange', toRaw(sourceSelectedKeys.value), holder);\n      }\n    };\n\n    const moveTo = (direction: TransferDirection) => {\n      const { targetKeys = [], dataSource = [] } = props;\n      const moveKeys = direction === 'right' ? sourceSelectedKeys.value : targetSelectedKeys.value;\n      const dataSourceDisabledKeysMap = groupDisabledKeysMap(dataSource);\n      // filter the disabled options\n      const newMoveKeys = moveKeys.filter(key => !dataSourceDisabledKeysMap.has(key));\n      const newMoveKeysMap = groupKeysMap(newMoveKeys);\n\n      // move items to target box\n      const newTargetKeys\n        = direction === 'right'\n          ? newMoveKeys.concat(targetKeys)\n          : targetKeys.filter(targetKey => !newMoveKeysMap.has(targetKey));\n\n      // empty checked keys\n      const oppositeDirection = direction === 'right' ? 'left' : 'right';\n      direction === 'right' ? (sourceSelectedKeys.value = []) : (targetSelectedKeys.value = []);\n      emit('update:targetKeys', newTargetKeys);\n      handleSelectChange(oppositeDirection, []);\n      emit('change', newTargetKeys, direction, newMoveKeys);\n      formItemContext.onFieldChange();\n    };\n\n    const moveToLeft = () => {\n      moveTo('left');\n    };\n    const moveToRight = () => {\n      moveTo('right');\n    };\n\n    const onItemSelectAll = (direction: TransferDirection, selectedKeys: string[]) => {\n      handleSelectChange(direction, selectedKeys);\n    };\n\n    const onLeftItemSelectAll = (selectedKeys: string[]) => {\n      return onItemSelectAll('left', selectedKeys);\n    };\n\n    const onRightItemSelectAll = (selectedKeys: string[]) => {\n      return onItemSelectAll('right', selectedKeys);\n    };\n    const handleFilter = (direction: TransferDirection, e) => {\n      const value = e.target.value;\n      emit('search', direction, value);\n    };\n\n    const handleLeftFilter = (e: Event) => {\n      handleFilter('left', e);\n    };\n    const handleRightFilter = (e: Event) => {\n      handleFilter('right', e);\n    };\n\n    const handleClear = (direction: TransferDirection) => {\n      emit('search', direction, '');\n    };\n\n    const handleLeftClear = () => {\n      handleClear('left');\n    };\n\n    const handleRightClear = () => {\n      handleClear('right');\n    };\n\n    const onItemSelect = (direction: TransferDirection, selectedKey: string, checked: boolean) => {\n      const holder\n        = direction === 'left' ? [...sourceSelectedKeys.value] : [...targetSelectedKeys.value];\n      const index = holder.indexOf(selectedKey);\n      if (index > -1)\n        holder.splice(index, 1);\n\n      if (checked)\n        holder.push(selectedKey);\n\n      handleSelectChange(direction, holder);\n    };\n\n    const onLeftItemSelect = (selectedKey: string, checked: boolean) => {\n      return onItemSelect('left', selectedKey, checked);\n    };\n    const onRightItemSelect = (selectedKey: string, checked: boolean) => {\n      return onItemSelect('right', selectedKey, checked);\n    };\n    const onRightItemRemove = (targetedKeys: string[]) => {\n      const { targetKeys = [] } = props;\n      const newTargetKeys = targetKeys.filter(key => !targetedKeys.includes(key));\n      emit('update:targetKeys', newTargetKeys);\n      emit('change', newTargetKeys, 'left', [...targetedKeys]);\n    };\n\n    const handleScroll = (direction: TransferDirection, e: UIEvent) => {\n      emit('scroll', direction, e);\n    };\n\n    const handleLeftScroll = (e: UIEvent) => {\n      handleScroll('left', e);\n    };\n    const handleRightScroll = (e: UIEvent) => {\n      handleScroll('right', e);\n    };\n    const handleListStyle = (\n      listStyle: ((style: ListStyle) => CSSProperties) | CSSProperties,\n      direction: TransferDirection,\n    ) => {\n      if (typeof listStyle === 'function')\n        return listStyle({ direction });\n\n      return listStyle;\n    };\n\n    const leftDataSource = ref([]);\n    const rightDataSource = ref([]);\n\n    watchEffect(() => {\n      const { dataSource, rowKey, targetKeys = [] } = props;\n\n      const ld = [];\n      const rd = new Array(targetKeys.length);\n      const targetKeysMap = groupKeysMap(targetKeys);\n      dataSource.forEach((record) => {\n        if (rowKey)\n          record.key = rowKey(record);\n\n        // rightData should be ordered by targetKeys\n        // leftData should be ordered by dataSource\n        if (targetKeysMap.has(record.key))\n          rd[targetKeysMap.get(record.key)!] = record;\n        else\n          ld.push(record);\n      });\n\n      leftDataSource.value = ld;\n      rightDataSource.value = rd;\n    });\n\n    expose({ handleSelectChange });\n\n    const renderTransfer = (transferLocale: TransferLocale) => {\n      const {\n        disabled,\n        operations = [],\n        showSearch,\n        listStyle,\n        operationStyle,\n        filterOption,\n        showSelectAll,\n        selectAllLabels = [],\n        oneWay,\n        pagination,\n        id = formItemContext.id.value,\n      } = props;\n      const { class: className, style } = attrs;\n\n      const children = slots.children;\n      const mergedPagination = !children && pagination;\n\n      const renderEmpty = configProvider.renderEmpty;\n      const locale = getLocale(transferLocale, renderEmpty);\n      const { footer } = slots;\n      const renderItem = props.render || slots.render;\n      const leftActive = targetSelectedKeys.value.length > 0;\n      const rightActive = sourceSelectedKeys.value.length > 0;\n\n      const cls = classNames(\n        prefixCls.value,\n        className,\n        {\n          [`${prefixCls.value}-disabled`]: disabled,\n          [`${prefixCls.value}-customize-list`]: !!children,\n          [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n        },\n        getStatusClassNames(prefixCls.value, mergedStatus.value, formItemInputContext.hasFeedback),\n        hashId.value,\n      );\n      const titles = props.titles;\n      const leftTitle\n        = (titles && titles[0]) ?? slots.leftTitle?.() ?? (locale.titles || ['', ''])[0];\n      const rightTitle\n        = (titles && titles[1]) ?? slots.rightTitle?.() ?? (locale.titles || ['', ''])[1];\n      return (\n        <div {...attrs} class={cls} style={style as CSSProperties} id={id}>\n          <List\n            key=\"leftList\"\n            prefixCls={`${prefixCls.value}-list`}\n            dataSource={leftDataSource.value}\n            filterOption={filterOption}\n            style={handleListStyle(listStyle, 'left')}\n            checkedKeys={sourceSelectedKeys.value}\n            handleFilter={handleLeftFilter}\n            handleClear={handleLeftClear}\n            onItemSelect={onLeftItemSelect}\n            onItemSelectAll={onLeftItemSelectAll}\n            renderItem={renderItem}\n            showSearch={showSearch}\n            renderList={children}\n            onScroll={handleLeftScroll}\n            disabled={disabled}\n            direction={direction.value === 'rtl' ? 'right' : 'left'}\n            showSelectAll={showSelectAll}\n            selectAllLabel={selectAllLabels[0] || slots.leftSelectAllLabel}\n            pagination={mergedPagination}\n            {...locale}\n            v-slots={{ titleText: () => leftTitle, footer }}\n          />\n          <Operation\n            key=\"operation\"\n            class={`${prefixCls.value}-operation`}\n            rightActive={rightActive}\n            rightArrowText={operations[0]}\n            moveToRight={moveToRight}\n            leftActive={leftActive}\n            leftArrowText={operations[1]}\n            moveToLeft={moveToLeft}\n            style={operationStyle}\n            disabled={disabled}\n            direction={direction.value}\n            oneWay={oneWay}\n          />\n          <List\n            key=\"rightList\"\n            prefixCls={`${prefixCls.value}-list`}\n            dataSource={rightDataSource.value}\n            filterOption={filterOption}\n            style={handleListStyle(listStyle, 'right')}\n            checkedKeys={targetSelectedKeys.value}\n            handleFilter={handleRightFilter}\n            handleClear={handleRightClear}\n            onItemSelect={onRightItemSelect}\n            onItemSelectAll={onRightItemSelectAll}\n            onItemRemove={onRightItemRemove}\n            renderItem={renderItem}\n            showSearch={showSearch}\n            renderList={children}\n            onScroll={handleRightScroll}\n            disabled={disabled}\n            direction={direction.value === 'rtl' ? 'left' : 'right'}\n            showSelectAll={showSelectAll}\n            selectAllLabel={selectAllLabels[1] || slots.rightSelectAllLabel}\n            showRemove={oneWay}\n            pagination={mergedPagination}\n            {...locale}\n            v-slots={{ titleText: () => rightTitle, footer }}\n          />\n        </div>\n      );\n    };\n    return () =>\n      wrapSSR(\n        <LocaleReceiver\n          componentName=\"Transfer\"\n          defaultLocale={defaultLocale.Transfer}\n          children={renderTransfer}\n        />,\n      );\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","props","transferProps","slots","Object","setup","emit","attrs","expose","configProvider","prefixCls","direction","useConfigInject","wrapSSR","hashId","useStyle","sourceSelectedKeys","ref","targetSelectedKeys","formItemContext","useInjectFormItemContext","formItemInputContext","FormItemInputContext","useInject","mergedStatus","computed","getMergedStatus","status","watch","selectedKeys","value","filter","key","targetKeys","includes","immediate","getLocale","transferLocale","renderEmpty","oldLocale","notFoundContent","getPropsSlot","searchPlaceholder","undefined","locale","handleSelectChange","holder","toRaw","moveTo","dataSource","moveKeys","dataSourceDisabledKeysMap","groupDisabledKeysMap","newMoveKeys","has","newMoveKeysMap","groupKeysMap","newTargetKeys","concat","targetKey","oppositeDirection","onFieldChange","moveToLeft","moveToRight","onItemSelectAll","onLeftItemSelectAll","onRightItemSelectAll","handleFilter","e","target","handleLeftFilter","handleRightFilter","handleClear","handleLeftClear","handleRightClear","onItemSelect","selectedKey","checked","index","indexOf","splice","push","onLeftItemSelect","onRightItemSelect","onRightItemRemove","targetedKeys","handleScroll","handleLeftScroll","handleRightScroll","handleListStyle","listStyle","leftDataSource","rightDataSource","watchEffect","rowKey","ld","rd","Array","length","targetKeysMap","forEach","record","get","renderTransfer","disabled","operations","showSearch","operationStyle","filterOption","showSelectAll","selectAllLabels","oneWay","pagination","id","class","className","style","children","mergedPagination","footer","renderItem","render","leftActive","rightActive","cls","classNames","getStatusClassNames","hasFeedback","titles","leftTitle","rightTitle","_createVNode","List","leftSelectAllLabel","titleText","Operation","rightSelectAllLabel","LocaleReceiver","defaultLocale","Transfer"],"mappings":";;;;;;;;;;;;;;;;;;;;AA+BA,gCAA+BA,mBAAA,CAAA;AAAA,EAC7BC,YAAc,EAAA;AAAA,IAAEC,IAAM,EAAA,CAAA;AAAA,GAAE;AAAA,EACxBC,IAAM,EAAA,WAAA;AAAA,EACNC,YAAc,EAAA,KAAA;AAAA,EACdC,OAAOC,mBAAc,EAAA;AAAA,EACrBC,KAAOC,EAAAA,MAAAA;AAAAA;AAAAA,EAYPC,MAAMJ,KAAO,EAAA;AAAA,IAAEK,IAAAA;AAAAA,IAAMC,KAAAA;AAAAA,IAAOJ,KAAAA;AAAAA,IAAOK,MAAAA;AAAAA,GAAU,EAAA;AAC3C,IAAM,MAAA;AAAA,MAAEC,cAAAA;AAAAA,MAAgBC,SAAAA;AAAAA,MAAWC,SAAAA;AAAAA,KAAU,GAAIC,uBAAgB,CAAA,UAAA,EAAYX,KAAK,CAAA,CAAA;AAGlF,IAAA,MAAM,CAACY,OAAAA,EAASC,MAAM,CAAA,GAAIC,cAASL,SAAS,CAAA,CAAA;AAE5C,IAAMM,MAAAA,kBAAAA,GAAqBC,OAAI,CAAA,EAAE,CAAA,CAAA;AACjC,IAAMC,MAAAA,kBAAAA,GAAqBD,OAAI,CAAA,EAAE,CAAA,CAAA;AAEjC,IAAA,MAAME,kBAAkBC,wCAAyB,EAAA,CAAA;AACjD,IAAMC,MAAAA,oBAAAA,GAAuBC,qCAAqBC,SAAU,EAAA,CAAA;AAC5D,IAAMC,MAAAA,YAAAA,GAAeC,aAAS,MAAMC,2BAAAA,CAAgBL,qBAAqBM,MAAQ1B,EAAAA,KAAAA,CAAM0B,MAAM,CAAC,CAAA,CAAA;AAC9FC,IACEA,SAAA,CAAA,MAAM3B,KAAM4B,CAAAA,YAAAA,EACZ,MAAM;;AACJb,MAAAA,kBAAAA,CAAmBc,KACf7B,GAAAA,CAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAM4B,YAAN5B,KAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAoB8B,MAAOC,CAAAA,CAAAA,GAAAA,KAAO,CAAC/B,KAAAA,CAAMgC,UAAWC,CAAAA,QAAAA,CAASF,GAAG,CAAA,CAAA,KAAM,EAAE,CAAA;AAC5Ed,MAAmBY,kBAAAA,CAAAA,KAAAA,GAAAA,CAAAA,CACf7B,EAAM4B,GAAAA,KAAAA,CAAAA,YAAAA,KAAN5B,IAAoB8B,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,MAAAA,CAAOC,CAAO/B,GAAAA,KAAAA,KAAAA,CAAMgC,UAAWC,CAAAA,QAAAA,CAASF,GAAG,CAAA,CAAA,KAAM,EAAE,CAAA;AAAA,KAE7E,EAAA;AAAA,MAAEG,SAAW,EAAA,IAAA;AAAA,KACf,CAAA,CAAA;AAEA,IAAMC,MAAAA,SAAAA,GAAYA,CAACC,cAAAA,EAAgCC,WAAoC,KAAA;AAErF,MAAA,MAAMC,SAAmE,GAAA;AAAA,QACvEC,eAAAA,EAAiBF,YAAY,UAAU,CAAA;AAAA,OACzC,CAAA;AACA,MAAA,MAAME,eAAkBC,GAAAA,oBAAAA,CAAatC,KAAOF,EAAAA,KAAAA,EAAO,iBAAiB,CAAA,CAAA;AACpE,MAAIuC,IAAAA,eAAAA;AACFD,QAAAA,SAAAA,CAAUC,eAAkBA,GAAAA,eAAAA,CAAAA;AAE9B,MAAA,IAAIvC,MAAMyC,iBAAsBC,KAAAA,KAAAA,CAAAA;AAC9BJ,QAAAA,SAAAA,CAAUG,oBAAoBzC,KAAMyC,CAAAA,iBAAAA,CAAAA;AAEtC,MAAO,OAAA;AAAA,QAAE,GAAGL,cAAAA;AAAAA,QAAgB,GAAGE,SAAAA;AAAAA,QAAW,GAAGtC,KAAM2C,CAAAA,MAAAA;AAAAA,OAAO,CAAA;AAAA,KAC5D,CAAA;AACA,IAAMC,MAAAA,kBAAAA,GAAqBA,CAAClC,UAAAA,EAA8BmC,MAAqB,KAAA;AAC7E,MAAA,IAAInC,eAAc,MAAQ,EAAA;AACxB,QAAA,IAAI,CAACV,KAAM4B,CAAAA,YAAAA;AACTb,UAAAA,kBAAAA,CAAmBc,KAAQgB,GAAAA,MAAAA,CAAAA;AAE7BxC,QAAAA,IAAAA,CAAK,uBAAuB,CAAC,GAAGwC,QAAQ,GAAG5B,kBAAAA,CAAmBY,KAAK,CAAC,CAAA,CAAA;AACpExB,QAAAA,IAAAA,CAAK,cAAgBwC,EAAAA,MAAAA,EAAQC,SAAM7B,CAAAA,kBAAAA,CAAmBY,KAAK,CAAC,CAAA,CAAA;AAAA,OACvD,MAAA;AACL,QAAA,IAAI,CAAC7B,KAAM4B,CAAAA,YAAAA;AACTX,UAAAA,kBAAAA,CAAmBY,KAAQgB,GAAAA,MAAAA,CAAAA;AAE7BxC,QAAAA,IAAAA,CAAK,uBAAuB,CAAC,GAAGwC,QAAQ,GAAG9B,kBAAAA,CAAmBc,KAAK,CAAC,CAAA,CAAA;AACpExB,QAAAA,IAAAA,CAAK,cAAgByC,EAAAA,SAAAA,CAAM/B,kBAAmBc,CAAAA,KAAK,GAAGgB,MAAM,CAAA,CAAA;AAAA,OAC9D;AAAA,KACF,CAAA;AAEA,IAAME,MAAAA,MAAAA,GAAUrC,CAAAA,UAAiC,KAAA;AAC/C,MAAM,MAAA;AAAA,QAAEsB,aAAa,EAAE;AAAA,QAAEgB,aAAa,EAAA;AAAA,OAAOhD,GAAAA,KAAAA,CAAAA;AAC7C,MAAA,MAAMiD,QAAWvC,GAAAA,UAAAA,KAAc,OAAUK,GAAAA,kBAAAA,CAAmBc,QAAQZ,kBAAmBY,CAAAA,KAAAA,CAAAA;AACvF,MAAMqB,MAAAA,yBAAAA,GAA4BC,+BAAqBH,UAAU,CAAA,CAAA;AAEjE,MAAMI,MAAAA,WAAAA,GAAcH,SAASnB,MAAOC,CAAAA,CAAAA,GAAAA,KAAO,CAACmB,yBAA0BG,CAAAA,GAAAA,CAAItB,GAAG,CAAC,CAAA,CAAA;AAC9E,MAAMuB,MAAAA,cAAAA,GAAiBC,uBAAaH,WAAW,CAAA,CAAA;AAG/C,MAAA,MAAMI,aACF9C,GAAAA,UAAAA,KAAc,OACZ0C,GAAAA,WAAAA,CAAYK,OAAOzB,UAAU,CAAA,GAC7BA,UAAWF,CAAAA,MAAAA,CAAO4B,CAAa,SAAA,KAAA,CAACJ,cAAeD,CAAAA,GAAAA,CAAIK,SAAS,CAAC,CAAA,CAAA;AAGnE,MAAMC,MAAAA,iBAAAA,GAAoBjD,UAAc,KAAA,OAAA,GAAU,MAAS,GAAA,OAAA,CAAA;AAC3DA,MAAAA,UAAAA,KAAc,UAAWK,kBAAmBc,CAAAA,KAAAA,GAAQ,EAAOZ,GAAAA,kBAAAA,CAAmBY,QAAQ,EAAG,CAAA;AACzFxB,MAAAA,IAAAA,CAAK,qBAAqBmD,aAAa,CAAA,CAAA;AACvCZ,MAAmBe,kBAAAA,CAAAA,iBAAAA,EAAmB,EAAE,CAAA,CAAA;AACxCtD,MAAK,IAAA,CAAA,QAAA,EAAUmD,aAAe9C,EAAAA,UAAAA,EAAW0C,WAAW,CAAA,CAAA;AACpDlC,MAAAA,eAAAA,CAAgB0C,aAAc,EAAA,CAAA;AAAA,KAChC,CAAA;AAEA,IAAA,MAAMC,aAAaA,MAAM;AACvBd,MAAAA,MAAAA,CAAO,MAAM,CAAA,CAAA;AAAA,KACf,CAAA;AACA,IAAA,MAAMe,cAAcA,MAAM;AACxBf,MAAAA,MAAAA,CAAO,OAAO,CAAA,CAAA;AAAA,KAChB,CAAA;AAEA,IAAMgB,MAAAA,eAAAA,GAAkBA,CAACrD,UAAAA,EAA8BkB,YAA2B,KAAA;AAChFgB,MAAAA,kBAAAA,CAAmBlC,YAAWkB,YAAY,CAAA,CAAA;AAAA,KAC5C,CAAA;AAEA,IAAA,MAAMoC,sBAAuBpC,CAA2B,YAAA,KAAA;AACtD,MAAOmC,OAAAA,eAAAA,CAAgB,QAAQnC,YAAY,CAAA,CAAA;AAAA,KAC7C,CAAA;AAEA,IAAA,MAAMqC,uBAAwBrC,CAA2B,YAAA,KAAA;AACvD,MAAOmC,OAAAA,eAAAA,CAAgB,SAASnC,YAAY,CAAA,CAAA;AAAA,KAC9C,CAAA;AACA,IAAMsC,MAAAA,YAAAA,GAAeA,CAACxD,UAAAA,EAA8ByD,CAAM,KAAA;AACxD,MAAMtC,MAAAA,KAAAA,GAAQsC,EAAEC,MAAOvC,CAAAA,KAAAA,CAAAA;AACvBxB,MAAK,IAAA,CAAA,QAAA,EAAUK,YAAWmB,KAAK,CAAA,CAAA;AAAA,KACjC,CAAA;AAEA,IAAA,MAAMwC,mBAAoBF,CAAa,CAAA,KAAA;AACrCD,MAAAA,YAAAA,CAAa,QAAQC,CAAC,CAAA,CAAA;AAAA,KACxB,CAAA;AACA,IAAA,MAAMG,oBAAqBH,CAAa,CAAA,KAAA;AACtCD,MAAAA,YAAAA,CAAa,SAASC,CAAC,CAAA,CAAA;AAAA,KACzB,CAAA;AAEA,IAAMI,MAAAA,WAAAA,GAAe7D,CAAAA,UAAiC,KAAA;AACpDL,MAAK,IAAA,CAAA,QAAA,EAAUK,YAAW,EAAE,CAAA,CAAA;AAAA,KAC9B,CAAA;AAEA,IAAA,MAAM8D,kBAAkBA,MAAM;AAC5BD,MAAAA,WAAAA,CAAY,MAAM,CAAA,CAAA;AAAA,KACpB,CAAA;AAEA,IAAA,MAAME,mBAAmBA,MAAM;AAC7BF,MAAAA,WAAAA,CAAY,OAAO,CAAA,CAAA;AAAA,KACrB,CAAA;AAEA,IAAA,MAAMG,YAAeA,GAAAA,CAAChE,UAA8BiE,EAAAA,WAAAA,EAAqBC,OAAqB,KAAA;AAC5F,MAAM/B,MAAAA,MAAAA,GACFnC,UAAc,KAAA,MAAA,GAAS,CAAC,GAAGK,kBAAmBc,CAAAA,KAAK,CAAI,GAAA,CAAC,GAAGZ,kBAAAA,CAAmBY,KAAK,CAAA,CAAA;AACvF,MAAMgD,MAAAA,KAAAA,GAAQhC,MAAOiC,CAAAA,OAAAA,CAAQH,WAAW,CAAA,CAAA;AACxC,MAAA,IAAIE,KAAQ,GAAA,CAAA,CAAA;AACVhC,QAAOkC,MAAAA,CAAAA,MAAAA,CAAOF,OAAO,CAAC,CAAA,CAAA;AAExB,MAAID,IAAAA,OAAAA;AACF/B,QAAAA,MAAAA,CAAOmC,KAAKL,WAAW,CAAA,CAAA;AAEzB/B,MAAAA,kBAAAA,CAAmBlC,YAAWmC,MAAM,CAAA,CAAA;AAAA,KACtC,CAAA;AAEA,IAAMoC,MAAAA,gBAAAA,GAAmBA,CAACN,WAAAA,EAAqBC,OAAqB,KAAA;AAClE,MAAOF,OAAAA,YAAAA,CAAa,MAAQC,EAAAA,WAAAA,EAAaC,OAAO,CAAA,CAAA;AAAA,KAClD,CAAA;AACA,IAAMM,MAAAA,iBAAAA,GAAoBA,CAACP,WAAAA,EAAqBC,OAAqB,KAAA;AACnE,MAAOF,OAAAA,YAAAA,CAAa,OAASC,EAAAA,WAAAA,EAAaC,OAAO,CAAA,CAAA;AAAA,KACnD,CAAA;AACA,IAAA,MAAMO,oBAAqBC,CAA2B,YAAA,KAAA;AACpD,MAAM,MAAA;AAAA,QAAEpD,aAAa,EAAA;AAAA,OAAOhC,GAAAA,KAAAA,CAAAA;AAC5B,MAAMwD,MAAAA,aAAAA,GAAgBxB,WAAWF,MAAOC,CAAAA,CAAAA,GAAAA,KAAO,CAACqD,YAAanD,CAAAA,QAAAA,CAASF,GAAG,CAAC,CAAA,CAAA;AAC1E1B,MAAAA,IAAAA,CAAK,qBAAqBmD,aAAa,CAAA,CAAA;AACvCnD,MAAAA,IAAAA,CAAK,UAAUmD,aAAe,EAAA,MAAA,EAAQ,CAAC,GAAG4B,YAAY,CAAC,CAAA,CAAA;AAAA,KACzD,CAAA;AAEA,IAAMC,MAAAA,YAAAA,GAAeA,CAAC3E,UAAAA,EAA8ByD,CAAe,KAAA;AACjE9D,MAAK,IAAA,CAAA,QAAA,EAAUK,YAAWyD,CAAC,CAAA,CAAA;AAAA,KAC7B,CAAA;AAEA,IAAA,MAAMmB,mBAAoBnB,CAAe,CAAA,KAAA;AACvCkB,MAAAA,YAAAA,CAAa,QAAQlB,CAAC,CAAA,CAAA;AAAA,KACxB,CAAA;AACA,IAAA,MAAMoB,oBAAqBpB,CAAe,CAAA,KAAA;AACxCkB,MAAAA,YAAAA,CAAa,SAASlB,CAAC,CAAA,CAAA;AAAA,KACzB,CAAA;AACA,IAAMqB,MAAAA,eAAAA,GAAkBA,CACtBC,SAAAA,EACA/E,UACG,KAAA;AACH,MAAA,IAAI,OAAO+E,SAAc,KAAA,UAAA;AACvB,QAAA,OAAOA,SAAU,CAAA;AAAA,UAAE/E,SAAAA,EAAAA,UAAAA;AAAAA,SAAW,CAAA,CAAA;AAEhC,MAAO+E,OAAAA,SAAAA,CAAAA;AAAAA,KACT,CAAA;AAEA,IAAMC,MAAAA,cAAAA,GAAiB1E,OAAI,CAAA,EAAE,CAAA,CAAA;AAC7B,IAAM2E,MAAAA,eAAAA,GAAkB3E,OAAI,CAAA,EAAE,CAAA,CAAA;AAE9B4E,IAAAA,eAAAA,CAAY,MAAM;AAChB,MAAM,MAAA;AAAA,QAAE5C,UAAAA;AAAAA,QAAY6C,MAAAA;AAAAA,QAAQ7D,aAAa,EAAA;AAAA,OAAOhC,GAAAA,KAAAA,CAAAA;AAEhD,MAAA,MAAM8F,KAAK,EAAE,CAAA;AACb,MAAA,MAAMC,EAAK,GAAA,IAAIC,KAAMhE,CAAAA,UAAAA,CAAWiE,MAAM,CAAA,CAAA;AACtC,MAAMC,MAAAA,aAAAA,GAAgB3C,uBAAavB,UAAU,CAAA,CAAA;AAC7CgB,MAAAA,UAAAA,CAAWmD,QAASC,CAAW,MAAA,KAAA;AAC7B,QAAIP,IAAAA,MAAAA;AACFO,UAAOrE,MAAAA,CAAAA,GAAAA,GAAM8D,OAAOO,MAAM,CAAA,CAAA;AAI5B,QAAIF,IAAAA,aAAAA,CAAc7C,GAAI+C,CAAAA,MAAAA,CAAOrE,GAAG,CAAA;AAC9BgE,UAAAA,EAAAA,CAAGG,aAAcG,CAAAA,GAAAA,CAAID,MAAOrE,CAAAA,GAAG,CAAC,CAAKqE,GAAAA,MAAAA,CAAAA;AAAAA;AAErCN,UAAAA,EAAAA,CAAGd,KAAKoB,MAAM,CAAA,CAAA;AAAA,OACjB,CAAA,CAAA;AAEDV,MAAAA,cAAAA,CAAe7D,KAAQiE,GAAAA,EAAAA,CAAAA;AACvBH,MAAAA,eAAAA,CAAgB9D,KAAQkE,GAAAA,EAAAA,CAAAA;AAAAA,KACzB,CAAA,CAAA;AAEDxF,IAAO,MAAA,CAAA;AAAA,MAAEqC,kBAAAA;AAAAA,KAAoB,CAAA,CAAA;AAE7B,IAAA,MAAM0D,iBAAkBlE,CAAmC,cAAA,KAAA;;AACzD,MAAM,MAAA;AAAA,QACJmE,QAAAA;AAAAA,QACAC,aAAa,EAAE;AAAA,QACfC,UAAAA;AAAAA,QACAhB,SAAAA;AAAAA,QACAiB,cAAAA;AAAAA,QACAC,YAAAA;AAAAA,QACAC,aAAAA;AAAAA,QACAC,kBAAkB,EAAE;AAAA,QACpBC,MAAAA;AAAAA,QACAC,UAAAA;AAAAA,QACAC,EAAAA,GAAK9F,gBAAgB8F,EAAGnF,CAAAA,KAAAA;AAAAA,OACtB7B,GAAAA,KAAAA,CAAAA;AACJ,MAAM,MAAA;AAAA,QAAEiH,KAAOC,EAAAA,SAAAA;AAAAA,QAAWC,KAAAA;AAAAA,OAAU7G,GAAAA,KAAAA,CAAAA;AAEpC,MAAA,MAAM8G,WAAWlH,KAAMkH,CAAAA,QAAAA,CAAAA;AACvB,MAAMC,MAAAA,gBAAAA,GAAmB,CAACD,QAAYL,IAAAA,UAAAA,CAAAA;AAEtC,MAAA,MAAM1E,cAAc7B,cAAe6B,CAAAA,WAAAA,CAAAA;AACnC,MAAMM,MAAAA,MAAAA,GAASR,SAAUC,CAAAA,cAAAA,EAAgBC,WAAW,CAAA,CAAA;AACpD,MAAM,MAAA;AAAA,QAAEiF,MAAAA;AAAAA,OAAWpH,GAAAA,KAAAA,CAAAA;AACnB,MAAMqH,MAAAA,UAAAA,GAAavH,KAAMwH,CAAAA,MAAAA,IAAUtH,KAAMsH,CAAAA,MAAAA,CAAAA;AACzC,MAAMC,MAAAA,UAAAA,GAAaxG,kBAAmBY,CAAAA,KAAAA,CAAMoE,MAAS,GAAA,CAAA,CAAA;AACrD,MAAMyB,MAAAA,WAAAA,GAAc3G,kBAAmBc,CAAAA,KAAAA,CAAMoE,MAAS,GAAA,CAAA,CAAA;AAEtD,MAAA,MAAM0B,GAAMC,GAAAA,iBAAAA,CACVnH,SAAUoB,CAAAA,KAAAA,EACVqF,SACA,EAAA;AAAA,QACE,CAAE,CAAA,EAAEzG,SAAUoB,CAAAA,KAAM,WAAU,GAAG0E,QAAAA;AAAAA,QACjC,CAAE,CAAE9F,EAAAA,SAAAA,CAAUoB,KAAM,CAAgB,eAAA,CAAA,GAAG,CAAC,CAACuF,QAAAA;AAAAA,QACzC,CAAE,CAAE3G,EAAAA,SAAAA,CAAUoB,KAAM,CAAK,IAAA,CAAA,GAAGnB,UAAUmB,KAAU,KAAA,KAAA;AAAA,OAClD,EACAgG,+BAAoBpH,CAAAA,SAAAA,CAAUoB,KAAON,EAAAA,YAAAA,CAAaM,OAAOT,oBAAqB0G,CAAAA,WAAW,CACzFjH,EAAAA,MAAAA,CAAOgB,KACT,CAAA,CAAA;AACA,MAAA,MAAMkG,SAAS/H,KAAM+H,CAAAA,MAAAA,CAAAA;AACrB,MAAA,MAAMC,aACDD,EAAUA,GAAAA,CAAAA,EAAAA,GAAAA,MAAAA,IAAAA,MAAAA,CAAO,CAAC,CAAA,KAAlBA,aAAwB7H,EAAM8H,GAAAA,KAAAA,CAAAA,SAAAA,KAAN9H,IAAxB6H,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,KAAAA,IAAAA,GAAAA,EAAAA,GAAAA,CAAgDpF,OAAOoF,MAAU,IAAA,CAAC,EAAI,EAAA,EAAE,GAAG,CAAC,CAAA,CAAA;AACjF,MAAA,MAAME,cACDF,EAAUA,GAAAA,CAAAA,EAAAA,GAAAA,MAAAA,IAAAA,MAAAA,CAAO,CAAC,CAAA,KAAlBA,aAAwB7H,EAAM+H,GAAAA,KAAAA,CAAAA,UAAAA,KAAN/H,IAAxB6H,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,KAAAA,IAAAA,GAAAA,EAAAA,GAAAA,CAAiDpF,OAAOoF,MAAU,IAAA,CAAC,EAAI,EAAA,EAAE,GAAG,CAAC,CAAA,CAAA;AAClF,MAAA,OAAAG,gBAAA,KAAA,EAAA;AAAA,QAAA,GACW5H,KAAAA;AAAAA,QAAK,OAASqH,EAAAA,GAAAA;AAAAA,QAAG,OAASR,EAAAA,KAAAA;AAAAA,QAAK,IAAuBH,EAAAA,EAAAA;AAAAA,OAAE,EAAAkB,CAAAA,eAAAA,CAAAC,YAAA,EAAA;AAAA,QAAA,KAAA,EAAA,UAAA;AAAA,QAAA,WAAA,EAGjD,CAAE1H,EAAAA,SAAAA,CAAUoB,KAAM,CAAA,KAAA,CAAA;AAAA,QAAM,cACxB6D,cAAe7D,CAAAA,KAAAA;AAAAA,QAAK,cAClB8E,EAAAA,YAAAA;AAAAA,QAAY,OAAA,EACnBnB,eAAgBC,CAAAA,SAAAA,EAAW,MAAM,CAAA;AAAA,QAAC,eAC5B1E,kBAAmBc,CAAAA,KAAAA;AAAAA,QAAK,cACvBwC,EAAAA,gBAAAA;AAAAA,QAAgB,aACjBG,EAAAA,eAAAA;AAAAA,QAAe,cACdS,EAAAA,gBAAAA;AAAAA,QAAgB,iBACbjB,EAAAA,mBAAAA;AAAAA,QAAmB,YACxBuD,EAAAA,UAAAA;AAAAA,QAAU,YACVd,EAAAA,UAAAA;AAAAA,QAAU,YACVW,EAAAA,QAAAA;AAAAA,QAAQ,UACV9B,EAAAA,gBAAAA;AAAAA,QAAgB,UAChBiB,EAAAA,QAAAA;AAAAA,QAAQ,WACP7F,EAAAA,SAAAA,CAAUmB,KAAU,KAAA,KAAA,GAAQ,OAAU,GAAA,MAAA;AAAA,QAAM,eACxC+E,EAAAA,aAAAA;AAAAA,QAAa,gBACZC,EAAAA,eAAAA,CAAgB,CAAC,CAAA,IAAK3G,KAAMkI,CAAAA,kBAAAA;AAAAA,QAAkB,YAClDf,EAAAA,gBAAAA;AAAAA,QAAgB,GACxB1E,MAAAA;AAAAA,OACK,EAAA;AAAA,QAAE0F,WAAWA,MAAML,SAAAA;AAAAA,QAAWV,MAAAA;AAAAA,OAAQ,CAAAY,EAAAA,eAAAA,CAAAI,iBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,WAAA;AAAA,QAAA,OAAA,EAIvC,CAAE7H,EAAAA,SAAAA,CAAUoB,KAAM,CAAA,UAAA,CAAA;AAAA,QAAW,aACxB6F,EAAAA,WAAAA;AAAAA,QAAW,gBAAA,EACRlB,WAAW,CAAC,CAAA;AAAA,QAAC,aAChB1C,EAAAA,WAAAA;AAAAA,QAAW,YACZ2D,EAAAA,UAAAA;AAAAA,QAAU,eAAA,EACPjB,WAAW,CAAC,CAAA;AAAA,QAAC,YAChB3C,EAAAA,UAAAA;AAAAA,QAAU,OACf6C,EAAAA,cAAAA;AAAAA,QAAc,UACXH,EAAAA,QAAAA;AAAAA,QAAQ,aACP7F,SAAUmB,CAAAA,KAAAA;AAAAA,QAAK,QAClBiF,EAAAA,MAAAA;AAAAA,OAAMoB,EAAAA,IAAAA,CAAAA,EAAAA,eAAAA,CAAAC,YAAA,EAAA;AAAA,QAAA,KAAA,EAAA,WAAA;AAAA,QAAA,WAAA,EAIF,CAAE1H,EAAAA,SAAAA,CAAUoB,KAAM,CAAA,KAAA,CAAA;AAAA,QAAM,cACxB8D,eAAgB9D,CAAAA,KAAAA;AAAAA,QAAK,cACnB8E,EAAAA,YAAAA;AAAAA,QAAY,OAAA,EACnBnB,eAAgBC,CAAAA,SAAAA,EAAW,OAAO,CAAA;AAAA,QAAC,eAC7BxE,kBAAmBY,CAAAA,KAAAA;AAAAA,QAAK,cACvByC,EAAAA,iBAAAA;AAAAA,QAAiB,aAClBG,EAAAA,gBAAAA;AAAAA,QAAgB,cACfS,EAAAA,iBAAAA;AAAAA,QAAiB,iBACdjB,EAAAA,oBAAAA;AAAAA,QAAoB,cACvBkB,EAAAA,iBAAAA;AAAAA,QAAiB,YACnBoC,EAAAA,UAAAA;AAAAA,QAAU,YACVd,EAAAA,UAAAA;AAAAA,QAAU,YACVW,EAAAA,QAAAA;AAAAA,QAAQ,UACV7B,EAAAA,iBAAAA;AAAAA,QAAiB,UACjBgB,EAAAA,QAAAA;AAAAA,QAAQ,WACP7F,EAAAA,SAAAA,CAAUmB,KAAU,KAAA,KAAA,GAAQ,MAAS,GAAA,OAAA;AAAA,QAAO,eACxC+E,EAAAA,aAAAA;AAAAA,QAAa,gBACZC,EAAAA,eAAAA,CAAgB,CAAC,CAAA,IAAK3G,KAAMqI,CAAAA,mBAAAA;AAAAA,QAAmB,YACnDzB,EAAAA,MAAAA;AAAAA,QAAM,YACNO,EAAAA,gBAAAA;AAAAA,QAAgB,GACxB1E,MAAAA;AAAAA,OACK,EAAA;AAAA,QAAE0F,WAAWA,MAAMJ,UAAAA;AAAAA,QAAYX,MAAAA;AAAAA,OAAQ,CAAA,CAAA,CAAA,CAAA;AAAA,KAIxD,CAAA;AACA,IAAO,OAAA,MACL1G,OAAOsH,CAAAA,eAAAA,CAAAM,sBAAA,EAAA;AAAA,MAAA,eAAA,EAAA,UAAA;AAAA,MAAA,iBAGYC,aAAcC,CAAAA,QAAAA;AAAAA,MAAQ,UAC3BpC,EAAAA,cAAAA;AAAAA,KAAc,EAAA,IAAA,CAE5B,CAAA,CAAA;AAAA,GACJ;AACF,CAAC,CAAA;;;;"}