hzzt-plus 2.0.3 → 2.0.5

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 (90) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.full.js +13 -4
  3. package/dist/index.full.min.js +11 -11
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +11 -11
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +13 -4
  8. package/dist/locale/en.js +1 -1
  9. package/dist/locale/en.min.js +1 -1
  10. package/dist/locale/en.min.mjs +1 -1
  11. package/dist/locale/en.mjs +1 -1
  12. package/dist/locale/zh-cn.js +1 -1
  13. package/dist/locale/zh-cn.min.js +1 -1
  14. package/dist/locale/zh-cn.min.mjs +1 -1
  15. package/dist/locale/zh-cn.mjs +1 -1
  16. package/es/components/cascader/index.mjs +2 -2
  17. package/es/components/cascader/src/cascader.mjs +122 -36
  18. package/es/components/cascader/src/cascader.mjs.map +1 -1
  19. package/es/components/cascader/src/cascader2.mjs +36 -122
  20. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  21. package/es/components/collapse/index.mjs +2 -2
  22. package/es/components/collapse/src/collapse.mjs +88 -0
  23. package/es/components/collapse/src/collapse.mjs.map +1 -1
  24. package/es/components/collapse/src/collapse2.mjs +0 -88
  25. package/es/components/collapse/src/collapse2.mjs.map +1 -1
  26. package/es/components/index.mjs +3 -3
  27. package/es/components/input-range/index.mjs +2 -2
  28. package/es/components/input-range/src/input-range.mjs +76 -26
  29. package/es/components/input-range/src/input-range.mjs.map +1 -1
  30. package/es/components/input-range/src/input-range2.mjs +26 -76
  31. package/es/components/input-range/src/input-range2.mjs.map +1 -1
  32. package/es/components/lazy-list/index.mjs +2 -2
  33. package/es/components/lazy-list/src/lazy-list.mjs +80 -22
  34. package/es/components/lazy-list/src/lazy-list.mjs.map +1 -1
  35. package/es/components/lazy-list/src/lazy-list2.mjs +22 -80
  36. package/es/components/lazy-list/src/lazy-list2.mjs.map +1 -1
  37. package/es/components/scroll/index.mjs +2 -2
  38. package/es/components/scroll/src/scroll.mjs +0 -90
  39. package/es/components/scroll/src/scroll.mjs.map +1 -1
  40. package/es/components/scroll/src/scroll2.mjs +90 -0
  41. package/es/components/scroll/src/scroll2.mjs.map +1 -1
  42. package/es/components/select/src/select.d.ts +1 -0
  43. package/es/components/select/src/select.mjs +4 -0
  44. package/es/components/select/src/select.mjs.map +1 -1
  45. package/es/components/select/src/select.vue.d.ts +4 -0
  46. package/es/components/select/src/select2.mjs +8 -3
  47. package/es/components/select/src/select2.mjs.map +1 -1
  48. package/es/index.mjs +3 -3
  49. package/es/version.d.ts +1 -1
  50. package/es/version.mjs +1 -1
  51. package/es/version.mjs.map +1 -1
  52. package/lib/components/cascader/index.js +2 -2
  53. package/lib/components/cascader/src/cascader.js +121 -36
  54. package/lib/components/cascader/src/cascader.js.map +1 -1
  55. package/lib/components/cascader/src/cascader2.js +36 -121
  56. package/lib/components/cascader/src/cascader2.js.map +1 -1
  57. package/lib/components/collapse/index.js +2 -2
  58. package/lib/components/collapse/src/collapse.js +91 -0
  59. package/lib/components/collapse/src/collapse.js.map +1 -1
  60. package/lib/components/collapse/src/collapse2.js +0 -91
  61. package/lib/components/collapse/src/collapse2.js.map +1 -1
  62. package/lib/components/index.js +3 -3
  63. package/lib/components/input-range/index.js +2 -2
  64. package/lib/components/input-range/src/input-range.js +76 -27
  65. package/lib/components/input-range/src/input-range.js.map +1 -1
  66. package/lib/components/input-range/src/input-range2.js +27 -76
  67. package/lib/components/input-range/src/input-range2.js.map +1 -1
  68. package/lib/components/lazy-list/index.js +2 -2
  69. package/lib/components/lazy-list/src/lazy-list.js +80 -23
  70. package/lib/components/lazy-list/src/lazy-list.js.map +1 -1
  71. package/lib/components/lazy-list/src/lazy-list2.js +23 -80
  72. package/lib/components/lazy-list/src/lazy-list2.js.map +1 -1
  73. package/lib/components/scroll/index.js +2 -2
  74. package/lib/components/scroll/src/scroll.js +0 -93
  75. package/lib/components/scroll/src/scroll.js.map +1 -1
  76. package/lib/components/scroll/src/scroll2.js +93 -0
  77. package/lib/components/scroll/src/scroll2.js.map +1 -1
  78. package/lib/components/select/src/select.d.ts +1 -0
  79. package/lib/components/select/src/select.js +4 -0
  80. package/lib/components/select/src/select.js.map +1 -1
  81. package/lib/components/select/src/select.vue.d.ts +4 -0
  82. package/lib/components/select/src/select2.js +7 -2
  83. package/lib/components/select/src/select2.js.map +1 -1
  84. package/lib/index.js +3 -3
  85. package/lib/version.d.ts +1 -1
  86. package/lib/version.js +1 -1
  87. package/lib/version.js.map +1 -1
  88. package/package.json +1 -1
  89. package/tags.json +1 -1
  90. package/web-types.json +1 -1
@@ -2,84 +2,35 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- var inputRange = require('./input-range.js');
7
- var elementPlus = require('element-plus');
5
+ require('../../../utils/index.js');
8
6
  require('../../../hooks/index.js');
9
- var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
10
- var index = require('../../../hooks/use-namespace/index.js');
11
- var index$1 = require('../../../hooks/use-size/index.js');
7
+ require('../../../constants/index.js');
8
+ var runtime = require('../../../utils/vue/props/runtime.js');
9
+ var index = require('../../../hooks/use-size/index.js');
10
+ var event = require('../../../constants/event.js');
11
+ var shared = require('@vue/shared');
12
12
 
