@ticatec/uniface-element 5.0.4 → 5.1.0

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 (411) hide show
  1. package/README.md +14 -13
  2. package/README_CN.md +17 -15
  3. package/dist/app_layout/ColumnsLayout.svelte +14 -10
  4. package/dist/app_layout/ColumnsLayout.svelte.d.ts +8 -4
  5. package/dist/app_layout/README.md +14 -12
  6. package/dist/app_layout/README_CN.md +14 -12
  7. package/dist/app_layout/RowsLayout.svelte +14 -10
  8. package/dist/app_layout/RowsLayout.svelte.d.ts +8 -4
  9. package/dist/base-calendar/CalendarBase.svelte +4 -10
  10. package/dist/base-calendar/CalendarBase.svelte.d.ts +0 -4
  11. package/dist/base-calendar/DateContext.d.ts +1 -0
  12. package/dist/base-calendar/DateContext.js +5 -8
  13. package/dist/base-calendar/MonthlyCalendar.svelte +11 -3
  14. package/dist/base-calendar/MonthlyCalendar.svelte.d.ts +1 -2
  15. package/dist/base-calendar/YearPickupPanel.svelte +5 -5
  16. package/dist/base-calendar/YearPickupPanel.svelte.d.ts +2 -2
  17. package/dist/base-calendar/dateUtils.js +9 -5
  18. package/dist/composite/pagination_panel/PaginationPanel.svelte +19 -13
  19. package/dist/composite/pagination_panel/PaginationPanel.svelte.d.ts +8 -5
  20. package/dist/composite/pagination_panel/README.md +3 -1
  21. package/dist/composite/pagination_panel/README_CN.md +3 -1
  22. package/dist/composite/transfer/Transfer.svelte +30 -16
  23. package/dist/composite/transfer/Transfer.svelte.d.ts +11 -4
  24. package/dist/composite/transfer/index.d.ts +2 -2
  25. package/dist/data_display/accordion/Accordion.svelte +10 -9
  26. package/dist/data_display/accordion/Accordion.svelte.d.ts +2 -1
  27. package/dist/data_display/accordion/AccordionItemView.svelte +6 -6
  28. package/dist/data_display/accordion/AccordionItemView.svelte.d.ts +1 -1
  29. package/dist/data_display/accordion/README.md +6 -4
  30. package/dist/data_display/accordion/README_CN.md +6 -4
  31. package/dist/data_display/card/Card.svelte +13 -11
  32. package/dist/data_display/card/Card.svelte.d.ts +5 -3
  33. package/dist/data_display/card/CardAction.d.ts +7 -2
  34. package/dist/data_display/card/CommonCardActionBar.svelte +2 -2
  35. package/dist/data_display/card/README.md +11 -9
  36. package/dist/data_display/card/README_CN.md +11 -9
  37. package/dist/data_display/card/index.d.ts +2 -1
  38. package/dist/data_display/concise_data_table/Column.d.ts +0 -6
  39. package/dist/data_display/concise_data_table/ConciseListTable.svelte +6 -5
  40. package/dist/data_display/concise_data_table/ConciseListTable.svelte.d.ts +4 -3
  41. package/dist/data_display/concise_data_table/DataCell.svelte +1 -1
  42. package/dist/data_display/concise_data_table/README.md +7 -5
  43. package/dist/data_display/concise_data_table/README_CN.md +7 -5
  44. package/dist/data_display/concise_data_table/TableOptions.d.ts +1 -1
  45. package/dist/data_display/list_box/ListBox.svelte +11 -15
  46. package/dist/data_display/list_box/ListBox.svelte.d.ts +6 -9
  47. package/dist/data_display/list_box/README.md +10 -8
  48. package/dist/data_display/list_box/README_CN.md +10 -8
  49. package/dist/data_display/list_box/index.d.ts +2 -3
  50. package/dist/data_display/tree_view/README.md +4 -2
  51. package/dist/data_display/tree_view/README_CN.md +4 -2
  52. package/dist/data_display/tree_view/TreeNodeView.svelte +15 -16
  53. package/dist/data_display/tree_view/TreeNodeView.svelte.d.ts +4 -5
  54. package/dist/data_display/tree_view/TreeView.svelte +27 -19
  55. package/dist/data_display/tree_view/TreeView.svelte.d.ts +12 -4
  56. package/dist/data_display/tree_view/index.d.ts +2 -3
  57. package/dist/data_table/DataTable.svelte +46 -15
  58. package/dist/data_table/DataTable.svelte.d.ts +9 -1
  59. package/dist/data_table/README.md +10 -8
  60. package/dist/data_table/README_CN.md +10 -8
  61. package/dist/data_table/UniDataTable.d.ts +4 -4
  62. package/dist/data_table/UniDataTable.js +2 -2
  63. package/dist/data_table/index.d.ts +5 -5
  64. package/dist/data_table/lib/CellAction.d.ts +9 -0
  65. package/dist/data_table/lib/CommonHeaderCell.d.ts +2 -2
  66. package/dist/data_table/lib/CompareFn.d.ts +3 -0
  67. package/dist/data_table/lib/DataColumn.d.ts +7 -12
  68. package/dist/data_table/lib/FormatCellFn.d.ts +2 -0
  69. package/dist/data_table/lib/HrefLink.d.ts +3 -3
  70. package/dist/data_table/lib/IndicatorColumn.d.ts +2 -1
  71. package/dist/data_table/lib/RowAction.d.ts +14 -20
  72. package/dist/data_table/lib/virtualWindow.d.ts +37 -0
  73. package/dist/data_table/lib/virtualWindow.js +41 -0
  74. package/dist/data_table/parts/ActionCell.svelte +3 -3
  75. package/dist/data_table/parts/ActionCell.svelte.d.ts +1 -1
  76. package/dist/data_table/parts/ActionsPanel.svelte +17 -2
  77. package/dist/data_table/parts/ActionsPanel.svelte.d.ts +3 -0
  78. package/dist/data_table/parts/ActionsRow.svelte +7 -5
  79. package/dist/data_table/parts/ContentPanel.svelte +40 -15
  80. package/dist/data_table/parts/ContentPanel.svelte.d.ts +11 -6
  81. package/dist/data_table/parts/FixedColumnsPanel.svelte +32 -16
  82. package/dist/data_table/parts/FixedColumnsPanel.svelte.d.ts +8 -5
  83. package/dist/data_table/parts/FixedHeaderPanel.svelte +14 -15
  84. package/dist/data_table/parts/FixedHeaderPanel.svelte.d.ts +4 -4
  85. package/dist/data_table/parts/FixedRow.svelte +9 -9
  86. package/dist/data_table/parts/FixedRow.svelte.d.ts +3 -3
  87. package/dist/data_table/parts/HrefCell.svelte +1 -1
  88. package/dist/data_table/parts/PopupMenu.svelte +3 -3
  89. package/dist/data_table/parts/PopupMenu.svelte.d.ts +1 -1
  90. package/dist/data_table/parts/TableHeaderPanel.svelte +14 -14
  91. package/dist/data_table/parts/TableHeaderPanel.svelte.d.ts +4 -4
  92. package/dist/data_table/parts/TextCell.svelte +1 -1
  93. package/dist/feedback/progress-bar/ProgressBar.svelte +13 -10
  94. package/dist/feedback/progress-bar/ProgressBar.svelte.d.ts +6 -3
  95. package/dist/form/FormEditor.svelte +2 -2
  96. package/dist/form/FormEditor.svelte.d.ts +1 -1
  97. package/dist/form/attachment_files/AttachmentEditor.svelte +407 -92
  98. package/dist/form/attachment_files/AttachmentEditor.svelte.d.ts +71 -15
  99. package/dist/form/attachment_files/AttachmentFile.d.ts +35 -8
  100. package/dist/form/attachment_files/AttachmentFile.js +54 -29
  101. package/dist/form/attachment_files/AttachmentListItem.svelte +208 -0
  102. package/dist/form/attachment_files/AttachmentListItem.svelte.d.ts +25 -0
  103. package/dist/form/attachment_files/AttachmentTile.svelte +296 -0
  104. package/dist/form/attachment_files/AttachmentTile.svelte.d.ts +25 -0
  105. package/dist/form/attachment_files/FileUpload.d.ts +2 -2
  106. package/dist/form/attachment_files/README.md +71 -452
  107. package/dist/form/attachment_files/README_CN.md +68 -449
  108. package/dist/form/attachment_files/UploadTask.d.ts +27 -0
  109. package/dist/form/attachment_files/index.d.ts +8 -5
  110. package/dist/form/attachment_files/index.js +4 -2
  111. package/dist/form/cascade_options_select/CascadeOptionSelect.svelte +16 -15
  112. package/dist/form/cascade_options_select/CascadeOptionSelect.svelte.d.ts +6 -5
  113. package/dist/form/cascade_options_select/IsLeaf.d.ts +4 -0
  114. package/dist/form/cascade_options_select/IsLeaf.js +1 -0
  115. package/dist/form/cascade_options_select/OptionsBox.svelte +4 -4
  116. package/dist/form/cascade_options_select/OptionsBox.svelte.d.ts +2 -2
  117. package/dist/form/color_picker/ColorPicker.svelte +3 -3
  118. package/dist/form/color_picker/ColorPickerPanel.svelte +1 -1
  119. package/dist/form/common_editor/BasePicker.svelte +7 -7
  120. package/dist/form/common_editor/BasePicker.svelte.d.ts +3 -3
  121. package/dist/form/common_editor/CommonEditor.svelte +8 -8
  122. package/dist/form/common_editor/CommonEditor.svelte.d.ts +2 -2
  123. package/dist/form/common_editor/CommonPicker.svelte +43 -31
  124. package/dist/form/common_editor/CommonPicker.svelte.d.ts +6 -6
  125. package/dist/form/common_editor/CommonPickerProps.d.ts +2 -2
  126. package/dist/form/common_editor/CommonPopupEditor.svelte +13 -13
  127. package/dist/form/common_editor/CommonPopupEditor.svelte.d.ts +3 -4
  128. package/dist/form/common_editor/NumberInput.svelte +10 -2
  129. package/dist/form/common_editor/NumberInput.svelte.d.ts +1 -1
  130. package/dist/form/common_range_editor/CommonRangeEditor.svelte +17 -17
  131. package/dist/form/common_range_editor/CommonRangeEditor.svelte.d.ts +5 -5
  132. package/dist/form/date_picker/DatePicker.svelte +5 -5
  133. package/dist/form/date_picker/DatePicker.svelte.d.ts +1 -1
  134. package/dist/form/date_picker/DateTimePicker.svelte +16 -6
  135. package/dist/form/date_picker/README.md +7 -5
  136. package/dist/form/date_picker/README_CN.md +7 -5
  137. package/dist/form/date_picker/ScrollBar.svelte +21 -20
  138. package/dist/form/date_picker/ScrollBar.svelte.d.ts +3 -3
  139. package/dist/form/date_range/DateRangeEditor.svelte +6 -6
  140. package/dist/form/events.d.ts +70 -0
  141. package/dist/form/events.js +6 -0
  142. package/dist/form/group_box/group-check-box/GroupCheckBox.svelte +9 -7
  143. package/dist/form/group_box/group-check-box/GroupCheckBox.svelte.d.ts +4 -3
  144. package/dist/form/group_box/group-check-box/README.md +5 -3
  145. package/dist/form/group_box/group-check-box/README_CN.md +5 -3
  146. package/dist/form/group_box/group-radio-box/GroupRadioBox.svelte +9 -7
  147. package/dist/form/group_box/group-radio-box/GroupRadioBox.svelte.d.ts +4 -3
  148. package/dist/form/group_box/group-radio-box/README.md +3 -1
  149. package/dist/form/group_box/group-radio-box/README_CN.md +3 -1
  150. package/dist/form/image_editor/ImageEditor.svelte +118 -0
  151. package/dist/form/image_editor/ImageEditor.svelte.d.ts +52 -0
  152. package/dist/form/image_editor/ImageFile.d.ts +11 -0
  153. package/dist/form/image_editor/ImageFile.js +1 -0
  154. package/dist/form/{image-files → image_editor}/ImagePreview.svelte +10 -2
  155. package/dist/form/image_editor/README.md +89 -0
  156. package/dist/form/image_editor/README_CN.md +89 -0
  157. package/dist/form/image_editor/index.d.ts +11 -0
  158. package/dist/form/image_editor/index.js +4 -0
  159. package/dist/form/input_options_select/InputOptionsSelect.svelte +11 -8
  160. package/dist/form/input_options_select/InputOptionsSelect.svelte.d.ts +2 -1
  161. package/dist/form/input_options_select/README.md +44 -218
  162. package/dist/form/input_options_select/README_CN.md +38 -211
  163. package/dist/form/lookup_editor/LookupEditor.svelte +7 -10
  164. package/dist/form/lookup_editor/LookupEditor.svelte.d.ts +2 -1
  165. package/dist/form/memo_editor/MemoEditor.svelte +2 -2
  166. package/dist/form/memo_editor/MemoEditor.svelte.d.ts +1 -1
  167. package/dist/form/number_editor/NumberEditor.svelte +13 -1
  168. package/dist/form/number_editor/NumberEditor.svelte.d.ts +1 -1
  169. package/dist/form/number_range/NumberRange.svelte +5 -5
  170. package/dist/form/options_multi_select/OptionsMultiSelect.svelte +13 -13
  171. package/dist/form/options_multi_select/OptionsMultiSelect.svelte.d.ts +3 -2
  172. package/dist/form/options_multi_select/README.md +5 -3
  173. package/dist/form/options_multi_select/README_CN.md +5 -3
  174. package/dist/form/options_select/OptionsSelect.svelte +19 -15
  175. package/dist/form/options_select/OptionsSelect.svelte.d.ts +2 -1
  176. package/dist/form/options_select/README.md +9 -7
  177. package/dist/form/options_select/README_CN.md +8 -6
  178. package/dist/form/prompts_text_editor/PromptsTextEditor.svelte +6 -5
  179. package/dist/form/prompts_text_editor/PromptsTextEditor.svelte.d.ts +2 -1
  180. package/dist/form/prompts_text_editor/README.md +16 -14
  181. package/dist/form/prompts_text_editor/README_CN.md +16 -14
  182. package/dist/form/search_box/SearchBox.svelte +3 -2
  183. package/dist/form/search_box/SearchBox.svelte.d.ts +1 -1
  184. package/dist/form/switch/README.md +7 -5
  185. package/dist/form/switch/README_CN.md +7 -5
  186. package/dist/form/switch/Switch.svelte +7 -5
  187. package/dist/form/switch/Switch.svelte.d.ts +4 -2
  188. package/dist/form/text_editor/PasswordEditor.svelte +2 -2
  189. package/dist/form/text_editor/PasswordEditor.svelte.d.ts +1 -1
  190. package/dist/form/text_editor/TextEditor.svelte +6 -4
  191. package/dist/form/text_editor/TextEditor.svelte.d.ts +1 -1
  192. package/dist/form/time_editor/README.md +4 -2
  193. package/dist/form/time_editor/README_CN.md +4 -2
  194. package/dist/form/time_editor/TimeEditor.svelte +10 -7
  195. package/dist/form/time_editor/TimeEditor.svelte.d.ts +2 -1
  196. package/dist/form/types.d.ts +5 -42
  197. package/dist/form/unit-number-editor/README.md +21 -19
  198. package/dist/form/unit-number-editor/README_CN.md +21 -19
  199. package/dist/form/unit-number-editor/UnitNumberEditor.svelte +12 -11
  200. package/dist/form/unit-number-editor/UnitNumberEditor.svelte.d.ts +4 -3
  201. package/dist/general/button/Button.svelte +4 -1
  202. package/dist/general/button/Button.svelte.d.ts +3 -1
  203. package/dist/general/button/IconButton.svelte +11 -5
  204. package/dist/general/button/IconButton.svelte.d.ts +5 -2
  205. package/dist/general/button/IconButton_README.md +9 -6
  206. package/dist/general/button/IconButton_README_CN.md +9 -6
  207. package/dist/general/button/TextButton.svelte +15 -5
  208. package/dist/general/button/TextButton.svelte.d.ts +6 -2
  209. package/dist/general/button/TextButton_README.md +10 -6
  210. package/dist/general/button/TextButton_README_CN.md +10 -6
  211. package/dist/general/icon/Icon.svelte +6 -4
  212. package/dist/general/icon/Icon.svelte.d.ts +3 -2
  213. package/dist/general/tag/Tag.svelte +8 -4
  214. package/dist/general/tag/Tag.svelte.d.ts +3 -1
  215. package/dist/i18nRes/i18nRes.d.ts +45 -2
  216. package/dist/i18nRes/i18nRes.js +7 -2
  217. package/dist/layouts/action_bar/ActionBar.svelte +5 -4
  218. package/dist/layouts/action_bar/ActionBar.svelte.d.ts +2 -1
  219. package/dist/layouts/action_bar/ButtonAction.d.ts +1 -23
  220. package/dist/layouts/action_bar/README.md +20 -18
  221. package/dist/layouts/action_bar/README_CN.md +19 -17
  222. package/dist/layouts/box/Box.svelte +4 -3
  223. package/dist/layouts/box/Box.svelte.d.ts +2 -1
  224. package/dist/layouts/box/README.md +13 -11
  225. package/dist/layouts/box/README_CN.md +13 -11
  226. package/dist/layouts/form_field/FormField.svelte +5 -4
  227. package/dist/layouts/form_field/FormField.svelte.d.ts +3 -2
  228. package/dist/layouts/form_field/README.md +11 -9
  229. package/dist/layouts/form_field/README_CN.md +9 -7
  230. package/dist/layouts/form_panel/flex_row_form/Cell.svelte +3 -1
  231. package/dist/layouts/form_panel/flex_row_form/Cell.svelte.d.ts +3 -1
  232. package/dist/layouts/form_panel/flex_row_form/Row.svelte +3 -1
  233. package/dist/layouts/form_panel/flex_row_form/Row.svelte.d.ts +3 -1
  234. package/dist/layouts/form_panel/grid_form/GridField.svelte +8 -4
  235. package/dist/layouts/form_panel/grid_form/GridField.svelte.d.ts +6 -2
  236. package/dist/layouts/form_panel/grid_form/GridForm.svelte +3 -1
  237. package/dist/layouts/form_panel/grid_form/GridForm.svelte.d.ts +3 -1
  238. package/dist/layouts/form_panel/grid_form/README.md +6 -4
  239. package/dist/layouts/form_panel/grid_form/README_CN.md +6 -4
  240. package/dist/layouts/page/Page.svelte +7 -7
  241. package/dist/layouts/page/Page.svelte.d.ts +2 -2
  242. package/dist/layouts/page/PageHeader.svelte +4 -4
  243. package/dist/layouts/page/PageHeader.svelte.d.ts +1 -1
  244. package/dist/layouts/page/README.md +18 -18
  245. package/dist/layouts/page/README_CN.md +18 -18
  246. package/dist/navigation/nav_menu/MenuItem.d.ts +1 -1
  247. package/dist/navigation/nav_menu/NavigatorMenu.svelte +16 -14
  248. package/dist/navigation/nav_menu/NavigatorMenu.svelte.d.ts +7 -5
  249. package/dist/navigation/nav_menu/NavigatorMenuItem.svelte +2 -2
  250. package/dist/navigation/nav_menu/NavigatorMenuItem.svelte.d.ts +2 -2
  251. package/dist/navigation/nav_menu/README.md +8 -6
  252. package/dist/navigation/nav_menu/README_CN.md +8 -6
  253. package/dist/navigation/nav_menu/index.d.ts +2 -2
  254. package/dist/navigation/navigator/Navigator.svelte +5 -4
  255. package/dist/navigation/navigator/Navigator.svelte.d.ts +3 -2
  256. package/dist/navigation/navigator/README.md +12 -10
  257. package/dist/navigation/navigator/README_CN.md +12 -10
  258. package/dist/navigation/pagination/Pagination.svelte +23 -15
  259. package/dist/navigation/pagination/Pagination.svelte.d.ts +6 -4
  260. package/dist/navigation/progress_step_bar/ProgressStep.d.ts +2 -1
  261. package/dist/navigation/progress_step_bar/ProgressStepBar.svelte +5 -4
  262. package/dist/navigation/progress_step_bar/ProgressStepBar.svelte.d.ts +2 -1
  263. package/dist/navigation/progress_step_bar/ProgressStepBlock.svelte +3 -3
  264. package/dist/navigation/progress_step_bar/ProgressStepBlock.svelte.d.ts +1 -1
  265. package/dist/navigation/progress_step_bar/README.md +37 -35
  266. package/dist/navigation/progress_step_bar/README_CN.md +36 -34
  267. package/dist/navigation/tabs/Tabs.svelte +14 -5
  268. package/dist/navigation/tabs/Tabs.svelte.d.ts +11 -4
  269. package/dist/navigation/tabs/index.d.ts +2 -2
  270. package/dist/overlay/common/ModalPopover.svelte +5 -4
  271. package/dist/overlay/common/ModalPopover.svelte.d.ts +2 -1
  272. package/dist/overlay/common/Popover.svelte +4 -3
  273. package/dist/overlay/common/Popover.svelte.d.ts +2 -1
  274. package/dist/overlay/context-menu/ContextMenuItem.d.ts +3 -3
  275. package/dist/overlay/context-menu/ContextMenuPanel.svelte +4 -4
  276. package/dist/overlay/context-menu/index.d.ts +2 -2
  277. package/dist/overlay/dialog/CommonDialog.svelte +17 -13
  278. package/dist/overlay/dialog/CommonDialog.svelte.d.ts +9 -5
  279. package/dist/overlay/dialog/Dialog.svelte +25 -19
  280. package/dist/overlay/dialog/Dialog.svelte.d.ts +11 -5
  281. package/dist/overlay/dialog/DialogActions.d.ts +1 -1
  282. package/dist/overlay/dialog/DialogCloseConfirm.d.ts +4 -1
  283. package/dist/overlay/dialog/DialogCloseConfirm.js +1 -1
  284. package/dist/overlay/dialog/DialogManager.svelte.js +2 -1
  285. package/dist/overlay/dialog/README.md +19 -17
  286. package/dist/overlay/dialog/README_CN.md +19 -17
  287. package/dist/overlay/dialog/index.d.ts +2 -2
  288. package/dist/overlay/message-box/IMessageBox.d.ts +4 -4
  289. package/dist/overlay/message-box/MessageBox.svelte.js +3 -3
  290. package/dist/ticatec-uniface-web.css +38 -12
  291. package/dist/types.d.ts +38 -46
  292. package/dist/unifaceContext.d.ts +2 -2
  293. package/dist/utils/prefixFilter.js +0 -1
  294. package/docs/NAMING.md +362 -0
  295. package/docs/NAMING_CN.md +362 -0
  296. package/docs/components/README.md +16 -14
  297. package/docs/components/accordion/README.md +13 -2
  298. package/docs/components/accordion/example.svelte +1 -0
  299. package/docs/components/action-bar/README.md +4 -4
  300. package/docs/components/attachment-editor/README.md +224 -0
  301. package/docs/components/attachment-editor/example.svelte +22 -0
  302. package/docs/components/box/README.md +1 -1
  303. package/docs/components/button/README.md +8 -1
  304. package/docs/components/button/example.svelte +1 -0
  305. package/docs/components/card/README.md +19 -5
  306. package/docs/components/cascade-options-select/README.md +11 -5
  307. package/docs/components/columns-layout/README.md +8 -4
  308. package/docs/components/columns-layout/example.svelte +4 -0
  309. package/docs/components/common-dialog/README.md +19 -10
  310. package/docs/components/common-dialog/example.svelte +2 -1
  311. package/docs/components/concise-data-table/README.md +18 -29
  312. package/docs/components/concise-data-table/example.svelte +1 -1
  313. package/docs/components/context-menu/README.md +5 -5
  314. package/docs/components/context-menu/example.svelte +1 -1
  315. package/docs/components/criteria-field/README.md +1 -0
  316. package/docs/components/criteria-field/example.svelte +1 -0
  317. package/docs/components/data-table/README.md +63 -40
  318. package/docs/components/data-table/example.svelte +2 -2
  319. package/docs/components/date-picker/README.md +1 -1
  320. package/docs/components/date-time-picker/README.md +1 -1
  321. package/docs/components/dialog/README.md +21 -14
  322. package/docs/components/dialog/example.svelte +1 -1
  323. package/docs/components/form-field/README.md +3 -3
  324. package/docs/components/grid-form/README.md +15 -5
  325. package/docs/components/grid-form/example.svelte +1 -1
  326. package/docs/components/group-check-box/README.md +3 -3
  327. package/docs/components/group-radio-box/README.md +3 -3
  328. package/docs/components/icon/README.md +6 -5
  329. package/docs/components/icon-button/README.md +10 -1
  330. package/docs/components/icon-button/example.svelte +1 -0
  331. package/docs/components/image-editor/README.md +262 -0
  332. package/docs/components/{image-files → image-editor}/example.svelte +5 -3
  333. package/docs/components/input-options-select/README.md +2 -2
  334. package/docs/components/list-box/README.md +12 -13
  335. package/docs/components/list-box/example.svelte +3 -3
  336. package/docs/components/lookup-editor/README.md +1 -1
  337. package/docs/components/navigator/README.md +2 -1
  338. package/docs/components/navigator/example.svelte +1 -0
  339. package/docs/components/navigator-menu/README.md +24 -21
  340. package/docs/components/navigator-menu/example.svelte +4 -2
  341. package/docs/components/options-multi-select/README.md +2 -2
  342. package/docs/components/options-select/README.md +4 -4
  343. package/docs/components/page/README.md +2 -2
  344. package/docs/components/page-stack/README.md +67 -0
  345. package/docs/components/page-stack/example.svelte +7 -0
  346. package/docs/components/pagination/README.md +24 -7
  347. package/docs/components/pagination/example.svelte +5 -2
  348. package/docs/components/pagination-panel/README.md +25 -10
  349. package/docs/components/pagination-panel/example.svelte +5 -4
  350. package/docs/components/password-editor/README.md +128 -0
  351. package/docs/components/{attachment-files → password-editor}/example.svelte +5 -5
  352. package/docs/components/progress-bar/README.md +14 -4
  353. package/docs/components/progress-bar/example.svelte +1 -1
  354. package/docs/components/progress-step-bar/README.md +16 -7
  355. package/docs/components/progress-step-bar/example.svelte +5 -1
  356. package/docs/components/prompts-text-editor/README.md +8 -6
  357. package/docs/components/prompts-text-editor/example.svelte +0 -1
  358. package/docs/components/rows-layout/README.md +8 -4
  359. package/docs/components/rows-layout/example.svelte +4 -0
  360. package/docs/components/switch/README.md +2 -2
  361. package/docs/components/tabs/README.md +24 -9
  362. package/docs/components/tag/README.md +13 -2
  363. package/docs/components/tag/example.svelte +1 -0
  364. package/docs/components/text-button/README.md +20 -1
  365. package/docs/components/text-button/example.svelte +2 -0
  366. package/docs/components/time-editor/README.md +1 -1
  367. package/docs/components/transfer/README.md +16 -9
  368. package/docs/components/tree-view/README.md +29 -13
  369. package/docs/components/tree-view/example.svelte +2 -1
  370. package/docs/components/unit-number-editor/README.md +11 -8
  371. package/docs/components/unit-number-editor/example.svelte +0 -1
  372. package/package.json +13 -7
  373. package/dist/data_table/lib/CompareFunction.d.ts +0 -3
  374. package/dist/data_table/lib/FormatCell.d.ts +0 -2
  375. package/dist/form/attachment_files/FileRender.svelte +0 -125
  376. package/dist/form/attachment_files/FileRender.svelte.d.ts +0 -9
  377. package/dist/form/attachment_files/FileUploadBar.svelte +0 -66
  378. package/dist/form/attachment_files/FileUploadBar.svelte.d.ts +0 -8
  379. package/dist/form/attachment_files/FileUploadPanel.svelte +0 -161
  380. package/dist/form/attachment_files/FileUploadPanel.svelte.d.ts +0 -14
  381. package/dist/form/attachment_files/UploadFile.d.ts +0 -43
  382. package/dist/form/attachment_files/UploadFile.js +0 -80
  383. package/dist/form/cascade_options_select/CascadePanel.svelte +0 -52
  384. package/dist/form/cascade_options_select/CascadePanel.svelte.d.ts +0 -26
  385. package/dist/form/cascade_options_select/isLeafDetermine.d.ts +0 -4
  386. package/dist/form/common_editor/EditorEvents.d.ts +0 -14
  387. package/dist/form/common_editor/EditorEvents.js +0 -2
  388. package/dist/form/image-files/ImageFile.d.ts +0 -12
  389. package/dist/form/image-files/ImageFilesField.svelte +0 -128
  390. package/dist/form/image-files/ImageFilesField.svelte.d.ts +0 -18
  391. package/dist/form/image-files/ImageRender.svelte +0 -95
  392. package/dist/form/image-files/ImageRender.svelte.d.ts +0 -10
  393. package/dist/form/image-files/README.md +0 -468
  394. package/dist/form/image-files/README_CN.md +0 -468
  395. package/dist/form/image-files/index.d.ts +0 -10
  396. package/dist/form/image-files/index.js +0 -2
  397. package/dist/layout/flex/FlexBlock.svelte +0 -17
  398. package/dist/layout/flex/FlexBlock.svelte.d.ts +0 -38
  399. package/dist/layout/flex/README.md +0 -148
  400. package/dist/layout/flex/README_CN.md +0 -148
  401. package/dist/layout/flex/index.d.ts +0 -2
  402. package/dist/layout/flex/index.js +0 -2
  403. package/dist/layout/index.d.ts +0 -0
  404. package/dist/layout/index.js +0 -1
  405. package/docs/components/attachment-files/README.md +0 -332
  406. package/docs/components/image-files/README.md +0 -174
  407. /package/dist/data_table/lib/{FormatCell.js → CellAction.js} +0 -0
  408. /package/dist/data_table/lib/{CompareFunction.js → CompareFn.js} +0 -0
  409. /package/dist/{form/cascade_options_select/isLeafDetermine.js → data_table/lib/FormatCellFn.js} +0 -0
  410. /package/dist/form/{image-files/ImageFile.js → attachment_files/UploadTask.js} +0 -0
  411. /package/dist/form/{image-files → image_editor}/ImagePreview.svelte.d.ts +0 -0
