@plasmicpkgs/antd5 0.0.188 → 0.0.190

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 (94) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/antd.esm.js +5118 -4965
  3. package/dist/antd.esm.js.map +1 -1
  4. package/dist/form/Form.d.ts +72 -0
  5. package/dist/form/FormGroup.d.ts +6 -0
  6. package/dist/form/FormItem.d.ts +33 -0
  7. package/dist/form/FormList.d.ts +5 -0
  8. package/dist/form/SchemaForm.d.ts +9 -0
  9. package/dist/form/contexts.d.ts +40 -0
  10. package/dist/form/registerForm.d.ts +9 -0
  11. package/dist/form/registerFormGroup.d.ts +2 -0
  12. package/dist/form/registerFormItem.d.ts +2 -0
  13. package/dist/form/registerFormList.d.ts +2 -0
  14. package/dist/form/sharedRegistration.d.ts +14 -0
  15. package/dist/index.d.ts +6 -4
  16. package/dist/index.js +5136 -4972
  17. package/dist/index.js.map +1 -1
  18. package/dist/names.d.ts +18 -0
  19. package/dist/registerButton.d.ts +1 -2
  20. package/dist/registerCheckbox.d.ts +0 -2
  21. package/dist/registerInput.d.ts +0 -4
  22. package/dist/registerRadio.d.ts +0 -3
  23. package/dist/registerSelect.d.ts +0 -3
  24. package/dist/registerSwitch.d.ts +0 -1
  25. package/package.json +5 -5
  26. package/skinny/Form.cjs.js +268 -0
  27. package/skinny/Form.cjs.js.map +1 -0
  28. package/skinny/Form.esm.js +256 -0
  29. package/skinny/Form.esm.js.map +1 -0
  30. package/skinny/FormGroup.cjs.js +26 -0
  31. package/skinny/FormGroup.cjs.js.map +1 -0
  32. package/skinny/FormGroup.esm.js +20 -0
  33. package/skinny/FormGroup.esm.js.map +1 -0
  34. package/skinny/FormItem.cjs.js +290 -0
  35. package/skinny/FormItem.cjs.js.map +1 -0
  36. package/skinny/FormItem.esm.js +284 -0
  37. package/skinny/FormItem.esm.js.map +1 -0
  38. package/skinny/FormList.cjs.js +98 -0
  39. package/skinny/FormList.cjs.js.map +1 -0
  40. package/skinny/FormList.esm.js +92 -0
  41. package/skinny/FormList.esm.js.map +1 -0
  42. package/skinny/SchemaForm.cjs.js +199 -0
  43. package/skinny/SchemaForm.cjs.js.map +1 -0
  44. package/skinny/SchemaForm.esm.js +191 -0
  45. package/skinny/SchemaForm.esm.js.map +1 -0
  46. package/skinny/contexts-4c7952c1.esm.js +20 -0
  47. package/skinny/contexts-4c7952c1.esm.js.map +1 -0
  48. package/skinny/contexts-a2387bed.cjs.js +31 -0
  49. package/skinny/contexts-a2387bed.cjs.js.map +1 -0
  50. package/skinny/names-3aea627b.cjs.js +34 -0
  51. package/skinny/names-3aea627b.cjs.js.map +1 -0
  52. package/skinny/names-73583568.esm.js +18 -0
  53. package/skinny/names-73583568.esm.js.map +1 -0
  54. package/skinny/names.d.ts +18 -0
  55. package/skinny/registerButton.cjs.js +3 -4
  56. package/skinny/registerButton.cjs.js.map +1 -1
  57. package/skinny/registerButton.d.ts +1 -2
  58. package/skinny/registerButton.esm.js +3 -3
  59. package/skinny/registerButton.esm.js.map +1 -1
  60. package/skinny/registerCheckbox.cjs.js +5 -8
  61. package/skinny/registerCheckbox.cjs.js.map +1 -1
  62. package/skinny/registerCheckbox.d.ts +0 -2
  63. package/skinny/registerCheckbox.esm.js +2 -3
  64. package/skinny/registerCheckbox.esm.js.map +1 -1
  65. package/skinny/registerForm.cjs.js +460 -1387
  66. package/skinny/registerForm.cjs.js.map +1 -1
  67. package/skinny/registerForm.esm.js +460 -1375
  68. package/skinny/registerForm.esm.js.map +1 -1
  69. package/skinny/registerInput.cjs.js +8 -15
  70. package/skinny/registerInput.cjs.js.map +1 -1
  71. package/skinny/registerInput.d.ts +0 -4
  72. package/skinny/registerInput.esm.js +2 -5
  73. package/skinny/registerInput.esm.js.map +1 -1
  74. package/skinny/registerRadio.cjs.js +6 -11
  75. package/skinny/registerRadio.cjs.js.map +1 -1
  76. package/skinny/registerRadio.d.ts +0 -3
  77. package/skinny/registerRadio.esm.js +2 -4
  78. package/skinny/registerRadio.esm.js.map +1 -1
  79. package/skinny/registerSelect.cjs.js +7 -12
  80. package/skinny/registerSelect.cjs.js.map +1 -1
  81. package/skinny/registerSelect.d.ts +0 -3
  82. package/skinny/registerSelect.esm.js +2 -4
  83. package/skinny/registerSelect.esm.js.map +1 -1
  84. package/skinny/registerSwitch.cjs.js +2 -3
  85. package/skinny/registerSwitch.cjs.js.map +1 -1
  86. package/skinny/registerSwitch.d.ts +0 -1
  87. package/skinny/registerSwitch.esm.js +2 -2
  88. package/skinny/registerSwitch.esm.js.map +1 -1
  89. package/skinny/registerUpload.cjs.js +10 -6
  90. package/skinny/registerUpload.cjs.js.map +1 -1
  91. package/skinny/registerUpload.esm.js +10 -6
  92. package/skinny/registerUpload.esm.js.map +1 -1
  93. package/dist/registerForm.d.ts +0 -143
  94. package/skinny/registerForm.d.ts +0 -143
