fluekit 2.7.1 → 2.7.2

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.
@@ -0,0 +1,59 @@
1
+ import { UploadFile } from './UploadTypes';
2
+ interface Props {
3
+ accept?: string;
4
+ multiple?: boolean;
5
+ disabled?: boolean;
6
+ name?: string;
7
+ maxCount?: number;
8
+ showFileList?: boolean;
9
+ request?: (file: UploadFile) => Promise<any>;
10
+ validate?: (file: File) => boolean | Promise<boolean>;
11
+ }
12
+ type __VLS_Props = Props;
13
+ type __VLS_PublicProps = {
14
+ "fileList"?: UploadFile[];
15
+ } & __VLS_Props;
16
+ declare function __VLS_template(): {
17
+ attrs: Partial<{}>;
18
+ slots: {
19
+ default?(_: {}): any;
20
+ tip?(_: {}): any;
21
+ };
22
+ refs: {
23
+ inputRef: HTMLInputElement;
24
+ };
25
+ rootEl: any;
26
+ };
27
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
28
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
29
+ "update:fileList": (value: UploadFile[]) => any;
30
+ } & {
31
+ progress: (event: ProgressEvent<EventTarget>, file: UploadFile) => any;
32
+ change: (files: UploadFile[]) => any;
33
+ error: (error: Error, file: UploadFile) => any;
34
+ success: (response: any, file: UploadFile) => any;
35
+ remove: (file: UploadFile) => any;
36
+ exceed: () => any;
37
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
38
+ onProgress?: ((event: ProgressEvent<EventTarget>, file: UploadFile) => any) | undefined;
39
+ onChange?: ((files: UploadFile[]) => any) | undefined;
40
+ onError?: ((error: Error, file: UploadFile) => any) | undefined;
41
+ onSuccess?: ((response: any, file: UploadFile) => any) | undefined;
42
+ onRemove?: ((file: UploadFile) => any) | undefined;
43
+ onExceed?: (() => any) | undefined;
44
+ "onUpdate:fileList"?: ((value: UploadFile[]) => any) | undefined;
45
+ }>, {
46
+ multiple: boolean;
47
+ disabled: boolean;
48
+ name: string;
49
+ showFileList: boolean;
50
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
51
+ inputRef: HTMLInputElement;
52
+ }, any>;
53
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
54
+ export default _default;
55
+ type __VLS_WithTemplateSlots<T, S> = T & {
56
+ new (): {
57
+ $slots: S;
58
+ };
59
+ };
@@ -0,0 +1,14 @@
1
+ export interface UploadFile {
2
+ uid: string;
3
+ name: string;
4
+ size: number;
5
+ type: string;
6
+ lastModified: number;
7
+ raw: File;
8
+ status: "ready" | "uploading" | "success" | "fail";
9
+ progress?: number;
10
+ url?: string;
11
+ response?: any;
12
+ error?: any;
13
+ }
14
+ export type UploadStatus = UploadFile["status"];
package/dist/index.d.ts CHANGED
@@ -89,6 +89,8 @@ export { default as TabBarView } from './TabBarView';
89
89
  export { default as RefreshIndicator } from './RefreshIndicator';
90
90
  export { default as RatingBar } from './RatingBar';
91
91
  export { default as Table } from './Table';
92
+ export { default as Upload } from './Upload';
93
+ export * from './UploadTypes';
92
94
  export { default as FlueConfigProvider } from './FlueConfigProvider';
93
95
  export { default as AnimationWidget } from './Animation';
94
96
  export { StyleProvider } from './StyleProvider';
package/dist/index.js CHANGED
@@ -1168,7 +1168,7 @@ var GestureDetector_default = defineComponent({
1168
1168
  return e ? e.type === Text ? h("span", o, [e]) : isHtmlTag(e) ? cloneVNode(e, o) : e : null;
1169
1169
  };
1170
1170
  }
1171
- }), _hoisted_1$13 = ["disabled", "type"], Button_default = /* @__PURE__ */ defineComponent({
1171
+ }), _hoisted_1$14 = ["disabled", "type"], Button_default = /* @__PURE__ */ defineComponent({
1172
1172
  inheritAttrs: !1,
1173
1173
  __name: "Button",
1174
1174
  props: {
@@ -1251,7 +1251,7 @@ var GestureDetector_default = defineComponent({
1251
1251
  style: f.value,
1252
1252
  disabled: e.disabled,
1253
1253
  type: e.type
1254
- }, unref(u)), [renderSlot(r.$slots, "default", {}, () => [createTextVNode(toDisplayString(i.text), 1)])], 16, _hoisted_1$13)]),
1254
+ }, unref(u)), [renderSlot(r.$slots, "default", {}, () => [createTextVNode(toDisplayString(i.text), 1)])], 16, _hoisted_1$14)]),
1255
1255
  _: 3
1256
1256
  }, 8, [
1257
1257
  "behavior",
@@ -1731,7 +1731,7 @@ function ImageProvider(e) {
1731
1731
  [IMAGE_PROVIDER_SYMBOL]: !0
1732
1732
  } : e.startsWith("http") ? NetworkImage(e) : e.startsWith("data:") ? MemoryImage(e) : AssetImage(e);
1733
1733
  }
