hzzt-plus 0.0.1-dev-05 → 0.0.1-dev-07

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 (43) hide show
  1. package/dist/index.full.js +119 -15
  2. package/dist/index.full.min.js +13 -13
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +9 -9
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +117 -16
  7. package/es/components/tab/index.d.ts +1 -0
  8. package/es/components/tab/src/index.mjs.map +1 -1
  9. package/es/components/tab/src/index.vue.d.ts +1 -0
  10. package/es/directives/blur/index.d.ts +3 -0
  11. package/es/directives/blur/index.mjs +10 -0
  12. package/es/directives/blur/index.mjs.map +1 -0
  13. package/es/directives/download/index.d.ts +3 -0
  14. package/es/directives/download/index.mjs +21 -0
  15. package/es/directives/download/index.mjs.map +1 -0
  16. package/es/directives/height/index.d.ts +3 -0
  17. package/es/directives/height/index.mjs +80 -0
  18. package/es/directives/height/index.mjs.map +1 -0
  19. package/es/directives/index.d.ts +3 -0
  20. package/es/directives/index.mjs +4 -0
  21. package/es/directives/index.mjs.map +1 -0
  22. package/es/index.d.ts +1 -0
  23. package/es/index.mjs +4 -0
  24. package/es/index.mjs.map +1 -1
  25. package/lib/components/tab/index.d.ts +1 -0
  26. package/lib/components/tab/src/index.js.map +1 -1
  27. package/lib/components/tab/src/index.vue.d.ts +1 -0
  28. package/lib/directives/blur/index.d.ts +3 -0
  29. package/lib/directives/blur/index.js +14 -0
  30. package/lib/directives/blur/index.js.map +1 -0
  31. package/lib/directives/download/index.d.ts +3 -0
  32. package/lib/directives/download/index.js +25 -0
  33. package/lib/directives/download/index.js.map +1 -0
  34. package/lib/directives/height/index.d.ts +3 -0
  35. package/lib/directives/height/index.js +84 -0
  36. package/lib/directives/height/index.js.map +1 -0
  37. package/lib/directives/index.d.ts +3 -0
  38. package/lib/directives/index.js +14 -0
  39. package/lib/directives/index.js.map +1 -0
  40. package/lib/index.d.ts +1 -0
  41. package/lib/index.js +18 -11
  42. package/lib/index.js.map +1 -1
  43. package/package.json +1 -1
@@ -4057,12 +4057,12 @@ function isMatchWith(object, source, customizer) {
4057
4057
  }
4058
4058
 
4059
4059
  var numberTag = "[object Number]";
