hzzt-plus 0.0.8 → 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.
Files changed (93) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +438 -246
  3. package/dist/index.full.min.js +13 -13
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +13 -13
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +433 -248
  8. package/es/component.mjs +3 -1
  9. package/es/component.mjs.map +1 -1
  10. package/es/components/index.d.ts +1 -0
  11. package/es/components/index.mjs +3 -0
  12. package/es/components/index.mjs.map +1 -1
  13. package/es/components/scan/index.d.ts +5 -0
  14. package/es/components/scan/index.mjs +9 -0
  15. package/es/components/scan/index.mjs.map +1 -0
  16. package/es/components/scan/src/scan.d.ts +15 -0
  17. package/es/components/scan/src/scan.mjs +28 -0
  18. package/es/components/scan/src/scan.mjs.map +1 -0
  19. package/es/components/scan/src/scan.vue.d.ts +572 -0
  20. package/es/components/scan/src/scan2.mjs +149 -0
  21. package/es/components/scan/src/scan2.mjs.map +1 -0
  22. package/es/components/scan/style/css.d.ts +2 -0
  23. package/es/components/scan/style/css.mjs +3 -0
  24. package/es/components/scan/style/css.mjs.map +1 -0
  25. package/es/components/scan/style/index.d.ts +2 -0
  26. package/es/components/scan/style/index.mjs +3 -0
  27. package/es/components/scan/style/index.mjs.map +1 -0
  28. package/es/components/tab/index.d.ts +161 -3
  29. package/es/components/tab/src/index.mjs +19 -4
  30. package/es/components/tab/src/index.mjs.map +1 -1
  31. package/es/components/tab/src/index.vue.d.ts +162 -3
  32. package/es/components/title/index.d.ts +4 -29
  33. package/es/components/title/index.mjs +2 -1
  34. package/es/components/title/index.mjs.map +1 -1
  35. package/es/components/title/src/title.d.ts +8 -0
  36. package/es/components/title/src/title.mjs +8 -43
  37. package/es/components/title/src/title.mjs.map +1 -1
  38. package/es/components/title/src/title.vue.d.ts +7 -16
  39. package/es/components/title/src/title2.mjs +44 -0
  40. package/es/components/title/src/title2.mjs.map +1 -0
  41. package/es/constants/index.d.ts +1 -0
  42. package/es/constants/index.mjs +1 -0
  43. package/es/constants/index.mjs.map +1 -1
  44. package/es/index.mjs +4 -0
  45. package/es/index.mjs.map +1 -1
  46. package/global.d.ts +1 -0
  47. package/lib/component.js +3 -1
  48. package/lib/component.js.map +1 -1
  49. package/lib/components/index.d.ts +1 -0
  50. package/lib/components/index.js +7 -0
  51. package/lib/components/index.js.map +1 -1
  52. package/lib/components/scan/index.d.ts +5 -0
  53. package/lib/components/scan/index.js +16 -0
  54. package/lib/components/scan/index.js.map +1 -0
  55. package/lib/components/scan/src/scan.d.ts +15 -0
  56. package/lib/components/scan/src/scan.js +33 -0
  57. package/lib/components/scan/src/scan.js.map +1 -0
  58. package/lib/components/scan/src/scan.vue.d.ts +572 -0
  59. package/lib/components/scan/src/scan2.js +153 -0
  60. package/lib/components/scan/src/scan2.js.map +1 -0
  61. package/lib/components/scan/style/css.d.ts +2 -0
  62. package/lib/components/scan/style/css.js +6 -0
  63. package/lib/components/scan/style/css.js.map +1 -0
  64. package/lib/components/scan/style/index.d.ts +2 -0
  65. package/lib/components/scan/style/index.js +6 -0
  66. package/lib/components/scan/style/index.js.map +1 -0
  67. package/lib/components/tab/index.d.ts +161 -3
  68. package/lib/components/tab/src/index.js +18 -3
  69. package/lib/components/tab/src/index.js.map +1 -1
  70. package/lib/components/tab/src/index.vue.d.ts +162 -3
  71. package/lib/components/title/index.d.ts +4 -29
  72. package/lib/components/title/index.js +3 -1
  73. package/lib/components/title/index.js.map +1 -1
  74. package/lib/components/title/src/title.d.ts +8 -0
  75. package/lib/components/title/src/title.js +8 -43
  76. package/lib/components/title/src/title.js.map +1 -1
  77. package/lib/components/title/src/title.vue.d.ts +7 -16
  78. package/lib/components/title/src/title2.js +48 -0
  79. package/lib/components/title/src/title2.js.map +1 -0
  80. package/lib/constants/index.d.ts +1 -0
  81. package/lib/constants/index.js +4 -0
  82. package/lib/constants/index.js.map +1 -1
  83. package/lib/index.js +37 -26
  84. package/lib/index.js.map +1 -1
  85. package/package.json +1 -1
  86. package/theme/hzzt-collapse.css +1 -1
  87. package/theme/hzzt-scan.css +1 -0
  88. package/theme/hzzt-tab.css +1 -1
  89. package/theme/index.css +1 -1
  90. package/theme/src/collapse.scss +1 -0
  91. package/theme/src/index.scss +1 -0
  92. package/theme/src/scan.scss +80 -0
  93. package/theme/src/tab.scss +24 -6
