@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
@@ -0,0 +1,177 @@
1
+ # OptionsMultiSelect Component
2
+
3
+ Multi-selection dropdown component that allows selecting multiple values from options, displaying them as tags.
4
+
5
+ ## Properties
6
+
7
+ | Property | Type | Default | Description |
8
+ |----------|------|---------|-------------|
9
+ | `variant` | `'' \| 'plain' \| 'outlined' \| 'filled'` | `''` | Appearance variant |
10
+ | `disabled` | `boolean` | `false` | Whether disabled |
11
+ | `readonly` | `boolean` | `false` | Whether read-only |
12
+ | `compact` | `boolean` | `false` | Whether compact mode |
13
+ | `value` | `string` | `''` | Selected values (joined by delimiter) |
14
+ | `delimiter` | `string` | `';'` | Value delimiter |
15
+ | `options` | `Array<any>` | `[]` | Options array |
16
+ | `keyField` | `string` | `'code'` | Value field name |
17
+ | `textField` | `string` | `'text'` | Display field name |
18
+ | `placeholder` | `string` | `''` | Placeholder text |
19
+ | `emptyText` | `string` | `''` | Empty value display text |
20
+ | `disableOptions` | `Array<string>` | `[]` | Disabled option values |
21
+ | `hideOptions` | `Array<string>` | `[]` | Hidden option values |
22
+ | `displayMode` | `DisplayMode` | `DisplayMode.Edit` | Display mode |
23
+ | `menu$height` | `number` | `0` | Dropdown menu height |
24
+ | `tagColor` | `string` | `''` | Tag color |
25
+ | `tagVariant` | `'borderless' \| 'border' \| 'round'` | `'border'` | Tag style |
26
+ | `style` | `string` | `''` | Custom styles |
27
+ | `onChange` | `OnChangeHandler<Array<string>>` | - | Value change callback |
28
+
29
+ ## Usage Examples
30
+
31
+ ```svelte
32
+ <script lang="ts">
33
+ import OptionsMultiSelect from '@ticatec/uniface-element/OptionsMultiSelect';
34
+
35
+ interface Option {
36
+ code: string;
37
+ text: string;
38
+ }
39
+
40
+ // Skill options
41
+ const skills: Option[] = [
42
+ { code: 'js', text: 'JavaScript' },
43
+ { code: 'ts', text: 'TypeScript' },
44
+ { code: 'svelte', text: 'Svelte' },
45
+ { code: 'vue', text: 'Vue.js' },
46
+ { code: 'react', text: 'React' },
47
+ { code: 'node', text: 'Node.js' },
48
+ { code: 'python', text: 'Python' },
49
+ { code: 'java', text: 'Java' }
50
+ ];
51
+
52
+ // Hobby options
53
+ const hobbies: Option[] = [
54
+ { code: 'reading', text: 'Reading' },
55
+ { code: 'music', text: 'Music' },
56
+ { code: 'sports', text: 'Sports' },
57
+ { code: 'travel', text: 'Travel' },
58
+ { code: 'photography', text: 'Photography' },
59
+ { code: 'cooking', text: 'Cooking' }
60
+ ];
61
+
62
+ let selectedSkills: string = '';
63
+ let selectedHobbies: string = '';
64
+
65
+ const handleSkillsChange = (values: string[]): void => {
66
+ console.log('Selected skills:', values);
67
+ };
68
+
69
+ const handleHobbiesChange = (values: string[]): void => {
70
+ console.log('Selected hobbies:', values);
71
+ };
72
+ </script>
73
+
74
+ <!-- Skills multi-select -->
75
+ <OptionsMultiSelect
76
+ placeholder="Please select your skills"
77
+ options={skills}
78
+ keyField="code"
79
+ textField="text"
80
+ bind:value={selectedSkills}
81
+ onChange={handleSkillsChange}
82
+ />
83
+
84
+ <!-- Hobbies multi-select (round tags) -->
85
+ <OptionsMultiSelect
86
+ placeholder="Please select your hobbies"
87
+ options={hobbies}
88
+ keyField="code"
89
+ textField="text"
90
+ tagVariant="round"
91
+ tagColor="#007bff"
92
+ bind:value={selectedHobbies}
93
+ onChange={handleHobbiesChange}
94
+ />
95
+ ```
96
+
97
+ ## Advanced Usage
98
+
99
+ ### Dynamic Options Management
100
+ ```svelte
101
+ <script lang="ts">
102
+ interface Category {
103
+ id: string;
104
+ name: string;
105
+ parent_id: string | null;
106
+ }
107
+
108
+ let selectedCategories: string = '';
109
+ let availableCategories: Category[] = [];
110
+ let userLevel: 'basic' | 'premium' | 'admin' = 'basic';
111
+
112
+ // Filter available categories based on user level
113
+ $: filteredCategories = availableCategories.filter(cat => {
114
+ if (userLevel === 'basic') {
115
+ return cat.parent_id === null; // Only show top-level categories
116
+ } else if (userLevel === 'premium') {
117
+ return true; // Show all categories
118
+ } else {
119
+ return true; // Admin sees all categories
120
+ }
121
+ });
122
+
123
+ // Set disabled options based on user level
124
+ $: disabledOptions = userLevel === 'basic'
125
+ ? availableCategories.filter(cat => cat.parent_id !== null).map(cat => cat.id)
126
+ : [];
127
+ </script>
128
+
129
+ <OptionsMultiSelect
130
+ placeholder="Please select categories"
131
+ options={filteredCategories}
132
+ keyField="id"
133
+ textField="name"
134
+ {disabledOptions}
135
+ bind:value={selectedCategories}
136
+ />
137
+ ```
138
+
139
+ ## Best Practices
140
+
141
+ ### 1. Limit Selection Count
142
+ ```svelte
143
+ <script lang="ts">
144
+ let selectedTags: string = '';
145
+ let maxTags: number = 5;
146
+ let tagError: string = '';
147
+
148
+ const handleTagsChange = (values: string[]): void => {
149
+ if (values.length > maxTags) {
150
+ tagError = `Maximum ${maxTags} tags allowed`;
151
+ // Keep only first maxTags items
152
+ selectedTags = values.slice(0, maxTags).join(';');
153
+ } else {
154
+ tagError = '';
155
+ }
156
+ };
157
+ </script>
158
+
159
+ <OptionsMultiSelect
160
+ options={tagOptions}
161
+ bind:value={selectedTags}
162
+ onChange={handleTagsChange}
163
+ />
164
+ {#if tagError}
165
+ <div class="error-message">{tagError}</div>
166
+ {/if}
167
+ ```
168
+
169
+ ### 2. Custom Tag Styling
170
+ ```svelte
171
+ <OptionsMultiSelect
172
+ options={colorOptions}
173
+ tagVariant="round"
174
+ tagColor="var(--primary-color)"
175
+ bind:value={selectedColors}
176
+ />
177
+ ```
@@ -0,0 +1,83 @@
1
+ # OptionsSelect Component
2
+
3
+ Single-selection dropdown component for selecting one value from predefined options.
4
+
5
+ ## Properties
6
+
7
+ | Property | Type | Default | Description |
8
+ |----------|------|---------|-------------|
9
+ | `variant` | `'' \| 'plain' \| 'outlined' \| 'filled'` | `''` | Appearance variant |
10
+ | `disabled` | `boolean` | `false` | Whether disabled |
11
+ | `readonly` | `boolean` | `false` | Whether read-only |
12
+ | `compact` | `boolean` | `false` | Whether compact mode |
13
+ | `value` | `any` | `null` | Selected value |
14
+ | `options` | `Array<any>` | `[]` | Options array |
15
+ | `keyField` | `string` | `'code'` | Value field name |
16
+ | `textField` | `string` | `'text'` | Display field name |
17
+ | `placeholder` | `string` | `''` | Placeholder text |
18
+ | `emptyText` | `string` | `''` | Empty value display text |
19
+ | `disableOptions` | `Array<string>` | `[]` | Disabled option values |
20
+ | `hideOptions` | `Array<string>` | `[]` | Hidden option values |
21
+ | `displayMode` | `DisplayMode` | `DisplayMode.Edit` | Display mode |
22
+ | `menu$height` | `number` | `0` | Dropdown menu height |
23
+ | `style` | `string` | `''` | Custom styles |
24
+ | `onChange` | `OnChangeHandler<any>` | - | Value change callback |
25
+
26
+ ## Usage Examples
27
+
28
+ ```svelte
29
+ <script lang="ts">
30
+ import OptionsSelect from '@ticatec/uniface-element/OptionsSelect';
31
+
32
+ // Country options
33
+ const countries = [
34
+ { code: 'US', text: 'United States' },
35
+ { code: 'GB', text: 'United Kingdom' },
36
+ { code: 'CA', text: 'Canada' },
37
+ { code: 'AU', text: 'Australia' },
38
+ { code: 'DE', text: 'Germany' }
39
+ ];
40
+
41
+ // Status options
42
+ const statuses = [
43
+ { code: 'active', text: 'Active' },
44
+ { code: 'inactive', text: 'Inactive' },
45
+ { code: 'pending', text: 'Pending' },
46
+ { code: 'suspended', text: 'Suspended' }
47
+ ];
48
+
49
+ let selectedCountry = '';
50
+ let userStatus = 'active';
51
+
52
+ const handleCountryChange = (value: string) => {
53
+ selectedCountry = value;
54
+ console.log('Selected country:', value);
55
+ };
56
+
57
+ const handleStatusChange = (value: string) => {
58
+ userStatus = value;
59
+ console.log('User status:', value);
60
+ };
61
+ </script>
62
+
63
+ <!-- Country selection -->
64
+ <OptionsSelect
65
+ placeholder="Please select country"
66
+ options={countries}
67
+ keyField="code"
68
+ textField="text"
69
+ bind:value={selectedCountry}
70
+ onChange={handleCountryChange}
71
+ />
72
+
73
+ <!-- User status selection (with disabled options) -->
74
+ <OptionsSelect
75
+ placeholder="Please select status"
76
+ options={statuses}
77
+ keyField="code"
78
+ textField="text"
79
+ disableOptions={['suspended']}
80
+ bind:value={userStatus}
81
+ onChange={handleStatusChange}
82
+ />
83
+ ```