1734
- var _hoisted_1$12 = ["src", "alt"], Image_default = /* @__PURE__ */ defineComponent({
1734
+ var _hoisted_1$13 = ["src", "alt"], Image_default = /* @__PURE__ */ defineComponent({
1735
1735
  inheritAttrs: !1,
1736
1736
  __name: "Image",
1737
1737
  props: {
@@ -1790,9 +1790,9 @@ var _hoisted_1$12 = ["src", "alt"], Image_default = /* @__PURE__ */ defineCompon
1790
1790
  alt: e.alt,
1791
1791
  onLoad: f,
1792
1792
  onError: g
1793
- }, null, 44, _hoisted_1$12)], 16));
1793
+ }, null, 44, _hoisted_1$13)], 16));
1794
1794
  }
1795
- }), _hoisted_1$11 = ["aria-label"], _hoisted_2$5 = ["width", "height"], _hoisted_3 = ["d"], Icon_default = /* @__PURE__ */ defineComponent({
1795
+ }), _hoisted_1$12 = ["aria-label"], _hoisted_2$5 = ["width", "height"], _hoisted_3 = ["d"], Icon_default = /* @__PURE__ */ defineComponent({
1796
1796
  inheritAttrs: !1,
1797
1797
  __name: "Icon",
1798
1798
  props: {
@@ -1845,7 +1845,7 @@ var _hoisted_1$12 = ["src", "alt"], Image_default = /* @__PURE__ */ defineCompon
1845
1845
  fill: "currentColor",
1846
1846
  xmlns: "http://www.w3.org/2000/svg",
1847
1847
  style: s
1848
- }, [createElementVNode("path", { d: e.icon }, null, 8, _hoisted_3)], 8, _hoisted_2$5)) : createCommentVNode("", !0)])], 16, _hoisted_1$11));
1848
+ }, [createElementVNode("path", { d: e.icon }, null, 8, _hoisted_3)], 8, _hoisted_2$5)) : createCommentVNode("", !0)])], 16, _hoisted_1$12));
1849
1849
  }
1850
1850
  });
1851
1851
  const Colors = {
@@ -2336,7 +2336,7 @@ var CupertinoActivityIndicator_default = /* @__PURE__ */ defineComponent({
2336
2336
  animating: a.value
2337
2337
  }, null, 8, ["color", "animating"])], 4), createElementVNode("div", { style: normalizeStyle(f.value) }, [renderSlot(r.$slots, "default")], 4)], 544));
2338
2338
  }
2339
- }), _hoisted_1$10 = {
2339
+ }), _hoisted_1$11 = {
2340
2340
  key: 0,
2341
2341
  class: "list-view-separator"
2342
2342
  }, ListView_default = /* @__PURE__ */ defineComponent({
@@ -2389,7 +2389,7 @@ var CupertinoActivityIndicator_default = /* @__PURE__ */ defineComponent({
2389
2389
  default: withCtx(() => [createElementVNode("div", {
2390
2390
  class: "list-view-content",
2391
2391
  style: normalizeStyle(a.value)
2392
- }, [e.itemCount ? (openBlock(!0), createElementBlock(Fragment, { key: 1 }, renderList(e.itemCount, (a) => (openBlock(), createElementBlock(Fragment, { key: a - 1 }, [renderSlot(i.$slots, "item", { index: a - 1 }), e.separator && a < e.itemCount ? (openBlock(), createElementBlock("div", _hoisted_1$10, [renderSlot(i.$slots, "separator", { index: a - 1 })])) : createCommentVNode("", !0)], 64))), 128)) : renderSlot(i.$slots, "default", { key: 0 })], 4)]),
2392
+ }, [e.itemCount ? (openBlock(!0), createElementBlock(Fragment, { key: 1 }, renderList(e.itemCount, (a) => (openBlock(), createElementBlock(Fragment, { key: a - 1 }, [renderSlot(i.$slots, "item", { index: a - 1 }), e.separator && a < e.itemCount ? (openBlock(), createElementBlock("div", _hoisted_1$11, [renderSlot(i.$slots, "separator", { index: a - 1 })])) : createCommentVNode("", !0)], 64))), 128)) : renderSlot(i.$slots, "default", { key: 0 })], 4)]),
2393
2393
  _: 3