@@ -1,66 +0,0 @@
1
- <script lang="ts">
2
- import ProgressBar, {ProgressStatus} from "../../feedback/progress-bar";
3
- import {TextButton} from "../../general/button";
4
- import type UploadFile from "./UploadFile";
5
- import i18nRes from "../../i18nRes";
6
-
7
- let {
8
- file,
9
- removeFile
10
- }: {
11
- file: UploadFile;
12
- removeFile: (file: any) => void;
13
- } = $props();
14
-
15
- // The upload object owns subsequent status updates. This value is only the
16
- // initial snapshot before the effect installs its update callback.
17
- const getInitialStatus = () => file?.status ?? ProgressStatus.progressing;
18
- let status: ProgressStatus = $state(getInitialStatus());
19
- let progress: number = $state(0);
20
-
21
- let cancelLabel: string = i18nRes.common.btnCancel.toString();
22
- let retryLabel: string = i18nRes.upload.btnRetry.toString();
23
- let removeLabel: string = i18nRes.upload.btnRemove.toString();
24
-
25
- const cancelUpload = async () => {
26
- if (await file.cancel()) {
27
- status = file.status;
28
- }
29
- }
30
-
31
- const retryUpload = async () => {
32
- file.restart();
33
- }
34
-
35
- const removeUploadFile = async () => {
36
- removeFile?.(file);
37
- }
38
-
39
- $effect(() => {
40
- if (file) {
41
- status = file.status;
42
- progress = file.progress;
43
- file.setUpdateStatus(()=> {
44
- status = file.status;
45
- progress = file.progress;
46
- })
47
- }
48
- });
49
- </script>
50
- <div style="display: flex; flex-direction: row; align-items: center; height: 24px">
51
- <div style="flex: 0 0 240px; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap">
52
- <span>{file.file.name}</span>
53
- </div>
54
- <div style="flex: 1 1 auto; margin-left: 8px; margin-right: 8px">
55
- <ProgressBar {progress} {status} type="linear"/>
56
- </div>
57
- <div style="flex: 0 0 120px; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap">
58
- {#if status === ProgressStatus.progressing}
59
- <TextButton size="small" type="secondary" label={cancelLabel} onclick={cancelUpload}/>
60
- {/if}
61
- {#if status === ProgressStatus.canceled || status === ProgressStatus.failure}
62
- <TextButton size="small" type="primary" label={retryLabel} onclick={retryUpload}/>
63
- <TextButton size="small" label={removeLabel} onclick={removeUploadFile}/>
64
- {/if}
65
- </div>
66
- </div>
@@ -1,8 +0,0 @@
1
- import type UploadFile from "./UploadFile";
2
- type $$ComponentProps = {
3
- file: UploadFile;
4
- removeFile: (file: any) => void;
5
- };
6
- declare const FileUploadBar: import("svelte").Component<$$ComponentProps, {}, "">;
7
- type FileUploadBar = ReturnType<typeof FileUploadBar>;
8
- export default FileUploadBar;
@@ -1,161 +0,0 @@
1
- <script lang="ts">
2
- import Button from "../../general/button";
3
- import FileUploadBar from "./FileUploadBar.svelte";
4
- import UploadFile from "./UploadFile";
5
- import {ProgressStatus} from "../../feedback/progress-bar";
6
- import type {FileUpload} from "./FileUpload";
7
- import utils from "../../overlay/common/utils";
8
- import ModalPopover from "../../overlay/common/ModalPopover.svelte";
9
- import i18nRes from "../../i18nRes";
10
-
11
- let {
12
- accept = "*/*",
13
- maxSize = 1024 * 1024 * 10,
14
- maxFiles = 1,
15
- onFileUploaded,
16
- uploadFile,
17
- theme,
18
- visible = $bindable(false)
19
- }: {
20
- accept?: string;
21
- maxSize?: number;
22
- maxFiles?: number;
23
- onFileUploaded?: (file: UploadFile) => void;
24
- uploadFile?: FileUpload;
25
- theme?: string;
26
- visible?: boolean;
27
- } = $props();
28
-
29
- let btnPickup = i18nRes.upload.btnPickup.toString();
30
-
31
- let files: Array<UploadFile> = $state([]);
32
- let fileInput: any;
33
- let interval: any;
34
- let busy: boolean = $state(false);
35
- let dragActive = $state(false);
36
- let canClose: boolean = $state(false);
37
-
38
- $effect(() => {
39
- let checkAutoClose:any = null;
40
- interval = setInterval(() => {
41
- canClose = files.every(item => item.status != ProgressStatus.progressing);
42
- if (canClose) {
43
- if (files.length == maxFiles) {
44
- visible = !canClose;
45
- } else if (files.length > 0 && checkAutoClose == null) {
46
- checkAutoClose = setTimeout(()=> {
47
- visible = !canClose || busy;
48
- files = [];
49
- checkAutoClose = null;
50
- }, 1000);
51
- }
52
- }
53
- }, 100);
54
-
55
- return () => {
56
- clearInterval(interval);
57
- };
58
- });
59
-
60
- const handleDragOver = (e: DragEvent) => {
61
- e.preventDefault();
62
- busy = true;
63
- dragActive = true;
64
- }
65
-
66
- const handleDragLeave = (e: DragEvent) => {
67
- e.preventDefault();
68
- busy = false;
69
- dragActive = false;
70
- }
71
-
72
- const handleDrop = (e: DragEvent) => {
73
- e.preventDefault();
74
- dragActive = false;
75
- handleFiles(e.dataTransfer?.files);
76
- }
77
-
78
- const handleFiles = (uploadFiles: FileList | undefined) => {
79
- if (uploadFiles && uploadFiles.length > 0 && uploadFile) {
80
- const uploader = uploadFile;
81
- let list = utils.filterFiles(Array.from(uploadFiles), accept);
82
- list.forEach(file => {
83
- if (file.size <= maxSize && files.length < maxFiles) {
84
- let uf = new UploadFile(file, uploader, ()=> {
85
- onFileUploaded?.(uf);
86
- });
87
- files = [...files, uf];
88
- }
89
- });
90
- }
91
- busy = false;
92
- }
93
-
94
- const showFileDialog = () => {
95
- busy = true;
96
- fileInput.click();
97
- }
98
-
99
- const handleMouseClick = (e: MouseEvent) => {
100
- e.stopPropagation();
101
- }
102
-
103
- const handleFilePickup = (event: any) => {
104
- handleFiles(event.target.files);
105
- }
106
-
107
- const removeFile = (file: any) => {
108
- let pos = files.findIndex(item => item == file);
109
- if (pos > -1) {
110
- files.splice(pos, 1);
111
- files = [...files];
112
- }
113
- }
114
-
115
- $effect(() => {
116
- canClose = files.length == 0;
117
- });
118
- </script>
119
- <ModalPopover {canClose} {theme} bind:visible>
120
- <!-- onclick only stops propagation to the modal's outside-click handler; the
121
- real controls (Button, file input) inside carry their own semantics. -->
122
- <!-- svelte-ignore a11y_click_events_have_key_events -->
123
- <!-- svelte-ignore a11y_no_noninteractive_element_interactions -->
124
- <div class="uniface-file-upload-panel" class:highlight={dragActive} ondragover={handleDragOver} ondragleave={handleDragLeave}
125
- ondrop={handleDrop} onclick={handleMouseClick} role="group" aria-label={btnPickup}>
126
- <div class="file-upload-contents">
127
- <div style="position: absolute; top: 0; width: 0; overflow: hidden">
128
- <input bind:this={fileInput} type="file" {accept} multiple={maxFiles > 1} onchange={handleFilePickup}/>
129
- </div>
130
- <div style="margin-bottom: 8px; flex: 0 0 auto; text-align: center">
131
- <Button type="primary" disabled={files.length >= maxFiles} icon="icon_google_file_upload" label={btnPickup}
132
- onclick={showFileDialog}></Button>
133
- </div>
134
- <div style="flex: 1 1 auto; overflow: auto; padding: 0 24px">
135
- {#each files as file}
136
- <FileUploadBar {file} removeFile={removeFile}/>
137
- {/each}
138
- </div>
139
- </div>
140
- </div>
141
- </ModalPopover>
142
-
143
- <style>.uniface-file-upload-panel {
144
- width: 820px;
145
- padding: 24px 0;
146
- background-color: var(--uniface-upload-panel-bg, #F8FAFC);
147
- border: 1px solid var(--uniface-upload-panel-border-color, #E2E8F0);
148
- border-radius: 8px;
149
- min-height: 144px;
150
- }
151
- .uniface-file-upload-panel .file-upload-contents {
152
- width: 100%;
153
- height: 100%;
154
- border: 1px dotted transparent;
155
- text-align: center;
156
- display: flex;
157
- flex-direction: column;
158
- }
159
- .uniface-file-upload-panel.highlight {
160
- background-color: var(--uniface-upload-panel-highlight-bg, #b3d8ff);
161
- }</style>
@@ -1,14 +0,0 @@
1
- import UploadFile from "./UploadFile";
2
- import type { FileUpload } from "./FileUpload";
3
- type $$ComponentProps = {
4
- accept?: string;
5
- maxSize?: number;
6
- maxFiles?: number;
7
- onFileUploaded?: (file: UploadFile) => void;
8
- uploadFile?: FileUpload;
9
- theme?: string;
10
- visible?: boolean;
11
- };
12
- declare const FileUploadPanel: import("svelte").Component<$$ComponentProps, {}, "visible">;
13
- type FileUploadPanel = ReturnType<typeof FileUploadPanel>;
14
- export default FileUploadPanel;
@@ -1,43 +0,0 @@
1
- import { ProgressStatus } from "../../feedback/progress-bar";
2
- import type { FileUpload } from "./FileUpload";
3
- export type OnCompleted = (file: File, url: string, thumbnail?: string) => void;
4
- export type UpdateStatus = () => void;
5
- export default class UploadFile {
6
- /**
7
- * 待上传的文件
8
- */
9
- readonly file: File;
10
- /**
11
- * 上传后的文件地址
12
- */
13
- private _url;
14
- /**
15
- * 上传的缩率图
16
- * @private
17
- */
18
- private _thumbnail;
19
- /**
20
- * 状态
21
- */
22
- private _status;
23
- /**
24
- * 已经上传的字节数
25
- */
26
- private _uploadedBytes;
27
- /**
28
- * 上传的实例
29
- */
30
- private loader?;
31
- private readonly onCompleted;
32
- private readonly uploadFile;
33
- private updateStatus;
34
- constructor(file: File, uploadFile: FileUpload, onCompleted: OnCompleted);
35
- private startUploading;
36
- restart(): void;
37
- get url(): string | null;
38
- get thumbnail(): string | undefined | null;
39
- get status(): ProgressStatus;
40
- get progress(): number;
41
- cancel(): Promise<boolean>;
42
- setUpdateStatus(value: UpdateStatus): void;
43
- }
@@ -1,80 +0,0 @@
1
- import { ProgressStatus } from "../../feedback/progress-bar";
2
- export default class UploadFile {
3
- /**
4
- * 待上传的文件
5
- */
6
- file;
7
- /**
8
- * 上传后的文件地址
9
- */
10
- _url = null;
11
- /**
12
- * 上传的缩率图
13
- * @private
14
- */
15
- _thumbnail = null;
16
- /**
17
- * 状态
18
- */
19
- _status = ProgressStatus.progressing;
20
- /**
21
- * 已经上传的字节数
22
- */
23
- _uploadedBytes = 0;
24
- /**
25
- * 上传的实例
26
- */
27
- loader;
28
- onCompleted;
29
- uploadFile;
30
- updateStatus = null;
31
- constructor(file, uploadFile, onCompleted) {
32
- this.file = file;
33
- this.uploadFile = uploadFile;
34
- this.onCompleted = onCompleted;
35
- this.loader = this.startUploading();
36
- }
37
- startUploading() {
38
- return this.uploadFile(this.file, (bytes) => {
39
- this._uploadedBytes = bytes;
40
- this.updateStatus?.();
41
- }, (url, thumbnail) => {
42
- this._url = url;
43
- this._thumbnail = thumbnail;
44
- this._status = ProgressStatus.successful;
45
- this.onCompleted(this.file, url);
46
- this.updateStatus?.();
47
- }, (e) => {
48
- this._status = ProgressStatus.failure;
49
- this.updateStatus?.();
50
- });
51
- }
52
- restart() {
53
- this._status = ProgressStatus.progressing;
54
- this.loader = this.startUploading();
55
- this.updateStatus?.();
56
- }
57
- get url() {
58
- return this._url;
59
- }
60
- get thumbnail() {
61
- return this._thumbnail;
62
- }
63
- get status() {
64
- return this._status;
65
- }
66
- get progress() {
67
- return Math.round(this._uploadedBytes * 100 / this.file.size);
68
- }
69
- async cancel() {
70
- let result = this.loader != null ? await this.loader.cancel() : true;
71
- if (result) {
72
- this._status = ProgressStatus.canceled;
73
- this.updateStatus?.();
74
- }
75
- return result;
76
- }
77
- setUpdateStatus(value) {
78
- this.updateStatus = value;
79
- }
80
- }
@@ -1,52 +0,0 @@
1
- <script lang="ts">
2
- import iconLoading from "../assets/loading.gif";
3
- import OptionsBox from "./OptionsBox.svelte";
4
- import type {OnSelectHandler} from "../../types";
5
-
6
-
7
- export let nodes: Array<Array<any>>;
8
- export let keyField: string;
9
- export let textField: string;
10
- export let box$style: string;
11
- export let onSelect: OnSelectHandler<any>;
12
-
13
- export let selectedItems:Array<any> = [];
14
- let busy: boolean = false;
15
-
16
- const selectOption = (level: number) => (item: any) => {
17
- if (level == 0) {
18
- selectedItems = [item];
19
- nodes = [nodes[0]];
20
- } else if (level == selectedItems.length - 1) {
21
- selectedItems.pop();
22
- selectedItems = [...selectedItems, item];
23
- } else if (level < selectedItems.length) {
24
- selectedItems.splice(level);
25
- nodes.splice(level+1);
26
- selectedItems = [...selectedItems, item];
27
- } else if (level == selectedItems.length) {
28
- selectedItems = [...selectedItems, item];
29
- }
30
- onSelect?.(item);
31
- }
32
-
33
-
34
- </script>
35
- <div style="width: 100%; height: 100%; position: relative">
36
- <div style="width: 100%; height: 100%; display: flex; flex-direction: row; overflow: auto">
37
- {#each nodes as node, idx}
38
- <OptionsBox options={node} {keyField} {textField} {box$style} onSelect={selectOption(idx)}
39
- selectedItem={selectedItems[idx]}/>
40
- {/each}
41
- </div>
42
- {#if busy}
43
- <div style="position: absolute; top: 0; bottom: 0; left: 0; right: 0; background-color: #e1e1e110;">
44
- <div style="position: relative; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center">
45
- <div style="width: 100px; margin: 0 auto; text-align: center; background-color: #f0f0f0; border-radius: 4px; padding: 8px 12px; box-sizing: border-box;">
46
- <img src={iconLoading} alt="loading" width="32" height="32"/>
47
- </div>
48
- </div>
49
- </div>
50
- {/if}
51
-
52
- </div>
@@ -1,26 +0,0 @@
1
- import type { OnSelectHandler } from "../../types";
2
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports & {
10
- $set?: any;
11
- $on?: any;
12
- };
13
- z_$$bindings?: Bindings;
14
- }
15
- declare const CascadePanel: $$__sveltets_2_IsomorphicComponent<{
16
- nodes: Array<Array<any>>;
17
- keyField: string;
18
- textField: string;
19
- box$style: string;
20
- onSelect: OnSelectHandler<any>;
21
- selectedItems?: Array<any>;
22
- }, {
23
- [evt: string]: CustomEvent<any>;
24
- }, {}, {}, string>;
25
- type CascadePanel = InstanceType<typeof CascadePanel>;
26
- export default CascadePanel;
@@ -1,4 +0,0 @@
1
- /**
2
- * 判断当前节点是否为末端节点
3
- */
4
- export type IsLeafDetermine = (item: any) => boolean;
@@ -1,14 +0,0 @@
1
- export interface InputEvents {
2
- oninput?: (event: InputEvent) => void;
3
- }
4
- export interface KeyboardEvents {
5
- onkeydown?: (event: KeyboardEvent) => void;
6
- onkeyup?: (event: KeyboardEvent) => void;
7
- onkeypress?: (event: KeyboardEvent) => void;
8
- }
9
- export declare const keyboardAttrs: string[];
10
- export declare const InputAttrs: string[];
11
- export default interface BaseMouseEvents {
12
- onclick?: (event: MouseEvent) => void;
13
- ondblclick?: (event: MouseEvent) => void;
14
- }
@@ -1,2 +0,0 @@
1
- export const keyboardAttrs = ['onkeypress', 'onkeyup', 'onKeypress'];
2
- export const InputAttrs = ['oninput'];
@@ -1,12 +0,0 @@
1
- export default interface ImageFile {
2
- /**
3
- * 附件名
4
- */
5
- name: string;
6
- /**
7
- * oss保存的文件路径
8
- */
9
- uri: string;
10
- thumbnail?: string | undefined | null;
11
- }
12
- export type RemoveConfirm = (file: ImageFile) => Promise<boolean>;
@@ -1,128 +0,0 @@
1
- <script lang="ts">
2
- import type ImageFile from "./ImageFile";
3
- import type {RemoveConfirm} from "./ImageFile";
4
- import type UploadFile from "../attachment_files/UploadFile";
5
- import type {FileUpload} from "../attachment_files/FileUpload";
6
- import FileUploadPanel from "../attachment_files/FileUploadPanel.svelte";
7
- import ImageRender from "./ImageRender.svelte";
8
- import ImagePreview from "./ImagePreview.svelte";
9
- import FormEditor from "../FormEditor.svelte";
10
- import {getEditorVariant} from "../../unifaceContext";
11
- import type {EditorVariant} from "../types";
12
-
13
- let {
14
- variant = getEditorVariant(),
15
- disabled = false,
16
- readonly = false,
17
- files = $bindable([] as ImageFile[]),
18
- style = "",
19
- removeFileConfirm,
20
- uploadFile,
21
- maxFiles = 1,
22
- text = null as string | null
23
- }: {
24
- variant?: EditorVariant;
25
- disabled?: boolean;
26
- readonly?: boolean;
27
- files: ImageFile[];
28
- style?: string;
29
- removeFileConfirm?: RemoveConfirm;
30
- uploadFile: FileUpload;
31
- maxFiles?: number;
32
- text?: string | null;
33
- } = $props();
34
-
35
- let showUpload = $state(false);
36
- let showPreview = $state(false);
37
- let previewImgSrc = $state("");
38
-
39
- const showDialog = () => {
40
- showUpload = true;
41
- }
42
-
43
- const appendNewFile = (file: UploadFile) => {
44
- files = [...files, {
45
- name: file.file.name,
46
- uri: file.url ?? '',
47
- thumbnail: file.thumbnail
48
- }];
49
- }
50
-
51
- const removeFile = async (file: ImageFile) => {
52
- let confirmed = removeFileConfirm == null ? true : await removeFileConfirm(file);
53
- if (confirmed) {
54
- let pos = files.findIndex(item => item == file);
55
- if (pos > -1) {
56
- files.splice(pos, 1);
57
- files = [...files];
58
- }
59
- }
60
- }
61
-
62
- $effect(() => {
63
- text = '<div>' + files.map(item => (item.name)).join("</div><div>") + '</div>';
64
- });
65
-
66
- const handleUploadKeyDown = (e: KeyboardEvent) => {
67
- if (e.key === 'Enter' || e.key === ' ') {
68
- e.preventDefault();
69
- showDialog();
70
- }
71
- };
72
- </script>
73
-
74
- <div class="uniface-images-field" {style}>
75
- <FormEditor {variant} {readonly} {disabled}>
76
- <div class="files-field">
77
- {#each files as file}
78
- <ImageRender {file} {readonly} onRemove={removeFile}
79
- onPreview={(file: ImageFile) => {showPreview = true; previewImgSrc = file.uri}}/>
80
- {/each}
81
- {#if !disabled && !readonly}
82
- <div class="editor-action-icon">
83
- <i class="icon_google_file_upload" role="button" tabindex="0" aria-label="Upload image"
84
- onclick={showDialog} onkeydown={handleUploadKeyDown}></i>
85
- </div>
86
- {/if}
87
- </div>
88
- </FormEditor>
89
- {#if showUpload}
90
- <FileUploadPanel bind:visible={showUpload} accept="image/*" {maxFiles} onFileUploaded={appendNewFile} {uploadFile}/>
91
- {/if}
92
- <ImagePreview bind:visible={showPreview} src={previewImgSrc}/>
93
- </div>
94
-
95
- <style>
96
- .uniface-images-field {
97
- width: 100%;
98
- }
99
-
100
- .files-field {
101
- display: flex;
102
- align-items: center;
103
- width: 100%;
104
- height: 52px;
105
- min-width: 0;
106
- overflow-x: auto;
107
- overflow-y: hidden;
108
- box-sizing: border-box;
109
- }
110
-
111
- .editor-action-icon {
112
- flex: 0 0 auto;
113
- cursor: pointer;
114
- padding: 4px;
115
- border-radius: 4px;
116
- display: flex;
117
- align-items: center;
118
- color: inherit;
119
- }
120
-
121
- .editor-action-icon:hover {
122
- background-color: rgba(0, 0, 0, 0.05);
123
- }
124
-
125
- .editor-action-icon i {
126
- font-size: 22px;
127
- }
128
- </style>
@@ -1,18 +0,0 @@
1
- import type ImageFile from "./ImageFile";
2
- import type { RemoveConfirm } from "./ImageFile";
3
- import type { FileUpload } from "../attachment_files/FileUpload";
4
- import type { EditorVariant } from "../types";
5
- type $$ComponentProps = {
6
- variant?: EditorVariant;
7
- disabled?: boolean;
8
- readonly?: boolean;
9
- files: ImageFile[];
10
- style?: string;
11
- removeFileConfirm?: RemoveConfirm;
12
- uploadFile: FileUpload;
13
- maxFiles?: number;
14
- text?: string | null;
15
- };
16
- declare const ImageFilesField: import("svelte").Component<$$ComponentProps, {}, "files">;
17
- type ImageFilesField = ReturnType<typeof ImageFilesField>;
18
- export default ImageFilesField;