@pixelium/web-vue 0.0.2-fix → 0.0.3-alpha

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 (284) hide show
  1. package/README.md +42 -0
  2. package/README.zh.md +6 -3
  3. package/dist/font.css +1 -1
  4. package/dist/index.d.ts +1602 -248
  5. package/dist/normalize.css +2 -0
  6. package/dist/pixelium-vue-icon-hn.cjs +1 -1
  7. package/dist/pixelium-vue-icon-hn.css +2 -1
  8. package/dist/pixelium-vue-icon-hn.js +8533 -8154
  9. package/dist/pixelium-vue-icon-hn.umd.cjs +1 -1
  10. package/dist/pixelium-vue-icon-pa.cjs +1 -1
  11. package/dist/pixelium-vue-icon-pa.css +2 -1
  12. package/dist/pixelium-vue-icon-pa.js +10625 -10143
  13. package/dist/pixelium-vue-icon-pa.umd.cjs +1 -1
  14. package/dist/pixelium-vue.cjs +2 -2
  15. package/dist/pixelium-vue.css +2 -1
  16. package/dist/pixelium-vue.js +7407 -5854
  17. package/dist/pixelium-vue.umd.cjs +2 -2
  18. package/es/aside/index.css +1 -0
  19. package/es/aside/index.js +46 -151
  20. package/es/auto-complete/draw.d.ts +1 -1
  21. package/es/auto-complete/draw.js +26 -51
  22. package/es/auto-complete/index.css +92 -32
  23. package/es/auto-complete/index.d.ts +12 -15
  24. package/es/auto-complete/index.js +338 -400
  25. package/es/auto-complete/type.d.ts +25 -13
  26. package/es/avatar/css.js +2 -0
  27. package/es/avatar/draw.d.ts +2 -0
  28. package/es/avatar/draw.js +11 -0
  29. package/es/avatar/index.css +49 -0
  30. package/es/avatar/index.d.ts +15 -0
  31. package/es/avatar/index.js +110 -0
  32. package/es/avatar/type.d.ts +34 -0
  33. package/es/button/draw.d.ts +4 -4
  34. package/es/button/draw.js +213 -297
  35. package/es/button/index.css +40 -30
  36. package/es/button/index.d.ts +0 -4
  37. package/es/button/index.js +230 -256
  38. package/es/button/type.d.ts +3 -3
  39. package/es/button-group/index.css +0 -3
  40. package/es/button-group/index.d.ts +1 -2
  41. package/es/button-group/index.js +59 -31
  42. package/es/button-group/type.d.ts +21 -4
  43. package/es/checkbox/css.js +2 -0
  44. package/es/checkbox/draw.d.ts +4 -0
  45. package/es/checkbox/draw.js +46 -0
  46. package/es/checkbox/index.css +85 -0
  47. package/es/checkbox/index.d.ts +31 -0
  48. package/es/checkbox/index.js +206 -0
  49. package/es/checkbox/type.d.ts +88 -0
  50. package/es/checkbox-group/css.js +2 -0
  51. package/es/checkbox-group/index.css +20 -0
  52. package/es/checkbox-group/index.d.ts +23 -0
  53. package/es/checkbox-group/index.js +84 -0
  54. package/es/checkbox-group/type.d.ts +78 -0
  55. package/es/col/index.d.ts +2 -2
  56. package/es/col/index.js +43 -58
  57. package/es/container/index.css +1 -0
  58. package/es/container/index.js +18 -31
  59. package/es/divider/index.js +39 -53
  60. package/es/empty/index.css +4 -4
  61. package/es/empty/index.js +16 -71
  62. package/es/entry.js +102 -0
  63. package/es/footer/index.css +1 -0
  64. package/es/footer/index.js +31 -40
  65. package/es/form/css.js +1 -0
  66. package/es/form/index.d.ts +27 -0
  67. package/es/form/index.js +125 -0
  68. package/es/form/type.d.ts +238 -0
  69. package/es/form/use-form.d.ts +4 -0
  70. package/es/form/use-form.js +48 -0
  71. package/es/form-item/css.js +2 -0
  72. package/es/form-item/index.css +77 -0
  73. package/es/form-item/index.d.ts +37 -0
  74. package/es/form-item/index.js +318 -0
  75. package/es/form-item/type.d.ts +96 -0
  76. package/es/grid/index.js +56 -75
  77. package/es/grid-item/css.js +0 -1
  78. package/es/grid-item/index.d.ts +1 -1
  79. package/es/grid-item/index.js +85 -121
  80. package/es/header/index.css +1 -0
  81. package/es/header/index.js +31 -40
  82. package/es/icon/index.js +44 -55
  83. package/es/icons/css-hn.js +0 -1
  84. package/es/icons/css-pa.js +0 -1
  85. package/es/icons/icon-hn.js +10337 -15986
  86. package/es/icons/icon-pa.js +12573 -17447
  87. package/es/image/css.js +2 -0
  88. package/es/image/index.css +69 -0
  89. package/es/image/index.d.ts +35 -0
  90. package/es/image/index.js +199 -0
  91. package/es/image/type.d.ts +126 -0
  92. package/es/index.css +1 -515
  93. package/es/index.d.ts +22 -2
  94. package/es/index.js +144 -123
  95. package/es/input/draw.d.ts +1 -1
  96. package/es/input/draw.js +26 -51
  97. package/es/input/index.css +85 -33
  98. package/es/input/index.d.ts +9 -16
  99. package/es/input/index.js +319 -423
  100. package/es/input/type.d.ts +3 -3
  101. package/es/input-group/index.css +0 -1
  102. package/es/input-group/index.d.ts +2 -2
  103. package/es/input-group/index.js +66 -37
  104. package/es/input-group/type.d.ts +16 -4
  105. package/es/input-group-label/draw.d.ts +1 -1
  106. package/es/input-group-label/draw.js +26 -51
  107. package/es/input-group-label/index.css +33 -22
  108. package/es/input-group-label/index.d.ts +1 -4
  109. package/es/input-group-label/index.js +104 -127
  110. package/es/input-group-label/type.d.ts +3 -3
  111. package/es/input-number/draw.d.ts +1 -1
  112. package/es/input-number/draw.js +26 -51
  113. package/es/input-number/index.css +90 -35
  114. package/es/input-number/index.d.ts +9 -16
  115. package/es/input-number/index.js +428 -536
  116. package/es/input-number/type.d.ts +3 -3
  117. package/es/input-tag/draw.d.ts +1 -1
  118. package/es/input-tag/draw.js +26 -48
  119. package/es/input-tag/index.css +100 -33
  120. package/es/input-tag/index.d.ts +7 -13
  121. package/es/input-tag/index.js +442 -467
  122. package/es/input-tag/type.d.ts +24 -13
  123. package/es/link/index.js +75 -106
  124. package/es/main/index.css +4 -0
  125. package/es/main/index.d.ts +4 -1
  126. package/es/main/index.js +15 -15
  127. package/es/main/type.d.ts +7 -0
  128. package/es/mask/index.js +94 -115
  129. package/es/message/index.css +1 -1
  130. package/es/message/index.js +168 -346
  131. package/es/message-box/css.js +1 -1
  132. package/es/message-box/index.js +98 -114
  133. package/es/message-box/message-box-wrapped.js +33 -46
  134. package/es/message-box/message-box.js +79 -111
  135. package/es/option-list/index.css +13 -13
  136. package/es/option-list/index.d.ts +4 -31
  137. package/es/option-list/index.js +99 -167
  138. package/es/option-list/type.d.ts +5 -1
  139. package/es/pixelate/pixel.d.ts +5 -0
  140. package/es/pixelate/pixel.js +70 -0
  141. package/es/pixelate/pixelate.worker.d.ts +1 -0
  142. package/es/popover/index.d.ts +13 -99
  143. package/es/popover/index.js +75 -238
  144. package/es/popover/type.d.ts +7 -2
  145. package/es/popup/css.js +1 -0
  146. package/es/popup/index.d.ts +210 -0
  147. package/es/popup/index.js +203 -0
  148. package/es/popup/type.d.ts +105 -0
  149. package/es/popup-content/draw.d.ts +2 -2
  150. package/es/popup-content/draw.js +98 -143
  151. package/es/popup-content/index.css +11 -11
  152. package/es/popup-content/index.d.ts +1 -0
  153. package/es/popup-content/index.js +253 -1576
  154. package/es/popup-content/type.d.ts +1 -0
  155. package/es/popup-trigger/index.d.ts +8 -2
  156. package/es/popup-trigger/index.js +122 -95
  157. package/es/popup-trigger/type.d.ts +4 -1
  158. package/es/popup-wrapper/css.js +2 -0
  159. package/es/popup-wrapper/index.css +14 -0
  160. package/es/popup-wrapper/index.d.ts +18 -0
  161. package/es/popup-wrapper/index.js +67 -0
  162. package/es/popup-wrapper/type.d.ts +9 -0
  163. package/es/radio/css.js +1 -0
  164. package/es/radio/draw.d.ts +4 -0
  165. package/es/radio/draw.js +47 -0
  166. package/es/radio/index.d.ts +30 -0
  167. package/es/radio/index.js +190 -0
  168. package/es/radio/style.css +73 -0
  169. package/es/radio/type.d.ts +76 -0
  170. package/es/radio-group/css.js +2 -0
  171. package/es/radio-group/index.css +20 -0
  172. package/es/radio-group/index.d.ts +23 -0
  173. package/es/radio-group/index.js +77 -0
  174. package/es/radio-group/type.d.ts +77 -0
  175. package/es/row/index.js +56 -70
  176. package/es/select/draw.d.ts +1 -1
  177. package/es/select/draw.js +26 -51
  178. package/es/select/index.css +118 -36
  179. package/es/select/index.d.ts +14 -16
  180. package/es/select/index.js +625 -675
  181. package/es/select/type.d.ts +60 -25
  182. package/es/share/const/event-bus-key.js +1 -6
  183. package/es/share/const/index.d.ts +4 -0
  184. package/es/share/const/index.js +22 -24
  185. package/es/share/const/provide-key.d.ts +5 -0
  186. package/es/share/const/provide-key.js +6 -5
  187. package/es/share/const/style.d.ts +6 -0
  188. package/es/share/const/style.js +7 -0
  189. package/es/share/hook/use-cancelable-delay.d.ts +1 -0
  190. package/es/share/hook/use-cancelable-delay.js +42 -0
  191. package/es/share/hook/use-click-outside-listener.d.ts +1 -1
  192. package/es/share/hook/use-click-outside-listener.js +28 -41
  193. package/es/share/hook/use-composition.js +17 -15
  194. package/es/share/hook/use-controlled-mode.d.ts +3 -3
  195. package/es/share/hook/use-controlled-mode.js +20 -23
  196. package/es/share/hook/use-dark-mode.js +51 -65
  197. package/es/share/hook/use-index-of-children.d.ts +2 -1
  198. package/es/share/hook/use-index-of-children.js +47 -45
  199. package/es/share/hook/use-lazy-load.d.ts +10 -0
  200. package/es/share/hook/use-lazy-load.js +133 -0
  201. package/es/share/hook/use-props-detect.d.ts +2 -0
  202. package/es/share/hook/use-resize-observer.d.ts +1 -2
  203. package/es/share/hook/use-resize-observer.js +28 -20
  204. package/es/share/hook/use-screen-width.js +27 -36
  205. package/es/share/hook/use-smooth-transition.d.ts +2 -0
  206. package/es/share/hook/use-smooth-transition.js +65 -0
  207. package/es/share/hook/use-textarea-height.js +86 -92
  208. package/es/share/hook/use-theme-mode.js +41 -42
  209. package/es/share/hook/use-transition-end.d.ts +2 -0
  210. package/es/share/hook/use-transition-end.js +12 -0
  211. package/es/share/hook/use-watch-global-css-var.js +12 -16
  212. package/es/share/hook/use-window-resize-listener.d.ts +1 -0
  213. package/es/share/hook/use-window-resize-listener.js +15 -0
  214. package/es/share/hook/use-z-index.js +30 -27
  215. package/es/share/style/index.css +5 -0
  216. package/es/share/type/index.d.ts +18 -3
  217. package/es/share/util/color.d.ts +5 -3
  218. package/es/share/util/color.js +156 -149
  219. package/es/share/util/common.d.ts +7 -2
  220. package/es/share/util/common.js +127 -65
  221. package/es/share/util/console.d.ts +3 -3
  222. package/es/share/util/console.js +10 -7
  223. package/es/share/util/dom.d.ts +19 -0
  224. package/es/share/util/dom.js +88 -0
  225. package/es/share/util/env.d.ts +1 -0
  226. package/es/share/util/env.js +5 -4
  227. package/es/share/util/event-bus.js +3 -20
  228. package/es/share/util/lru-cache.js +29 -33
  229. package/es/share/util/pixel.d.ts +4 -0
  230. package/es/share/util/plot.d.ts +8 -3
  231. package/es/share/util/plot.js +457 -229
  232. package/es/share/util/reactivity.d.ts +8 -0
  233. package/es/share/util/reactivity.js +23 -0
  234. package/es/share/util/render.js +31 -41
  235. package/es/share/util/theme.d.ts +3 -0
  236. package/es/share/util/theme.js +77 -57
  237. package/es/slider/css.js +2 -0
  238. package/es/slider/draw.d.ts +25 -0
  239. package/es/slider/draw.js +113 -0
  240. package/es/slider/index.css +119 -0
  241. package/es/slider/index.d.ts +66 -0
  242. package/es/slider/index.js +503 -0
  243. package/es/slider/type.d.ts +162 -0
  244. package/es/slider/util.d.ts +37 -0
  245. package/es/slider/util.js +130 -0
  246. package/es/space/index.css +24 -29
  247. package/es/space/index.js +73 -97
  248. package/es/spin/index.css +18 -17
  249. package/es/spin/index.js +72 -102
  250. package/es/spin/type.d.ts +11 -5
  251. package/es/switch/css.js +2 -0
  252. package/es/switch/draw.d.ts +2 -0
  253. package/es/switch/draw.js +18 -0
  254. package/es/switch/index.css +121 -0
  255. package/es/switch/index.d.ts +42 -0
  256. package/es/switch/index.js +259 -0
  257. package/es/switch/type.d.ts +133 -0
  258. package/es/tag/draw.d.ts +2 -2
  259. package/es/tag/draw.js +80 -127
  260. package/es/tag/index.css +38 -22
  261. package/es/tag/index.d.ts +2 -2
  262. package/es/tag/index.js +121 -190
  263. package/es/tag/type.d.ts +3 -3
  264. package/es/text-outline/css.js +2 -0
  265. package/es/text-outline/index.css +4 -0
  266. package/es/text-outline/index.d.ts +17 -0
  267. package/es/text-outline/index.js +33 -0
  268. package/es/text-outline/type.d.ts +23 -0
  269. package/es/textarea/draw.js +9 -11
  270. package/es/textarea/index.css +37 -23
  271. package/es/textarea/index.d.ts +8 -14
  272. package/es/textarea/index.js +274 -262
  273. package/es/tooltip/index.d.ts +100 -4
  274. package/es/tooltip/index.js +70 -226
  275. package/es/tooltip/type.d.ts +7 -2
  276. package/es/vendor.js +504 -0
  277. package/es/virtual-list/css.js +2 -0
  278. package/es/virtual-list/index.css +25 -0
  279. package/es/virtual-list/index.d.ts +11 -0
  280. package/es/virtual-list/index.js +313 -0
  281. package/es/virtual-list/type.d.ts +26 -0
  282. package/package.json +10 -16
  283. package/es/grid-item/index.css +0 -0
  284. /package/es/message-box/{message-box.css → index.css} +0 -0