@@ -0,0 +1,153 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var elementPlus = require('element-plus');
7
+ var scan = require('./scan.js');
8
+ var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
9
+
10
+ const _hoisted_1 = /* @__PURE__ */ vue.createElementVNode("div", { style: { "width": "0", "height": "0", "overflow": "hidden" } }, [
11
+ /* @__PURE__ */ vue.createElementVNode("input", {
12
+ readonly: "",
13
+ style: { "width": "0", "height": "0", "overflow": "hidden" }
14
+ }),
15
+ /* @__PURE__ */ vue.createElementVNode("input", {
16
+ readonly: "",
17
+ type: "password",
18
+ autocomplete: "off",
19
+ style: { "width": "0", "height": "0", "overflow": "hidden" }
20
+ })
21
+ ], -1);
22
+ const _hoisted_2 = {
23
+ class: "width-100%",
24
+ style: { "overflow": "hidden" }
25
+ };
26
+ const __default__ = vue.defineComponent({
27
+ inheritAttrs: false,
28
+ name: "HzztScan"
29
+ });
30
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
31
+ ...__default__,
32
+ props: scan.scanProps,
33
+ emits: scan.scanEmits,
34
+ setup(__props, { expose, emit }) {
35
+ const props = __props;
36
+ const readonly = vue.ref(true);
37
+ const innerValue = vue.ref(" ");
38
+ const inputRef = vue.ref();
39
+ const showValue = vue.computed(() => {
40
+ if (innerValue.value === " ") {
41
+ return ` ${props.placeholder}`;
42
+ } else {
43
+ return innerValue.value;
44
+ }
45
+ });
46
+ const inputType = vue.computed(() => {
47
+ if (innerValue.value && !readonly.value) {
48
+ return "password";
49
+ } else {
50
+ return "text";
51
+ }
52
+ });
53
+ vue.watch(() => props.modelValue, (v) => {
54
+ if (!v) {
55
+ innerValue.value = " ";
56
+ } else {
57
+ innerValue.value = ` ${changeLetter(v)}`;
58
+ }
59
+ });
60
+ vue.watch(() => innerValue.value, (v) => {
61
+ if (!v) {
62
+ innerValue.value = " ";
63
+ }
64
+ const str = innerValue.value[0] === " " ? innerValue.value.slice(1) : innerValue.value;
65
+ const final = changeLetter(str != null ? str : "");
66
+ emit("update:modelValue", final);
67
+ emit("input", final);
68
+ });
69
+ function changeLetter(v) {
70
+ if (props.letter === "upper") {
71
+ return v.toLocaleUpperCase();
72
+ } else if (props.letter === "lower") {
73
+ return v.toLocaleLowerCase();
74
+ } else {
75
+ return v;
76
+ }
77
+ }
78
+ function inputFocus() {
79
+ readonly.value = false;
80
+ }
81
+ function inputBlur() {
82
+ readonly.value = true;
83
+ }
84
+ function inputChange() {
85
+ emit("change", props.modelValue);
86
+ }
87
+ function focus() {
88
+ readonly.value = false;
89
+ setTimeout(() => {
90
+ inputRef.value.focus();
91
+ });
92
+ }
93
+ function blur() {
94
+ readonly.value = true;
95
+ inputRef.value.blur();
96
+ }
97
+ function clear() {
98
+ inputRef.value.clear();
99
+ }
100
+ expose({
101
+ focus,
102
+ blur,
103
+ clear
104
+ });
105
+ return (_ctx, _cache) => {
106
+ return vue.openBlock(), vue.createElementBlock("div", {
107
+ class: vue.normalizeClass(["hzzt-scan", _ctx.$attrs.class]),
108
+ style: vue.normalizeStyle([{ "position": "relative" }, _ctx.$attrs.style])
109
+ }, [
110
+ _hoisted_1,
111
+ vue.createVNode(vue.unref(elementPlus.ElInput), vue.mergeProps({
112
+ ref_key: "inputRef",
113
+ ref: inputRef,
114
+ modelValue: innerValue.value,
115
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => innerValue.value = $event)
116
+ }, {
117
+ ..._ctx.$attrs,
118
+ class: "",
119
+ style: "",
120
+ onChange: ""
121
+ }, {
122
+ readonly: readonly.value,
123
+ type: vue.unref(inputType),
124
+ class: "hzzt-scan-input-original",
125
+ autocomplete: "off",
126
+ onFocus: inputFocus,
127
+ onBlur: inputBlur,
128
+ onChange: inputChange
129
+ }), vue.createSlots({
130
+ _: 2
131
+ }, [
132
+ vue.renderList(_ctx.$slots, (_, key, index) => {
133
+ return {
134
+ name: key,
135
+ fn: vue.withCtx(() => [
136
+ vue.renderSlot(_ctx.$slots, key)
137
+ ])
138
+ };
139
+ })
140
+ ]), 1040, ["modelValue", "readonly", "type"]),
141
+ vue.createElementVNode("div", {
142
+ class: vue.normalizeClass(["hzzt-scan-input-backup", { "placeholder-color": innerValue.value === " " }])
143
+ }, [
144
+ vue.createElementVNode("div", _hoisted_2, vue.toDisplayString(vue.unref(showValue)), 1)
145
+ ], 2)
146
+ ], 6);
147
+ };
148
+ }
149
+ });
150
+ var Scan = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "scan.vue"]]);
151
+
152
+ exports["default"] = Scan;
153
+ //# sourceMappingURL=scan2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan2.js","sources":["../../../../../../packages/components/scan/src/scan.vue"],"sourcesContent":["<template>\n <div\n class=\"hzzt-scan\"\n style=\"position: relative\"\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n >\n <div style=\"width: 0; height: 0; overflow: hidden\">\n <input readonly style=\"width: 0; height: 0; overflow: hidden\" />\n <input\n readonly\n type=\"password\"\n autocomplete=\"off\"\n style=\"width: 0; height: 0; overflow: hidden\"\n />\n </div>\n\n <el-input\n ref=\"inputRef\"\n v-model=\"innerValue\"\n v-bind=\"{\n ...$attrs,\n class: '',\n style: '',\n onChange: '',\n }\"\n :readonly=\"readonly\"\n :type=\"inputType\"\n class=\"hzzt-scan-input-original\"\n autocomplete=\"off\"\n @focus=\"inputFocus\"\n @blur=\"inputBlur\"\n @change=\"inputChange\"\n >\n <template v-for=\"(_, key, index) in $slots\" :key=\"index\" #[key]>\n <slot :name=\"key\" />\n </template>\n </el-input>\n <div\n class=\"hzzt-scan-input-backup\"\n :class=\"{ 'placeholder-color': innerValue === ' ' }\"\n >\n <div class=\"width-100%\" style=\"overflow: hidden\">\n {{ showValue }}\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\nimport { ElInput } from 'element-plus'\nimport { scanEmits, scanProps } from '@hzzt-plus/components/scan/src/scan'\n\ndefineOptions({\n inheritAttrs: false,\n name: 'HzztScan',\n})\n\nconst props = defineProps(scanProps)\n\nconst emit = defineEmits(scanEmits)\n\nconst readonly = ref(true)\nconst innerValue = ref(' ')\nconst inputRef = ref()\n\nconst showValue = computed(() => {\n if (innerValue.value === ' ') {\n return ` ${props.placeholder}`\n } else {\n return innerValue.value\n }\n})\n\nconst inputType = computed(() => {\n if (innerValue.value && !readonly.value) {\n return 'password'\n } else {\n return 'text'\n }\n})\n\nwatch(\n () => props.modelValue,\n (v) => {\n if (!v) {\n innerValue.value = ' '\n } else {\n innerValue.value = ` ${changeLetter(v)}`\n }\n }\n)\n\nwatch(\n () => innerValue.value,\n (v) => {\n if (!v) {\n innerValue.value = ' '\n }\n const str =\n innerValue.value[0] === ' ' ? innerValue.value.slice(1) : innerValue.value\n const final = changeLetter(str ?? '')\n emit('update:modelValue', final)\n emit('input', final)\n }\n)\n\nfunction changeLetter(v: string) {\n if (props.letter === 'upper') {\n return v.toLocaleUpperCase()\n } else if (props.letter === 'lower') {\n return v.toLocaleLowerCase()\n } else {\n return v\n }\n}\n\nfunction inputFocus() {\n readonly.value = false\n}\n\nfunction inputBlur() {\n readonly.value = true\n}\n\nfunction inputChange() {\n emit('change', props.modelValue)\n}\n\nfunction focus() {\n readonly.value = false\n setTimeout(() => {\n inputRef.value.focus()\n })\n}\n\nfunction blur() {\n readonly.value = true\n inputRef.value.blur()\n}\n\nfunction clear() {\n inputRef.value.clear()\n}\n\ndefineExpose({\n focus,\n blur,\n clear,\n})\n</script>\n"],"names":["_defineComponent","scanEmits","watch","_openBlock","_createElementBlock","_normalizeClass","_normalizeStyle","_createVNode","_unref","ElInput","_mergeProps"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import 'hzzt-plus/es/components/base/style/css';
2
+ import 'hzzt-plus/theme/hzzt-scan.css';
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ require('../../base/style/css.js');
4
+ require('hzzt-plus/theme/hzzt-scan.css');
5
+
6
+ //# sourceMappingURL=css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,2 @@
1
+ import 'hzzt-plus/es/components/base/style';
2
+ import 'hzzt-plus/theme/src/scan.scss';
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ require('../../base/style/index.js');
4
+ require('hzzt-plus/theme/src/scan.scss');
5
+
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -6,6 +6,10 @@ export declare const HzztTab: import("hzzt-plus/es/utils").SFCWithInstall<import
6
6
  modelValue: {
7
7
  type: (ArrayConstructor | NumberConstructor | StringConstructor)[];
8
8
  };
