@ouestfrance/sipa-bms-ui 8.6.0 → 8.7.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.
Files changed (54) hide show
  1. package/dist/components/form/BmsAutocomplete.vue.d.ts +2 -0
  2. package/dist/components/form/BmsInputBooleanCheckbox.vue.d.ts +1 -1
  3. package/dist/components/form/BmsInputCheckboxGroup.vue.d.ts +2 -2
  4. package/dist/components/form/BmsInputCode.vue.d.ts +2 -2
  5. package/dist/components/form/BmsInputNumber.vue.d.ts +2 -2
  6. package/dist/components/form/BmsInputRadio.vue.d.ts +2 -2
  7. package/dist/components/form/BmsInputText.vue.d.ts +24 -22
  8. package/dist/components/form/BmsMultiSelect.vue.d.ts +3 -1
  9. package/dist/components/form/BmsSearch.vue.d.ts +28 -24
  10. package/dist/components/form/BmsSelect.vue.d.ts +7 -17
  11. package/dist/components/form/RawAutocomplete.vue.d.ts +17 -21
  12. package/dist/components/form/RawInputText.vue.d.ts +9 -9
  13. package/dist/components/form/RawSelect.vue.d.ts +30 -0
  14. package/dist/components/navigation/UiTenantSwitcher.vue.d.ts +28 -24
  15. package/dist/components/table/BmsServerTable.vue.d.ts +18 -0
  16. package/dist/components/table/BmsTable.vue.d.ts +18 -1
  17. package/dist/components/table/BmsTableFilters.vue.d.ts +47 -25
  18. package/dist/composables/search.composable.d.ts +1 -0
  19. package/dist/plugins/field/FieldDatalist.vue.d.ts +2 -0
  20. package/dist/plugins/field/field-component.model.d.ts +2 -2
  21. package/dist/sipa-bms-ui.css +163 -116
  22. package/dist/sipa-bms-ui.es.js +725 -520
  23. package/dist/sipa-bms-ui.es.js.map +1 -1
  24. package/dist/sipa-bms-ui.umd.js +730 -525
  25. package/dist/sipa-bms-ui.umd.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/components/form/BmsAutocomplete.vue +3 -0
  28. package/src/components/form/BmsInputNumber.spec.ts +26 -0
  29. package/src/components/form/BmsInputNumber.stories.js +20 -3
  30. package/src/components/form/BmsInputNumber.vue +36 -4
  31. package/src/components/form/BmsInputRadio.vue +1 -1
  32. package/src/components/form/BmsInputText.spec.ts +25 -0
  33. package/src/components/form/BmsInputText.stories.js +28 -3
  34. package/src/components/form/BmsInputText.vue +73 -12
  35. package/src/components/form/BmsMultiSelect.vue +66 -28
  36. package/src/components/form/BmsSelect.vue +60 -57
  37. package/src/components/form/RawAutocomplete.spec.ts +0 -8
  38. package/src/components/form/RawAutocomplete.vue +42 -24
  39. package/src/components/form/RawInputText.vue +14 -21
  40. package/src/components/form/RawSelect.vue +111 -0
  41. package/src/components/table/BmsServerTable.vue +18 -3
  42. package/src/components/table/BmsTable.vue +15 -2
  43. package/src/components/table/BmsTableFilters.vue +19 -7
  44. package/src/composables/search.composable.spec.ts +75 -0
  45. package/src/composables/search.composable.ts +54 -11
  46. package/src/plugins/field/FieldComponent.vue +6 -4
  47. package/src/plugins/field/FieldDatalist.stories.js +0 -9
  48. package/src/plugins/field/FieldDatalist.vue +16 -13
  49. package/src/plugins/field/field-component.model.ts +2 -2
  50. package/src/showroom/pages/autocomplete.vue +22 -1
  51. package/src/showroom/pages/server-table.vue +53 -22
  52. package/src/showroom/pages/table.vue +42 -3
  53. package/dist/plugins/field/FieldDatalist.spec.d.ts +0 -1
  54. package/src/plugins/field/FieldDatalist.spec.ts +0 -35
@@ -1,4 +1,4 @@
1
- import { defineComponent, computed, resolveComponent, createElementBlock, createBlock, unref, openBlock, mergeProps, renderSlot, withCtx, createElementVNode, useAttrs, normalizeClass, normalizeProps, guardReactiveProps, createVNode, h as h$1, createCommentVNode, resolveDynamicComponent, toDisplayString, useCssVars, createStaticVNode, onMounted, nextTick, watch, getCurrentInstance, getCurrentScope, onScopeDispose, hasInjectionContext, inject, onUnmounted, shallowRef, toValue, watchEffect, ref, Transition, withDirectives, normalizeStyle, vShow, Fragment, Teleport, createTextVNode, withKeys, renderList, withModifiers, mergeModels, useModel, createSlots, useSlots, vModelCheckbox, toRaw, onBeforeUnmount, vModelRadio, vModelText, reactive, isVNode, isRef, TransitionGroup, createApp } from 'vue';
1
+ import { defineComponent, computed, resolveComponent, createElementBlock, createBlock, unref, openBlock, mergeProps, renderSlot, withCtx, createElementVNode, useAttrs, normalizeClass, normalizeProps, guardReactiveProps, createVNode, h as h$1, createCommentVNode, resolveDynamicComponent, toDisplayString, useCssVars, createStaticVNode, onMounted, nextTick, watch, getCurrentInstance, getCurrentScope, onScopeDispose, hasInjectionContext, inject, onUnmounted, shallowRef, toValue, watchEffect, ref, Transition, withDirectives, normalizeStyle, vShow, Fragment, Teleport, createTextVNode, renderList, withModifiers, mergeModels, useModel, useTemplateRef, createSlots, useSlots, vModelCheckbox, toRaw, onBeforeUnmount, vModelRadio, withKeys, vModelText, reactive, isVNode, isRef, TransitionGroup, createApp } from 'vue';
2
2
  import { useRouter, useRoute } from 'vue-router';
3
3
 
4
4
  var CocardeBorder = /* @__PURE__ */ ((CocardeBorder2) => {
@@ -310,8 +310,8 @@ const enforceActionsColumnHeader = (headers) => {
310
310
  };
311
311
 
312
312
  const _hoisted_1$X = ["href", "target"];
313
- const _hoisted_2$B = ["href", "onClick", "target"];
314
- const _sfc_main$1l = /* @__PURE__ */ defineComponent({
313
+ const _hoisted_2$C = ["href", "onClick", "target"];
314
+ const _sfc_main$1m = /* @__PURE__ */ defineComponent({
315
315
  __name: "BmsLink",
316
316
  props: {
317
317
  to: {},
@@ -352,7 +352,7 @@ const _sfc_main$1l = /* @__PURE__ */ defineComponent({
352
352
  target: _ctx.target
353
353
  }, _ctx.$attrs), [
354
354
  renderSlot(_ctx.$slots, "default")
355
- ], 16, _hoisted_2$B)
355
+ ], 16, _hoisted_2$C)
356
356
  ]),
357
357
  _: 3
358
358
  }, 8, ["to"]));
@@ -361,7 +361,7 @@ const _sfc_main$1l = /* @__PURE__ */ defineComponent({
361
361
  });
362
362
 
363
363
  const _hoisted_1$W = ["type"];