2394
2394
  }, 8, [
2395
2395
  "scroll-direction",
@@ -2840,7 +2840,7 @@ const FloatingLabelBehavior = {
2840
2840
  function InputDecoration(e = {}) {
2841
2841
  return e.floatingLabelBehavior = e.floatingLabelBehavior || FloatingLabelBehavior.never, e;
2842
2842
  }
2843
- var _hoisted_1$9 = { key: 3 }, _hoisted_2$4 = {
2843
+ var _hoisted_1$10 = { key: 3 }, _hoisted_2$4 = {
2844
2844
  key: 2,
2845
2845
  style: { flex: 1 }
2846
2846
  }, TextField_default = /* @__PURE__ */ defineComponent({
@@ -3140,7 +3140,7 @@ var _hoisted_1$9 = { key: 3 }, _hoisted_2$4 = {
3140
3140
  "enterkeyhint",
3141
3141
  "autocorrect"
3142
3142
  ]))]),
3143
- r.$slots.suffix || e.decoration?.suffixText ? (openBlock(), createElementBlock("div", _hoisted_1$9, [renderSlot(r.$slots, "suffix", {}, () => [createTextVNode(toDisplayString(e.decoration?.suffixText), 1)])])) : createCommentVNode("", !0),
3143
+ r.$slots.suffix || e.decoration?.suffixText ? (openBlock(), createElementBlock("div", _hoisted_1$10, [renderSlot(r.$slots, "suffix", {}, () => [createTextVNode(toDisplayString(e.decoration?.suffixText), 1)])])) : createCommentVNode("", !0),
3144
3144
  r.$slots.suffixIcon || e.decoration?.suffixIcon ? (openBlock(), createElementBlock("div", {
3145
3145
  key: 4,
3146
3146
  style: normalizeStyle(I.value)
@@ -3317,7 +3317,7 @@ var debouncedUpdateGlobalState = debounce(updateGlobalState, 100), attachListene
3317
3317
  function useMediaQuery() {
3318
3318
  return attachListeners(), inject(MediaQueryKey, globalState);
3319
3319
  }
3320
- var _hoisted_1$8 = { style: {
3320
+ var _hoisted_1$9 = { style: {
3321
3321
  position: "relative",
3322
3322
  "z-index": "2"
3323
3323
  } }, LiquidGlassDialog_default = /* @__PURE__ */ defineComponent({
@@ -3564,7 +3564,7 @@ var _hoisted_1$8 = { style: {
3564
3564
  key: 0,
3565
3565
  style: normalizeStyle(A.value),
3566
3566
  onClick: s[0] ||= withModifiers(() => {}, ["stop"])
3567
- }, [createElementVNode("div", _hoisted_1$8, [createVNode(Container_default, { padding: unref(S) }, {
3567
+ }, [createElementVNode("div", _hoisted_1$9, [createVNode(Container_default, { padding: unref(S) }, {
3568
3568
  default: withCtx(() => [e.title ? (openBlock(), createBlock(Text_default, {
3569
3569
  key: 0,
3570
3570
  style: normalizeStyle(w.value),
@@ -3796,7 +3796,7 @@ var ToastComponent_default = /* @__PURE__ */ defineComponent({
3796
3796
  return {
3797
3797
  ...b,
3798
3798
  ...C[r],
3799
- zIndex: e.options.zIndex || 2e3,
3799
+ zIndex: e.options.zIndex || useZIndex() * 10,
3800
3800
  backgroundColor: e.options.backgroundColor || "rgba(0, 0, 0, 0.8)",
3801
3801
  color: e.options.textColor || "#ffffff"
3802
3802
  };
@@ -4453,7 +4453,7 @@ var Transform_default = /* @__PURE__ */ defineComponent({
4453
4453
  }
4454
4454
  });
4455
4455
  const CheckboxGroupKey = Symbol("CheckboxGroup");
4456
- var _hoisted_1$7 = ["fill"], Checkbox_default = /* @__PURE__ */ defineComponent({
4456
+ var _hoisted_1$8 = ["fill"], Checkbox_default = /* @__PURE__ */ defineComponent({
4457
4457
  __name: "Checkbox",
4458
4458
  props: {
4459
4459
  value: {},
@@ -4506,7 +4506,7 @@ var _hoisted_1$7 = ["fill"], Checkbox_default = /* @__PURE__ */ defineComponent(
4506
4506
  height: 14,
4507
4507
  fill: unref(resolveColor)(e.checkColor),
4508
4508
  style: { display: "block" }
4509
- }, [...i[0] ||= [createElementVNode("path", { d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" }, null, -1)]], 8, _hoisted_1$7)) : createCommentVNode("", !0)]),
4509
+ }, [...i[0] ||= [createElementVNode("path", { d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" }, null, -1)]], 8, _hoisted_1$8)) : createCommentVNode("", !0)]),
4510
4510
  _: 1
4511
4511
  }, 8, ["decoration"])),
4512
4512
  e.labelPosition === "right" ? renderSlot(r.$slots, "default", { key: 2 }) : createCommentVNode("", !0)
@@ -4516,7 +4516,7 @@ var _hoisted_1$7 = ["fill"], Checkbox_default = /* @__PURE__ */ defineComponent(
4516
4516
  _: 3
4517
4517
  }));
4518
4518
  }
4519
- }), _hoisted_1$6 = { class: "flue-checkbox-group" }, CheckboxGroup_default = /* @__PURE__ */ defineComponent({
4519
+ }), _hoisted_1$7 = { class: "flue-checkbox-group" }, CheckboxGroup_default = /* @__PURE__ */ defineComponent({
4520
4520
  __name: "CheckboxGroup",
4521
4521
  props: {
4522
4522
  value: { default: () => [] },
@@ -4535,7 +4535,7 @@ var _hoisted_1$7 = ["fill"], Checkbox_default = /* @__PURE__ */ defineComponent(
4535
4535
  value: s,
4536
4536
  disabled: c,
4537
4537
  updateValue: o
4538
- }), (e, r) => (openBlock(), createElementBlock("div", _hoisted_1$6, [renderSlot(e.$slots, "default")]));
4538
+ }), (e, r) => (openBlock(), createElementBlock("div", _hoisted_1$7, [renderSlot(e.$slots, "default")]));
4539
4539
  }
4540
4540
  });
4541
4541
  const RadioGroupKey = Symbol("RadioGroup");
@@ -4600,7 +4600,7 @@ var Radio_default = /* @__PURE__ */ defineComponent({
4600
4600
  _: 3
4601
4601
  }));
4602
4602
  }
4603
- }), _hoisted_1$5 = { class: "flue-radio-group" }, RadioGroup_default = /* @__PURE__ */ defineComponent({
4603
+ }), _hoisted_1$6 = { class: "flue-radio-group" }, RadioGroup_default = /* @__PURE__ */ defineComponent({
4604
4604
  __name: "RadioGroup",
4605
4605
  props: {
4606
4606
  value: {},
@@ -4620,7 +4620,7 @@ var Radio_default = /* @__PURE__ */ defineComponent({
4620
4620
  updateValue: o,
4621
4621
  activeColor: c,
4622
4622
  disabled: l
4623
- }), (e, r) => (openBlock(), createElementBlock("div", _hoisted_1$5, [renderSlot(e.$slots, "default")]));
4623
+ }), (e, r) => (openBlock(), createElementBlock("div", _hoisted_1$6, [renderSlot(e.$slots, "default")]));
4624
4624
  }
4625
4625
  }), RadioListTile_default = /* @__PURE__ */ defineComponent({
4626
4626
  __name: "RadioListTile",
@@ -5511,7 +5511,7 @@ var BottomSheet_default = /* @__PURE__ */ defineComponent({
5511
5511
  _: 3
5512
5512
  }, 8, ["color"]));
5513
5513
  }
5514
- }), _hoisted_1$4 = { key: 0 }, _hoisted_2$3 = { key: 0 }, CupertinoNavigationBar_default = /* @__PURE__ */ defineComponent({
5514
+ }), _hoisted_1$5 = { key: 0 }, _hoisted_2$3 = { key: 0 }, CupertinoNavigationBar_default = /* @__PURE__ */ defineComponent({
5515
5515
  __name: "CupertinoNavigationBar",
5516
5516
  props: {
5517
5517
  middle: {},
@@ -5561,7 +5561,7 @@ var BottomSheet_default = /* @__PURE__ */ defineComponent({
5561
5561
  "cross-axis-alignment": "center",
5562
5562
  expanded: ""
5563
5563
  }, {
5564
- default: withCtx(() => [r.$slots.leading ? (openBlock(), createElementBlock("div", _hoisted_1$4, [renderSlot(r.$slots, "leading")])) : createCommentVNode("", !0)]),
5564
+ default: withCtx(() => [r.$slots.leading ? (openBlock(), createElementBlock("div", _hoisted_1$5, [renderSlot(r.$slots, "leading")])) : createCommentVNode("", !0)]),
5565
5565
  _: 3
5566
5566
  })]),
5567
5567
  _: 3
@@ -6014,7 +6014,7 @@ var BottomSheet_default = /* @__PURE__ */ defineComponent({
6014
6014
  "padding"
6015
6015
  ]));
6016
6016
  }
6017
- }), _hoisted_1$3 = { style: { display: "inline-block" } }, _hoisted_2$2 = [
6017
+ }), _hoisted_1$4 = { style: { display: "inline-block" } }, _hoisted_2$2 = [
6018
6018
  "onClick",
6019
6019
  "onTouchstart",
6020
6020
  "onMousedown"
@@ -6119,7 +6119,7 @@ var BottomSheet_default = /* @__PURE__ */ defineComponent({
6119
6119
  });
6120
6120
  Promise.all([o.finished, s?.finished]).then(() => r());
6121
6121
  };
6122
- return (a, A) => (openBlock(), createElementBlock("div", _hoisted_1$3, [createVNode(GestureDetector_default, { onLongPress: u }, {
6122
+ return (a, A) => (openBlock(), createElementBlock("div", _hoisted_1$4, [createVNode(GestureDetector_default, { onLongPress: u }, {
6123
6123
  default: withCtx(() => [renderSlot(a.$slots, "default")]),
6124
6124
  _: 3
6125
6125
  }), (openBlock(), createBlock(Teleport, { to: "body" }, [createVNode(Transition, {
@@ -6308,7 +6308,7 @@ var ImageColorBackground_default = /* @__PURE__ */ defineComponent({
6308
6308
  ref: i
6309
6309
  }, null, 4)], 4));
6310
6310
  }
6311
- }), _hoisted_1$2 = ["stroke", "stroke-width"], _hoisted_2$1 = [
6311
+ }), _hoisted_1$3 = ["stroke", "stroke-width"], _hoisted_2$1 = [
6312
6312
  "stroke",
6313
6313
  "stroke-width",
6314
6314
  "stroke-dasharray",
@@ -6386,7 +6386,7 @@ var ImageColorBackground_default = /* @__PURE__ */ defineComponent({
6386
6386
  fill: "none",
6387
6387
  stroke: unref(resolveColor)(e.backgroundColor) || "transparent",
6388
6388
  "stroke-width": e.strokeWidth
6389
- }, null, 8, _hoisted_1$2), createElementVNode("circle", {
6389
+ }, null, 8, _hoisted_1$3), createElementVNode("circle", {
6390
6390
  cx: "20",
6391
6391
  cy: "20",
6392
6392
  r: radius,
@@ -7323,7 +7323,7 @@ var CircleAvatar_default = /* @__PURE__ */ defineComponent({
7323
7323
  style: u
7324
7324
  }, [(openBlock(), createBlock(resolveDynamicComponent(e)))]))), 128))], 4)]));
7325
7325
  }
7326
- }), _hoisted_1$1 = ["onClick", "onMousemove"], RatingBar_default = /* @__PURE__ */ defineComponent({
7326
+ }), _hoisted_1$2 = ["onClick", "onMousemove"], RatingBar_default = /* @__PURE__ */ defineComponent({
7327
7327
  __name: "RatingBar",
7328
7328
  props: {
7329
7329
  modelValue: {},
@@ -7381,9 +7381,9 @@ var CircleAvatar_default = /* @__PURE__ */ defineComponent({
7381
7381
  "icon",
7382
7382
  "size",
7383
7383
  "color"
7384
- ])], 40, _hoisted_1$1))), 128))], 36));
7384
+ ])], 40, _hoisted_1$2))), 128))], 36));
7385
7385
  }