9
+ closable: {
10
+ type: BooleanConstructor;
11
+ default: () => boolean;
12
+ };
9
13
  }, {
10
14
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
11
15
  tabList: {
@@ -15,11 +19,16 @@ export declare const HzztTab: import("hzzt-plus/es/utils").SFCWithInstall<import
15
19
  modelValue: {
16
20
  type: (ArrayConstructor | NumberConstructor | StringConstructor)[];
17
21
  };
22
+ closable: {
23
+ type: BooleanConstructor;
24
+ default: () => boolean;
25
+ };
18
26
  }>> & {
19
27
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
20
28
  "onTab-click"?: ((...args: any[]) => any) | undefined;
29
+ "onTab-close"?: ((...args: any[]) => any) | undefined;
21
30
  }>>;
22
- emit: (event: "update:modelValue" | "tab-click", ...args: any[]) => void;
31
+ emit: (event: "update:modelValue" | "tab-click" | "tab-close", ...args: any[]) => void;
23
32
  customTabList: import("vue").ComputedRef<{
24
33
  number: number;
25
34
  hide: boolean;
@@ -27,8 +36,151 @@ export declare const HzztTab: import("hzzt-plus/es/utils").SFCWithInstall<import
27
36
  label: string;
28
37
  key: string;
29
38
  }[]>;
30
- tabClick: (tab: any, event: any) => void;
31
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "tab-click")[], "update:modelValue" | "tab-click", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
39
+ tabClick: (tab: {
40
+ name: string;
41
+ label: string;
42
+ number: number;
43
+ hide: boolean;
44
+ }, event: Event) => void;
45
+ close: (index: number, event: Event) => void;
46
+ HzztIcon: import("vue").DefineComponent<{
47
+ name: {
48
+ type: StringConstructor;
49
+ required: true;
50
+ };
51
+ type: {
52
+ type: StringConstructor;
53
+ default: string;
54
+ };
55
+ }, {
56
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
57
+ name: {
58
+ type: StringConstructor;
59
+ required: true;
60
+ };
61
+ type: {
62
+ type: StringConstructor;
63
+ default: string;
64
+ };
65
+ }>> & {
66
+ [x: string & `on${string}`]: ((...args: any[]) => any) | ((...args: unknown[]) => any) | undefined;
67
+ }>>;
68
+ attrs: {
69
+ [x: string]: unknown;
70
+ };
71
+ componentName: import("vue").ComputedRef<string>;
72
+ ElIcon: import("element-plus/es/utils").SFCWithInstall<{
73
+ new (...args: any[]): {
74
+ $: import("vue").ComponentInternalInstance;
75
+ $data: {};
76
+ $props: Partial<{}> & Omit<Readonly<import("vue").ExtractPropTypes<{
77
+ readonly size: {
78
+ readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown>>;
79
+ readonly required: false;
80
+ readonly validator: ((val: unknown) => boolean) | undefined;
81
+ __epPropKey: true;
82
+ };
83
+ readonly color: {
84
+ readonly type: import("vue").PropType<string>;
85
+ readonly required: false;
86
+ readonly validator: ((val: unknown) => boolean) | undefined;
87
+ __epPropKey: true;
88
+ };
89
+ }>> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>;
90
+ $attrs: {
91
+ [x: string]: unknown;
92
+ };
93
+ $refs: {
94
+ [x: string]: unknown;
95
+ };
96
+ $slots: Readonly<{
97
+ [name: string]: import("vue").Slot | undefined;
98
+ }>;
99
+ $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
100
+ $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
101
+ $emit: (event: string, ...args: any[]) => void;
102
+ $el: any;
103
+ $options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
104
+ readonly size: {
105
+ readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown>>;
106
+ readonly required: false;
107
+ readonly validator: ((val: unknown) => boolean) | undefined;
108
+ __epPropKey: true;
109
+ };
110
+ readonly color: {
111
+ readonly type: import("vue").PropType<string>;
112
+ readonly required: false;
113
+ readonly validator: ((val: unknown) => boolean) | undefined;
114
+ __epPropKey: true;
115
+ };
116
+ }>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {}> & {
117
+ beforeCreate?: ((() => void) | (() => void)[]) | undefined;
118
+ created?: ((() => void) | (() => void)[]) | undefined;
119
+ beforeMount?: ((() => void) | (() => void)[]) | undefined;
120
+ mounted?: ((() => void) | (() => void)[]) | undefined;
121
+ beforeUpdate?: ((() => void) | (() => void)[]) | undefined;
122
+ updated?: ((() => void) | (() => void)[]) | undefined;
123
+ activated?: ((() => void) | (() => void)[]) | undefined;
124
+ deactivated?: ((() => void) | (() => void)[]) | undefined;
125
+ beforeDestroy?: ((() => void) | (() => void)[]) | undefined;
126
+ beforeUnmount?: ((() => void) | (() => void)[]) | undefined;
127
+ destroyed?: ((() => void) | (() => void)[]) | undefined;
128
+ unmounted?: ((() => void) | (() => void)[]) | undefined;
129
+ renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
130
+ renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
131
+ errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void)[]) | undefined;
132
+ };
133
+ $forceUpdate: () => void;
134
+ $nextTick: typeof import("vue").nextTick;
135
+ $watch(source: string | Function, cb: Function, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle;
136
+ } & Readonly<import("vue").ExtractPropTypes<{
137
+ readonly size: {
138
+ readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown>>;
139
+ readonly required: false;
140
+ readonly validator: ((val: unknown) => boolean) | undefined;
141
+ __epPropKey: true;
142
+ };
143
+ readonly color: {
144
+ readonly type: import("vue").PropType<string>;
145
+ readonly required: false;
146
+ readonly validator: ((val: unknown) => boolean) | undefined;
147
+ __epPropKey: true;
148
+ };
149
+ }>> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties;
150
+ __isFragment?: undefined;
151
+ __isTeleport?: undefined;
152
+ __isSuspense?: undefined;
153
+ } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
154
+ readonly size: {
155
+ readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown>>;
156
+ readonly required: false;
157
+ readonly validator: ((val: unknown) => boolean) | undefined;
158
+ __epPropKey: true;
159
+ };
160
+ readonly color: {
161
+ readonly type: import("vue").PropType<string>;
162
+ readonly required: false;
163
+ readonly validator: ((val: unknown) => boolean) | undefined;
164
+ __epPropKey: true;
165
+ };
166
+ }>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
167
+ $slots: {
168
+ default?(_: {}): any;
169
+ };
170
+ })>;
171
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
172
+ name: {
173
+ type: StringConstructor;
174
+ required: true;
175
+ };
176
+ type: {
177
+ type: StringConstructor;
178
+ default: string;
179
+ };
180
+ }>>, {
181
+ type: string;
182
+ }>;
183
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "tab-click" | "tab-close")[], "update:modelValue" | "tab-click" | "tab-close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
32
184
  tabList: {
33
185
  type: ArrayConstructor;
34
186
  default: () => never[];
@@ -36,10 +188,16 @@ export declare const HzztTab: import("hzzt-plus/es/utils").SFCWithInstall<import
36
188
  modelValue: {
37
189
  type: (ArrayConstructor | NumberConstructor | StringConstructor)[];
38
190
  };
191
+ closable: {
192
+ type: BooleanConstructor;
193
+ default: () => boolean;
194
+ };
39
195
  }>> & {
40
196
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
41
197
  "onTab-click"?: ((...args: any[]) => any) | undefined;
198
+ "onTab-close"?: ((...args: any[]) => any) | undefined;
42
199
  }, {
43
200
  tabList: unknown[];
201
+ closable: boolean;
44
202
  }>> & Record<string, any>;
