@element-plus/nightly 0.0.20220227 → 0.0.20220228

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 (273) hide show
  1. package/README.md +8 -0
  2. package/dist/index.full.js +5 -5
  3. package/dist/index.full.min.js +2 -2
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +2 -2
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +5 -5
  8. package/dist/locale/af.js +1 -1
  9. package/dist/locale/af.min.js +1 -1
  10. package/dist/locale/af.min.mjs +1 -1
  11. package/dist/locale/af.mjs +1 -1
  12. package/dist/locale/ar.js +1 -1
  13. package/dist/locale/ar.min.js +1 -1
  14. package/dist/locale/ar.min.mjs +1 -1
  15. package/dist/locale/ar.mjs +1 -1
  16. package/dist/locale/bg.js +1 -1
  17. package/dist/locale/bg.min.js +1 -1
  18. package/dist/locale/bg.min.mjs +1 -1
  19. package/dist/locale/bg.mjs +1 -1
  20. package/dist/locale/bn.js +1 -1
  21. package/dist/locale/bn.min.js +1 -1
  22. package/dist/locale/bn.min.mjs +1 -1
  23. package/dist/locale/bn.mjs +1 -1
  24. package/dist/locale/ca.js +1 -1
  25. package/dist/locale/ca.min.js +1 -1
  26. package/dist/locale/ca.min.mjs +1 -1
  27. package/dist/locale/ca.mjs +1 -1
  28. package/dist/locale/cs.js +1 -1
  29. package/dist/locale/cs.min.js +1 -1
  30. package/dist/locale/cs.min.mjs +1 -1
  31. package/dist/locale/cs.mjs +1 -1
  32. package/dist/locale/da.js +1 -1
  33. package/dist/locale/da.min.js +1 -1
  34. package/dist/locale/da.min.mjs +1 -1
  35. package/dist/locale/da.mjs +1 -1
  36. package/dist/locale/de.js +1 -1
  37. package/dist/locale/de.min.js +1 -1
  38. package/dist/locale/de.min.mjs +1 -1
  39. package/dist/locale/de.mjs +1 -1
  40. package/dist/locale/el.js +1 -1
  41. package/dist/locale/el.min.js +1 -1
  42. package/dist/locale/el.min.mjs +1 -1
  43. package/dist/locale/el.mjs +1 -1
  44. package/dist/locale/en.js +1 -1
  45. package/dist/locale/en.min.js +1 -1
  46. package/dist/locale/en.min.mjs +1 -1
  47. package/dist/locale/en.mjs +1 -1
  48. package/dist/locale/eo.js +1 -1
  49. package/dist/locale/eo.min.js +1 -1
  50. package/dist/locale/eo.min.mjs +1 -1
  51. package/dist/locale/eo.mjs +1 -1
  52. package/dist/locale/es.js +1 -1
  53. package/dist/locale/es.min.js +1 -1
  54. package/dist/locale/es.min.mjs +1 -1
  55. package/dist/locale/es.mjs +1 -1
  56. package/dist/locale/et.js +1 -1
  57. package/dist/locale/et.min.js +1 -1
  58. package/dist/locale/et.min.mjs +1 -1
  59. package/dist/locale/et.mjs +1 -1
  60. package/dist/locale/eu.js +1 -1
  61. package/dist/locale/eu.min.js +1 -1
  62. package/dist/locale/eu.min.mjs +1 -1
  63. package/dist/locale/eu.mjs +1 -1
  64. package/dist/locale/fa.js +1 -1
  65. package/dist/locale/fa.min.js +1 -1
  66. package/dist/locale/fa.min.mjs +1 -1
  67. package/dist/locale/fa.mjs +1 -1
  68. package/dist/locale/fi.js +1 -1
  69. package/dist/locale/fi.min.js +1 -1
  70. package/dist/locale/fi.min.mjs +1 -1
  71. package/dist/locale/fi.mjs +1 -1
  72. package/dist/locale/fr.js +1 -1
  73. package/dist/locale/fr.min.js +1 -1
  74. package/dist/locale/fr.min.mjs +1 -1
  75. package/dist/locale/fr.mjs +1 -1
  76. package/dist/locale/he.js +1 -1
  77. package/dist/locale/he.min.js +1 -1
  78. package/dist/locale/he.min.mjs +1 -1
  79. package/dist/locale/he.mjs +1 -1
  80. package/dist/locale/hr.js +1 -1
  81. package/dist/locale/hr.min.js +1 -1
  82. package/dist/locale/hr.min.mjs +1 -1
  83. package/dist/locale/hr.mjs +1 -1
  84. package/dist/locale/hu.js +1 -1
  85. package/dist/locale/hu.min.js +1 -1
  86. package/dist/locale/hu.min.mjs +1 -1
  87. package/dist/locale/hu.mjs +1 -1
  88. package/dist/locale/hy-am.js +1 -1
  89. package/dist/locale/hy-am.min.js +1 -1
  90. package/dist/locale/hy-am.min.mjs +1 -1
  91. package/dist/locale/hy-am.mjs +1 -1
  92. package/dist/locale/id.js +1 -1
  93. package/dist/locale/id.min.js +1 -1
  94. package/dist/locale/id.min.mjs +1 -1
  95. package/dist/locale/id.mjs +1 -1
  96. package/dist/locale/it.js +1 -1
  97. package/dist/locale/it.min.js +1 -1
  98. package/dist/locale/it.min.mjs +1 -1
  99. package/dist/locale/it.mjs +1 -1
  100. package/dist/locale/ja.js +1 -1
  101. package/dist/locale/ja.min.js +1 -1
  102. package/dist/locale/ja.min.mjs +1 -1
  103. package/dist/locale/ja.mjs +1 -1
  104. package/dist/locale/kk.js +1 -1
  105. package/dist/locale/kk.min.js +1 -1
  106. package/dist/locale/kk.min.mjs +1 -1
  107. package/dist/locale/kk.mjs +1 -1
  108. package/dist/locale/km.js +1 -1
  109. package/dist/locale/km.min.js +1 -1
  110. package/dist/locale/km.min.mjs +1 -1
  111. package/dist/locale/km.mjs +1 -1
  112. package/dist/locale/ko.js +1 -1
  113. package/dist/locale/ko.min.js +1 -1
  114. package/dist/locale/ko.min.mjs +1 -1
  115. package/dist/locale/ko.mjs +1 -1
  116. package/dist/locale/ku.js +1 -1
  117. package/dist/locale/ku.min.js +1 -1
  118. package/dist/locale/ku.min.mjs +1 -1
  119. package/dist/locale/ku.mjs +1 -1
  120. package/dist/locale/ky.js +1 -1
  121. package/dist/locale/ky.min.js +1 -1
  122. package/dist/locale/ky.min.mjs +1 -1
  123. package/dist/locale/ky.mjs +1 -1
  124. package/dist/locale/lt.js +1 -1
  125. package/dist/locale/lt.min.js +1 -1
  126. package/dist/locale/lt.min.mjs +1 -1
  127. package/dist/locale/lt.mjs +1 -1
  128. package/dist/locale/lv.js +1 -1
  129. package/dist/locale/lv.min.js +1 -1
  130. package/dist/locale/lv.min.mjs +1 -1
  131. package/dist/locale/lv.mjs +1 -1
  132. package/dist/locale/mg.js +1 -1
  133. package/dist/locale/mg.min.js +1 -1
  134. package/dist/locale/mg.min.mjs +1 -1
  135. package/dist/locale/mg.mjs +1 -1
  136. package/dist/locale/mn.js +1 -1
  137. package/dist/locale/mn.min.js +1 -1
  138. package/dist/locale/mn.min.mjs +1 -1
  139. package/dist/locale/mn.mjs +1 -1
  140. package/dist/locale/nb-no.js +1 -1
  141. package/dist/locale/nb-no.min.js +1 -1
  142. package/dist/locale/nb-no.min.mjs +1 -1
  143. package/dist/locale/nb-no.mjs +1 -1
  144. package/dist/locale/nl.js +1 -1
  145. package/dist/locale/nl.min.js +1 -1
  146. package/dist/locale/nl.min.mjs +1 -1
  147. package/dist/locale/nl.mjs +1 -1
  148. package/dist/locale/pa.js +1 -1
  149. package/dist/locale/pa.min.js +1 -1
  150. package/dist/locale/pa.min.mjs +1 -1
  151. package/dist/locale/pa.mjs +1 -1
  152. package/dist/locale/pl.js +1 -1
  153. package/dist/locale/pl.min.js +1 -1
  154. package/dist/locale/pl.min.mjs +1 -1
  155. package/dist/locale/pl.mjs +1 -1
  156. package/dist/locale/pt-br.js +1 -1
  157. package/dist/locale/pt-br.min.js +1 -1
  158. package/dist/locale/pt-br.min.mjs +1 -1
  159. package/dist/locale/pt-br.mjs +1 -1
  160. package/dist/locale/pt.js +1 -1
  161. package/dist/locale/pt.min.js +1 -1
  162. package/dist/locale/pt.min.mjs +1 -1
  163. package/dist/locale/pt.mjs +1 -1
  164. package/dist/locale/ro.js +1 -1
  165. package/dist/locale/ro.min.js +1 -1
  166. package/dist/locale/ro.min.mjs +1 -1
  167. package/dist/locale/ro.mjs +1 -1
  168. package/dist/locale/ru.js +1 -1
  169. package/dist/locale/ru.min.js +1 -1
  170. package/dist/locale/ru.min.mjs +1 -1
  171. package/dist/locale/ru.mjs +1 -1
  172. package/dist/locale/sk.js +1 -1
  173. package/dist/locale/sk.min.js +1 -1
  174. package/dist/locale/sk.min.mjs +1 -1
  175. package/dist/locale/sk.mjs +1 -1
  176. package/dist/locale/sl.js +1 -1
  177. package/dist/locale/sl.min.js +1 -1
  178. package/dist/locale/sl.min.mjs +1 -1
  179. package/dist/locale/sl.mjs +1 -1
  180. package/dist/locale/sr.js +1 -1
  181. package/dist/locale/sr.min.js +1 -1
  182. package/dist/locale/sr.min.mjs +1 -1
  183. package/dist/locale/sr.mjs +1 -1
  184. package/dist/locale/sv.js +1 -1
  185. package/dist/locale/sv.min.js +1 -1
  186. package/dist/locale/sv.min.mjs +1 -1
  187. package/dist/locale/sv.mjs +1 -1
  188. package/dist/locale/ta.js +1 -1
  189. package/dist/locale/ta.min.js +1 -1
  190. package/dist/locale/ta.min.mjs +1 -1
  191. package/dist/locale/ta.mjs +1 -1
  192. package/dist/locale/th.js +1 -1
  193. package/dist/locale/th.min.js +1 -1
  194. package/dist/locale/th.min.mjs +1 -1
  195. package/dist/locale/th.mjs +1 -1
  196. package/dist/locale/tk.js +1 -1
  197. package/dist/locale/tk.min.js +1 -1
  198. package/dist/locale/tk.min.mjs +1 -1
  199. package/dist/locale/tk.mjs +1 -1
  200. package/dist/locale/tr.js +1 -1
  201. package/dist/locale/tr.min.js +1 -1
  202. package/dist/locale/tr.min.mjs +1 -1
  203. package/dist/locale/tr.mjs +1 -1
  204. package/dist/locale/ug-cn.js +1 -1
  205. package/dist/locale/ug-cn.min.js +1 -1
  206. package/dist/locale/ug-cn.min.mjs +1 -1
  207. package/dist/locale/ug-cn.mjs +1 -1
  208. package/dist/locale/uk.js +1 -1
  209. package/dist/locale/uk.min.js +1 -1
  210. package/dist/locale/uk.min.mjs +1 -1
  211. package/dist/locale/uk.mjs +1 -1
  212. package/dist/locale/uz-uz.js +1 -1
  213. package/dist/locale/uz-uz.min.js +1 -1
  214. package/dist/locale/uz-uz.min.mjs +1 -1
  215. package/dist/locale/uz-uz.mjs +1 -1
  216. package/dist/locale/vi.js +1 -1
  217. package/dist/locale/vi.min.js +1 -1
  218. package/dist/locale/vi.min.mjs +1 -1
  219. package/dist/locale/vi.mjs +1 -1
  220. package/dist/locale/zh-cn.js +1 -1
  221. package/dist/locale/zh-cn.min.js +1 -1
  222. package/dist/locale/zh-cn.min.mjs +1 -1
  223. package/dist/locale/zh-cn.mjs +1 -1
  224. package/dist/locale/zh-tw.js +1 -1
  225. package/dist/locale/zh-tw.min.js +1 -1
  226. package/dist/locale/zh-tw.min.mjs +1 -1
  227. package/dist/locale/zh-tw.mjs +1 -1
  228. package/es/components/affix/index.mjs +2 -2
  229. package/es/components/affix/src/affix.mjs +23 -116
  230. package/es/components/affix/src/affix.mjs.map +1 -1
  231. package/es/components/affix/src/affix2.mjs +116 -23
  232. package/es/components/affix/src/affix2.mjs.map +1 -1
  233. package/es/components/alert/index.mjs +2 -2
  234. package/es/components/alert/src/alert.mjs +36 -88
  235. package/es/components/alert/src/alert.mjs.map +1 -1
  236. package/es/components/alert/src/alert2.mjs +88 -36
  237. package/es/components/alert/src/alert2.mjs.map +1 -1
  238. package/es/components/badge/index.mjs +2 -2
  239. package/es/components/badge/src/badge.mjs +17 -52
  240. package/es/components/badge/src/badge.mjs.map +1 -1
  241. package/es/components/badge/src/badge2.mjs +52 -17
  242. package/es/components/badge/src/badge2.mjs.map +1 -1
  243. package/es/components/button/src/button2.mjs +3 -3
  244. package/es/components/button/src/button2.mjs.map +1 -1
  245. package/es/components/index.mjs +3 -3
  246. package/es/index.mjs +3 -3
  247. package/es/version.d.ts +1 -1
  248. package/es/version.mjs +1 -1
  249. package/es/version.mjs.map +1 -1
  250. package/lib/components/affix/index.js +2 -2
  251. package/lib/components/affix/src/affix.js +24 -116
  252. package/lib/components/affix/src/affix.js.map +1 -1
  253. package/lib/components/affix/src/affix2.js +116 -24
  254. package/lib/components/affix/src/affix2.js.map +1 -1
  255. package/lib/components/alert/index.js +2 -2
  256. package/lib/components/alert/src/alert.js +37 -87
  257. package/lib/components/alert/src/alert.js.map +1 -1
  258. package/lib/components/alert/src/alert2.js +87 -37
  259. package/lib/components/alert/src/alert2.js.map +1 -1
  260. package/lib/components/badge/index.js +2 -2
  261. package/lib/components/badge/src/badge.js +17 -52
  262. package/lib/components/badge/src/badge.js.map +1 -1
  263. package/lib/components/badge/src/badge2.js +52 -17
  264. package/lib/components/badge/src/badge2.js.map +1 -1
  265. package/lib/components/button/src/button2.js +3 -3
  266. package/lib/components/button/src/button2.js.map +1 -1
  267. package/lib/components/index.js +3 -3
  268. package/lib/index.js +3 -3
  269. package/lib/version.d.ts +1 -1
  270. package/lib/version.js +1 -1
  271. package/lib/version.js.map +1 -1
  272. package/package.json +5 -5
  273. package/web-types.json +1 -1
