@ouestfrance/sipa-bms-ui 8.8.1 → 8.9.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.
@@ -0,0 +1,30 @@
1
+ import { InputOption } from '../../models';
2
+ import { FieldComponentProps } from '../../plugins/field/field-component.model';
3
+ export interface Props extends FieldComponentProps {
4
+ url?: string;
5
+ request?: (abortController: AbortController, inputValue?: string, url?: string) => Promise<{
6
+ data: InputOption[];
7
+ }>;
8
+ modelValue?: string;
9
+ placeholder?: string;
10
+ open?: boolean;
11
+ }
12
+ type __VLS_Props = Props;
13
+ type __VLS_PublicProps = {
14
+ 'modelValue'?: string;
15
+ } & __VLS_Props;
16
+ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
17
+ select: (option: InputOption) => any;
18
+ addNewOption: (newOption: string) => any;
19
+ "update:modelValue": (value: string) => any;
20
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
21
+ onSelect?: ((option: InputOption) => any) | undefined;
22
+ onAddNewOption?: ((newOption: string) => any) | undefined;
23
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
24
+ }>, {
25
+ open: boolean;
26
+ request: (abortController: AbortController, inputValue?: string | undefined, url?: string | undefined) => Promise<{
27
+ data: InputOption[];
28
+ }>;
29
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
30
+ export default _default;
@@ -23,6 +23,7 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__
23
23
  onAddNewOption?: ((newOption: string) => any) | undefined;
24
24
  "onUpdate:modelValue"?: ((value: string | null) => any) | undefined;
25
25
  }>, {
26
+ canAddNewOption: boolean;
26
27
  modelValue: string | null;
27
28
  open: boolean;
28
29
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
@@ -71,15 +71,15 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__
71
71
  selectableDisabled: boolean;
72
72
  maxSelectedSize: number;
73
73
  pagination: number[];
74
- canSaveFilters: boolean;
75
- filters: Filter[];
76
- persistent: boolean;
77
- initialPage: number;
78
- debounceTime: number;
79
74
  request: (params: ServerTableRequestParams, abortController: AbortController, url?: string | undefined) => Promise<{
80
75
  data: unknown[];
81
76
  total: number;
82
77
  }>;
78
+ filters: Filter[];
79
+ canSaveFilters: boolean;
80
+ persistent: boolean;
81
+ initialPage: number;
82
+ debounceTime: number;
83
83
  defaultFiltersOpened: boolean;
84
84
  savedFilters: SavedFilter[];
85
85
  defaultSort: Sort;
@@ -55,8 +55,8 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__
55
55
  selectable: boolean;
56
56
  selectableDisabled: boolean;
57
57
  pagination: number[];
58
- canSaveFilters: boolean;
59
58
  filters: Filter[];
59
+ canSaveFilters: boolean;
60
60
  persistent: boolean;
61
61
  defaultFiltersOpened: boolean;
62
62
  savedFilters: SavedFilter[];
@@ -19,6 +19,9 @@ export declare const useSearch: (persistent?: boolean | Ref<boolean>, defaultFil
19
19
  label: string;
20
20
  value: string;
21
21
  }[] | undefined;
22
+ autocompleteRequest?: ((abortController: AbortController, url?: string | undefined) => Promise<{
23
+ data: import('../models').InputOption[];
24
+ }>) | undefined;
22
25
  customFilter?: Function | undefined;
23
26
  }[], Filter[] | {
24
27
  label: string;
@@ -36,6 +39,9 @@ export declare const useSearch: (persistent?: boolean | Ref<boolean>, defaultFil
36
39
  label: string;
37
40
  value: string;
38
41
  }[] | undefined;
42
+ autocompleteRequest?: ((abortController: AbortController, url?: string | undefined) => Promise<{
43
+ data: import('../models').InputOption[];
44
+ }>) | undefined;
39
45
  customFilter?: Function | undefined;
40
46
  }[]>;