45
203
  export default HzztTab;
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var vue = require('vue');
6
+ var index = require('../../icon/src/index.js');
6
7
  var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
7
8
 
8
9
  const _hoisted_1 = { class: "hzzt-tab flex align-items-center justify-content-between wrap" };
@@ -27,9 +28,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
27
28
  },
28
29
  modelValue: {
29
30
  type: [Number, String, Array]
31
+ },
32
+ closable: {
33
+ type: Boolean,
34
+ default: () => false
30
35
  }
31
36
  },
32
- emits: ["update:modelValue", "tab-click"],
37
+ emits: ["update:modelValue", "tab-click", "tab-close"],
33
38
  setup(__props, { emit }) {
34
39
  const props = __props;
35
40
  const customTabList = vue.computed(() => props.tabList.map((value) => {
@@ -47,11 +52,15 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
47
52
  emit("update:modelValue", tab.name);
48
53
  emit("tab-click", tab, event);
49
54
  }
55
+ function close(index, event) {
56
+ event.stopPropagation();
57
+ emit("tab-close", index);
58
+ }
50
59
  return (_ctx, _cache) => {
51
60
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
52
61
  vue.createElementVNode("div", _hoisted_2, [
53
62
  vue.createElementVNode("div", _hoisted_3, [
54
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(customTabList), (tab) => {
63
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(customTabList), (tab, index$1) => {
55
64
  return vue.openBlock(), vue.createElementBlock("div", {
56
65
  key: tab.key,
57
66
  class: "hzzt-tab-pane",
@@ -61,7 +70,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
61
70
  vue.createElementVNode("p", {
62
71
  class: vue.normalizeClass([{ active: __props.modelValue === tab.name }, "hzzt-tab-badge-text"])
63
72
  }, vue.toDisplayString(tab.label), 3),
64
- tab.number && tab.number !== 0 ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_6, vue.toDisplayString(tab.number > 999 ? "999+" : tab.number), 1)) : vue.createCommentVNode("v-if", true)
73
+ tab.number && tab.number !== 0 ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_6, vue.toDisplayString(tab.number > 999 ? "999+" : tab.number), 1)) : vue.createCommentVNode("v-if", true),
74
+ __props.closable ? (vue.openBlock(), vue.createBlock(index["default"], {
75
+ key: 1,
76
+ class: "is-icon-close",
77
+ name: "close",
78
+ onClick: ($event) => close(index$1, $event)
79
+ }, null, 8, ["onClick"])) : vue.createCommentVNode("v-if", true)
65
80
  ])
66
81
  ], 8, _hoisted_4);
67
82
  }), 128))
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../packages/components/tab/src/index.vue"],"sourcesContent":["<template>\n <div class=\"hzzt-tab flex align-items-center justify-content-between wrap\">\n <div class=\"flex align-items-center\">\n <div class=\"flex\">\n <div\n v-for=\"tab in customTabList\"\n :key=\"tab.key\"\n class=\"hzzt-tab-pane\"\n @click=\"tabClick(tab, $event)\"\n >\n <div class=\"hzzt-tab-badge\">\n <p\n :class=\"{ active: modelValue === tab.name }\"\n class=\"hzzt-tab-badge-text\"\n >\n {{ tab.label }}\n </p>\n <p\n v-if=\"tab.number && tab.number !== 0\"\n class=\"hzzt-tab-badge-count\"\n >\n {{ tab.number > 999 ? '999+' : tab.number }}\n </p>\n </div>\n </div>\n </div>\n <slot name=\"filter\" />\n <slot name=\"extra\" />\n </div>\n <div class=\"flex wrap\">\n <slot name=\"right\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\n\ndefineOptions({\n name: 'HzztTab',\n})\n\ndeclare type Tab = {\n name: string\n label: string\n number: number\n hide: boolean\n}\n\nconst props = defineProps({\n tabList: {\n type: Array,\n default: () => [],\n },\n modelValue: {\n type: [Number, String, Array],\n },\n})\n\nconst emit = defineEmits(['update:modelValue', 'tab-click'])\n\nconst customTabList = computed(() =>\n props.tabList\n .map((value) => {\n const tab = value as Tab\n return {\n key: `${tab.name}-${tab.number}` as string,\n ...tab,\n number: Number(tab.number || 0),\n hide: tab.hide,\n }\n })\n .filter((tab) => !tab.hide)\n)\n\nfunction tabClick(tab, event) {\n if (tab.name === props.modelValue) return\n emit('update:modelValue', tab.name)\n emit('tab-click', tab, event)\n}\n</script>\n"],"names":["computed","_openBlock","_createElementBlock"],"mappings":";;;;;;;;;;;;;;;;;uCAsCc,CAAA;AAAA,EACZ,IAAM,EAAA,SAAA;AACR,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAqBA,IAAA,MAAM,aAAgB,GAAAA,YAAA,CAAA,MAAA,KAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,KAAA,KAAA;AAAA,MAAS,MAC7B,GAAA,GAAM,KACH,CAAA;AACC,MAAA,OAAA;AACA,QAAO,GAAA,EAAA,CAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA,EAAA,GAAA,CAAA,MAAA,CAAA,CAAA;AAAA,QAAA;AACyB,QAAA,MAC3B,EAAA,MAAA,CAAA,GAAA,CAAA,MAAA,IAAA,CAAA,CAAA;AAAA,QAAA,IACK,EAAA,GAAA,CAAA,IAAA;AAAsB,OAAA,CAAA;AACpB,KACZ,CAAA,CAAA,MAAA,CAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA;AAAA,IAAA,SAED,QAAgB,CAAA,GAAA,OAAS,EAAA;AAAA,MAC9B,IAAA,GAAA,CAAA,IAAA,KAAA,KAAA,CAAA,UAAA;AAEA,QAAS,OAAA;AACP,MAAI,IAAA,CAAA,mBAAmB,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;AAAY,MAAA,IAAA,CAAA,WAAA,EAAA,GAAA,EAAA,KAAA,CAAA,CAAA;AACnC,KAAK;AACL,IAAK,OAAA,CAAA,IAAA,EAAA,MAAa,KAAK;AAAK,MAC9B,OAAAC,aAAA,EAAA,EAAAC,sBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../packages/components/tab/src/index.vue"],"sourcesContent":["<template>\n <div class=\"hzzt-tab flex align-items-center justify-content-between wrap\">\n <div class=\"flex align-items-center\">\n <div class=\"flex\">\n <div\n v-for=\"(tab, index) in customTabList\"\n :key=\"tab.key\"\n class=\"hzzt-tab-pane\"\n @click=\"tabClick(tab, $event)\"\n >\n <div class=\"hzzt-tab-badge\">\n <p\n :class=\"{ active: modelValue === tab.name }\"\n class=\"hzzt-tab-badge-text\"\n >\n {{ tab.label }}\n </p>\n <p\n v-if=\"tab.number && tab.number !== 0\"\n class=\"hzzt-tab-badge-count\"\n >\n {{ tab.number > 999 ? '999+' : tab.number }}\n </p>\n <hzzt-icon\n v-if=\"closable\"\n class=\"is-icon-close\"\n name=\"close\"\n @click=\"close(index, $event)\"\n />\n </div>\n </div>\n </div>\n <slot name=\"filter\" />\n <slot name=\"extra\" />\n </div>\n <div class=\"flex wrap\">\n <slot name=\"right\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport HzztIcon from '@hzzt-plus/components/icon/src/index.vue'\n\ndefineOptions({\n name: 'HzztTab',\n})\n\ndeclare type Tab = {\n name: string\n label: string\n number: number\n hide: boolean\n}\n\nconst props = defineProps({\n tabList: {\n type: Array,\n default: () => [],\n },\n modelValue: {\n type: [Number, String, Array],\n },\n closable: {\n type: Boolean,\n default: () => false,\n },\n})\n\nconst emit = defineEmits(['update:modelValue', 'tab-click', 'tab-close'])\n\nconst customTabList = computed(() =>\n props.tabList\n .map((value) => {\n const tab = value as Tab\n return {\n key: `${tab.name}-${tab.number}` as string,\n ...tab,\n number: Number(tab.number || 0),\n hide: tab.hide,\n }\n })\n .filter((tab) => !tab.hide)\n)\n\nfunction tabClick(tab: Tab, event: Event) {\n if (tab.name === props.modelValue) return\n emit('update:modelValue', tab.name)\n emit('tab-click', tab, event)\n}\n\nfunction close(index: number, event: Event) {\n event.stopPropagation()\n emit('tab-close', index)\n}\n</script>\n"],"names":["computed","_openBlock","_createElementBlock"],"mappings":";;;;;;;;;;;;;;;;;;uCA6Cc,CAAA;AAAA,EACZ,IAAM,EAAA,SAAA;AACR,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;AAyBA,IAAA,MAAM,aAAgB,GAAAA,YAAA,CAAA,MAAA,KAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,KAAA,KAAA;AAAA,MAAS,MAC7B,GAAA,GAAM,KACH,CAAA;AACC,MAAA,OAAA;AACA,QAAO,GAAA,EAAA,CAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA,EAAA,GAAA,CAAA,MAAA,CAAA,CAAA;AAAA,QAAA;AACyB,QAAA,MAC3B,EAAA,MAAA,CAAA,GAAA,CAAA,MAAA,IAAA,CAAA,CAAA;AAAA,QAAA,IACK,EAAA,GAAA,CAAA,IAAA;AAAsB,OAAA,CAAA;AACpB,KACZ,CAAA,CAAA,MAAA,CAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA;AAAA,IAAA,SAED,QAAgB,CAAA,GAAA,OAAS,EAAA;AAAA,MAC9B,IAAA,GAAA,CAAA,IAAA,KAAA,KAAA,CAAA,UAAA;AAEA,QAAS,OAAA;AACP,MAAI,IAAA,CAAA,mBAAmB,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;AAAY,MAAA,IAAA,CAAA,WAAA,EAAA,GAAA,EAAA,KAAA,CAAA,CAAA;AACnC,KAAK;AACL,IAAK,SAAA,KAAA,CAAA,KAAa,OAAU,EAAA;AAAA,MAC9B,KAAA,CAAA,eAAA,EAAA,CAAA;AAEA,MAAS,IAAA,CAAA,kBAAmC,CAAA,CAAA;AAC1C,KAAA;AACA,IAAA,OAAK,aAAa,KAAK;AAAA,MACzB,OAAAC,aAAA,EAAA,EAAAC,sBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}