plugin-ui-for-kzt 0.0.61 → 0.0.62

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plugin-ui-for-kzt",
3
- "version": "0.0.61",
3
+ "version": "0.0.62",
4
4
  "description": "plugin-ui for kazaktelekom",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -166,6 +166,7 @@ const props = withDefaults( defineProps<ICoreSelectProps & {
166
166
  options: () => [] as ICoreSelectOption[],
167
167
  size: 'medium',
168
168
  searchable: false,
169
+ clearOnSelect: false,
169
170
  } );
170
171
 
171
172
  const emit = defineEmits<{
@@ -199,13 +200,19 @@ watch( () => props.modelValue, ( val ) => {
199
200
  }
200
201
  }, { immediate: true } );
201
202
 
202
- function handleInput( value: TSelectValue ) {
203
+ function handleInput( value: TSelectValue, isOptionSelection = false ) {
203
204
  if ( props.readonly || props.disabled ) {
204
205
  return;
205
206
  }
206
207
  actualValue.value = value;
207
208
  emit( 'update:modelValue', value );
208
209
  emit( 'change', value );
210
+
211
+ if ( props.clearOnSelect && isOptionSelection ) {
212
+ actualValue.value = '';
213
+ emit( 'update:modelValue', '' );
214
+ }
215
+
209
216
  dropdownVisible.value = false;
210
217
  searchQuery.value = '';
211
218
  }
@@ -226,7 +233,7 @@ function handleInputChange( event: Event ) {
226
233
  );
227
234
 
228
235
  if ( exactMatch ) {
229
- handleInput( exactMatch.id );
236
+ handleInput( exactMatch.id, true );
230
237
  return;
231
238
  }
232
239
 
@@ -295,7 +302,7 @@ const listItemAttrs = computed( () => ( item: ICoreSelectOption ) => ({
295
302
  style: item.style,
296
303
  disabled: item.disabled,
297
304
  class: 'base-select__item',
298
- onClick: () => handleInput( item.id ),
305
+ onClick: () => handleInput( item.id, true ),
299
306
  }) );
300
307
 
301
308
  const classList = computed( () => [
@@ -30,6 +30,7 @@
30
30
  v-model="selectedEmployee"
31
31
  :options="employeeOptions"
32
32
  searchable
33
+ clear-on-select
33
34
  placeholder="Найти сотрудника..."
34
35
  label="Выберите сотрудника"
35
36
  :error="employeeError"
@@ -158,6 +159,9 @@ const handleSearchError = () => {
158
159
  - `searchable?: boolean`
159
160
  **Включает режим поиска. При `true` заменяет обычный заголовок на поле ввода для поиска. Идеально подходит для server-side поиска больших наборов данных.
160
161
 
162
+ - `clearOnSelect?: boolean`
163
+ Очищает текущее значение после выбора опции. При этом событие `change` получает выбранный `id`, а `v-model` возвращается в пустое значение.
164
+
161
165
  - `multiple?: boolean`
162
166
  Поддержка множественного выбора (не реализовано в текущем компоненте, зарезервировано).
163
167
 
@@ -65,6 +65,7 @@ export interface ICoreSelectBaseProps {
65
65
  label?: string
66
66
  hint?: string
67
67
  searchable?: boolean
68
+ clearOnSelect?: boolean
68
69
  variant?: 'variant-blue'
69
70
  }
70
71