{"version":3,"file":"base-panel.mjs","sources":["../../../../../../packages/components/cascader/src/base-panel.tsx"],"sourcesContent":["import type { PropType } from 'vue'\nimport { defineComponent, TransitionGroup, inject } from 'vue'\nimport { getNamespace } from '../../../utils/global-config'\nimport BnSpace from '../../space/src/space.vue'\nimport BnButton from '../../button/src/button.vue'\n\nimport { Scrollbar } from '../../scrollbar'\nimport { Empty } from '../../empty'\nimport { BnIconEmpty } from '../../icon'\nimport Option from './option'\nimport type { CascaderNode } from './type'\n\nimport type { CascaderContext } from './context'\nimport { cascaderInjectionKey } from './context'\n\nexport default defineComponent({\n  name: 'CascaderPanel',\n  props: {\n    renderColumns: {\n      type: Array as PropType<CascaderNode[][]>,\n      required: true\n    },\n    selectedPath: {\n      type: Array as PropType<string[]>,\n      required: true\n    },\n    activeKey: {\n      type: String,\n      default: ''\n    },\n    totalLevel: {\n      type: Number,\n      required: true\n    },\n    multiple: Boolean,\n    checkStrictly: Boolean,\n    loading: Boolean,\n    showFooter: Boolean\n  },\n  setup(props) {\n    const ns = getNamespace('cascader-panel')\n\n    const cascaderContext = inject<Partial<CascaderContext>>(cascaderInjectionKey, {})\n\n    const renderColumn = (column: CascaderNode[], level: number) => {\n      return (\n        <div\n          class={[`${ns}__column`]}\n          key={`column-${level}`}\n          style={{ zIndex: props.totalLevel - level }}\n        >\n          <Scrollbar>\n            {column.length === 0 ? (\n              <div class={[`${ns}__empty`]}>\n                <Empty\n                  v-slots={{\n                    image: () => <BnIconEmpty size={38} />\n                  }}\n                />\n              </div>\n            ) : (\n              <ul class={[`${ns}__list`]} role=\"menu\">\n                {column.map((node) => (\n                  <Option\n                    key={node.key}\n                    node={node}\n                    active={props.selectedPath.includes(node.key) || node.key === props.activeKey}\n                    multiple={props.multiple}\n                    checkStrictly={props.checkStrictly}\n                  />\n                ))}\n              </ul>\n            )}\n          </Scrollbar>\n        </div>\n      )\n    }\n\n    const renderContent = () => {\n      return (\n        <TransitionGroup name=\"cascader-slide\">\n          {props.renderColumns!.map((column, level) => renderColumn(column, level))}\n        </TransitionGroup>\n      )\n    }\n\n    const renderFooter = () => {\n      if (cascaderContext?.slots?.footer) {\n        return cascaderContext?.slots?.footer({\n          ok: cascaderContext.footer?.handleOk,\n          cancel: cascaderContext.footer?.handleCancel\n        })\n      }\n\n      return (\n        <BnSpace>\n          <BnButton size=\"small\" onClick={cascaderContext.footer?.handleCancel}>\n            取消\n          </BnButton>\n          <BnButton type=\"primary\" size=\"small\" onClick={cascaderContext.footer?.handleOk}>\n            确定\n          </BnButton>\n        </BnSpace>\n      )\n    }\n\n    return () => {\n      return (\n        <div class={[`${ns}`]}>\n          <div class={[`${ns}__content`]}>{renderContent()}</div>\n          {props.showFooter && props.multiple && (\n            <div class={[`${ns}__footer`]}>{renderFooter()}</div>\n          )}\n        </div>\n      )\n    }\n  }\n})\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","name","props","renderColumns","type","Array","required","selectedPath","activeKey","String","default","totalLevel","Number","multiple","Boolean","checkStrictly","loading","showFooter","setup","ns","getNamespace","cascaderContext","inject","cascaderInjectionKey","renderColumn","column","level","_createVNode","zIndex","Scrollbar","length","Empty","image","BnIconEmpty","map","node","Option","key","includes","renderContent","_slot","TransitionGroup","renderFooter","slots","footer","ok","handleOk","cancel","handleCancel","BnSpace","_a","_b","BnButton","_createTextVNode"],"mappings":"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"}