@ticatec/uniface-element 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/README.md +320 -1
  2. package/README_CN.md +392 -0
  3. package/dist/accordion/Accordion.svelte +1 -1
  4. package/dist/action-bar/ActionBar.svelte +7 -1
  5. package/dist/attachment-files/FileRender.svelte +1 -1
  6. package/dist/attachment-files/FileUploadBar.svelte +7 -6
  7. package/dist/attachment-files/FileUploadPanel.svelte +2 -2
  8. package/dist/base-calendar/DateContext.js +5 -4
  9. package/dist/base-calendar/YearPickupPanel.svelte +4 -4
  10. package/dist/card/Card.svelte +1 -1
  11. package/dist/card/Card.svelte.d.ts +1 -1
  12. package/dist/cascade-options-select/CascadeOptionSelect.svelte +2 -3
  13. package/dist/cascade-options-select/CascadeOptionSelect.svelte.d.ts +46 -1
  14. package/dist/cascade-options-select/CascadePanel.svelte +1 -1
  15. package/dist/checkbox/CheckBox.svelte +1 -1
  16. package/dist/color-picker/ColorPicker.svelte +9 -9
  17. package/dist/color-picker/ColorPicker.svelte.d.ts +0 -2
  18. package/dist/color-picker/ColorPickerPanel.svelte +11 -15
  19. package/dist/color-picker/ColorPickerPanel.svelte.d.ts +1 -1
  20. package/dist/common/CommonPicker.svelte +2 -2
  21. package/dist/common/CommonPicker.svelte.d.ts +1 -1
  22. package/dist/common/MouseClickHandler.d.ts +1 -1
  23. package/dist/common/Popover.svelte +28 -6
  24. package/dist/common/Popover.svelte.d.ts +9 -3
  25. package/dist/common/uniface-utils.js +6 -4
  26. package/dist/common-editor/CommonEditor.svelte +1 -1
  27. package/dist/common-editor/CommonEditor.svelte.d.ts +1 -1
  28. package/dist/common-editor/NumberInput.svelte +1 -1
  29. package/dist/common-editor/NumberInput.svelte.d.ts +1 -1
  30. package/dist/concise-data-table/ConciseListTable.svelte +7 -2
  31. package/dist/concise-data-table/ConciseListTable.svelte.d.ts +1 -0
  32. package/dist/concise-data-table/DataRow.svelte +1 -1
  33. package/dist/concise-data-table/TableOptions.d.ts +1 -1
  34. package/dist/data-table/DataTable.svelte +1 -1
  35. package/dist/data-table/parts/ActionsPanel.svelte +4 -3
  36. package/dist/data-table/parts/ActionsRow.svelte +3 -3
  37. package/dist/data-table/parts/ContentPanel.svelte +3 -2
  38. package/dist/data-table/parts/FixedColumnsPanel.svelte +0 -1
  39. package/dist/data-table/parts/FixedColumnsPanel.svelte.d.ts +1 -2
  40. package/dist/data-table/parts/FixedHeaderPanel.svelte +2 -2
  41. package/dist/data-table/parts/FixedRow.svelte +2 -1
  42. package/dist/data-table/parts/FixedRow.svelte.d.ts +1 -1
  43. package/dist/data-table/parts/HrefCell.svelte +23 -2
  44. package/dist/data-table/parts/PopupMenu.svelte +25 -2
  45. package/dist/data-table/parts/PopupMenu.svelte.d.ts +8 -1
  46. package/dist/date-picker/DatePicker.svelte +0 -1
  47. package/dist/date-picker/DateTimePicker.svelte +3 -3
  48. package/dist/date-picker/ScrollBar.svelte +4 -7
  49. package/dist/date-range/DateRangeEditor.svelte +1 -1
  50. package/dist/dialog/CommonDialog.svelte +8 -5
  51. package/dist/dialog/CommonDialog.svelte.d.ts +2 -1
  52. package/dist/dialog/Dialog.svelte +37 -12
  53. package/dist/dialog/Dialog.svelte.d.ts +4 -3
  54. package/dist/dialog/DialogBoard.svelte +11 -8
  55. package/dist/dialog/DialogWrapper.svelte +10 -0
  56. package/dist/{common-editor/DateInput.svelte.d.ts → dialog/DialogWrapper.svelte.d.ts} +6 -13
  57. package/dist/dialog/Dialogs.js +1 -1
  58. package/dist/dialog/ModalResult.d.ts +5 -0
  59. package/dist/dialog/ModalResult.js +5 -0
  60. package/dist/drawer/Drawer.svelte +1 -1
  61. package/dist/form-field/FormField.svelte +2 -1
  62. package/dist/form-field/FormField.svelte.d.ts +1 -0
  63. package/dist/form-panel/flex-row-form/FormContainer.svelte +1 -1
  64. package/dist/form-panel/grid-form/EmptyCell.svelte +8 -7
  65. package/dist/form-panel/grid-form/EmptyCell.svelte.d.ts +2 -2
  66. package/dist/form-panel/grid-form/GridField.svelte +1 -1
  67. package/dist/i18nRes/i18nRes.d.ts +2 -0
  68. package/dist/i18nRes/i18nRes.js +44 -0
  69. package/dist/i18nRes/index.d.ts +2 -0
  70. package/dist/i18nRes/index.js +2 -0
  71. package/dist/image-files/ImageFilesField.svelte +1 -1
  72. package/dist/indicator/IndicatorBoard.svelte +1 -1
  73. package/dist/inline-cell-editor/InvalidEditor.svelte +1 -0
  74. package/dist/input-options-select/InputOptionsSelect.svelte +6 -6
  75. package/dist/input-options-select/InputOptionsSelect.svelte.d.ts +1 -1
  76. package/dist/layout/flex/FlexBlock.svelte +1 -1
  77. package/dist/lookup-editor/LookupEditor.svelte +1 -1
  78. package/dist/memo-editor/MemoEditor.svelte +2 -2
  79. package/dist/message-box/IMessageBox.d.ts +2 -4
  80. package/dist/message-box/IMessageBox.js +4 -6
  81. package/dist/message-box/MessageBoxBoard.svelte +1 -3
  82. package/dist/options-multi-select/OptionsMultiSelect.svelte +1 -1
  83. package/dist/prompts-text-editor/PromptsTextEditor.svelte +2 -2
  84. package/dist/prompts-text-editor/PromptsTextEditor.svelte.d.ts +1 -1
  85. package/dist/property-editor/PropertyEditor.svelte +3 -3
  86. package/dist/text-editor/PasswordEditor.svelte +1 -1
  87. package/dist/transfer/Transfer.svelte +17 -12
  88. package/dist/transfer/Transfer.svelte.d.ts +0 -1
  89. package/dist/unit-number-editor/UnitNumberEditor.svelte +2 -2
  90. package/docs/buttons/cn/ActionBar.md +459 -0
  91. package/docs/buttons/cn/Button.md +228 -0
  92. package/docs/buttons/cn/IconButton.md +294 -0
  93. package/docs/buttons/cn/README.md +600 -0
  94. package/docs/buttons/cn/TextButton.md +163 -0
  95. package/docs/buttons/en/ActionBar.md +459 -0
  96. package/docs/buttons/en/Button.md +228 -0
  97. package/docs/buttons/en/IconButton.md +294 -0
  98. package/docs/buttons/en/README.md +600 -0
  99. package/docs/buttons/en/TextButton.md +163 -0
  100. package/docs/containers/cn/accordion.md +622 -0
  101. package/docs/containers/cn/box.md +445 -0
  102. package/docs/containers/cn/card.md +404 -0
  103. package/docs/containers/cn/page.md +576 -0
  104. package/docs/containers/cn/tabs.md +686 -0
  105. package/docs/containers/en/accordion.md +622 -0
  106. package/docs/containers/en/box.md +445 -0
  107. package/docs/containers/en/card.md +404 -0
  108. package/docs/containers/en/page.md +576 -0
  109. package/docs/containers/en/tabs.md +686 -0
  110. package/docs/data-display/cn/concise-data-table.md +731 -0
  111. package/docs/data-display/cn/listbox.md +786 -0
  112. package/docs/data-display/cn/treeview.md +863 -0
  113. package/docs/data-display/en/concise-data-table.md +732 -0
  114. package/docs/data-display/en/listbox.md +786 -0
  115. package/docs/data-display/en/treeview.md +863 -0
  116. package/docs/data-table/cn/README.md +596 -0
  117. package/docs/data-table/en/README.md +596 -0
  118. package/docs/dialog/cn/README.md +767 -0
  119. package/docs/dialog/en/README.md +767 -0
  120. package/docs/form/cn/README.md +847 -0
  121. package/docs/form/en/README.md +847 -0
  122. package/docs/form-components/cn/README.md +495 -0
  123. package/docs/form-components/cn/attachmentfilesfield.md +757 -0
  124. package/docs/form-components/cn/cascade-options-select.md +374 -0
  125. package/docs/form-components/cn/checkbox.md +58 -0
  126. package/docs/form-components/cn/date-picker.md +138 -0
  127. package/docs/form-components/cn/datetime-picker.md +228 -0
  128. package/docs/form-components/cn/group-checkbox.md +405 -0
  129. package/docs/form-components/cn/group-radiobox.md +525 -0
  130. package/docs/form-components/cn/imagefilesfield.md +651 -0
  131. package/docs/form-components/cn/input-options-select.md +250 -0
  132. package/docs/form-components/cn/lookup-editor.md +406 -0
  133. package/docs/form-components/cn/memoeditor.md +409 -0
  134. package/docs/form-components/cn/number-editor.md +261 -0
  135. package/docs/form-components/cn/options-multi-select.md +177 -0
  136. package/docs/form-components/cn/options-select.md +83 -0
  137. package/docs/form-components/cn/passwordeditor.md +538 -0
  138. package/docs/form-components/cn/prompts-text-editor.md +241 -0
  139. package/docs/form-components/cn/radiobutton.md +84 -0
  140. package/docs/form-components/cn/switch.md +178 -0
  141. package/docs/form-components/cn/text-editor.md +142 -0
  142. package/docs/form-components/cn/time-editor.md +159 -0
  143. package/docs/form-components/cn/unit-number-editor.md +164 -0
  144. package/docs/form-components/en/README.md +463 -0
  145. package/docs/form-components/en/attachmentfilesfield.md +757 -0
  146. package/docs/form-components/en/cascade-options-select.md +358 -0
  147. package/docs/form-components/en/checkbox.md +59 -0
  148. package/docs/form-components/en/date-picker.md +138 -0
  149. package/docs/form-components/en/datetime-picker.md +228 -0
  150. package/docs/form-components/en/group-checkbox.md +395 -0
  151. package/docs/form-components/en/group-radiobox.md +498 -0
  152. package/docs/form-components/en/imagefilesfield.md +651 -0
  153. package/docs/form-components/en/input-options-select.md +239 -0
  154. package/docs/form-components/en/lookup-editor.md +389 -0
  155. package/docs/form-components/en/memoeditor.md +409 -0
  156. package/docs/form-components/en/number-editor.md +249 -0
  157. package/docs/form-components/en/options-multi-select.md +177 -0
  158. package/docs/form-components/en/options-select.md +83 -0
  159. package/docs/form-components/en/passwordeditor.md +538 -0
  160. package/docs/form-components/en/prompts-text-editor.md +241 -0
  161. package/docs/form-components/en/radiobutton.md +84 -0
  162. package/docs/form-components/en/switch.md +180 -0
  163. package/docs/form-components/en/text-editor.md +142 -0
  164. package/docs/form-components/en/time-editor.md +159 -0
  165. package/docs/form-components/en/unit-number-editor.md +164 -0
  166. package/docs/form-layout/cn/criteria-field.md +652 -0
  167. package/docs/form-layout/cn/flex-form.md +454 -0
  168. package/docs/form-layout/cn/flex-row-form.md +542 -0
  169. package/docs/form-layout/cn/form-field.md +923 -0
  170. package/docs/form-layout/cn/grid-form.md +676 -0
  171. package/docs/form-layout/en/criteria-field.md +652 -0
  172. package/docs/form-layout/en/flex-form.md +454 -0
  173. package/docs/form-layout/en/flex-row-form.md +542 -0
  174. package/docs/form-layout/en/form-field.md +923 -0
  175. package/docs/form-layout/en/grid-form.md +676 -0
  176. package/docs/global/cn/README.md +534 -0
  177. package/docs/global/en/README.md +534 -0
  178. package/docs/layout/cn/classiclayout.md +460 -0
  179. package/docs/layout/cn/headerlayout.md +524 -0
  180. package/docs/layout/cn/sidebarlayout.md +263 -0
  181. package/docs/layout/en/classiclayout.md +951 -0
  182. package/docs/layout/en/headerlayout.md +524 -0
  183. package/docs/layout/en/sidebarlayout.md +262 -0
  184. package/docs/misc/cn/README.md +1217 -0
  185. package/docs/misc/en/README.md +1217 -0
  186. package/docs/navigation/cn/breadcrumb.md +291 -0
  187. package/docs/navigation/cn/navigator.md +322 -0
  188. package/docs/navigation/cn/navigatormenu.md +512 -0
  189. package/docs/navigation/cn/progressbar.md +199 -0
  190. package/docs/navigation/cn/progressstepbar.md +299 -0
  191. package/docs/navigation/en/breadcrumb.md +291 -0
  192. package/docs/navigation/en/navigator.md +322 -0
  193. package/docs/navigation/en/navigatormenu.md +512 -0
  194. package/docs/navigation/en/progressbar.md +199 -0
  195. package/docs/navigation/en/progressstepbar.md +299 -0
  196. package/docs/search-filters/cn/daterange.md +1156 -0
  197. package/docs/search-filters/cn/numberrange.md +688 -0
  198. package/docs/search-filters/cn/searchbox.md +1582 -0
  199. package/docs/search-filters/en/daterange.md +1156 -0
  200. package/docs/search-filters/en/numberrange.md +688 -0
  201. package/docs/search-filters/en/searchbox.md +1582 -0
  202. package/package.json +53 -13
  203. package/dist/common-editor/DateInput.svelte +0 -27
  204. package/dist/i18n_resources/index.d.ts +0 -3
  205. package/dist/i18n_resources/index.js +0 -3
  206. /package/dist/{i18n_resources → i18nRes}/uniface_cn_resource.d.ts +0 -0
  207. /package/dist/{i18n_resources → i18nRes}/uniface_cn_resource.js +0 -0
  208. /package/dist/{i18n_resources → i18nRes}/uniface_en_resource.d.ts +0 -0
  209. /package/dist/{i18n_resources → i18nRes}/uniface_en_resource.js +0 -0
