@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.
- package/README.md +320 -1
- package/README_CN.md +392 -0
- package/dist/accordion/Accordion.svelte +1 -1
- package/dist/action-bar/ActionBar.svelte +7 -1
- package/dist/attachment-files/FileRender.svelte +1 -1
- package/dist/attachment-files/FileUploadBar.svelte +7 -6
- package/dist/attachment-files/FileUploadPanel.svelte +2 -2
- package/dist/base-calendar/DateContext.js +5 -4
- package/dist/base-calendar/YearPickupPanel.svelte +4 -4
- package/dist/card/Card.svelte +1 -1
- package/dist/card/Card.svelte.d.ts +1 -1
- package/dist/cascade-options-select/CascadeOptionSelect.svelte +2 -3
- package/dist/cascade-options-select/CascadeOptionSelect.svelte.d.ts +46 -1
- package/dist/cascade-options-select/CascadePanel.svelte +1 -1
- package/dist/checkbox/CheckBox.svelte +1 -1
- package/dist/color-picker/ColorPicker.svelte +9 -9
- package/dist/color-picker/ColorPicker.svelte.d.ts +0 -2
- package/dist/color-picker/ColorPickerPanel.svelte +11 -15
- package/dist/color-picker/ColorPickerPanel.svelte.d.ts +1 -1
- package/dist/common/CommonPicker.svelte +2 -2
- package/dist/common/CommonPicker.svelte.d.ts +1 -1
- package/dist/common/MouseClickHandler.d.ts +1 -1
- package/dist/common/Popover.svelte +28 -6
- package/dist/common/Popover.svelte.d.ts +9 -3
- package/dist/common/uniface-utils.js +6 -4
- package/dist/common-editor/CommonEditor.svelte +1 -1
- package/dist/common-editor/CommonEditor.svelte.d.ts +1 -1
- package/dist/common-editor/NumberInput.svelte +1 -1
- package/dist/common-editor/NumberInput.svelte.d.ts +1 -1
- package/dist/concise-data-table/ConciseListTable.svelte +7 -2
- package/dist/concise-data-table/ConciseListTable.svelte.d.ts +1 -0
- package/dist/concise-data-table/DataRow.svelte +1 -1
- package/dist/concise-data-table/TableOptions.d.ts +1 -1
- package/dist/data-table/DataTable.svelte +1 -1
- package/dist/data-table/parts/ActionsPanel.svelte +4 -3
- package/dist/data-table/parts/ActionsRow.svelte +3 -3
- package/dist/data-table/parts/ContentPanel.svelte +3 -2
- package/dist/data-table/parts/FixedColumnsPanel.svelte +0 -1
- package/dist/data-table/parts/FixedColumnsPanel.svelte.d.ts +1 -2
- package/dist/data-table/parts/FixedHeaderPanel.svelte +2 -2
- package/dist/data-table/parts/FixedRow.svelte +2 -1
- package/dist/data-table/parts/FixedRow.svelte.d.ts +1 -1
- package/dist/data-table/parts/HrefCell.svelte +23 -2
- package/dist/data-table/parts/PopupMenu.svelte +25 -2
- package/dist/data-table/parts/PopupMenu.svelte.d.ts +8 -1
- package/dist/date-picker/DatePicker.svelte +0 -1
- package/dist/date-picker/DateTimePicker.svelte +3 -3
- package/dist/date-picker/ScrollBar.svelte +4 -7
- package/dist/date-range/DateRangeEditor.svelte +1 -1
- package/dist/dialog/CommonDialog.svelte +8 -5
- package/dist/dialog/CommonDialog.svelte.d.ts +2 -1
- package/dist/dialog/Dialog.svelte +37 -12
- package/dist/dialog/Dialog.svelte.d.ts +4 -3
- package/dist/dialog/DialogBoard.svelte +11 -8
- package/dist/dialog/DialogWrapper.svelte +10 -0
- package/dist/{common-editor/DateInput.svelte.d.ts → dialog/DialogWrapper.svelte.d.ts} +6 -13
- package/dist/dialog/Dialogs.js +1 -1
- package/dist/dialog/ModalResult.d.ts +5 -0
- package/dist/dialog/ModalResult.js +5 -0
- package/dist/drawer/Drawer.svelte +1 -1
- package/dist/form-field/FormField.svelte +2 -1
- package/dist/form-field/FormField.svelte.d.ts +1 -0
- package/dist/form-panel/flex-row-form/FormContainer.svelte +1 -1
- package/dist/form-panel/grid-form/EmptyCell.svelte +8 -7
- package/dist/form-panel/grid-form/EmptyCell.svelte.d.ts +2 -2
- package/dist/form-panel/grid-form/GridField.svelte +1 -1
- package/dist/i18nRes/i18nRes.d.ts +2 -0
- package/dist/i18nRes/i18nRes.js +44 -0
- package/dist/i18nRes/index.d.ts +2 -0
- package/dist/i18nRes/index.js +2 -0
- package/dist/image-files/ImageFilesField.svelte +1 -1
- package/dist/indicator/IndicatorBoard.svelte +1 -1
- package/dist/inline-cell-editor/InvalidEditor.svelte +1 -0
- package/dist/input-options-select/InputOptionsSelect.svelte +6 -6
- package/dist/input-options-select/InputOptionsSelect.svelte.d.ts +1 -1
- package/dist/layout/flex/FlexBlock.svelte +1 -1
- package/dist/lookup-editor/LookupEditor.svelte +1 -1
- package/dist/memo-editor/MemoEditor.svelte +2 -2
- package/dist/message-box/IMessageBox.d.ts +2 -4
- package/dist/message-box/IMessageBox.js +4 -6
- package/dist/message-box/MessageBoxBoard.svelte +1 -3
- package/dist/options-multi-select/OptionsMultiSelect.svelte +1 -1
- package/dist/prompts-text-editor/PromptsTextEditor.svelte +2 -2
- package/dist/prompts-text-editor/PromptsTextEditor.svelte.d.ts +1 -1
- package/dist/property-editor/PropertyEditor.svelte +3 -3
- package/dist/text-editor/PasswordEditor.svelte +1 -1
- package/dist/transfer/Transfer.svelte +17 -12
- package/dist/transfer/Transfer.svelte.d.ts +0 -1
- package/dist/unit-number-editor/UnitNumberEditor.svelte +2 -2
- package/docs/buttons/cn/ActionBar.md +459 -0
- package/docs/buttons/cn/Button.md +228 -0
- package/docs/buttons/cn/IconButton.md +294 -0
- package/docs/buttons/cn/README.md +600 -0
- package/docs/buttons/cn/TextButton.md +163 -0
- package/docs/buttons/en/ActionBar.md +459 -0
- package/docs/buttons/en/Button.md +228 -0
- package/docs/buttons/en/IconButton.md +294 -0
- package/docs/buttons/en/README.md +600 -0
- package/docs/buttons/en/TextButton.md +163 -0
- package/docs/containers/cn/accordion.md +622 -0
- package/docs/containers/cn/box.md +445 -0
- package/docs/containers/cn/card.md +404 -0
- package/docs/containers/cn/page.md +576 -0
- package/docs/containers/cn/tabs.md +686 -0
- package/docs/containers/en/accordion.md +622 -0
- package/docs/containers/en/box.md +445 -0
- package/docs/containers/en/card.md +404 -0
- package/docs/containers/en/page.md +576 -0
- package/docs/containers/en/tabs.md +686 -0
- package/docs/data-display/cn/concise-data-table.md +731 -0
- package/docs/data-display/cn/listbox.md +786 -0
- package/docs/data-display/cn/treeview.md +863 -0
- package/docs/data-display/en/concise-data-table.md +732 -0
- package/docs/data-display/en/listbox.md +786 -0
- package/docs/data-display/en/treeview.md +863 -0
- package/docs/data-table/cn/README.md +596 -0
- package/docs/data-table/en/README.md +596 -0
- package/docs/dialog/cn/README.md +767 -0
- package/docs/dialog/en/README.md +767 -0
- package/docs/form/cn/README.md +847 -0
- package/docs/form/en/README.md +847 -0
- package/docs/form-components/cn/README.md +495 -0
- package/docs/form-components/cn/attachmentfilesfield.md +757 -0
- package/docs/form-components/cn/cascade-options-select.md +374 -0
- package/docs/form-components/cn/checkbox.md +58 -0
- package/docs/form-components/cn/date-picker.md +138 -0
- package/docs/form-components/cn/datetime-picker.md +228 -0
- package/docs/form-components/cn/group-checkbox.md +405 -0
- package/docs/form-components/cn/group-radiobox.md +525 -0
- package/docs/form-components/cn/imagefilesfield.md +651 -0
- package/docs/form-components/cn/input-options-select.md +250 -0
- package/docs/form-components/cn/lookup-editor.md +406 -0
- package/docs/form-components/cn/memoeditor.md +409 -0
- package/docs/form-components/cn/number-editor.md +261 -0
- package/docs/form-components/cn/options-multi-select.md +177 -0
- package/docs/form-components/cn/options-select.md +83 -0
- package/docs/form-components/cn/passwordeditor.md +538 -0
- package/docs/form-components/cn/prompts-text-editor.md +241 -0
- package/docs/form-components/cn/radiobutton.md +84 -0
- package/docs/form-components/cn/switch.md +178 -0
- package/docs/form-components/cn/text-editor.md +142 -0
- package/docs/form-components/cn/time-editor.md +159 -0
- package/docs/form-components/cn/unit-number-editor.md +164 -0
- package/docs/form-components/en/README.md +463 -0
- package/docs/form-components/en/attachmentfilesfield.md +757 -0
- package/docs/form-components/en/cascade-options-select.md +358 -0
- package/docs/form-components/en/checkbox.md +59 -0
- package/docs/form-components/en/date-picker.md +138 -0
- package/docs/form-components/en/datetime-picker.md +228 -0
- package/docs/form-components/en/group-checkbox.md +395 -0
- package/docs/form-components/en/group-radiobox.md +498 -0
- package/docs/form-components/en/imagefilesfield.md +651 -0
- package/docs/form-components/en/input-options-select.md +239 -0
- package/docs/form-components/en/lookup-editor.md +389 -0
- package/docs/form-components/en/memoeditor.md +409 -0
- package/docs/form-components/en/number-editor.md +249 -0
- package/docs/form-components/en/options-multi-select.md +177 -0
- package/docs/form-components/en/options-select.md +83 -0
- package/docs/form-components/en/passwordeditor.md +538 -0
- package/docs/form-components/en/prompts-text-editor.md +241 -0
- package/docs/form-components/en/radiobutton.md +84 -0
- package/docs/form-components/en/switch.md +180 -0
- package/docs/form-components/en/text-editor.md +142 -0
- package/docs/form-components/en/time-editor.md +159 -0
- package/docs/form-components/en/unit-number-editor.md +164 -0
- package/docs/form-layout/cn/criteria-field.md +652 -0
- package/docs/form-layout/cn/flex-form.md +454 -0
- package/docs/form-layout/cn/flex-row-form.md +542 -0
- package/docs/form-layout/cn/form-field.md +923 -0
- package/docs/form-layout/cn/grid-form.md +676 -0
- package/docs/form-layout/en/criteria-field.md +652 -0
- package/docs/form-layout/en/flex-form.md +454 -0
- package/docs/form-layout/en/flex-row-form.md +542 -0
- package/docs/form-layout/en/form-field.md +923 -0
- package/docs/form-layout/en/grid-form.md +676 -0
- package/docs/global/cn/README.md +534 -0
- package/docs/global/en/README.md +534 -0
- package/docs/layout/cn/classiclayout.md +460 -0
- package/docs/layout/cn/headerlayout.md +524 -0
- package/docs/layout/cn/sidebarlayout.md +263 -0
- package/docs/layout/en/classiclayout.md +951 -0
- package/docs/layout/en/headerlayout.md +524 -0
- package/docs/layout/en/sidebarlayout.md +262 -0
- package/docs/misc/cn/README.md +1217 -0
- package/docs/misc/en/README.md +1217 -0
- package/docs/navigation/cn/breadcrumb.md +291 -0
- package/docs/navigation/cn/navigator.md +322 -0
- package/docs/navigation/cn/navigatormenu.md +512 -0
- package/docs/navigation/cn/progressbar.md +199 -0
- package/docs/navigation/cn/progressstepbar.md +299 -0
- package/docs/navigation/en/breadcrumb.md +291 -0
- package/docs/navigation/en/navigator.md +322 -0
- package/docs/navigation/en/navigatormenu.md +512 -0
- package/docs/navigation/en/progressbar.md +199 -0
- package/docs/navigation/en/progressstepbar.md +299 -0
- package/docs/search-filters/cn/daterange.md +1156 -0
- package/docs/search-filters/cn/numberrange.md +688 -0
- package/docs/search-filters/cn/searchbox.md +1582 -0
- package/docs/search-filters/en/daterange.md +1156 -0
- package/docs/search-filters/en/numberrange.md +688 -0
- package/docs/search-filters/en/searchbox.md +1582 -0
- package/package.json +53 -13
- package/dist/common-editor/DateInput.svelte +0 -27
- package/dist/i18n_resources/index.d.ts +0 -3
- package/dist/i18n_resources/index.js +0 -3
- /package/dist/{i18n_resources → i18nRes}/uniface_cn_resource.d.ts +0 -0
- /package/dist/{i18n_resources → i18nRes}/uniface_cn_resource.js +0 -0
- /package/dist/{i18n_resources → i18nRes}/uniface_en_resource.d.ts +0 -0
- /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
|
+
```
|