7386
- }), _hoisted_1 = { key: 0 }, _hoisted_2 = ["onClick"], Table_default = /* @__PURE__ */ defineComponent({
7386
+ }), _hoisted_1$1 = { key: 0 }, _hoisted_2 = ["onClick"], Table_default = /* @__PURE__ */ defineComponent({
7387
7387
  inheritAttrs: !1,
7388
7388
  __name: "Table",
7389
7389
  props: {
@@ -7441,7 +7441,7 @@ var CircleAvatar_default = /* @__PURE__ */ defineComponent({
7441
7441
  borderCollapse: "collapse",
7442
7442
  borderSpacing: 0,
7443
7443
  tableLayout: e.fixed ? "fixed" : "auto"
7444
- }) }, [e.showHeader ? (openBlock(), createElementBlock("thead", _hoisted_1, [createElementVNode("tr", { style: normalizeStyle(e.headerRowStyle) }, [(openBlock(!0), createElementBlock(Fragment, null, renderList(e.columns, (r) => (openBlock(), createElementBlock("th", {
7444
+ }) }, [e.showHeader ? (openBlock(), createElementBlock("thead", _hoisted_1$1, [createElementVNode("tr", { style: normalizeStyle(e.headerRowStyle) }, [(openBlock(!0), createElementBlock(Fragment, null, renderList(e.columns, (r) => (openBlock(), createElementBlock("th", {
7445
7445
  key: r.key,
7446
7446
  style: normalizeStyle({
7447
7447
  textAlign: r.align || "left",
@@ -7493,6 +7493,192 @@ var CircleAvatar_default = /* @__PURE__ */ defineComponent({
7493
7493
  "clip-behavior"
7494
7494
  ]));
7495
7495
  }
7496
+ }), _hoisted_1 = [
7497
+ "name",
7498
+ "accept",
7499
+ "multiple",
7500
+ "disabled"
7501
+ ], Upload_default = /* @__PURE__ */ defineComponent({
7502
+ inheritAttrs: !1,
7503
+ __name: "Upload",
7504
+ props: /* @__PURE__ */ mergeModels({
7505
+ accept: {},
7506
+ multiple: {
7507
+ type: Boolean,
7508
+ default: !1
7509
+ },
7510
+ disabled: {
7511
+ type: Boolean,
7512
+ default: !1
7513
+ },
7514
+ name: { default: "file" },
7515
+ maxCount: {},
7516
+ showFileList: {
7517
+ type: Boolean,
7518
+ default: !0
7519
+ },
7520
+ request: {},
7521
+ validate: {}
7522
+ }, {
7523
+ fileList: { default: () => [] },
7524
+ fileListModifiers: {}
7525
+ }),
7526
+ emits: /* @__PURE__ */ mergeModels([
7527
+ "change",
7528
+ "remove",
7529
+ "exceed",
7530
+ "error",
7531
+ "progress",
7532
+ "success"
7533
+ ], ["update:fileList"]),
7534
+ setup(e, { emit: i }) {
7535
+ let a = e, o = useModel(e, "fileList"), s = i, c = ref(), u = useStyles(), g = () => {
7536
+ a.disabled || c.value?.click();
7537
+ }, y = () => Date.now().toString(36) + Math.random().toString(36).slice(2), b = async (e) => {
7538
+ let r = e.target, i = r.files;
7539
+ if (!i) return;
7540
+ let c = Array.from(i);
7541
+ if (a.maxCount && o.value.length + c.length > a.maxCount) {
7542
+ s("exceed"), r.value = "";
7543
+ return;
7544
+ }
7545
+ if (a.validate) {
7546
+ let e = [];
7547
+ for (let r of c) await a.validate(r) && e.push(r);
7548
+ c = e;
7549
+ }
7550
+ let l = c.map((e) => ({
7551
+ uid: y(),
7552
+ name: e.name,
7553
+ size: e.size,
7554
+ type: e.type,
7555
+ lastModified: e.lastModified,
7556
+ raw: e,
7557
+ status: "ready",
7558
+ progress: 0
7559
+ }));
7560
+ a.multiple ? o.value = [...o.value, ...l] : o.value = l, s("change", o.value), a.request && l.forEach((e) => S(e)), r.value = "";
7561
+ }, x = (e) => {
7562
+ let r = o.value.indexOf(e);
7563
+ r !== -1 && (o.value.splice(r, 1), s("remove", e), s("change", o.value));
7564
+ }, S = async (e) => {
7565
+ if (a.request) {
7566
+ e.status = "uploading";
7567
+ try {
7568
+ let r = await a.request(e);
7569
+ e.status = "success", e.progress = 100, e.response = r, s("success", r, e);
7570
+ } catch (r) {
7571
+ e.status = "fail", e.error = r, s("error", r, e);
7572
+ }
7573
+ }
7574
+ }, C = computed(() => {
7575
+ let e = {
7576
+ display: "inline-block",
7577
+ width: "100%"
7578
+ };
7579
+ return Object.assign(e, u.value), e;
7580
+ }), w = computed(() => ({
7581
+ display: "inline-block",
7582
+ cursor: a.disabled ? "not-allowed" : "pointer"
7583
+ })), T = computed(() => ({
7584
+ padding: "4px 8px",
7585
+ backgroundColor: "#f5f5f5",
7586
+ borderRadius: "4px"
7587
+ })), E = computed(() => TextStyle({
7588
+ fontSize: 14,
7589
+ color: "#333"
7590
+ }));
7591
+ return (i, a) => (openBlock(), createElementBlock("div", { style: normalizeStyle(C.value) }, [
7592
+ createElementVNode("div", {
7593
+ onClick: g,
7594
+ style: normalizeStyle(w.value)
7595
+ }, [renderSlot(i.$slots, "default")], 4),
7596
+ createElementVNode("input", {
7597
+ ref_key: "inputRef",
7598
+ ref: c,
7599
+ type: "file",
7600
+ name: e.name,
7601
+ accept: e.accept,
7602
+ multiple: e.multiple,
7603
+ disabled: e.disabled,
7604
+ style: { display: "none" },
7605
+ onChange: b
7606
+ }, null, 40, _hoisted_1),
7607
+ renderSlot(i.$slots, "tip"),
7608
+ e.showFileList ? (openBlock(), createBlock(Column_default, {
7609
+ key: 0,
7610
+ gap: 8,
7611
+ style: { marginTop: "8px" }
7612
+ }, {
7613
+ default: withCtx(() => [(openBlock(!0), createElementBlock(Fragment, null, renderList(o.value, (e) => (openBlock(), createBlock(Row_default, {
7614
+ key: e.uid,
7615
+ "main-axis-alignment": "space-between",
7616
+ "cross-axis-alignment": "center",
7617
+ style: normalizeStyle(T.value)
7618
+ }, {
7619
+ default: withCtx(() => [createVNode(Row_default, {
7620
+ gap: 8,
7621
+ "cross-axis-alignment": "center",
7622
+ style: {
7623
+ flex: 1,
7624
+ overflow: "hidden"
7625
+ }
7626
+ }, {
7627
+ default: withCtx(() => [createVNode(Icon_default, {
7628
+ icon: unref(Icons).document,
7629
+ size: "16",
7630
+ color: "#999"
7631
+ }, null, 8, ["icon"]), createVNode(Text_default, {
7632
+ style: normalizeStyle(E.value),
7633
+ "max-lines": 1,
7634
+ overflow: unref(TextOverflow).ellipsis
7635
+ }, {
7636
+ default: withCtx(() => [createTextVNode(toDisplayString(e.name), 1)]),
7637
+ _: 2
7638
+ }, 1032, ["style", "overflow"])]),
7639
+ _: 2
7640
+ }, 1024), createVNode(Row_default, {
7641
+ gap: 8,
7642
+ "cross-axis-alignment": "center"
7643
+ }, {
7644
+ default: withCtx(() => [
7645
+ e.status === "uploading" ? (openBlock(), createBlock(Text_default, {
7646
+ key: 0,
7647
+ color: "#999",
7648
+ size: "12"
7649
+ }, {
7650
+ default: withCtx(() => [createTextVNode(toDisplayString(e.progress ? Math.round(e.progress) + "%" : "..."), 1)]),
7651
+ _: 2
7652
+ }, 1024)) : createCommentVNode("", !0),
7653
+ e.status === "success" ? (openBlock(), createBlock(Icon_default, {
7654
+ key: 1,
7655
+ icon: unref(Icons).checkCircle,
7656
+ size: "16",
7657
+ color: "#52c41a"
7658
+ }, null, 8, ["icon"])) : createCommentVNode("", !0),
7659
+ e.status === "fail" ? (openBlock(), createBlock(Icon_default, {
7660
+ key: 2,
7661
+ icon: unref(Icons).warning,
7662
+ size: "16",
7663
+ color: "#ff4d4f"
7664
+ }, null, 8, ["icon"])) : createCommentVNode("", !0),
7665
+ createVNode(GestureDetector_default, { onTap: () => x(e) }, {
7666
+ default: withCtx(() => [createVNode(Icon_default, {
7667
+ icon: unref(Icons).close,
7668
+ size: "16",
7669
+ color: "#999"
7670
+ }, null, 8, ["icon"])]),
7671
+ _: 1
7672
+ }, 8, ["onTap"])
7673
+ ]),
7674
+ _: 2
7675
+ }, 1024)]),
7676
+ _: 2
7677
+ }, 1032, ["style"]))), 128))]),
7678
+ _: 1
7679
+ })) : createCommentVNode("", !0)
7680
+ ], 4));
7681
+ }
7496
7682
  });
7497
7683
  const FlueConfigInjectionKey = Symbol("FlueConfig"), provideFlueConfig = (e) => provide(FlueConfigInjectionKey, e);
7498
7684
  var FlueConfigProvider_default = /* @__PURE__ */ defineComponent({
@@ -7982,4 +8168,4 @@ function setDefaultVW(e) {
7982
8168
  function setTransform(e) {
7983
8169
  console.warn("setTransform is no longer supported. Please use <FlueConfigProvider :transform='transform'/> instead.");
7984
8170
  }
7985
- export { ActionChip_default as ActionChip, AlertDialog_default as AlertDialog, Align_default as Align, Alignment, AnimatedContainer_default as AnimatedContainer, AnimatedOpacity_default as AnimatedOpacity, Animation_default as AnimationWidget, Animator, AppBar_default as AppBar, AspectRatio_default as AspectRatio, AssetImage, BackdropFilter_default as BackdropFilter, BlurStyle, Border, BorderRadius, BorderSide, BottomNavigationBar_default as BottomNavigationBar, BottomSheet_default as BottomSheet, Box_default as Box, BoxAlignment, BoxConstraints, BoxDecoration, BoxFit, BoxShadow, BoxShape, Builder_default as Builder, Button_default as Button, ButtonStyle, ButtonStylePreset, Card_default as Card, Center_default as Center, Checkbox_default as Checkbox, CheckboxGroup_default as CheckboxGroup, Chip_default as Chip, ChoiceChip_default as ChoiceChip, CircleAvatar_default as CircleAvatar, CircularProgressIndicator_default as CircularProgressIndicator, Clip, ClipOval_default as ClipOval, ClipRRect_default as ClipRRect, Color, ColorUtils, Colors, Column_default as Column, ConstrainedBox_default as ConstrainedBox, Container_default as Container, CrossAxisAlignment, CupertinoActivityIndicator_default as CupertinoActivityIndicator, CupertinoColors, CupertinoContextMenu_default as CupertinoContextMenu, CupertinoNavigationBar_default as CupertinoNavigationBar, CupertinoPageScaffold_default as CupertinoPageScaffold, DecorationImage, Divider_default as Divider, Drawer_default as Drawer, EdgeInsets, ElevatedButton_default as ElevatedButton, Expanded_default as Expanded, Fixed_default as Fixed, FlexBox_default as FlexBox, FlexItem_default as FlexItem, FloatingLabelBehavior, FlueConfigProvider_default as FlueConfigProvider, FontStyle, FontWeight, GestureDetector_default as GestureDetector, GridView_default as GridView, Icon_default as Icon, IconButton_default as IconButton, Icons, IgnorePointer_default as IgnorePointer, Image_default as Image, ImageColorBackground_default as ImageColorBackground, ImageFilter, ImageProvider, ImageUtils, InkWell_default as InkWell, InputDecoration, LayoutBuilder_default as LayoutBuilder, LinearGradient, LinearProgressIndicator_default as LinearProgressIndicator, LiquidGlassDialog_default as LiquidGlassDialog, ListTile_default as ListTile, ListView_default as ListView, MainAxisAlignment, Matrix4, MediaQuery_default as MediaQuery, MediaQueryKey, MemoryImage, Modal_default as Modal, NetworkImage, Opacity_default as Opacity, Orientation, OutlineInputBorder, OutlinedButton_default as OutlinedButton, Overlay_default as Overlay, Padding_default as Padding, PopupMenuButton_default as PopupMenuButton, Positioned_default as Positioned, RadialGradient, Radio_default as Radio, RadioGroup_default as RadioGroup, RadioListTile_default as RadioListTile, RangeSlider_default as RangeSlider, RatingBar_default as RatingBar, RefreshIndicator_default as RefreshIndicator, Row_default as Row, SafeArea_default as SafeArea, Scaffold_default as Scaffold, ScrollView_default as ScrollView, SegmentedControl_default as SegmentedControl, Size, SizedBox_default as SizedBox, Slider_default as Slider, SlidingSegmentedControl_default as SlidingSegmentedControl, SnackBar, Spacer_default as Spacer, Stack_default as Stack, StackFit, Sticky_default as Sticky, StyleProvider, Switch_default as Switch, TabBar_default as TabBar, TabBarView_default as TabBarView, Table_default as Table, Text_default as Text, TextAlign, TextArea_default as TextArea, TextBaseline, TextButton_default as TextButton, TextButtonWithIcon_default as TextButtonWithIcon, TextDecoration, TextDecorationStyle, TextDirection, TextField_default as TextField, TextOverflow, TextStyle, TextStylePreset, TileMode, Toast, Toast as toast, Transform_default as Transform, UnderlineInputBorder, Wrap_default as Wrap, animationToStyle, borderRadiusToStyle, borderSideToStyle, borderToStyle, boxConstraintsToStyle, boxDecorationToStyle, boxShadowToCSS, buttonStyleToStyle, computeLuminance, createAssetImageProvider, createNetworkImageProvider, darken, decorationImageToStyle, defineKeyframes, edgeInsetsToStyle, extractDominantColor, hideToast, isBorderRadius, isBorderSide, isBorders, isBoxConstraints, isBoxDecoration, isBoxShadow, isEdgeInsets, isImageFilter, isImageProvider, isTextStyle, keep, lighten, marginToStyle, matrix4ToCSSStyle, normalizeSrc, paddingToStyle, px2vw, registerKeyframes, resolveColor, setAssetBaseURL, setDefaultVW, setTransform, showAlertDialog, showLiquidGlassDialog, showToast, sizeToStyle, toCSSStyle as textStyleToCSSStyle, toCSSStyle, useMediaQuery, withAlpha, withBlue, withGreen, withOpacity, withRed };
8171
+ export { ActionChip_default as ActionChip, AlertDialog_default as AlertDialog, Align_default as Align, Alignment, AnimatedContainer_default as AnimatedContainer, AnimatedOpacity_default as AnimatedOpacity, Animation_default as AnimationWidget, Animator, AppBar_default as AppBar, AspectRatio_default as AspectRatio, AssetImage, BackdropFilter_default as BackdropFilter, BlurStyle, Border, BorderRadius, BorderSide, BottomNavigationBar_default as BottomNavigationBar, BottomSheet_default as BottomSheet, Box_default as Box, BoxAlignment, BoxConstraints, BoxDecoration, BoxFit, BoxShadow, BoxShape, Builder_default as Builder, Button_default as Button, ButtonStyle, ButtonStylePreset, Card_default as Card, Center_default as Center, Checkbox_default as Checkbox, CheckboxGroup_default as CheckboxGroup, Chip_default as Chip, ChoiceChip_default as ChoiceChip, CircleAvatar_default as CircleAvatar, CircularProgressIndicator_default as CircularProgressIndicator, Clip, ClipOval_default as ClipOval, ClipRRect_default as ClipRRect, Color, ColorUtils, Colors, Column_default as Column, ConstrainedBox_default as ConstrainedBox, Container_default as Container, CrossAxisAlignment, CupertinoActivityIndicator_default as CupertinoActivityIndicator, CupertinoColors, CupertinoContextMenu_default as CupertinoContextMenu, CupertinoNavigationBar_default as CupertinoNavigationBar, CupertinoPageScaffold_default as CupertinoPageScaffold, DecorationImage, Divider_default as Divider, Drawer_default as Drawer, EdgeInsets, ElevatedButton_default as ElevatedButton, Expanded_default as Expanded, Fixed_default as Fixed, FlexBox_default as FlexBox, FlexItem_default as FlexItem, FloatingLabelBehavior, FlueConfigProvider_default as FlueConfigProvider, FontStyle, FontWeight, GestureDetector_default as GestureDetector, GridView_default as GridView, Icon_default as Icon, IconButton_default as IconButton, Icons, IgnorePointer_default as IgnorePointer, Image_default as Image, ImageColorBackground_default as ImageColorBackground, ImageFilter, ImageProvider, ImageUtils, InkWell_default as InkWell, InputDecoration, LayoutBuilder_default as LayoutBuilder, LinearGradient, LinearProgressIndicator_default as LinearProgressIndicator, LiquidGlassDialog_default as LiquidGlassDialog, ListTile_default as ListTile, ListView_default as ListView, MainAxisAlignment, Matrix4, MediaQuery_default as MediaQuery, MediaQueryKey, MemoryImage, Modal_default as Modal, NetworkImage, Opacity_default as Opacity, Orientation, OutlineInputBorder, OutlinedButton_default as OutlinedButton, Overlay_default as Overlay, Padding_default as Padding, PopupMenuButton_default as PopupMenuButton, Positioned_default as Positioned, RadialGradient, Radio_default as Radio, RadioGroup_default as RadioGroup, RadioListTile_default as RadioListTile, RangeSlider_default as RangeSlider, RatingBar_default as RatingBar, RefreshIndicator_default as RefreshIndicator, Row_default as Row, SafeArea_default as SafeArea, Scaffold_default as Scaffold, ScrollView_default as ScrollView, SegmentedControl_default as SegmentedControl, Size, SizedBox_default as SizedBox, Slider_default as Slider, SlidingSegmentedControl_default as SlidingSegmentedControl, SnackBar, Spacer_default as Spacer, Stack_default as Stack, StackFit, Sticky_default as Sticky, StyleProvider, Switch_default as Switch, TabBar_default as TabBar, TabBarView_default as TabBarView, Table_default as Table, Text_default as Text, TextAlign, TextArea_default as TextArea, TextBaseline, TextButton_default as TextButton, TextButtonWithIcon_default as TextButtonWithIcon, TextDecoration, TextDecorationStyle, TextDirection, TextField_default as TextField, TextOverflow, TextStyle, TextStylePreset, TileMode, Toast, Toast as toast, Transform_default as Transform, UnderlineInputBorder, Upload_default as Upload, Wrap_default as Wrap, animationToStyle, borderRadiusToStyle, borderSideToStyle, borderToStyle, boxConstraintsToStyle, boxDecorationToStyle, boxShadowToCSS, buttonStyleToStyle, computeLuminance, createAssetImageProvider, createNetworkImageProvider, darken, decorationImageToStyle, defineKeyframes, edgeInsetsToStyle, extractDominantColor, hideToast, isBorderRadius, isBorderSide, isBorders, isBoxConstraints, isBoxDecoration, isBoxShadow, isEdgeInsets, isImageFilter, isImageProvider, isTextStyle, keep, lighten, marginToStyle, matrix4ToCSSStyle, normalizeSrc, paddingToStyle, px2vw, registerKeyframes, resolveColor, setAssetBaseURL, setDefaultVW, setTransform, showAlertDialog, showLiquidGlassDialog, showToast, sizeToStyle, toCSSStyle as textStyleToCSSStyle, toCSSStyle, useMediaQuery, withAlpha, withBlue, withGreen, withOpacity, withRed };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluekit",
3
- "version": "2.7.1",
3
+ "version": "2.7.2",
4
4
  "description": "A Flutter-style Layout UI kit for Vue",
5
5
  "homepage": "https://fi2zz.github.io/fluekit/",
6
6
  "repository": {