@@ -71,19 +71,19 @@
71
71
  $:resetList();
72
72
 
73
73
  </script>
74
- <div class="scroll-bar" tabindex="1" on:wheel={handleMouseWheel}>
74
+ <div class="scroll-bar" tabindex="-1" aria-hidden="true" on:wheel={handleMouseWheel}>
75
75
  <div class="action-bar">
76
76
  <div class="arrow-up" class:disabled={!enable}>
77
- <i class="icon_google_keyboard_arrow_up" on:click={decValue} on:dragstart={(e)=>{e.preventDefault()}}
77
+ <i class="icon_google_keyboard_arrow_up" aria-hidden="true" on:click={decValue} on:dragstart={(e)=>{e.preventDefault()}}
78
78
  on:mousedown={handleMouseDown(-1)} on:mouseup={handleMouseUp} on:mouseleave={handleMouseUp}></i>
79
79
  </div>
80
80
  </div>
81
81
  {#each list as v}
82
- <div style={!enable && v!= value ? "visibility: hidden; " : ""} class="digital-block" on:click={()=>{handleDigitalClick(v)}} class:inactive={v!=value}><span>{v}</span></div>
82
+ <div style={!enable && v!= value ? "visibility: hidden; " : ""} class="digital-block" aria-hidden="true" on:click={()=>{handleDigitalClick(v)}} class:inactive={v!=value}><span>{v}</span></div>
83
83
  {/each}
84
84
  <div class="action-bar">
85
85
  <div class="arrow-down" class:disabled={!enable}>
86
- <i class="icon_google_keyboard_arrow_downn" on:click={incValue} on:dragstart={(e)=>{e.preventDefault()}}
86
+ <i class="icon_google_keyboard_arrow_downn" aria-hidden="true" on:click={incValue} on:dragstart={(e)=>{e.preventDefault()}}
87
87
  on:mousedown={handleMouseDown(1)} on:mouseup={handleMouseUp} on:mouseleave={handleMouseUp}></i>
88
88
  </div>
89
89
  </div>
@@ -94,9 +94,6 @@
94
94
  width: 33%;
95
95
  }