13
- const _hoisted_1 = /* @__PURE__ */ vue.createElementVNode("span", { class: "margin-h-1" }, "\u2014\u2014", -1);
14
- const __default__ = vue.defineComponent({
15
- name: "HzztInputRange"
13
+ const inputRangeProps = runtime.buildProps({
14
+ modelValue: {
15
+ type: Array,
16
+ default: () => []
17
+ },
18
+ size: index.useSizeProp,
19
+ disabled: Boolean,
20
+ clearable: {
21
+ type: Boolean,
22
+ default: false
23
+ },
24
+ startPlaceholder: String,
25
+ endPlaceholder: String,
26
+ startProps: Object,
27
+ endProps: Object
16
28
  });
17
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
18
- ...__default__,
19
- props: inputRange.inputRangeProps,
20
- emits: inputRange.inputRangeEmits,
21
- setup(__props, { emit }) {
22
- const props = __props;
23
- const startValue = vue.ref(props.modelValue[0]);
24
- const endValue = vue.ref(props.modelValue[1]);
25
- const nsInput = index.useNamespace("input-range");
26
- const formSize = elementPlus.useFormSize();
27
- const formDisabled = elementPlus.useFormDisabled();
28
- const trueSize = vue.computed(() => props.size || formSize.value || index$1.useGlobalSize().value);
29
- const trueDisabled = vue.computed(() => props.disabled || formDisabled.value);
30
- const containerCls = vue.computed(() => [
31
- nsInput.b(),
32
- nsInput.m(trueSize.value)
33
- ]);
34
- vue.watch(() => props.modelValue, (v) => {
35
- startValue.value = v[0];
36
- endValue.value = v[1];
37
- }, {
38
- deep: true
39
- });
40
- function change() {
41
- if (startValue.value || endValue.value) {
42
- const modelValue = [startValue.value, endValue.value];
43
- emit("update:modelValue", modelValue);
44
- emit("change", modelValue);
45
- } else if (!startValue.value && !endValue.value) {
46
- emit("update:modelValue", []);
47
- emit("change", []);
48
- }
49
- }
50
- return (_ctx, _cache) => {
51
- const _component_el_input = vue.resolveComponent("el-input");
52
- return vue.openBlock(), vue.createElementBlock("div", {
53
- class: vue.normalizeClass(["flex align-items-center", vue.unref(containerCls)])
54
- }, [
55
- vue.createVNode(_component_el_input, vue.mergeProps({
56
- modelValue: startValue.value,
57
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => startValue.value = $event)
58
- }, _ctx.startProps, {
59
- clearable: _ctx.clearable,
60
- placeholder: _ctx.startPlaceholder,
61
- size: vue.unref(trueSize),
62
- disabled: vue.unref(trueDisabled),
63
- class: "flex-1",
64
- onChange: change
65
- }), null, 16, ["modelValue", "clearable", "placeholder", "size", "disabled"]),
66
- _hoisted_1,
67
- vue.createVNode(_component_el_input, vue.mergeProps({
68
- modelValue: endValue.value,
69
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => endValue.value = $event)
70
- }, _ctx.endProps, {
71
- clearable: _ctx.clearable,
72
- placeholder: _ctx.endPlaceholder,
73
- size: vue.unref(trueSize),
74
- disabled: vue.unref(trueDisabled),
75
- class: "flex-1",
76
- onChange: change
77
- }), null, 16, ["modelValue", "clearable", "placeholder", "size", "disabled"])
78
- ], 2);
79
- };
80
- }
81
- });
82
- var InputRange = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "input-range.vue"]]);
29
+ const inputRangeEmits = {
30
+ [event.UPDATE_MODEL_EVENT]: (val) => shared.isArray(val),
31
+ [event.CHANGE_EVENT]: (val) => shared.isArray(val)
32
+ };
83
33
 
84
- exports["default"] = InputRange;
34
+ exports.inputRangeEmits = inputRangeEmits;
35
+ exports.inputRangeProps = inputRangeProps;
85
36
  //# sourceMappingURL=input-range2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-range2.js","sources":["../../../../../../packages/components/input-range/src/input-range.vue"],"sourcesContent":["<template>\n <div class=\"flex align-items-center\" :class=\"containerCls\">\n <el-input\n v-model=\"startValue\"\n v-bind=\"startProps\"\n :clearable=\"clearable\"\n :placeholder=\"startPlaceholder\"\n :size=\"trueSize\"\n :disabled=\"trueDisabled\"\n class=\"flex-1\"\n @change=\"change\"\n />\n <span class=\"margin-h-1\">——</span>\n <el-input\n v-model=\"endValue\"\n v-bind=\"endProps\"\n :clearable=\"clearable\"\n :placeholder=\"endPlaceholder\"\n :size=\"trueSize\"\n :disabled=\"trueDisabled\"\n class=\"flex-1\"\n @change=\"change\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import {inputRangeEmits, inputRangeProps} from './input-range'\n import {useFormDisabled, useFormSize} from \"element-plus\";\n import {computed, ref, watch} from \"vue\";\n import {useGlobalSize, useNamespace} from \"@hzzt-plus/hooks\";\n\n defineOptions({\n name: 'HzztInputRange',\n })\n\n const props = defineProps(inputRangeProps)\n const emit = defineEmits(inputRangeEmits)\n\n const startValue = ref(props.modelValue[0])\n const endValue = ref(props.modelValue[1])\n\n const nsInput = useNamespace('input-range')\n\n const formSize = useFormSize()\n const formDisabled = useFormDisabled()\n\n const trueSize = computed(\n () => props.size || formSize.value || useGlobalSize().value\n )\n\n const trueDisabled = computed(() => props.disabled || formDisabled.value)\n\n const containerCls = computed(() => [\n nsInput.b(),\n nsInput.m(trueSize.value),\n ])\n\n watch(() => props.modelValue, (v) => {\n startValue.value = v[0];\n endValue.value = v[1];\n }, {\n deep: true,\n })\n\n function change() {\n if (startValue.value || endValue.value) {\n const modelValue = [startValue.value, endValue.value] as Array<string>;\n emit('update:modelValue', modelValue);\n emit('change', modelValue);\n } else if (!startValue.value && !endValue.value) {\n emit('update:modelValue', []);\n emit('change', []);\n }\n }\n\n</script>\n"],"names":["_defineComponent","computed","watch","_resolveComponent","_openBlock","_createElementBlock","_unref","_createVNode","_mergeProps"],"mappings":";;;;;;;;;;;;;;AA2BE,EAAA,IAAA,EAAA;AACA,CAAA,CAAA,CAAA;AACA,MAAQ,SAAA,mBAA2BA,mBAAA,CAAA;AACnC,EAAA,GAAA;;mCAEc;AAAA,EACZ,KAAM,CAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA;AACR,IAAA,MAAA,KAAA,GAAA,OAAA,CAAA;;;;;;;AAKA,IAAA,MAAM,YAAa,GAAAC,YAAU,CAAA,MAAA,KAAY,CAAC,QAAA,IAAA,YAAA,CAAA,KAAA,CAAA,CAAA;AAC1C,IAAA,MAAM,YAAW,GAAIA,YAAM,CAAA,MAAA;AAE3B,MAAM,OAAA,CAAA,CAAA,EAAA;AAEN,MAAA,kBAA6B,CAAA,KAAA,CAAA;AAC7B,KAAA,CAAA,CAAA;AAEA,IAAAC,SAAA,CAAM,MAAW,KAAA,CAAA,UAAA,EAAA,CAAA,CAAA,KAAA;AAAA,MACf,UAAY,CAAA,KAAA,GAAA,CAAQ,CAAS,CAAA,CAAA,CAAA;AAAyB,MACxD,QAAA,CAAA,KAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,KAAA,EAAA;AAEA,MAAM,IAAA,EAAA,IAAA;AAA8B,KAAA,CAClC;AAAU,IACV,SAAA,MAAU,GAAA;AAAc,MACzB,IAAA,UAAA,CAAA,KAAA,IAAA,QAAA,CAAA,KAAA,EAAA;AAED,QAAA,MAAY,UAAkB,GAAA,CAAA,UAAO,CAAA,KAAA,EAAA,QAAA,CAAA,KAAA,CAAA,CAAA;AACnC,QAAW,IAAA,CAAA,mBAAW,EAAA,UAAA,CAAA,CAAA;AACtB,QAAS,IAAA,CAAA,QAAA,EAAQ,UAAG,CAAA,CAAA;AAAA,OACnB,MAAA,IAAA,CAAA,UAAA,CAAA,KAAA,IAAA,CAAA,QAAA,CAAA,KAAA,EAAA;AAAA,QACK,IAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAAA,QACP,IAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA;AAED,OAAA;AACE,KAAI;AACF,IAAA,OAAA,CAAA,IAAmB,EAAA,MAAA,KAAY;AAC/B,MAAA,MAAA,sBAA0BC,oBAAU,CAAA,UAAA,CAAA,CAAA;AACpC,MAAA,OAAKC,aAAU,EAAU,EAAAC,sBAAA,CAAA,KAAA,EAAA;AAAA,iCACK,CAAA,CAAA,yBAAiB,EAAAC,SAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AAC/C,OAAK,EAAA;AACL,QAAKC,eAAA,CAAA,mBAAY,EAAAC,cAAA,CAAA;AAAA,UACnB,UAAA,EAAA,UAAA,CAAA,KAAA;AAAA,UACF,qBAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA,UAAA,CAAA,KAAA,GAAA,MAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"input-range2.js","sources":["../../../../../../packages/components/input-range/src/input-range.ts"],"sourcesContent":["import {buildProps, isArray} from '@hzzt-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type InputRange from './input-range.vue'\nimport {useSizeProp} from \"@hzzt-plus/hooks\";\nimport {CHANGE_EVENT, UPDATE_MODEL_EVENT} from \"@hzzt-plus/constants\";\n\nexport const inputRangeProps = buildProps({\n modelValue: {\n type: Array,\n default: () => [],\n },\n size: useSizeProp,\n disabled: Boolean,\n clearable: {\n type: Boolean,\n default: false,\n },\n startPlaceholder: String,\n endPlaceholder: String,\n startProps: Object,\n endProps: Object,\n})\n\nexport type InputRangeProps = ExtractPropTypes<typeof inputRangeProps>\n\nexport const inputRangeEmits = {\n [UPDATE_MODEL_EVENT]: (val: Array<string>) => isArray(val),\n [CHANGE_EVENT]: (val: Array<string>) => isArray(val),\n}\nexport type InputRangeEmits = typeof inputRangeEmits\n\nexport type InputRangeInstance = InstanceType<typeof InputRange>\n"],"names":["buildProps","useSizeProp","UPDATE_MODEL_EVENT","isArray","CHANGE_EVENT"],"mappings":";;;;;;;;;;;;AAGY,MAAC,eAAe,GAAGA,kBAAU,CAAC;AAC1C,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,KAAK;AACf,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,IAAI,EAAEC,iBAAW;AACnB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,gBAAgB,EAAE,MAAM;AAC1B,EAAE,cAAc,EAAE,MAAM;AACxB,EAAE,UAAU,EAAE,MAAM;AACpB,EAAE,QAAQ,EAAE,MAAM;AAClB,CAAC,EAAE;AACS,MAAC,eAAe,GAAG;AAC/B,EAAE,CAACC,wBAAkB,GAAG,CAAC,GAAG,KAAKC,cAAO,CAAC,GAAG,CAAC;AAC7C,EAAE,CAACC,kBAAY,GAAG,CAAC,GAAG,KAAKD,cAAO,CAAC,GAAG,CAAC;AACvC;;;;;"}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('../../utils/index.js');