364
- const _sfc_main$1k = /* @__PURE__ */ defineComponent({
364
+ const _sfc_main$1l = /* @__PURE__ */ defineComponent({
365
365
  __name: "UiButtonLink",
366
366
  props: {
367
367
  type: {},
@@ -385,7 +385,7 @@ const _sfc_main$1k = /* @__PURE__ */ defineComponent({
385
385
  type: _ctx.type
386
386
  }, [
387
387
  renderSlot(_ctx.$slots, "default")
388
- ], 10, _hoisted_1$W)) : (openBlock(), createBlock(_sfc_main$1l, {
388
+ ], 10, _hoisted_1$W)) : (openBlock(), createBlock(_sfc_main$1m, {
389
389
  key: 1,
390
390
  to: _ctx.to,
391
391
  target: _ctx.target,
@@ -401,9 +401,9 @@ const _sfc_main$1k = /* @__PURE__ */ defineComponent({
401
401
  });
402
402
 
403
403
  const _hoisted_1$V = { class: "start" };
404
- const _hoisted_2$A = { class: "content" };
404
+ const _hoisted_2$B = { class: "content" };
405
405
  const _hoisted_3$j = { class: "end" };
406
- const _sfc_main$1j = /* @__PURE__ */ defineComponent({
406
+ const _sfc_main$1k = /* @__PURE__ */ defineComponent({
407
407
  __name: "UiButton",
408
408
  props: {
409
409
  type: { default: "button" },
@@ -415,12 +415,12 @@ const _sfc_main$1j = /* @__PURE__ */ defineComponent({
415
415
  setup(__props) {
416
416
  const props = __props;
417
417
  return (_ctx, _cache) => {
418
- return openBlock(), createBlock(_sfc_main$1k, normalizeProps(guardReactiveProps(props)), {
418
+ return openBlock(), createBlock(_sfc_main$1l, normalizeProps(guardReactiveProps(props)), {
419
419
  default: withCtx(() => [
420
420
  createElementVNode("span", _hoisted_1$V, [
421
421
  renderSlot(_ctx.$slots, "start")
422
422
  ]),
423
- createElementVNode("span", _hoisted_2$A, [
423
+ createElementVNode("span", _hoisted_2$B, [
424
424
  renderSlot(_ctx.$slots, "default")
425
425
  ]),
426
426
  createElementVNode("span", _hoisted_3$j, [
@@ -433,7 +433,7 @@ const _sfc_main$1j = /* @__PURE__ */ defineComponent({
433
433
  }
434
434
  });
435
435
 
436
- const _sfc_main$1i = /* @__PURE__ */ defineComponent({
436
+ const _sfc_main$1j = /* @__PURE__ */ defineComponent({
437
437
  __name: "BmsButton",
438
438
  props: {
439
439
  type: { default: "primary" },
@@ -456,7 +456,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
456
456
  }
457
457
  });
458
458
  return (_ctx, _cache) => {
459
- return openBlock(), createBlock(_sfc_main$1j, {
459
+ return openBlock(), createBlock(_sfc_main$1k, {
460
460
  mode: uiMode.value,
461
461
  color: _ctx.mode,
462
462
  to: _ctx.to,
@@ -477,7 +477,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
477
477
  }
478
478
  });
479
479
 
480
- const _sfc_main$1h = /* @__PURE__ */ defineComponent({
480
+ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
481
481
  __name: "BmsIconButton",
482
482
  props: {
483
483
  to: { default: null },
@@ -496,7 +496,7 @@ const _sfc_main$1h = /* @__PURE__ */ defineComponent({
496
496
  direction: _ctx.tooltipDirection
497
497
  }, {
498
498
  default: withCtx(() => [
499
- createVNode(_sfc_main$1j, mergeProps(_ctx.$attrs, {
499
+ createVNode(_sfc_main$1k, mergeProps(_ctx.$attrs, {
500
500
  icon: "",
501
501
  to: _ctx.to,
502
502
  target: _ctx.target,
@@ -36720,9 +36720,9 @@ const lucideIcons = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.definePropert
36720
36720
  }, Symbol.toStringTag, { value: 'Module' }));
36721
36721
 
36722
36722
  const _hoisted_1$U = { class: "info-line" };
36723
- const _hoisted_2$z = { class: "icon" };
36723
+ const _hoisted_2$A = { class: "icon" };
36724
36724
  const _hoisted_3$i = { class: "message" };
36725
- const _sfc_main$1g = /* @__PURE__ */ defineComponent({
36725
+ const _sfc_main$1h = /* @__PURE__ */ defineComponent({
36726
36726
  __name: "BmsAlert",
36727
36727
  props: {
36728
36728
  message: {},
@@ -36748,7 +36748,7 @@ const _sfc_main$1g = /* @__PURE__ */ defineComponent({
36748
36748
  class: normalizeClass(["alert", `alert-${props.type}`])
36749
36749
  }, [
36750
36750
  createElementVNode("div", _hoisted_1$U, [
36751
- createElementVNode("span", _hoisted_2$z, [
36751
+ createElementVNode("span", _hoisted_2$A, [
36752
36752
  (openBlock(), createBlock(resolveDynamicComponent(alertIcon.value), { size: 20 }))
36753
36753
  ]),
36754
36754
  createElementVNode("span", _hoisted_3$i, [
@@ -36757,7 +36757,7 @@ const _sfc_main$1g = /* @__PURE__ */ defineComponent({
36757
36757
  ], true)
36758
36758
  ]),
36759
36759
  renderSlot(_ctx.$slots, "action", {}, void 0, true),
36760
- _ctx.dismissable ? (openBlock(), createBlock(_sfc_main$1h, {
36760
+ _ctx.dismissable ? (openBlock(), createBlock(_sfc_main$1i, {
36761
36761
  key: 0,
36762
36762
  onClick: _cache[0] || (_cache[0] = ($event) => emits("dismiss"))
36763
36763
  }, {
@@ -36781,13 +36781,13 @@ const _export_sfc = (sfc, props) => {
36781
36781
  return target;
36782
36782
  };
36783
36783
 
36784
- const BmsAlert = /* @__PURE__ */ _export_sfc(_sfc_main$1g, [["__scopeId", "data-v-26caccdd"]]);
36784
+ const BmsAlert = /* @__PURE__ */ _export_sfc(_sfc_main$1h, [["__scopeId", "data-v-26caccdd"]]);
36785
36785
 
36786
36786
  const _hoisted_1$T = {
36787
36787
  key: 0,
36788
36788
  class: "ui-badge__container"
36789
36789
  };
36790
- const _sfc_main$1f = /* @__PURE__ */ defineComponent({
36790
+ const _sfc_main$1g = /* @__PURE__ */ defineComponent({
36791
36791
  __name: "BmsBadge",
36792
36792
  props: {
36793
36793
  pending: { default: 0 },
@@ -36813,14 +36813,14 @@ const _sfc_main$1f = /* @__PURE__ */ defineComponent({
36813
36813
  }
36814
36814
  });
36815
36815
 
36816
- const BmsBadge = /* @__PURE__ */ _export_sfc(_sfc_main$1f, [["__scopeId", "data-v-8a6297ca"]]);
36816
+ const BmsBadge = /* @__PURE__ */ _export_sfc(_sfc_main$1g, [["__scopeId", "data-v-8a6297ca"]]);
36817
36817
 
36818
36818
  const _hoisted_1$S = {
36819
36819
  key: 0,
36820
36820
  class: "icon"
36821
36821
  };
36822
- const _hoisted_2$y = ["innerHTML"];
36823
- const _sfc_main$1e = /* @__PURE__ */ defineComponent({
36822
+ const _hoisted_2$z = ["innerHTML"];
36823
+ const _sfc_main$1f = /* @__PURE__ */ defineComponent({
36824
36824
  __name: "BmsCaption",
36825
36825
  props: {
36826
36826
  caption: {}
@@ -36857,29 +36857,29 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
36857
36857
  createElementVNode("span", {
36858
36858
  class: "label",
36859
36859
  innerHTML: unref(sanitizeHtml)(computedCaption.value.label)
36860
- }, null, 8, _hoisted_2$y)
36860
+ }, null, 8, _hoisted_2$z)
36861
36861
  ], 2);
36862
36862
  };
36863
36863
  }
36864
36864
  });
36865
36865
 
36866
- const BmsCaption = /* @__PURE__ */ _export_sfc(_sfc_main$1e, [["__scopeId", "data-v-b08dd4e0"]]);
36866
+ const BmsCaption = /* @__PURE__ */ _export_sfc(_sfc_main$1f, [["__scopeId", "data-v-b08dd4e0"]]);
36867
36867
 
36868
36868
  const _hoisted_1$R = { class: "circular-progress" };
36869
- const _hoisted_2$x = {
36869
+ const _hoisted_2$y = {
36870
36870
  key: 0,
36871
36871
  viewBox: "0 0 100 100"
36872
36872
  };
36873
36873
  const _hoisted_3$h = { transform: "rotate(-90, 50, 50)" };
36874
36874
  const _hoisted_4$c = ["stroke-dashoffset"];
36875
36875
  const _hoisted_5$8 = { class: "percent" };
36876
- const _sfc_main$1d = /* @__PURE__ */ defineComponent({
36876
+ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
36877
36877
  __name: "BmsCircularProgress",
36878
36878
  props: ["progress"],
36879
36879
  setup(__props) {
36880
36880
  return (_ctx, _cache) => {
36881
36881
  return openBlock(), createElementBlock("div", _hoisted_1$R, [
36882
- __props.progress ? (openBlock(), createElementBlock("svg", _hoisted_2$x, [
36882
+ __props.progress ? (openBlock(), createElementBlock("svg", _hoisted_2$y, [
36883
36883
  createElementVNode("g", _hoisted_3$h, [
36884
36884
  _cache[0] || (_cache[0] = createElementVNode("circle", {
36885
36885
  opacity: ".08",
@@ -36908,13 +36908,13 @@ const _sfc_main$1d = /* @__PURE__ */ defineComponent({
36908
36908
  }
36909
36909
  });
36910
36910
 
36911
- const BmsCircularProgress = /* @__PURE__ */ _export_sfc(_sfc_main$1d, [["__scopeId", "data-v-7869acfb"]]);
36911
+ const BmsCircularProgress = /* @__PURE__ */ _export_sfc(_sfc_main$1e, [["__scopeId", "data-v-7869acfb"]]);
36912
36912
 
36913
36913
  const _hoisted_1$Q = { class: "bms-loader" };
36914
36914
  function transformIntoPx(totransform) {
36915
36915
  return typeof totransform === "string" ? totransform : `${totransform}px`;
36916
36916
  }
36917
- const _sfc_main$1c = /* @__PURE__ */ defineComponent({
36917
+ const _sfc_main$1d = /* @__PURE__ */ defineComponent({
36918
36918
  __name: "BmsLoader",
36919
36919
  props: {
36920
36920
  size: { default: "inherit" }
@@ -36935,7 +36935,7 @@ const _sfc_main$1c = /* @__PURE__ */ defineComponent({
36935
36935
  }
36936
36936
  });
36937
36937
 
36938
- const BmsLoader = /* @__PURE__ */ _export_sfc(_sfc_main$1c, [["__scopeId", "data-v-7cc96135"]]);
36938
+ const BmsLoader = /* @__PURE__ */ _export_sfc(_sfc_main$1d, [["__scopeId", "data-v-7cc96135"]]);
36939
36939
 
36940
36940
  function tryOnScopeDispose(fn) {
36941
36941
  if (getCurrentScope()) {
@@ -37769,7 +37769,7 @@ const useTooltipHelper = () => {
37769
37769
  };
37770
37770
  };
37771
37771
 
37772
- const _sfc_main$1b = /* @__PURE__ */ defineComponent({
37772
+ const _sfc_main$1c = /* @__PURE__ */ defineComponent({
37773
37773
  __name: "UiTooltip",
37774
37774
  props: {
37775
37775
  visible: { type: Boolean, default: true },
@@ -37845,9 +37845,9 @@ const _sfc_main$1b = /* @__PURE__ */ defineComponent({
37845
37845
  }
37846
37846
  });
37847
37847
 
37848
- const UiTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$1b, [["__scopeId", "data-v-e8f6f5f1"]]);
37848
+ const UiTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$1c, [["__scopeId", "data-v-e8f6f5f1"]]);
37849
37849
 
37850
- const _sfc_main$1a = /* @__PURE__ */ defineComponent({
37850
+ const _sfc_main$1b = /* @__PURE__ */ defineComponent({
37851
37851
  __name: "BmsTooltip",
37852
37852
  props: {
37853
37853
  tooltipText: { default: "" },
@@ -37926,10 +37926,14 @@ const _sfc_main$1a = /* @__PURE__ */ defineComponent({
37926
37926
  }
37927
37927
  });
37928
37928
 
37929
- const BmsTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$1a, [["__scopeId", "data-v-b033f8af"]]);
37929
+ const BmsTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$1b, [["__scopeId", "data-v-b033f8af"]]);
37930
37930
 
37931
- const _hoisted_1$P = ["data-testid", "onClick"];
37932
- const _sfc_main$19 = /* @__PURE__ */ defineComponent({
37931
+ const _hoisted_1$P = {
37932
+ class: "options-list",
37933
+ "data-testid": "select-options"
37934
+ };
37935
+ const _hoisted_2$x = ["data-testid", "onClick"];
37936
+ const _sfc_main$1a = /* @__PURE__ */ defineComponent({
37933
37937
  __name: "FieldDatalist",
37934
37938
  props: {
37935
37939
  options: {},
@@ -37938,7 +37942,7 @@ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
37938
37942
  newOption: { default: "" },
37939
37943
  small: { type: Boolean, default: false }
37940
37944
  },
37941
- emits: ["select", "addNewOption"],
37945
+ emits: ["select", "addNewOption", "blur"],
37942
37946
  setup(__props, { emit: __emit }) {
37943
37947
  const props = __props;
37944
37948
  const currentSelectedItemIndex = ref(-1);
@@ -37947,11 +37951,17 @@ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
37947
37951
  if (props.isInputFocused) {
37948
37952
  switch (ev.key) {
37949
37953
  case "ArrowDown":
37954
+ ev.preventDefault();
37950
37955
  return keyDown();
37951
37956
  case "ArrowUp":
37957
+ ev.preventDefault();
37952
37958
  return keyUp();
37953
37959
  case "Enter":
37960
+ ev.preventDefault();
37954
37961
  return keyEnter();
37962
+ case "Escape":
37963
+ ev.preventDefault();
37964
+ return keyEscape();
37955
37965
  default:
37956
37966
  return;
37957
37967
  }
@@ -37980,6 +37990,9 @@ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
37980
37990
  currentSelectedItemIndex.value = -1;
37981
37991
  }
37982
37992
  };
37993
+ const keyEscape = () => {
37994
+ $emits("blur");
37995
+ };
37983
37996
  const onClick = (option) => {
37984
37997
  $emits("select", option);
37985
37998
  };
@@ -37987,55 +38000,52 @@ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
37987
38000
  () => props.canAddNewOption && props.newOption && !props.options.find((o) => o.value === props.newOption)
37988
38001
  );
37989
38002
  return (_ctx, _cache) => {
37990
- return openBlock(), createElementBlock("ul", {
37991
- class: "options-list",
37992
- "data-testid": "select-options",
37993
- onKeydown: [
37994
- withKeys(keyUp, ["up"]),
37995
- withKeys(keyDown, ["down"]),
37996
- withKeys(keyEnter, ["enter"])
37997
- ]
37998
- }, [
38003
+ return openBlock(), createElementBlock("ul", _hoisted_1$P, [
37999
38004
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (option, index) => {
38000
38005
  return openBlock(), createElementBlock("li", {
38001
38006
  key: index,
38002
38007
  "data-testid": option.value,
38003
38008
  class: normalizeClass({
38009
+ "datalist-option": true,
38004
38010
  selected: index === currentSelectedItemIndex.value,
38005
38011
  small: _ctx.small
38006
38012
  }),
38007
- onClick: withModifiers(($event) => onClick(option), ["prevent"])
38013
+ onClick: withModifiers(($event) => onClick(option), ["stop"])
38008
38014
  }, [
38009
38015
  renderSlot(_ctx.$slots, "option", { option }, () => [
38010
38016
  createTextVNode(toDisplayString(option.label === null ? "N/A" : option.label), 1)
38011
38017
  ], true)
38012
- ], 10, _hoisted_1$P);
38018
+ ], 10, _hoisted_2$x);
38013
38019
  }), 128)),
38014
38020
  displayNewOption.value ? (openBlock(), createElementBlock("li", {
38015
38021
  key: 0,
38016
- onClick: _cache[0] || (_cache[0] = withModifiers(($event) => $emits("addNewOption", _ctx.newOption), ["prevent"]))
38022
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => $emits("addNewOption", _ctx.newOption), ["stop"]))
38017
38023
  }, [
38018
38024
  renderSlot(_ctx.$slots, "new-option", {}, () => [
38019
38025
  createTextVNode(toDisplayString(_ctx.newOption) + " (nouvelle option) ", 1)
38020
38026
  ], true)
38021
38027
  ])) : createCommentVNode("", true)
38022
- ], 32);
38028
+ ]);
38023
38029
  };
38024
38030
  }
38025
38031
  });
38026
38032
 
38027
- const FieldDatalist = /* @__PURE__ */ _export_sfc(_sfc_main$19, [["__scopeId", "data-v-413e6742"]]);
38033
+ const FieldDatalist = /* @__PURE__ */ _export_sfc(_sfc_main$1a, [["__scopeId", "data-v-ba5302fc"]]);
38028
38034
 
38029
38035
  const _hoisted_1$O = { class: "field__input-label" };
38030
38036
  const _hoisted_2$w = { class: "field__input-icon field__input-icon--start" };
38031
- const _hoisted_3$g = ["type", "value", "placeholder", "required", "disabled"];
38037
+ const _hoisted_3$g = ["type", "value", "placeholder", "required", "disabled", "max", "min", "minlength", "maxlength"];
38032
38038
  const _hoisted_4$b = { class: "field__input-icon field__input-icon--end" };
38033
- const _sfc_main$18 = /* @__PURE__ */ defineComponent({
38039
+ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
38034
38040
  __name: "RawInputText",
38035
38041
  props: {
38036
38042
  modelValue: {},
38037
38043
  placeholder: {},
38038
38044
  focus: { type: Boolean, default: false },
38045
+ min: {},
38046
+ max: {},
38047
+ minlength: {},
38048
+ maxlength: {},
38039
38049
  type: { default: InputType.TEXT },
38040
38050
  label: {},
38041
38051
  required: { type: Boolean, default: false },
@@ -38046,25 +38056,14 @@ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
38046
38056
  disabled: { type: Boolean, default: false },
38047
38057
  small: { type: Boolean }
38048
38058
  },
38049
- emits: ["update:modelValue", "update:focus", "blur", "keyUp", "keyDown", "keyEnter"],
38059
+ emits: ["update:modelValue", "blur", "focus", "click"],
38050
38060
  setup(__props, { expose: __expose, emit: __emit }) {
38051
38061
  const props = __props;
38052
38062
  const input = ref(null);
38053
38063
  const $emits = __emit;
38054
- onMounted(() => {
38055
- document.body.addEventListener("click", (ev) => {
38056
- if (ev.target === input.value) {
38057
- $emits("update:focus", !props.focus);
38058
- ev.stopPropagation();
38059
- } else {
38060
- $emits("update:focus", false);
38061
- }
38062
- });
38063
- });
38064
38064
  const setFocus = () => {
38065
38065
  if (input.value) {
38066
38066
  input.value.focus();
38067
- $emits("update:focus", true);
38068
38067
  }
38069
38068
  };
38070
38069
  __expose({
@@ -38100,13 +38099,13 @@ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
38100
38099
  placeholder: _ctx.placeholder,
38101
38100
  required: _ctx.required,
38102
38101
  disabled: _ctx.disabled,
38102
+ max: _ctx.max,
38103
+ min: _ctx.min,
38104
+ minlength: _ctx.minlength,
38105
+ maxlength: _ctx.maxlength,
38103
38106
  onBlur: _cache[0] || (_cache[0] = ($event) => $emits("blur")),
38104
38107
  onInput,
38105
- onKeydown: [
38106
- _cache[1] || (_cache[1] = withKeys(($event) => $emits("keyUp"), ["up"])),
38107
- _cache[2] || (_cache[2] = withKeys(($event) => $emits("keyDown"), ["down"])),
38108
- _cache[3] || (_cache[3] = withKeys(($event) => $emits("keyEnter"), ["enter"]))
38109
- ]
38108
+ onFocus: _cache[1] || (_cache[1] = ($event) => $emits("focus"))
38110
38109
  }, null, 40, _hoisted_3$g),
38111
38110
  createElementVNode("span", _hoisted_4$b, [
38112
38111
  renderSlot(_ctx.$slots, "icon-end", {}, void 0, true)
@@ -38116,9 +38115,9 @@ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
38116
38115
  }
38117
38116
  });
38118
38117
 
38119
- const RawInputText = /* @__PURE__ */ _export_sfc(_sfc_main$18, [["__scopeId", "data-v-af4d1ce5"]]);
38118
+ const RawInputText = /* @__PURE__ */ _export_sfc(_sfc_main$19, [["__scopeId", "data-v-078d99d6"]]);
38120
38119
 
38121
- const _sfc_main$17 = /* @__PURE__ */ defineComponent({
38120
+ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
38122
38121
  __name: "RawAutocomplete",
38123
38122
  props: /* @__PURE__ */ mergeModels({
38124
38123
  options: {},
@@ -38142,14 +38141,19 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
38142
38141
  setup(__props, { expose: __expose, emit: __emit }) {
38143
38142
  const props = __props;
38144
38143
  const modelValue = useModel(__props, "modelValue");
38144
+ const rawInput = useTemplateRef("rawInput");
38145
38145
  const emits = __emit;
38146
38146
  const getValidOptionByLabel = (label) => props.options.find((o) => o.label === label);
38147
38147
  const getValidOptionByValue = (value) => props.options.find((o) => o.value === value);
38148
38148
  const inputText = ref(
38149
38149
  getValidOptionByValue(modelValue.value)?.label ?? ""
38150
38150
  );
38151
- const showDataList = ref(props.open);
38152
- const autocompleteInput = ref(null);
38151
+ const isDatalistOpen = ref(props.open);
38152
+ const closeDatalist = () => isDatalistOpen.value = false;
38153
+ const openDatalist = () => isDatalistOpen.value = true;
38154
+ onClickOutside(rawInput, closeDatalist, {
38155
+ ignore: [".datalist-option", ".icon-toggle-button", ".icon-clear"]
38156
+ });
38153
38157
  const classes = computed(() => {
38154
38158
  return { "is-error": props.errors?.length, "is-disabled": props.disabled };
38155
38159
  });
@@ -38157,11 +38161,13 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
38157
38161
  () => props.options.filter((o) => searchString(o.label, inputText.value))
38158
38162
  );
38159
38163
  const selectItem = (option) => {
38160
- emits("select", option);
38161
38164
  const existingOption = getValidOptionByLabel(option.label) || getValidOptionByValue(option.value);
38162
- modelValue.value = existingOption?.value ?? null;
38163
- showDataList.value = false;
38164
- setFocus();
38165
+ if (existingOption) {
38166
+ modelValue.value = existingOption?.value ?? null;
38167
+ emits("select", existingOption);
38168
+ setFocus();
38169
+ closeDatalist();
38170
+ }
38165
38171
  };
38166
38172
  const displayItem = (option) => {
38167
38173
  const existingOption = getValidOptionByLabel(option.label) || getValidOptionByValue(option.value);
@@ -38185,25 +38191,25 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
38185
38191
  }
38186
38192
  }
38187
38193
  );
38194
+ const onFocus = () => {
38195
+ openDatalist();
38196
+ };
38188
38197
  const onInput = () => {
38189
- showDataList.value = true;
38198
+ openDatalist();
38190
38199
  if (inputText.value === "") {
38191
38200
  clearInput();
38192
38201
  }
38193
38202
  };
38194
38203
  const setFocus = () => {
38195
- if (autocompleteInput.value) {
38196
- autocompleteInput.value.setFocus();
38204
+ if (rawInput.value) {
38205
+ rawInput.value.setFocus();
38197
38206
  }
38198
38207
  };
38199
38208
  const clearInput = () => {
38200
38209
  inputText.value = "";
38201
38210
  modelValue.value = null;
38202
38211
  setFocus();
38203
- };
38204
- const toggleList = () => {
38205
- showDataList.value = !showDataList.value;
38206
- setFocus();
38212
+ closeDatalist();
38207
38213
  };
38208
38214
  __expose({
38209
38215
  setFocus
@@ -38214,13 +38220,14 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
38214
38220
  datalist: withCtx(() => [
38215
38221
  withDirectives(createVNode(FieldDatalist, {
38216
38222
  "data-testid": "autocomplete-menu",
38217
- "is-input-focused": showDataList.value,
38223
+ "is-input-focused": isDatalistOpen.value,
38218
38224
  "can-add-new-option": _ctx.canAddNewOption,
38219
38225
  "new-option": inputText.value,
38220
38226
  options: filteredMenuItems.value,
38221
38227
  small: _ctx.small,
38222
38228
  onSelect: selectItem,
38223
- onAddNewOption: _cache[1] || (_cache[1] = (option) => emits("addNewOption", option))
38229
+ onAddNewOption: _cache[1] || (_cache[1] = (option) => emits("addNewOption", option)),
38230
+ onBlur: closeDatalist
38224
38231
  }, {
38225
38232
  option: withCtx(({ option }) => [
38226
38233
  renderSlot(_ctx.$slots, "option", { option }, () => [
@@ -38229,13 +38236,13 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
38229
38236
  ]),
38230
38237
  _: 3
38231
38238
  }, 8, ["is-input-focused", "can-add-new-option", "new-option", "options", "small"]), [
38232
- [vShow, showDataList.value]
38239
+ [vShow, isDatalistOpen.value]
38233
38240
  ])
38234
38241
  ]),
38235
38242
  default: withCtx(() => [
38236
38243
  createVNode(RawInputText, {
38237
- ref_key: "autocompleteInput",
38238
- ref: autocompleteInput,
38244
+ ref_key: "rawInput",
38245
+ ref: rawInput,
38239
38246
  modelValue: inputText.value,
38240
38247
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputText.value = $event),
38241
38248
  type: unref(InputType).TEXT,
@@ -38244,26 +38251,29 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
38244
38251
  placeholder: _ctx.placeholder,
38245
38252
  required: _ctx.required,
38246
38253
  small: _ctx.small,
38247
- onInput
38254
+ onInput,
38255
+ onFocus
38248
38256
  }, {
38249
38257
  "icon-start": withCtx(() => [
38250
38258
  renderSlot(_ctx.$slots, "icon-start", {}, void 0, true)
38251
38259
  ]),
38252
38260
  "icon-end": withCtx(() => [
38253
38261
  renderSlot(_ctx.$slots, "icon-end", {}, () => [
38254
- inputText.value.length ? (openBlock(), createElementBlock("span", {
38262
+ inputText.value.length ? (openBlock(), createBlock(unref(X), {
38255
38263
  key: 0,
38256
38264
  class: "icon",
38257
- onClick: clearInput
38258
- }, [
38259
- createVNode(unref(X))
38260
- ])) : (openBlock(), createElementBlock("span", {
38261
- key: 1,
38262
- class: "icon",
38263
- onClick: withModifiers(toggleList, ["stop"])
38264
- }, [
38265
- !showDataList.value ? (openBlock(), createBlock(unref(ChevronDown), { key: 0 })) : (openBlock(), createBlock(unref(ChevronUp), { key: 1 }))
38266
- ]))
38265
+ onClick: withModifiers(clearInput, ["stop"])
38266
+ })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
38267
+ isDatalistOpen.value ? (openBlock(), createBlock(unref(ChevronUp), {
38268
+ key: 0,
38269
+ class: "icon",
38270
+ onClick: closeDatalist
38271
+ })) : (openBlock(), createBlock(unref(ChevronDown), {
38272
+ key: 1,
38273
+ class: "icon",
38274
+ onClick: openDatalist
38275
+ }))
38276
+ ], 64))
38267
38277
  ], true)
38268
38278
  ]),
38269
38279
  _: 3
@@ -38275,11 +38285,11 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
38275
38285
  }
38276
38286
  });
38277
38287
 
38278
- const RawAutocomplete = /* @__PURE__ */ _export_sfc(_sfc_main$17, [["__scopeId", "data-v-5d665f68"]]);
38288
+ const RawAutocomplete = /* @__PURE__ */ _export_sfc(_sfc_main$18, [["__scopeId", "data-v-d649440b"]]);
38279
38289
 
38280
38290
  const _hoisted_1$N = ["innerHTML"];
38281
38291
  const _hoisted_2$v = ["innerHTML"];
38282
- const _sfc_main$16 = /* @__PURE__ */ defineComponent({
38292
+ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
38283
38293
  __name: "BmsAutocomplete",
38284
38294
  props: /* @__PURE__ */ mergeModels({
38285
38295
  options: {},
@@ -38301,7 +38311,7 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
38301
38311
  },
38302
38312
  "modelModifiers": {}
38303
38313
  }),
38304
- emits: /* @__PURE__ */ mergeModels(["addNewOption", "select"], ["update:modelValue"]),
38314
+ emits: /* @__PURE__ */ mergeModels(["addNewOption", "select", "input"], ["update:modelValue"]),
38305
38315
  setup(__props, { emit: __emit }) {
38306
38316
  const props = __props;
38307
38317
  const modelValue = useModel(__props, "modelValue");
@@ -38333,7 +38343,8 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
38333
38343
  "can-add-new-option": _ctx.canAddNewOption,
38334
38344
  small: _ctx.small,
38335
38345
  onSelect: _cache[1] || (_cache[1] = (option) => emits("select", option)),
38336
- onAddNewOption: _cache[2] || (_cache[2] = (newOption) => emits("addNewOption", newOption))
38346
+ onAddNewOption: _cache[2] || (_cache[2] = (newOption) => emits("addNewOption", newOption)),
38347
+ onInput: _cache[3] || (_cache[3] = (e) => emits("input", e))
38337
38348
  }, createSlots({
38338
38349
  option: withCtx(({ option }) => [
38339
38350
  option.icon ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
@@ -38366,9 +38377,9 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
38366
38377
  }
38367
38378
  });
38368
38379
 
38369
- const BmsAutocomplete = /* @__PURE__ */ _export_sfc(_sfc_main$16, [["__scopeId", "data-v-274b6035"]]);
38380
+ const BmsAutocomplete = /* @__PURE__ */ _export_sfc(_sfc_main$17, [["__scopeId", "data-v-b0e1e6f3"]]);
38370
38381
 
38371
- const _sfc_main$15 = /* @__PURE__ */ defineComponent({
38382
+ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
38372
38383
  __name: "BmsBetweenInput",
38373
38384
  props: {
38374
38385
  inputType: { default: InputType.NUMBER },
@@ -38465,9 +38476,9 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
38465
38476
  }
38466
38477
  });
38467
38478
 
38468
- const BmsBetweenInput = /* @__PURE__ */ _export_sfc(_sfc_main$15, [["__scopeId", "data-v-f25b520b"]]);
38479
+ const BmsBetweenInput = /* @__PURE__ */ _export_sfc(_sfc_main$16, [["__scopeId", "data-v-f25b520b"]]);
38469
38480
 
38470
- const _sfc_main$14 = /* @__PURE__ */ defineComponent({
38481
+ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
38471
38482
  __name: "BmsChip",
38472
38483
  props: {
38473
38484
  color: { default: ChipColor.Grey }
@@ -38490,13 +38501,13 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
38490
38501
  }
38491
38502
  });
38492
38503
 
38493
- const BmsChip = /* @__PURE__ */ _export_sfc(_sfc_main$14, [["__scopeId", "data-v-72b945cc"]]);
38504
+ const BmsChip = /* @__PURE__ */ _export_sfc(_sfc_main$15, [["__scopeId", "data-v-72b945cc"]]);
38494
38505
 
38495
38506
  const _hoisted_1$M = { class: "file-upload" };
38496
38507
  const _hoisted_2$u = { class: "file-upload__label" };
38497
38508
  const _hoisted_3$f = { key: 1 };
38498
38509
  const _hoisted_4$a = { class: "file-upload__file-name" };
38499
- const _sfc_main$13 = /* @__PURE__ */ defineComponent({
38510
+ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
38500
38511
  __name: "BmsFilePicker",
38501
38512
  props: {
38502
38513
  modelValue: {},
@@ -38595,7 +38606,7 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
38595
38606
  class: "file-upload__file"
38596
38607
  }, [
38597
38608
  createElementVNode("span", _hoisted_4$a, toDisplayString(file.name), 1),
38598
- createVNode(unref(_sfc_main$1h), {
38609
+ createVNode(unref(_sfc_main$1i), {
38599
38610
  onClick: ($event) => onDeleteFile(file)
38600
38611
  }, {
38601
38612
  default: withCtx(() => [
@@ -38611,14 +38622,14 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
38611
38622
  }
38612
38623
  });
38613
38624
 
38614
- const BmsFilePicker = /* @__PURE__ */ _export_sfc(_sfc_main$13, [["__scopeId", "data-v-c892a845"]]);
38625
+ const BmsFilePicker = /* @__PURE__ */ _export_sfc(_sfc_main$14, [["__scopeId", "data-v-c892a845"]]);
38615
38626
 
38616
38627
  const _hoisted_1$L = ["disabled", "name", "value"];
38617
38628
  const _hoisted_2$t = {
38618
38629
  key: 0,
38619
38630
  class: "input-checkbox-info"
38620
38631
  };
38621
- const _sfc_main$12 = /* @__PURE__ */ defineComponent({
38632
+ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
38622
38633
  __name: "UiBmsInputCheckbox",
38623
38634
  props: {
38624
38635
  modelValue: { default: false },
@@ -38668,9 +38679,9 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
38668
38679
  }
38669
38680
  });
38670
38681
 
38671
- const UiBmsInputCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$12, [["__scopeId", "data-v-e1d94c62"]]);
38682
+ const UiBmsInputCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$13, [["__scopeId", "data-v-e1d94c62"]]);
38672
38683
 
38673
- const _sfc_main$11 = /* @__PURE__ */ defineComponent({
38684
+ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
38674
38685
  __name: "BmsInputBooleanCheckbox",
38675
38686
  props: {
38676
38687
  modelValue: {},
@@ -38789,7 +38800,7 @@ function v4(options, buf, offset) {
38789
38800
  return _v4(options, buf, offset);
38790
38801
  }
38791
38802
 
38792
- const _sfc_main$10 = /* @__PURE__ */ defineComponent({
38803
+ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
38793
38804
  __name: "BmsInputCheckboxGroup",
38794
38805
  props: {
38795
38806
  values: {},
@@ -38858,9 +38869,9 @@ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
38858
38869
  }
38859
38870
  });
38860
38871
 
38861
- const BmsInputCheckboxGroup = /* @__PURE__ */ _export_sfc(_sfc_main$10, [["__scopeId", "data-v-43978315"]]);
38872
+ const BmsInputCheckboxGroup = /* @__PURE__ */ _export_sfc(_sfc_main$11, [["__scopeId", "data-v-43978315"]]);
38862
38873
 
38863
- const _sfc_main$$ = /* @__PURE__ */ defineComponent({
38874
+ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
38864
38875
  __name: "BmsInputCheckboxCaption",
38865
38876
  props: {
38866
38877
  modelValue: {},
@@ -38936,9 +38947,9 @@ const _sfc_main$$ = /* @__PURE__ */ defineComponent({
38936
38947
  }
38937
38948
  });
38938
38949
 
38939
- const BmsInputCheckboxCaption = /* @__PURE__ */ _export_sfc(_sfc_main$$, [["__scopeId", "data-v-6cb7c474"]]);
38950
+ const BmsInputCheckboxCaption = /* @__PURE__ */ _export_sfc(_sfc_main$10, [["__scopeId", "data-v-6cb7c474"]]);
38940
38951
 
38941
- const _sfc_main$_ = /* @__PURE__ */ defineComponent({
38952
+ const _sfc_main$$ = /* @__PURE__ */ defineComponent({
38942
38953
  __name: "BmsInputCheckboxCaptionGroup",
38943
38954
  props: {
38944
38955
  options: { default: () => [] },
@@ -38993,7 +39004,7 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
38993
39004
  }
38994
39005
  });
38995
39006
 
38996
- const BmsInputCheckboxCaptionGroup = /* @__PURE__ */ _export_sfc(_sfc_main$_, [["__scopeId", "data-v-4183cc04"]]);
39007
+ const BmsInputCheckboxCaptionGroup = /* @__PURE__ */ _export_sfc(_sfc_main$$, [["__scopeId", "data-v-4183cc04"]]);
38997
39008
 
38998
39009
  /**
38999
39010
  The default maximum length of a `TreeBuffer` node.
@@ -67529,7 +67540,7 @@ const basicSetup = /*@__PURE__*/(() => [
67529
67540
  var h=Object.freeze({autofocus:false,disabled:false,indentWithTab:true,tabSize:2,placeholder:"",autoDestroy:true,extensions:[basicSetup]}),y=Symbol("vue-codemirror-global-config");var O,j=function(e){var t=e.onUpdate,n=e.onChange,o=e.onFocus,r=e.onBlur,u=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]]);}return n}(e,["onUpdate","onChange","onFocus","onBlur"]);return EditorState.create({doc:u.doc,selection:u.selection,extensions:(Array.isArray(u.extensions)?u.extensions:[u.extensions]).concat([EditorView.updateListener.of((function(e){t(e),e.docChanged&&n(e.state.doc.toString(),e),e.focusChanged&&(e.view.hasFocus?o(e):r(e));}))])})},S=function(e){var t=new Compartment;return {compartment:t,run:function(n){t.get(e.state)?e.dispatch({effects:t.reconfigure(n)}):e.dispatch({effects:StateEffect.appendConfig.of(t.of(n))});}}},x=function(e,t){var n=S(e),o=n.compartment,r=n.run;return function(n){var u=o.get(e.state);r((null!=n?n:u!==t)?t:[]);}},C={type:Boolean,default:void 0},D={autofocus:C,disabled:C,indentWithTab:C,tabSize:Number,placeholder:String,style:Object,autoDestroy:C,phrases:Object,root:Object,extensions:Array,selection:Object},U={modelValue:{type:String,default:""}},w=Object.assign(Object.assign({},D),U);!function(e){e.Change="change",e.Update="update",e.Focus="focus",e.Blur="blur",e.Ready="ready",e.ModelUpdate="update:modelValue";}(O||(O={}));var z={};z[O.Change]=function(e,t){return true},z[O.Update]=function(e){return true},z[O.Focus]=function(e){return true},z[O.Blur]=function(e){return true},z[O.Ready]=function(e){return true};var B={};B[O.ModelUpdate]=z[O.Change];var F=Object.assign(Object.assign({},z),B),P=defineComponent({name:"VueCodemirror",props:Object.assign({},w),emits:Object.assign({},F),setup:function(t,s){var f=shallowRef(),d=shallowRef(),C=shallowRef(),D=Object.assign(Object.assign({},h),inject(y,{})),U=computed((function(){var e={};return Object.keys(toRaw(t)).forEach((function(n){var o;"modelValue"!==n&&(e[n]=null!==(o=t[n])&&void 0!==o?o:D[n]);})),e}));return onMounted((function(){var e;d.value=j({doc:t.modelValue,selection:U.value.selection,extensions:null!==(e=D.extensions)&&void 0!==e?e:[],onFocus:function(e){return s.emit(O.Focus,e)},onBlur:function(e){return s.emit(O.Blur,e)},onUpdate:function(e){return s.emit(O.Update,e)},onChange:function(e,n){e!==t.modelValue&&(s.emit(O.Change,e,n),s.emit(O.ModelUpdate,e,n));}}),C.value=function(e){return new EditorView(Object.assign({},e))}({state:d.value,parent:f.value,root:U.value.root});var n=function(e){var t=function(){return e.state.doc.toString()},n=S(e).run,o=x(e,[EditorView.editable.of(false),EditorState.readOnly.of(true)]),r=x(e,keymap.of([indentWithTab])),u=S(e).run,a=S(e).run,i=S(e).run,c=S(e).run;return {focus:function(){return e.focus()},getDoc:t,setDoc:function(n){n!==t()&&e.dispatch({changes:{from:0,to:e.state.doc.length,insert:n}});},reExtensions:n,toggleDisabled:o,toggleIndentWithTab:r,setTabSize:function(e){u([EditorState.tabSize.of(e),indentUnit.of(" ".repeat(e))]);},setPhrases:function(e){a([EditorState.phrases.of(e)]);},setPlaceholder:function(e){i(placeholder(e));},setStyle:function(e){ void 0===e&&(e={}),c(EditorView.theme({"&":Object.assign({},e)}));}}}(C.value);watch((function(){return t.modelValue}),(function(e){e!==n.getDoc()&&n.setDoc(e);})),watch((function(){return t.extensions}),(function(e){return n.reExtensions(e||[])}),{immediate:true}),watch((function(){return U.value.disabled}),(function(e){return n.toggleDisabled(e)}),{immediate:true}),watch((function(){return U.value.indentWithTab}),(function(e){return n.toggleIndentWithTab(e)}),{immediate:true}),watch((function(){return U.value.tabSize}),(function(e){return n.setTabSize(e)}),{immediate:true}),watch((function(){return U.value.phrases}),(function(e){return n.setPhrases(e||{})}),{immediate:true}),watch((function(){return U.value.placeholder}),(function(e){return n.setPlaceholder(e)}),{immediate:true}),watch((function(){return U.value.style}),(function(e){return n.setStyle(e)}),{immediate:true}),U.value.autofocus&&n.focus(),s.emit(O.Ready,{state:d.value,view:C.value,container:f.value});})),onBeforeUnmount((function(){U.value.autoDestroy&&C.value&&function(e){e.destroy();}(C.value);})),function(){return h$1("div",{class:"v-codemirror",style:{display:"contents"},ref:f})}}}),T=P;
67530
67541
 
67531
67542
  const _hoisted_1$K = { class: "code-mirror" };
67532
- const _sfc_main$Z = /* @__PURE__ */ defineComponent({
67543
+ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
67533
67544
  __name: "BmsInputCode",
67534
67545
  props: /* @__PURE__ */ mergeModels({
67535
67546
  type: {},
@@ -67579,14 +67590,18 @@ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
67579
67590
  }
67580
67591
  });
67581
67592
 
67582
- const BmsInputCode = /* @__PURE__ */ _export_sfc(_sfc_main$Z, [["__scopeId", "data-v-b2a2a2fa"]]);
67593
+ const BmsInputCode = /* @__PURE__ */ _export_sfc(_sfc_main$_, [["__scopeId", "data-v-b2a2a2fa"]]);
67583
67594
 
67584
- const _sfc_main$Y = /* @__PURE__ */ defineComponent({
67595
+ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
67585
67596
  __name: "BmsInputText",
67586
67597
  props: {
67587
67598
  inputType: { default: InputType.TEXT },
67588
67599
  modelValue: {},
67589
67600
  placeholder: {},
67601
+ min: {},
67602
+ max: {},
67603
+ minlength: {},
67604
+ maxlength: {},
67590
67605
  label: { default: "" },
67591
67606
  required: { type: Boolean, default: false },
67592
67607
  optional: { type: Boolean },
@@ -67596,11 +67611,47 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
67596
67611
  disabled: { type: Boolean, default: false },
67597
67612
  small: { type: Boolean }
67598
67613
  },
67599
- emits: ["update:modelValue", "blur"],
67614
+ emits: ["update:modelValue", "blur", "focus"],
67600
67615
  setup(__props, { expose: __expose, emit: __emit }) {
67601
67616
  const props = __props;
67602
67617
  const input = ref(null);
67618
+ const internalErrors = ref([]);
67619
+ const computedErrors = computed(() => {
67620
+ return props.errors ? internalErrors.value.concat(props.errors) : internalErrors.value;
67621
+ });
67622
+ const internalCaptions = ref([]);
67623
+ const computedCaptions = computed(() => {
67624
+ return props.captions ? internalCaptions.value.concat(props.captions) : internalCaptions.value;
67625
+ });
67626
+ onMounted(() => {
67627
+ checkLimit();
67628
+ });
67603
67629
  const $emits = __emit;
67630
+ const checkLimit = () => {
67631
+ internalErrors.value = [];
67632
+ internalCaptions.value = [];
67633
+ if (props.inputType === InputType.TEXT && typeof props.modelValue === "string") {
67634
+ if (props.minlength !== void 0 && props.modelValue.length < props.minlength) {
67635
+ internalErrors.value = [
67636
+ "Longueur inférieur au minimum autorisé (min:" + props.minlength + ")"
67637
+ ];
67638
+ }
67639
+ if (props.maxlength !== void 0) {
67640
+ if (props.modelValue.length > props.maxlength) {
67641
+ internalErrors.value = [
67642
+ `Longueur supérieure au maximum autorisé (max:${props.maxlength})`
67643
+ ];
67644
+ } else if (props.modelValue.length === props.maxlength) {
67645
+ internalCaptions.value = [
67646
+ {
67647
+ label: `Attention, vous avez atteint la limite de ${props.maxlength} caractères.`,
67648
+ mode: StatusType.Warning
67649
+ }
67650
+ ];
67651
+ }
67652
+ }
67653
+ }
67654
+ };
67604
67655
  const setFocus = () => {
67605
67656
  if (input.value) {
67606
67657
  input.value.setFocus();
@@ -67609,28 +67660,35 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
67609
67660
  __expose({
67610
67661
  setFocus
67611
67662
  });
67612
- const onInput = (e) => {
67613
- if (!props.disabled)
67614
- $emits("update:modelValue", (e?.target).value);
67615
- };
67663
+ watch(
67664
+ () => props.modelValue,
67665
+ () => checkLimit()
67666
+ );
67616
67667
  return (_ctx, _cache) => {
67617
67668
  const _component_field = resolveComponent("field");
67618
- return openBlock(), createBlock(_component_field, normalizeProps(guardReactiveProps(_ctx.$props)), {
67669
+ return openBlock(), createBlock(_component_field, mergeProps(_ctx.$props, {
67670
+ captions: computedCaptions.value,
67671
+ errors: computedErrors.value
67672
+ }), {
67619
67673
  default: withCtx(() => [
67620
67674
  createVNode(RawInputText, {
67621
67675
  ref_key: "input",
67622
67676
  ref: input,
67623
67677
  type: _ctx.inputType,
67624
67678
  modelValue: _ctx.modelValue,
67679
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = (val) => $emits("update:modelValue", val)),
67625
67680
  required: _ctx.required,
67626
67681
  placeholder: _ctx.placeholder,
67627
67682
  disabled: _ctx.disabled,
67628
- errors: _ctx.errors,
67683
+ errors: computedErrors.value,
67629
67684
  hasDate: false,
67630
67685
  small: _ctx.small,
67631
- onBlur: _cache[0] || (_cache[0] = ($event) => $emits("blur")),
67632
- onInput,
67633
- onKeyup: onInput
67686
+ min: _ctx.min,
67687
+ max: _ctx.max,
67688
+ minlength: _ctx.minlength,
67689
+ maxlength: _ctx.maxlength,
67690
+ onBlur: _cache[1] || (_cache[1] = ($event) => $emits("blur")),
67691
+ onFocus: _cache[2] || (_cache[2] = ($event) => $emits("focus"))
67634
67692
  }, {
67635
67693
  "icon-start": withCtx(() => [
67636
67694
  renderSlot(_ctx.$slots, "icon-start")
@@ -67639,15 +67697,15 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
67639
67697
  renderSlot(_ctx.$slots, "icon-end")
67640
67698
  ]),
67641
67699
  _: 3
67642
- }, 8, ["type", "modelValue", "required", "placeholder", "disabled", "errors", "small"])
67700
+ }, 8, ["type", "modelValue", "required", "placeholder", "disabled", "errors", "small", "min", "max", "minlength", "maxlength"])
67643
67701
  ]),
67644
67702
  _: 3
67645
- }, 16);
67703
+ }, 16, ["captions", "errors"]);
67646
67704
  };
67647
67705
  }
67648
67706
  });
67649
67707
 
67650
- const _sfc_main$X = /* @__PURE__ */ defineComponent({
67708
+ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
67651
67709
  __name: "BmsInputDateTime",
67652
67710
  props: {
67653
67711
  modelValue: {},
@@ -67673,7 +67731,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
67673
67731
  if (!props.disabled && value) $emits("update:modelValue", value);
67674
67732
  };
67675
67733
  return (_ctx, _cache) => {
67676
- return openBlock(), createBlock(_sfc_main$Y, {
67734
+ return openBlock(), createBlock(_sfc_main$Z, {
67677
67735
  modelValue: _ctx.modelValue,
67678
67736
  label: _ctx.label,
67679
67737
  required: _ctx.required,
@@ -67696,7 +67754,7 @@ const _hoisted_3$e = {
67696
67754
  key: 1,
67697
67755
  class: "file-upload__file-name"
67698
67756
  };
67699
- const _sfc_main$W = /* @__PURE__ */ defineComponent({
67757
+ const _sfc_main$X = /* @__PURE__ */ defineComponent({
67700
67758
  __name: "BmsInputFile",
67701
67759
  props: {
67702
67760
  modelValue: {},
@@ -67850,7 +67908,7 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
67850
67908
  src: getImageSrc(file),
67851
67909
  class: "file-upload__file-img"
67852
67910
  }, null, 8, _hoisted_2$s)) : (openBlock(), createElementBlock("span", _hoisted_3$e, toDisplayString(file.name), 1)),
67853
- createVNode(_sfc_main$1h, {
67911
+ createVNode(_sfc_main$1i, {
67854
67912
  mode: unref(StatusType).Danger,
67855
67913
  onClick: withModifiers(($event) => onDeleteFile(file), ["prevent"]),
67856
67914
  class: "close-button"
@@ -67870,9 +67928,9 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
67870
67928
  }
67871
67929
  });
67872
67930
 
67873
- const BmsInputFile = /* @__PURE__ */ _export_sfc(_sfc_main$W, [["__scopeId", "data-v-0c91cbf5"]]);
67931
+ const BmsInputFile = /* @__PURE__ */ _export_sfc(_sfc_main$X, [["__scopeId", "data-v-0c91cbf5"]]);
67874
67932
 
67875
- const _sfc_main$V = /* @__PURE__ */ defineComponent({
67933
+ const _sfc_main$W = /* @__PURE__ */ defineComponent({
67876
67934
  __name: "BmsInputNumber",
67877
67935
  props: {
67878
67936
  modelValue: {},
@@ -67891,6 +67949,13 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
67891
67949
  setup(__props, { expose: __expose, emit: __emit }) {
67892
67950
  const props = __props;
67893
67951
  const input = ref(null);
67952
+ const internalErrors = ref([]);
67953
+ const computedErrors = computed(() => {
67954
+ return props.errors ? internalErrors.value.concat(props.errors) : internalErrors.value;
67955
+ });
67956
+ onMounted(() => {
67957
+ checkLimit();
67958
+ });
67894
67959
  const $emits = __emit;
67895
67960
  const onInput = (e) => {
67896
67961
  if (!props.disabled)
@@ -67899,6 +67964,19 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
67899
67964
  computed(() => {
67900
67965
  return { "is-error": props.errors?.length, "is-disabled": props.disabled };
67901
67966
  });
67967
+ const checkLimit = () => {
67968
+ internalErrors.value = [];
67969
+ if (props.min !== void 0 && props.modelValue < props.min) {
67970
+ internalErrors.value = [
67971
+ "Valeur inférieure au minimum autorisé (min : " + props.min + ")"
67972
+ ];
67973
+ }
67974
+ if (props.max !== void 0 && props.modelValue > props.max) {
67975
+ internalErrors.value = [
67976
+ "Valeur supérieure au maximum autorisé (max : " + props.max + ")"
67977
+ ];
67978
+ }
67979
+ };
67902
67980
  const setFocus = () => {
67903
67981
  if (input.value) {
67904
67982
  input.value.focus();
@@ -67907,8 +67985,12 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
67907
67985
  __expose({
67908
67986
  setFocus
67909
67987
  });
67988
+ watch(
67989
+ () => props.modelValue,
67990
+ () => checkLimit()
67991
+ );
67910
67992
  return (_ctx, _cache) => {
67911
- return openBlock(), createBlock(_sfc_main$Y, {
67993
+ return openBlock(), createBlock(_sfc_main$Z, {
67912
67994
  modelValue: _ctx.modelValue,
67913
67995
  label: _ctx.label,
67914
67996
  required: _ctx.required,
@@ -67917,10 +67999,12 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
67917
67999
  helperText: _ctx.helperText,
67918
68000
  placeholder: _ctx.placeholder,
67919
68001
  captions: _ctx.captions,
67920
- errors: _ctx.errors,
68002
+ errors: computedErrors.value,
67921
68003
  inputType: unref(InputType).NUMBER,
68004
+ min: _ctx.min,
68005
+ max: _ctx.max,
67922
68006
  onInput
67923
- }, null, 8, ["modelValue", "label", "required", "optional", "disabled", "helperText", "placeholder", "captions", "errors", "inputType"]);
68007
+ }, null, 8, ["modelValue", "label", "required", "optional", "disabled", "helperText", "placeholder", "captions", "errors", "inputType", "min", "max"]);
67924
68008
  };
67925
68009
  }
67926
68010
  });
@@ -67930,7 +68014,7 @@ const _hoisted_2$r = {
67930
68014
  key: 0,
67931
68015
  class: "input-radio-info"
67932
68016
  };
67933
- const _sfc_main$U = /* @__PURE__ */ defineComponent({
68017
+ const _sfc_main$V = /* @__PURE__ */ defineComponent({
67934
68018
  __name: "BmsInputRadio",
67935
68019
  props: {
67936
68020
  modelValue: {},
@@ -67981,9 +68065,9 @@ const _sfc_main$U = /* @__PURE__ */ defineComponent({
67981
68065
  }
67982
68066
  });
67983
68067
 
67984
- const BmsInputRadio = /* @__PURE__ */ _export_sfc(_sfc_main$U, [["__scopeId", "data-v-cb26402d"]]);
68068
+ const BmsInputRadio = /* @__PURE__ */ _export_sfc(_sfc_main$V, [["__scopeId", "data-v-c0c9efa3"]]);
67985
68069
 
67986
- const _sfc_main$T = /* @__PURE__ */ defineComponent({
68070
+ const _sfc_main$U = /* @__PURE__ */ defineComponent({
67987
68071
  __name: "BmsInputRadioGroup",
67988
68072
  props: {
67989
68073
  values: { default: () => [] },
@@ -68052,9 +68136,9 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent({
68052
68136
  }
68053
68137
  });
68054
68138
 
68055
- const BmsInputRadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["__scopeId", "data-v-186163e2"]]);
68139
+ const BmsInputRadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main$U, [["__scopeId", "data-v-186163e2"]]);
68056
68140
 
68057
- const _sfc_main$S = /* @__PURE__ */ defineComponent({
68141
+ const _sfc_main$T = /* @__PURE__ */ defineComponent({
68058
68142
  __name: "BmsInputRadioCaption",
68059
68143
  props: {
68060
68144
  modelValue: {},
@@ -68116,9 +68200,9 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
68116
68200
  }
68117
68201
  });
68118
68202
 
68119
- const BmsInputRadioCaption = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["__scopeId", "data-v-c3ba4fee"]]);
68203
+ const BmsInputRadioCaption = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["__scopeId", "data-v-c3ba4fee"]]);
68120
68204
 
68121
- const _sfc_main$R = /* @__PURE__ */ defineComponent({
68205
+ const _sfc_main$S = /* @__PURE__ */ defineComponent({
68122
68206
  __name: "BmsInputRadioCaptionGroup",
68123
68207
  props: {
68124
68208
  options: { default: () => [] },
@@ -68176,10 +68260,10 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
68176
68260
  }
68177
68261
  });
68178
68262
 
68179
- const BmsInputRadioCaptionGroup = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["__scopeId", "data-v-a4287904"]]);
68263
+ const BmsInputRadioCaptionGroup = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["__scopeId", "data-v-a4287904"]]);
68180
68264
 
68181
68265
  const _hoisted_1$H = ["disabled", "name"];
68182
- const _sfc_main$Q = /* @__PURE__ */ defineComponent({
68266
+ const _sfc_main$R = /* @__PURE__ */ defineComponent({
68183
68267
  __name: "UiBmsSwitch",
68184
68268
  props: {
68185
68269
  disabled: { type: Boolean, default: false },
@@ -68216,10 +68300,10 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
68216
68300
  }
68217
68301
  });
68218
68302
 
68219
- const UiBmsSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["__scopeId", "data-v-19745934"]]);
68303
+ const UiBmsSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["__scopeId", "data-v-19745934"]]);
68220
68304
 
68221
68305
  const _hoisted_1$G = { class: "input-switch-info" };
68222
- const _sfc_main$P = /* @__PURE__ */ defineComponent({
68306
+ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
68223
68307
  __name: "BmsInputToggle",
68224
68308
  props: {
68225
68309
  name: {},
@@ -68260,7 +68344,302 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
68260
68344
  }
68261
68345
  });
68262
68346
 
68263
- const BmsInputToggle = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["__scopeId", "data-v-9570e0a9"]]);
68347
+ const BmsInputToggle = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["__scopeId", "data-v-9570e0a9"]]);
68348
+
68349
+ const _hoisted_1$F = { class: "dismiss-button" };
68350
+ const _sfc_main$P = /* @__PURE__ */ defineComponent({
68351
+ __name: "BmsTag",
68352
+ props: {
68353
+ active: { type: Boolean, default: false },
68354
+ disabled: { type: Boolean, default: false },
68355
+ canBeDismissed: { type: Boolean, default: true },
68356
+ small: { type: Boolean }
68357
+ },
68358
+ emits: ["dismiss", "click"],
68359
+ setup(__props, { emit: __emit }) {
68360
+ const emits = __emit;
68361
+ return (_ctx, _cache) => {
68362
+ return openBlock(), createElementBlock("div", {
68363
+ class: normalizeClass(["tag", { active: _ctx.active, disabled: _ctx.disabled, small: _ctx.small }]),
68364
+ onClick: _cache[1] || (_cache[1] = ($event) => emits("click"))
68365
+ }, [
68366
+ renderSlot(_ctx.$slots, "default", {}, void 0, true),
68367
+ createElementVNode("span", _hoisted_1$F, [
68368
+ _ctx.canBeDismissed ? (openBlock(), createBlock(unref(_sfc_main$1i), {
68369
+ key: 0,
68370
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => emits("dismiss"), ["stop"]))
68371
+ }, {
68372
+ default: withCtx(() => [
68373
+ renderSlot(_ctx.$slots, "closeIcon", {}, () => [
68374
+ createVNode(unref(X))
68375
+ ], true)
68376
+ ]),
68377
+ _: 3
68378
+ })) : createCommentVNode("", true)
68379
+ ])
68380
+ ], 2);
68381
+ };
68382
+ }
68383
+ });
68384
+
68385
+ const BmsTag = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["__scopeId", "data-v-e2517fee"]]);
68386
+
68387
+ const _sfc_main$O = /* @__PURE__ */ defineComponent({
68388
+ __name: "RawSelect",
68389
+ props: {
68390
+ options: {},
68391
+ optional: { type: Boolean },
68392
+ placeholder: {},
68393
+ open: { type: Boolean, default: false },
68394
+ label: { default: "" },
68395
+ required: { type: Boolean, default: false },
68396
+ helperText: {},
68397
+ errors: {},
68398
+ captions: {},
68399
+ disabled: { type: Boolean, default: false },
68400
+ small: { type: Boolean, default: false }
68401
+ },
68402
+ emits: ["select"],
68403
+ setup(__props, { emit: __emit }) {
68404
+ const props = __props;
68405
+ const emits = __emit;
68406
+ const classes = computed(() => {
68407
+ return { "is-error": props.errors?.length, "is-disabled": props.disabled };
68408
+ });
68409
+ const selectItem = (option) => {
68410
+ emits("select", option);
68411
+ };
68412
+ return (_ctx, _cache) => {
68413
+ const _component_field = resolveComponent("field");
68414
+ return openBlock(), createBlock(_component_field, normalizeProps(guardReactiveProps(_ctx.$props)), {
68415
+ datalist: withCtx(() => [
68416
+ withDirectives(createVNode(FieldDatalist, {
68417
+ options: _ctx.options,
68418
+ "is-input-focused": _ctx.open,
68419
+ small: _ctx.small,
68420
+ onSelect: selectItem
68421
+ }, {
68422
+ option: withCtx(({ option }) => [
68423
+ renderSlot(_ctx.$slots, "option", { option }, void 0, true)
68424
+ ]),
68425
+ _: 3
68426
+ }, 8, ["options", "is-input-focused", "small"]), [
68427
+ [vShow, _ctx.open]
68428
+ ])
68429
+ ]),
68430
+ default: withCtx(() => [
68431
+ createElementVNode("span", {
68432
+ class: normalizeClass(["select-wrapper", classes.value])
68433
+ }, [
68434
+ renderSlot(_ctx.$slots, "input", {}, void 0, true)
68435
+ ], 2)
68436
+ ]),
68437
+ _: 3
68438
+ }, 16);
68439
+ };
68440
+ }
68441
+ });
68442
+
68443
+ const RawSelect = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__scopeId", "data-v-95176719"]]);
68444
+
68445
+ const _hoisted_1$E = { class: "tags" };
68446
+ const _hoisted_2$q = { class: "icon-container" };
68447
+ const _sfc_main$N = /* @__PURE__ */ defineComponent({
68448
+ __name: "BmsMultiSelect",
68449
+ props: /* @__PURE__ */ mergeModels({
68450
+ options: {},
68451
+ placeholder: {},
68452
+ label: { default: "" },
68453
+ required: { type: Boolean, default: false },
68454
+ optional: { type: Boolean },
68455
+ helperText: {},
68456
+ errors: {},
68457
+ captions: {},
68458
+ disabled: { type: Boolean, default: false },
68459
+ small: { type: Boolean }
68460
+ }, {
68461
+ "modelValue": {
68462
+ required: true
68463
+ },
68464
+ "modelModifiers": {}
68465
+ }),
68466
+ emits: ["update:modelValue"],
68467
+ setup(__props) {
68468
+ const props = __props;
68469
+ const inputElement = useTemplateRef("inputElement");
68470
+ const isDatalistOpen = ref(false);
68471
+ const closeDatalist = () => isDatalistOpen.value = false;
68472
+ const openDatalist = () => isDatalistOpen.value = true;
68473
+ const searching = ref("");
68474
+ const modelValue = useModel(__props, "modelValue");
68475
+ const onBackspace = () => {
68476
+ modelValue.value.splice(-1);
68477
+ };
68478
+ const setFocus = () => {
68479
+ if (inputElement.value) {
68480
+ inputElement.value.focus();
68481
+ }
68482
+ };
68483
+ const onSelect = (option) => {
68484
+ modelValue.value.push(option);
68485
+ searching.value = "";
68486
+ setFocus();
68487
+ closeDatalist();
68488
+ };
68489
+ const removeOption = (value) => {
68490
+ modelValue.value = modelValue.value.filter((o) => o.value !== value);
68491
+ };
68492
+ const clearInput = () => {
68493
+ modelValue.value = [];
68494
+ searching.value = "";
68495
+ };
68496
+ const displayedOptions = computed(
68497
+ () => props.options.filter((o) => searchString(o.label, searching.value)).filter(
68498
+ (o) => !modelValue.value.find((option) => option.value === o.value)
68499
+ )
68500
+ );
68501
+ const displayValues = computed(
68502
+ () => modelValue.value.filter(
68503
+ (o) => props.options.find((option) => option.value === o.value)
68504
+ )
68505
+ );
68506
+ return (_ctx, _cache) => {
68507
+ return openBlock(), createBlock(RawSelect, mergeProps(_ctx.$props, {
68508
+ options: displayedOptions.value,
68509
+ "model-value": modelValue.value,
68510
+ open: isDatalistOpen.value,
68511
+ onSelect
68512
+ }), {
68513
+ input: withCtx(() => [
68514
+ createElementVNode("div", _hoisted_1$E, [
68515
+ (openBlock(true), createElementBlock(Fragment, null, renderList(displayValues.value, (tag) => {
68516
+ return openBlock(), createBlock(BmsTag, {
68517
+ small: _ctx.small,
68518
+ active: "",
68519
+ onDismiss: ($event) => removeOption(tag.value)
68520
+ }, {
68521
+ default: withCtx(() => [
68522
+ tag?.icon ? (openBlock(), createBlock(resolveDynamicComponent(tag.icon), { key: 0 })) : createCommentVNode("", true),
68523
+ createTextVNode(" " + toDisplayString(tag.label), 1)
68524
+ ]),
68525
+ _: 2
68526
+ }, 1032, ["small", "onDismiss"]);
68527
+ }), 256)),
68528
+ withDirectives(createElementVNode("input", {
68529
+ type: "text",
68530
+ ref_key: "inputElement",
68531
+ ref: inputElement,
68532
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searching.value = $event),
68533
+ class: "search",
68534
+ onFocus: openDatalist,
68535
+ onClick: openDatalist,
68536
+ onKeyup: [
68537
+ withKeys(openDatalist, ["down"]),
68538
+ withKeys(onBackspace, ["backspace"])
68539
+ ],
68540
+ onInput: openDatalist
68541
+ }, null, 544), [
68542
+ [vModelText, searching.value]
68543
+ ])
68544
+ ]),
68545
+ createElementVNode("span", _hoisted_2$q, [
68546
+ modelValue.value.length ? (openBlock(), createBlock(unref(X), {
68547
+ key: 0,
68548
+ class: "icon icon-clear",
68549
+ onClick: withModifiers(clearInput, ["stop"])
68550
+ })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
68551
+ isDatalistOpen.value ? (openBlock(), createBlock(unref(ChevronUp), {
68552
+ key: 0,
68553
+ class: "icon icon-toggle-button",
68554
+ onClick: closeDatalist
68555
+ })) : (openBlock(), createBlock(unref(ChevronDown), {
68556
+ key: 1,
68557
+ class: "icon icon-toggle-button",
68558
+ onClick: openDatalist
68559
+ }))
68560
+ ], 64))
68561
+ ])
68562
+ ]),
68563
+ option: withCtx(({ option }) => [
68564
+ createVNode(BmsTag, {
68565
+ active: "",
68566
+ "can-be-dismissed": false
68567
+ }, {
68568
+ default: withCtx(() => [
68569
+ option?.icon ? (openBlock(), createBlock(resolveDynamicComponent(option.icon), { key: 0 })) : createCommentVNode("", true),
68570
+ createTextVNode(" " + toDisplayString(option.label), 1)
68571
+ ]),
68572
+ _: 2
68573
+ }, 1024)
68574
+ ]),
68575
+ _: 1
68576
+ }, 16, ["options", "model-value", "open"]);
68577
+ };
68578
+ }
68579
+ });
68580
+
68581
+ const BmsMultiSelect = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-89613f32"]]);
68582
+
68583
+ const _sfc_main$M = /* @__PURE__ */ defineComponent({
68584
+ __name: "BmsSearch",
68585
+ props: {
68586
+ modelValue: {},
68587
+ placeholder: { default: "Rechercher..." },
68588
+ disabled: { type: Boolean },
68589
+ errors: {}
68590
+ },
68591
+ emits: ["update:modelValue"],
68592
+ setup(__props, { expose: __expose, emit: __emit }) {
68593
+ const input = ref(null);
68594
+ const props = __props;
68595
+ const emit = __emit;
68596
+ const search = computed({
68597
+ get() {
68598
+ return props.modelValue;
68599
+ },
68600
+ set(value) {
68601
+ emit("update:modelValue", value);
68602
+ }
68603
+ });
68604
+ const setFocus = () => {
68605
+ if (input.value) {
68606
+ input.value.setFocus();
68607
+ }
68608
+ };
68609
+ __expose({
68610
+ setFocus
68611
+ });
68612
+ return (_ctx, _cache) => {
68613
+ return openBlock(), createBlock(_sfc_main$Z, {
68614
+ ref_key: "input",
68615
+ ref: input,
68616
+ modelValue: search.value,
68617
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => search.value = $event),
68618
+ placeholder: _ctx.placeholder,
68619
+ errors: _ctx.errors,
68620
+ disabled: _ctx.disabled
68621
+ }, createSlots({
68622
+ "icon-start": withCtx(() => [
68623
+ createVNode(unref(Search))
68624
+ ]),
68625
+ _: 2
68626
+ }, [
68627
+ search.value && !_ctx.disabled ? {
68628
+ name: "icon-end",
68629
+ fn: withCtx(() => [
68630
+ createVNode(unref(X), {
68631
+ class: "clean-icon",
68632
+ onClick: _cache[0] || (_cache[0] = ($event) => search.value = "")
68633
+ })
68634
+ ]),
68635
+ key: "0"
68636
+ } : void 0
68637
+ ]), 1032, ["modelValue", "placeholder", "errors", "disabled"]);
68638
+ };
68639
+ }
68640
+ });
68641
+
68642
+ const BmsSearch = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-v-66c267f2"]]);
68264
68643
 
68265
68644
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
68266
68645
 
@@ -85480,14 +85859,15 @@ function requireLodash () {
85480
85859
  var lodashExports = requireLodash();
85481
85860
  const _ = /*@__PURE__*/getDefaultExportFromCjs(lodashExports);
85482
85861
 
85483
- const _hoisted_1$F = ["value", "placeholder", "required"];
85484
- const _hoisted_2$q = { class: "icon-down-container" };
85485
- const _sfc_main$O = /* @__PURE__ */ defineComponent({
85862
+ const _hoisted_1$D = ["value", "placeholder", "required"];
85863
+ const _hoisted_2$p = { class: "icon-toggle-container" };
85864
+ const _sfc_main$L = /* @__PURE__ */ defineComponent({
85486
85865
  __name: "BmsSelect",
85487
85866
  props: /* @__PURE__ */ mergeModels({
85488
85867
  options: {},
85489
85868
  optional: { type: Boolean },
85490
85869
  placeholder: {},
85870
+ open: { type: Boolean, default: false },
85491
85871
  label: { default: "" },
85492
85872
  required: { type: Boolean, default: false },
85493
85873
  helperText: {},
@@ -85497,29 +85877,24 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
85497
85877
  small: { type: Boolean, default: false }
85498
85878
  }, {
85499
85879
  "modelValue": { required: true },
85500
- "modelModifiers": {},
85501
- "open": { type: Boolean, ...{ default: false } },
85502
- "openModifiers": {}
85880
+ "modelModifiers": {}
85503
85881
  }),
85504
- emits: ["update:modelValue", "update:open"],
85505
- setup(__props, { expose: __expose }) {
85882
+ emits: /* @__PURE__ */ mergeModels(["select"], ["update:modelValue"]),
85883
+ setup(__props, { expose: __expose, emit: __emit }) {
85506
85884
  const props = __props;
85507
85885
  const modelValue = useModel(__props, "modelValue");
85508
- const open = useModel(__props, "open");
85509
- const selectInput = ref(null);
85510
- const selectWrapper = ref(null);
85511
- const classes = computed(() => {
85512
- return { "is-error": props.errors?.length, "is-disabled": props.disabled };
85513
- });
85514
- onMounted(() => {
85515
- document.body.addEventListener("click", (ev) => {
85516
- if (ev.target.closest(".select-wrapper") === selectWrapper.value) {
85517
- open.value = !open.value;
85518
- ev.stopPropagation();
85519
- } else {
85520
- open.value = false;
85521
- }
85522
- });
85886
+ const inputElement = useTemplateRef("inputElement");
85887
+ const isDatalistOpen = ref(props.open);
85888
+ const closeDatalist = () => {
85889
+ isDatalistOpen.value = false;
85890
+ };
85891
+ const openDatalist = () => {
85892
+ isDatalistOpen.value = true;
85893
+ setFocus();
85894
+ };
85895
+ const emits = __emit;
85896
+ onClickOutside(inputElement, () => closeDatalist, {
85897
+ ignore: [".datalist-option", ".icon-toggle-button"]
85523
85898
  });
85524
85899
  const displayValue = computed(() => {
85525
85900
  const option = props.options.find(
@@ -85528,277 +85903,59 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
85528
85903
  if (option) return option.label;
85529
85904
  return "";
85530
85905
  });
85531
- const selectItem = (option) => {
85532
- modelValue.value = option.value;
85533
- setFocus();
85534
- open.value = false;
85535
- };
85536
85906
  const setFocus = () => {
85537
- open.value = true;
85538
- if (selectInput.value) {
85539
- selectInput.value.focus();
85907
+ if (inputElement.value) {
85908
+ inputElement.value.focus();
85540
85909
  }
85541
85910
  };
85911
+ const onSelect = (option) => {
85912
+ modelValue.value = option.value;
85913
+ emits("select", option.value);
85914
+ setFocus();
85915
+ closeDatalist();
85916
+ };
85542
85917
  __expose({
85543
85918
  setFocus
85544
85919
  });
85545
85920
  return (_ctx, _cache) => {
85546
- const _component_field = resolveComponent("field");
85547
- return openBlock(), createBlock(_component_field, normalizeProps(guardReactiveProps(_ctx.$props)), {
85548
- datalist: withCtx(() => [
85549
- withDirectives(createVNode(FieldDatalist, {
85550
- options: _ctx.options,
85551
- "is-input-focused": open.value,
85552
- small: _ctx.small,
85553
- onSelect: _cache[0] || (_cache[0] = (option) => selectItem(option))
85554
- }, {
85555
- option: withCtx(({ option }) => [
85556
- renderSlot(_ctx.$slots, "option", { option }, void 0, true)
85557
- ]),
85558
- _: 3
85559
- }, 8, ["options", "is-input-focused", "small"]), [
85560
- [vShow, open.value]
85561
- ])
85562
- ]),
85563
- default: withCtx(() => [
85564
- createElementVNode("span", {
85565
- class: normalizeClass(["select-wrapper", classes.value]),
85566
- ref_key: "selectWrapper",
85567
- ref: selectWrapper
85568
- }, [
85569
- renderSlot(_ctx.$slots, "input", {}, () => [
85570
- createElementVNode("input", {
85571
- ref_key: "selectInput",
85572
- ref: selectInput,
85573
- type: "text",
85574
- role: "input",
85575
- value: displayValue.value,
85576
- placeholder: _ctx.placeholder,
85577
- onkeypress: "return false;",
85578
- required: _ctx.required
85579
- }, null, 8, _hoisted_1$F),
85580
- createElementVNode("span", _hoisted_2$q, [
85581
- createVNode(unref(ChevronDown), { class: "icon-down-button" })
85582
- ])
85583
- ], true)
85584
- ], 2)
85585
- ]),
85586
- _: 3
85587
- }, 16);
85588
- };
85589
- }
85590
- });
85591
-
85592
- const BmsSelect = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["__scopeId", "data-v-6e3f7aab"]]);
85593
-
85594
- const _hoisted_1$E = { class: "dismiss-button" };
85595
- const _sfc_main$N = /* @__PURE__ */ defineComponent({
85596
- __name: "BmsTag",
85597
- props: {
85598
- active: { type: Boolean, default: false },
85599
- disabled: { type: Boolean, default: false },
85600
- canBeDismissed: { type: Boolean, default: true },
85601
- small: { type: Boolean }
85602
- },
85603
- emits: ["dismiss", "click"],
85604
- setup(__props, { emit: __emit }) {
85605
- const emits = __emit;
85606
- return (_ctx, _cache) => {
85607
- return openBlock(), createElementBlock("div", {
85608
- class: normalizeClass(["tag", { active: _ctx.active, disabled: _ctx.disabled, small: _ctx.small }]),
85609
- onClick: _cache[1] || (_cache[1] = ($event) => emits("click"))
85610
- }, [
85611
- renderSlot(_ctx.$slots, "default", {}, void 0, true),
85612
- createElementVNode("span", _hoisted_1$E, [
85613
- _ctx.canBeDismissed ? (openBlock(), createBlock(unref(_sfc_main$1h), {
85614
- key: 0,
85615
- onClick: _cache[0] || (_cache[0] = withModifiers(($event) => emits("dismiss"), ["stop"]))
85616
- }, {
85617
- default: withCtx(() => [
85618
- renderSlot(_ctx.$slots, "closeIcon", {}, () => [
85619
- createVNode(unref(X))
85620
- ], true)
85621
- ]),
85622
- _: 3
85623
- })) : createCommentVNode("", true)
85624
- ])
85625
- ], 2);
85626
- };
85627
- }
85628
- });
85629
-
85630
- const BmsTag = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-e2517fee"]]);
85631
-
85632
- const _hoisted_1$D = { class: "tags" };
85633
- const _hoisted_2$p = { class: "icon-container" };
85634
- const _sfc_main$M = /* @__PURE__ */ defineComponent({
85635
- __name: "BmsMultiSelect",
85636
- props: /* @__PURE__ */ mergeModels({
85637
- options: {},
85638
- placeholder: {},
85639
- label: { default: "" },
85640
- required: { type: Boolean, default: false },
85641
- optional: { type: Boolean },
85642
- helperText: {},
85643
- errors: {},
85644
- captions: {},
85645
- disabled: { type: Boolean, default: false },
85646
- small: { type: Boolean }
85647
- }, {
85648
- "modelValue": {
85649
- required: true
85650
- },
85651
- "modelModifiers": {}
85652
- }),
85653
- emits: ["update:modelValue"],
85654
- setup(__props) {
85655
- const props = __props;
85656
- const searching = ref("");
85657
- const modelValue = useModel(__props, "modelValue");
85658
- const onSelect = (value) => {
85659
- const option = props.options.find((o) => o.value === value);
85660
- if (option) {
85661
- modelValue.value.push(option);
85662
- searching.value = "";
85663
- }
85664
- };
85665
- const removeOption = (value) => {
85666
- modelValue.value = modelValue.value.filter((o) => o.value !== value);
85667
- };
85668
- const reset = () => {
85669
- modelValue.value = [];
85670
- searching.value = "";
85671
- };
85672
- const displayedOptions = computed(
85673
- () => props.options.filter((o) => searchString(o.label, searching.value)).filter(
85674
- (o) => !modelValue.value.find((option) => option.value === o.value)
85675
- )
85676
- );
85677
- const displayValues = computed(
85678
- () => modelValue.value.filter(
85679
- (o) => props.options.find((option) => option.value === o.value)
85680
- )
85681
- );
85682
- return (_ctx, _cache) => {
85683
- return openBlock(), createBlock(BmsSelect, mergeProps(_ctx.$props, {
85684
- options: displayedOptions.value,
85685
- "model-value": modelValue.value,
85686
- "onUpdate:modelValue": onSelect
85921
+ return openBlock(), createBlock(RawSelect, mergeProps(_ctx.$props, {
85922
+ open: isDatalistOpen.value,
85923
+ onSelect,
85924
+ onClick: setFocus
85687
85925
  }), {
85688
85926
  input: withCtx(() => [
85689
- createElementVNode("div", _hoisted_1$D, [
85690
- (openBlock(true), createElementBlock(Fragment, null, renderList(displayValues.value, (tag) => {
85691
- return openBlock(), createBlock(BmsTag, {
85692
- small: _ctx.small,
85693
- active: "",
85694
- onDismiss: ($event) => removeOption(tag.value)
85695
- }, {
85696
- default: withCtx(() => [
85697
- tag?.icon ? (openBlock(), createBlock(resolveDynamicComponent(tag.icon), { key: 0 })) : createCommentVNode("", true),
85698
- createTextVNode(" " + toDisplayString(tag.label), 1)
85699
- ]),
85700
- _: 2
85701
- }, 1032, ["small", "onDismiss"]);
85702
- }), 256)),
85703
- withDirectives(createElementVNode("input", {
85704
- type: "text",
85705
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searching.value = $event),
85706
- class: "search"
85707
- }, null, 512), [
85708
- [vModelText, searching.value]
85709
- ])
85710
- ]),
85927
+ createElementVNode("input", {
85928
+ ref_key: "inputElement",
85929
+ ref: inputElement,
85930
+ type: "text",
85931
+ role: "input",
85932
+ readonly: "",
85933
+ value: displayValue.value,
85934
+ placeholder: _ctx.placeholder,
85935
+ required: _ctx.required,
85936
+ onFocus: openDatalist,
85937
+ onClick: openDatalist,
85938
+ onKeyup: withKeys(openDatalist, ["down"])
85939
+ }, null, 40, _hoisted_1$D),
85711
85940
  createElementVNode("span", _hoisted_2$p, [
85712
- modelValue.value.length === 0 ? (openBlock(), createBlock(unref(ChevronDown), {
85941
+ isDatalistOpen.value ? (openBlock(), createBlock(unref(ChevronUp), {
85713
85942
  key: 0,
85714
- class: "icon-button"
85715
- })) : (openBlock(), createBlock(unref(X), {
85943
+ class: "icon-toggle-button",
85944
+ onClick: closeDatalist
85945
+ })) : (openBlock(), createBlock(unref(ChevronDown), {
85716
85946
  key: 1,
85717
- class: "icon-button",
85718
- onClick: reset
85947
+ class: "icon-toggle-button",
85948
+ onClick: openDatalist
85719
85949
  }))
85720
85950
  ])
85721
85951
  ]),
85722
- option: withCtx(({ option }) => [
85723
- createVNode(BmsTag, {
85724
- active: "",
85725
- "can-be-dismissed": false
85726
- }, {
85727
- default: withCtx(() => [
85728
- option?.icon ? (openBlock(), createBlock(resolveDynamicComponent(option.icon), { key: 0 })) : createCommentVNode("", true),
85729
- createTextVNode(" " + toDisplayString(option.label), 1)
85730
- ]),
85731
- _: 2
85732
- }, 1024)
85733
- ]),
85734
85952
  _: 1
85735
- }, 16, ["options", "model-value"]);
85953
+ }, 16, ["open"]);
85736
85954
  };
85737
85955
  }
85738
85956
  });
85739
85957
 
85740
- const BmsMultiSelect = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-v-9bf5a4d3"]]);
85741
-
85742
- const _sfc_main$L = /* @__PURE__ */ defineComponent({
85743
- __name: "BmsSearch",
85744
- props: {
85745
- modelValue: {},
85746
- placeholder: { default: "Rechercher..." },
85747
- disabled: { type: Boolean },
85748
- errors: {}
85749
- },
85750
- emits: ["update:modelValue"],
85751
- setup(__props, { expose: __expose, emit: __emit }) {
85752
- const input = ref(null);
85753
- const props = __props;
85754
- const emit = __emit;
85755
- const search = computed({
85756
- get() {
85757
- return props.modelValue;
85758
- },
85759
- set(value) {
85760
- emit("update:modelValue", value);
85761
- }
85762
- });
85763
- const setFocus = () => {
85764
- if (input.value) {
85765
- input.value.setFocus();
85766
- }
85767
- };
85768
- __expose({
85769
- setFocus
85770
- });
85771
- return (_ctx, _cache) => {
85772
- return openBlock(), createBlock(_sfc_main$Y, {
85773
- ref_key: "input",
85774
- ref: input,
85775
- modelValue: search.value,
85776
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => search.value = $event),
85777
- placeholder: _ctx.placeholder,
85778
- errors: _ctx.errors,
85779
- disabled: _ctx.disabled
85780
- }, createSlots({
85781
- "icon-start": withCtx(() => [
85782
- createVNode(unref(Search))
85783
- ]),
85784
- _: 2
85785
- }, [
85786
- search.value && !_ctx.disabled ? {
85787
- name: "icon-end",
85788
- fn: withCtx(() => [
85789
- createVNode(unref(X), {
85790
- class: "clean-icon",
85791
- onClick: _cache[0] || (_cache[0] = ($event) => search.value = "")
85792
- })
85793
- ]),
85794
- key: "0"
85795
- } : void 0
85796
- ]), 1032, ["modelValue", "placeholder", "errors", "disabled"]);
85797
- };
85798
- }
85799
- });
85800
-
85801
- const BmsSearch = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__scopeId", "data-v-66c267f2"]]);
85958
+ const BmsSelect = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__scopeId", "data-v-e159e127"]]);
85802
85959
 
85803
85960
  const _hoisted_1$C = ["value", "required", "placeholder"];
85804
85961
  const _sfc_main$K = /* @__PURE__ */ defineComponent({
@@ -85941,7 +86098,7 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
85941
86098
  class: normalizeClass(["card__body", { animated: _ctx.animated, hasAction: !!_ctx.$slots.action }])
85942
86099
  }, [
85943
86100
  createElementVNode("div", _hoisted_1$A, [
85944
- _ctx.to ? (openBlock(), createBlock(_sfc_main$1l, {
86101
+ _ctx.to ? (openBlock(), createBlock(_sfc_main$1m, {
85945
86102
  key: 0,
85946
86103
  class: "card__body__content__link",
85947
86104
  to: _ctx.to
@@ -88936,7 +89093,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
88936
89093
  key: 0,
88937
89094
  class: normalizeClass(["bms-short-link-menu", { "bms-short-link-menu__outline": _ctx.outline }])
88938
89095
  }, [
88939
- !!_ctx.helpLink ? (openBlock(), createBlock(_sfc_main$1h, {
89096
+ !!_ctx.helpLink ? (openBlock(), createBlock(_sfc_main$1i, {
88940
89097
  key: 0,
88941
89098
  "tooltip-text": "Voir la documentation",
88942
89099
  to: _ctx.helpLink,
@@ -88949,7 +89106,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
88949
89106
  ]),
88950
89107
  _: 3
88951
89108
  }, 8, ["to"])) : createCommentVNode("", true),
88952
- !!_ctx.activityLink ? (openBlock(), createBlock(_sfc_main$1h, {
89109
+ !!_ctx.activityLink ? (openBlock(), createBlock(_sfc_main$1i, {
88953
89110
  key: 1,
88954
89111
  "tooltip-text": "Voir l'activité",
88955
89112
  to: _ctx.activityLink,
@@ -89060,7 +89217,7 @@ const _hoisted_8$3 = {
89060
89217
  key: 0,
89061
89218
  class: "ui-modal__loader"
89062
89219
  };
89063
- const _hoisted_9$3 = { key: 0 };
89220
+ const _hoisted_9$2 = { key: 0 };
89064
89221
  const _sfc_main$A = /* @__PURE__ */ defineComponent({
89065
89222
  __name: "BmsModal",
89066
89223
  props: {
@@ -89201,7 +89358,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
89201
89358
  ])
89202
89359
  ], true)
89203
89360
  ]),
89204
- createVNode(_sfc_main$1h, {
89361
+ createVNode(_sfc_main$1i, {
89205
89362
  disabled: !isModalClosable.value,
89206
89363
  onClick: dismissModal,
89207
89364
  "data-testid": "close-modal"
@@ -89227,7 +89384,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
89227
89384
  modalData: props.modelValue
89228
89385
  }, () => [
89229
89386
  (openBlock(true), createElementBlock(Fragment, null, renderList(buttons.value, (button) => {
89230
- return openBlock(), createBlock(_sfc_main$1i, {
89387
+ return openBlock(), createBlock(_sfc_main$1j, {
89231
89388
  key: button.label + button.role,
89232
89389
  type: button.role === "cancel" ? "secondary" : "primary",
89233
89390
  disabled: !isModalClosable.value || button.disabled,
@@ -89249,7 +89406,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
89249
89406
  default: withCtx(() => [
89250
89407
  _ctx.loading ? (openBlock(), createElementBlock("div", _hoisted_8$3, [
89251
89408
  createVNode(BmsLoader, { size: 64 }),
89252
- _ctx.loadingText ? (openBlock(), createElementBlock("p", _hoisted_9$3, toDisplayString(_ctx.loadingText), 1)) : createCommentVNode("", true)
89409
+ _ctx.loadingText ? (openBlock(), createElementBlock("p", _hoisted_9$2, toDisplayString(_ctx.loadingText), 1)) : createCommentVNode("", true)
89253
89410
  ])) : createCommentVNode("", true)
89254
89411
  ]),
89255
89412
  _: 1
@@ -89309,7 +89466,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
89309
89466
  renderSlot(_ctx.$slots, "default", {}, void 0, true),
89310
89467
  renderSlot(_ctx.$slots, "actions", {}, () => [
89311
89468
  createElementVNode("div", _hoisted_2$j, [
89312
- _ctx.previousLabel ? (openBlock(), createBlock(_sfc_main$1i, {
89469
+ _ctx.previousLabel ? (openBlock(), createBlock(_sfc_main$1j, {
89313
89470
  key: 0,
89314
89471
  "data-test": "previous-button",
89315
89472
  name: "previous",
@@ -89321,7 +89478,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
89321
89478
  ]),
89322
89479
  _: 1
89323
89480
  })) : createCommentVNode("", true),
89324
- _ctx.nextLabel ? (openBlock(), createBlock(_sfc_main$1i, {
89481
+ _ctx.nextLabel ? (openBlock(), createBlock(_sfc_main$1j, {
89325
89482
  key: 1,
89326
89483
  "data-test": "next-button",
89327
89484
  class: "",
@@ -89616,7 +89773,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
89616
89773
  return classes2;
89617
89774
  });
89618
89775
  return (_ctx, _cache) => {
89619
- return openBlock(), createBlock(_sfc_main$1l, {
89776
+ return openBlock(), createBlock(_sfc_main$1m, {
89620
89777
  to: _ctx.item.link,
89621
89778
  target: _ctx.target,
89622
89779
  classes: classes.value
@@ -89706,7 +89863,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
89706
89863
  key: item.label
89707
89864
  }, [
89708
89865
  hasSubItems(item) ? (openBlock(), createElementBlock("div", _hoisted_1$o, [
89709
- item.link ? (openBlock(), createBlock(_sfc_main$1l, {
89866
+ item.link ? (openBlock(), createBlock(_sfc_main$1m, {
89710
89867
  key: 0,
89711
89868
  to: item.link,
89712
89869
  class: normalizeClass(`parent-item ${isItemActive(item) ? "active" : ""}`)
@@ -89821,7 +89978,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
89821
89978
  const toggleMenu = (newMenuState = true) => isMenuOpen.value = newMenuState;
89822
89979
  return (_ctx, _cache) => {
89823
89980
  return openBlock(), createElementBlock("div", _hoisted_1$m, [
89824
- createVNode(unref(_sfc_main$1h), {
89981
+ createVNode(unref(_sfc_main$1i), {
89825
89982
  onClick: _cache[0] || (_cache[0] = ($event) => toggleMenu(!isMenuOpen.value)),
89826
89983
  "data-testid": "openMenu",
89827
89984
  "aria-label": "Ouvrir le menu"
@@ -89845,7 +90002,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
89845
90002
  ref: menu,
89846
90003
  class: normalizeClass(["menu__container", { "is-show": isMenuOpen.value }])
89847
90004
  }, [
89848
- createVNode(unref(_sfc_main$1h), {
90005
+ createVNode(unref(_sfc_main$1i), {
89849
90006
  class: "menu__close",
89850
90007
  onClick: _cache[1] || (_cache[1] = ($event) => toggleMenu(false)),
89851
90008
  "data-testid": "closeMenu",
@@ -90102,7 +90259,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
90102
90259
  createTextVNode(" " + toDisplayString(_ctx.tenant.label), 1),
90103
90260
  createElementVNode("em", null, "- " + toDisplayString(_ctx.tenant.information), 1)
90104
90261
  ], 8, _hoisted_1$j),
90105
- _ctx.tenant.isFavorite ? (openBlock(), createBlock(_sfc_main$1h, {
90262
+ _ctx.tenant.isFavorite ? (openBlock(), createBlock(_sfc_main$1i, {
90106
90263
  key: 0,
90107
90264
  class: "remove-tenant-button",
90108
90265
  onClick: _cache[0] || (_cache[0] = withModifiers(($event) => emits("removeFavorite"), ["stop"]))
@@ -90182,7 +90339,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
90182
90339
  }, {
90183
90340
  default: withCtx(() => [
90184
90341
  createElementVNode("div", _hoisted_1$i, [
90185
- createVNode(unref(_sfc_main$Y), {
90342
+ createVNode(unref(_sfc_main$Z), {
90186
90343
  ref_key: "searchRef",
90187
90344
  ref: searchRef,
90188
90345
  modelValue: search.value,
@@ -90298,7 +90455,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
90298
90455
  _ctx.currentTenant && _ctx.tenants.length === 1 ? (openBlock(), createElementBlock("div", _hoisted_1$h, [
90299
90456
  createVNode(_sfc_main$m, { tenant: _ctx.currentTenant }, null, 8, ["tenant"]),
90300
90457
  createElementVNode("span", null, toDisplayString(_ctx.currentTenant.label), 1)
90301
- ])) : _ctx.tenants.length > 0 ? (openBlock(), createBlock(unref(_sfc_main$1i), {
90458
+ ])) : _ctx.tenants.length > 0 ? (openBlock(), createBlock(unref(_sfc_main$1j), {
90302
90459
  key: 1,
90303
90460
  type: "tertiary",
90304
90461
  onClick: _cache[0] || (_cache[0] = ($event) => showTenantSwitcher.value = !showTenantSwitcher.value)
@@ -90441,7 +90598,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
90441
90598
  onMouseup: _cache[1] || (_cache[1] = () => gripped.value = false)
90442
90599
  }),
90443
90600
  renderSlot(_ctx.$slots, "default", { row: item }, void 0, true),
90444
- createVNode(unref(_sfc_main$1h), {
90601
+ createVNode(unref(_sfc_main$1i), {
90445
90602
  mode: unref(StatusType).Danger,
90446
90603
  onClick: ($event) => onRemove(item)
90447
90604
  }, {
@@ -90589,7 +90746,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
90589
90746
  ], true)
90590
90747
  ]),
90591
90748
  createElementVNode("div", _hoisted_3$6, [
90592
- createVNode(_sfc_main$1h, {
90749
+ createVNode(_sfc_main$1i, {
90593
90750
  color: "neutral",
90594
90751
  onClick: goToFirst,
90595
90752
  disabled: _ctx.currentPage === 0
@@ -90599,7 +90756,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
90599
90756
  ]),
90600
90757
  _: 1
90601
90758
  }, 8, ["disabled"]),
90602
- createVNode(_sfc_main$1h, {
90759
+ createVNode(_sfc_main$1i, {
90603
90760
  onClick: goToPrevious,
90604
90761
  disabled: _ctx.currentPage === 0
90605
90762
  }, {
@@ -90608,7 +90765,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
90608
90765
  ]),
90609
90766
  _: 1
90610
90767
  }, 8, ["disabled"]),
90611
- createVNode(_sfc_main$1h, {
90768
+ createVNode(_sfc_main$1i, {
90612
90769
  onClick: goToNext,
90613
90770
  disabled: _ctx.currentPage === _ctx.pages - 1 || _ctx.pages === 0
90614
90771
  }, {
@@ -90617,7 +90774,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
90617
90774
  ]),
90618
90775
  _: 1
90619
90776
  }, 8, ["disabled"]),
90620
- createVNode(_sfc_main$1h, {
90777
+ createVNode(_sfc_main$1i, {
90621
90778
  onClick: goToLast,
90622
90779
  disabled: _ctx.currentPage === _ctx.pages - 1 || _ctx.pages === 0 || _ctx.total === Infinity
90623
90780
  }, {
@@ -94454,7 +94611,7 @@ const _hoisted_6$2 = {
94454
94611
  };
94455
94612
  const _hoisted_7$2 = { key: 1 };
94456
94613
  const _hoisted_8$2 = { key: 1 };
94457
- const _hoisted_9$2 = { class: "bms-table__table-wrapper" };
94614
+ const _hoisted_9$1 = { class: "bms-table__table-wrapper" };
94458
94615
  const _hoisted_10$1 = {
94459
94616
  key: 0,
94460
94617
  class: "bms-table__loader"
@@ -94681,7 +94838,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
94681
94838
  _: 3
94682
94839
  }, 8, ["type"])) : createCommentVNode("", true),
94683
94840
  _cache[4] || (_cache[4] = createElementVNode("div", { class: "selected-wrapper" }, null, -1)),
94684
- createElementVNode("div", _hoisted_9$2, [
94841
+ createElementVNode("div", _hoisted_9$1, [
94685
94842
  createVNode(Transition, { name: "fade" }, {
94686
94843
  default: withCtx(() => [
94687
94844
  _ctx.loading ? (openBlock(), createElementBlock("div", _hoisted_10$1, [
@@ -94836,7 +94993,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
94836
94993
  );
94837
94994
  return (_ctx, _cache) => {
94838
94995
  return openBlock(), createElementBlock("span", _hoisted_1$9, [
94839
- createVNode(_sfc_main$1j, {
94996
+ createVNode(_sfc_main$1k, {
94840
94997
  class: "filter-button",
94841
94998
  color: _ctx.isFilterVisible ? unref(StatusType).Default : unref(StatusType).Information,
94842
94999
  mode: _ctx.isFilterVisible ? "fill" : "ghost",
@@ -96388,16 +96545,19 @@ const useSearch = (persistent = true, defaultFilters = [], defaultFiltersOpened
96388
96545
  return targetFilter.value === saveF.value || targetFilter.value === "" && saveF.value === null || targetFilter.value === null && saveF.value === "";
96389
96546
  });
96390
96547
  };
96548
+ const resetFilterValue = (filter) => {
96549
+ let resetFilter = { ...filter };
96550
+ const valueKeys = ["value", "valueFrom", "valueTo"];
96551
+ valueKeys.forEach((key) => {
96552
+ if (resetFilter[key] !== null && resetFilter[key] !== void 0) {
96553
+ resetFilter[key] = null;
96554
+ }
96555
+ });
96556
+ return resetFilter;
96557
+ };
96391
96558
  const resetFilters = () => {
96392
96559
  filters.value = filters.value.map((filter) => {
96393
- let resetFilter = { ...filter };
96394
- const valueKeys = ["value", "valueFrom", "valueTo"];
96395
- valueKeys.forEach((key) => {
96396
- if (resetFilter[key] !== null && resetFilter[key] !== void 0) {
96397
- resetFilter[key] = null;
96398
- }
96399
- });
96400
- return resetFilter;
96560
+ return resetFilterValue(filter);
96401
96561
  });
96402
96562
  };
96403
96563
  const selectSavedFilter = (savedFilter) => {
@@ -96414,6 +96574,27 @@ const useSearch = (persistent = true, defaultFilters = [], defaultFiltersOpened
96414
96574
  });
96415
96575
  }
96416
96576
  };
96577
+ const updateFiltersFromProps = (updatedFilters) => {
96578
+ filters.value = filters.value.map((filter) => {
96579
+ const updatedFilter = updatedFilters.find((f) => f.key === filter.key);
96580
+ if (updatedFilter) {
96581
+ let mergedFilter = { ...filter };
96582
+ if (updatedFilter.autocompleteOptions)
96583
+ mergedFilter.autocompleteOptions = updatedFilter.autocompleteOptions;
96584
+ if (updatedFilter.selectOptions)
96585
+ mergedFilter.selectOptions = updatedFilter.selectOptions;
96586
+ const value = filter.value || filter.valueFrom || filter.valueTo;
96587
+ const isValueValidSelectOption = updatedFilter.type === "select" && updatedFilter.selectOptions?.find((option) => option.value === value);
96588
+ const isValueValidAutocompleteOption = updatedFilter.type === "autocomplete" && updatedFilter.autocompleteOptions?.find((option) => option === value);
96589
+ if (value && !isValueValidSelectOption && !isValueValidAutocompleteOption) {
96590
+ mergedFilter = resetFilterValue(mergedFilter);
96591
+ }
96592
+ return mergedFilter;
96593
+ } else {
96594
+ return filter;
96595
+ }
96596
+ });
96597
+ };
96417
96598
  return {
96418
96599
  search,
96419
96600
  reflect,
@@ -96426,7 +96607,8 @@ const useSearch = (persistent = true, defaultFilters = [], defaultFiltersOpened
96426
96607
  isSavedFilterActive,
96427
96608
  resetFilters,
96428
96609
  selectSavedFilter,
96429
- resetAllFilters
96610
+ resetAllFilters,
96611
+ updateFiltersFromProps
96430
96612
  };
96431
96613
  };
96432
96614
  const reflectFiltersToPath = (filters) => {
@@ -96930,7 +97112,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
96930
97112
  modelValue: {},
96931
97113
  canSaveFilters: { type: Boolean, default: false }
96932
97114
  },
96933
- emits: ["update:modelValue", "saveFilter", "resetFilters"],
97115
+ emits: ["update:modelValue", "saveFilter", "resetFilters", "filterInput", "filterChange"],
96934
97116
  setup(__props, { emit: __emit }) {
96935
97117
  const route = useRoute();
96936
97118
  const props = __props;
@@ -96940,22 +97122,25 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
96940
97122
  const nameInput = ref(null);
96941
97123
  const onFilter = (key, inputValue, valueKey) => {
96942
97124
  let filter = props.modelValue.find((f) => f.key === key);
97125
+ let updatedValue;
96943
97126
  if (filter) {
96944
97127
  switch (filter.type) {
96945
97128
  case "boolean":
96946
- filter.value = inputValue === "true" ? true : inputValue === "false" ? false : null;
97129
+ updatedValue = inputValue === "true" ? true : inputValue === "false" ? false : null;
96947
97130
  break;
96948
97131
  case "select":
96949
97132
  case "autocomplete":
96950
97133
  case "betweenDate":
96951
97134
  case "betweenDateTime":
96952
97135
  case "betweenNumber":
96953
- filter[valueKey] = inputValue === "null" ? null : inputValue;
97136
+ updatedValue = inputValue === "null" ? null : inputValue;
96954
97137
  break;
96955
97138
  default:
96956
- filter.value = inputValue;
97139
+ updatedValue = inputValue;
96957
97140
  break;
96958
97141
  }
97142
+ filter[valueKey] = updatedValue;
97143
+ $emits("filterChange", { filterKey: key, value: updatedValue });
96959
97144
  }
96960
97145
  $emits("update:modelValue", props.modelValue);
96961
97146
  };
@@ -96964,9 +97149,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
96964
97149
  case "boolean":
96965
97150
  return BmsSelect;
96966
97151
  case "input":
96967
- return _sfc_main$Y;
97152
+ return _sfc_main$Z;
96968
97153
  case "inputDate":
96969
- return _sfc_main$X;
97154
+ return _sfc_main$Y;
96970
97155
  case "autocomplete":
96971
97156
  return BmsAutocomplete;
96972
97157
  case "select":
@@ -97051,7 +97236,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
97051
97236
  _cache[2] || (_cache[2] = createTextVNode(" Recherche avancée ", -1))
97052
97237
  ]),
97053
97238
  createElementVNode("span", _hoisted_4$3, [
97054
- _ctx.canSaveFilters ? (openBlock(), createBlock(_sfc_main$1h, {
97239
+ _ctx.canSaveFilters ? (openBlock(), createBlock(_sfc_main$1i, {
97055
97240
  key: 0,
97056
97241
  class: "save",
97057
97242
  tooltipText: "Sauvegarder le filtre",
@@ -97062,7 +97247,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
97062
97247
  ]),
97063
97248
  _: 1
97064
97249
  })) : createCommentVNode("", true),
97065
- createVNode(_sfc_main$1h, {
97250
+ createVNode(_sfc_main$1i, {
97066
97251
  class: "reset",
97067
97252
  tooltipText: "Vider les champs",
97068
97253
  onClick: reset
@@ -97091,8 +97276,13 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
97091
97276
  "onUpdate:valueTo": ($event) => onFilter(filter.key, $event, "valueTo"),
97092
97277
  valueFrom: transformValueForComponent(filter?.valueFrom, filter.type),
97093
97278
  valueTo: transformValueForComponent(filter?.valueTo, filter.type),
97094
- options: getFilterOptions(filter)
97095
- }, null, 40, ["label", "inputType", "modelValue", "onUpdate:modelValue", "onUpdate:valueFrom", "onUpdate:valueTo", "valueFrom", "valueTo", "options"]))
97279
+ options: getFilterOptions(filter),
97280
+ onInput: (e) => $emits("filterInput", {
97281
+ filterKey: filter.key,
97282
+ value: e.target.value,
97283
+ e
97284
+ })
97285
+ }, null, 40, ["label", "inputType", "modelValue", "onUpdate:modelValue", "onUpdate:valueFrom", "onUpdate:valueTo", "valueFrom", "valueTo", "options", "onInput"]))
97096
97286
  ], 2);
97097
97287
  }), 128))
97098
97288
  ]),
@@ -97105,7 +97295,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
97105
97295
  }, {
97106
97296
  default: withCtx(() => [
97107
97297
  _cache[3] || (_cache[3] = createElementVNode("div", null, " Vous pouvez sauvegarder votre recherche pour la retrouver plus facilement. ", -1)),
97108
- createVNode(unref(_sfc_main$Y), {
97298
+ createVNode(unref(_sfc_main$Z), {
97109
97299
  ref_key: "nameInput",
97110
97300
  ref: nameInput,
97111
97301
  label: "Nom de la sauvegarde",
@@ -97121,7 +97311,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
97121
97311
  }
97122
97312
  });
97123
97313
 
97124
- const BmsTableFilters = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-58f3ef61"]]);
97314
+ const BmsTableFilters = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-92161702"]]);
97125
97315
 
97126
97316
  function bind(fn, thisArg) {
97127
97317
  return function wrap() {
@@ -101032,7 +101222,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
101032
101222
  },
101033
101223
  "selectedItemsModifiers": {}
101034
101224
  }),
101035
- emits: /* @__PURE__ */ mergeModels(["deleteSavedFilter", "saveFilter", "update:selectMode"], ["update:selectedItems"]),
101225
+ emits: /* @__PURE__ */ mergeModels(["deleteSavedFilter", "saveFilter", "update:selectMode", "filterInput", "filterChange"], ["update:selectedItems"]),
101036
101226
  setup(__props, { expose: __expose, emit: __emit }) {
101037
101227
  const props = __props;
101038
101228
  const {
@@ -101065,7 +101255,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
101065
101255
  toggleFilters,
101066
101256
  isSavedFilterActive,
101067
101257
  resetFilters,
101068
- selectSavedFilter
101258
+ selectSavedFilter,
101259
+ updateFiltersFromProps
101069
101260
  } = useSearch(props.persistent, props.filters, props.defaultFiltersOpened);
101070
101261
  const emits = __emit;
101071
101262
  const loading = ref(false);
@@ -101096,6 +101287,14 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
101096
101287
  fetchData();
101097
101288
  }
101098
101289
  });
101290
+ watch(
101291
+ () => props.filters,
101292
+ () => {
101293
+ updateFiltersFromProps(props.filters);
101294
+ reflectFiltersToPath(filters.value);
101295
+ },
101296
+ { deep: true }
101297
+ );
101099
101298
  watch(
101100
101299
  [() => filters.value, () => sort.value, size, search],
101101
101300
  () => {
@@ -101176,9 +101375,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
101176
101375
  return (_ctx, _cache) => {
101177
101376
  return openBlock(), createBlock(UiBmsTable, {
101178
101377
  selectedItems: selectedItems.value,
101179
- "onUpdate:selectedItems": _cache[3] || (_cache[3] = ($event) => selectedItems.value = $event),
101378
+ "onUpdate:selectedItems": _cache[5] || (_cache[5] = ($event) => selectedItems.value = $event),
101180
101379
  selectMode: localSelectMode.value,
101181
- "onUpdate:selectMode": _cache[4] || (_cache[4] = ($event) => localSelectMode.value = $event),
101380
+ "onUpdate:selectMode": _cache[6] || (_cache[6] = ($event) => localSelectMode.value = $event),
101182
101381
  loading: loading.value,
101183
101382
  items: unref(items),
101184
101383
  headers: _ctx.headers,
@@ -101202,7 +101401,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
101202
101401
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(filters) ? filters.value = $event : null),
101203
101402
  canSaveFilters: _ctx.canSaveFilters,
101204
101403
  onSaveFilter,
101205
- onResetFilters: unref(resetFilters)
101404
+ onResetFilters: unref(resetFilters),
101405
+ onFilterInput: _cache[1] || (_cache[1] = (filterEvent) => emits("filterInput", filterEvent)),
101406
+ onFilterChange: _cache[2] || (_cache[2] = (filterEvent) => emits("filterChange", filterEvent))
101206
101407
  }, null, 8, ["modelValue", "canSaveFilters", "onResetFilters"])
101207
101408
  ], 512), [
101208
101409
  [vShow, unref(isFilterVisible)]
@@ -101256,14 +101457,14 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
101256
101457
  props.size ? (openBlock(), createElementBlock("div", _hoisted_2$6, [
101257
101458
  createVNode(BmsPagination, {
101258
101459
  currentSize: unref(size),
101259
- "onUpdate:currentSize": _cache[1] || (_cache[1] = ($event) => isRef(size) ? size.value = $event : null),
101460
+ "onUpdate:currentSize": _cache[3] || (_cache[3] = ($event) => isRef(size) ? size.value = $event : null),
101260
101461
  total: total.value,
101261
101462
  currentPage: props.initialPage === 1 ? unref(currentPage) - 1 : unref(currentPage),
101262
101463
  sizes: unref(paginationsOptions),
101263
101464
  pages: totalPages.value,
101264
101465
  onPrev: onPrevClick,
101265
101466
  onNext: onNextClick,
101266
- onGo: _cache[2] || (_cache[2] = ($event) => go($event))
101467
+ onGo: _cache[4] || (_cache[4] = ($event) => go($event))
101267
101468
  }, null, 8, ["currentSize", "total", "currentPage", "sizes", "pages"])
101268
101469
  ])) : createCommentVNode("", true)
101269
101470
  ]),
@@ -101282,7 +101483,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
101282
101483
  }
101283
101484
  });
101284
101485
 
101285
- const BmsServerTable = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-1a3ad3f2"]]);
101486
+ const BmsServerTable = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-bb2d9aca"]]);
101286
101487
 
101287
101488
  const _hoisted_1$6 = { class: "filters-container" };
101288
101489
  const _hoisted_2$5 = {
@@ -101317,7 +101518,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
101317
101518
  },
101318
101519
  "selectedItemsModifiers": {}
101319
101520
  }),
101320
- emits: /* @__PURE__ */ mergeModels(["deleteSavedFilter", "saveFilter"], ["update:selectedItems"]),
101521
+ emits: /* @__PURE__ */ mergeModels(["deleteSavedFilter", "saveFilter", "filterInput", "filterChange"], ["update:selectedItems"]),
101321
101522
  setup(__props, { emit: __emit }) {
101322
101523
  const route = useRoute();
101323
101524
  const slots = useSlots();
@@ -101351,7 +101552,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
101351
101552
  isSavedFilterActive,
101352
101553
  resetFilters,
101353
101554
  selectSavedFilter,
101354
- resetAllFilters
101555
+ resetAllFilters,
101556
+ updateFiltersFromProps
101355
101557
  } = useSearch(props.persistent, props.filters, props.defaultFiltersOpened);
101356
101558
  const emits = __emit;
101357
101559
  const selectedItems = useModel(__props, "selectedItems");
@@ -101367,6 +101569,13 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
101367
101569
  );
101368
101570
  };
101369
101571
  const isMounting = ref(true);
101572
+ watch(
101573
+ () => props.filters,
101574
+ () => {
101575
+ updateFiltersFromProps(props.filters);
101576
+ },
101577
+ { deep: true }
101578
+ );
101370
101579
  watchEffect(
101371
101580
  async () => {
101372
101581
  isMounting.value = isPaginationMounting.value || isSortMounting.value || isSearchMounting.value;
@@ -101440,7 +101649,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
101440
101649
  return (_ctx, _cache) => {
101441
101650
  return openBlock(), createBlock(UiBmsTable, {
101442
101651
  selectedItems: selectedItems.value,
101443
- "onUpdate:selectedItems": _cache[4] || (_cache[4] = ($event) => selectedItems.value = $event),
101652
+ "onUpdate:selectedItems": _cache[6] || (_cache[6] = ($event) => selectedItems.value = $event),
101444
101653
  loading: _ctx.loading,
101445
101654
  items: unref(currentItems),
101446
101655
  headers: _ctx.headers,
@@ -101465,7 +101674,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
101465
101674
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(filters) ? filters.value = $event : null),
101466
101675
  canSaveFilters: _ctx.canSaveFilters,
101467
101676
  onSaveFilter,
101468
- onResetFilters: unref(resetFilters)
101677
+ onResetFilters: unref(resetFilters),
101678
+ onFilterInput: _cache[1] || (_cache[1] = (filterEvent) => emits("filterInput", filterEvent)),
101679
+ onFilterChange: _cache[2] || (_cache[2] = (filterEvent) => emits("filterChange", filterEvent))
101469
101680
  }, null, 8, ["modelValue", "canSaveFilters", "onResetFilters"])
101470
101681
  ], 512), [
101471
101682
  [vShow, unref(isFilterVisible)]
@@ -101504,7 +101715,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
101504
101715
  !_ctx.disableSearch ? renderSlot(_ctx.$slots, "search", { key: 1 }, () => [
101505
101716
  createVNode(BmsSearch, {
101506
101717
  modelValue: unref(search),
101507
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isRef(search) ? search.value = $event : null),
101718
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => isRef(search) ? search.value = $event : null),
101508
101719
  class: "table-search"
101509
101720
  }, null, 8, ["modelValue"])
101510
101721
  ], true) : createCommentVNode("", true)
@@ -101521,14 +101732,14 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
101521
101732
  props.size ? (openBlock(), createElementBlock("div", _hoisted_2$5, [
101522
101733
  createVNode(BmsPagination, {
101523
101734
  currentSize: unref(size),
101524
- "onUpdate:currentSize": _cache[2] || (_cache[2] = ($event) => isRef(size) ? size.value = $event : null),
101735
+ "onUpdate:currentSize": _cache[4] || (_cache[4] = ($event) => isRef(size) ? size.value = $event : null),
101525
101736
  total: unref(items).length,
101526
101737
  currentPage: unref(currentPage),
101527
101738
  sizes: unref(paginationsOptions),
101528
101739
  pages: unref(totalPages),
101529
101740
  onPrev: onPrevClick,
101530
101741
  onNext: onNextClick,
101531
- onGo: _cache[3] || (_cache[3] = ($event) => go($event))
101742
+ onGo: _cache[5] || (_cache[5] = ($event) => go($event))
101532
101743
  }, null, 8, ["currentSize", "total", "currentPage", "sizes", "pages"])
101533
101744
  ])) : createCommentVNode("", true)
101534
101745
  ]),
@@ -101547,7 +101758,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
101547
101758
  }
101548
101759
  });
101549
101760
 
101550
- const BmsTable = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-f2f86c8c"]]);
101761
+ const BmsTable = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-2f003e4e"]]);
101551
101762
 
101552
101763
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
101553
101764
  __name: "BmsCocarde",
@@ -101605,7 +101816,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
101605
101816
  class: "bms-notification__icon"
101606
101817
  })),
101607
101818
  createElementVNode("div", _hoisted_2$4, toDisplayString(_ctx.notification.text), 1),
101608
- createVNode(_sfc_main$1h, {
101819
+ createVNode(_sfc_main$1i, {
101609
101820
  class: "bms-notification__close-button",
101610
101821
  onClick: closeNotification
101611
101822
  }, {
@@ -101782,7 +101993,7 @@ const _hoisted_5$1 = { class: "ui-debugger-line" };
101782
101993
  const _hoisted_6$1 = { class: "line-value" };
101783
101994
  const _hoisted_7$1 = { class: "ui-debugger-line" };
101784
101995
  const _hoisted_8$1 = { class: "ui-debugger-line" };
101785
- const _hoisted_9$1 = { class: "line-value" };
101996
+ const _hoisted_9 = { class: "line-value" };
101786
101997
  const _hoisted_10 = { class: "ui-debugger-line" };
101787
101998
  const _hoisted_11 = ["href"];
101788
101999
  const _hoisted_12 = { class: "ui-debugger-line line-value" };
@@ -101846,7 +102057,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
101846
102057
  createElementVNode("div", null, [
101847
102058
  createElementVNode("div", _hoisted_5$1, [
101848
102059
  createElementVNode("span", _hoisted_6$1, toDisplayString(_ctx.problem.detail), 1),
101849
- createVNode(unref(_sfc_main$1h), {
102060
+ createVNode(unref(_sfc_main$1i), {
101850
102061
  class: "copyToClipboardButton",
101851
102062
  onClick: _cache[1] || (_cache[1] = ($event) => onCopyToClipboard(_ctx.problem.detail))
101852
102063
  }, {
@@ -101880,8 +102091,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
101880
102091
  ]),
101881
102092
  createElementVNode("div", null, [
101882
102093
  createElementVNode("div", _hoisted_8$1, [
101883
- createElementVNode("span", _hoisted_9$1, toDisplayString(_ctx.problem.correlationId), 1),
101884
- createVNode(unref(_sfc_main$1h), {
102094
+ createElementVNode("span", _hoisted_9, toDisplayString(_ctx.problem.correlationId), 1),
102095
+ createVNode(unref(_sfc_main$1i), {
101885
102096
  class: "copyToClipboardButton",
101886
102097
  onClick: _cache[3] || (_cache[3] = ($event) => onCopyToClipboard(_ctx.problem.detail))
101887
102098
  }, {
@@ -102091,7 +102302,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
102091
102302
  );
102092
102303
  return (_ctx, _cache) => {
102093
102304
  return isFeatureFlippingOn.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
102094
- createVNode(_sfc_main$1i, {
102305
+ createVNode(_sfc_main$1j, {
102095
102306
  onClick: _cache[0] || (_cache[0] = ($event) => emit("click")),
102096
102307
  mode: unref(StatusType).Danger
102097
102308
  }, {
@@ -102160,10 +102371,6 @@ const _hoisted_8 = {
102160
102371
  key: 0,
102161
102372
  class: "field__captions"
102162
102373
  };
102163
- const _hoisted_9 = {
102164
- key: 1,
102165
- class: "field__errors"
102166
- };
102167
102374
  const _sfc_main = /* @__PURE__ */ defineComponent({
102168
102375
  __name: "FieldComponent",
102169
102376
  props: {
@@ -102253,25 +102460,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
102253
102460
  ], 2)
102254
102461
  ], 512)
102255
102462
  ]),
102256
- _ctx.captions?.length ? (openBlock(), createElementBlock("div", _hoisted_8, [
102257
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.captions, (caption) => {
102463
+ _ctx.captions?.length || _ctx.errors?.length ? (openBlock(), createElementBlock("div", _hoisted_8, [
102464
+ _ctx.captions?.length ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.captions, (caption) => {
102258
102465
  return openBlock(), createElementBlock("div", {
102259
102466
  key: getCaptionIdentifier(caption),
102260
102467
  class: "information field__caption"
102261
102468
  }, [
102262
102469
  createVNode(BmsCaption, { caption }, null, 8, ["caption"])
102263
102470
  ]);
102264
- }), 128))
102265
- ])) : createCommentVNode("", true),
102266
- _ctx.errors?.length ? (openBlock(), createElementBlock("div", _hoisted_9, [
102267
- (openBlock(true), createElementBlock(Fragment, null, renderList(computedErrors.value, (error) => {
102471
+ }), 128)) : createCommentVNode("", true),
102472
+ _ctx.errors?.length ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(computedErrors.value, (error) => {
102268
102473
  return openBlock(), createElementBlock("div", {
102269
102474
  key: error.label,
102270
102475
  class: "field__error"
102271
102476
  }, [
102272
102477
  createVNode(BmsCaption, { caption: error }, null, 8, ["caption"])
102273
102478
  ]);
102274
- }), 128))
102479
+ }), 128)) : createCommentVNode("", true)
102275
102480
  ])) : createCommentVNode("", true)
102276
102481
  ], 2);
102277
102482
  };
@@ -104377,8 +104582,8 @@ const routerHistoryPlugin = {
104377
104582
 
104378
104583
  const createBmsUi = () => ({
104379
104584
  install: (app) => {
104380
- app.component("BmsButton", _sfc_main$1i);
104381
- app.component("BmsIconButton", _sfc_main$1h);
104585
+ app.component("BmsButton", _sfc_main$1j);
104586
+ app.component("BmsIconButton", _sfc_main$1i);
104382
104587
  app.component("BmsAlert", BmsAlert);
104383
104588
  app.component("BmsBadge", BmsBadge);
104384
104589
  app.component("BmsCaption", BmsCaption);
@@ -104389,19 +104594,19 @@ const createBmsUi = () => ({
104389
104594
  app.component("BmsBetweenInput", BmsBetweenInput);
104390
104595
  app.component("BmsChip", BmsChip);
104391
104596
  app.component("BmsFilePicker", BmsFilePicker);
104392
- app.component("BmsInputBooleanCheckbox", _sfc_main$11);
104597
+ app.component("BmsInputBooleanCheckbox", _sfc_main$12);
104393
104598
  app.component("BmsInputCheckboxGroup", BmsInputCheckboxGroup);
104394
104599
  app.component("BmsInputCheckboxCaption", BmsInputCheckboxCaption);
104395
104600
  app.component("BmsInputCheckboxCaptionGroup", BmsInputCheckboxCaptionGroup);
104396
104601
  app.component("BmsInputCode", BmsInputCode);
104397
- app.component("BmsInputDateTime", _sfc_main$X);
104602
+ app.component("BmsInputDateTime", _sfc_main$Y);
104398
104603
  app.component("BmsInputFile", BmsInputFile);
104399
- app.component("BmsInputNumber", _sfc_main$V);
104604
+ app.component("BmsInputNumber", _sfc_main$W);
104400
104605
  app.component("BmsInputRadio", BmsInputRadio);
104401
104606
  app.component("BmsInputRadioGroup", BmsInputRadioGroup);
104402
104607
  app.component("BmsInputRadioCaption", BmsInputRadioCaption);
104403
104608
  app.component("BmsInputRadioCaptionGroup", BmsInputRadioCaptionGroup);
104404
- app.component("BmsInputText", _sfc_main$Y);
104609
+ app.component("BmsInputText", _sfc_main$Z);
104405
104610
  app.component("BmsInputToggle", BmsInputToggle);
104406
104611
  app.component("BmsMultiSelect", BmsMultiSelect);
104407
104612
  app.component("BmsSearch", BmsSearch);
@@ -104421,7 +104626,7 @@ const createBmsUi = () => ({
104421
104626
  app.component("BmsBackButton", BmsBackButton);
104422
104627
  app.component("BmsBreadcrumb", BmsBreadcrumb);
104423
104628
  app.component("BmsFixedMenu", BmsFixedMenu);
104424
- app.component("BmsLink", _sfc_main$1l);
104629
+ app.component("BmsLink", _sfc_main$1m);
104425
104630
  app.component("BmsMenu", BmsMenu);
104426
104631
  app.component("BmsMenuNav", BmsMenuNav);
104427
104632
  app.component("BmsShortLinkMenu", BmsShortLinkMenu);
@@ -104438,5 +104643,5 @@ const createBmsUi = () => ({
104438
104643
  }
104439
104644
  });
104440
104645
 
104441
- export { BMS_FORM_VALID_URL_REGEX, BmsAlert, BmsAutocomplete, BmsBackButton, BmsBadge, BmsBetweenInput, BmsBreadcrumb, _sfc_main$1i as BmsButton, BmsCaption, BmsCard, BmsChip, BmsCircularProgress, BmsCocarde, BmsContentPageLayout, BmsDraggableList, BmsEmptyScreen, BmsFilePicker, BmsFixedMenu, BmsForm, BmsHeader, BmsHeaderTitle, _sfc_main$1h as BmsIconButton, _sfc_main$11 as BmsInputBooleanCheckbox, BmsInputCheckboxCaption, BmsInputCheckboxCaptionGroup, BmsInputCheckboxGroup, BmsInputCode, _sfc_main$X as BmsInputDateTime, BmsInputFile, _sfc_main$V as BmsInputNumber, BmsInputRadio, BmsInputRadioCaption, BmsInputRadioCaptionGroup, BmsInputRadioGroup, _sfc_main$Y as BmsInputText, BmsInputToggle, _sfc_main$1l as BmsLink, BmsLoader, BmsMenu, BmsMenuNav, BmsModal, BmsMultiSelect, BmsNotificationsInstance, BmsOverlay, BmsPagination, BmsProblem, _sfc_main$f as BmsRelativeTime, BmsSearch, BmsSection, BmsSelect, BmsServerTable, BmsShortLinkMenu, BmsStep, BmsStepper, BmsTable, BmsTabs, BmsTag, BmsTenantSwitcher, BmsTextArea, BmsTooltip, ChipColor, CocardeBorder, ColumnType, ConfirmInstance, InputType, KeycloakAuthAdapterInstance, RuntimeEnv, SelectMode, SortValue, StatusType, TooltipDirection, confirmPlugin, convertStringToCaption, createBmsUi, createRuntimeEnv, defaultSortFunction, enforceActionsColumnHeader, featureFlipperPlugin, fetchRuntimeEnv, field, getCurrentHistory, getCurrentLocation, getFiltersAsQueryParams, getImageFromFile, getNumberFromPathQuery, getStringFromPathQuery, getUserPrefFromLocalStorage, getValueByPath, handleValueInSearchParams, isEmptyStringOrNotDefined, isExternalLink, isFileImage, isProblem, keycloakAuthAdapter, keycloakAuthAdapterInit, notifications, readableDate, reflectFiltersToPath, reflectSearchToPath, relativeDate, relativeDateDefaultFormatFunction, routerHistoryPlugin, sanitizeHtml, sanitizeString, saveValuesToPathQuery, searchString, setUserPrefFromLocalStorage, useClipboard, useConfirm, useFeatureFlipper, useKeycloakAuthAdapter, useNotifications, usePagination, useRouterHistory, useRuntimeEnv, useSearch, useSort, useUserPref, writeLocation };
104646
+ export { BMS_FORM_VALID_URL_REGEX, BmsAlert, BmsAutocomplete, BmsBackButton, BmsBadge, BmsBetweenInput, BmsBreadcrumb, _sfc_main$1j as BmsButton, BmsCaption, BmsCard, BmsChip, BmsCircularProgress, BmsCocarde, BmsContentPageLayout, BmsDraggableList, BmsEmptyScreen, BmsFilePicker, BmsFixedMenu, BmsForm, BmsHeader, BmsHeaderTitle, _sfc_main$1i as BmsIconButton, _sfc_main$12 as BmsInputBooleanCheckbox, BmsInputCheckboxCaption, BmsInputCheckboxCaptionGroup, BmsInputCheckboxGroup, BmsInputCode, _sfc_main$Y as BmsInputDateTime, BmsInputFile, _sfc_main$W as BmsInputNumber, BmsInputRadio, BmsInputRadioCaption, BmsInputRadioCaptionGroup, BmsInputRadioGroup, _sfc_main$Z as BmsInputText, BmsInputToggle, _sfc_main$1m as BmsLink, BmsLoader, BmsMenu, BmsMenuNav, BmsModal, BmsMultiSelect, BmsNotificationsInstance, BmsOverlay, BmsPagination, BmsProblem, _sfc_main$f as BmsRelativeTime, BmsSearch, BmsSection, BmsSelect, BmsServerTable, BmsShortLinkMenu, BmsStep, BmsStepper, BmsTable, BmsTabs, BmsTag, BmsTenantSwitcher, BmsTextArea, BmsTooltip, ChipColor, CocardeBorder, ColumnType, ConfirmInstance, InputType, KeycloakAuthAdapterInstance, RuntimeEnv, SelectMode, SortValue, StatusType, TooltipDirection, confirmPlugin, convertStringToCaption, createBmsUi, createRuntimeEnv, defaultSortFunction, enforceActionsColumnHeader, featureFlipperPlugin, fetchRuntimeEnv, field, getCurrentHistory, getCurrentLocation, getFiltersAsQueryParams, getImageFromFile, getNumberFromPathQuery, getStringFromPathQuery, getUserPrefFromLocalStorage, getValueByPath, handleValueInSearchParams, isEmptyStringOrNotDefined, isExternalLink, isFileImage, isProblem, keycloakAuthAdapter, keycloakAuthAdapterInit, notifications, readableDate, reflectFiltersToPath, reflectSearchToPath, relativeDate, relativeDateDefaultFormatFunction, routerHistoryPlugin, sanitizeHtml, sanitizeString, saveValuesToPathQuery, searchString, setUserPrefFromLocalStorage, useClipboard, useConfirm, useFeatureFlipper, useKeycloakAuthAdapter, useNotifications, usePagination, useRouterHistory, useRuntimeEnv, useSearch, useSort, useUserPref, writeLocation };
104442
104647
  //# sourceMappingURL=sipa-bms-ui.es.js.map