@skopon-cool/form-sdk 0.4.9 → 0.5.1

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 (47) hide show
  1. package/README.md +26 -1
  2. package/dist/adapter/a2uiAdapter.d.ts.map +1 -1
  3. package/dist/adapter/formOptions.d.ts +6 -0
  4. package/dist/adapter/formOptions.d.ts.map +1 -0
  5. package/dist/adapter/formSchema.d.ts.map +1 -1
  6. package/dist/adapter/formWeb.d.ts +14 -0
  7. package/dist/adapter/formWeb.d.ts.map +1 -0
  8. package/dist/blocks/registry.d.ts.map +1 -1
  9. package/dist/blocks/web/adapter.d.ts +8 -0
  10. package/dist/blocks/web/adapter.d.ts.map +1 -0
  11. package/dist/blocks/web/catalog.d.ts +9 -0
  12. package/dist/blocks/web/catalog.d.ts.map +1 -0
  13. package/dist/blocks/web/index.d.ts +3 -0
  14. package/dist/blocks/web/index.d.ts.map +1 -0
  15. package/dist/catalog/a2uiCustomCatalog.d.ts.map +1 -1
  16. package/dist/client/authStorage.d.ts +1 -1
  17. package/dist/client/authStorage.d.ts.map +1 -1
  18. package/dist/form-sdk.css +1 -1
  19. package/dist/index.d.ts +2 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +1408 -1220
  22. package/dist/submit/intersectPayloadBlocksWithForm.d.ts.map +1 -1
  23. package/dist/types/index.d.ts +7 -2
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/package.json +1 -1
  26. package/src/adapter/a2uiAdapter.test.ts +96 -0
  27. package/src/adapter/a2uiAdapter.ts +3 -12
  28. package/src/adapter/formOptions.test.ts +60 -0
  29. package/src/adapter/formOptions.ts +36 -0
  30. package/src/adapter/formSchema.test.ts +68 -0
  31. package/src/adapter/formSchema.ts +19 -6
  32. package/src/adapter/formWeb.test.ts +38 -0
  33. package/src/adapter/formWeb.ts +41 -0
  34. package/src/blocks/registry.ts +6 -1
  35. package/src/blocks/web/adapter.ts +36 -0
  36. package/src/blocks/web/catalog.test.tsx +95 -0
  37. package/src/blocks/web/catalog.tsx +158 -0
  38. package/src/blocks/web/index.ts +11 -0
  39. package/src/catalog/a2uiCustomCatalog.tsx +6 -10
  40. package/src/catalog/invalidStaticOptions.test.tsx +62 -0
  41. package/src/client/authStorage.ts +1 -1
  42. package/src/index.ts +9 -0
  43. package/src/styles/index.css +87 -0
  44. package/src/submit/intersectPayloadBlocksWithForm.ts +14 -4
  45. package/src/submit/submit.test.ts +54 -2
  46. package/src/submit/validateFormSubmit.ts +2 -2
  47. package/src/types/index.ts +12 -2
@@ -16,6 +16,7 @@ export type A2uiComponentName =
16
16
  | 'DateTimeInput'
17
17
  | 'FileUpload'
18
18
  | 'SkoponMedia'
19
+ | 'SkoponWeb'
19
20
  | 'SkoponSelect'
20
21
  | 'SkoponResumeSelect'
21
22
  | 'SkoponCaseSelect'
@@ -62,6 +63,7 @@ export type FormBlockType =
62
63
  | 'image'
63
64
  | 'video'
64
65
  | 'audio'
66
+ | 'web'
65
67
 
66
68
  export type FormMediaSize = 'huge' | 'large' | 'medium' | 'small' | 'icon'
67
69
 
@@ -131,6 +133,10 @@ export interface FormBlock {
131
133
  mediaUrl?: string
132
134
  mediaUrls?: string[]
133
135
  mediaSize?: FormMediaSize
136
+ /** 网页展示块:iframe 地址,仅支持 HTTP(S) 或同源相对地址 */
137
+ webUrl?: string
138
+ /** 网页展示块:行内 iframe 高度(px) */
139
+ webHeight?: number
134
140
  fileAcceptTypes?: string[]
135
141
  fileAcceptExtensions?: string[]
136
142
  filePlaceholderIcon?: FormFilePlaceholderIcon
@@ -173,16 +179,20 @@ export function isMediaBlockType(type: FormBlockType): boolean {
173
179
  return type === 'image' || type === 'video' || type === 'audio'
174
180
  }
175
181
 
182
+ export function isWebBlockType(type: FormBlockType): boolean {
183
+ return type === 'web'
184
+ }
185
+
176
186
  export function isLayoutBlockType(type: FormBlockType): boolean {
177
187
  return type === 'heading' || type === 'paragraph'
178
188
  }
179
189
 
180
190
  export function isInputBlockType(type: FormBlockType): boolean {
181
- return !isLayoutBlockType(type) && !isMediaBlockType(type)
191
+ return !isLayoutBlockType(type) && !isMediaBlockType(type) && !isWebBlockType(type)
182
192
  }
183
193
 
184
194
  export function isDisplayBlockType(type: FormBlockType): boolean {
185
- return isLayoutBlockType(type) || isMediaBlockType(type)
195
+ return isLayoutBlockType(type) || isMediaBlockType(type) || isWebBlockType(type)
186
196
  }
187
197
 
188
198
  export function isOptionsBlockType(type: FormBlockType): boolean {