6
- var lazyList$1 = require('./src/lazy-list2.js');
7
- var lazyList = require('./src/lazy-list.js');
6
+ var lazyList$1 = require('./src/lazy-list.js');
7
+ var lazyList = require('./src/lazy-list2.js');
8
8
  var install = require('../../utils/vue/install.js');
9
9
 
10
10
  const HzztLazyList = install.withInstall(lazyList$1["default"]);
@@ -2,31 +2,88 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('../../../utils/index.js');
6
- var runtime = require('../../../utils/vue/props/runtime.js');
5
+ var vue = require('vue');
6
+ var lazyList = require('./lazy-list2.js');
7
+ require('../../../hooks/index.js');
8
+ var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
9
+ var index = require('../../../hooks/use-namespace/index.js');
7
10
 
8
- const lazyListProps = runtime.buildProps({
9
- size: {
10
- type: Number,
11
- default: 20
12
- },
13
- height: {
14
- type: Number,
15
- default: 30
16
- },
17
- data: {
18
- type: runtime.definePropType(Array),
19
- default: () => []
20
- },
21
- rowKey: {
22
- type: String,
23
- default: "id"
11
+ const _hoisted_1 = ["onClick"];
12
+ const __default__ = vue.defineComponent({
13
+ name: "HzztLazyList"
14
+ });
15
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
16
+ ...__default__,
17
+ props: lazyList.lazyListProps,
18
+ emits: lazyList.lazyListEmits,
19
+ setup(__props, { emit }) {
20
+ const props = __props;
21
+ const totalHeight = vue.ref("100%");
22
+ const marginTop = vue.ref("0px");
23
+ const currentIndex = vue.ref(1);
24
+ const current = vue.ref(null);
25
+ const nsLazy = index.useNamespace("lazy-list");
26
+ const containerCls = vue.computed(() => [
27
+ "overflow-y-auto",
28
+ nsLazy.b()
29
+ ]);
30
+ vue.watch(() => props.data, () => {
31
+ totalHeight.value = props.data.length * props.height + "px";
32
+ }, {
33
+ immediate: true
34
+ });
35
+ const calcList = vue.computed(() => props.data.slice(currentIndex.value === 1 ? 0 : (currentIndex.value - 1) * props.size - props.size / 2, (currentIndex.value + 1) * props.size + props.size / 2));
36
+ function scrollList(e) {
37
+ const target = e.target;
38
+ const scrollTop = target.scrollTop;
39
+ if (scrollTop < props.size / 2 * props.height) {
40
+ currentIndex.value = 1;
41
+ } else {
42
+ currentIndex.value = Math.ceil((scrollTop - props.size / 2 * props.height) / props.size / props.height);
43
+ }
44
+ if (currentIndex.value === 1) {
45
+ marginTop.value = "0px";
46
+ } else {
47
+ marginTop.value = ((currentIndex.value - 1) * props.size - props.size / 2) * props.height + "px";
48
+ }
49
+ }
50
+ function rowClick(row) {
51
+ current.value = row;
52
+ emit("row-click", row);
53
+ }
54
+ return (_ctx, _cache) => {
55
+ return vue.openBlock(), vue.createElementBlock("div", {
56
+ class: vue.normalizeClass(vue.unref(containerCls)),
57
+ onScroll: scrollList
58
+ }, [
59
+ vue.createElementVNode("div", {
60
+ style: vue.normalizeStyle({
61
+ height: totalHeight.value,
62
+ width: 0,
63
+ float: "left"
64
+ })
65
+ }, null, 4),
66
+ vue.createElementVNode("div", {
67
+ style: vue.normalizeStyle({ marginTop: marginTop.value })
68
+ }, [
69
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(calcList), (item) => {
70
+ return vue.openBlock(), vue.createElementBlock("div", {
71
+ key: item[_ctx.rowKey],
72
+ style: vue.normalizeStyle({
73
+ height: _ctx.height + "px"
74
+ }),
75
+ class: vue.normalizeClass(["hzzt-lazy-list__item", current.value === item ? "is-active" : ""]),
76
+ onClick: ($event) => rowClick(item)
77
+ }, [
78
+ vue.renderSlot(_ctx.$slots, "default", { data: item })
79
+ ], 14, _hoisted_1);
80
+ }), 128))
81
+ ], 4)
82
+ ], 34);
83
+ };
24
84
  }