96
96
 
97
- .top-bar {
98
- text-align: center;
99
- }
100
97
 
101
98
  .digital-block {
102
99
  padding: 3px 0;
@@ -71,7 +71,7 @@
71
71
  </CommonRangeEditor>
72
72
 
73
73
  {#if showPopup}
74
- <Popover target={rootElement} on:close={()=>{showPopup=false}} style="width: 452px" autoFit={false}>
74
+ <Popover target={rootElement} onClose={()=>{showPopup=false}} style="width: 452px" autoFit={false}>
75
75
  <div style="white-space: nowrap">
76
76
  <Calendar style="border-right: 1px solid #f0f0f0" value={fromValue} onSelect={handleFormCalendarSelect} {min} max={maxFrom}/>
77
77
  <Calendar value={toValue} onSelect={handleToCalendarSelect} min={minTo} {max}/>
@@ -2,8 +2,9 @@
2
2
 
3
3
  import Dialog from "./Dialog.svelte";
4
4
  import type {ButtonAction, ButtonActions} from "../action-bar";
5
- import i18n from "@ticatec/i18n";
6
5
  import type {DialogCloseConfirm} from "./DialogCloseConfirm";
6
+ import {ModalResult, type OnClose} from "./ModalResult";
7
+ import i18nRes from "../i18nRes";
7
8
 
8
9
  export let title: string;
9
10
  export let width: string = 'unset';
@@ -11,19 +12,21 @@
11
12
 
12
13
  export let closeConfirm: DialogCloseConfirm | null = null;
13
14
  export let content$style: string = '';
14
- export let closeHandler: () => void;
15
15
  export let enableConfirm: boolean = true;
16
16
  export let confirmHandler: (()=>Promise<any>) | null = null;
17
17
  export let confirmText: string | null = null;
18
+ export let onClose: OnClose | null = null;
19
+
20
+ let dialog: any;
18
21
 
19
22
  let confirmAction: ButtonAction = {
20
- label: confirmText??i18n.getText('uniface.btnConfirm', 'OK'),
23
+ label: confirmText??i18nRes.btnConfirm,
21
24
  type: "primary",
22
25
  disabled: enableConfirm,
23
26
  handler: async ()=> {
24
27
  let result = await confirmHandler?.();
25
28
  if (result && result==true) { //返回true自动关闭
26
- closeHandler?.();
29
+ dialog.close(ModalResult.Ok);
27
30
  }
28
31
 
29
32
  }
@@ -38,6 +41,6 @@
38
41
 
39
42
  </script>
40
43
 
41
- <Dialog {title} {content$style} {width} {height} {closeHandler} {actions} {closeConfirm}>
44
+ <Dialog bind:this={dialog} {title} {content$style} {width} {height} {actions} {closeConfirm} {onClose}>
42
45
  <slot></slot>
43
46
  </Dialog>
@@ -1,4 +1,5 @@
1
1
  import type { DialogCloseConfirm } from "./DialogCloseConfirm";
2
+ import { type OnClose } from "./ModalResult";
2
3
  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
4
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
5
  $$bindings?: Bindings;
@@ -23,10 +24,10 @@ declare const CommonDialog: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_Pr
23
24
  height?: string;
24
25
  closeConfirm?: DialogCloseConfirm | null;
25
26
  content$style?: string;
26
- closeHandler: () => void;
27
27
  enableConfirm?: boolean;
28
28
  confirmHandler?: (() => Promise<any>) | null;
29
29
  confirmText?: string | null;
30
+ onClose?: OnClose | null;
30
31
  }, {
31
32
  default: {};
32
33
  }>, {
@@ -1,27 +1,30 @@
1
1
  <script lang="ts">
2
-
3
2
  import {fade} from "svelte/transition";
4
3
  import type {DialogCloseConfirm} from "./DialogCloseConfirm";
5
4
  import ActionBar, {type ButtonAction, type ButtonActions} from "../action-bar";
6
- import i18n from "@ticatec/i18n";
7
- import {onMount} from "svelte";
5
+ import {getContext, onMount} from "svelte";
6
+ import {ModalResult, type OnClose} from "./ModalResult";
7
+ import i18nRes from "../i18nRes";
8
8
 
9
9
  export let title: string;
10
-
11
10
  export let width: string = 'unset';
12
11
  export let height: string = 'unset';
13
12
  export let actions: ButtonActions | null = null;
14
13
  export let closeConfirm: DialogCloseConfirm | null = null;
15
14
  export let content$style: string = '';
16
- export let closeHandler: () => void;
15
+
17
16
  export let closeAction: ButtonAction | null = null;
17
+ export let onClose: OnClose | null = null;
18
18
 
19
19
  export let dialog$style: string = "";
20
20
 
21
- export const close = async () => {
22
- let confirm = closeConfirm ? await closeConfirm() : true;
21
+ const closeDialog = getContext<() => void>('closeDialog');
22
+
23
+ export const close = async (result: ModalResult) => {
24
+ let confirm = closeConfirm && result == ModalResult.Cancel ? await closeConfirm() : true;
23
25
  if (confirm) {
24
- closeHandler?.();
26
+ closeDialog();
27
+ onClose?.(result);
25
28
  }
26
29
  }
27
30
 
@@ -49,13 +52,35 @@
49
52
 
50
53
  onMount(async () => {
51
54
  closeAction = closeAction ?? {
52
- label: i18n.getText('uniface.btnClose', 'Close'),
55
+ label: i18nRes.common.btnClose,
53
56
  type: 'secondary'
54
57
  };
55
- closeAction.handler = close;
58
+ closeAction.handler = () => close(ModalResult.Cancel);
56
59
  })
57
60
 
58
- $: dialogActions = actions ? [...actions, closeAction] : [closeAction];
61
+ const wrapActions = () => {
62
+ let wa: ButtonActions = [];
63
+ if (actions) {
64
+ actions.forEach(action => {
65
+ if (action == null) {
66
+ wa.push(null)
67
+ } else {
68
+ wa.push({
69
+ ...action, handler: async (event: MouseEvent) => {
70
+ let result = await action.handler?.(event);
71
+ if (result) {
72
+ await close(ModalResult.Ok)
73
+ }
74
+ }
75
+ })
76
+ }
77
+ })
78
+ }
79
+ wa.push(closeAction);
80
+ return wa;
81
+ }
82
+
83
+ $: dialogActions = actions ? wrapActions() : [closeAction];
59
84
 
60
85
 
61
86
  </script>
@@ -67,7 +92,7 @@
67
92
  <div class="title-bar" on:mousedown={handleMouseDown} on:mouseup={handleMouseUp} aria-hidden="true">
68
93
  <div style="flex: 1 1 auto"><span>{title ?? 'New window'}</span></div>
69
94
  <div style="flex: 0 0 auto; padding-left: 12px">
70
- <i class="icon_google_clear dialog-action-button" aria-hidden="true" on:click={close}></i>
95
+ <i class="icon_google_clear dialog-action-button" aria-hidden="true" on:click={()=>close(ModalResult.Cancel)}></i>
71
96
  </div>
72
97
  </div>
73
98
  <div class="dialog-content" style={content$style}>
@@ -1,5 +1,6 @@
1
1
  import type { DialogCloseConfirm } from "./DialogCloseConfirm";
2
2
  import { type ButtonAction, type ButtonActions } from "../action-bar";
3
+ import { ModalResult, type OnClose } from "./ModalResult";
3
4
  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> {
4
5
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
6
  $$bindings?: Bindings;
@@ -25,10 +26,10 @@ declare const Dialog: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWit
25
26
  actions?: ButtonActions | null;
26
27
  closeConfirm?: DialogCloseConfirm | null;
27
28
  content$style?: string;
28
- closeHandler: () => void;
29
29
  closeAction?: ButtonAction | null;
30
+ onClose?: OnClose | null;
30
31
  dialog$style?: string;
31
- close?: () => Promise<void>;
32
+ close?: (result: ModalResult) => Promise<void>;
32
33
  }, {
33
34
  default: {};
34
35
  }>, {
@@ -36,7 +37,7 @@ declare const Dialog: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWit
36
37
  }, {
37
38
  default: {};
38
39
  }, {
39
- close: () => Promise<void>;
40
+ close: (result: ModalResult) => Promise<void>;
40
41
  }, string>;
41
42
  type Dialog = InstanceType<typeof Dialog>;
42
43
  export default Dialog;
@@ -1,16 +1,13 @@
1
1
  <script lang="ts">
2
2
 
3
-
4
3
  import {onDestroy, onMount} from "svelte";
5
4
  import {initialize} from "./IDialog";
6
5
 
7
6
  import {dialogs} from "./Dialogs";
7
+ import DialogWrapper from "./DialogWrapper.svelte";
8
8
 
9
9
  export const open = (component: any, params: any) => {
10
- let dialog = {id: (new Date().getTime()).toString(36), component, params};
11
- params.closeHandler = () => {
12
- dialogs.removeDialog(dialog.id);
13
- }
10
+ let dialog = {component, params, id: crypto.randomUUID()};
14
11
  dialogs.showDialog(dialog);
15
12
  }
16
13
 
@@ -28,13 +25,19 @@
28
25
  board && board.remove();
29
26
  });
30
27
 
31
-
32
28
  </script>
33
29
 
34
30
  <div bind:this={board} class="uniface-dialog-board" style="display: {$dialogs.length > 0 ? 'block' : 'none'}">
35
31
  <div style="width: 100%; height: 100%; position: relative">
36
- {#each $dialogs as dialog}
37
- <svelte:component this={dialog.component} {...dialog.params}></svelte:component>
32
+ <!--{#each $dialogs as dialog (dialog)}-->
33
+ <!-- <svelte:component bind:this={dialog.instance} this={dialog.component} {...dialog.params}></svelte:component>-->
34
+ <!--{/each}-->
35
+ {#each $dialogs as dialog (dialog.id)}
36
+ <DialogWrapper
37
+ component={dialog.component}
38
+ params={dialog.params}
39
+ closeDialog={() => dialogs.removeDialog(dialog.id)}
40
+ />
38
41
  {/each}
39
42
  </div>
40
43
  </div>
@@ -0,0 +1,10 @@
1
+ <script lang="ts">
2
+ import { setContext } from 'svelte';
3
+ export let component;
4
+ export let params;
5
+ export let closeDialog;
6
+
7
+ setContext('closeDialog', closeDialog);
8
+ </script>
9
+
10
+ <svelte:component this={component} {...params} />
@@ -1,6 +1,3 @@
1
- import type { OnChangeHandler } from "../common/OnChangeHandler";
2
- import type { UniDate } from "../base-calendar/dateUtils";
3
- import { DateFormats } from "../common/DateFormats";
4
1
  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> {
5
2
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
6
3
  $$bindings?: Bindings;
@@ -14,16 +11,12 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
14
11
  };
15
12
  z_$$bindings?: Bindings;
16
13
  }
17
- declare const DateInput: $$__sveltets_2_IsomorphicComponent<{
18
- disabled?: boolean;
19
- readonly?: boolean;
20
- value?: UniDate;
21
- style?: string;
22
- placeholder?: string;
23
- format?: DateFormats;
24
- onChange?: OnChangeHandler<Date>;
14
+ declare const DialogWrapper: $$__sveltets_2_IsomorphicComponent<{
15
+ component: any;
16
+ params: any;
17
+ closeDialog: any;
25
18
  }, {
26
19
  [evt: string]: CustomEvent<any>;
27
20
  }, {}, {}, string>;
28
- type DateInput = InstanceType<typeof DateInput>;
29
- export default DateInput;
21
+ type DialogWrapper = InstanceType<typeof DialogWrapper>;
22
+ export default DialogWrapper;
@@ -11,7 +11,7 @@ function createDialogStore() {
11
11
  });
12
12
  },
13
13
  removeDialog(id) {
14
- update(dialogs => dialogs.filter(dialog => dialog.id !== id));
14
+ update(dialogs => dialogs.filter(d => d.id !== id));
15
15
  },
16
16
  clear() {
17
17
  set([]);
@@ -0,0 +1,5 @@
1
+ export declare enum ModalResult {
2
+ Cancel = 0,//放弃操作,关闭窗口
3
+ Ok = 1
4
+ }
5
+ export type OnClose = (result: ModalResult) => void;
@@ -0,0 +1,5 @@
1
+ export var ModalResult;
2
+ (function (ModalResult) {
3
+ ModalResult[ModalResult["Cancel"] = 0] = "Cancel";
4
+ ModalResult[ModalResult["Ok"] = 1] = "Ok"; //操作完成,正常关闭
5
+ })(ModalResult || (ModalResult = {}));
@@ -23,7 +23,7 @@
23
23
  </script>
24
24
  <div class="uniface-drawer" aria-hidden="true" style="display: {hidden ? 'none' : 'block'}" on:click={()=>{visible=false;}}>
25
25
  {#if visible}
26
- <div class={position} style="width: {width}px" transition:fly={{ x: xPos, duration: 1000, opacity: 0.5 }} aria-hidden="false"
26
+ <div class={position} style="width: {width}px" transition:fly={{ x: xPos, duration: 1000, opacity: 0.5 }} aria-hidden="true"
27
27
  on:outroend={()=>{hidden = !visible}} on:click|stopPropagation>
28
28
  <div>
29
29
  <slot></slot>
@@ -11,6 +11,7 @@
11
11
  export let labelSuffix: string = ':';
12
12
  export let label$alignment: 'center' | 'top' = 'center';
13
13
 
14
+ export let height: string = null as unknown as string;
14
15
 
15
16
  let className: string = '';
16
17
 
@@ -23,7 +24,7 @@
23
24
  {/if}
24
25
  <span>{label}{labelSuffix}</span>
25
26
  </div>
26
- <div class="field" style="">
27
+ <div class="field" style="height: {height??'auto'}">
27
28
  <slot/>
28
29
  </div>
29
30
  {#if !utils.isEmpty(error)}
@@ -25,6 +25,7 @@ declare const FormField: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_Props
25
25
  error?: string | null;
26
26
  labelSuffix?: string;
27
27
  label$alignment?: "center" | "top";
28
+ height?: string;
28
29
  }, {
29
30
  default: {};
30
31
  }>, {
@@ -7,7 +7,7 @@
7
7
  let className: string = "";
8
8
 
9
9
  </script>
10
- <div class="flex-row-form" class:field-layout-horizontal={fieldLayout=='horizontal'} {style}>
10
+ <div class="flex-row-form {className}" class:field-layout-horizontal={fieldLayout=='horizontal'} {style}>
11
11
  <div>
12
12
  <slot/>
13
13
  </div>
@@ -2,19 +2,20 @@
2
2
 
3
3
  export let rowSpan: number = 1;
4
4
  export let colSpan: number = 1;
5
- export let row: number = null;
6
- export let col: number = null;
5
+ export let row: number;
6
+ export let col: number;
7
7
 
8
8
  let style: string;
9
9
 
10
10
  $: {
11
- style = rowSpan > 1 ? `grid-row-end: span ${rowSpan};` : '';
12
- style += colSpan > 1 ? `grid-column-end: span ${colSpan};` : '';
13
- style += row != null ? `grid-row-start: span ${row};` : '';
14
- style += col != null ? `grid-column-start: span ${col};` : '';
11
+ style = '';
12
+ if (row != null) style += `grid-row-start: ${row};`;
13
+ if (col != null) style += `grid-column-start: ${col};`;
14
+ if (rowSpan > 1) style += `grid-row-end: span ${rowSpan};`;
15
+ if (colSpan > 1) style += `grid-column-end: span ${colSpan};`;
15
16
  }
16
17
 
17
18
 
18
19
  </script>
19
- <div class="cell-field" {style}>
20
+ <div class="cell-field" {style}>
20
21
  </div>
@@ -14,8 +14,8 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
14
14
  declare const EmptyCell: $$__sveltets_2_IsomorphicComponent<{
15
15
  rowSpan?: number;
16
16
  colSpan?: number;
17
- row?: number;
18
- col?: number;
17
+ row: number;
18
+ col: number;
19
19
  }, {
20
20
  [evt: string]: CustomEvent<any>;
21
21
  }, {}, {}, string>;
@@ -26,6 +26,6 @@
26
26
 
27
27
 
28
28
  </script>
29
- <FormField class="form-cell" {label$style} {labelSuffix} {style} {label} {required} {error} {arrangement} {height}>
29
+ <FormField class="form-cell {arrangement}" {label$style} {labelSuffix} {style} {label} {required} {error} {height}>
30
30
  <slot/>
31
31
  </FormField>
@@ -0,0 +1,2 @@
1
+ declare const i18nRes: any;
2
+ export default i18nRes;
@@ -0,0 +1,44 @@
1
+ import { i18nUtils } from "@ticatec/i18n";
2
+ const langRes = {
3
+ common: {
4
+ btnClose: "Close",
5
+ btnCancel: 'Cancel',
6
+ btnConfirm: "OK",
7
+ textMore: "Load more",
8
+ },
9
+ colorPicker: "Pick up color",
10
+ calendar: {
11
+ months: [
12
+ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'
13
+ ],
14
+ monthsAbbr: [
15
+ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
16
+ ],
17
+ weekTitle: [
18
+ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
19
+ ],
20
+ weekTitleAbbr: [
21
+ "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat"
22
+ ],
23
+ confirmText: "OK"
24
+ },
25
+ upload: {
26
+ btnRetry: "Retry",
27
+ btnRemove: "Delete",
28
+ btnPickup: "Pickup files"
29
+ },
30
+ propertyEditor: {
31
+ colName: "Attribute",
32
+ colValue: "Value"
33
+ },
34
+ dataTable: {
35
+ rowNo: "#",
36
+ actions: "Actions",
37
+ emptyDataSet: 'Empty dataset'
38
+ },
39
+ transfer: {
40
+ selectIndicator: "Selected: {{selected}}/{{total}}"
41
+ }
42
+ };
43
+ const i18nRes = i18nUtils.createResourceProxy(langRes, 'uniface');
44
+ export default i18nRes;
@@ -0,0 +1,2 @@
1
+ import i18nRes from "./i18nRes";
2
+ export default i18nRes;
@@ -0,0 +1,2 @@
1
+ import i18nRes from "./i18nRes";
2
+ export default i18nRes;
@@ -62,7 +62,7 @@
62
62
  <div class="uniface-display-field images-field">
63
63
  {#each files as file}
64
64
  <div>
65
- <img width="40" height="40" src={file.thumbnail??file.uri}/>
65
+ <img width="40" height="40" alt="file" src={file.thumbnail??file.uri}>
66
66
  <div class="img-file-name">
67
67
  <span>{file.name}</span>
68
68
  </div>
@@ -38,7 +38,7 @@
38
38
 
39
39
  <div bind:this={board} class="uniface-indicator-board" style="display: {visible ? 'flex' : 'none'}">
40
40
  <div style="display: flex; flex-direction: row; justify-items: center">
41
- <img src={iconLoading} width="32px" height="32px"/>
41
+ <img src={iconLoading} alt="loading" width="32px" height="32px"/>
42
42
  <span style="padding-left: 12px">{indicator}</span>
43
43
  </div>
44
44
  </div>
@@ -6,6 +6,7 @@
6
6
  export let props: any;
7
7
  export let active: boolean;
8
8
 
9
+ console.warn("Invalid type", readonly, props, active);
9
10
 
10
11
  </script>
11
12
  <div>
@@ -4,10 +4,10 @@
4
4
  import type {OnChangeHandler} from "../common/OnChangeHandler";
5
5
  import {tick} from "svelte";
6
6
  import type {LazyLoader} from "../list-box/types"
7
+ import i18nRes from "../i18nRes";
7
8
 
8
9
  import loading from "../assets/loading.gif"
9
10
  import CommonPicker from "../common/CommonPicker.svelte";
10
- import i18n from "@ticatec/i18n";
11
11
 
12
12
  export let variant: '' | 'plain' | 'outlined' | 'filled' = '';
13
13
  export let disabled: boolean = false;
@@ -23,7 +23,7 @@
23
23
  export let displayMode: DisplayMode = DisplayMode.Edit;
24
24
  export let itemRender: any = null;
25
25
  export let onChange: OnChangeHandler<any> = null as unknown as OnChangeHandler<any>;
26
- export let lazyLoader: LazyLoader;
26
+ export let lazyLoader: LazyLoader = null as unknown as LazyLoader;
27
27
 
28
28
  let editor: any;
29
29
  let inputText: string;
@@ -131,7 +131,7 @@
131
131
 
132
132
  const loadMore = async () => {
133
133
  editor.focus();
134
- if (lazyLoader && !isBusy && hasMore) {
134
+ if (lazyLoader != null && !isBusy && hasMore) {
135
135
  pageNo++;
136
136
  await lazyLoad(false);
137
137
  }
@@ -154,7 +154,7 @@
154
154
  {#if isBusy}
155
155
  <div style="position: absolute; top: 0px; bottom: 0px; right: 8px">
156
156
  <div style="position: relative; top: 50%; transform: translateY(-50%)">
157
- <img src={loading} width="16" height="16"/>
157
+ <img src={loading} alt="loading" width="16" height="16"/>
158
158
  </div>
159
159
  </div>
160
160
  {/if}
@@ -171,8 +171,8 @@
171
171
  </div>
172
172
  {/each}
173
173
  {#if hasMore}
174
- <div class="more-indicator-footer" on:click={loadMore}>
175
- {i18n.getText('uniface.loadMore', 'Load more')}
174
+ <div class="more-indicator-footer" aria-hidden="true" on:click={loadMore}>
175
+ {i18nRes.common.textMore}
176
176
  </div>
177
177
  {/if}
178
178
  {#if isBusy}
@@ -29,7 +29,7 @@ declare const InputOptionsSelect: $$__sveltets_2_IsomorphicComponent<{
29
29
  displayMode?: DisplayMode;
30
30
  itemRender?: any;
31
31
  onChange?: OnChangeHandler<any>;
32
- lazyLoader: LazyLoader;
32
+ lazyLoader?: LazyLoader;
33
33
  }, {
34
34
  [evt: string]: CustomEvent<any>;
35
35
  }, {}, {}, string>;
@@ -12,6 +12,6 @@
12
12
  let className:string = '';
13
13
 
14
14
  </script>
15
- <div class:flex class="flex-block {flex ? direction : ''}" class:fixed class:grow class:shrink class:auto_fit={autoFit} {style}>
15
+ <div class:flex class="flex-block {className} {flex ? direction : ''}" class:fixed class:grow class:shrink class:auto_fit={autoFit} {style}>
16
16
  <slot/>
17
17
  </div>
@@ -32,7 +32,7 @@
32
32
  onChange?.(value)
33
33
  }
34
34
 
35
- const handleActionIconClick = () => {
35
+ const handleActionIconClick = async (event: MouseEvent) => {
36
36
  onAction?.();
37
37
  }
38
38
 
@@ -53,7 +53,7 @@
53
53
  }
54
54
  });
55
55
 
56
- const clean = () => {
56
+ const clean = async () => {
57
57
  value='';
58
58
  }
59
59
 
@@ -78,7 +78,7 @@
78
78
  {/if}
79
79
  {#if !disabled && value && value.length > 0}
80
80
  <div class="action-button-wrapper" style="position: absolute; top: 0; left: 0; width: {width}px;">
81
- <Icon name="icon_google_clear" clickable class="uniface-editor-clean-icon" onClick={clean}/>
81
+ <Icon name="icon_google_clear" class="uniface-editor-clean-icon" onClick={clean}/>
82
82
  </div>
83
83
  {/if}
84
84
  </div>
@@ -10,14 +10,12 @@ declare enum ModalResult {
10
10
  MR_CLOSE = 3
11
11
  }
12
12
  declare const InfoButtons: {
13
- text: string;
14
- key: string;
13
+ text: any;
15
14
  type: string;
16
15
  result: ModalResult;
17
16
  }[];
18
17
  declare const ConfirmButtons: {
19
- text: string;
20
- key: string;
18
+ text: any;
21
19
  type: string;
22
20
  result: ModalResult;
23
21
  }[];