@@ -1,23 +1,58 @@
1
+ import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, renderSlot, createVNode, Transition, withCtx, withDirectives, createElementVNode, toDisplayString, vShow } from 'vue';
2
+ import '../../../hooks/index.mjs';
1
3
  import '../../../utils/index.mjs';
2
- import { buildProps } from '../../../utils/vue/props.mjs';
4
+ import { badgeProps } from './badge.mjs';
5
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
6
+ import { isNumber } from '@vueuse/core';
3
7
 
4
- const badgeProps = buildProps({
5
- value: {
6
- type: [String, Number],
7
- default: ""
8
- },
9
- max: {
10
- type: Number,
11
- default: 99
12
- },
13
- isDot: Boolean,
14
- hidden: Boolean,
15
- type: {
16
- type: String,
17
- values: ["primary", "success", "warning", "info", "danger"],
18
- default: "danger"
8
+ const _hoisted_1 = ["textContent"];
9
+ const __default__ = {
10
+ name: "ElBadge"
11
+ };
12
+ const _sfc_main = /* @__PURE__ */ defineComponent({
13
+ ...__default__,
14
+ props: badgeProps,
15
+ setup(__props, { expose }) {
16
+ const props = __props;
17
+ const ns = useNamespace("badge");
18
+ const content = computed(() => {
19
+ if (props.isDot)
20
+ return "";
21
+ if (isNumber(props.value) && isNumber(props.max)) {
22
+ return props.max < props.value ? `${props.max}+` : `${props.value}`;
23
+ }
24
+ return `${props.value}`;
25
+ });
26
+ expose({
27
+ content
28
+ });
29
+ return (_ctx, _cache) => {
30
+ return openBlock(), createElementBlock("div", {
31
+ class: normalizeClass(unref(ns).b())
32
+ }, [
33
+ renderSlot(_ctx.$slots, "default"),
34
+ createVNode(Transition, {
35
+ name: `${unref(ns).namespace.value}-zoom-in-center`
36
+ }, {
37
+ default: withCtx(() => [
38
+ withDirectives(createElementVNode("sup", {
39
+ class: normalizeClass([
40
+ unref(ns).e("content"),
41
+ unref(ns).em("content", _ctx.type),
42
+ unref(ns).is("fixed", !!_ctx.$slots.default),
43
+ unref(ns).is("dot", _ctx.isDot)
44
+ ]),
45
+ textContent: toDisplayString(unref(content))
46
+ }, null, 10, _hoisted_1), [
47
+ [vShow, !_ctx.hidden && (unref(content) || unref(content) === "0" || _ctx.isDot)]
48
+ ])
49
+ ]),
50
+ _: 1
51
+ }, 8, ["name"])
52
+ ], 2);
53
+ };
19
54
  }
20
55
  });
21
56
 
22
- export { badgeProps };
57
+ export { _sfc_main as default };
23
58
  //# sourceMappingURL=badge2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"badge2.mjs","sources":["../../../../../../packages/components/badge/src/badge.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\nimport type { ExtractPropTypes } from 'vue'\nimport type Badge from './badge.vue'\n\nexport const badgeProps = buildProps({\n value: {\n type: [String, Number],\n default: '',\n },\n max: {\n type: Number,\n default: 99,\n },\n isDot: Boolean,\n hidden: Boolean,\n type: {\n type: String,\n values: ['primary', 'success', 'warning', 'info', 'danger'],\n default: 'danger',\n },\n} as const)\nexport type BadgeProps = ExtractPropTypes<typeof badgeProps>\n\nexport type BadgeInstance = InstanceType<typeof Badge>\n"],"names":[],"mappings":";;;AACY,MAAC,UAAU,GAAG,UAAU,CAAC;AACrC,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,GAAG,EAAE;AACP,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,KAAK,EAAE,OAAO;AAChB,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC;AAC/D,IAAI,OAAO,EAAE,QAAQ;AACrB,GAAG;AACH,CAAC;;;;"}
1
+ {"version":3,"file":"badge2.mjs","sources":["../../../../../../packages/components/badge/src/badge.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <slot></slot>\n <transition :name=\"`${ns.namespace.value}-zoom-in-center`\">\n <sup\n v-show=\"!hidden && (content || content === '0' || isDot)\"\n :class=\"[\n ns.e('content'),\n ns.em('content', type),\n ns.is('fixed', !!$slots.default),\n ns.is('dot', isDot),\n ]\"\n v-text=\"content\"\n >\n </sup>\n </transition>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isNumber } from '@element-plus/utils'\nimport { badgeProps } from './badge'\n\ndefineOptions({\n name: 'ElBadge',\n})\n\nconst props = defineProps(badgeProps)\n\nconst ns = useNamespace('badge')\n\nconst content = computed<string>(() => {\n if (props.isDot) return ''\n\n if (isNumber(props.value) && isNumber(props.max)) {\n return props.max < props.value ? `${props.max}+` : `${props.value}`\n }\n return `${props.value}`\n})\n\ndefineExpose({\n /** @description badge content */\n content,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA+BA;AAEA;;;;;;;;AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -124,11 +124,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
124
124
  ]),
125
125
  _: 1
126
126
  }, 8, ["class"]))