25
85
  });
26
- const lazyListEmits = {
27
- "row-click": (row) => row
28
- };
86
+ var LazyList = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "lazy-list.vue"]]);
29
87
 
30
- exports.lazyListEmits = lazyListEmits;
31
- exports.lazyListProps = lazyListProps;
88
+ exports["default"] = LazyList;
32
89
  //# sourceMappingURL=lazy-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lazy-list.js","sources":["../../../../../../packages/components/lazy-list/src/lazy-list.ts"],"sourcesContent":["import {buildProps, definePropType} from '@hzzt-plus/utils'\nimport type {ExtractPropTypes} from 'vue'\nimport type LazyList from './lazy-list.vue'\n\nexport const lazyListProps = buildProps({\n size: {\n type: Number,\n default: 20,\n },\n height: {\n type: Number,\n default: 30,\n },\n data: {\n type: definePropType<Record<string, any>[]>(Array),\n default: () => [],\n },\n rowKey: {\n type: String,\n default: 'id',\n },\n})\n\nexport type LazyListProps = ExtractPropTypes<typeof lazyListProps>\n\nexport const lazyListEmits = {\n 'row-click': (row: any) => row\n}\n\nexport type LazyListEmits = typeof lazyListEmits\n\n\nexport type LazyListInstance = InstanceType<typeof LazyList>\n"],"names":["buildProps","definePropType"],"mappings":";;;;;;;AACY,MAAC,aAAa,GAAGA,kBAAU,CAAC;AACxC,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAEC,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,aAAa,GAAG;AAC7B,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK,GAAG;AAC3B;;;;;"}