4060
- function isNumber(value) {
4060
+ function isNumber$1(value) {
4061
4061
  return typeof value == "number" || isObjectLike(value) && baseGetTag(value) == numberTag;
4062
4062
  }
4063
4063
 
4064
4064
  function isNaN(value) {
4065
- return isNumber(value) && value != +value;
4065
+ return isNumber$1(value) && value != +value;
4066
4066
  }
4067
4067
 
4068
4068
  var isMaskable = coreJsData ? isFunction : stubFalse;
@@ -6053,7 +6053,7 @@ var lang = {
6053
6053
  isNative,
6054
6054
  isNil,
6055
6055
  isNull,
6056
- isNumber,
6056
+ isNumber: isNumber$1,
6057
6057
  isObject,
6058
6058
  isObjectLike,
6059
6059
  isPlainObject,
@@ -6821,6 +6821,7 @@ if (symIterator) {
6821
6821
  * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
6822
6822
  */
6823
6823
 
6824
+ const isNumber = (val) => typeof val === "number";
6824
6825
  const isEmpty = (val) => !val && val !== 0 || isArray$1(val) && val.length === 0 || isObject$1(val) && !Object.keys(val).length;
6825
6826
 
6826
6827
  const keysOf = (arr) => Object.keys(arr);
@@ -7109,19 +7110,19 @@ const isElement = (e) => {
7109
7110
  return e instanceof Element;
7110
7111
  };
7111
7112
 
7112
- const nodeList = /* @__PURE__ */ new Map();
7113
+ const nodeList$1 = /* @__PURE__ */ new Map();
7113
7114
  let startClick;
7114
7115
  if (isClient) {
7115
7116
  document.addEventListener("mousedown", (e) => startClick = e);
7116
7117
  document.addEventListener("mouseup", (e) => {
7117
- for (const handlers of nodeList.values()) {
7118
+ for (const handlers of nodeList$1.values()) {
7118
7119
  for (const { documentHandler } of handlers) {
7119
7120
  documentHandler(e, startClick);
7120
7121
  }
7121
7122
  }
7122
7123
  });
7123
7124
  }
7124
- function createDocumentHandler(el, binding) {
7125
+ function createDocumentHandler$1(el, binding) {
7125
7126
  let excludes = [];
7126
7127
  if (Array.isArray(binding.arg)) {
7127
7128
  excludes = binding.arg;
@@ -7146,22 +7147,22 @@ function createDocumentHandler(el, binding) {
7146
7147
  }
7147
7148
  const ClickOutside = {
7148
7149
  beforeMount(el, binding) {
7149
- if (!nodeList.has(el)) {
7150
- nodeList.set(el, []);
7150
+ if (!nodeList$1.has(el)) {
7151
+ nodeList$1.set(el, []);
7151
7152
  }
7152
- nodeList.get(el).push({
7153
- documentHandler: createDocumentHandler(el, binding),
7153
+ nodeList$1.get(el).push({
7154
+ documentHandler: createDocumentHandler$1(el, binding),
7154
7155
  bindingFn: binding.value
7155
7156
  });
7156
7157
  },
7157
7158
  updated(el, binding) {
7158
- if (!nodeList.has(el)) {
7159
- nodeList.set(el, []);
7159
+ if (!nodeList$1.has(el)) {
7160
+ nodeList$1.set(el, []);
7160
7161
  }
7161
- const handlers = nodeList.get(el);
7162
+ const handlers = nodeList$1.get(el);
7162
7163
  const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue);
7163
7164
  const newHandler = {
7164
- documentHandler: createDocumentHandler(el, binding),
7165
+ documentHandler: createDocumentHandler$1(el, binding),
7165
7166
  bindingFn: binding.value
7166
7167
  };
7167
7168
  if (oldHandlerIndex >= 0) {
@@ -7171,7 +7172,7 @@ const ClickOutside = {
7171
7172
  }
7172
7173
  },
7173
7174
  unmounted(el) {
7174
- nodeList.delete(el);
7175
+ nodeList$1.delete(el);
7175
7176
  }
7176
7177
  };
7177
7178
 
@@ -7445,7 +7446,107 @@ var Plugins = [];
7445
7446
 
7446
7447
  var installer = makeInstaller([...Components, ...Plugins]);
7447
7448
 
7449
+ let handler$1;
7450
+ const Download = {
7451
+ mounted(el, binding) {
7452
+ const { path, name = "download" } = binding.value || {};
7453
+ handler$1 = function(e) {
7454
+ e.preventDefault();
7455
+ const a = document.createElement("a");
7456
+ a.href = path;
7457
+ a.download = name;
7458
+ a.click();
7459
+ a.remove();
7460
+ };
7461
+ el.addEventListener("click", handler$1);
7462
+ },
7463
+ unmounted(el) {
7464
+ el.removeEventListener("click", handler$1);
7465
+ }
7466
+ };
7467
+
7468
+ const nodeList = /* @__PURE__ */ new Map();
7469
+ if (isClient) {
7470
+ window.addEventListener("resize", handler);
7471
+ document.addEventListener("fullscreenchange", handler);
7472
+ }
7473
+ function handler() {
7474
+ for (const handlers of nodeList.values()) {
7475
+ for (const { documentHandler } of handlers) {
7476
+ documentHandler();
7477
+ }
7478
+ }
7479
+ }
7480
+ const Height = {
7481
+ mounted(el, binding) {
7482
+ const { element, distY, type } = getEffectiveValue(el, binding.value);
7483
+ if (!nodeList.has(element)) {
7484
+ nodeList.set(element, []);
7485
+ }
7486
+ nodeList.get(el).push({
7487
+ documentHandler: createDocumentHandler(element, distY, type),
7488
+ bindingFn: binding.value
7489
+ });
7490
+ },
7491
+ updated(el, binding) {
7492
+ const { element, distY, type } = getEffectiveValue(el, binding.value);
7493
+ if (!nodeList.has(element)) {
7494
+ nodeList.set(element, []);
7495
+ }
7496
+ const handlers = nodeList.get(element);
7497
+ const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue);
7498
+ const newHandler = {
7499
+ documentHandler: createDocumentHandler(element, distY, type),
7500
+ bindingFn: binding.value
7501
+ };
7502
+ if (oldHandlerIndex >= 0) {
7503
+ handlers.splice(oldHandlerIndex, 1, newHandler);
7504
+ } else {
7505
+ handlers.push(newHandler);
7506
+ }
7507
+ },
7508
+ unmounted(el, binding) {
7509
+ const { element } = getEffectiveValue(el, binding.value);
7510
+ nodeList.delete(element);
7511
+ }
7512
+ };
7513
+ function createDocumentHandler(el, distY, type) {
7514
+ const cssProp = type ? type + "Height" : "height";
7515
+ el.style[cssProp] = el.clientHeight + distY + "px";
7516
+ return function() {
7517
+ el.style[cssProp] = el.clientHeight + distY + "px";
7518
+ };
7519
+ }
7520
+ function getEffectiveValue(el, val) {
7521
+ let element = el.parentElement;
7522
+ let distY = 0;
7523
+ let type = "";
7524
+ if (!val) {
7525
+ element = el.parentElement;
7526
+ distY = 0;
7527
+ } else if (val instanceof HTMLElement) {
7528
+ element = val;
7529
+ distY = 0;
7530
+ } else if (isNumber(val)) {
7531
+ element = el.parentElement;
7532
+ distY = val;
7533
+ } else if (isObject$1(val)) {
7534
+ element = (val == null ? void 0 : val.el) || el.parentElement;
7535
+ distY = (val == null ? void 0 : val.distY) || 0;
7536
+ type = (val == null ? void 0 : val.type) || "";
7537
+ }
7538
+ return { element, distY, type };
7539
+ }
7540
+
7541
+ const Blur = {
7542
+ beforeMount(el) {
7543
+ el.addEventListener("click", () => {
7544
+ el.blur();
7545
+ });
7546
+ }
7547
+ };
7548
+
7448
7549
  const install = installer.install;
7449
7550
  const version = installer.version;
7450
7551
 
7451
- export { HzztCollapse, HzztConfigProvider, HzztDropdown, HzztTab, HzztTitle, INSTALLED_KEY, SIZE_INJECTION_KEY, WEEK_DAYS, buildLocaleContext, buildTranslator, componentSizeMap, componentSizes, configProviderContextKey, configProviderProps, datePickTypes, installer as default, install, localeContextKey, makeInstaller, provideGlobalConfig, translate, useGlobalConfig, useGlobalSize, useLocale, useSizeProp, useSizeProps, version };
7552
+ export { Blur, Download, Height, HzztCollapse, HzztConfigProvider, HzztDropdown, HzztTab, HzztTitle, INSTALLED_KEY, SIZE_INJECTION_KEY, WEEK_DAYS, buildLocaleContext, buildTranslator, componentSizeMap, componentSizes, configProviderContextKey, configProviderProps, datePickTypes, installer as default, install, localeContextKey, makeInstaller, provideGlobalConfig, translate, useGlobalConfig, useGlobalSize, useLocale, useSizeProp, useSizeProps, version };
@@ -24,6 +24,7 @@ export declare const HzztTab: import("hzzt-plus/es/utils").SFCWithInstall<import
24
24
  number: number;
25
25
  hide: boolean;
26
26
  name: string;
27
+ label: string;
27
28
  key: string;
28
29
  }[]>;
29
30
  tabClick: (tab: any, event: any) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","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 :key=\"tab.key\" @click=\"tabClick(tab, $event)\" class=\"hzzt-tab-pane\" v-for=\"tab in customTabList\">\n <div class=\"hzzt-tab-badge\">\n <p :class=\"{ active: modelValue === tab.name }\" class=\"hzzt-tab-badge-text\">{{ tab.label }}</p>\n <p class=\"hzzt-tab-badge-count\" v-if=\"tab.number && tab.number !== 0\">{{\n tab.number > 999 ? '999+' : tab.number\n }}</p>\n </div>\n </div>\n </div>\n <slot name=\"filter\"></slot>\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>\n\n import {computed} from 'vue';\n\n defineOptions({\n name: 'HzztTab'\n })\n\n declare type Tab = {\n name: string,\n number: number,\n hide: boolean\n }\n\n const props = defineProps({\n tabList: {\n type: Array,\n default: () => [],\n },\n modelValue: {\n type: [Number, String, Array],\n },\n })\n\n const emit = defineEmits(['update:modelValue', 'tab-click'])\n\n const customTabList = computed(() => props.tabList.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 }).filter((tab) => !tab.hide))\n\n function 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":[],"mappings":";;;;;;;;;;;;;mCA0BgB,CAAA;AAAA,EACZ,IAAM,EAAA,SAAA;AACR,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAoBA,IAAA,MAAM,gBAAgB,QAAS,CAAA,MAAM,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAS,KAAA,KAAA;AAC9D,MAAA,MAAM,GAAM,GAAA,KAAA,CAAA;AACZ,MAAO,OAAA;AAAA,QACL,GAAM,EAAA,GAAA,CAAI,IAAO,GAAA,GAAA,GAAM,GAAI,CAAA,MAAA;AAAA,QAC3B,GAAG,GAAA;AAAA,QACH,MAAQ,EAAA,MAAA,CAAO,GAAI,CAAA,MAAA,IAAU,CAAC,CAAA;AAAA,QAC9B,MAAM,GAAI,CAAA,IAAA;AAAA,OACZ,CAAA;AAAA,KACD,EAAE,MAAO,CAAA,CAAC,QAAQ,CAAC,GAAA,CAAI,IAAI,CAAC,CAAA,CAAA;AAE7B,IAAA,SAAA,QAAA,CAAkB,KAAK,KAAO,EAAA;AAC5B,MAAI,IAAA,GAAA,CAAI,SAAS,KAAM,CAAA,UAAA;AAAY,QAAA,OAAA;AACnC,MAAK,IAAA,CAAA,mBAAA,EAAqB,IAAI,IAAI,CAAA,CAAA;AAClC,MAAK,IAAA,CAAA,WAAA,EAAa,KAAK,KAAK,CAAA,CAAA;AAAA,KAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","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 :key=\"tab.key\" @click=\"tabClick(tab, $event)\" class=\"hzzt-tab-pane\" v-for=\"tab in customTabList\">\n <div class=\"hzzt-tab-badge\">\n <p :class=\"{ active: modelValue === tab.name }\" class=\"hzzt-tab-badge-text\">{{ tab.label }}</p>\n <p class=\"hzzt-tab-badge-count\" v-if=\"tab.number && tab.number !== 0\">{{\n tab.number > 999 ? '999+' : tab.number\n }}</p>\n </div>\n </div>\n </div>\n <slot name=\"filter\"></slot>\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>\n\n import {computed} from 'vue';\n\n defineOptions({\n name: 'HzztTab'\n })\n\n declare type Tab = {\n name: string,\n label: string,\n number: number,\n hide: boolean\n }\n\n const props = defineProps({\n tabList: {\n type: Array,\n default: () => [],\n },\n modelValue: {\n type: [Number, String, Array],\n },\n })\n\n const emit = defineEmits(['update:modelValue', 'tab-click'])\n\n const customTabList = computed(() => props.tabList.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 }).filter((tab) => !tab.hide))\n\n function 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":[],"mappings":";;;;;;;;;;;;;mCA0BgB,CAAA;AAAA,EACZ,IAAM,EAAA,SAAA;AACR,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAqBA,IAAA,MAAM,gBAAgB,QAAS,CAAA,MAAM,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAS,KAAA,KAAA;AAC9D,MAAA,MAAM,GAAM,GAAA,KAAA,CAAA;AACZ,MAAO,OAAA;AAAA,QACL,GAAM,EAAA,GAAA,CAAI,IAAO,GAAA,GAAA,GAAM,GAAI,CAAA,MAAA;AAAA,QAC3B,GAAG,GAAA;AAAA,QACH,MAAQ,EAAA,MAAA,CAAO,GAAI,CAAA,MAAA,IAAU,CAAC,CAAA;AAAA,QAC9B,MAAM,GAAI,CAAA,IAAA;AAAA,OACZ,CAAA;AAAA,KACD,EAAE,MAAO,CAAA,CAAC,QAAQ,CAAC,GAAA,CAAI,IAAI,CAAC,CAAA,CAAA;AAE7B,IAAA,SAAA,QAAA,CAAkB,KAAK,KAAO,EAAA;AAC5B,MAAI,IAAA,GAAA,CAAI,SAAS,KAAM,CAAA,UAAA;AAAY,QAAA,OAAA;AACnC,MAAK,IAAA,CAAA,mBAAA,EAAqB,IAAI,IAAI,CAAA,CAAA;AAClC,MAAK,IAAA,CAAA,WAAA,EAAa,KAAK,KAAK,CAAA,CAAA;AAAA,KAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -24,6 +24,7 @@ declare const _default: import("vue").DefineComponent<{
24
24
  number: number;
25
25
  hide: boolean;
26
26
  name: string;
27
+ label: string;
27
28
  key: string;
28
29
  }[]>;
29
30
  tabClick: (tab: any, event: any) => void;
@@ -0,0 +1,3 @@
1
+ import type { ObjectDirective } from 'vue';
2
+ declare const Blur: ObjectDirective;
3
+ export default Blur;
@@ -0,0 +1,10 @@
1
+ const Blur = {
2
+ beforeMount(el) {
3
+ el.addEventListener("click", () => {
4
+ el.blur();
5
+ });
6
+ }
7
+ };
8
+
9
+ export { Blur as default };
10
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/directives/blur/index.ts"],"sourcesContent":["import type {\n ObjectDirective,\n} from 'vue'\n\nconst Blur: ObjectDirective = {\n // 只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。\n beforeMount(el: HTMLElement) {\n el.addEventListener('click', () => {\n el.blur();\n });\n },\n};\n\nexport default Blur;\n"],"names":[],"mappings":"AAAK,MAAC,IAAI,GAAG;AACb,EAAE,WAAW,CAAC,EAAE,EAAE;AAClB,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACvC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAChB,KAAK,CAAC,CAAC;AACP,GAAG;AACH;;;;"}
@@ -0,0 +1,3 @@
1
+ import type { ObjectDirective } from 'vue';
2
+ declare const Download: ObjectDirective;
3
+ export default Download;
@@ -0,0 +1,21 @@
1
+ let handler;
2
+ const Download = {
3
+ mounted(el, binding) {
4
+ const { path, name = "download" } = binding.value || {};
5
+ handler = function(e) {
6
+ e.preventDefault();
7
+ const a = document.createElement("a");
8
+ a.href = path;
9
+ a.download = name;
10
+ a.click();
11
+ a.remove();
12
+ };
13
+ el.addEventListener("click", handler);
14
+ },
15
+ unmounted(el) {
16
+ el.removeEventListener("click", handler);
17
+ }
18
+ };
19
+
20
+ export { Download as default };
21
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/directives/download/index.ts"],"sourcesContent":["import type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\nlet handler;\nconst Download: ObjectDirective = {\n // 只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。\n mounted(el: HTMLElement, binding: DirectiveBinding) {\n const {path, name = 'download'} = binding.value || {};\n\n handler = function (e) {\n e.preventDefault();\n const a = document.createElement('a');\n a.href = path;\n a.download = name;\n a.click();\n a.remove();\n };\n el.addEventListener('click', handler);\n },\n // 只调用一次,指令与元素解绑时调用。\n unmounted(el: HTMLElement) {\n el.removeEventListener('click', handler);\n },\n};\n\nexport default Download;\n\n"],"names":[],"mappings":"AAAA,IAAI,OAAO,CAAC;AACP,MAAC,QAAQ,GAAG;AACjB,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE;AACvB,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AAC5D,IAAI,OAAO,GAAG,SAAS,CAAC,EAAE;AAC1B,MAAM,CAAC,CAAC,cAAc,EAAE,CAAC;AACzB,MAAM,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5C,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,MAAM,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;AAChB,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AACjB,KAAK,CAAC;AACN,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,SAAS,CAAC,EAAE,EAAE;AAChB,IAAI,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,GAAG;AACH;;;;"}
@@ -0,0 +1,3 @@
1
+ import type { ObjectDirective } from 'vue';
2
+ declare const Height: ObjectDirective;
3
+ export default Height;
@@ -0,0 +1,80 @@
1
+ import '../../utils/index.mjs';
2
+ import { isClient } from '@vueuse/core';
3
+ import { isNumber } from '../../utils/types.mjs';
4
+ import { isObject } from '@vue/shared';
5
+
6
+ const nodeList = /* @__PURE__ */ new Map();
7
+ if (isClient) {
8
+ window.addEventListener("resize", handler);
9
+ document.addEventListener("fullscreenchange", handler);
10
+ }
11
+ function handler() {
12
+ for (const handlers of nodeList.values()) {
13
+ for (const { documentHandler } of handlers) {
14
+ documentHandler();
15
+ }
16
+ }
17
+ }
18
+ const Height = {
19
+ mounted(el, binding) {
20
+ const { element, distY, type } = getEffectiveValue(el, binding.value);
21
+ if (!nodeList.has(element)) {
22
+ nodeList.set(element, []);
23
+ }
24
+ nodeList.get(el).push({
25
+ documentHandler: createDocumentHandler(element, distY, type),
26
+ bindingFn: binding.value
27
+ });
28
+ },
29
+ updated(el, binding) {
30
+ const { element, distY, type } = getEffectiveValue(el, binding.value);
31
+ if (!nodeList.has(element)) {
32
+ nodeList.set(element, []);
33
+ }
34
+ const handlers = nodeList.get(element);
35
+ const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue);
36
+ const newHandler = {
37
+ documentHandler: createDocumentHandler(element, distY, type),
38
+ bindingFn: binding.value
39
+ };
40
+ if (oldHandlerIndex >= 0) {
41
+ handlers.splice(oldHandlerIndex, 1, newHandler);
42
+ } else {
43
+ handlers.push(newHandler);
44
+ }
45
+ },
46
+ unmounted(el, binding) {
47
+ const { element } = getEffectiveValue(el, binding.value);
48
+ nodeList.delete(element);
49
+ }
50
+ };
51
+ function createDocumentHandler(el, distY, type) {
52
+ const cssProp = type ? type + "Height" : "height";
53
+ el.style[cssProp] = el.clientHeight + distY + "px";
54
+ return function() {
55
+ el.style[cssProp] = el.clientHeight + distY + "px";
56
+ };
57
+ }
58
+ function getEffectiveValue(el, val) {
59
+ let element = el.parentElement;
60
+ let distY = 0;
61
+ let type = "";
62
+ if (!val) {
63
+ element = el.parentElement;
64
+ distY = 0;
65
+ } else if (val instanceof HTMLElement) {
66
+ element = val;
67
+ distY = 0;
68
+ } else if (isNumber(val)) {
69
+ element = el.parentElement;
70
+ distY = val;
71
+ } else if (isObject(val)) {
72
+ element = (val == null ? void 0 : val.el) || el.parentElement;
73
+ distY = (val == null ? void 0 : val.distY) || 0;
74
+ type = (val == null ? void 0 : val.type) || "";
75
+ }
76
+ return { element, distY, type };
77
+ }
78
+
79
+ export { Height as default };
80
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/directives/height/index.ts"],"sourcesContent":["import {isClient, isNumber, isObject} from '@hzzt-plus/utils'\n\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\ntype DocumentHandler = <T>() => void\ntype FlushList = Map<\n HTMLElement,\n {\n documentHandler: DocumentHandler\n bindingFn: (...args: unknown[]) => unknown\n }[]\n>\n\nconst nodeList: FlushList = new Map();\n\nif (isClient) {\n window.addEventListener('resize', handler);\n document.addEventListener('fullscreenchange', handler);\n}\n\nfunction handler() {\n for (const handlers of nodeList.values()) {\n for (const {documentHandler} of handlers) {\n documentHandler()\n }\n }\n}\n\n// v-height\n// 默认高度为当前元素的父元素高度\n\n// v-height = el\n// 当前元素的高度设置为el的高度\n\n// v-height = 60\n// 当前元素的高度设置为父元素高度+60px\n\n// v-height = {el: el, distY: 60}\n// 当前元素的高度设置为el的高度+60px\nconst Height: ObjectDirective = {\n // 当被绑定的元素插入到 DOM 中时……\n mounted(el: HTMLElement, binding: DirectiveBinding) {\n const {element, distY, type} = getEffectiveValue(el, binding.value);\n if (!nodeList.has(element)) {\n nodeList.set(element, []);\n }\n nodeList.get(el)!.push({\n documentHandler: createDocumentHandler(element, distY, type),\n bindingFn: binding.value,\n })\n },\n updated(el: HTMLElement, binding: DirectiveBinding) {\n const {element, distY, type} = getEffectiveValue(el, binding.value);\n if (!nodeList.has(element)) {\n nodeList.set(element, []);\n }\n const handlers = nodeList.get(element)!\n const oldHandlerIndex = handlers.findIndex(\n (item) => item.bindingFn === binding.oldValue\n )\n const newHandler = {\n documentHandler: createDocumentHandler(element, distY, type),\n bindingFn: binding.value,\n }\n\n if (oldHandlerIndex >= 0) {\n // replace the old handler to the new handler\n handlers.splice(oldHandlerIndex, 1, newHandler)\n } else {\n handlers.push(newHandler)\n }\n },\n // 只调用一次,指令与元素解绑时调用。\n unmounted(el: HTMLElement, binding: DirectiveBinding) {\n const {element} = getEffectiveValue(el, binding.value);\n nodeList.delete(element);\n },\n};\n\nfunction createDocumentHandler(el: HTMLElement, distY: number, type: string) {\n const cssProp = type ? (type + 'Height') : 'height';\n el.style[cssProp] = el.clientHeight + distY + 'px';\n return function () {\n el.style[cssProp] = el.clientHeight + distY + 'px';\n }\n}\n\nfunction getEffectiveValue(el, val) {\n let element = el.parentElement;\n let distY = 0;\n let type = '';\n if (!val) {\n element = el.parentElement;\n distY = 0;\n } else if (val instanceof HTMLElement) {\n element = val;\n distY = 0;\n } else if (isNumber(val)) {\n element = el.parentElement;\n distY = val;\n } else if (isObject(val)) {\n element = val?.el || el.parentElement;\n distY = val?.distY || 0;\n type = val?.type || '';\n }\n return {element, distY, type};\n}\n\nexport default Height;\n\n"],"names":[],"mappings":";;;;;AACA,MAAM,QAAQ,mBAAmB,IAAI,GAAG,EAAE,CAAC;AAC3C,IAAI,QAAQ,EAAE;AACd,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC7C,EAAE,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AACD,SAAS,OAAO,GAAG;AACnB,EAAE,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE;AAC5C,IAAI,KAAK,MAAM,EAAE,eAAe,EAAE,IAAI,QAAQ,EAAE;AAChD,MAAM,eAAe,EAAE,CAAC;AACxB,KAAK;AACL,GAAG;AACH,CAAC;AACI,MAAC,MAAM,GAAG;AACf,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE;AACvB,IAAI,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAChC,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;AAC1B,MAAM,eAAe,EAAE,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAClE,MAAM,SAAS,EAAE,OAAO,CAAC,KAAK;AAC9B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE;AACvB,IAAI,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAChC,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3C,IAAI,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC9F,IAAI,MAAM,UAAU,GAAG;AACvB,MAAM,eAAe,EAAE,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAClE,MAAM,SAAS,EAAE,OAAO,CAAC,KAAK;AAC9B,KAAK,CAAC;AACN,IAAI,IAAI,eAAe,IAAI,CAAC,EAAE;AAC9B,MAAM,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACtD,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,KAAK;AACL,GAAG;AACH,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE;AACzB,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7D,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE;AACF,SAAS,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAChD,EAAE,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACpD,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;AACrD,EAAE,OAAO,WAAW;AACpB,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;AACvD,GAAG,CAAC;AACJ,CAAC;AACD,SAAS,iBAAiB,CAAC,EAAE,EAAE,GAAG,EAAE;AACpC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC;AACjC,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC;AAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,GAAG,MAAM,IAAI,GAAG,YAAY,WAAW,EAAE;AACzC,IAAI,OAAO,GAAG,GAAG,CAAC;AAClB,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,GAAG,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B,IAAI,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC;AAC/B,IAAI,KAAK,GAAG,GAAG,CAAC;AAChB,GAAG,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC;AAClE,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;AACpD,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;AACnD,GAAG;AACH,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAClC;;;;"}
@@ -0,0 +1,3 @@
1
+ export { default as Download } from './download';
2
+ export { default as Height } from './height';
3
+ export { default as Blur } from './blur';
@@ -0,0 +1,4 @@
1
+ export { default as Download } from './download/index.mjs';
2
+ export { default as Height } from './height/index.mjs';
3
+ export { default as Blur } from './blur/index.mjs';
4
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
package/es/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import installer from './defaults';
2
2
  export * from 'hzzt-plus/es/components';
3
3
  export * from 'hzzt-plus/es/constants';
4
+ export * from 'hzzt-plus/es/directives';
4
5
  export * from 'hzzt-plus/es/hooks';
5
6
  export * from './make-installer';
6
7
  export declare const install: (app: import("vue").App<any>, options?: Partial<import("hzzt-plus/es/components").ConfigProviderProps> | undefined) => void;
package/es/index.mjs CHANGED
@@ -2,6 +2,7 @@ import installer from './defaults.mjs';
2
2
  export { default } from './defaults.mjs';
3
3
  import './components/index.mjs';
4
4
  import './constants/index.mjs';
5
+ import './directives/index.mjs';
5
6
  import './hooks/index.mjs';
6
7
  export { makeInstaller } from './make-installer.mjs';
7
8
  export { HzztTitle } from './components/title/index.mjs';
@@ -15,6 +16,9 @@ export { HzztTab } from './components/tab/index.mjs';
15
16
  export { INSTALLED_KEY } from './constants/key.mjs';
16
17
  export { componentSizeMap, componentSizes } from './constants/size.mjs';
17
18
  export { WEEK_DAYS, datePickTypes } from './constants/date.mjs';
19
+ export { default as Download } from './directives/download/index.mjs';
20
+ export { default as Height } from './directives/height/index.mjs';
21
+ export { default as Blur } from './directives/blur/index.mjs';
18
22
  export { buildLocaleContext, buildTranslator, localeContextKey, translate, useLocale } from './hooks/use-locale/index.mjs';
19
23
  export { SIZE_INJECTION_KEY, useGlobalSize, useSizeProp, useSizeProps } from './hooks/use-size/index.mjs';
20
24
 
package/es/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../packages/hzzt-plus/index.ts"],"sourcesContent":["import installer from './defaults'\nexport * from '@hzzt-plus/components'\nexport * from '@hzzt-plus/constants'\nexport * from '@hzzt-plus/hooks'\nexport * from './make-installer'\n\nexport const install = installer.install\nexport const version = installer.version\nexport default installer;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAKY,MAAC,OAAO,GAAG,SAAS,CAAC,QAAQ;AAC7B,MAAC,OAAO,GAAG,SAAS,CAAC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../packages/hzzt-plus/index.ts"],"sourcesContent":["import installer from './defaults'\nexport * from '@hzzt-plus/components'\nexport * from '@hzzt-plus/constants'\nexport * from '@hzzt-plus/directives'\nexport * from '@hzzt-plus/hooks'\nexport * from './make-installer'\n\nexport const install = installer.install\nexport const version = installer.version\nexport default installer;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMY,MAAC,OAAO,GAAG,SAAS,CAAC,QAAQ;AAC7B,MAAC,OAAO,GAAG,SAAS,CAAC;;;;"}
@@ -24,6 +24,7 @@ export declare const HzztTab: import("hzzt-plus/es/utils").SFCWithInstall<import
24
24
  number: number;
25
25
  hide: boolean;
26
26
  name: string;
27
+ label: string;
27
28
  key: string;
28
29
  }[]>;
29
30
  tabClick: (tab: any, event: any) => void;
@@ -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 :key=\"tab.key\" @click=\"tabClick(tab, $event)\" class=\"hzzt-tab-pane\" v-for=\"tab in customTabList\">\n <div class=\"hzzt-tab-badge\">\n <p :class=\"{ active: modelValue === tab.name }\" class=\"hzzt-tab-badge-text\">{{ tab.label }}</p>\n <p class=\"hzzt-tab-badge-count\" v-if=\"tab.number && tab.number !== 0\">{{\n tab.number > 999 ? '999+' : tab.number\n }}</p>\n </div>\n </div>\n </div>\n <slot name=\"filter\"></slot>\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>\n\n import {computed} from 'vue';\n\n defineOptions({\n name: 'HzztTab'\n })\n\n declare type Tab = {\n name: string,\n number: number,\n hide: boolean\n }\n\n const props = defineProps({\n tabList: {\n type: Array,\n default: () => [],\n },\n modelValue: {\n type: [Number, String, Array],\n },\n })\n\n const emit = defineEmits(['update:modelValue', 'tab-click'])\n\n const customTabList = computed(() => props.tabList.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 }).filter((tab) => !tab.hide))\n\n function 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"],"mappings":";;;;;;;;;;;;;;;;;uCA0BgB,CAAA;AAAA,EACZ,IAAM,EAAA,SAAA;AACR,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAoBA,IAAA,MAAM,gBAAgBA,YAAS,CAAA,MAAM,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAS,KAAA,KAAA;AAC9D,MAAA,MAAM,GAAM,GAAA,KAAA,CAAA;AACZ,MAAO,OAAA;AAAA,QACL,GAAM,EAAA,GAAA,CAAI,IAAO,GAAA,GAAA,GAAM,GAAI,CAAA,MAAA;AAAA,QAC3B,GAAG,GAAA;AAAA,QACH,MAAQ,EAAA,MAAA,CAAO,GAAI,CAAA,MAAA,IAAU,CAAC,CAAA;AAAA,QAC9B,MAAM,GAAI,CAAA,IAAA;AAAA,OACZ,CAAA;AAAA,KACD,EAAE,MAAO,CAAA,CAAC,QAAQ,CAAC,GAAA,CAAI,IAAI,CAAC,CAAA,CAAA;AAE7B,IAAA,SAAA,QAAA,CAAkB,KAAK,KAAO,EAAA;AAC5B,MAAI,IAAA,GAAA,CAAI,SAAS,KAAM,CAAA,UAAA;AAAY,QAAA,OAAA;AACnC,MAAK,IAAA,CAAA,mBAAA,EAAqB,IAAI,IAAI,CAAA,CAAA;AAClC,MAAK,IAAA,CAAA,WAAA,EAAa,KAAK,KAAK,CAAA,CAAA;AAAA,KAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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 :key=\"tab.key\" @click=\"tabClick(tab, $event)\" class=\"hzzt-tab-pane\" v-for=\"tab in customTabList\">\n <div class=\"hzzt-tab-badge\">\n <p :class=\"{ active: modelValue === tab.name }\" class=\"hzzt-tab-badge-text\">{{ tab.label }}</p>\n <p class=\"hzzt-tab-badge-count\" v-if=\"tab.number && tab.number !== 0\">{{\n tab.number > 999 ? '999+' : tab.number\n }}</p>\n </div>\n </div>\n </div>\n <slot name=\"filter\"></slot>\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>\n\n import {computed} from 'vue';\n\n defineOptions({\n name: 'HzztTab'\n })\n\n declare type Tab = {\n name: string,\n label: string,\n number: number,\n hide: boolean\n }\n\n const props = defineProps({\n tabList: {\n type: Array,\n default: () => [],\n },\n modelValue: {\n type: [Number, String, Array],\n },\n })\n\n const emit = defineEmits(['update:modelValue', 'tab-click'])\n\n const customTabList = computed(() => props.tabList.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 }).filter((tab) => !tab.hide))\n\n function 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"],"mappings":";;;;;;;;;;;;;;;;;uCA0BgB,CAAA;AAAA,EACZ,IAAM,EAAA,SAAA;AACR,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAqBA,IAAA,MAAM,gBAAgBA,YAAS,CAAA,MAAM,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAS,KAAA,KAAA;AAC9D,MAAA,MAAM,GAAM,GAAA,KAAA,CAAA;AACZ,MAAO,OAAA;AAAA,QACL,GAAM,EAAA,GAAA,CAAI,IAAO,GAAA,GAAA,GAAM,GAAI,CAAA,MAAA;AAAA,QAC3B,GAAG,GAAA;AAAA,QACH,MAAQ,EAAA,MAAA,CAAO,GAAI,CAAA,MAAA,IAAU,CAAC,CAAA;AAAA,QAC9B,MAAM,GAAI,CAAA,IAAA;AAAA,OACZ,CAAA;AAAA,KACD,EAAE,MAAO,CAAA,CAAC,QAAQ,CAAC,GAAA,CAAI,IAAI,CAAC,CAAA,CAAA;AAE7B,IAAA,SAAA,QAAA,CAAkB,KAAK,KAAO,EAAA;AAC5B,MAAI,IAAA,GAAA,CAAI,SAAS,KAAM,CAAA,UAAA;AAAY,QAAA,OAAA;AACnC,MAAK,IAAA,CAAA,mBAAA,EAAqB,IAAI,IAAI,CAAA,CAAA;AAClC,MAAK,IAAA,CAAA,WAAA,EAAa,KAAK,KAAK,CAAA,CAAA;AAAA,KAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -24,6 +24,7 @@ declare const _default: import("vue").DefineComponent<{
24
24
  number: number;
25
25
  hide: boolean;
26
26
  name: string;
27
+ label: string;
27
28
  key: string;
28
29
  }[]>;
29
30
  tabClick: (tab: any, event: any) => void;
@@ -0,0 +1,3 @@
1
+ import type { ObjectDirective } from 'vue';
2
+ declare const Blur: ObjectDirective;
3
+ export default Blur;
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const Blur = {
6
+ beforeMount(el) {
7
+ el.addEventListener("click", () => {
8
+ el.blur();
9
+ });
10
+ }
11
+ };
12
+
13
+ exports["default"] = Blur;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/directives/blur/index.ts"],"sourcesContent":["import type {\n ObjectDirective,\n} from 'vue'\n\nconst Blur: ObjectDirective = {\n // 只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。\n beforeMount(el: HTMLElement) {\n el.addEventListener('click', () => {\n el.blur();\n });\n },\n};\n\nexport default Blur;\n"],"names":[],"mappings":";;;;AAAK,MAAC,IAAI,GAAG;AACb,EAAE,WAAW,CAAC,EAAE,EAAE;AAClB,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACvC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAChB,KAAK,CAAC,CAAC;AACP,GAAG;AACH;;;;"}
@@ -0,0 +1,3 @@
1
+ import type { ObjectDirective } from 'vue';
2
+ declare const Download: ObjectDirective;
3
+ export default Download;
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ let handler;
6
+ const Download = {
7
+ mounted(el, binding) {
8
+ const { path, name = "download" } = binding.value || {};
9
+ handler = function(e) {
10
+ e.preventDefault();
11
+ const a = document.createElement("a");
12
+ a.href = path;
13
+ a.download = name;
14
+ a.click();
15
+ a.remove();
16
+ };
17
+ el.addEventListener("click", handler);
18
+ },
19
+ unmounted(el) {
20
+ el.removeEventListener("click", handler);
21
+ }
22
+ };
23
+
24
+ exports["default"] = Download;
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/directives/download/index.ts"],"sourcesContent":["import type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\nlet handler;\nconst Download: ObjectDirective = {\n // 只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。\n mounted(el: HTMLElement, binding: DirectiveBinding) {\n const {path, name = 'download'} = binding.value || {};\n\n handler = function (e) {\n e.preventDefault();\n const a = document.createElement('a');\n a.href = path;\n a.download = name;\n a.click();\n a.remove();\n };\n el.addEventListener('click', handler);\n },\n // 只调用一次,指令与元素解绑时调用。\n unmounted(el: HTMLElement) {\n el.removeEventListener('click', handler);\n },\n};\n\nexport default Download;\n\n"],"names":[],"mappings":";;;;AAAA,IAAI,OAAO,CAAC;AACP,MAAC,QAAQ,GAAG;AACjB,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE;AACvB,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AAC5D,IAAI,OAAO,GAAG,SAAS,CAAC,EAAE;AAC1B,MAAM,CAAC,CAAC,cAAc,EAAE,CAAC;AACzB,MAAM,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5C,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,MAAM,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;AAChB,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AACjB,KAAK,CAAC;AACN,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,SAAS,CAAC,EAAE,EAAE;AAChB,IAAI,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,GAAG;AACH;;;;"}
@@ -0,0 +1,3 @@
1
+ import type { ObjectDirective } from 'vue';
2
+ declare const Height: ObjectDirective;
3
+ export default Height;
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('../../utils/index.js');
6
+ var core = require('@vueuse/core');
7
+ var types = require('../../utils/types.js');
8
+ var shared = require('@vue/shared');
9
+
10
+ const nodeList = /* @__PURE__ */ new Map();
11
+ if (core.isClient) {
12
+ window.addEventListener("resize", handler);
13
+ document.addEventListener("fullscreenchange", handler);
14
+ }
15
+ function handler() {
16
+ for (const handlers of nodeList.values()) {
17
+ for (const { documentHandler } of handlers) {
18
+ documentHandler();
19
+ }
20
+ }
21
+ }
22
+ const Height = {
23
+ mounted(el, binding) {
24
+ const { element, distY, type } = getEffectiveValue(el, binding.value);
25
+ if (!nodeList.has(element)) {
26
+ nodeList.set(element, []);
27
+ }
28
+ nodeList.get(el).push({
29
+ documentHandler: createDocumentHandler(element, distY, type),
30
+ bindingFn: binding.value
31
+ });
32
+ },
33
+ updated(el, binding) {
34
+ const { element, distY, type } = getEffectiveValue(el, binding.value);
35
+ if (!nodeList.has(element)) {
36
+ nodeList.set(element, []);
37
+ }
38
+ const handlers = nodeList.get(element);
39
+ const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue);
40
+ const newHandler = {
41
+ documentHandler: createDocumentHandler(element, distY, type),
42
+ bindingFn: binding.value
43
+ };
44
+ if (oldHandlerIndex >= 0) {
45
+ handlers.splice(oldHandlerIndex, 1, newHandler);
46
+ } else {
47
+ handlers.push(newHandler);
48
+ }
49
+ },
50
+ unmounted(el, binding) {
51
+ const { element } = getEffectiveValue(el, binding.value);
52
+ nodeList.delete(element);
53
+ }
54
+ };
55
+ function createDocumentHandler(el, distY, type) {
56
+ const cssProp = type ? type + "Height" : "height";
57
+ el.style[cssProp] = el.clientHeight + distY + "px";
58
+ return function() {
59
+ el.style[cssProp] = el.clientHeight + distY + "px";
60
+ };
61
+ }
62
+ function getEffectiveValue(el, val) {
63
+ let element = el.parentElement;
64
+ let distY = 0;
65
+ let type = "";
66
+ if (!val) {
67
+ element = el.parentElement;
68
+ distY = 0;
69
+ } else if (val instanceof HTMLElement) {
70
+ element = val;
71
+ distY = 0;
72
+ } else if (types.isNumber(val)) {
73
+ element = el.parentElement;
74
+ distY = val;
75
+ } else if (shared.isObject(val)) {
76
+ element = (val == null ? void 0 : val.el) || el.parentElement;
77
+ distY = (val == null ? void 0 : val.distY) || 0;
78
+ type = (val == null ? void 0 : val.type) || "";
79
+ }
80
+ return { element, distY, type };
81
+ }
82
+
83
+ exports["default"] = Height;
84
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/directives/height/index.ts"],"sourcesContent":["import {isClient, isNumber, isObject} from '@hzzt-plus/utils'\n\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\ntype DocumentHandler = <T>() => void\ntype FlushList = Map<\n HTMLElement,\n {\n documentHandler: DocumentHandler\n bindingFn: (...args: unknown[]) => unknown\n }[]\n>\n\nconst nodeList: FlushList = new Map();\n\nif (isClient) {\n window.addEventListener('resize', handler);\n document.addEventListener('fullscreenchange', handler);\n}\n\nfunction handler() {\n for (const handlers of nodeList.values()) {\n for (const {documentHandler} of handlers) {\n documentHandler()\n }\n }\n}\n\n// v-height\n// 默认高度为当前元素的父元素高度\n\n// v-height = el\n// 当前元素的高度设置为el的高度\n\n// v-height = 60\n// 当前元素的高度设置为父元素高度+60px\n\n// v-height = {el: el, distY: 60}\n// 当前元素的高度设置为el的高度+60px\nconst Height: ObjectDirective = {\n // 当被绑定的元素插入到 DOM 中时……\n mounted(el: HTMLElement, binding: DirectiveBinding) {\n const {element, distY, type} = getEffectiveValue(el, binding.value);\n if (!nodeList.has(element)) {\n nodeList.set(element, []);\n }\n nodeList.get(el)!.push({\n documentHandler: createDocumentHandler(element, distY, type),\n bindingFn: binding.value,\n })\n },\n updated(el: HTMLElement, binding: DirectiveBinding) {\n const {element, distY, type} = getEffectiveValue(el, binding.value);\n if (!nodeList.has(element)) {\n nodeList.set(element, []);\n }\n const handlers = nodeList.get(element)!\n const oldHandlerIndex = handlers.findIndex(\n (item) => item.bindingFn === binding.oldValue\n )\n const newHandler = {\n documentHandler: createDocumentHandler(element, distY, type),\n bindingFn: binding.value,\n }\n\n if (oldHandlerIndex >= 0) {\n // replace the old handler to the new handler\n handlers.splice(oldHandlerIndex, 1, newHandler)\n } else {\n handlers.push(newHandler)\n }\n },\n // 只调用一次,指令与元素解绑时调用。\n unmounted(el: HTMLElement, binding: DirectiveBinding) {\n const {element} = getEffectiveValue(el, binding.value);\n nodeList.delete(element);\n },\n};\n\nfunction createDocumentHandler(el: HTMLElement, distY: number, type: string) {\n const cssProp = type ? (type + 'Height') : 'height';\n el.style[cssProp] = el.clientHeight + distY + 'px';\n return function () {\n el.style[cssProp] = el.clientHeight + distY + 'px';\n }\n}\n\nfunction getEffectiveValue(el, val) {\n let element = el.parentElement;\n let distY = 0;\n let type = '';\n if (!val) {\n element = el.parentElement;\n distY = 0;\n } else if (val instanceof HTMLElement) {\n element = val;\n distY = 0;\n } else if (isNumber(val)) {\n element = el.parentElement;\n distY = val;\n } else if (isObject(val)) {\n element = val?.el || el.parentElement;\n distY = val?.distY || 0;\n type = val?.type || '';\n }\n return {element, distY, type};\n}\n\nexport default Height;\n\n"],"names":["isClient","isNumber","isObject"],"mappings":"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"}