41
47
  isFilterVisible: Ref<boolean, boolean>;
@@ -1,4 +1,4 @@
1
- import { InputType } from './form.model';
1
+ import { InputOption, InputType } from './form.model';
2
2
  import { Sort, SortFunction } from './sort.model';
3
3
  export declare enum ColumnType {
4
4
  Boolean = "Boolean",
@@ -24,7 +24,7 @@ export interface ServerTableRequestParams {
24
24
  filters?: Filter[];
25
25
  sort?: Sort;
26
26
  }
27
- export type FilterType = 'select' | 'input' | 'inputDate' | 'boolean' | 'autocomplete' | 'betweenNumber' | 'betweenDate' | 'betweenDateTime';
27
+ export type FilterType = 'select' | 'input' | 'inputDate' | 'boolean' | 'autocomplete' | 'autocompleteServer' | 'betweenNumber' | 'betweenDate' | 'betweenDateTime';
28
28
  export interface Filter {
29
29
  label: string;
30
30
  inputType?: InputType;
@@ -41,6 +41,9 @@ export interface Filter {
41
41
  label: string;
42
42
  value: string;
43
43
  }[];
44
+ autocompleteRequest?: (abortController: AbortController, url?: string) => Promise<{
45
+ data: InputOption[];
46
+ }>;
44
47
  customFilter?: Function;
45
48
  }
46
49
  export interface SavedFilter {
@@ -587,7 +587,7 @@ ul li[data-v-ba5302fc]:hover, ul li.selected[data-v-ba5302fc] {
587
587
  line-height: 1;
588
588
  width: 100%;
589
589
  background-color: transparent;
590
- }.field__input .autocomplete-wrapper[data-v-d649440b] {
590
+ }.field__input .autocomplete-wrapper[data-v-eb4d55e4] {
591
591
  width: 100%;
592
592
  padding: 0.7em;
593
593
  margin: 0.5em 0;
@@ -596,22 +596,22 @@ ul li[data-v-ba5302fc]:hover, ul li.selected[data-v-ba5302fc] {
596
596
  background-color: var(--input-background-color);
597
597
  height: 48px;
598
598
  }
599
- .field__input .autocomplete-wrapper[data-v-d649440b]:hover {
599
+ .field__input .autocomplete-wrapper[data-v-eb4d55e4]:hover {
600
600
  --field-border-color: var(--bms-grey-100);
601
601
  }
602
- .field__input .autocomplete-wrapper[data-v-d649440b]:has(input:focus) {
602
+ .field__input .autocomplete-wrapper[data-v-eb4d55e4]:has(input:focus) {
603
603
  --field-border-color: var(--field-border-color-active);
604
604
  }
605
- .field__input .autocomplete-wrapper.is-error[data-v-d649440b] {
605
+ .field__input .autocomplete-wrapper.is-error[data-v-eb4d55e4] {
606
606
  --field-border-color: var(--bms-red-100);
607
607
  --input-background-color: var(--bms-red-25);
608
608
  }
609
- .field__input .autocomplete-wrapper.is-disabled[data-v-d649440b] {
609
+ .field__input .autocomplete-wrapper.is-disabled[data-v-eb4d55e4] {
610
610
  --field-border-color: var(--bms-grey-25);
611
611
  --input-background-color: var(--bms-grey-25);
612
612
  pointer-events: none;
613
613
  }
614
- .field__input .autocomplete-wrapper input[data-v-d649440b] {
614
+ .field__input .autocomplete-wrapper input[data-v-eb4d55e4] {
615
615
  outline: none;
616
616
  appearance: none;
617
617
  border: 0;
@@ -624,7 +624,7 @@ ul li[data-v-ba5302fc]:hover, ul li.selected[data-v-ba5302fc] {
624
624
  width: 100%;
625
625
  background-color: transparent;
626
626
  }
627
- .icon[data-v-d649440b] {
627
+ .icon[data-v-eb4d55e4] {
628
628
  height: 1em;
629
629
  width: 1em;
630
630
  cursor: pointer;
@@ -1188,40 +1188,40 @@ input[type=radio][data-v-c0c9efa3]:checked::before {
1188
1188
  --field-border-color: var(--bms-grey-25);
1189
1189
  --input-background-color: var(--bms-grey-25);
1190
1190
  pointer-events: none;
1191
- }.tags[data-v-89613f32] {
1191
+ }.tags[data-v-05d9b16f] {
1192
1192
  display: flex;
1193
1193
  gap: 0.5em;
1194
1194
  padding: var(--field-margin);
1195
1195
  flex-wrap: wrap;
1196
1196
  width: 100%;
1197
1197
  }
1198
- .tags .search[data-v-89613f32] {
1198
+ .tags .search[data-v-05d9b16f] {
1199
1199
  outline: none;
1200
1200
  border: none;
1201
1201
  background-color: transparent;
1202
1202
  flex-grow: 1;
1203
1203
  }
1204
- .icon-container[data-v-89613f32] {
1204
+ .icon-container[data-v-05d9b16f] {
1205
1205
  height: 100%;
1206
1206
  display: flex;
1207
1207
  align-items: center;
1208
1208
  }
1209
- .icon-container[data-v-89613f32]:hover {
1209
+ .icon-container[data-v-05d9b16f]:hover {
1210
1210
  cursor: pointer;
1211
1211
  }
1212
- .icon-container .icon[data-v-89613f32] {
1212
+ .icon-container .icon[data-v-05d9b16f] {
1213
1213
  display: block;
1214
1214
  width: 1em;
1215
1215
  height: 1em;
1216
1216
  margin: 0 1em 0 0.5em;
1217
1217
  }.clean-icon[data-v-66c267f2]:hover {
1218
1218
  cursor: pointer;
1219
- }.field__input[data-v-81c90ccd] {
1219
+ }.field__input[data-v-21c618e0] {
1220
1220
  --field-border-color: var(--bms-grey-50);
1221
1221
  --field-border-color-active: var(--bms-main-100);
1222
1222
  --input-background-color: var(--bms-white);
1223
1223
  }
1224
- .field__input .select-wrapper[data-v-81c90ccd] {
1224
+ .field__input .select-wrapper[data-v-21c618e0] {
1225
1225
  width: 100%;
1226
1226
  padding: 0 0 0 1em;
1227
1227
  border-radius: var(--bms-border-radius);
@@ -1232,35 +1232,35 @@ input[type=radio][data-v-c0c9efa3]:checked::before {
1232
1232
  align-items: center;
1233
1233
  justify-content: space-between;
1234
1234
  }
1235
- .field__input .select-wrapper .icon-toggle-container[data-v-81c90ccd] {
1235
+ .field__input .select-wrapper .icon-toggle-container[data-v-21c618e0] {
1236
1236
  height: 100%;
1237
1237
  display: flex;
1238
1238
  align-items: center;
1239
1239
  }
1240
- .field__input .select-wrapper .icon-toggle-container[data-v-81c90ccd]:hover {
1240
+ .field__input .select-wrapper .icon-toggle-container[data-v-21c618e0]:hover {
1241
1241
  cursor: pointer;
1242
1242
  }
1243
- .field__input .select-wrapper .icon-toggle-button[data-v-81c90ccd] {
1243
+ .field__input .select-wrapper .icon-toggle-button[data-v-21c618e0] {
1244
1244
  width: 1em;
1245
1245
  margin: 0 var(--field-padding);
1246
1246
  display: block;
1247
1247
  }
1248
- .field__input .select-wrapper[data-v-81c90ccd]:hover {
1248
+ .field__input .select-wrapper[data-v-21c618e0]:hover {
1249
1249
  --field-border-color: var(--bms-grey-100);
1250
1250
  }
1251
- .field__input .select-wrapper[data-v-81c90ccd]:has(input:focus) {
1251
+ .field__input .select-wrapper[data-v-21c618e0]:has(input:focus) {
1252
1252
  --field-border-color: var(--field-border-color-active);
1253
1253
  }
1254
- .field__input .select-wrapper.is-error[data-v-81c90ccd] {
1254
+ .field__input .select-wrapper.is-error[data-v-21c618e0] {
1255
1255
  --field-border-color: var(--bms-red-100);
1256
1256
  --input-background-color: var(--bms-red-25);
1257
1257
  }
1258
- .field__input .select-wrapper.is-disabled[data-v-81c90ccd] {
1258
+ .field__input .select-wrapper.is-disabled[data-v-21c618e0] {
1259
1259
  --field-border-color: var(--bms-grey-25);
1260
1260
  --input-background-color: var(--bms-grey-25);
1261
1261
  pointer-events: none;
1262
1262
  }
1263
- .field__input .select-wrapper input[data-v-81c90ccd] {
1263
+ .field__input .select-wrapper input[data-v-21c618e0] {
1264
1264
  border: none;
1265
1265
  background-color: transparent;
1266
1266
  caret-color: transparent;
@@ -2402,38 +2402,51 @@ nav .additional[data-v-731a6d8c] {
2402
2402
  .indicator-scale-leave-from[data-v-6047ada7] {
2403
2403
  opacity: 1;
2404
2404
  transform: scale(1);
2405
- }.filters[data-v-92161702] {
2405
+ }.icon[data-v-3115cc27] {
2406
+ height: 1em;
2407
+ width: 1em;
2408
+ }
2409
+ .icon.datalist-icon[data-v-3115cc27] {
2410
+ margin: 0 0.5em;
2411
+ }
2412
+ .icon[data-v-3115cc27] svg {
2413
+ height: 100%;
2414
+ width: 100%;
2415
+ }
2416
+ .icon[data-v-3115cc27] svg * {
2417
+ fill: currentColor !important;
2418
+ }.filters[data-v-4a441463] {
2406
2419
  padding: 16px;
2407
2420
  background: var(--bms-white);
2408
2421
  border: 1px solid var(--bms-grey-10);
2409
2422
  border-radius: var(--bms-border-radius-large);
2410
2423
  margin-bottom: 16px;
2411
2424
  }
2412
- .filters__header[data-v-92161702] {
2425
+ .filters__header[data-v-4a441463] {
2413
2426
  display: flex;
2414
2427
  justify-content: space-between;
2415
2428
  }
2416
- .filters__header-title[data-v-92161702] {
2429
+ .filters__header-title[data-v-4a441463] {
2417
2430
  font-size: 18px;
2418
2431
  font-weight: bold;
2419
2432
  gap: 1rem;
2420
2433
  display: flex;
2421
2434
  align-items: center;
2422
2435
  }
2423
- .filters__inputs[data-v-92161702] {
2436
+ .filters__inputs[data-v-4a441463] {
2424
2437
  display: flex;
2425
2438
  flex-wrap: wrap;
2426
2439
  padding-top: 16px;
2427
2440
  align-items: flex-end;
2428
2441
  row-gap: 8px;
2429
2442
  }
2430
- .filters__inputs .input[data-v-92161702] {
2443
+ .filters__inputs .input[data-v-4a441463] {
2431
2444
  width: 25%;
2432
2445
  }
2433
- .filters__inputs .input.large[data-v-92161702] {
2446
+ .filters__inputs .input.large[data-v-4a441463] {
2434
2447
  width: 50%;
2435
2448
  }
2436
- .filters__inputs .input[data-v-92161702] {
2449
+ .filters__inputs .input[data-v-4a441463] {
2437
2450
  padding-right: 32px;
2438
2451
  }.table-search[data-v-bb2d9aca] {
2439
2452
  width: 260px;