1
+ {"version":3,"file":"lazy-list.js","sources":["../../../../../../packages/components/lazy-list/src/lazy-list.vue"],"sourcesContent":["<template>\n <div :class=\"containerCls\" @scroll=\"scrollList\">\n <div\n :style=\"{\n height: totalHeight,\n width: 0,\n float: 'left',\n }\"\n />\n <div :style=\"{marginTop: marginTop}\">\n <div\n v-for=\"item in calcList\"\n :key=\"item[rowKey]\"\n :style=\"{\n height: height+'px'\n }\"\n :class=\"['hzzt-lazy-list__item', current === item?'is-active':'']\"\n @click=\"rowClick(item)\"\n >\n <slot :data=\"item\" />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import {lazyListEmits, lazyListProps} from './lazy-list'\n import {computed, ref, watch} from \"vue\";\n import {useNamespace} from \"@hzzt-plus/hooks\";\n\n defineOptions({\n name: 'HzztLazyList',\n })\n\n const props = defineProps(lazyListProps)\n const emit = defineEmits(lazyListEmits)\n\n const totalHeight = ref('100%');\n const marginTop = ref('0px');\n const currentIndex = ref(1);\n const current = ref(null);\n\n const nsLazy = useNamespace('lazy-list');\n\n const containerCls = computed(() => [\n 'overflow-y-auto',\n nsLazy.b(),\n ])\n\n watch(() => props.data, () => {\n totalHeight.value = props.data.length * props.height + 'px';\n }, {\n immediate: true,\n });\n\n const calcList = computed(\n () => props.data.slice(currentIndex.value === 1 ? 0 : ((currentIndex.value - 1) * props.size -\n props.size / 2), (currentIndex.value + 1) * props.size + props.size / 2));\n\n function scrollList(e: Event) {\n const target = e.target as HTMLElement;\n const scrollTop = target.scrollTop;\n if (scrollTop < props.size / 2 * props.height) {\n currentIndex.value = 1;\n } else {\n currentIndex.value = Math.ceil((scrollTop - props.size / 2 * props.height) / props.size / props.height);\n }\n if (currentIndex.value === 1) {\n marginTop.value = '0px';\n } else {\n marginTop.value = ((currentIndex.value - 1) * props.size - props.size / 2) * props.height + 'px';\n }\n }\n\n function rowClick(row: any) {\n current.value = row;\n emit('row-click', row);\n }\n\n\n</script>\n"],"names":["ref","useNamespace","computed","watch","_openBlock","_createElementBlock"],"mappings":";;;;;;;;;;;uCA8BgB,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAKA,IAAM,MAAA,WAAA,GAAcA,QAAI,MAAM,CAAA,CAAA;AAC9B,IAAM,MAAA,SAAA,GAAYA,QAAI,KAAK,CAAA,CAAA;AAC3B,IAAM,MAAA,YAAA,GAAeA,QAAI,CAAC,CAAA,CAAA;AAC1B,IAAM,MAAA,OAAA,GAAUA,QAAI,IAAI,CAAA,CAAA;AAExB,IAAM,MAAA,MAAA,GAASC,mBAAa,WAAW,CAAA,CAAA;AAEvC,IAAM,MAAA,YAAA,GAAeC,aAAS,MAAM;AAAA,MAClC,iBAAA;AAAA,MACA,OAAO,CAAE,EAAA;AAAA,KACV,CAAA,CAAA;AAED,IAAMC,SAAA,CAAA,MAAM,KAAM,CAAA,IAAA,EAAM,MAAM;AAC5B,MAAA,WAAA,CAAY,KAAQ,GAAA,KAAA,CAAM,IAAK,CAAA,MAAA,GAAS,MAAM,MAAS,GAAA,IAAA,CAAA;AAAA,KACtD,EAAA;AAAA,MACD,SAAW,EAAA,IAAA;AAAA,KACZ,CAAA,CAAA;AAED,IAAA,MAAM,QAAW,GAAAD,YAAA,CAAA,MAAA,KAAA,CAAA,IAAA,CAAA,KAAA,CAAA,YAAA,CAAA,KAAA,KAAA,CAAA,GAAA,CAAA,GAAA,CAAA,YAAA,CAAA,KAAA,GAAA,CAAA,IAAA,KAAA,CAAA,IAAA,GAAA,KAAA,CAAA,IAAA,GAAA,CAAA,EAAA,CAAA,YAAA,CAAA,KAAA,GAAA,CAAA,IAAA,KAAA,CAAA,IAAA,GAAA,KAAA,CAAA,IAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IACf,mBAAiB,CAAA,CAAA,EAAA;AACwD,MAAC,MAAA,MAAA,GAAA,CAAA,CAAA,MAAA,CAAA;AAE5E,MAAA,MAAA,YAAoB,MAAU,CAAA,SAAA,CAAA;AAC5B,MAAA,IAAA,YAAiB,KAAA,CAAA,IAAA,GAAA,CAAA,GAAA,KAAA,CAAA,MAAA,EAAA;AACjB,QAAA,kBAAyB,GAAA,CAAA,CAAA;AACzB,OAAA,MAAgB;AACd,QAAA,YAAA,CAAa,KAAQ,GAAA,IAAA,CAAA,IAAA,CAAA,CAAA,SAAA,GAAA,KAAA,CAAA,IAAA,GAAA,CAAA,GAAA,KAAA,CAAA,MAAA,IAAA,KAAA,CAAA,IAAA,GAAA,KAAA,CAAA,MAAA,CAAA,CAAA;AAAA,OAChB;AACL,MAAA,IAAA,YAAqB,CAAA,KAAA,KAAA,CAAK,EAAM;AAAsE,QACxG,SAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AACA,OAAI,MAAA;AACF,QAAA,SAAA,CAAU,KAAQ,GAAA,CAAA,CAAA,YAAA,CAAA,KAAA,GAAA,CAAA,IAAA,KAAA,CAAA,IAAA,GAAA,KAAA,CAAA,IAAA,GAAA,CAAA,IAAA,KAAA,CAAA,MAAA,GAAA,IAAA,CAAA;AAAA,OACb;AACL,KAAU;AAAkF,IAC9F,SAAA,QAAA,CAAA,GAAA,EAAA;AAAA,MACF,OAAA,CAAA,KAAA,GAAA,GAAA,CAAA;AAEA,MAAA,IAAA,CAAA,WAAkB,EAAU,GAAA,CAAA,CAAA;AAC1B,KAAA;AACA,IAAA,OAAK,aAAa,KAAG;AAAA,MACvB,OAAAE,aAAA,EAAA,EAAAC,sBAAA,CAAA,KAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,88 +2,31 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- var lazyList = require('./lazy-list.js');
7
- require('../../../hooks/index.js');
8
- var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
9
- var index = require('../../../hooks/use-namespace/index.js');
5
+ require('../../../utils/index.js');
6
+ var runtime = require('../../../utils/vue/props/runtime.js');
10
7
 
11
- const _hoisted_1 = ["onClick"];
12
- const __default__ = vue.defineComponent({
13
- name: "HzztLazyList"
14
- });
15
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
16
- ...__default__,
17
- props: lazyList.lazyListProps,
18
- emits: lazyList.lazyListEmits,
19
- setup(__props, { emit }) {
20
- const props = __props;
21
- const totalHeight = vue.ref("100%");
22
- const marginTop = vue.ref("0px");
23
- const currentIndex = vue.ref(1);
24
- const current = vue.ref(null);
25
- const nsLazy = index.useNamespace("lazy-list");
26
- const containerCls = vue.computed(() => [
27
- "overflow-y-auto",
28
- nsLazy.b()
29
- ]);
30
- vue.watch(() => props.data, () => {
31
- totalHeight.value = props.data.length * props.height + "px";
32
- }, {
33
- immediate: true
34
- });
35
- const calcList = vue.computed(() => props.data.slice(currentIndex.value === 1 ? 0 : (currentIndex.value - 1) * props.size - props.size / 2, (currentIndex.value + 1) * props.size + props.size / 2));
36
- function scrollList(e) {
37
- const target = e.target;
38
- const scrollTop = target.scrollTop;
39
- if (scrollTop < props.size / 2 * props.height) {
40
- currentIndex.value = 1;
41
- } else {
42
- currentIndex.value = Math.ceil((scrollTop - props.size / 2 * props.height) / props.size / props.height);
43
- }
44
- if (currentIndex.value === 1) {
45
- marginTop.value = "0px";
46
- } else {
47
- marginTop.value = ((currentIndex.value - 1) * props.size - props.size / 2) * props.height + "px";
48
- }
49
- }
50
- function rowClick(row) {
51
- current.value = row;
52
- emit("row-click", row);
53
- }
54
- return (_ctx, _cache) => {
55
- return vue.openBlock(), vue.createElementBlock("div", {
56
- class: vue.normalizeClass(vue.unref(containerCls)),
57
- onScroll: scrollList
58
- }, [
59
- vue.createElementVNode("div", {
60
- style: vue.normalizeStyle({
61
- height: totalHeight.value,
62
- width: 0,
63
- float: "left"
64
- })
65
- }, null, 4),
66
- vue.createElementVNode("div", {
67
- style: vue.normalizeStyle({ marginTop: marginTop.value })
68
- }, [
69
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(calcList), (item) => {
70
- return vue.openBlock(), vue.createElementBlock("div", {
71
- key: item[_ctx.rowKey],
72
- style: vue.normalizeStyle({
73
- height: _ctx.height + "px"
74
- }),
75
- class: vue.normalizeClass(["hzzt-lazy-list__item", current.value === item ? "is-active" : ""]),
76
- onClick: ($event) => rowClick(item)
77
- }, [
78
- vue.renderSlot(_ctx.$slots, "default", { data: item })
79
- ], 14, _hoisted_1);
80
- }), 128))
81
- ], 4)
82
- ], 34);
83
- };
8
+ const lazyListProps = runtime.buildProps({
9
+ size: {
10
+ type: Number,
11
+ default: 20
12
+ },
13
+ height: {
14
+ type: Number,
15
+ default: 30
16
+ },
17
+ data: {
18
+ type: runtime.definePropType(Array),
19
+ default: () => []
20
+ },
21
+ rowKey: {
22
+ type: String,
23
+ default: "id"
84
24
  }
85
25
  });
86
- var LazyList = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "lazy-list.vue"]]);
26
+ const lazyListEmits = {
27
+ "row-click": (row) => row
28
+ };
87
29
 
