@v-c/collapse 0.0.5 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Collapse.cjs CHANGED
@@ -1 +1,146 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("vue"),b=require("@v-c/util"),S=require("@v-c/util/dist/hooks/useMergedState"),x=require("@v-c/util/dist/omit"),N=require("@v-c/util/dist/pickAttrs"),O=require("./hooks/useItems.cjs");function h(r){let t=r;if(!Array.isArray(t)){const a=typeof t;t=a==="number"||a==="string"?[t]:[]}return t.map(a=>String(a))}const I={prefixCls:"vc-collapse"},M=i.defineComponent({props:i.mergeDefaults({prefixCls:{type:String,required:!1},activeKey:{type:[String,Number,Array],required:!1},defaultActiveKey:{type:[String,Number,Array],required:!1},openMotion:{type:null,required:!1},onChange:{type:Function,required:!1},accordion:{type:Boolean,required:!1},destroyOnHidden:{type:Boolean,required:!1},expandIcon:{type:Function,required:!1},collapsible:{type:String,required:!1},items:{type:Array,required:!1},classNames:{type:Object,required:!1},styles:{type:Object,required:!1}},I),name:"VcCollapse",inheritAttrs:!1,setup(r,{attrs:t,expose:a,slots:d}){const l=i.ref(),[s,f]=S([],{value:i.toRef(r,"activeKey"),onChange:e=>r.onChange?.(e),defaultValue:r.defaultActiveKey,postState:h}),y=e=>r.accordion?s.value[0]===e?[]:[e]:s.value.indexOf(e)>-1?s.value.filter(n=>n!==e):[...s.value,e],p=e=>{s.value=y(e),f(s.value)};return a({ref:l}),()=>{const{prefixCls:e="vc-collapse",openMotion:c,expandIcon:o,collapsible:n,accordion:u,classNames:v,styles:m,items:g,destroyOnHidden:q}=r,A=b.classNames(e,t.class),C={...r,...x(t,["class","style"])},K=O.useItems(g,d.default,{prefixCls:e,accordion:u,openMotion:c,expandIcon:o,collapsible:n,onItemClick:p,activeKey:s.value,destroyOnHidden:q,classNames:v,styles:m});return i.createVNode("div",i.mergeProps({ref:l,class:A,style:t.style,role:u?"tablist":void 0},N(C,{aria:!0,data:!0})),[K])}}});exports.default=M;
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_rolldown_runtime = require("./_virtual/rolldown_runtime.cjs");
6
+ const require_useItems = require("./hooks/useItems.cjs");
7
+ let vue = require("vue");
8
+ let _v_c_util = require("@v-c/util");
9
+ let _v_c_util_dist_hooks_useMergedState = require("@v-c/util/dist/hooks/useMergedState");
10
+ _v_c_util_dist_hooks_useMergedState = require_rolldown_runtime.__toESM(_v_c_util_dist_hooks_useMergedState);
11
+ let _v_c_util_dist_omit = require("@v-c/util/dist/omit");
12
+ _v_c_util_dist_omit = require_rolldown_runtime.__toESM(_v_c_util_dist_omit);
13
+ let _v_c_util_dist_pickAttrs = require("@v-c/util/dist/pickAttrs");
14
+ _v_c_util_dist_pickAttrs = require_rolldown_runtime.__toESM(_v_c_util_dist_pickAttrs);
15
+ function getActiveKeysArray(activeKey) {
16
+ let currentActiveKey = activeKey;
17
+ if (!Array.isArray(currentActiveKey)) {
18
+ const activeKeyType = typeof currentActiveKey;
19
+ currentActiveKey = activeKeyType === "number" || activeKeyType === "string" ? [currentActiveKey] : [];
20
+ }
21
+ return currentActiveKey.map((key) => String(key));
22
+ }
23
+ var Collapse = /* @__PURE__ */ (0, vue.defineComponent)({
24
+ props: /* @__PURE__ */ (0, vue.mergeDefaults)({
25
+ prefixCls: {
26
+ type: String,
27
+ required: false,
28
+ default: void 0
29
+ },
30
+ activeKey: {
31
+ type: [
32
+ String,
33
+ Number,
34
+ Array
35
+ ],
36
+ required: false,
37
+ default: void 0
38
+ },
39
+ defaultActiveKey: {
40
+ type: [
41
+ String,
42
+ Number,
43
+ Array
44
+ ],
45
+ required: false,
46
+ default: void 0
47
+ },
48
+ openMotion: {
49
+ type: Object,
50
+ required: false,
51
+ default: void 0
52
+ },
53
+ onChange: {
54
+ type: Function,
55
+ required: false,
56
+ default: void 0
57
+ },
58
+ accordion: {
59
+ type: Boolean,
60
+ required: false,
61
+ default: void 0
62
+ },
63
+ destroyOnHidden: {
64
+ type: Boolean,
65
+ required: false,
66
+ default: void 0
67
+ },
68
+ expandIcon: {
69
+ type: Function,
70
+ required: false,
71
+ default: void 0
72
+ },
73
+ collapsible: {
74
+ type: String,
75
+ required: false,
76
+ default: void 0
77
+ },
78
+ items: {
79
+ type: Array,
80
+ required: false,
81
+ default: void 0
82
+ },
83
+ classNames: {
84
+ type: Object,
85
+ required: false,
86
+ default: void 0
87
+ },
88
+ styles: {
89
+ type: Object,
90
+ required: false,
91
+ default: void 0
92
+ }
93
+ }, { prefixCls: "vc-collapse" }),
94
+ name: "VcCollapse",
95
+ inheritAttrs: false,
96
+ setup(props, { attrs, expose, slots }) {
97
+ const refWrapper = (0, vue.ref)();
98
+ const [activeKey, setActiveKey] = (0, _v_c_util_dist_hooks_useMergedState.default)([], {
99
+ value: (0, vue.toRef)(props, "activeKey"),
100
+ onChange: (v) => props.onChange?.(v),
101
+ defaultValue: props.defaultActiveKey,
102
+ postState: getActiveKeysArray
103
+ });
104
+ const getActiveKey = (key) => {
105
+ if (props.accordion) return activeKey.value[0] === key ? [] : [key];
106
+ if (activeKey.value.indexOf(key) > -1) return activeKey.value.filter((item) => item !== key);
107
+ return [...activeKey.value, key];
108
+ };
109
+ const onItemClick = (key) => {
110
+ activeKey.value = getActiveKey(key);
111
+ setActiveKey(activeKey.value);
112
+ };
113
+ expose({ ref: refWrapper });
114
+ return () => {
115
+ const { prefixCls = "vc-collapse", openMotion, expandIcon, collapsible, accordion, classNames, styles, items, destroyOnHidden } = props;
116
+ const collapseClassName = (0, _v_c_util.classNames)(prefixCls, attrs.class);
117
+ const mergedProps = {
118
+ ...props,
119
+ ...(0, _v_c_util_dist_omit.default)(attrs, ["class", "style"])
120
+ };
121
+ const mergedChildren = require_useItems.useItems(items, slots.default, {
122
+ prefixCls,
123
+ accordion,
124
+ openMotion,
125
+ expandIcon,
126
+ collapsible,
127
+ onItemClick,
128
+ activeKey: activeKey.value,
129
+ destroyOnHidden,
130
+ classNames,
131
+ styles
132
+ });
133
+ return (0, vue.createVNode)("div", (0, vue.mergeProps)({
134
+ "ref": refWrapper,
135
+ "class": collapseClassName,
136
+ "style": attrs.style,
137
+ "role": accordion ? "tablist" : void 0
138
+ }, (0, _v_c_util_dist_pickAttrs.default)(mergedProps, {
139
+ aria: true,
140
+ data: true
141
+ })), [mergedChildren]);
142
+ };
143
+ }
144
+ });
145
+ var Collapse_default = Collapse;
146
+ exports.default = Collapse_default;
package/dist/Collapse.js CHANGED
@@ -1,125 +1,137 @@
1
- import { defineComponent as K, mergeDefaults as x, ref as N, toRef as b, createVNode as S, mergeProps as h } from "vue";
2
- import { classNames as O } from "@v-c/util";
3
- import I from "@v-c/util/dist/hooks/useMergedState";
4
- import M from "@v-c/util/dist/omit";
5
- import V from "@v-c/util/dist/pickAttrs";
6
- import { useItems as j } from "./hooks/useItems.js";
7
- function B(r) {
8
- let t = r;
9
- if (!Array.isArray(t)) {
10
- const a = typeof t;
11
- t = a === "number" || a === "string" ? [t] : [];
12
- }
13
- return t.map((a) => String(a));
1
+ import { useItems } from "./hooks/useItems.js";
2
+ import { createVNode, defineComponent, mergeDefaults, mergeProps, ref, toRef } from "vue";
3
+ import { classNames } from "@v-c/util";
4
+ import useMergedState from "@v-c/util/dist/hooks/useMergedState";
5
+ import omit from "@v-c/util/dist/omit";
6
+ import pickAttrs from "@v-c/util/dist/pickAttrs";
7
+ function getActiveKeysArray(activeKey) {
8
+ let currentActiveKey = activeKey;
9
+ if (!Array.isArray(currentActiveKey)) {
10
+ const activeKeyType = typeof currentActiveKey;
11
+ currentActiveKey = activeKeyType === "number" || activeKeyType === "string" ? [currentActiveKey] : [];
12
+ }
13
+ return currentActiveKey.map((key) => String(key));
14
14
  }
15
- const F = {
16
- prefixCls: "vc-collapse"
17
- }, $ = /* @__PURE__ */ K({
18
- props: /* @__PURE__ */ x({
19
- prefixCls: {
20
- type: String,
21
- required: !1
22
- },
23
- activeKey: {
24
- type: [String, Number, Array],
25
- required: !1
26
- },
27
- defaultActiveKey: {
28
- type: [String, Number, Array],
29
- required: !1
30
- },
31
- openMotion: {
32
- type: null,
33
- required: !1
34
- },
35
- onChange: {
36
- type: Function,
37
- required: !1
38
- },
39
- accordion: {
40
- type: Boolean,
41
- required: !1
42
- },
43
- destroyOnHidden: {
44
- type: Boolean,
45
- required: !1
46
- },
47
- expandIcon: {
48
- type: Function,
49
- required: !1
50
- },
51
- collapsible: {
52
- type: String,
53
- required: !1
54
- },
55
- items: {
56
- type: Array,
57
- required: !1
58
- },
59
- classNames: {
60
- type: Object,
61
- required: !1
62
- },
63
- styles: {
64
- type: Object,
65
- required: !1
66
- }
67
- }, F),
68
- name: "VcCollapse",
69
- inheritAttrs: !1,
70
- setup(r, {
71
- attrs: t,
72
- expose: a,
73
- slots: u
74
- }) {
75
- const l = N(), [s, f] = I([], {
76
- value: b(r, "activeKey"),
77
- onChange: (e) => r.onChange?.(e),
78
- defaultValue: r.defaultActiveKey,
79
- postState: B
80
- }), d = (e) => r.accordion ? s.value[0] === e ? [] : [e] : s.value.indexOf(e) > -1 ? s.value.filter((i) => i !== e) : [...s.value, e], p = (e) => {
81
- s.value = d(e), f(s.value);
82
- };
83
- return a({
84
- ref: l
85
- }), () => {
86
- const {
87
- prefixCls: e = "vc-collapse",
88
- openMotion: n,
89
- expandIcon: o,
90
- collapsible: i,
91
- accordion: c,
92
- classNames: y,
93
- styles: m,
94
- items: v,
95
- destroyOnHidden: g
96
- } = r, A = O(e, t.class), q = {
97
- ...r,
98
- ...M(t, ["class", "style"])
99
- }, C = j(v, u.default, {
100
- prefixCls: e,
101
- accordion: c,
102
- openMotion: n,
103
- expandIcon: o,
104
- collapsible: i,
105
- onItemClick: p,
106
- activeKey: s.value,
107
- destroyOnHidden: g,
108
- classNames: y,
109
- styles: m
110
- });
111
- return S("div", h({
112
- ref: l,
113
- class: A,
114
- style: t.style,
115
- role: c ? "tablist" : void 0
116
- }, V(q, {
117
- aria: !0,
118
- data: !0
119
- })), [C]);
120
- };
121
- }
15
+ var Collapse_default = /* @__PURE__ */ defineComponent({
16
+ props: /* @__PURE__ */ mergeDefaults({
17
+ prefixCls: {
18
+ type: String,
19
+ required: false,
20
+ default: void 0
21
+ },
22
+ activeKey: {
23
+ type: [
24
+ String,
25
+ Number,
26
+ Array
27
+ ],
28
+ required: false,
29
+ default: void 0
30
+ },
31
+ defaultActiveKey: {
32
+ type: [
33
+ String,
34
+ Number,
35
+ Array
36
+ ],
37
+ required: false,
38
+ default: void 0
39
+ },
40
+ openMotion: {
41
+ type: Object,
42
+ required: false,
43
+ default: void 0
44
+ },
45
+ onChange: {
46
+ type: Function,
47
+ required: false,
48
+ default: void 0
49
+ },
50
+ accordion: {
51
+ type: Boolean,
52
+ required: false,
53
+ default: void 0
54
+ },
55
+ destroyOnHidden: {
56
+ type: Boolean,
57
+ required: false,
58
+ default: void 0
59
+ },
60
+ expandIcon: {
61
+ type: Function,
62
+ required: false,
63
+ default: void 0
64
+ },
65
+ collapsible: {
66
+ type: String,
67
+ required: false,
68
+ default: void 0
69
+ },
70
+ items: {
71
+ type: Array,
72
+ required: false,
73
+ default: void 0
74
+ },
75
+ classNames: {
76
+ type: Object,
77
+ required: false,
78
+ default: void 0
79
+ },
80
+ styles: {
81
+ type: Object,
82
+ required: false,
83
+ default: void 0
84
+ }
85
+ }, { prefixCls: "vc-collapse" }),
86
+ name: "VcCollapse",
87
+ inheritAttrs: false,
88
+ setup(props, { attrs, expose, slots }) {
89
+ const refWrapper = ref();
90
+ const [activeKey, setActiveKey] = useMergedState([], {
91
+ value: toRef(props, "activeKey"),
92
+ onChange: (v) => props.onChange?.(v),
93
+ defaultValue: props.defaultActiveKey,
94
+ postState: getActiveKeysArray
95
+ });
96
+ const getActiveKey = (key) => {
97
+ if (props.accordion) return activeKey.value[0] === key ? [] : [key];
98
+ if (activeKey.value.indexOf(key) > -1) return activeKey.value.filter((item) => item !== key);
99
+ return [...activeKey.value, key];
100
+ };
101
+ const onItemClick = (key) => {
102
+ activeKey.value = getActiveKey(key);
103
+ setActiveKey(activeKey.value);
104
+ };
105
+ expose({ ref: refWrapper });
106
+ return () => {
107
+ const { prefixCls = "vc-collapse", openMotion, expandIcon, collapsible, accordion, classNames: classNames$1, styles, items, destroyOnHidden } = props;
108
+ const collapseClassName = classNames(prefixCls, attrs.class);
109
+ const mergedProps = {
110
+ ...props,
111
+ ...omit(attrs, ["class", "style"])
112
+ };
113
+ const mergedChildren = useItems(items, slots.default, {
114
+ prefixCls,
115
+ accordion,
116
+ openMotion,
117
+ expandIcon,
118
+ collapsible,
119
+ onItemClick,
120
+ activeKey: activeKey.value,
121
+ destroyOnHidden,
122
+ classNames: classNames$1,
123
+ styles
124
+ });
125
+ return createVNode("div", mergeProps({
126
+ "ref": refWrapper,
127
+ "class": collapseClassName,
128
+ "style": attrs.style,
129
+ "role": accordion ? "tablist" : void 0
130
+ }, pickAttrs(mergedProps, {
131
+ aria: true,
132
+ data: true
133
+ })), [mergedChildren]);
134
+ };
135
+ }
122
136
  });
123
- export {
124
- $ as default
125
- };
137
+ export { Collapse_default as default };
package/dist/Panel.cjs CHANGED
@@ -1 +1,216 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),o=require("@v-c/util"),y=require("@v-c/util/dist/KeyCode"),O=require("@v-c/util/dist/omit"),R=require("./PanelContent.cjs"),B={showArrow:!0,classNames:{},styles:{}},j=e.defineComponent({props:e.mergeDefaults({id:{type:String,required:!1},header:{type:null,required:!1},prefixCls:{type:String,required:!1},headerClass:{type:String,required:!1},showArrow:{type:Boolean,required:!1},class:{type:String,required:!1},classNames:{type:Object,required:!1},style:{type:Object,required:!1},styles:{type:Object,required:!1},isActive:{type:Boolean,required:!1},openMotion:{type:null,required:!1},destroyOnHidden:{type:Boolean,required:!1},accordion:{type:Boolean,required:!1},forceRender:{type:Boolean,required:!1},extra:{type:null,required:!1},onItemClick:{type:Function,required:!1},expandIcon:{type:Function,required:!1},panelKey:{type:[String,Number],required:!1},role:{type:String,required:!1},collapsible:{type:String,required:!1},children:{type:null,required:!1}},B),name:"CollapsePanel",inheritAttrs:!1,setup(a,{attrs:m,expose:q}){const d=e.computed(()=>a.collapsible==="disabled"),u=e.ref(),N=e.computed(()=>a.extra!==null&&a.extra!==void 0&&typeof a.extra!="boolean"),c=e.computed(()=>({onClick:()=>{a.onItemClick?.(a.panelKey)},onKeydown:r=>{(r.key==="Enter"||r.keyCode===y.ENTER||r.which===y.ENTER)&&a.onItemClick?.(a.panelKey)},role:a.accordion?"tab":"button","aria-expanded":a.isActive,"aria-disabled":d.value,tabIndex:d.value?-1:0}));return q({ref:u}),()=>{const{extra:r,prefixCls:s,isActive:l,class:h,expandIcon:f,forceRender:v,headerClass:C,collapsible:t,accordion:b,openMotion:x={},onItemClick:M,classNames:n={},showArrow:g=!0,destroyOnHidden:P,styles:i={},header:w,panelKey:T,children:S,...$}=a,A=o.classNames(`${s}-item`,{[`${s}-item-active`]:l,[`${s}-item-disabled`]:d.value},h),I={class:o.classNames(C,`${s}-header`,{[`${s}-collapsible-${t}`]:!!t},n.header),style:i.header,...["header","icon"].includes(t)?{}:c.value},p=typeof f=="function"?f(a):e.createVNode("i",{class:"arrow"},null),V=p&&e.createVNode("div",e.mergeProps({class:o.classNames(`${s}-expand-icon`,n?.icon),style:i?.icon},["header","icon"].includes(t)?c.value:{}),[p]),k=e.withDirectives(e.createVNode(R.default,{prefixCls:s,classNames:n,styles:i,isActive:l,forceRender:v,role:b?"tabpanel":void 0},{default:()=>S}),[[e.vShow,l]]),E={appear:!1,...x},K={...$,...O(m,["class"])};return e.createVNode("div",e.mergeProps(K,{ref:u,class:A}),[e.createVNode("div",I,[g&&V,e.createVNode("span",e.mergeProps({class:o.classNames(`${s}-title`,n?.title),style:i?.title},t==="header"?c.value:{}),[w]),N.value&&e.createVNode("div",{class:`${s}-extra`},[r])]),e.createVNode(e.Transition,E,{default:()=>[!P||l?k:null]})])}}});exports.default=j;
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_rolldown_runtime = require("./_virtual/rolldown_runtime.cjs");
6
+ const require_PanelContent = require("./PanelContent.cjs");
7
+ let vue = require("vue");
8
+ let _v_c_util = require("@v-c/util");
9
+ let _v_c_util_dist_omit = require("@v-c/util/dist/omit");
10
+ _v_c_util_dist_omit = require_rolldown_runtime.__toESM(_v_c_util_dist_omit);
11
+ let _v_c_util_dist_KeyCode = require("@v-c/util/dist/KeyCode");
12
+ _v_c_util_dist_KeyCode = require_rolldown_runtime.__toESM(_v_c_util_dist_KeyCode);
13
+ var CollapsePanel = /* @__PURE__ */ (0, vue.defineComponent)({
14
+ props: /* @__PURE__ */ (0, vue.mergeDefaults)({
15
+ id: {
16
+ type: String,
17
+ required: false,
18
+ default: void 0
19
+ },
20
+ header: {
21
+ type: [
22
+ Object,
23
+ Function,
24
+ String,
25
+ Number,
26
+ null,
27
+ Boolean,
28
+ Array
29
+ ],
30
+ required: false,
31
+ default: void 0
32
+ },
33
+ prefixCls: {
34
+ type: String,
35
+ required: false,
36
+ default: void 0
37
+ },
38
+ headerClass: {
39
+ type: String,
40
+ required: false,
41
+ default: void 0
42
+ },
43
+ showArrow: {
44
+ type: Boolean,
45
+ required: false,
46
+ default: void 0
47
+ },
48
+ class: {
49
+ type: String,
50
+ required: false,
51
+ default: void 0
52
+ },
53
+ classNames: {
54
+ type: Object,
55
+ required: false,
56
+ default: void 0
57
+ },
58
+ style: {
59
+ type: Object,
60
+ required: false,
61
+ default: void 0
62
+ },
63
+ styles: {
64
+ type: Object,
65
+ required: false,
66
+ default: void 0
67
+ },
68
+ isActive: {
69
+ type: Boolean,
70
+ required: false,
71
+ default: void 0
72
+ },
73
+ openMotion: {
74
+ type: Object,
75
+ required: false,
76
+ default: void 0
77
+ },
78
+ destroyOnHidden: {
79
+ type: Boolean,
80
+ required: false,
81
+ default: void 0
82
+ },
83
+ accordion: {
84
+ type: Boolean,
85
+ required: false,
86
+ default: void 0
87
+ },
88
+ forceRender: {
89
+ type: Boolean,
90
+ required: false,
91
+ default: void 0
92
+ },
93
+ extra: {
94
+ type: [
95
+ Object,
96
+ Function,
97
+ String,
98
+ Number,
99
+ null,
100
+ Boolean,
101
+ Array
102
+ ],
103
+ required: false,
104
+ default: void 0
105
+ },
106
+ onItemClick: {
107
+ type: Function,
108
+ required: false,
109
+ default: void 0
110
+ },
111
+ expandIcon: {
112
+ type: Function,
113
+ required: false,
114
+ default: void 0
115
+ },
116
+ panelKey: {
117
+ type: [String, Number],
118
+ required: false,
119
+ default: void 0
120
+ },
121
+ role: {
122
+ type: String,
123
+ required: false,
124
+ default: void 0
125
+ },
126
+ collapsible: {
127
+ type: String,
128
+ required: false,
129
+ default: void 0
130
+ },
131
+ children: {
132
+ type: [
133
+ Object,
134
+ Function,
135
+ String,
136
+ Number,
137
+ null,
138
+ Boolean,
139
+ Array
140
+ ],
141
+ required: false,
142
+ default: void 0
143
+ }
144
+ }, {
145
+ showArrow: true,
146
+ classNames: {},
147
+ styles: {}
148
+ }),
149
+ name: "CollapsePanel",
150
+ inheritAttrs: false,
151
+ setup(props, { attrs, expose }) {
152
+ const disabled = (0, vue.computed)(() => props.collapsible === "disabled");
153
+ const refWrapper = (0, vue.ref)();
154
+ const ifExtraExist = (0, vue.computed)(() => props.extra !== null && props.extra !== void 0 && typeof props.extra !== "boolean");
155
+ const collapsibleProps = (0, vue.computed)(() => {
156
+ return {
157
+ "onClick": () => {
158
+ props.onItemClick?.(props.panelKey);
159
+ },
160
+ "onKeydown": (e) => {
161
+ if (e.key === "Enter" || e.keyCode === _v_c_util_dist_KeyCode.default.ENTER || e.which === _v_c_util_dist_KeyCode.default.ENTER) props.onItemClick?.(props.panelKey);
162
+ },
163
+ "role": props.accordion ? "tab" : "button",
164
+ "aria-expanded": props.isActive,
165
+ "aria-disabled": disabled.value,
166
+ "tabIndex": disabled.value ? -1 : 0
167
+ };
168
+ });
169
+ expose({ ref: refWrapper });
170
+ return () => {
171
+ const { extra, prefixCls, isActive, class: className, expandIcon, forceRender, headerClass, collapsible, accordion, openMotion = {}, onItemClick, classNames: customizeClassNames = {}, showArrow = true, destroyOnHidden, styles = {}, header, panelKey, children, ...restProps } = props;
172
+ const collapsePanelClassNames = (0, _v_c_util.classNames)(`${prefixCls}-item`, {
173
+ [`${prefixCls}-item-active`]: isActive,
174
+ [`${prefixCls}-item-disabled`]: disabled.value
175
+ }, className);
176
+ const headerProps = {
177
+ class: (0, _v_c_util.classNames)(headerClass, `${prefixCls}-header`, { [`${prefixCls}-collapsible-${collapsible}`]: !!collapsible }, customizeClassNames.header),
178
+ style: styles.header,
179
+ ...["header", "icon"].includes(collapsible) ? {} : collapsibleProps.value
180
+ };
181
+ const iconNodeInner = typeof expandIcon === "function" ? expandIcon(props) : (0, vue.createVNode)("i", { "class": "arrow" }, null);
182
+ const iconNode = iconNodeInner && (0, vue.createVNode)("div", (0, vue.mergeProps)({
183
+ "class": (0, _v_c_util.classNames)(`${prefixCls}-expand-icon`, customizeClassNames?.icon),
184
+ "style": styles?.icon
185
+ }, ["header", "icon"].includes(collapsible) ? collapsibleProps.value : {}), [iconNodeInner]);
186
+ const panelContent = (0, vue.withDirectives)((0, vue.createVNode)(require_PanelContent.default, {
187
+ "prefixCls": prefixCls,
188
+ "classNames": customizeClassNames,
189
+ "styles": styles,
190
+ "isActive": isActive,
191
+ "forceRender": forceRender,
192
+ "role": accordion ? "tabpanel" : void 0
193
+ }, { default: () => children }), [[vue.vShow, isActive]]);
194
+ const transitionProps = {
195
+ appear: false,
196
+ ...openMotion
197
+ };
198
+ return (0, vue.createVNode)("div", (0, vue.mergeProps)({
199
+ ...restProps,
200
+ ...(0, _v_c_util_dist_omit.default)(attrs, ["class"])
201
+ }, {
202
+ "ref": refWrapper,
203
+ "class": collapsePanelClassNames
204
+ }), [(0, vue.createVNode)("div", headerProps, [
205
+ showArrow && iconNode,
206
+ (0, vue.createVNode)("span", (0, vue.mergeProps)({
207
+ "class": (0, _v_c_util.classNames)(`${prefixCls}-title`, customizeClassNames?.title),
208
+ "style": styles?.title
209
+ }, collapsible === "header" ? collapsibleProps.value : {}), [header]),
210
+ ifExtraExist.value && (0, vue.createVNode)("div", { "class": `${prefixCls}-extra` }, [extra])
211
+ ]), (0, vue.createVNode)(vue.Transition, transitionProps, { default: () => [!destroyOnHidden || isActive ? panelContent : null] })]);
212
+ };
213
+ }
214
+ });
215
+ var Panel_default = CollapsePanel;
216
+ exports.default = Panel_default;