127
- ], 2112)) : _ctx.icon ? (openBlock(), createBlock(unref(ElIcon), { key: 1 }, {
127
+ ], 2112)) : _ctx.icon || _ctx.$slots.icon ? (openBlock(), createBlock(unref(ElIcon), { key: 1 }, {
128
128
  default: withCtx(() => [
129
- (openBlock(), createBlock(resolveDynamicComponent(_ctx.icon)))
129
+ _ctx.icon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.icon), { key: 0 })) : renderSlot(_ctx.$slots, "icon", { key: 1 })
130
130
  ]),
131
- _: 1
131
+ _: 3
132
132
  })) : createCommentVNode("v-if", true),
133
133
  _ctx.$slots.default ? (openBlock(), createElementBlock("span", {
134
134
  key: 2,
@@ -1 +1 @@
1
- {"version":3,"file":"button2.mjs","sources":["../../../../../../packages/components/button/src/button.vue"],"sourcesContent":["<template>\n <button\n ref=\"_ref\"\n :class=\"[\n ns.b(),\n ns.m(_type),\n ns.m(_size),\n ns.is('disabled', _disabled),\n ns.is('loading', loading),\n ns.is('plain', plain),\n ns.is('round', round),\n ns.is('circle', circle),\n ]\"\n :disabled=\"_disabled || loading\"\n :autofocus=\"autofocus\"\n :type=\"nativeType\"\n :style=\"buttonStyle\"\n @click=\"handleClick\"\n >\n <template v-if=\"loading\">\n <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n <el-icon v-else :class=\"ns.is('loading')\">\n <component :is=\"loadingIcon\" />\n </el-icon>\n </template>\n <el-icon v-else-if=\"icon\">\n <component :is=\"icon\" />\n </el-icon>\n <span\n v-if=\"$slots.default\"\n :class=\"{ [ns.em('text', 'expand')]: shouldAddSpace }\"\n >\n <slot></slot>\n </span>\n </button>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, Text, ref, useSlots } from 'vue'\nimport { TinyColor } from '@ctrl/tinycolor'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n useDisabled,\n useFormItem,\n useGlobalConfig,\n useNamespace,\n useSize,\n} from '@element-plus/hooks'\nimport { buttonGroupContextKey } from '@element-plus/tokens'\nimport { buttonEmits, buttonProps } from './button'\n\ndefineOptions({\n name: 'ElButton',\n})\n\nconst props = defineProps(buttonProps)\nconst emit = defineEmits(buttonEmits)\nconst slots = useSlots()\n\nconst buttonGroupContext = inject(buttonGroupContextKey, undefined)\nconst globalConfig = useGlobalConfig('button')\nconst ns = useNamespace('button')\nconst { form } = useFormItem()\nconst _size = useSize(computed(() => buttonGroupContext?.size))\nconst _disabled = useDisabled()\nconst _ref = ref<HTMLButtonElement>()\n\nconst _type = computed(() => props.type || buttonGroupContext?.type || '')\nconst autoInsertSpace = computed(\n () => props.autoInsertSpace ?? globalConfig.value?.autoInsertSpace ?? false\n)\n\n// add space between two characters in Chinese\nconst shouldAddSpace = computed(() => {\n const defaultSlot = slots.default?.()\n if (autoInsertSpace.value && defaultSlot?.length === 1) {\n const slot = defaultSlot[0]\n if (slot?.type === Text) {\n const text = slot.children\n return /^\\p{Unified_Ideograph}{2}$/u.test(text as string)\n }\n }\n return false\n})\n\n// calculate hover & active color by custom color\n// only work when custom color\nconst buttonStyle = computed(() => {\n let styles: Record<string, string> = {}\n\n const buttonColor = props.color\n\n if (buttonColor) {\n const color = new TinyColor(buttonColor)\n const shadeBgColor = color.shade(20).toString()\n if (props.plain) {\n styles = {\n '--el-button-bg-color': color.tint(90).toString(),\n '--el-button-text-color': buttonColor,\n '--el-button-hover-text-color': 'var(--el-color-white)',\n '--el-button-hover-bg-color': buttonColor,\n '--el-button-hover-border-color': buttonColor,\n '--el-button-active-bg-color': shadeBgColor,\n '--el-button-active-text-color': 'var(--el-color-white)',\n '--el-button-active-border-color': shadeBgColor,\n }\n } else {\n const tintBgColor = color.tint(30).toString()\n styles = {\n '--el-button-bg-color': buttonColor,\n '--el-button-border-color': buttonColor,\n '--el-button-hover-bg-color': tintBgColor,\n '--el-button-hover-border-color': tintBgColor,\n '--el-button-active-bg-color': shadeBgColor,\n '--el-button-active-border-color': shadeBgColor,\n }\n }\n\n if (_disabled.value) {\n const disabledButtonColor = color.tint(50).toString()\n styles['--el-button-disabled-bg-color'] = disabledButtonColor\n styles['--el-button-disabled-border-color'] = disabledButtonColor\n }\n }\n\n return styles\n})\n\nconst handleClick = (evt: MouseEvent) => {\n if (props.nativeType === 'reset') {\n form?.resetFields()\n }\n emit('click', evt)\n}\n\ndefineExpose({\n /** @description button html element */\n ref: _ref,\n /** @description button size */\n size: _size,\n /** @description button type */\n type: _type,\n /** @description button disabled */\n disabled: _disabled,\n /** @description whether adding space */\n shouldAddSpace,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAyDA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;;;;;;;;;;;AAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA;;;;;;AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"button2.mjs","sources":["../../../../../../packages/components/button/src/button.vue"],"sourcesContent":["<template>\n <button\n ref=\"_ref\"\n :class=\"[\n ns.b(),\n ns.m(_type),\n ns.m(_size),\n ns.is('disabled', _disabled),\n ns.is('loading', loading),\n ns.is('plain', plain),\n ns.is('round', round),\n ns.is('circle', circle),\n ]\"\n :disabled=\"_disabled || loading\"\n :autofocus=\"autofocus\"\n :type=\"nativeType\"\n :style=\"buttonStyle\"\n @click=\"handleClick\"\n >\n <template v-if=\"loading\">\n <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n <el-icon v-else :class=\"ns.is('loading')\">\n <component :is=\"loadingIcon\" />\n </el-icon>\n </template>\n <el-icon v-else-if=\"icon || $slots.icon\">\n <component :is=\"icon\" v-if=\"icon\" />\n <slot v-else name=\"icon\" />\n </el-icon>\n <span\n v-if=\"$slots.default\"\n :class=\"{ [ns.em('text', 'expand')]: shouldAddSpace }\"\n >\n <slot></slot>\n </span>\n </button>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, Text, ref, useSlots } from 'vue'\nimport { TinyColor } from '@ctrl/tinycolor'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n useDisabled,\n useFormItem,\n useGlobalConfig,\n useNamespace,\n useSize,\n} from '@element-plus/hooks'\nimport { buttonGroupContextKey } from '@element-plus/tokens'\nimport { buttonEmits, buttonProps } from './button'\n\ndefineOptions({\n name: 'ElButton',\n})\n\nconst props = defineProps(buttonProps)\nconst emit = defineEmits(buttonEmits)\nconst slots = useSlots()\n\nconst buttonGroupContext = inject(buttonGroupContextKey, undefined)\nconst globalConfig = useGlobalConfig('button')\nconst ns = useNamespace('button')\nconst { form } = useFormItem()\nconst _size = useSize(computed(() => buttonGroupContext?.size))\nconst _disabled = useDisabled()\nconst _ref = ref<HTMLButtonElement>()\n\nconst _type = computed(() => props.type || buttonGroupContext?.type || '')\nconst autoInsertSpace = computed(\n () => props.autoInsertSpace ?? globalConfig.value?.autoInsertSpace ?? false\n)\n\n// add space between two characters in Chinese\nconst shouldAddSpace = computed(() => {\n const defaultSlot = slots.default?.()\n if (autoInsertSpace.value && defaultSlot?.length === 1) {\n const slot = defaultSlot[0]\n if (slot?.type === Text) {\n const text = slot.children\n return /^\\p{Unified_Ideograph}{2}$/u.test(text as string)\n }\n }\n return false\n})\n\n// calculate hover & active color by custom color\n// only work when custom color\nconst buttonStyle = computed(() => {\n let styles: Record<string, string> = {}\n\n const buttonColor = props.color\n\n if (buttonColor) {\n const color = new TinyColor(buttonColor)\n const shadeBgColor = color.shade(20).toString()\n if (props.plain) {\n styles = {\n '--el-button-bg-color': color.tint(90).toString(),\n '--el-button-text-color': buttonColor,\n '--el-button-hover-text-color': 'var(--el-color-white)',\n '--el-button-hover-bg-color': buttonColor,\n '--el-button-hover-border-color': buttonColor,\n '--el-button-active-bg-color': shadeBgColor,\n '--el-button-active-text-color': 'var(--el-color-white)',\n '--el-button-active-border-color': shadeBgColor,\n }\n } else {\n const tintBgColor = color.tint(30).toString()\n styles = {\n '--el-button-bg-color': buttonColor,\n '--el-button-border-color': buttonColor,\n '--el-button-hover-bg-color': tintBgColor,\n '--el-button-hover-border-color': tintBgColor,\n '--el-button-active-bg-color': shadeBgColor,\n '--el-button-active-border-color': shadeBgColor,\n }\n }\n\n if (_disabled.value) {\n const disabledButtonColor = color.tint(50).toString()\n styles['--el-button-disabled-bg-color'] = disabledButtonColor\n styles['--el-button-disabled-border-color'] = disabledButtonColor\n }\n }\n\n return styles\n})\n\nconst handleClick = (evt: MouseEvent) => {\n if (props.nativeType === 'reset') {\n form?.resetFields()\n }\n emit('click', evt)\n}\n\ndefineExpose({\n /** @description button html element */\n ref: _ref,\n /** @description button size */\n size: _size,\n /** @description button type */\n type: _type,\n /** @description button disabled */\n disabled: _disabled,\n /** @description whether adding space */\n shouldAddSpace,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA0DA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAKA;;;;;;;;;;;AAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA;;;;;;AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -70,11 +70,11 @@ export { ElMessage } from './message/index.mjs';
70
70
  export { ElMessageBox } from './message-box/index.mjs';
71
71
  export { ElNotification } from './notification/index.mjs';
72
72
  export { ElPopover, ElPopoverDirective } from './popover/index.mjs';
73
- export { affixEmits, affixProps } from './affix/src/affix2.mjs';
74
- export { alertEffects, alertEmits, alertProps } from './alert/src/alert2.mjs';
73
+ export { affixEmits, affixProps } from './affix/src/affix.mjs';
74
+ export { alertEffects, alertEmits, alertProps } from './alert/src/alert.mjs';
75
75
  export { avatarEmits, avatarProps } from './avatar/src/avatar.mjs';
76
76
  export { backtopEmits, backtopProps } from './backtop/src/backtop.mjs';
77
- export { badgeProps } from './badge/src/badge2.mjs';
77
+ export { badgeProps } from './badge/src/badge.mjs';
78
78
  export { breadcrumbProps } from './breadcrumb/src/breadcrumb.mjs';
79
79
  export { breadcrumbItemProps } from './breadcrumb/src/breadcrumb-item.mjs';
80
80
  export { buttonEmits, buttonNativeTypes, buttonProps, buttonTypes } from './button/src/button.mjs';
package/es/index.mjs CHANGED
@@ -5,16 +5,16 @@ import './directives/index.mjs';
5
5
  import './hooks/index.mjs';
6
6
  import './tokens/index.mjs';
7
7
  export { makeInstaller } from './make-installer.mjs';
8
- export { affixEmits, affixProps } from './components/affix/src/affix2.mjs';
8
+ export { affixEmits, affixProps } from './components/affix/src/affix.mjs';
9
9
  export { ElAffix } from './components/affix/index.mjs';
10
- export { alertEffects, alertEmits, alertProps } from './components/alert/src/alert2.mjs';
10
+ export { alertEffects, alertEmits, alertProps } from './components/alert/src/alert.mjs';
11
11
  export { ElAlert } from './components/alert/index.mjs';
12
12
  export { ElAutocomplete } from './components/autocomplete/index.mjs';
13
13
  export { avatarEmits, avatarProps } from './components/avatar/src/avatar.mjs';
14
14
  export { ElAvatar } from './components/avatar/index.mjs';
15
15
  export { backtopEmits, backtopProps } from './components/backtop/src/backtop.mjs';
16
16
  export { ElBacktop } from './components/backtop/index.mjs';
17
- export { badgeProps } from './components/badge/src/badge2.mjs';
17
+ export { badgeProps } from './components/badge/src/badge.mjs';
18
18
  export { ElBadge } from './components/badge/index.mjs';
19
19
  export { breadcrumbProps } from './components/breadcrumb/src/breadcrumb.mjs';
20
20
  export { breadcrumbItemProps } from './components/breadcrumb/src/breadcrumb-item.mjs';
package/es/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "0.0.20220227";
1
+ export declare const version = "0.0.20220228";
package/es/version.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const version = "0.0.20220227";
1
+ const version = "0.0.20220228";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.20220227'\n"],"names":[],"mappings":"AAAY,MAAC,OAAO,GAAG;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.20220228'\n"],"names":[],"mappings":"AAAY,MAAC,OAAO,GAAG;;;;"}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('../../utils/index.js');
6
- var affix$1 = require('./src/affix.js');
7
- var affix = require('./src/affix2.js');
6
+ var affix$1 = require('./src/affix2.js');
7
+ var affix = require('./src/affix.js');
8
8
  var install = require('../../utils/vue/install.js');
9
9
 
10
10
  const ElAffix = install.withInstall(affix$1["default"]);
@@ -2,125 +2,33 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- var core = require('@vueuse/core');
7
5
  require('../../../utils/index.js');
8
- require('../../../hooks/index.js');
9
- var affix = require('./affix2.js');
10
- var index = require('../../../hooks/use-namespace/index.js');
11
- var scroll = require('../../../utils/dom/scroll.js');
6
+ var props = require('../../../utils/vue/props.js');
12
7
 
13
- const __default__ = {
14
- name: "ElAffix"
15
- };
16
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
17
- ...__default__,
18
- props: affix.affixProps,
19
- emits: affix.affixEmits,
20
- setup(__props, { expose, emit }) {
21
- const props = __props;
22
- const ns = index.useNamespace("affix");
23
- const target = vue.shallowRef();
24
- const root = vue.shallowRef();
25
- const scrollContainer = vue.shallowRef();
26
- const fixed = vue.ref(false);
27
- const height = vue.ref(0);
28
- const width = vue.ref(0);
29
- const scrollTop = vue.ref(0);
30
- const clientHeight = vue.ref(0);
31
- const transform = vue.ref(0);
32
- const rootStyle = vue.computed(() => {
33
- return {
34
- height: fixed.value ? `${height.value}px` : "",
35
- width: fixed.value ? `${width.value}px` : ""
36
- };
37
- });
38
- const affixStyle = vue.computed(() => {
39
- if (!fixed.value)
40
- return;
41
- const offset = props.offset ? `${props.offset}px` : 0;
42
- const _transform = transform.value ? `translateY(${transform.value}px)` : "";
43
- return {
44
- height: `${height.value}px`,
45
- width: `${width.value}px`,
46
- top: props.position === "top" ? offset : "",
47
- bottom: props.position === "bottom" ? offset : "",
48
- transform: _transform,
49
- zIndex: props.zIndex
50
- };
51
- });
52
- const update = () => {
53
- if (!root.value || !target.value || !scrollContainer.value)
54
- return;
55
- const rootRect = root.value.getBoundingClientRect();
56
- const targetRect = target.value.getBoundingClientRect();
57
- height.value = rootRect.height;
58
- width.value = rootRect.width;
59
- scrollTop.value = scrollContainer.value instanceof Window ? document.documentElement.scrollTop : scrollContainer.value.scrollTop || 0;
60
- clientHeight.value = document.documentElement.clientHeight;
61
- if (props.position === "top") {
62
- if (props.target) {
63
- const difference = targetRect.bottom - props.offset - height.value;
64
- fixed.value = props.offset > rootRect.top && targetRect.bottom > 0;
65
- transform.value = difference < 0 ? difference : 0;
66
- } else {
67
- fixed.value = props.offset > rootRect.top;
68
- }
69
- } else {
70
- if (props.target) {
71
- const difference = clientHeight.value - targetRect.top - props.offset - height.value;
72
- fixed.value = clientHeight.value - props.offset < rootRect.bottom && clientHeight.value > targetRect.top;
73
- transform.value = difference < 0 ? -difference : 0;
74
- } else {
75
- fixed.value = clientHeight.value - props.offset < rootRect.bottom;
76
- }
77
- }
78
- };
79
- const onScroll = () => {
80
- update();
81
- emit("scroll", {
82
- scrollTop: scrollTop.value,
83
- fixed: fixed.value
84
- });
85
- };
86
- vue.watch(fixed, (fixed2) => {
87
- emit("change", fixed2);
88
- });
89
- vue.onMounted(() => {
90
- var _a;
91
- if (props.target) {
92
- target.value = (_a = document.querySelector(props.target)) != null ? _a : void 0;
93
- if (!target.value) {
94
- throw new Error(`Target is not existed: ${props.target}`);
95
- }
96
- } else {
97
- target.value = document.documentElement;
98
- }
99
- scrollContainer.value = scroll.getScrollContainer(root.value, true);
100
- });
101
- core.useEventListener(scrollContainer, "scroll", onScroll);
102
- core.useResizeObserver(root, () => update());
103
- core.useResizeObserver(target, () => update());
104
- expose({
105
- update
106
- });
107
- return (_ctx, _cache) => {
108
- return vue.openBlock(), vue.createElementBlock("div", {
109
- ref_key: "root",
110
- ref: root,
111
- class: vue.normalizeClass(vue.unref(ns).b()),
112
- style: vue.normalizeStyle(vue.unref(rootStyle))
113
- }, [
114
- vue.createElementVNode("div", {
115
- class: vue.normalizeClass({ [vue.unref(ns).m("fixed")]: fixed.value }),
116
- style: vue.normalizeStyle(vue.unref(affixStyle))
117
- }, [
118
- vue.renderSlot(_ctx.$slots, "default")
119
- ], 6)
120
- ], 6);
121
- };
8
+ const affixProps = props.buildProps({
9
+ zIndex: {
10
+ type: props.definePropType([Number, String]),
11
+ default: 100
12
+ },
13
+ target: {
14
+ type: String,
15
+ default: ""
16
+ },
17
+ offset: {
18
+ type: Number,
19
+ default: 0
20
+ },
21
+ position: {
22
+ type: String,
23
+ values: ["top", "bottom"],
24
+ default: "top"
122
25
  }
123
26
  });
27
+ const affixEmits = {
28
+ scroll: ({ scrollTop, fixed }) => typeof scrollTop === "number" && typeof fixed === "boolean",
29
+ change: (fixed) => typeof fixed === "boolean"
30
+ };
124
31
 
125
- exports["default"] = _sfc_main;
32
+ exports.affixEmits = affixEmits;
33
+ exports.affixProps = affixProps;
126
34
  //# sourceMappingURL=affix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"affix.js","sources":["../../../../../../packages/components/affix/src/affix.vue"],"sourcesContent":["<template>\n <div ref=\"root\" :class=\"ns.b()\" :style=\"rootStyle\">\n <div :class=\"{ [ns.m('fixed')]: fixed }\" :style=\"affixStyle\">\n <slot></slot>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { getScrollContainer } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { affixEmits, affixProps } from './affix'\n\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'ElAffix',\n})\n\nconst props = defineProps(affixProps)\nconst emit = defineEmits(affixEmits)\n\nconst ns = useNamespace('affix')\n\nconst target = shallowRef<HTMLElement>()\nconst root = shallowRef<HTMLDivElement>()\nconst scrollContainer = shallowRef<HTMLElement | Window>()\n\nconst fixed = ref(false)\nconst height = ref(0) // height of root\nconst width = ref(0) // width of root\nconst scrollTop = ref(0) // scrollTop of documentElement\nconst clientHeight = ref(0) // clientHeight of documentElement\nconst transform = ref(0)\n\nconst rootStyle = computed<CSSProperties>(() => {\n return {\n height: fixed.value ? `${height.value}px` : '',\n width: fixed.value ? `${width.value}px` : '',\n }\n})\n\nconst affixStyle = computed<CSSProperties | undefined>(() => {\n if (!fixed.value) return\n\n const offset = props.offset ? `${props.offset}px` : 0\n const _transform = transform.value ? `translateY(${transform.value}px)` : ''\n\n return {\n height: `${height.value}px`,\n width: `${width.value}px`,\n top: props.position === 'top' ? offset : '',\n bottom: props.position === 'bottom' ? offset : '',\n transform: _transform,\n zIndex: props.zIndex,\n }\n})\n\nconst update = () => {\n if (!root.value || !target.value || !scrollContainer.value) return\n\n const rootRect = root.value.getBoundingClientRect()\n const targetRect = target.value.getBoundingClientRect()\n height.value = rootRect.height\n width.value = rootRect.width\n scrollTop.value =\n scrollContainer.value instanceof Window\n ? document.documentElement.scrollTop\n : scrollContainer.value.scrollTop || 0\n clientHeight.value = document.documentElement.clientHeight\n\n if (props.position === 'top') {\n if (props.target) {\n const difference = targetRect.bottom - props.offset - height.value\n fixed.value = props.offset > rootRect.top && targetRect.bottom > 0\n transform.value = difference < 0 ? difference : 0\n } else {\n fixed.value = props.offset > rootRect.top\n }\n } else {\n if (props.target) {\n const difference =\n clientHeight.value - targetRect.top - props.offset - height.value\n fixed.value =\n clientHeight.value - props.offset < rootRect.bottom &&\n clientHeight.value > targetRect.top\n transform.value = difference < 0 ? -difference : 0\n } else {\n fixed.value = clientHeight.value - props.offset < rootRect.bottom\n }\n }\n}\n\nconst onScroll = () => {\n update()\n\n emit('scroll', {\n scrollTop: scrollTop.value,\n fixed: fixed.value,\n })\n}\n\nwatch(fixed, (fixed) => {\n emit('change', fixed)\n})\n\nonMounted(() => {\n if (props.target) {\n target.value =\n document.querySelector<HTMLElement>(props.target) ?? undefined\n if (!target.value) {\n throw new Error(`Target is not existed: ${props.target}`)\n }\n } else {\n target.value = document.documentElement\n }\n scrollContainer.value = getScrollContainer(root.value!, true)\n})\n\nuseEventListener(scrollContainer, 'scroll', onScroll)\nuseResizeObserver(root, () => update())\nuseResizeObserver(target, () => update())\n\ndefineExpose({\n /** @description update affix status */\n update,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuBA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;AAOA;;;;;;;;;;;;;;AAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA;;;;;;;AASA;;;AAIA;;;;;;;;;;;AAaA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"affix.js","sources":["../../../../../../packages/components/affix/src/affix.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport type { ExtractPropTypes } from 'vue'\nimport type { ZIndexProperty } from 'csstype'\nimport type Affix from './affix.vue'\n\nexport const affixProps = buildProps({\n zIndex: {\n type: definePropType<ZIndexProperty>([Number, String]),\n default: 100,\n },\n target: {\n type: String,\n default: '',\n },\n offset: {\n type: Number,\n default: 0,\n },\n position: {\n type: String,\n values: ['top', 'bottom'],\n default: 'top',\n },\n} as const)\nexport type AffixProps = ExtractPropTypes<typeof affixProps>\n\nexport const affixEmits = {\n scroll: ({ scrollTop, fixed }: { scrollTop: number; fixed: boolean }) =>\n typeof scrollTop === 'number' && typeof fixed === 'boolean',\n change: (fixed: boolean) => typeof fixed === 'boolean',\n}\nexport type AffixEmits = typeof affixEmits\n\nexport type AffixInstance = InstanceType<typeof Affix>\n"],"names":["buildProps","definePropType"],"mappings":";;;;;;;AACY,MAAC,UAAU,GAAGA,gBAAU,CAAC;AACrC,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAEC,oBAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,IAAI,OAAO,EAAE,GAAG;AAChB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC7B,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,UAAU,GAAG;AAC1B,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;AAC/F,EAAE,MAAM,EAAE,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,SAAS;AAC/C;;;;;"}
@@ -2,33 +2,125 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var vue = require('vue');
6
+ var core = require('@vueuse/core');
5
7
  require('../../../utils/index.js');
6
- var props = require('../../../utils/vue/props.js');
8
+ require('../../../hooks/index.js');
9
+ var affix = require('./affix.js');
10
+ var index = require('../../../hooks/use-namespace/index.js');
11
+ var scroll = require('../../../utils/dom/scroll.js');
7
12
 
8
- const affixProps = props.buildProps({
9
- zIndex: {
10
- type: props.definePropType([Number, String]),
11
- default: 100
12
- },
13
- target: {
14
- type: String,
15
- default: ""
16
- },
17
- offset: {
18
- type: Number,
19
- default: 0
20
- },
21
- position: {
22
- type: String,
23
- values: ["top", "bottom"],
24
- default: "top"
13
+ const __default__ = {
14
+ name: "ElAffix"
15
+ };
16
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
17
+ ...__default__,
18
+ props: affix.affixProps,
19
+ emits: affix.affixEmits,
20
+ setup(__props, { expose, emit }) {
21
+ const props = __props;
22
+ const ns = index.useNamespace("affix");
23
+ const target = vue.shallowRef();
24
+ const root = vue.shallowRef();
25
+ const scrollContainer = vue.shallowRef();
26
+ const fixed = vue.ref(false);
27
+ const height = vue.ref(0);
28
+ const width = vue.ref(0);
29
+ const scrollTop = vue.ref(0);
30
+ const clientHeight = vue.ref(0);
31
+ const transform = vue.ref(0);
32
+ const rootStyle = vue.computed(() => {
33
+ return {
34
+ height: fixed.value ? `${height.value}px` : "",
35
+ width: fixed.value ? `${width.value}px` : ""
36
+ };
37
+ });
38
+ const affixStyle = vue.computed(() => {
39
+ if (!fixed.value)
40
+ return;
41
+ const offset = props.offset ? `${props.offset}px` : 0;
42
+ const _transform = transform.value ? `translateY(${transform.value}px)` : "";
43
+ return {
44
+ height: `${height.value}px`,
45
+ width: `${width.value}px`,
46
+ top: props.position === "top" ? offset : "",
47
+ bottom: props.position === "bottom" ? offset : "",
48
+ transform: _transform,
49
+ zIndex: props.zIndex
50
+ };
51
+ });
52
+ const update = () => {
53
+ if (!root.value || !target.value || !scrollContainer.value)
54
+ return;
55
+ const rootRect = root.value.getBoundingClientRect();
56
+ const targetRect = target.value.getBoundingClientRect();
57
+ height.value = rootRect.height;
58
+ width.value = rootRect.width;
59
+ scrollTop.value = scrollContainer.value instanceof Window ? document.documentElement.scrollTop : scrollContainer.value.scrollTop || 0;
60
+ clientHeight.value = document.documentElement.clientHeight;
61
+ if (props.position === "top") {
62
+ if (props.target) {
63
+ const difference = targetRect.bottom - props.offset - height.value;
64
+ fixed.value = props.offset > rootRect.top && targetRect.bottom > 0;
65
+ transform.value = difference < 0 ? difference : 0;
66
+ } else {
67
+ fixed.value = props.offset > rootRect.top;
68
+ }
69
+ } else {
70
+ if (props.target) {
71
+ const difference = clientHeight.value - targetRect.top - props.offset - height.value;
72
+ fixed.value = clientHeight.value - props.offset < rootRect.bottom && clientHeight.value > targetRect.top;
73
+ transform.value = difference < 0 ? -difference : 0;
74
+ } else {
75
+ fixed.value = clientHeight.value - props.offset < rootRect.bottom;
76
+ }
77
+ }
78
+ };
79
+ const onScroll = () => {
80
+ update();
81
+ emit("scroll", {
82
+ scrollTop: scrollTop.value,
83
+ fixed: fixed.value
84
+ });
85
+ };
86
+ vue.watch(fixed, (fixed2) => {
87
+ emit("change", fixed2);
88
+ });
89
+ vue.onMounted(() => {
90
+ var _a;
91
+ if (props.target) {
92
+ target.value = (_a = document.querySelector(props.target)) != null ? _a : void 0;
93
+ if (!target.value) {
94
+ throw new Error(`Target is not existed: ${props.target}`);
95
+ }
96
+ } else {
97
+ target.value = document.documentElement;
98
+ }
99
+ scrollContainer.value = scroll.getScrollContainer(root.value, true);
100
+ });
101
+ core.useEventListener(scrollContainer, "scroll", onScroll);
102
+ core.useResizeObserver(root, () => update());
103
+ core.useResizeObserver(target, () => update());
104
+ expose({
105
+ update
106
+ });
107
+ return (_ctx, _cache) => {
108
+ return vue.openBlock(), vue.createElementBlock("div", {
109
+ ref_key: "root",
110
+ ref: root,
111
+ class: vue.normalizeClass(vue.unref(ns).b()),
112
+ style: vue.normalizeStyle(vue.unref(rootStyle))
113
+ }, [
114
+ vue.createElementVNode("div", {
115
+ class: vue.normalizeClass({ [vue.unref(ns).m("fixed")]: fixed.value }),
116
+ style: vue.normalizeStyle(vue.unref(affixStyle))
117
+ }, [
118
+ vue.renderSlot(_ctx.$slots, "default")
119
+ ], 6)
120
+ ], 6);
121
+ };
25
122
  }
26
123
  });
27
- const affixEmits = {
28
- scroll: ({ scrollTop, fixed }) => typeof scrollTop === "number" && typeof fixed === "boolean",
29
- change: (fixed) => typeof fixed === "boolean"
30
- };
31
124
 
32
- exports.affixEmits = affixEmits;
33
- exports.affixProps = affixProps;
125
+ exports["default"] = _sfc_main;
34
126
  //# sourceMappingURL=affix2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"affix2.js","sources":["../../../../../../packages/components/affix/src/affix.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport type { ExtractPropTypes } from 'vue'\nimport type { ZIndexProperty } from 'csstype'\nimport type Affix from './affix.vue'\n\nexport const affixProps = buildProps({\n zIndex: {\n type: definePropType<ZIndexProperty>([Number, String]),\n default: 100,\n },\n target: {\n type: String,\n default: '',\n },\n offset: {\n type: Number,\n default: 0,\n },\n position: {\n type: String,\n values: ['top', 'bottom'],\n default: 'top',\n },\n} as const)\nexport type AffixProps = ExtractPropTypes<typeof affixProps>\n\nexport const affixEmits = {\n scroll: ({ scrollTop, fixed }: { scrollTop: number; fixed: boolean }) =>\n typeof scrollTop === 'number' && typeof fixed === 'boolean',\n change: (fixed: boolean) => typeof fixed === 'boolean',\n}\nexport type AffixEmits = typeof affixEmits\n\nexport type AffixInstance = InstanceType<typeof Affix>\n"],"names":["buildProps","definePropType"],"mappings":";;;;;;;AACY,MAAC,UAAU,GAAGA,gBAAU,CAAC;AACrC,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAEC,oBAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,IAAI,OAAO,EAAE,GAAG;AAChB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC7B,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,UAAU,GAAG;AAC1B,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;AAC/F,EAAE,MAAM,EAAE,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,SAAS;AAC/C;;;;;"}
1
+ {"version":3,"file":"affix2.js","sources":["../../../../../../packages/components/affix/src/affix.vue"],"sourcesContent":["<template>\n <div ref=\"root\" :class=\"ns.b()\" :style=\"rootStyle\">\n <div :class=\"{ [ns.m('fixed')]: fixed }\" :style=\"affixStyle\">\n <slot></slot>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { getScrollContainer } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { affixEmits, affixProps } from './affix'\n\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'ElAffix',\n})\n\nconst props = defineProps(affixProps)\nconst emit = defineEmits(affixEmits)\n\nconst ns = useNamespace('affix')\n\nconst target = shallowRef<HTMLElement>()\nconst root = shallowRef<HTMLDivElement>()\nconst scrollContainer = shallowRef<HTMLElement | Window>()\n\nconst fixed = ref(false)\nconst height = ref(0) // height of root\nconst width = ref(0) // width of root\nconst scrollTop = ref(0) // scrollTop of documentElement\nconst clientHeight = ref(0) // clientHeight of documentElement\nconst transform = ref(0)\n\nconst rootStyle = computed<CSSProperties>(() => {\n return {\n height: fixed.value ? `${height.value}px` : '',\n width: fixed.value ? `${width.value}px` : '',\n }\n})\n\nconst affixStyle = computed<CSSProperties | undefined>(() => {\n if (!fixed.value) return\n\n const offset = props.offset ? `${props.offset}px` : 0\n const _transform = transform.value ? `translateY(${transform.value}px)` : ''\n\n return {\n height: `${height.value}px`,\n width: `${width.value}px`,\n top: props.position === 'top' ? offset : '',\n bottom: props.position === 'bottom' ? offset : '',\n transform: _transform,\n zIndex: props.zIndex,\n }\n})\n\nconst update = () => {\n if (!root.value || !target.value || !scrollContainer.value) return\n\n const rootRect = root.value.getBoundingClientRect()\n const targetRect = target.value.getBoundingClientRect()\n height.value = rootRect.height\n width.value = rootRect.width\n scrollTop.value =\n scrollContainer.value instanceof Window\n ? document.documentElement.scrollTop\n : scrollContainer.value.scrollTop || 0\n clientHeight.value = document.documentElement.clientHeight\n\n if (props.position === 'top') {\n if (props.target) {\n const difference = targetRect.bottom - props.offset - height.value\n fixed.value = props.offset > rootRect.top && targetRect.bottom > 0\n transform.value = difference < 0 ? difference : 0\n } else {\n fixed.value = props.offset > rootRect.top\n }\n } else {\n if (props.target) {\n const difference =\n clientHeight.value - targetRect.top - props.offset - height.value\n fixed.value =\n clientHeight.value - props.offset < rootRect.bottom &&\n clientHeight.value > targetRect.top\n transform.value = difference < 0 ? -difference : 0\n } else {\n fixed.value = clientHeight.value - props.offset < rootRect.bottom\n }\n }\n}\n\nconst onScroll = () => {\n update()\n\n emit('scroll', {\n scrollTop: scrollTop.value,\n fixed: fixed.value,\n })\n}\n\nwatch(fixed, (fixed) => {\n emit('change', fixed)\n})\n\nonMounted(() => {\n if (props.target) {\n target.value =\n document.querySelector<HTMLElement>(props.target) ?? undefined\n if (!target.value) {\n throw new Error(`Target is not existed: ${props.target}`)\n }\n } else {\n target.value = document.documentElement\n }\n scrollContainer.value = getScrollContainer(root.value!, true)\n})\n\nuseEventListener(scrollContainer, 'scroll', onScroll)\nuseResizeObserver(root, () => update())\nuseResizeObserver(target, () => update())\n\ndefineExpose({\n /** @description update affix status */\n update,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuBA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;AAOA;;;;;;;;;;;;;;AAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA;;;;;;;AASA;;;AAIA;;;;;;;;;;;AAaA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('../../utils/index.js');
6
- var alert$1 = require('./src/alert.js');
7
- var alert = require('./src/alert2.js');
6
+ var alert$1 = require('./src/alert2.js');
7
+ var alert = require('./src/alert.js');
8
8
  var install = require('../../utils/vue/install.js');
9
9
 
10
10
  const ElAlert = install.withInstall(alert$1["default"]);