88
- exports["default"] = LazyList;
30
+ exports.lazyListEmits = lazyListEmits;
31
+ exports.lazyListProps = lazyListProps;
89
32
  //# sourceMappingURL=lazy-list2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lazy-list2.js","sources":["../../../../../../packages/components/lazy-list/src/lazy-list.vue"],"sourcesContent":["<template>\n <div :class=\"containerCls\" @scroll=\"scrollList\">\n <div\n :style=\"{\n height: totalHeight,\n width: 0,\n float: 'left',\n }\"\n />\n <div :style=\"{marginTop: marginTop}\">\n <div\n v-for=\"item in calcList\"\n :key=\"item[rowKey]\"\n :style=\"{\n height: height+'px'\n }\"\n :class=\"['hzzt-lazy-list__item', current === item?'is-active':'']\"\n @click=\"rowClick(item)\"\n >\n <slot :data=\"item\" />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import {lazyListEmits, lazyListProps} from './lazy-list'\n import {computed, ref, watch} from \"vue\";\n import {useNamespace} from \"@hzzt-plus/hooks\";\n\n defineOptions({\n name: 'HzztLazyList',\n })\n\n const props = defineProps(lazyListProps)\n const emit = defineEmits(lazyListEmits)\n\n const totalHeight = ref('100%');\n const marginTop = ref('0px');\n const currentIndex = ref(1);\n const current = ref(null);\n\n const nsLazy = useNamespace('lazy-list');\n\n const containerCls = computed(() => [\n 'overflow-y-auto',\n nsLazy.b(),\n ])\n\n watch(() => props.data, () => {\n totalHeight.value = props.data.length * props.height + 'px';\n }, {\n immediate: true,\n });\n\n const calcList = computed(\n () => props.data.slice(currentIndex.value === 1 ? 0 : ((currentIndex.value - 1) * props.size -\n props.size / 2), (currentIndex.value + 1) * props.size + props.size / 2));\n\n function scrollList(e: Event) {\n const target = e.target as HTMLElement;\n const scrollTop = target.scrollTop;\n if (scrollTop < props.size / 2 * props.height) {\n currentIndex.value = 1;\n } else {\n currentIndex.value = Math.ceil((scrollTop - props.size / 2 * props.height) / props.size / props.height);\n }\n if (currentIndex.value === 1) {\n marginTop.value = '0px';\n } else {\n marginTop.value = ((currentIndex.value - 1) * props.size - props.size / 2) * props.height + 'px';\n }\n }\n\n function rowClick(row: any) {\n current.value = row;\n emit('row-click', row);\n }\n\n\n</script>\n"],"names":["ref","useNamespace","computed","watch","_openBlock","_createElementBlock"],"mappings":";;;;;;;;;;;uCA8BgB,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAKA,IAAM,MAAA,WAAA,GAAcA,QAAI,MAAM,CAAA,CAAA;AAC9B,IAAM,MAAA,SAAA,GAAYA,QAAI,KAAK,CAAA,CAAA;AAC3B,IAAM,MAAA,YAAA,GAAeA,QAAI,CAAC,CAAA,CAAA;AAC1B,IAAM,MAAA,OAAA,GAAUA,QAAI,IAAI,CAAA,CAAA;AAExB,IAAM,MAAA,MAAA,GAASC,mBAAa,WAAW,CAAA,CAAA;AAEvC,IAAM,MAAA,YAAA,GAAeC,aAAS,MAAM;AAAA,MAClC,iBAAA;AAAA,MACA,OAAO,CAAE,EAAA;AAAA,KACV,CAAA,CAAA;AAED,IAAMC,SAAA,CAAA,MAAM,KAAM,CAAA,IAAA,EAAM,MAAM;AAC5B,MAAA,WAAA,CAAY,KAAQ,GAAA,KAAA,CAAM,IAAK,CAAA,MAAA,GAAS,MAAM,MAAS,GAAA,IAAA,CAAA;AAAA,KACtD,EAAA;AAAA,MACD,SAAW,EAAA,IAAA;AAAA,KACZ,CAAA,CAAA;AAED,IAAA,MAAM,QAAW,GAAAD,YAAA,CAAA,MAAA,KAAA,CAAA,IAAA,CAAA,KAAA,CAAA,YAAA,CAAA,KAAA,KAAA,CAAA,GAAA,CAAA,GAAA,CAAA,YAAA,CAAA,KAAA,GAAA,CAAA,IAAA,KAAA,CAAA,IAAA,GAAA,KAAA,CAAA,IAAA,GAAA,CAAA,EAAA,CAAA,YAAA,CAAA,KAAA,GAAA,CAAA,IAAA,KAAA,CAAA,IAAA,GAAA,KAAA,CAAA,IAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IACf,mBAAiB,CAAA,CAAA,EAAA;AACwD,MAAC,MAAA,MAAA,GAAA,CAAA,CAAA,MAAA,CAAA;AAE5E,MAAA,MAAA,YAAoB,MAAU,CAAA,SAAA,CAAA;AAC5B,MAAA,IAAA,YAAiB,KAAA,CAAA,IAAA,GAAA,CAAA,GAAA,KAAA,CAAA,MAAA,EAAA;AACjB,QAAA,kBAAyB,GAAA,CAAA,CAAA;AACzB,OAAA,MAAgB;AACd,QAAA,YAAA,CAAa,KAAQ,GAAA,IAAA,CAAA,IAAA,CAAA,CAAA,SAAA,GAAA,KAAA,CAAA,IAAA,GAAA,CAAA,GAAA,KAAA,CAAA,MAAA,IAAA,KAAA,CAAA,IAAA,GAAA,KAAA,CAAA,MAAA,CAAA,CAAA;AAAA,OAChB;AACL,MAAA,IAAA,YAAqB,CAAA,KAAA,KAAA,CAAK,EAAM;AAAsE,QACxG,SAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AACA,OAAI,MAAA;AACF,QAAA,SAAA,CAAU,KAAQ,GAAA,CAAA,CAAA,YAAA,CAAA,KAAA,GAAA,CAAA,IAAA,KAAA,CAAA,IAAA,GAAA,KAAA,CAAA,IAAA,GAAA,CAAA,IAAA,KAAA,CAAA,MAAA,GAAA,IAAA,CAAA;AAAA,OACb;AACL,KAAU;AAAkF,IAC9F,SAAA,QAAA,CAAA,GAAA,EAAA;AAAA,MACF,OAAA,CAAA,KAAA,GAAA,GAAA,CAAA;AAEA,MAAA,IAAA,CAAA,WAAkB,EAAU,GAAA,CAAA,CAAA;AAC1B,KAAA;AACA,IAAA,OAAK,aAAa,KAAG;AAAA,MACvB,OAAAE,aAAA,EAAA,EAAAC,sBAAA,CAAA,KAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"lazy-list2.js","sources":["../../../../../../packages/components/lazy-list/src/lazy-list.ts"],"sourcesContent":["import {buildProps, definePropType} from '@hzzt-plus/utils'\nimport type {ExtractPropTypes} from 'vue'\nimport type LazyList from './lazy-list.vue'\n\nexport const lazyListProps = buildProps({\n size: {\n type: Number,\n default: 20,\n },\n height: {\n type: Number,\n default: 30,\n },\n data: {\n type: definePropType<Record<string, any>[]>(Array),\n default: () => [],\n },\n rowKey: {\n type: String,\n default: 'id',\n },\n})\n\nexport type LazyListProps = ExtractPropTypes<typeof lazyListProps>\n\nexport const lazyListEmits = {\n 'row-click': (row: any) => row\n}\n\nexport type LazyListEmits = typeof lazyListEmits\n\n\nexport type LazyListInstance = InstanceType<typeof LazyList>\n"],"names":["buildProps","definePropType"],"mappings":";;;;;;;AACY,MAAC,aAAa,GAAGA,kBAAU,CAAC;AACxC,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAEC,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,aAAa,GAAG;AAC7B,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK,GAAG;AAC3B;;;;;"}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('../../utils/index.js');
6
- var scroll = require('./src/scroll.js');
7
- require('./src/scroll2.js');
6
+ var scroll = require('./src/scroll2.js');
7
+ require('./src/scroll.js');
8
8
  var install = require('../../utils/vue/install.js');
9
9
 
10
10
  const HzztScroll = install.withInstall(scroll["default"]);