@@ -1 +1 @@
1
- {"version":3,"file":"registerSwitch.cjs.js","sources":["../src/registerSwitch.tsx"],"sourcesContent":["import { Switch } from \"antd\";\nimport React from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport function AntdSwitch(props: React.ComponentProps<typeof Switch>) {\n return <Switch {...props} />;\n}\nAntdSwitch.__plasmicFormFieldMeta = { valueProp: \"checked\" };\n\nexport const switchComponentName = \"plasmic-antd5-switch\";\n\nexport function registerSwitch(loader?: Registerable) {\n registerComponentHelper(loader, AntdSwitch, {\n name: switchComponentName,\n displayName: \"Switch\",\n props: {\n checked: {\n type: \"boolean\",\n editOnly: true,\n uncontrolledProp: \"defaultChecked\",\n description: \"Whether the switch is toggled on\",\n defaultValueHint: false,\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n disabled: {\n type: \"boolean\",\n description: \"If switch is disabled\",\n defaultValueHint: false,\n },\n autoFocus: {\n type: \"boolean\",\n description: \"If get focus when component mounted\",\n defaultValueHint: false,\n advanced: true,\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"checked\", type: \"boolean\" }],\n } as any,\n },\n states: {\n checked: {\n type: \"writable\",\n valueProp: \"checked\",\n onChangeProp: \"onChange\",\n variableType: \"boolean\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerSwitch\",\n importName: \"AntdSwitch\",\n });\n}\n"],"names":["React","Switch","registerComponentHelper"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,WAAW,KAA4C,EAAA;AACrE,EAAO,uBAAAA,sBAAA,CAAA,aAAA,CAACC,gCAAW,KAAO,CAAA,CAAA,CAAA;AAC5B,CAAA;AACA,UAAW,CAAA,sBAAA,GAAyB,EAAE,SAAA,EAAW,SAAU,EAAA,CAAA;AAEpD,MAAM,mBAAsB,GAAA,uBAAA;AAE5B,SAAS,eAAe,MAAuB,EAAA;AACpD,EAAAC,6BAAA,CAAwB,QAAQ,UAAY,EAAA;AAAA,IAC1C,IAAM,EAAA,mBAAA;AAAA,IACN,WAAa,EAAA,QAAA;AAAA,IACb,KAAO,EAAA;AAAA,MACL,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,SAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,QACV,gBAAkB,EAAA,gBAAA;AAAA,QAClB,WAAa,EAAA,kCAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,QAClB,MAAQ,EAAA,CAAC,EAAY,KAAA,CAAC,CAAC,EAAG,CAAA,kBAAA;AAAA,OAC5B;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,uBAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,OACpB;AAAA,MACA,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,qCAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,SAAW,EAAA,IAAA,EAAM,WAAW,CAAA;AAAA,OACjD;AAAA,KACF;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,UAAA;AAAA,QACN,SAAW,EAAA,SAAA;AAAA,QACX,YAAc,EAAA,UAAA;AAAA,QACd,YAAc,EAAA,SAAA;AAAA,QACd,MAAQ,EAAA,CAAC,EAAY,KAAA,CAAC,CAAC,EAAG,CAAA,kBAAA;AAAA,OAC5B;AAAA,KACF;AAAA,IACA,UAAY,EAAA,0CAAA;AAAA,IACZ,UAAY,EAAA,YAAA;AAAA,GACb,CAAA,CAAA;AACH;;;;;;"}
1
+ {"version":3,"file":"registerSwitch.cjs.js","sources":["../src/registerSwitch.tsx"],"sourcesContent":["import { Switch } from \"antd\";\nimport React from \"react\";\nimport { switchComponentName } from \"./names\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport function AntdSwitch(props: React.ComponentProps<typeof Switch>) {\n return <Switch {...props} />;\n}\nAntdSwitch.__plasmicFormFieldMeta = { valueProp: \"checked\" };\n\nexport function registerSwitch(loader?: Registerable) {\n registerComponentHelper(loader, AntdSwitch, {\n name: switchComponentName,\n displayName: \"Switch\",\n props: {\n checked: {\n type: \"boolean\",\n editOnly: true,\n uncontrolledProp: \"defaultChecked\",\n description: \"Whether the switch is toggled on\",\n defaultValueHint: false,\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n disabled: {\n type: \"boolean\",\n description: \"If switch is disabled\",\n defaultValueHint: false,\n },\n autoFocus: {\n type: \"boolean\",\n description: \"If get focus when component mounted\",\n defaultValueHint: false,\n advanced: true,\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"checked\", type: \"boolean\" }],\n } as any,\n },\n states: {\n checked: {\n type: \"writable\",\n valueProp: \"checked\",\n onChangeProp: \"onChange\",\n variableType: \"boolean\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerSwitch\",\n importName: \"AntdSwitch\",\n });\n}\n"],"names":["React","Switch","registerComponentHelper","switchComponentName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,SAAS,WAAW,KAA4C,EAAA;AACrE,EAAO,uBAAAA,sBAAA,CAAA,aAAA,CAACC,gCAAW,KAAO,CAAA,CAAA,CAAA;AAC5B,CAAA;AACA,UAAW,CAAA,sBAAA,GAAyB,EAAE,SAAA,EAAW,SAAU,EAAA,CAAA;AAEpD,SAAS,eAAe,MAAuB,EAAA;AACpD,EAAAC,6BAAA,CAAwB,QAAQ,UAAY,EAAA;AAAA,IAC1C,IAAM,EAAAC,yBAAA;AAAA,IACN,WAAa,EAAA,QAAA;AAAA,IACb,KAAO,EAAA;AAAA,MACL,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,SAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,QACV,gBAAkB,EAAA,gBAAA;AAAA,QAClB,WAAa,EAAA,kCAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,QAClB,MAAQ,EAAA,CAAC,EAAY,KAAA,CAAC,CAAC,EAAG,CAAA,kBAAA;AAAA,OAC5B;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,uBAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,OACpB;AAAA,MACA,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,qCAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,SAAW,EAAA,IAAA,EAAM,WAAW,CAAA;AAAA,OACjD;AAAA,KACF;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,UAAA;AAAA,QACN,SAAW,EAAA,SAAA;AAAA,QACX,YAAc,EAAA,UAAA;AAAA,QACd,YAAc,EAAA,SAAA;AAAA,QACd,MAAQ,EAAA,CAAC,EAAY,KAAA,CAAC,CAAC,EAAG,CAAA,kBAAA;AAAA,OAC5B;AAAA,KACF;AAAA,IACA,UAAY,EAAA,0CAAA;AAAA,IACZ,UAAY,EAAA,YAAA;AAAA,GACb,CAAA,CAAA;AACH;;;;;"}
@@ -7,5 +7,4 @@ export declare namespace AntdSwitch {
7
7
  valueProp: string;
8
8
  };
9
9
  }
10
- export declare const switchComponentName = "plasmic-antd5-switch";
11
10
  export declare function registerSwitch(loader?: Registerable): void;
@@ -1,5 +1,6 @@
1
1
  import { Switch } from 'antd';
2
2
  import React from 'react';
3
+ import { j as switchComponentName } from './names-73583568.esm.js';
3
4
  import { r as registerComponentHelper } from './utils-7d8f2418.esm.js';
4
5
  import '@plasmicapp/host/registerComponent';
5
6
  import '@plasmicapp/host/registerGlobalContext';
@@ -24,7 +25,6 @@ function AntdSwitch(props) {
24
25
  return /* @__PURE__ */ React.createElement(Switch, __spreadValues({}, props));
25
26
  }
26
27
  AntdSwitch.__plasmicFormFieldMeta = { valueProp: "checked" };
27
- const switchComponentName = "plasmic-antd5-switch";
28
28
  function registerSwitch(loader) {
29
29
  registerComponentHelper(loader, AntdSwitch, {
30
30
  name: switchComponentName,
@@ -68,5 +68,5 @@ function registerSwitch(loader) {
68
68
  });
69
69
  }
70
70
 
71
- export { AntdSwitch, registerSwitch, switchComponentName };
71
+ export { AntdSwitch, registerSwitch };
72
72
  //# sourceMappingURL=registerSwitch.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerSwitch.esm.js","sources":["../src/registerSwitch.tsx"],"sourcesContent":["import { Switch } from \"antd\";\nimport React from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport function AntdSwitch(props: React.ComponentProps<typeof Switch>) {\n return <Switch {...props} />;\n}\nAntdSwitch.__plasmicFormFieldMeta = { valueProp: \"checked\" };\n\nexport const switchComponentName = \"plasmic-antd5-switch\";\n\nexport function registerSwitch(loader?: Registerable) {\n registerComponentHelper(loader, AntdSwitch, {\n name: switchComponentName,\n displayName: \"Switch\",\n props: {\n checked: {\n type: \"boolean\",\n editOnly: true,\n uncontrolledProp: \"defaultChecked\",\n description: \"Whether the switch is toggled on\",\n defaultValueHint: false,\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n disabled: {\n type: \"boolean\",\n description: \"If switch is disabled\",\n defaultValueHint: false,\n },\n autoFocus: {\n type: \"boolean\",\n description: \"If get focus when component mounted\",\n defaultValueHint: false,\n advanced: true,\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"checked\", type: \"boolean\" }],\n } as any,\n },\n states: {\n checked: {\n type: \"writable\",\n valueProp: \"checked\",\n onChangeProp: \"onChange\",\n variableType: \"boolean\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerSwitch\",\n importName: \"AntdSwitch\",\n });\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,WAAW,KAA4C,EAAA;AACrE,EAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,2BAAW,KAAO,CAAA,CAAA,CAAA;AAC5B,CAAA;AACA,UAAW,CAAA,sBAAA,GAAyB,EAAE,SAAA,EAAW,SAAU,EAAA,CAAA;AAEpD,MAAM,mBAAsB,GAAA,uBAAA;AAE5B,SAAS,eAAe,MAAuB,EAAA;AACpD,EAAA,uBAAA,CAAwB,QAAQ,UAAY,EAAA;AAAA,IAC1C,IAAM,EAAA,mBAAA;AAAA,IACN,WAAa,EAAA,QAAA;AAAA,IACb,KAAO,EAAA;AAAA,MACL,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,SAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,QACV,gBAAkB,EAAA,gBAAA;AAAA,QAClB,WAAa,EAAA,kCAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,QAClB,MAAQ,EAAA,CAAC,EAAY,KAAA,CAAC,CAAC,EAAG,CAAA,kBAAA;AAAA,OAC5B;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,uBAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,OACpB;AAAA,MACA,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,qCAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,SAAW,EAAA,IAAA,EAAM,WAAW,CAAA;AAAA,OACjD;AAAA,KACF;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,UAAA;AAAA,QACN,SAAW,EAAA,SAAA;AAAA,QACX,YAAc,EAAA,UAAA;AAAA,QACd,YAAc,EAAA,SAAA;AAAA,QACd,MAAQ,EAAA,CAAC,EAAY,KAAA,CAAC,CAAC,EAAG,CAAA,kBAAA;AAAA,OAC5B;AAAA,KACF;AAAA,IACA,UAAY,EAAA,0CAAA;AAAA,IACZ,UAAY,EAAA,YAAA;AAAA,GACb,CAAA,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"registerSwitch.esm.js","sources":["../src/registerSwitch.tsx"],"sourcesContent":["import { Switch } from \"antd\";\nimport React from \"react\";\nimport { switchComponentName } from \"./names\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport function AntdSwitch(props: React.ComponentProps<typeof Switch>) {\n return <Switch {...props} />;\n}\nAntdSwitch.__plasmicFormFieldMeta = { valueProp: \"checked\" };\n\nexport function registerSwitch(loader?: Registerable) {\n registerComponentHelper(loader, AntdSwitch, {\n name: switchComponentName,\n displayName: \"Switch\",\n props: {\n checked: {\n type: \"boolean\",\n editOnly: true,\n uncontrolledProp: \"defaultChecked\",\n description: \"Whether the switch is toggled on\",\n defaultValueHint: false,\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n disabled: {\n type: \"boolean\",\n description: \"If switch is disabled\",\n defaultValueHint: false,\n },\n autoFocus: {\n type: \"boolean\",\n description: \"If get focus when component mounted\",\n defaultValueHint: false,\n advanced: true,\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"checked\", type: \"boolean\" }],\n } as any,\n },\n states: {\n checked: {\n type: \"writable\",\n valueProp: \"checked\",\n onChangeProp: \"onChange\",\n variableType: \"boolean\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerSwitch\",\n importName: \"AntdSwitch\",\n });\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAKO,SAAS,WAAW,KAA4C,EAAA;AACrE,EAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,2BAAW,KAAO,CAAA,CAAA,CAAA;AAC5B,CAAA;AACA,UAAW,CAAA,sBAAA,GAAyB,EAAE,SAAA,EAAW,SAAU,EAAA,CAAA;AAEpD,SAAS,eAAe,MAAuB,EAAA;AACpD,EAAA,uBAAA,CAAwB,QAAQ,UAAY,EAAA;AAAA,IAC1C,IAAM,EAAA,mBAAA;AAAA,IACN,WAAa,EAAA,QAAA;AAAA,IACb,KAAO,EAAA;AAAA,MACL,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,SAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,QACV,gBAAkB,EAAA,gBAAA;AAAA,QAClB,WAAa,EAAA,kCAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,QAClB,MAAQ,EAAA,CAAC,EAAY,KAAA,CAAC,CAAC,EAAG,CAAA,kBAAA;AAAA,OAC5B;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,uBAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,OACpB;AAAA,MACA,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,qCAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,SAAW,EAAA,IAAA,EAAM,WAAW,CAAA;AAAA,OACjD;AAAA,KACF;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,UAAA;AAAA,QACN,SAAW,EAAA,SAAA;AAAA,QACX,YAAc,EAAA,UAAA;AAAA,QACd,YAAc,EAAA,SAAA;AAAA,QACd,MAAQ,EAAA,CAAC,EAAY,KAAA,CAAC,CAAC,EAAG,CAAA,kBAAA;AAAA,OAC5B;AAAA,KACF;AAAA,IACA,UAAY,EAAA,0CAAA;AAAA,IACZ,UAAY,EAAA,YAAA;AAAA,GACb,CAAA,CAAA;AACH;;;;"}
@@ -48,7 +48,7 @@ function getThumbUrl(file) {
48
48
  return `data:${file.type};base64,${file.contents}`;
49
49
  }
50
50
  function UploadWrapper(props) {
51
- const _a = props, { files, dragAndDropFiles, onFilesChange } = _a, rest = __objRest(_a, ["files", "dragAndDropFiles", "onFilesChange"]);
51
+ const _a = props, { files, dragAndDropFiles, onFilesChange, maxCount } = _a, rest = __objRest(_a, ["files", "dragAndDropFiles", "onFilesChange", "maxCount"]);
52
52
  const filesRef = React.useRef();
53
53
  filesRef.current = files;
54
54
  const [previewFileId, setPreviewFileId] = React.useState();
@@ -66,16 +66,18 @@ function UploadWrapper(props) {
66
66
  lastModified: file.lastModified
67
67
  };
68
68
  onFilesChange == null ? void 0 : onFilesChange([
69
- ...(_a2 = filesRef.current) != null ? _a2 : [],
69
+ ...((_a2 = filesRef.current) != null ? _a2 : []).slice(0, (maxCount || Infinity) - 1),
70
70
  __spreadProps(__spreadValues({}, metadata), {
71
71
  status: "uploading"
72
72
  })
73
73
  ]);
74
74
  const reader = new FileReader();
75
75
  reader.onload = () => {
76
- var _a3;
76
+ var _a3, _b;
77
+ if (!((_a3 = filesRef.current) == null ? void 0 : _a3.map((f) => f.uid).includes(metadata.uid)))
78
+ return;
77
79
  onFilesChange == null ? void 0 : onFilesChange([
78
- ...((_a3 = filesRef.current) != null ? _a3 : []).filter((f) => f.uid !== file.uid),
80
+ ...((_b = filesRef.current) != null ? _b : []).filter((f) => f.uid !== file.uid),
79
81
  __spreadProps(__spreadValues({}, metadata), {
80
82
  contents: reader.result.replace(
81
83
  /^data:[^;]+;base64,/,
@@ -86,9 +88,11 @@ function UploadWrapper(props) {
86
88
  ]);
87
89
  };
88
90
  reader.onerror = (error) => {
89
- var _a3;
91
+ var _a3, _b;
92
+ if (!((_a3 = filesRef.current) == null ? void 0 : _a3.map((f) => f.uid).includes(metadata.uid)))
93
+ return;
90
94
  onFilesChange == null ? void 0 : onFilesChange([
91
- ...((_a3 = filesRef.current) != null ? _a3 : []).filter((f) => f.uid !== file.uid),
95
+ ...((_b = filesRef.current) != null ? _b : []).filter((f) => f.uid !== file.uid),
92
96
  __spreadProps(__spreadValues({}, metadata), {
93
97
  status: "error"
94
98
  })
@@ -1 +1 @@
1
- {"version":3,"file":"registerUpload.cjs.js","sources":["../src/registerUpload.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { Modal, Upload } from \"antd\";\nimport type {\n UploadChangeParam,\n UploadFile as AntdUploadFile,\n UploadProps,\n} from \"antd/es/upload\";\nimport React, { useMemo, useRef, useState } from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\ninterface UploadFile {\n uid: string;\n name: string;\n size?: number;\n type?: string;\n lastModified?: number;\n contents?: string;\n status: AntdUploadFile[\"status\"];\n}\n\ninterface ExtendedUploadProps<T = any> extends UploadProps<T> {\n files?: Array<UploadFile>;\n onFilesChange?: (values: Array<UploadFile>) => void;\n dragAndDropFiles: boolean;\n}\n\nfunction getThumbUrl(file?: UploadFile): string | undefined {\n if (!file?.type?.startsWith(\"image\")) return undefined;\n return `data:${file.type};base64,${file.contents}`;\n}\n\nexport function UploadWrapper(props: ExtendedUploadProps) {\n const { files, dragAndDropFiles, onFilesChange, ...rest } = props;\n const filesRef = useRef<Array<UploadFile>>(); // if multiple = true, it facilitates adding multiple files\n\n filesRef.current = files;\n\n const [previewFileId, setPreviewFileId] = useState<string>();\n\n const handleChange = (info: UploadChangeParam) => {\n const { file } = info;\n\n if (file.status === \"removed\") {\n return;\n }\n\n const metadata = {\n uid: file.uid,\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n };\n\n onFilesChange?.([\n ...(filesRef.current ?? []),\n {\n ...metadata,\n status: \"uploading\",\n },\n ]);\n\n const reader = new FileReader();\n\n reader.onload = () => {\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n contents: (reader.result as string).replace(\n /^data:[^;]+;base64,/,\n \"\"\n ),\n status: \"done\",\n },\n ]);\n };\n\n reader.onerror = (error) => {\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n status: \"error\",\n },\n ]);\n };\n\n reader.readAsDataURL(info.file as any);\n };\n\n const handleRemove = (file: UploadFile) => {\n onFilesChange?.((files ?? []).filter((f) => f.uid !== file.uid));\n };\n\n const handlePreview = async (file: AntdUploadFile) => {\n setPreviewFileId(files?.filter((f) => file.uid === f.uid)[0]?.uid);\n };\n\n const handleCancel = () => setPreviewFileId(undefined);\n\n const previewFile = useMemo(\n () => files?.filter((f) => previewFileId === f.uid)[0],\n [files, previewFileId]\n );\n\n const UploadComponent = useMemo(\n () => (dragAndDropFiles ? Upload.Dragger : Upload),\n [dragAndDropFiles]\n );\n\n return (\n <>\n <UploadComponent\n {...rest}\n fileList={files?.map((f) => ({\n ...f,\n thumbUrl: getThumbUrl(f),\n }))}\n onPreview={handlePreview}\n beforeUpload={() => {\n return false;\n }}\n onChange={(info) => {\n handleChange(info);\n }}\n onRemove={(file) => {\n handleRemove(file as UploadFile);\n }}\n />\n <Modal\n open={Boolean(previewFile)}\n title={previewFile?.name}\n footer={null}\n onCancel={handleCancel}\n >\n <img\n alt=\"example\"\n style={{ width: \"100%\" }}\n src={getThumbUrl(previewFile)}\n />\n </Modal>\n </>\n );\n}\n\nUploadWrapper.__plasmicFormFieldMeta = {\n valueProp: \"files\",\n onChangeProp: \"onFilesChange\",\n};\n\nexport function registerUpload(loader?: Registerable) {\n registerComponentHelper(loader, UploadWrapper, {\n name: \"plasmic-antd5-upload\",\n displayName: \"Upload\",\n props: {\n accept: {\n type: \"choice\",\n displayName: \"Allowed types\",\n options: [\n {\n value: \"\",\n label: \"Any kind of file\",\n },\n {\n value: \"image/*\",\n label: \"Image\",\n },\n {\n value: \"video/*\",\n label: \"Video\",\n },\n {\n value: \"audio/*\",\n label: \"Audio\",\n },\n {\n value: \"application/pdf\",\n label: \"PDF\",\n },\n ],\n defaultValue: \"\",\n },\n listType: {\n type: \"choice\",\n options: [\"text\", \"picture\", \"picture-card\", \"picture-circle\"],\n defaultValueHint: \"text\",\n },\n dragAndDropFiles: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"You can drag files to a specific area, to upload. Alternatively, you can also upload by selecting.\",\n },\n multiple: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: false,\n description: \"Upload several files at once in modern browsers\",\n },\n files: {\n type: \"object\",\n displayName: \"Files\",\n defaultValue: [],\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Upload\",\n },\n },\n },\n ],\n },\n maxCount: {\n type: \"number\",\n displayName: \"Limit of files\",\n advanced: true,\n },\n onFilesChange: {\n type: \"eventHandler\",\n displayName: \"On file uploaded\",\n argTypes: [\n {\n name: \"files\",\n type: \"array\",\n },\n ],\n },\n showUploadList: {\n type: \"boolean\",\n displayName: \"List files\",\n defaultValue: true,\n },\n },\n states: {\n files: {\n type: \"writable\",\n valueProp: \"files\",\n variableType: \"array\",\n onChangeProp: \"onFilesChange\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerUpload\",\n importName: \"UploadWrapper\",\n });\n}\n"],"names":["useRef","useState","_a","useMemo","Upload","React","Modal","registerComponentHelper"],"mappings":"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"}
1
+ {"version":3,"file":"registerUpload.cjs.js","sources":["../src/registerUpload.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { Modal, Upload } from \"antd\";\nimport type {\n UploadChangeParam,\n UploadFile as AntdUploadFile,\n UploadProps,\n} from \"antd/es/upload\";\nimport React, { useMemo, useRef, useState } from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\ninterface UploadFile {\n uid: string;\n name: string;\n size?: number;\n type?: string;\n lastModified?: number;\n contents?: string;\n status: AntdUploadFile[\"status\"];\n}\n\ninterface ExtendedUploadProps<T = any> extends UploadProps<T> {\n files?: Array<UploadFile>;\n onFilesChange?: (values: Array<UploadFile>) => void;\n dragAndDropFiles: boolean;\n}\n\nfunction getThumbUrl(file?: UploadFile): string | undefined {\n if (!file?.type?.startsWith(\"image\")) return undefined;\n return `data:${file.type};base64,${file.contents}`;\n}\n\nexport function UploadWrapper(props: ExtendedUploadProps) {\n const { files, dragAndDropFiles, onFilesChange, maxCount, ...rest } = props;\n const filesRef = useRef<Array<UploadFile>>(); // if multiple = true, it facilitates adding multiple files\n\n filesRef.current = files;\n\n const [previewFileId, setPreviewFileId] = useState<string>();\n\n const handleChange = (info: UploadChangeParam) => {\n const { file } = info;\n\n if (file.status === \"removed\") {\n return;\n }\n\n const metadata = {\n uid: file.uid,\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n };\n\n onFilesChange?.([\n ...(filesRef.current ?? []).slice(0, (maxCount || Infinity) - 1),\n {\n ...metadata,\n status: \"uploading\",\n },\n ]);\n\n const reader = new FileReader();\n\n reader.onload = () => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) return;\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n contents: (reader.result as string).replace(\n /^data:[^;]+;base64,/,\n \"\"\n ),\n status: \"done\",\n },\n ]);\n };\n\n reader.onerror = (error) => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) return;\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n status: \"error\",\n },\n ]);\n };\n\n reader.readAsDataURL(info.file as any);\n };\n\n const handleRemove = (file: UploadFile) => {\n onFilesChange?.((files ?? []).filter((f) => f.uid !== file.uid));\n };\n\n const handlePreview = async (file: AntdUploadFile) => {\n setPreviewFileId(files?.filter((f) => file.uid === f.uid)[0]?.uid);\n };\n\n const handleCancel = () => setPreviewFileId(undefined);\n\n const previewFile = useMemo(\n () => files?.filter((f) => previewFileId === f.uid)[0],\n [files, previewFileId]\n );\n\n const UploadComponent = useMemo(\n () => (dragAndDropFiles ? Upload.Dragger : Upload),\n [dragAndDropFiles]\n );\n\n return (\n <>\n <UploadComponent\n {...rest}\n fileList={files?.map((f) => ({\n ...f,\n thumbUrl: getThumbUrl(f),\n }))}\n onPreview={handlePreview}\n beforeUpload={() => {\n return false;\n }}\n onChange={(info) => {\n handleChange(info);\n }}\n onRemove={(file) => {\n handleRemove(file as UploadFile);\n }}\n />\n <Modal\n open={Boolean(previewFile)}\n title={previewFile?.name}\n footer={null}\n onCancel={handleCancel}\n >\n <img\n alt=\"example\"\n style={{ width: \"100%\" }}\n src={getThumbUrl(previewFile)}\n />\n </Modal>\n </>\n );\n}\n\nUploadWrapper.__plasmicFormFieldMeta = {\n valueProp: \"files\",\n onChangeProp: \"onFilesChange\",\n};\n\nexport function registerUpload(loader?: Registerable) {\n registerComponentHelper(loader, UploadWrapper, {\n name: \"plasmic-antd5-upload\",\n displayName: \"Upload\",\n props: {\n accept: {\n type: \"choice\",\n displayName: \"Allowed types\",\n options: [\n {\n value: \"\",\n label: \"Any kind of file\",\n },\n {\n value: \"image/*\",\n label: \"Image\",\n },\n {\n value: \"video/*\",\n label: \"Video\",\n },\n {\n value: \"audio/*\",\n label: \"Audio\",\n },\n {\n value: \"application/pdf\",\n label: \"PDF\",\n },\n ],\n defaultValue: \"\",\n },\n listType: {\n type: \"choice\",\n options: [\"text\", \"picture\", \"picture-card\", \"picture-circle\"],\n defaultValueHint: \"text\",\n },\n dragAndDropFiles: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"You can drag files to a specific area, to upload. Alternatively, you can also upload by selecting.\",\n },\n multiple: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: false,\n description: \"Upload several files at once in modern browsers\",\n },\n files: {\n type: \"object\",\n displayName: \"Files\",\n defaultValue: [],\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Upload\",\n },\n },\n },\n ],\n },\n maxCount: {\n type: \"number\",\n displayName: \"Limit of files\",\n advanced: true,\n },\n onFilesChange: {\n type: \"eventHandler\",\n displayName: \"On file uploaded\",\n argTypes: [\n {\n name: \"files\",\n type: \"array\",\n },\n ],\n },\n showUploadList: {\n type: \"boolean\",\n displayName: \"List files\",\n defaultValue: true,\n },\n },\n states: {\n files: {\n type: \"writable\",\n valueProp: \"files\",\n variableType: \"array\",\n onChangeProp: \"onFilesChange\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerUpload\",\n importName: \"UploadWrapper\",\n });\n}\n"],"names":["useRef","useState","_a","useMemo","Upload","React","Modal","registerComponentHelper"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,SAAS,YAAY,IAAuC,EAAA;AA1B5D,EAAA,IAAA,EAAA,CAAA;AA2BE,EAAA,IAAI,EAAC,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,IAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAY,UAAW,CAAA,OAAA,CAAA,CAAA;AAAU,IAAO,OAAA,KAAA,CAAA,CAAA;AAC7C,EAAO,OAAA,CAAA,KAAA,EAAQ,IAAK,CAAA,IAAA,CAAA,QAAA,EAAe,IAAK,CAAA,QAAA,CAAA,CAAA,CAAA;AAC1C,CAAA;AAEO,SAAS,cAAc,KAA4B,EAAA;AACxD,EAAA,MAAsE,EAA9D,GAAA,KAAA,EAAA,EAAA,KAAA,EAAO,gBAAkB,EAAA,aAAA,EAAe,QAhClD,EAAA,GAgCwE,EAAT,EAAA,IAAA,GAAA,SAAA,CAAS,EAAT,EAAA,CAArD,OAAO,EAAA,kBAAA,EAAkB,eAAe,EAAA,UAAA,CAAA,CAAA,CAAA;AAChD,EAAA,MAAM,WAAWA,YAA0B,EAAA,CAAA;AAE3C,EAAA,QAAA,CAAS,OAAU,GAAA,KAAA,CAAA;AAEnB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,cAAiB,EAAA,CAAA;AAE3D,EAAM,MAAA,YAAA,GAAe,CAAC,IAA4B,KAAA;AAvCpD,IAAAC,IAAAA,GAAAA,CAAAA;AAwCI,IAAM,MAAA,EAAE,MAAS,GAAA,IAAA,CAAA;AAEjB,IAAI,IAAA,IAAA,CAAK,WAAW,SAAW,EAAA;AAC7B,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,MAAM,QAAW,GAAA;AAAA,MACf,KAAK,IAAK,CAAA,GAAA;AAAA,MACV,MAAM,IAAK,CAAA,IAAA;AAAA,MACX,MAAM,IAAK,CAAA,IAAA;AAAA,MACX,MAAM,IAAK,CAAA,IAAA;AAAA,MACX,cAAc,IAAK,CAAA,YAAA;AAAA,KACrB,CAAA;AAEA,IAAgB,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA;AAAA,MACd,GAAIA,CAAAA,CAAAA,GAAAA,GAAA,QAAS,CAAA,OAAA,KAAT,IAAAA,GAAAA,GAAAA,GAAoB,EAAC,EAAG,KAAM,CAAA,CAAA,EAAA,CAAI,QAAY,IAAA,QAAA,IAAY,CAAC,CAAA;AAAA,MAC/D,iCACK,QADL,CAAA,EAAA;AAAA,QAEE,MAAQ,EAAA,WAAA;AAAA,OACV,CAAA;AAAA,KACF,CAAA,CAAA;AAEA,IAAM,MAAA,MAAA,GAAS,IAAI,UAAW,EAAA,CAAA;AAE9B,IAAA,MAAA,CAAO,SAAS,MAAM;AAhE1B,MAAA,IAAAA,GAAA,EAAA,EAAA,CAAA;AAiEM,MAAA,IAAI,EAACA,CAAAA,GAAAA,GAAA,QAAS,CAAA,OAAA,KAAT,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAkB,GAAI,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,GAAK,CAAA,CAAA,QAAA,CAAS,QAAS,CAAA,GAAA,CAAA,CAAA;AAAM,QAAA,OAAA;AACjE,MAAgB,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA;AAAA,QACd,GAAI,CAAA,CAAA,EAAA,GAAA,QAAA,CAAS,OAAT,KAAA,IAAA,GAAA,EAAA,GAAoB,EAAC,EAAG,MAAO,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,GAAQ,KAAA,IAAA,CAAK,GAAG,CAAA;AAAA,QAC5D,iCACK,QADL,CAAA,EAAA;AAAA,UAEE,QAAA,EAAW,OAAO,MAAkB,CAAA,OAAA;AAAA,YAClC,qBAAA;AAAA,YACA,EAAA;AAAA,WACF;AAAA,UACA,MAAQ,EAAA,MAAA;AAAA,SACV,CAAA;AAAA,OACF,CAAA,CAAA;AAAA,KACF,CAAA;AAEA,IAAO,MAAA,CAAA,OAAA,GAAU,CAAC,KAAU,KAAA;AA/EhC,MAAA,IAAAA,GAAA,EAAA,EAAA,CAAA;AAgFM,MAAA,IAAI,EAACA,CAAAA,GAAAA,GAAA,QAAS,CAAA,OAAA,KAAT,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAkB,GAAI,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,GAAK,CAAA,CAAA,QAAA,CAAS,QAAS,CAAA,GAAA,CAAA,CAAA;AAAM,QAAA,OAAA;AACjE,MAAgB,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA;AAAA,QACd,GAAI,CAAA,CAAA,EAAA,GAAA,QAAA,CAAS,OAAT,KAAA,IAAA,GAAA,EAAA,GAAoB,EAAC,EAAG,MAAO,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,GAAQ,KAAA,IAAA,CAAK,GAAG,CAAA;AAAA,QAC5D,iCACK,QADL,CAAA,EAAA;AAAA,UAEE,MAAQ,EAAA,OAAA;AAAA,SACV,CAAA;AAAA,OACF,CAAA,CAAA;AAAA,KACF,CAAA;AAEA,IAAO,MAAA,CAAA,aAAA,CAAc,KAAK,IAAW,CAAA,CAAA;AAAA,GACvC,CAAA;AAEA,EAAM,MAAA,YAAA,GAAe,CAAC,IAAqB,KAAA;AACzC,IAAiB,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,EAAI,EAAA,MAAA,CAAO,CAAC,CAAM,KAAA,CAAA,CAAE,GAAQ,KAAA,IAAA,CAAK,GAAG,CAAA,CAAA,CAAA;AAAA,GAChE,CAAA;AAEA,EAAM,MAAA,aAAA,GAAgB,OAAO,IAAyB,KAAA;AAjGxD,IAAAA,IAAAA,GAAAA,CAAAA;AAkGI,IAAA,gBAAA,CAAA,CAAiBA,GAAA,GAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,MAAO,CAAA,CAAC,CAAM,KAAA,IAAA,CAAK,GAAQ,KAAA,CAAA,CAAE,GAAK,CAAA,CAAA,CAAA,CAAA,KAAzC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAA6C,GAAG,CAAA,CAAA;AAAA,GACnE,CAAA;AAEA,EAAM,MAAA,YAAA,GAAe,MAAM,gBAAA,CAAiB,KAAS,CAAA,CAAA,CAAA;AAErD,EAAA,MAAM,WAAc,GAAAC,aAAA;AAAA,IAClB,MAAM,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,MAAA,CAAO,CAAC,CAAM,KAAA,aAAA,KAAkB,EAAE,GAAK,CAAA,CAAA,CAAA,CAAA;AAAA,IACpD,CAAC,OAAO,aAAa,CAAA;AAAA,GACvB,CAAA;AAEA,EAAA,MAAM,eAAkB,GAAAA,aAAA;AAAA,IACtB,MAAO,gBAAmB,GAAAC,WAAA,CAAO,OAAU,GAAAA,WAAA;AAAA,IAC3C,CAAC,gBAAgB,CAAA;AAAA,GACnB,CAAA;AAEA,EAAA,uBAEIC,sBAAA,CAAA,aAAA,CAAAA,sBAAA,CAAA,QAAA,EAAA,IAAA,kBAAAA,sBAAA,CAAA,aAAA;AAAA,IAAC,eAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,IADL,CAAA,EAAA;AAAA,MAEC,UAAU,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAI,CAAC,CAAA,KAAO,iCACxB,CADwB,CAAA,EAAA;AAAA,QAE3B,QAAA,EAAU,YAAY,CAAC,CAAA;AAAA,OACzB,CAAA,CAAA;AAAA,MACA,SAAW,EAAA,aAAA;AAAA,MACX,cAAc,MAAM;AAClB,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AAAA,MACA,QAAA,EAAU,CAAC,IAAS,KAAA;AAClB,QAAA,YAAA,CAAa,IAAI,CAAA,CAAA;AAAA,OACnB;AAAA,MACA,QAAA,EAAU,CAAC,IAAS,KAAA;AAClB,QAAA,YAAA,CAAa,IAAkB,CAAA,CAAA;AAAA,OACjC;AAAA,KAAA,CAAA;AAAA,GAEF,kBAAAA,sBAAA,CAAA,aAAA;AAAA,IAACC,UAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,QAAQ,WAAW,CAAA;AAAA,MACzB,OAAO,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,IAAA;AAAA,MACpB,MAAQ,EAAA,IAAA;AAAA,MACR,QAAU,EAAA,YAAA;AAAA,KAAA;AAAA,oBAEVD,sBAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAI,EAAA,SAAA;AAAA,QACJ,KAAA,EAAO,EAAE,KAAA,EAAO,MAAO,EAAA;AAAA,QACvB,GAAA,EAAK,YAAY,WAAW,CAAA;AAAA,OAAA;AAAA,KAC9B;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAA;AAEA,aAAA,CAAc,sBAAyB,GAAA;AAAA,EACrC,SAAW,EAAA,OAAA;AAAA,EACX,YAAc,EAAA,eAAA;AAChB,CAAA,CAAA;AAEO,SAAS,eAAe,MAAuB,EAAA;AACpD,EAAAE,6BAAA,CAAwB,QAAQ,aAAe,EAAA,aAAA,CAAA,cAAA,CAAA;AAAA,IAC7C,IAAM,EAAA,sBAAA;AAAA,IACN,WAAa,EAAA,QAAA;AAAA,IACb,KAAO,EAAA;AAAA,MACL,MAAQ,EAAA;AAAA,QACN,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,eAAA;AAAA,QACb,OAAS,EAAA;AAAA,UACP;AAAA,YACE,KAAO,EAAA,EAAA;AAAA,YACP,KAAO,EAAA,kBAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,OAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,OAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,OAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,KAAO,EAAA,iBAAA;AAAA,YACP,KAAO,EAAA,KAAA;AAAA,WACT;AAAA,SACF;AAAA,QACA,YAAc,EAAA,EAAA;AAAA,OAChB;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA,CAAC,MAAQ,EAAA,SAAA,EAAW,gBAAgB,gBAAgB,CAAA;AAAA,QAC7D,gBAAkB,EAAA,MAAA;AAAA,OACpB;AAAA,MACA,gBAAkB,EAAA;AAAA,QAChB,IAAM,EAAA,SAAA;AAAA,QACN,gBAAkB,EAAA,KAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,QACV,WACE,EAAA,oGAAA;AAAA,OACJ;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,SAAA;AAAA,QACN,QAAU,EAAA,IAAA;AAAA,QACV,gBAAkB,EAAA,KAAA;AAAA,QAClB,WAAa,EAAA,iDAAA;AAAA,OACf;AAAA,MACA,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,OAAA;AAAA,QACb,cAAc,EAAC;AAAA,QACf,MAAQ,EAAA,CAAC,EAAY,KAAA,CAAC,CAAC,EAAG,CAAA,kBAAA;AAAA,OAC5B;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,sBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,QAAU,EAAA;AAAA,gBACR,IAAM,EAAA,MAAA;AAAA,gBACN,KAAO,EAAA,QAAA;AAAA,eACT;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,gBAAA;AAAA,QACb,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,aAAe,EAAA;AAAA,QACb,IAAM,EAAA,cAAA;AAAA,QACN,WAAa,EAAA,kBAAA;AAAA,QACb,QAAU,EAAA;AAAA,UACR;AAAA,YACE,IAAM,EAAA,OAAA;AAAA,YACN,IAAM,EAAA,OAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,MACA,cAAgB,EAAA;AAAA,QACd,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,YAAA;AAAA,QACb,YAAc,EAAA,IAAA;AAAA,OAChB;AAAA,KACF;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,UAAA;AAAA,QACN,SAAW,EAAA,OAAA;AAAA,QACX,YAAc,EAAA,OAAA;AAAA,QACd,YAAc,EAAA,eAAA;AAAA,QACd,MAAQ,EAAA,CAAC,EAAY,KAAA,CAAC,CAAC,EAAG,CAAA,kBAAA;AAAA,OAC5B;AAAA,KACF;AAAA,GACI,EAAA,EAAE,cAAgB,EAAA,IAAA,EApGuB,CAAA,EAAA;AAAA,IAqG7C,UAAY,EAAA,0CAAA;AAAA,IACZ,UAAY,EAAA,eAAA;AAAA,GACb,CAAA,CAAA,CAAA;AACH;;;;;"}
@@ -42,7 +42,7 @@ function getThumbUrl(file) {
42
42
  return `data:${file.type};base64,${file.contents}`;
43
43
  }
44
44
  function UploadWrapper(props) {
45
- const _a = props, { files, dragAndDropFiles, onFilesChange } = _a, rest = __objRest(_a, ["files", "dragAndDropFiles", "onFilesChange"]);
45
+ const _a = props, { files, dragAndDropFiles, onFilesChange, maxCount } = _a, rest = __objRest(_a, ["files", "dragAndDropFiles", "onFilesChange", "maxCount"]);
46
46
  const filesRef = useRef();
47
47
  filesRef.current = files;
48
48
  const [previewFileId, setPreviewFileId] = useState();
@@ -60,16 +60,18 @@ function UploadWrapper(props) {
60
60
  lastModified: file.lastModified
61
61
  };
62
62
  onFilesChange == null ? void 0 : onFilesChange([
63
- ...(_a2 = filesRef.current) != null ? _a2 : [],
63
+ ...((_a2 = filesRef.current) != null ? _a2 : []).slice(0, (maxCount || Infinity) - 1),
64
64
  __spreadProps(__spreadValues({}, metadata), {
65
65
  status: "uploading"
66
66
  })
67
67
  ]);
68
68
  const reader = new FileReader();
69
69
  reader.onload = () => {
70
- var _a3;
70
+ var _a3, _b;
71
+ if (!((_a3 = filesRef.current) == null ? void 0 : _a3.map((f) => f.uid).includes(metadata.uid)))
72
+ return;
71
73
  onFilesChange == null ? void 0 : onFilesChange([
72
- ...((_a3 = filesRef.current) != null ? _a3 : []).filter((f) => f.uid !== file.uid),
74
+ ...((_b = filesRef.current) != null ? _b : []).filter((f) => f.uid !== file.uid),
73
75
  __spreadProps(__spreadValues({}, metadata), {
74
76
  contents: reader.result.replace(
75
77
  /^data:[^;]+;base64,/,
@@ -80,9 +82,11 @@ function UploadWrapper(props) {
80
82
  ]);
81
83
  };
82
84
  reader.onerror = (error) => {
83
- var _a3;
85
+ var _a3, _b;
86
+ if (!((_a3 = filesRef.current) == null ? void 0 : _a3.map((f) => f.uid).includes(metadata.uid)))
87
+ return;
84
88
  onFilesChange == null ? void 0 : onFilesChange([
85
- ...((_a3 = filesRef.current) != null ? _a3 : []).filter((f) => f.uid !== file.uid),
89
+ ...((_b = filesRef.current) != null ? _b : []).filter((f) => f.uid !== file.uid),
86
90
  __spreadProps(__spreadValues({}, metadata), {
87
91
  status: "error"
88
92
  })
@@ -1 +1 @@
1
- {"version":3,"file":"registerUpload.esm.js","sources":["../src/registerUpload.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { Modal, Upload } from \"antd\";\nimport type {\n UploadChangeParam,\n UploadFile as AntdUploadFile,\n UploadProps,\n} from \"antd/es/upload\";\nimport React, { useMemo, useRef, useState } from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\ninterface UploadFile {\n uid: string;\n name: string;\n size?: number;\n type?: string;\n lastModified?: number;\n contents?: string;\n status: AntdUploadFile[\"status\"];\n}\n\ninterface ExtendedUploadProps<T = any> extends UploadProps<T> {\n files?: Array<UploadFile>;\n onFilesChange?: (values: Array<UploadFile>) => void;\n dragAndDropFiles: boolean;\n}\n\nfunction getThumbUrl(file?: UploadFile): string | undefined {\n if (!file?.type?.startsWith(\"image\")) return undefined;\n return `data:${file.type};base64,${file.contents}`;\n}\n\nexport function UploadWrapper(props: ExtendedUploadProps) {\n const { files, dragAndDropFiles, onFilesChange, ...rest } = props;\n const filesRef = useRef<Array<UploadFile>>(); // if multiple = true, it facilitates adding multiple files\n\n filesRef.current = files;\n\n const [previewFileId, setPreviewFileId] = useState<string>();\n\n const handleChange = (info: UploadChangeParam) => {\n const { file } = info;\n\n if (file.status === \"removed\") {\n return;\n }\n\n const metadata = {\n uid: file.uid,\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n };\n\n onFilesChange?.([\n ...(filesRef.current ?? []),\n {\n ...metadata,\n status: \"uploading\",\n },\n ]);\n\n const reader = new FileReader();\n\n reader.onload = () => {\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n contents: (reader.result as string).replace(\n /^data:[^;]+;base64,/,\n \"\"\n ),\n status: \"done\",\n },\n ]);\n };\n\n reader.onerror = (error) => {\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n status: \"error\",\n },\n ]);\n };\n\n reader.readAsDataURL(info.file as any);\n };\n\n const handleRemove = (file: UploadFile) => {\n onFilesChange?.((files ?? []).filter((f) => f.uid !== file.uid));\n };\n\n const handlePreview = async (file: AntdUploadFile) => {\n setPreviewFileId(files?.filter((f) => file.uid === f.uid)[0]?.uid);\n };\n\n const handleCancel = () => setPreviewFileId(undefined);\n\n const previewFile = useMemo(\n () => files?.filter((f) => previewFileId === f.uid)[0],\n [files, previewFileId]\n );\n\n const UploadComponent = useMemo(\n () => (dragAndDropFiles ? Upload.Dragger : Upload),\n [dragAndDropFiles]\n );\n\n return (\n <>\n <UploadComponent\n {...rest}\n fileList={files?.map((f) => ({\n ...f,\n thumbUrl: getThumbUrl(f),\n }))}\n onPreview={handlePreview}\n beforeUpload={() => {\n return false;\n }}\n onChange={(info) => {\n handleChange(info);\n }}\n onRemove={(file) => {\n handleRemove(file as UploadFile);\n }}\n />\n <Modal\n open={Boolean(previewFile)}\n title={previewFile?.name}\n footer={null}\n onCancel={handleCancel}\n >\n <img\n alt=\"example\"\n style={{ width: \"100%\" }}\n src={getThumbUrl(previewFile)}\n />\n </Modal>\n </>\n );\n}\n\nUploadWrapper.__plasmicFormFieldMeta = {\n valueProp: \"files\",\n onChangeProp: \"onFilesChange\",\n};\n\nexport function registerUpload(loader?: Registerable) {\n registerComponentHelper(loader, UploadWrapper, {\n name: \"plasmic-antd5-upload\",\n displayName: \"Upload\",\n props: {\n accept: {\n type: \"choice\",\n displayName: \"Allowed types\",\n options: [\n {\n value: \"\",\n label: \"Any kind of file\",\n },\n {\n value: \"image/*\",\n label: \"Image\",\n },\n {\n value: \"video/*\",\n label: \"Video\",\n },\n {\n value: \"audio/*\",\n label: \"Audio\",\n },\n {\n value: \"application/pdf\",\n label: \"PDF\",\n },\n ],\n defaultValue: \"\",\n },\n listType: {\n type: \"choice\",\n options: [\"text\", \"picture\", \"picture-card\", \"picture-circle\"],\n defaultValueHint: \"text\",\n },\n dragAndDropFiles: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"You can drag files to a specific area, to upload. Alternatively, you can also upload by selecting.\",\n },\n multiple: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: false,\n description: \"Upload several files at once in modern browsers\",\n },\n files: {\n type: \"object\",\n displayName: \"Files\",\n defaultValue: [],\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Upload\",\n },\n },\n },\n ],\n },\n maxCount: {\n type: \"number\",\n displayName: \"Limit of files\",\n advanced: true,\n },\n onFilesChange: {\n type: \"eventHandler\",\n displayName: \"On file uploaded\",\n argTypes: [\n {\n name: \"files\",\n type: \"array\",\n },\n ],\n },\n showUploadList: {\n type: \"boolean\",\n displayName: \"List files\",\n defaultValue: true,\n },\n },\n states: {\n files: {\n type: \"writable\",\n valueProp: \"files\",\n variableType: \"array\",\n onChangeProp: \"onFilesChange\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerUpload\",\n importName: \"UploadWrapper\",\n });\n}\n"],"names":["_a"],"mappings":"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"}
1
+ {"version":3,"file":"registerUpload.esm.js","sources":["../src/registerUpload.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { Modal, Upload } from \"antd\";\nimport type {\n UploadChangeParam,\n UploadFile as AntdUploadFile,\n UploadProps,\n} from \"antd/es/upload\";\nimport React, { useMemo, useRef, useState } from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\ninterface UploadFile {\n uid: string;\n name: string;\n size?: number;\n type?: string;\n lastModified?: number;\n contents?: string;\n status: AntdUploadFile[\"status\"];\n}\n\ninterface ExtendedUploadProps<T = any> extends UploadProps<T> {\n files?: Array<UploadFile>;\n onFilesChange?: (values: Array<UploadFile>) => void;\n dragAndDropFiles: boolean;\n}\n\nfunction getThumbUrl(file?: UploadFile): string | undefined {\n if (!file?.type?.startsWith(\"image\")) return undefined;\n return `data:${file.type};base64,${file.contents}`;\n}\n\nexport function UploadWrapper(props: ExtendedUploadProps) {\n const { files, dragAndDropFiles, onFilesChange, maxCount, ...rest } = props;\n const filesRef = useRef<Array<UploadFile>>(); // if multiple = true, it facilitates adding multiple files\n\n filesRef.current = files;\n\n const [previewFileId, setPreviewFileId] = useState<string>();\n\n const handleChange = (info: UploadChangeParam) => {\n const { file } = info;\n\n if (file.status === \"removed\") {\n return;\n }\n\n const metadata = {\n uid: file.uid,\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n };\n\n onFilesChange?.([\n ...(filesRef.current ?? []).slice(0, (maxCount || Infinity) - 1),\n {\n ...metadata,\n status: \"uploading\",\n },\n ]);\n\n const reader = new FileReader();\n\n reader.onload = () => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) return;\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n contents: (reader.result as string).replace(\n /^data:[^;]+;base64,/,\n \"\"\n ),\n status: \"done\",\n },\n ]);\n };\n\n reader.onerror = (error) => {\n if (!filesRef.current?.map((f) => f.uid).includes(metadata.uid)) return;\n onFilesChange?.([\n ...(filesRef.current ?? []).filter((f) => f.uid !== file.uid),\n {\n ...metadata,\n status: \"error\",\n },\n ]);\n };\n\n reader.readAsDataURL(info.file as any);\n };\n\n const handleRemove = (file: UploadFile) => {\n onFilesChange?.((files ?? []).filter((f) => f.uid !== file.uid));\n };\n\n const handlePreview = async (file: AntdUploadFile) => {\n setPreviewFileId(files?.filter((f) => file.uid === f.uid)[0]?.uid);\n };\n\n const handleCancel = () => setPreviewFileId(undefined);\n\n const previewFile = useMemo(\n () => files?.filter((f) => previewFileId === f.uid)[0],\n [files, previewFileId]\n );\n\n const UploadComponent = useMemo(\n () => (dragAndDropFiles ? Upload.Dragger : Upload),\n [dragAndDropFiles]\n );\n\n return (\n <>\n <UploadComponent\n {...rest}\n fileList={files?.map((f) => ({\n ...f,\n thumbUrl: getThumbUrl(f),\n }))}\n onPreview={handlePreview}\n beforeUpload={() => {\n return false;\n }}\n onChange={(info) => {\n handleChange(info);\n }}\n onRemove={(file) => {\n handleRemove(file as UploadFile);\n }}\n />\n <Modal\n open={Boolean(previewFile)}\n title={previewFile?.name}\n footer={null}\n onCancel={handleCancel}\n >\n <img\n alt=\"example\"\n style={{ width: \"100%\" }}\n src={getThumbUrl(previewFile)}\n />\n </Modal>\n </>\n );\n}\n\nUploadWrapper.__plasmicFormFieldMeta = {\n valueProp: \"files\",\n onChangeProp: \"onFilesChange\",\n};\n\nexport function registerUpload(loader?: Registerable) {\n registerComponentHelper(loader, UploadWrapper, {\n name: \"plasmic-antd5-upload\",\n displayName: \"Upload\",\n props: {\n accept: {\n type: \"choice\",\n displayName: \"Allowed types\",\n options: [\n {\n value: \"\",\n label: \"Any kind of file\",\n },\n {\n value: \"image/*\",\n label: \"Image\",\n },\n {\n value: \"video/*\",\n label: \"Video\",\n },\n {\n value: \"audio/*\",\n label: \"Audio\",\n },\n {\n value: \"application/pdf\",\n label: \"PDF\",\n },\n ],\n defaultValue: \"\",\n },\n listType: {\n type: \"choice\",\n options: [\"text\", \"picture\", \"picture-card\", \"picture-circle\"],\n defaultValueHint: \"text\",\n },\n dragAndDropFiles: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"You can drag files to a specific area, to upload. Alternatively, you can also upload by selecting.\",\n },\n multiple: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: false,\n description: \"Upload several files at once in modern browsers\",\n },\n files: {\n type: \"object\",\n displayName: \"Files\",\n defaultValue: [],\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Upload\",\n },\n },\n },\n ],\n },\n maxCount: {\n type: \"number\",\n displayName: \"Limit of files\",\n advanced: true,\n },\n onFilesChange: {\n type: \"eventHandler\",\n displayName: \"On file uploaded\",\n argTypes: [\n {\n name: \"files\",\n type: \"array\",\n },\n ],\n },\n showUploadList: {\n type: \"boolean\",\n displayName: \"List files\",\n defaultValue: true,\n },\n },\n states: {\n files: {\n type: \"writable\",\n valueProp: \"files\",\n variableType: \"array\",\n onChangeProp: \"onFilesChange\",\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerUpload\",\n importName: \"UploadWrapper\",\n });\n}\n"],"names":["_a"],"mappings":"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"}
@@ -1,143 +0,0 @@
1
- import { DataOp, TableSchema } from "@plasmicapp/data-sources";
2
- import { CodeComponentMode, ComponentHelpers } from "@plasmicapp/host";
3
- import { CanvasComponentProps } from "@plasmicapp/host/registerComponent";
4
- import { Form } from "antd";
5
- import type { FormInstance, FormProps } from "antd/es/form";
6
- import type { FormItemProps } from "antd/es/form/FormItem";
7
- import type { FormListOperation, FormListProps } from "antd/es/form/FormList";
8
- import React from "react";
9
- import { Registerable } from "./utils";
10
- export interface InternalFormItemProps extends Omit<FormItemProps, "rules"> {
11
- rules?: PlasmicRule[];
12
- noLabel?: boolean;
13
- customizeProps?: (fieldData: CuratedFieldData, props: InternalFormItemProps) => FormItemProps;
14
- setControlContextData?: (data: FormItemControlContextData) => void;
15
- }
16
- export declare enum InputType {
17
- Text = "Text",
18
- TextArea = "Text Area",
19
- Password = "Password",
20
- Number = "Number",
21
- Select = "Select",
22
- Option = "Option",
23
- OptionGroup = "Option Group",
24
- Radio = "Radio",
25
- RadioGroup = "Radio Group",
26
- Checkbox = "Checkbox",
27
- DatePicker = "DatePicker",
28
- Unknown = "Unkown"
29
- }
30
- export interface SimplifiedFormItemsProp extends InternalFormItemProps {
31
- inputType: InputType;
32
- options?: {
33
- label: string;
34
- value: string;
35
- }[];
36
- optionType?: "default" | "button";
37
- showTime?: boolean;
38
- key?: string;
39
- }
40
- interface CommonFormControlContextData {
41
- formInstance?: FormInstance<any>;
42
- layout?: FormLayoutContextValue;
43
- internalFieldCtx?: InternalFieldCtx;
44
- }
45
- export interface FormWrapperControlContextData extends CommonFormControlContextData {
46
- formInstance?: FormInstance<any>;
47
- schema?: TableSchema;
48
- minimalFullLengthFields?: Partial<SimplifiedFormItemsProp>[];
49
- mergedFields?: SimplifiedFormItemsProp[];
50
- }
51
- export declare enum FormType {
52
- NewEntry = 0,
53
- UpdateEntry = 1
54
- }
55
- export interface FormWrapperProps extends FormProps, CanvasComponentProps<FormWrapperControlContextData> {
56
- /**
57
- * https://ant.design/components/form#setfieldsvalue-do-not-trigger-onfieldschange-or-onvalueschange
58
- * Because setFieldsValue doesn't trigger onValuesChange, we need to create our own onChange function.
59
- * This will allow us to trigger the onChange function and keep the value state updated in canvas.
60
- * We also don't invoke onValuesChange to avoid changing the standard behavior, since users may have
61
- * overridden this function in their codebase
62
- **/
63
- extendedOnValuesChange?: (values: Parameters<NonNullable<FormProps["onValuesChange"]>>[1]) => void;
64
- formItems?: SimplifiedFormItemsProp[];
65
- dataFormItems?: SimplifiedFormItemsProp[];
66
- mode?: CodeComponentMode;
67
- formType?: "new-entry" | "update-entry";
68
- submitSlot?: React.ReactNode;
69
- data?: DataOp;
70
- }
71
- interface FieldEntity {
72
- fullPath: (string | number)[];
73
- name: string | number | undefined;
74
- preserve: boolean;
75
- }
76
- /**
77
- * - registeredFields: current mounted form fields
78
- * - preservedRegisteredFields: all fields that were registered and were marked as NOT preserve
79
- */
80
- interface InternalFieldCtx {
81
- registeredFields: FieldEntity[];
82
- preservedRegisteredFields: FieldEntity[];
83
- }
84
- interface FormLayoutContextValue {
85
- layout: React.ComponentProps<typeof Form>["layout"];
86
- labelSpan?: number;
87
- }
88
- export interface FormRefActions extends Pick<FormInstance<any>, "setFieldsValue" | "resetFields" | "setFieldValue" | "validateFields"> {
89
- clearFields: () => void;
90
- formInstance: FormInstance<any>;
91
- }
92
- export declare function deriveFormFieldConfigs(dataFormItems: SimplifiedFormItemsProp[], schema: TableSchema, data: any): {
93
- mergedFields: SimplifiedFormItemsProp[];
94
- minimalFullLengthFields: Partial<SimplifiedFormItemsProp>[];
95
- };
96
- export declare const FormWrapper: React.ForwardRefExoticComponent<FormWrapperProps & React.RefAttributes<FormRefActions>>;
97
- export declare const formHelpers: ComponentHelpers<FormWrapperProps>;
98
- export declare const formComponentName = "plasmic-antd5-form";
99
- export declare const formTypeDescription = "\n You can create form with two different behaviors:\n \n\n\n 1. Create a new entry: The form will be created empty and it will create a new row when submitted.\n 2. Update an entry: The form will be pre-filled with the row values and it will update the table entry when submitted.\n \n\n\n For both options, you can customize later.\n";
100
- export declare function registerForm(loader?: Registerable): void;
101
- interface FormItemControlContextData extends CommonFormControlContextData {
102
- parentFormItemPath: (string | number)[];
103
- status?: ReturnType<typeof Form.Item.useStatus>;
104
- }
105
- interface CuratedFieldData {
106
- status: string | undefined;
107
- }
108
- export interface InternalFormItemProps extends Omit<FormItemProps, "rules" | "name">, CanvasComponentProps<FormItemControlContextData> {
109
- rules?: PlasmicRule[];
110
- description?: React.ReactNode;
111
- noLabel?: boolean;
112
- hideValidationMessage?: boolean;
113
- customizeProps?: (fieldData: CuratedFieldData, props: InternalFormItemProps) => FormItemProps;
114
- alignLabellessWithControls?: boolean;
115
- name?: string;
116
- }
117
- interface PlasmicRule {
118
- ruleType: "enum" | "len" | "max" | "min" | "regex" | "required" | "whitespace" | "advanced";
119
- length?: number;
120
- pattern?: string;
121
- custom?: (...args: any[]) => any;
122
- options?: {
123
- value: any;
124
- }[];
125
- message?: string;
126
- }
127
- export declare function useFormInstanceMaybe(): FormInstance<any> | undefined;
128
- export declare function FormItemWrapper(props: InternalFormItemProps): React.JSX.Element;
129
- export declare const formItemComponentName = "plasmic-antd5-form-item";
130
- export declare function registerFormItem(loader?: Registerable): void;
131
- export interface FormGroupProps {
132
- name: string;
133
- children: React.ReactNode;
134
- }
135
- export declare function FormGroup(props: FormGroupProps): React.JSX.Element;
136
- export declare const formGroupComponentName = "plasmic-antd5-form-group";
137
- export declare function registerFormGroup(loader?: Registerable): void;
138
- export declare const FormListWrapper: React.ForwardRefExoticComponent<Omit<FormListProps, "children"> & {
139
- children: React.ReactNode;
140
- } & React.RefAttributes<FormListOperation>>;
141
- export declare const formListComponentName = "plasmic-antd5-form-list";
142
- export declare function registerFormList(loader?: Registerable): void;
143
- export {};
@@ -1,143 +0,0 @@
1
- import { DataOp, TableSchema } from "@plasmicapp/data-sources";
2
- import { CodeComponentMode, ComponentHelpers } from "@plasmicapp/host";
3
- import { CanvasComponentProps } from "@plasmicapp/host/registerComponent";
4
- import { Form } from "antd";
5
- import type { FormInstance, FormProps } from "antd/es/form";
6
- import type { FormItemProps } from "antd/es/form/FormItem";
7
- import type { FormListOperation, FormListProps } from "antd/es/form/FormList";
8
- import React from "react";
9
- import { Registerable } from "./utils";
10
- export interface InternalFormItemProps extends Omit<FormItemProps, "rules"> {
11
- rules?: PlasmicRule[];
12
- noLabel?: boolean;
13
- customizeProps?: (fieldData: CuratedFieldData, props: InternalFormItemProps) => FormItemProps;
14
- setControlContextData?: (data: FormItemControlContextData) => void;
15
- }
16
- export declare enum InputType {
17
- Text = "Text",
18
- TextArea = "Text Area",
19
- Password = "Password",
20
- Number = "Number",
21
- Select = "Select",
22
- Option = "Option",
23
- OptionGroup = "Option Group",
24
- Radio = "Radio",
25
- RadioGroup = "Radio Group",
26
- Checkbox = "Checkbox",
27
- DatePicker = "DatePicker",
28
- Unknown = "Unkown"
29
- }
30
- export interface SimplifiedFormItemsProp extends InternalFormItemProps {
31
- inputType: InputType;
32
- options?: {
33
- label: string;
34
- value: string;
35
- }[];
36
- optionType?: "default" | "button";
37
- showTime?: boolean;
38
- key?: string;
39
- }
40
- interface CommonFormControlContextData {
41
- formInstance?: FormInstance<any>;
42
- layout?: FormLayoutContextValue;
43
- internalFieldCtx?: InternalFieldCtx;
44
- }
45
- export interface FormWrapperControlContextData extends CommonFormControlContextData {
46
- formInstance?: FormInstance<any>;
47
- schema?: TableSchema;
48
- minimalFullLengthFields?: Partial<SimplifiedFormItemsProp>[];
49
- mergedFields?: SimplifiedFormItemsProp[];
50
- }
51
- export declare enum FormType {
52
- NewEntry = 0,
53
- UpdateEntry = 1
54
- }
55
- export interface FormWrapperProps extends FormProps, CanvasComponentProps<FormWrapperControlContextData> {
56
- /**
57
- * https://ant.design/components/form#setfieldsvalue-do-not-trigger-onfieldschange-or-onvalueschange
58
- * Because setFieldsValue doesn't trigger onValuesChange, we need to create our own onChange function.
59
- * This will allow us to trigger the onChange function and keep the value state updated in canvas.
60
- * We also don't invoke onValuesChange to avoid changing the standard behavior, since users may have
61
- * overridden this function in their codebase
62
- **/
63
- extendedOnValuesChange?: (values: Parameters<NonNullable<FormProps["onValuesChange"]>>[1]) => void;
64
- formItems?: SimplifiedFormItemsProp[];
65
- dataFormItems?: SimplifiedFormItemsProp[];
66
- mode?: CodeComponentMode;
67
- formType?: "new-entry" | "update-entry";
68
- submitSlot?: React.ReactNode;
69
- data?: DataOp;
70
- }
71
- interface FieldEntity {
72
- fullPath: (string | number)[];
73
- name: string | number | undefined;
74
- preserve: boolean;
75
- }
76
- /**
77
- * - registeredFields: current mounted form fields
78
- * - preservedRegisteredFields: all fields that were registered and were marked as NOT preserve
79
- */
80
- interface InternalFieldCtx {
81
- registeredFields: FieldEntity[];
82
- preservedRegisteredFields: FieldEntity[];
83
- }
84
- interface FormLayoutContextValue {
85
- layout: React.ComponentProps<typeof Form>["layout"];
86
- labelSpan?: number;
87
- }
88
- export interface FormRefActions extends Pick<FormInstance<any>, "setFieldsValue" | "resetFields" | "setFieldValue" | "validateFields"> {
89
- clearFields: () => void;
90
- formInstance: FormInstance<any>;
91
- }
92
- export declare function deriveFormFieldConfigs(dataFormItems: SimplifiedFormItemsProp[], schema: TableSchema, data: any): {
93
- mergedFields: SimplifiedFormItemsProp[];
94
- minimalFullLengthFields: Partial<SimplifiedFormItemsProp>[];
95
- };
96
- export declare const FormWrapper: React.ForwardRefExoticComponent<FormWrapperProps & React.RefAttributes<FormRefActions>>;
97
- export declare const formHelpers: ComponentHelpers<FormWrapperProps>;
98
- export declare const formComponentName = "plasmic-antd5-form";
99
- export declare const formTypeDescription = "\n You can create form with two different behaviors:\n \n\n\n 1. Create a new entry: The form will be created empty and it will create a new row when submitted.\n 2. Update an entry: The form will be pre-filled with the row values and it will update the table entry when submitted.\n \n\n\n For both options, you can customize later.\n";
100
- export declare function registerForm(loader?: Registerable): void;
101
- interface FormItemControlContextData extends CommonFormControlContextData {
102
- parentFormItemPath: (string | number)[];
103
- status?: ReturnType<typeof Form.Item.useStatus>;
104
- }
105
- interface CuratedFieldData {
106
- status: string | undefined;
107
- }
108
- export interface InternalFormItemProps extends Omit<FormItemProps, "rules" | "name">, CanvasComponentProps<FormItemControlContextData> {
109
- rules?: PlasmicRule[];
110
- description?: React.ReactNode;
111
- noLabel?: boolean;
112
- hideValidationMessage?: boolean;
113
- customizeProps?: (fieldData: CuratedFieldData, props: InternalFormItemProps) => FormItemProps;
114
- alignLabellessWithControls?: boolean;
115
- name?: string;
116
- }
117
- interface PlasmicRule {
118
- ruleType: "enum" | "len" | "max" | "min" | "regex" | "required" | "whitespace" | "advanced";
119
- length?: number;
120
- pattern?: string;
121
- custom?: (...args: any[]) => any;
122
- options?: {
123
- value: any;
124
- }[];
125
- message?: string;
126
- }
127
- export declare function useFormInstanceMaybe(): FormInstance<any> | undefined;
128
- export declare function FormItemWrapper(props: InternalFormItemProps): React.JSX.Element;
129
- export declare const formItemComponentName = "plasmic-antd5-form-item";
130
- export declare function registerFormItem(loader?: Registerable): void;
131
- export interface FormGroupProps {
132
- name: string;
133
- children: React.ReactNode;
134
- }
135
- export declare function FormGroup(props: FormGroupProps): React.JSX.Element;
136
- export declare const formGroupComponentName = "plasmic-antd5-form-group";
137
- export declare function registerFormGroup(loader?: Registerable): void;
138
- export declare const FormListWrapper: React.ForwardRefExoticComponent<Omit<FormListProps, "children"> & {
139
- children: React.ReactNode;
140
- } & React.RefAttributes<FormListOperation>>;
141
- export declare const formListComponentName = "plasmic-antd5-form-list";
142
- export declare function registerFormList(loader?: Registerable): void;
143
- export {};