{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/table-toolbar/src/index.vue"],"sourcesContent":["<template>\n  <hl-group\n    full=\"full-x\"\n    align=\"items-middle items-between\"\n    gap=\"var(--lg)\"\n    :class=\"prefix + '-table-toolbar'\"\n  >\n    <slot name=\"selection\">\n      <div v-if=\"selection.show || false\" class=\"table-counts static\">当前共 <strong>{{ selection.total }}</strong> 条数据<span v-if=\"selection.count > 0\">，已选中 <strong>{{ selection.count }}</strong> 条</span></div>\n    </slot>\n    <hl-group class=\"toolbar-batch\">\n      <hl-group gap=\"var(--xs)\" :class=\"['batch-wrap', action.show ? 'show': '']\">\n        <hl-button\n          v-for=\"(item, idx) in shownActionItems\"\n          v-show=\"'show' in item ? item.show : true\"\n          :key=\"idx\"\n          v-bind=\"item\"\n          @click=\"doAction(item)\"\n        >\n          {{ item.label }}\n          <template #icon>\n            <slot name=\"action-icon\" :item=\"item\"></slot>\n          </template>\n        </hl-button>\n        <hl-dropdown v-if=\"hiddenActionItems.length > 0\">\n          <hl-button type=\"link\" equal>\n            <hl-icon>\n              <system-more />\n            </hl-icon>\n          </hl-button>\n          <template #dropdown>\n            <hl-dropdown-menu>\n              <hl-dropdown-item\n                v-for=\"(item, idx) in hiddenActionItems\"\n                :key=\"idx\"\n                v-bind=\"item\"\n                @click=\"doAction(item)\"\n              >\n                {{ item.label }}\n                <template #icon>\n                  <slot name=\"action-icon\" :item=\"item\"></slot>\n                </template>\n              </hl-dropdown-item>\n            </hl-dropdown-menu>\n          </template>\n        </hl-dropdown>\n      </hl-group>\n    </hl-group>\n    <hl-group class=\"static toolbar-setting\" gap=\"var(--xs)\">\n      <slot name=\"extra-before\"></slot>\n      <col-config\n        v-if=\"extra.showColConfig\"\n        :cols=\"extra.colConfig?.cols\"\n        :store-key=\"extra.colConfig?.storeKey\"\n        :version=\"extra.colConfig?.version\"\n        :col-label-field=\"extra.colConfig?.colLabelField\"\n        @col-change=\"$emit('col-change')\"\n      >\n        <template #reference>\n          <hl-button type=\"primary\" equal effect=\"light\">\n            <hl-icon><system-filter /></hl-icon>\n          </hl-button>\n        </template>\n      </col-config>\n      <slot name=\"extra-after\"></slot>\n    </hl-group>\n  </hl-group>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent } from 'vue'\nimport { HlGroup, HlButton, HlDropdown, HlDropdownMenu, HlDropdownItem, HlIcon, SystemFilter, SystemMore } from 'hongluan-ui'\nimport { usePrefix } from '@hongluan-business-ui/utils/util'\nimport ColConfig from './col-config.vue'\n\nimport type { PropType } from 'vue'\nimport type { ToolbarSelection, ToolbarAction, ToolbarExtra, ToolbarActionItem } from './toolbar'\n\nexport default defineComponent({\n  name: 'TableToolbar',\n  components: { HlGroup, HlButton, HlDropdown, HlDropdownMenu, HlDropdownItem, ColConfig, HlIcon, SystemFilter, SystemMore },\n  props: {\n    selection: {\n      type: Object as PropType<ToolbarSelection>,\n      default: () => ({ show: false, count: '--', total: '--' }),\n    },\n    action: {\n      type: Object as PropType<ToolbarAction>,\n      default: () => ({ show: true, showCount: 1, actions: [] }),\n    },\n    extra: {\n      type: Object as PropType<ToolbarExtra>,\n      default: () => ({\n        showColConfig: true,\n        colConfig: {},\n      }),\n    },\n  },\n  emits: ['action', 'col-change'],\n  setup(props, { emit }) {\n    const { prefix } = usePrefix()\n\n    const shownActionItems = computed(() => {\n      let arr: ToolbarActionItem[] = []\n      if (props.action.showCount > 0) {\n        arr = props.action.actions.filter(a => a.show || !('show' in a)).slice(0, props.action.showCount)\n      }\n      return arr\n    })\n    const hiddenActionItems = computed(() => {\n      let arr: ToolbarActionItem[] = []\n      if (props.action.showCount > 0) {\n        arr = props.action.actions.filter(a => a.show || !('show' in a)).slice(props.action.showCount)\n      }\n      arr = arr.filter(item => 'show' in item ? item.show : true)\n      return arr\n    })\n\n    const doAction = (item: ToolbarActionItem) => {\n      emit('action', item)\n    }\n\n    return {\n      prefix,\n      shownActionItems,\n      hiddenActionItems,\n      doAction,\n    }\n  },\n})\n</script>\n"],"names":["_createBlock","_normalizeClass","_renderSlot","_createElementBlock","_createElementVNode","_createVNode","_Fragment","_mergeProps","_withCtx","_openBlock"],"mappings":";;;;;;AA8EA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY,EAAE,SAAS,UAAU,YAAY,gBAAgB,gBAAgB,WAAW,QAAQ,cAAc;AAAA,EAC9G,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS,SAAS,MAAM,OAAO,OAAO,MAAM,OAAO;AAAA;AAAA,IAErD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS,SAAS,MAAM,MAAM,WAAW,GAAG,SAAS;AAAA;AAAA,IAEvD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAO,QACd,eAAe;AAAA,QACf,WAAW;AAAA;AAAA;AAAA;AAAA,EAIjB,OAAO,CAAC,UAAU;AAAA,EAClB,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,EAAE,WAAW;AAEnB,UAAM,mBAAmB,SAAS,MAAM;AACtC,UAAI,MAA2B;AAC/B,UAAI,MAAM,OAAO,YAAY,GAAG;AAC9B,cAAM,MAAM,OAAO,QAAQ,OAAO,OAAK,EAAE,QAAQ,YAAY,IAAI,MAAM,GAAG,MAAM,OAAO;AAAA;AAEzF,aAAO;AAAA;AAET,UAAM,oBAAoB,SAAS,MAAM;AACvC,UAAI,MAA2B;AAC/B,UAAI,MAAM,OAAO,YAAY,GAAG;AAC9B,cAAM,MAAM,OAAO,QAAQ,OAAO,OAAK,EAAE,QAAQ,YAAY,IAAI,MAAM,MAAM,OAAO;AAAA;AAEtF,YAAM,IAAI,OAAO,UAAQ,UAAU,OAAO,KAAK,OAAO;AACtD,aAAO;AAAA;AAGT,UAAM,WAAW,CAAC,SAA4B;AAC5C,WAAK,UAAU;AAAA;AAGjB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;EAtHoC,OAAM;AAAA;mDAAsB;mDAA0C;;mDAAqC;mDAA2C;;;;;;;;;;;sBAP9LA,YAiEW;AAAA,IAhET,MAAK;AAAA,IACL,OAAM;AAAA,IACN,KAAI;AAAA,IACH,OAAKC,eAAE,cAAM;AAAA;qBAEd,MAEO;AAAA,MAFPC,WAEO,8BAFP,MAEO;AAAA,QADM,eAAU,QAAI,sBAAzBC,mBAAyM,OAAzM,YAAyM;AAAA;UAArIC,mBAAsC,gCAA3B,eAAU,QAAK;AAAA;UAA4B,eAAU,QAAK,kBAA3BD,mBAAqF;AAAA;YAA/CC,mBAAsC,gCAA3B,eAAU,QAAK;AAAA;;;;MAEhLC,YAqCW,uBArCD,OAAM,mBAAe;AAAA,yBAC7B,MAmCW;AAAA,UAnCXA,YAmCW;AAAA,YAnCD,KAAI;AAAA,YAAa,OAAKJ,8BAAiB,YAAO,OAAI;AAAA;6BAExD,MAAuC;AAAA,gCADzCE,mBAWYG,2BAVY,uBAAgB,CAA9B,MAAM,QAAG;oDADnBN,YAWY,sBAXZO,WAWY,EART,KAAK,OACE,MAAI;AAAA,kBACX,SAAK,YAAE,cAAS;AAAA;kBAGN,MAAIC,QACb,MAA6C;AAAA,oBAA7CN,WAA6C,8BAAnB;AAAA;AAAA,mCAF5B,MAAgB;AAAA,oDAAb,KAAK,SAAQ,KAChB;AAAA;AAAA;;oCANkB,OAAO,KAAK,OAAI;AAAA;AAAA;cAUjB,uBAAkB,SAAM,kBAA3CF,YAqBc;AAAA,gBAfD,UAAQQ,QACjB,MAYmB;AAAA,kBAZnBH,YAYmB;AAAA,qCAVf,MAAwC;AAAA,wCAD1CF,mBAUmBG,2BATK,wBAAiB,CAA/B,MAAM,QAAG;4CADnBN,YAUmB,6BAVnBO,WAUmB,EARhB,KAAK,OACE,MAAI;AAAA,0BACX,SAAK,YAAE,cAAS;AAAA;0BAGN,MAAIC,QACb,MAA6C;AAAA,4BAA7CN,WAA6C,8BAAnB;AAAA;AAAA,2CAF5B,MAAgB;AAAA,4DAAb,KAAK,SAAQ,KAChB;AAAA;AAAA;;;;;;;iCAdN,MAIY;AAAA,kBAJZG,YAIY;AAAA,oBAJD,MAAK;AAAA,oBAAO;AAAA;qCACrB,MAEU;AAAA,sBAFVA,YAEU;AAAA,yCADR,MAAe;AAAA,0BAAfA,YAAe;AAAA;AAAA;;;;;;;;;;;;;;MAqBzBA,YAiBW;AAAA,QAjBD,OAAM;AAAA,QAAyB,KAAI;AAAA;yBAC3C,MAAiC;AAAA,UAAjC,YAAiC;AAAA,UAEzB;AAYK;YAXV,4BAAuBI;AAAA;AACK,qBACnB;AAAiB,qDACQ;AAAA;AACjB;;AAKJ;AAAA;AAFI,gBAAUJ;AAAA,wBAAa;AAAA;;AACD;AAAA;AAAV;AAAA;AAAA;;;;;;;;;AAIA;AAAA;;;;;;;;;;;;;"}