@@ -1,96 +1,3 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var vue = require('vue');
6
- var core = require('@vueuse/core');
7
- var index = require('../../icon/src/index.js');
8
- var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
9
-
10
- const __default__ = vue.defineComponent({
11
- name: "HzztScroll"
12
- });
13
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
14
- ...__default__,
15
- setup(__props) {
16
- const navTranslateX = vue.ref(0);
17
- const scrollMainRef = vue.ref(null);
18
- const scrollRef = vue.ref(null);
19
- const scrollContentRef = vue.ref(null);
20
- const scrollable = vue.ref(false);
21
- function update() {
22
- if (!scrollRef.value || !scrollContentRef.value)
23
- return;
24
- const scrollWidth = scrollRef.value ? scrollRef.value.offsetWidth : 0;
25
- const contentWidth = scrollContentRef.value ? scrollContentRef.value.offsetWidth : 0;
26
- if (scrollWidth >= contentWidth) {
27
- scrollable.value = false;
28
- navTranslateX.value = 0;
29
- return;
30
- }
31
- scrollable.value = true;
32
- }
33
- core.useResizeObserver(scrollMainRef, update);
34
- core.useResizeObserver(scrollContentRef, update);
35
- vue.onUpdated(() => update());
36
- function btnNavPrev() {
37
- var _a;
38
- const containerSize = ((_a = scrollRef.value) == null ? void 0 : _a.offsetWidth) || 0;
39
- const currentOffset = navTranslateX.value;
40
- if (!currentOffset)
41
- return;
42
- const newOffset = currentOffset > containerSize ? currentOffset - containerSize : 0;
43
- navTranslateX.value = newOffset;
44
- }
45
- function btnNavNext() {
46
- var _a, _b;
47
- const navSize = ((_a = scrollContentRef.value) == null ? void 0 : _a.offsetWidth) || 0;
48
- const currentOffset = navTranslateX.value;
49
- const containerSize = ((_b = scrollRef.value) == null ? void 0 : _b.offsetWidth) || 0;
50
- if (navSize - currentOffset < containerSize)
51
- return;
52
- const newOffset = navSize - currentOffset > containerSize * 2 ? currentOffset + containerSize : navSize - containerSize;
53
- navTranslateX.value = newOffset;
54
- }
55
- return (_ctx, _cache) => {
56
- return vue.openBlock(), vue.createElementBlock("div", {
57
- ref_key: "scrollMainRef",
58
- ref: scrollMainRef,
59
- class: vue.normalizeClass([{ "is-scrollable": scrollable.value }, "relative hzzt-scroll"])
60
- }, [
61
- scrollable.value ? (vue.openBlock(), vue.createElementBlock("div", {
62
- key: 0,
63
- class: "hzzt-scroll__nav-prev",
64
- onClick: btnNavPrev
65
- }, [
66
- vue.createVNode(index["default"], { name: "arrow-left" })
67
- ])) : vue.createCommentVNode("v-if", true),
68
- scrollable.value ? (vue.openBlock(), vue.createElementBlock("div", {
69
- key: 1,
70
- class: "hzzt-scroll__nav-next",
71
- onClick: btnNavNext
72
- }, [
73
- vue.createVNode(index["default"], { name: "arrow-right" })
74
- ])) : vue.createCommentVNode("v-if", true),
75
- vue.createElementVNode("div", {
76
- ref_key: "scrollRef",
77
- ref: scrollRef,
78
- class: "overflow-hidden"
79
- }, [
80
- vue.createElementVNode("div", {
81
- ref_key: "scrollContentRef",
82
- ref: scrollContentRef,
83
- style: vue.normalizeStyle({ transform: `translateX(${-navTranslateX.value}px)` }),
84
- class: "hzzt-scroll__content"
85
- }, [
86
- vue.renderSlot(_ctx.$slots, "default")
87
- ], 4)
88
- ], 512)
89
- ], 2);
90
- };
91
- }
92
- });
93
- var Scroll = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "scroll.vue"]]);
94
-
95
- exports["default"] = Scroll;
96
3
  //# sourceMappingURL=scroll.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.js","sources":["../../../../../../packages/components/scroll/src/scroll.vue"],"sourcesContent":["<template>\n <div ref=\"scrollMainRef\" :class=\"{'is-scrollable':scrollable}\" class=\"relative hzzt-scroll\">\n <div v-if=\"scrollable\" class=\"hzzt-scroll__nav-prev\" @click=\"btnNavPrev\">\n <hzzt-icon name=\"arrow-left\" />\n </div>\n <div v-if=\"scrollable\" class=\"hzzt-scroll__nav-next\" @click=\"btnNavNext\">\n <hzzt-icon name=\"arrow-right\" />\n </div>\n <div ref=\"scrollRef\" class=\"overflow-hidden\">\n <div ref=\"scrollContentRef\" :style=\"{transform: `translateX(${-navTranslateX}px)`}\" class=\"hzzt-scroll__content\">\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import {onUpdated, ref} from 'vue';\n import {useResizeObserver} from '@vueuse/core';\n import HzztIcon from \"@hzzt-plus/components/icon/src/index.vue\";\n\n defineOptions({\n name: 'HzztScroll',\n })\n\n const navTranslateX = ref(0);\n const scrollMainRef = ref<HTMLElement | null>(null);\n const scrollRef = ref<HTMLElement | null>(null);\n const scrollContentRef = ref<HTMLElement | null>(null);\n const scrollable = ref(false);\n\n function update() {\n if (!scrollRef.value || !scrollContentRef.value) return;\n const scrollWidth = scrollRef.value ? scrollRef.value.offsetWidth : 0;\n const contentWidth = scrollContentRef.value ? scrollContentRef.value.offsetWidth : 0;\n if (scrollWidth >= contentWidth) {\n scrollable.value = false;\n navTranslateX.value = 0;\n return;\n }\n scrollable.value = true;\n }\n\n useResizeObserver(scrollMainRef, update);\n useResizeObserver(scrollContentRef, update);\n\n onUpdated(() => update());\n\n function btnNavPrev() {\n const containerSize = scrollRef.value?.offsetWidth || 0;\n const currentOffset = navTranslateX.value;\n if (!currentOffset) return;\n const newOffset = currentOffset > containerSize ? currentOffset - containerSize : 0;\n navTranslateX.value = newOffset;\n }\n\n function btnNavNext() {\n const navSize = scrollContentRef.value?.offsetWidth || 0;\n const currentOffset = navTranslateX.value;\n const containerSize = scrollRef.value?.offsetWidth || 0;\n if (navSize - currentOffset < containerSize) return;\n const newOffset = navSize - currentOffset > containerSize * 2 ?\n currentOffset + containerSize :\n navSize - containerSize;\n navTranslateX.value = newOffset;\n }\n</script>\n"],"names":["ref","useResizeObserver","onUpdated"],"mappings":";;;;;;;;;uCAqBgB,CAAA;AAAA,EACZ,IAAM,EAAA,YAAA;AACR,CAAA,CAAA,CAAA;;;;AAEA,IAAM,MAAA,aAAA,GAAgBA,QAAI,CAAC,CAAA,CAAA;AAC3B,IAAM,MAAA,aAAA,GAAgBA,QAAwB,IAAI,CAAA,CAAA;AAClD,IAAM,MAAA,SAAA,GAAYA,QAAwB,IAAI,CAAA,CAAA;AAC9C,IAAM,MAAA,gBAAA,GAAmBA,QAAwB,IAAI,CAAA,CAAA;AACrD,IAAM,MAAA,UAAA,GAAaA,QAAI,KAAK,CAAA,CAAA;AAE5B,IAAA,SAAS,MAAS,GAAA;AAChB,MAAA,IAAI,CAAC,SAAA,CAAU,KAAS,IAAA,CAAC,gBAAiB,CAAA,KAAA;AAAO,QAAA,OAAA;AACjD,MAAA,MAAM,WAAc,GAAA,SAAA,CAAU,KAAQ,GAAA,SAAA,CAAU,MAAM,WAAc,GAAA,CAAA,CAAA;AACpE,MAAA,MAAM,YAAe,GAAA,gBAAA,CAAiB,KAAQ,GAAA,gBAAA,CAAiB,MAAM,WAAc,GAAA,CAAA,CAAA;AACnF,MAAA,IAAI,eAAe,YAAc,EAAA;AAC/B,QAAA,UAAA,CAAW,KAAQ,GAAA,KAAA,CAAA;AACnB,QAAA,aAAA,CAAc,KAAQ,GAAA,CAAA,CAAA;AACtB,QAAA,OAAA;AAAA,OACF;AACA,MAAA,UAAA,CAAW,KAAQ,GAAA,IAAA,CAAA;AAAA,KACrB;AAEA,IAAAC,sBAAA,CAAkB,eAAe,MAAM,CAAA,CAAA;AACvC,IAAAA,sBAAA,CAAkB,kBAAkB,MAAM,CAAA,CAAA;AAE1C,IAAUC,aAAA,CAAA,MAAM,QAAQ,CAAA,CAAA;AAExB,IAAA,SAAS,UAAa,GAAA;AACpB,MAAM,IAAA,EAAA,CAAA;AACN,MAAA,MAAM,gBAAgB,CAAc,CAAA,EAAA,GAAA,SAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAA,KAAA,CAAA,CAAA;AACpC,MAAA,MAAK,aAAA,GAAA,aAAA,CAAA,KAAA,CAAA;AAAe,MAAA,IAAA,CAAA,aAAA;AACpB,QAAA,OAAkB;AAClB,MAAA,MAAA,SAAsB,GAAA,aAAA,GAAA,aAAA,GAAA,aAAA,GAAA,aAAA,GAAA,CAAA,CAAA;AAAA,MACxB,aAAA,CAAA,KAAA,GAAA,SAAA,CAAA;AAEA,KAAA;AACE,IAAM,SAAA,UAA2B,GAAA;AACjC,MAAA,IAAA,EAAM;AACN,MAAM,MAAA,OAAA,GAAA,CAAA,CAAA,EAAA,GAA0B,gBAAO,CAAe,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAA,KAAA,CAAA,CAAA;AACtD,MAAA,mBAA8B,GAAA,aAAA,CAAA,KAAA,CAAA;AAAe,MAAA,MAAA,aAAA,GAAA,CAAA,CAAA,EAAA,GAAA,SAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAA,KAAA,CAAA,CAAA;AAC7C,MAAA,IAAA,uBAA4B,GAAA,aAAA;AAG5B,QAAA,OAAA;AAAsB,MACxB,MAAA,SAAA,GAAA,OAAA,GAAA,aAAA,GAAA,aAAA,GAAA,CAAA,GAAA,aAAA,GAAA,aAAA,GAAA,OAAA,GAAA,aAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"scroll.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,3 +1,96 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var core = require('@vueuse/core');