@@ -0,0 +1,2 @@
1
+ import '../index.css'
2
+ import './index.css'
@@ -0,0 +1,69 @@
1
+ div.px-image {
2
+ font-size: 0;
3
+ }
4
+ .px-image {
5
+ display: inline-block;
6
+ position: relative;
7
+ transition: 0.25s all;
8
+ }
9
+ .px-image-previewable {
10
+ cursor: pointer;
11
+ }
12
+ .px-image-preview {
13
+ transition: 0.25s;
14
+ width: 100%;
15
+ height: 100%;
16
+ }
17
+ .px-image-preview-enter-to,
18
+ .px-image-preview-leave-from {
19
+ opacity: 1;
20
+ }
21
+ .px-image-preview-enter-from,
22
+ .px-image-preview-leave-to {
23
+ opacity: 0;
24
+ }
25
+ .px-image-preview-close {
26
+ width: 20px;
27
+ height: 20px;
28
+ position: absolute;
29
+ cursor: pointer;
30
+ top: 16px;
31
+ right: 16px;
32
+ fill: var(--px-neutral-10);
33
+ transition: fill 0.25s;
34
+ }
35
+ .px-image-preview-close:hover {
36
+ fill: var(--px-neutral-8);
37
+ }
38
+ .px-image-preview-close:active {
39
+ fill: var(--px-neutral-9);
40
+ }
41
+ .px-image-fallback {
42
+ font-size: var(--px-medium-font-size);
43
+ position: absolute;
44
+ top: 50%;
45
+ left: 50%;
46
+ transform: translate(-50%, -50%);
47
+ display: inline-flex;
48
+ justify-content: center;
49
+ align-items: center;
50
+ }
51
+ .px-image .px-image-img {
52
+ width: 100%;
53
+ height: 100%;
54
+ }
55
+ .px-image__fill .px-image-img {
56
+ object-fit: fill;
57
+ }
58
+ .px-image__contain .px-image-img {
59
+ object-fit: contain;
60
+ }
61
+ .px-image__cover .px-image-img {
62
+ object-fit: cover;
63
+ }
64
+ .px-image__none .px-image-img {
65
+ object-fit: none;
66
+ }
67
+ .px-image__scale-down .px-image-img {
68
+ object-fit: scale-down;
69
+ }
@@ -0,0 +1,35 @@
1
+ import type { ImageProps } from './type';
2
+ declare var __VLS_1: {}, __VLS_3: {};
3
+ type __VLS_Slots = {} & {
4
+ placeholder?: (props: typeof __VLS_1) => any;
5
+ } & {
6
+ error?: (props: typeof __VLS_3) => any;
7
+ };
8
+ declare const __VLS_component: import("vue").DefineComponent<ImageProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ error: (img: HTMLImageElement, error: string | Event) => any;
10
+ close: (event: MouseEvent) => any;
11
+ load: (img: HTMLImageElement, event: Event) => any;
12
+ loading: (img: HTMLImageElement) => any;
13
+ preview: (event: MouseEvent) => any;
14
+ }, string, import("vue").PublicProps, Readonly<ImageProps> & Readonly<{
15
+ onError?: ((img: HTMLImageElement, error: string | Event) => any) | undefined;
16
+ onClose?: ((event: MouseEvent) => any) | undefined;
17
+ onLoad?: ((img: HTMLImageElement, event: Event) => any) | undefined;
18
+ onLoading?: ((img: HTMLImageElement) => any) | undefined;
19
+ onPreview?: ((event: MouseEvent) => any) | undefined;
20
+ }>, {
21
+ loading: "eager" | "lazy";
22
+ objectFit: "fill" | "contain" | "cover" | "none" | "scale-down";
23
+ lazy: boolean;
24
+ rootMargin: number | [number, number];
25
+ previewable: boolean;
26
+ referrerpolicy: string;
27
+ crossorigin: "anonymous" | "use-credentials" | "";
28
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
30
+ export default _default;
31
+ type __VLS_WithSlots<T, S> = T & {
32
+ new (): {
33
+ $slots: S;
34
+ };
35
+ };
@@ -0,0 +1,199 @@
1
+ import './css.js'
2
+ import { r as times_default } from "../vendor.js";
3
+ import { t as popup_wrapper_default } from "../popup-wrapper/index.js";
4
+ import { t as calculateZoomedSize } from "../share/util/dom.js";
5
+ import { t as mask_default } from "../mask/index.js";
6
+ import { t as useLazyLoad } from "../share/hook/use-lazy-load.js";
7
+ import { t as useWindowResizeListener } from "../share/hook/use-window-resize-listener.js";
8
+ import { Transition, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, normalizeClass, normalizeStyle, openBlock, ref, renderSlot, shallowRef, unref, useSlots, watch, withCtx } from "vue";
9
+ var _hoisted_1 = [
10
+ "src",
11
+ "srcset",
12
+ "alt",
13
+ "data-src",
14
+ "data-srcset",
15
+ "data-loaded",
16
+ "data-error",
17
+ "loading",
18
+ "referrerpolicy",
19
+ "crossorigin"
20
+ ];
21
+ var _hoisted_2 = {
22
+ key: 0,
23
+ class: "px-image-fallback"
24
+ };
25
+ var _hoisted_3 = {
26
+ key: 0,
27
+ class: "px-image-preview"
28
+ };
29
+ var _hoisted_4 = [
30
+ "src",
31
+ "srcset",
32
+ "alt",
33
+ "referrerpolicy",
34
+ "crossorigin"
35
+ ];
36
+ var ANIMATION_DURATION = 250;
37
+ var image_default = /* @__PURE__ */ defineComponent({
38
+ name: "Image",
39
+ __name: "index",
40
+ props: {
41
+ src: null,
42
+ srcset: null,
43
+ alt: null,
44
+ objectFit: { default: "fill" },
45
+ loading: { default: "eager" },
46
+ lazy: {
47
+ type: Boolean,
48
+ default: false
49
+ },
50
+ root: null,
51
+ rootMargin: { default: () => [100, 200] },
52
+ previewable: {
53
+ type: Boolean,
54
+ default: false
55
+ },
56
+ maskProps: null,
57
+ popupWrapperProps: null,
58
+ zoomOptions: null,
59
+ referrerpolicy: { default: "no-referrer" },
60
+ crossorigin: { default: "" }
61
+ },
62
+ emits: [
63
+ "load",
64
+ "error",
65
+ "loading",
66
+ "preview",
67
+ "close"
68
+ ],
69
+ setup(__props, { emit: __emit }) {
70
+ const slots = useSlots();
71
+ const props = __props;
72
+ const curSrc = ref(props.lazy ? void 0 : props.src);
73
+ const curSrcset = ref(props.lazy ? void 0 : props.srcset);
74
+ const loadFailed = ref(false);
75
+ const loaded = ref(false);
76
+ const previewVisible = ref(false);
77
+ const imgRef = shallowRef(null);
78
+ const emits = __emit;
79
+ useLazyLoad(imgRef, {
80
+ root: props.root,
81
+ rootMargin: props.rootMargin,
82
+ onError: (img, error) => {
83
+ loadFailed.value = true;
84
+ loaded.value = false;
85
+ emits("error", img, error);
86
+ },
87
+ onLoading: (img) => {
88
+ emits("loading", img);
89
+ },
90
+ onLoad: () => {
91
+ curSrc.value = props.src;
92
+ curSrcset.value = props.srcset;
93
+ }
94
+ });
95
+ const loadHandler = (event) => {
96
+ if (imgRef.value) {
97
+ loaded.value = true;
98
+ loadFailed.value = false;
99
+ emits("load", imgRef.value, event);
100
+ }
101
+ };
102
+ const errorHandler = (error) => {
103
+ loadFailed.value = true;
104
+ loaded.value = false;
105
+ if (imgRef.value) emits("error", imgRef.value, error);
106
+ };
107
+ const previewStyle = ref({
108
+ width: 0,
109
+ height: 0,
110
+ top: 0,
111
+ left: 0
112
+ });
113
+ const clickHandler = (e) => {
114
+ if (!(loaded.value && props.previewable) || !imgRef.value) return;
115
+ previewStyle.value = calculateZoomedSize(imgRef.value);
116
+ previewVisible.value = true;
117
+ emits("preview", e);
118
+ };
119
+ useWindowResizeListener(() => {
120
+ if (!(loaded.value && props.previewable) || !imgRef.value || !previewVisible.value) return;
121
+ previewStyle.value = calculateZoomedSize(imgRef.value, props.zoomOptions);
122
+ });
123
+ const closeHandler = (e) => {
124
+ previewVisible.value = false;
125
+ emits("close", e);
126
+ };
127
+ watch(() => props.src, (val) => {
128
+ if (loaded.value) curSrc.value = val;
129
+ else if (!props.lazy) curSrc.value = val;
130
+ });
131
+ watch(() => props.srcset, (val) => {
132
+ if (loaded.value) curSrcset.value = val;
133
+ else if (!props.lazy) curSrcset.value = val;
134
+ });
135
+ return (_ctx, _cache) => {
136
+ return openBlock(), createElementBlock("div", {
137
+ class: normalizeClass(["pixelium px-image", {
138
+ [`px-image__${props.objectFit}`]: !!props.objectFit,
139
+ "px-image-previewable": loaded.value && props.previewable
140
+ }]),
141
+ onClick: clickHandler
142
+ }, [
143
+ createElementVNode("img", {
144
+ src: curSrc.value,
145
+ srcset: curSrcset.value,
146
+ alt: props.alt,
147
+ "data-src": props.lazy ? props.src : void 0,
148
+ "data-srcset": props.lazy ? props.srcset : void 0,
149
+ "data-loaded": props.lazy ? loaded.value : void 0,
150
+ "data-error": props.lazy ? loadFailed.value : void 0,
151
+ loading: props.lazy ? void 0 : props.loading,
152
+ referrerpolicy: props.referrerpolicy,
153
+ crossorigin: props.crossorigin,
154
+ style: normalizeStyle({ visibility: loadFailed.value || !curSrc.value && !curSrcset.value ? "hidden" : void 0 }),
155
+ class: "px-image-img",
156
+ ref_key: "imgRef",
157
+ ref: imgRef,
158
+ onLoad: loadHandler,
159
+ onError: errorHandler
160
+ }, null, 44, _hoisted_1),
161
+ unref(slots).placeholder || unref(slots).error ? (openBlock(), createElementBlock("div", _hoisted_2, [!loaded.value && !loadFailed.value ? renderSlot(_ctx.$slots, "placeholder", { key: 0 }) : createCommentVNode("v-if", true), loadFailed.value ? renderSlot(_ctx.$slots, "error", { key: 1 }) : createCommentVNode("v-if", true)])) : createCommentVNode("v-if", true),
162
+ props.previewable ? (openBlock(), createBlock(popup_wrapper_default, mergeProps({
163
+ key: 1,
164
+ visible: previewVisible.value,
165
+ position: "fixed",
166
+ "close-delay": ANIMATION_DURATION
167
+ }, props.popupWrapperProps), {
168
+ default: withCtx(() => [createVNode(Transition, { name: "px-image-preview" }, {
169
+ default: withCtx(() => [previewVisible.value ? (openBlock(), createElementBlock("div", _hoisted_3, [
170
+ createVNode(mask_default, mergeProps({ "z-index": 0 }, __props.maskProps, { onClick: closeHandler }), null, 16),
171
+ createVNode(unref(times_default), {
172
+ "z-index": "0",
173
+ onClick: closeHandler,
174
+ class: "px-image-preview-close"
175
+ }),
176
+ createElementVNode("img", {
177
+ "z-index": "0",
178
+ src: curSrc.value,
179
+ srcset: curSrcset.value,
180
+ alt: props.alt,
181
+ referrerpolicy: props.referrerpolicy,
182
+ crossorigin: props.crossorigin,
183
+ class: "px-image-preview-img",
184
+ style: normalizeStyle({
185
+ width: `${previewStyle.value.width}px`,
186
+ height: `${previewStyle.value.height}px`,
187
+ transform: `translate(${previewStyle.value.left}px, ${previewStyle.value.top}px)`
188
+ })
189
+ }, null, 12, _hoisted_4)
190
+ ])) : createCommentVNode("v-if", true)]),
191
+ _: 1
192
+ })]),
193
+ _: 1
194
+ }, 16, ["visible"])) : createCommentVNode("v-if", true)
195
+ ], 2);
196
+ };
197
+ }
198
+ });
199
+ export { image_default as t };
@@ -0,0 +1,126 @@
1
+ import type { MaskProps } from '../mask/type';
2
+ export type ImageProps = {
3
+ /**
4
+ * @property {string} [src]
5
+ * @version 0.0.3
6
+ */
7
+ src?: string;
8
+ /**
9
+ * @property {string} [srcset]
10
+ * @version 0.0.3
11
+ */
12
+ srcset?: string;
13
+ /**
14
+ * @property {string} [alt]
15
+ * @version 0.0.3
16
+ */
17
+ alt?: string;
18
+ /**
19
+ * @property {'fill' | 'contain' | 'cover' | 'none' | 'scale-down'} [objectFit='fill']
20
+ * @version 0.0.3
21
+ */
22
+ objectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
23
+ /**
24
+ * @property {'eager' | 'lazy'} [loading='eager']
25
+ * @version 0.0.3
26
+ */
27
+ loading?: 'eager' | 'lazy';
28
+ /**
29
+ * @property {boolean} [lazy=false]
30
+ * @version 0.0.3
31
+ */
32
+ lazy?: boolean;
33
+ /**
34
+ * @property {HTMLElement | string} [root]
35
+ * @version 0.0.3
36
+ */
37
+ root?: HTMLElement | string;
38
+ /**
39
+ * @property {number | [number, number]} [rootMargin=[100, 200]]
40
+ * @version 0.0.3
41
+ */
42
+ rootMargin?: number | [number, number];
43
+ /**
44
+ * @property {boolean} [previewable=false]
45
+ * @version 0.0.3
46
+ */
47
+ previewable?: boolean;
48
+ /**
49
+ * @property {Omit<MaskProps, 'zIndex'>} [maskProps]
50
+ * @version 0.0.3
51
+ */
52
+ maskProps?: Omit<MaskProps, 'zIndex'>;
53
+ /**
54
+ * @property {{ zIndex: number, root: HTMLElement | string }} [popupWrapperProps]
55
+ * @version 0.0.3
56
+ */
57
+ popupWrapperProps?: {
58
+ zIndex: number;
59
+ root: HTMLElement | string;
60
+ };
61
+ /**
62
+ * @property {{ maxWidth?: number, maxHeight?: number, margin?: number}} [popupWrapperProps={ margin: 32, maxWidth: Infinity, maxHeight: Infinity }]
63
+ * @version 0.0.3
64
+ */
65
+ zoomOptions?: {
66
+ maxWidth?: number;
67
+ maxHeight?: number;
68
+ margin?: number;
69
+ };
70
+ /**
71
+ * @property {string} [referrerpolicy='no-referrer']
72
+ * @version 0.0.3
73
+ */
74
+ referrerpolicy?: string;
75
+ /**
76
+ * @property {'anonymous' | 'use-credentials' | ''} [crossorigin='']
77
+ * @version 0.0.3
78
+ */
79
+ crossorigin?: 'anonymous' | 'use-credentials' | '';
80
+ };
81
+ export type ImageEvents = {
82
+ /**
83
+ * @event load
84
+ * @param {HTMLImageElement} img
85
+ * @param {Event} event
86
+ * @version 0.0.3
87
+ */
88
+ load: [img: HTMLImageElement, event: Event];
89
+ /**
90
+ * @event error
91
+ * @param {HTMLImageElement} img
92
+ * @param {string | Event} error
93
+ * @version 0.0.3
94
+ */
95
+ error: [img: HTMLImageElement, error: string | Event];
96
+ /**
97
+ * @event loading
98
+ * @param {HTMLImageElement} img
99
+ * @version 0.0.3
100
+ */
101
+ loading: [img: HTMLImageElement];
102
+ /**
103
+ * @event preview
104
+ * @param {MouseEvent} event
105
+ * @version 0.0.3
106
+ */
107
+ preview: [event: MouseEvent];
108
+ /**
109
+ * @event close
110
+ * @param {MouseEvent} event
111
+ * @version 0.0.3
112
+ */
113
+ close: [event: MouseEvent];
114
+ };
115
+ export type ImageSlots = {
116
+ /**
117
+ * @slot placeholder
118
+ * @version 0.0.3
119
+ */
120
+ placeholder: {};
121
+ /**
122
+ * @slot error
123
+ * @version 0.0.3
124
+ */
125
+ error: {};
126
+ };