element-plus
Version:
A Component Library for Vue 3
200 lines (195 loc) • 7.79 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var filterPanel_vue_vue_type_script_lang = require('./filter-panel.vue2.js');
var vue = require('vue');
var _pluginVue_exportHelper = require('../../../_virtual/_plugin-vue_export-helper.js');
const _hoisted_1 = ["disabled"];
const _hoisted_2 = ["tabindex", "aria-checked"];
const _hoisted_3 = ["tabindex", "aria-checked", "onClick"];
const _hoisted_4 = ["aria-label"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_el_checkbox = vue.resolveComponent("el-checkbox");
const _component_el_checkbox_group = vue.resolveComponent("el-checkbox-group");
const _component_el_scrollbar = vue.resolveComponent("el-scrollbar");
const _component_arrow_up = vue.resolveComponent("arrow-up");
const _component_arrow_down = vue.resolveComponent("arrow-down");
const _component_el_icon = vue.resolveComponent("el-icon");
const _component_el_tooltip = vue.resolveComponent("el-tooltip");
return vue.openBlock(), vue.createBlock(_component_el_tooltip, {
ref: "tooltipRef",
offset: 0,
placement: _ctx.placement,
"show-arrow": false,
trigger: "click",
role: "dialog",
teleported: "",
effect: "light",
pure: "",
loop: "",
"popper-class": _ctx.filterClassName,
persistent: "",
"append-to": _ctx.appendTo,
onShow: _ctx.handleShowTooltip,
onHide: _ctx.handleHideTooltip
}, {
content: vue.withCtx(() => [
_ctx.multiple ? (vue.openBlock(), vue.createElementBlock(
"div",
{
key: 0,
ref: "rootRef",
tabindex: "-1",
class: vue.normalizeClass(_ctx.ns.e("multiple"))
},
[
vue.createElementVNode(
"div",
{
class: vue.normalizeClass(_ctx.ns.e("content"))
},
[
vue.createVNode(_component_el_scrollbar, {
"wrap-class": _ctx.ns.e("wrap")
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_checkbox_group, {
modelValue: _ctx.filteredValue,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.filteredValue = $event),
class: vue.normalizeClass(_ctx.ns.e("checkbox-group"))
}, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList(_ctx.filters, (filter) => {
return vue.openBlock(), vue.createBlock(_component_el_checkbox, {
key: filter.value,
value: filter.value
}, {
default: vue.withCtx(() => [
vue.createTextVNode(
vue.toDisplayString(filter.text),
1
/* TEXT */
)
]),
_: 2
/* DYNAMIC */
}, 1032, ["value"]);
}),
128
/* KEYED_FRAGMENT */
))
]),
_: 1
/* STABLE */
}, 8, ["modelValue", "class"])
]),
_: 1
/* STABLE */
}, 8, ["wrap-class"])
],
2
/* CLASS */
),
vue.createElementVNode(
"div",
{
class: vue.normalizeClass(_ctx.ns.e("bottom"))
},
[
vue.createElementVNode("button", {
class: vue.normalizeClass(_ctx.ns.is("disabled", _ctx.filteredValue.length === 0)),
disabled: _ctx.filteredValue.length === 0,
type: "button",
onClick: _cache[1] || (_cache[1] = (...args) => _ctx.handleConfirm && _ctx.handleConfirm(...args))
}, vue.toDisplayString(_ctx.t("el.table.confirmFilter")), 11, _hoisted_1),
vue.createElementVNode(
"button",
{
type: "button",
onClick: _cache[2] || (_cache[2] = (...args) => _ctx.handleReset && _ctx.handleReset(...args))
},
vue.toDisplayString(_ctx.t("el.table.resetFilter")),
1
/* TEXT */
)
],
2
/* CLASS */
)
],
2
/* CLASS */
)) : (vue.openBlock(), vue.createElementBlock(
"ul",
{
key: 1,
ref: "rootRef",
tabindex: "-1",
role: "radiogroup",
class: vue.normalizeClass(_ctx.ns.e("list")),
onKeydown: _cache[4] || (_cache[4] = (...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args))
},
[
vue.createElementVNode("li", {
role: "radio",
class: vue.normalizeClass([
_ctx.ns.e("list-item"),
_ctx.ns.is("active", _ctx.isPropAbsent(_ctx.filterValue))
]),
tabindex: _ctx.checkedIndex === 0 ? 0 : -1,
"aria-checked": _ctx.isPropAbsent(_ctx.filterValue),
onClick: _cache[3] || (_cache[3] = ($event) => _ctx.handleSelect(null, 0))
}, vue.toDisplayString(_ctx.t("el.table.clearFilter")), 11, _hoisted_2),
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList(_ctx.filters, (filter, idx) => {
return vue.openBlock(), vue.createElementBlock("li", {
key: filter.value,
role: "radio",
class: vue.normalizeClass([_ctx.ns.e("list-item"), _ctx.ns.is("active", _ctx.isActive(filter))]),
tabindex: _ctx.checkedIndex === idx + 1 ? 0 : -1,
"aria-checked": _ctx.isActive(filter),
onClick: ($event) => _ctx.handleSelect(filter.value, idx + 1)
}, vue.toDisplayString(filter.text), 11, _hoisted_3);
}),
128
/* KEYED_FRAGMENT */
))
],
34
/* CLASS, NEED_HYDRATION */
))
]),
default: vue.withCtx(() => {
var _a;
return [
vue.createElementVNode("button", {
type: "button",
class: vue.normalizeClass(`${_ctx.ns.namespace.value}-table__column-filter-trigger`),
"aria-label": _ctx.t("el.table.filterLabel", { column: ((_a = _ctx.column) == null ? void 0 : _a.label) || "" })
}, [
vue.createVNode(_component_el_icon, null, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "filter-icon", {}, () => {
var _a2;
return [
((_a2 = _ctx.column) == null ? void 0 : _a2.filterOpened) ? (vue.openBlock(), vue.createBlock(_component_arrow_up, { key: 0 })) : (vue.openBlock(), vue.createBlock(_component_arrow_down, { key: 1 }))
];
})
]),
_: 3
/* FORWARDED */
})
], 10, _hoisted_4)
];
}),
_: 3
/* FORWARDED */
}, 8, ["placement", "popper-class", "append-to", "onShow", "onHide"]);
}
var FilterPanel = /* @__PURE__ */ _pluginVue_exportHelper.default(filterPanel_vue_vue_type_script_lang.default, [["render", _sfc_render]]);
exports.default = FilterPanel;
//# sourceMappingURL=filter-panel.vue.js.map