7
+ var index = require('../../icon/src/index.js');
8
+ var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
9
+
10
+ const __default__ = vue.defineComponent({
11
+ name: "HzztScroll"
12
+ });
13
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
14
+ ...__default__,
15
+ setup(__props) {
16
+ const navTranslateX = vue.ref(0);
17
+ const scrollMainRef = vue.ref(null);
18
+ const scrollRef = vue.ref(null);
19
+ const scrollContentRef = vue.ref(null);
20
+ const scrollable = vue.ref(false);
21
+ function update() {
22
+ if (!scrollRef.value || !scrollContentRef.value)
23
+ return;
24
+ const scrollWidth = scrollRef.value ? scrollRef.value.offsetWidth : 0;
25
+ const contentWidth = scrollContentRef.value ? scrollContentRef.value.offsetWidth : 0;
26
+ if (scrollWidth >= contentWidth) {
27
+ scrollable.value = false;
28
+ navTranslateX.value = 0;
29
+ return;
30
+ }
31
+ scrollable.value = true;
32
+ }
33
+ core.useResizeObserver(scrollMainRef, update);
34
+ core.useResizeObserver(scrollContentRef, update);
35
+ vue.onUpdated(() => update());
36
+ function btnNavPrev() {
37
+ var _a;
38
+ const containerSize = ((_a = scrollRef.value) == null ? void 0 : _a.offsetWidth) || 0;
39
+ const currentOffset = navTranslateX.value;
40
+ if (!currentOffset)
41
+ return;
42
+ const newOffset = currentOffset > containerSize ? currentOffset - containerSize : 0;
43
+ navTranslateX.value = newOffset;
44
+ }
45
+ function btnNavNext() {
46
+ var _a, _b;
47
+ const navSize = ((_a = scrollContentRef.value) == null ? void 0 : _a.offsetWidth) || 0;
48
+ const currentOffset = navTranslateX.value;
49
+ const containerSize = ((_b = scrollRef.value) == null ? void 0 : _b.offsetWidth) || 0;
50
+ if (navSize - currentOffset < containerSize)
51
+ return;
52
+ const newOffset = navSize - currentOffset > containerSize * 2 ? currentOffset + containerSize : navSize - containerSize;
53
+ navTranslateX.value = newOffset;
54
+ }
55
+ return (_ctx, _cache) => {
56
+ return vue.openBlock(), vue.createElementBlock("div", {
57
+ ref_key: "scrollMainRef",
58
+ ref: scrollMainRef,
59
+ class: vue.normalizeClass([{ "is-scrollable": scrollable.value }, "relative hzzt-scroll"])
60
+ }, [
61
+ scrollable.value ? (vue.openBlock(), vue.createElementBlock("div", {
62
+ key: 0,
63
+ class: "hzzt-scroll__nav-prev",
64
+ onClick: btnNavPrev
65
+ }, [
66
+ vue.createVNode(index["default"], { name: "arrow-left" })
67
+ ])) : vue.createCommentVNode("v-if", true),
68
+ scrollable.value ? (vue.openBlock(), vue.createElementBlock("div", {
69
+ key: 1,
70
+ class: "hzzt-scroll__nav-next",
71
+ onClick: btnNavNext
72
+ }, [
73
+ vue.createVNode(index["default"], { name: "arrow-right" })
74
+ ])) : vue.createCommentVNode("v-if", true),
75
+ vue.createElementVNode("div", {
76
+ ref_key: "scrollRef",
77
+ ref: scrollRef,
78
+ class: "overflow-hidden"
79
+ }, [
80
+ vue.createElementVNode("div", {
81
+ ref_key: "scrollContentRef",
82
+ ref: scrollContentRef,
83
+ style: vue.normalizeStyle({ transform: `translateX(${-navTranslateX.value}px)` }),
84
+ class: "hzzt-scroll__content"
85
+ }, [
86
+ vue.renderSlot(_ctx.$slots, "default")
87
+ ], 4)
88
+ ], 512)
89
+ ], 2);
90
+ };
91
+ }
92
+ });
93
+ var Scroll = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "scroll.vue"]]);
94
+
95
+ exports["default"] = Scroll;
3
96
  //# sourceMappingURL=scroll2.js.map