@bagelink/vue 0.0.392 → 0.0.394

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.
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/form/inputs/RichText.vue"],"names":[],"mappings":"AAiBA;;gBAmTyD,MAAM;;;;gBAAN,MAAM;;;;AAL/D,wBAOG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
1
+ {"version":3,"file":"RichText.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/form/inputs/RichText.vue"],"names":[],"mappings":"AAiBA;;gBAwTyD,MAAM;;;;gBAAN,MAAM;;;;AAL/D,wBAOG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectInput.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/form/inputs/SelectInput.vue"],"names":[],"mappings":"AAuDA;AAIA,OAAO,wBAAwB,CAAC;AAKhC,KAAK,MAAM,GACR,MAAM,GACN,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqb7C,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"SelectInput.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/form/inputs/SelectInput.vue"],"names":[],"mappings":"AAyDA;AAIA,OAAO,wBAAwB,CAAC;AAKhC,KAAK,MAAM,GACR,MAAM,GACN,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmc7C,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
package/dist/index.cjs CHANGED
@@ -15197,6 +15197,10 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
15197
15197
  let search = vue.ref("");
15198
15198
  const dropdown = vue.ref(null);
15199
15199
  let open = vue.ref(false);
15200
+ function openOptions() {
15201
+ var _a2;
15202
+ (_a2 = dropdown.value) == null ? void 0 : _a2.show();
15203
+ }
15200
15204
  function updateOpen(visible) {
15201
15205
  open.value = visible;
15202
15206
  if (!open.value)
@@ -15238,8 +15242,8 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
15238
15242
  const isSelected = (option2) => !!selectedItems.value.find((item) => getValue(option2) === getValue(item));
15239
15243
  const filteredOptions = vue.computed(
15240
15244
  () => props2.options.filter((option2) => {
15241
- const searchTerm = new RegExp(search.value, "gi");
15242
- return Boolean(option2) && (getLabel(option2).match(searchTerm) || getValue(option2).match(searchTerm));
15245
+ const searchTerm = search.value.split(/\s+/).filter(Boolean).map((t) => new RegExp(t, "gi"));
15246
+ return Boolean(option2) && (searchTerm.every((s2) => getLabel(option2).match(s2)) || searchTerm.length === 0);
15243
15247
  })
15244
15248
  );
15245
15249
  const select2 = (option2) => {
@@ -15300,12 +15304,16 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
15300
15304
  const exists = props2.options.find(
15301
15305
  (o2) => getValue(o2) === getValue(option2)
15302
15306
  );
15303
- selectedItems.value.splice(i2, 1, exists);
15307
+ if (!exists)
15308
+ selectedItems.value.splice(i2, 1);
15309
+ else
15310
+ selectedItems.value.splice(i2, 1, exists);
15304
15311
  });
15305
15312
  const newSelection = JSON.stringify(selectedItems.value.map(getValue));
15306
15313
  if (original !== newSelection)
15307
15314
  emitUpdate();
15308
- }
15315
+ },
15316
+ { deep: true }
15309
15317
  );
15310
15318
  return (_ctx, _cache) => {
15311
15319
  return vue.openBlock(), vue.createBlock(vue.unref(kt$1), {
@@ -15358,6 +15366,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
15358
15366
  vue.createElementVNode("label", null, [
15359
15367
  vue.createTextVNode(vue.toDisplayString(_ctx.label) + " ", 1),
15360
15368
  vue.createElementVNode("button", {
15369
+ onKeydown: openOptions,
15361
15370
  onClick: _cache[0] || (_cache[0] = ($event) => updateOpen(true)),
15362
15371
  disabled: _ctx.disabled,
15363
15372
  type: "button",
@@ -15365,9 +15374,10 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
15365
15374
  }, [
15366
15375
  vue.createElementVNode("p", null, vue.toDisplayString(selectedLabel.value), 1),
15367
15376
  vue.createVNode(vue.unref(_sfc_main$H), vue.normalizeProps(vue.guardReactiveProps({ icon: vue.unref(open) ? "unfold_less" : "unfold_more" })), null, 16)
15368
- ], 10, _hoisted_1$m),
15377
+ ], 42, _hoisted_1$m),
15369
15378
  _ctx.required ? (vue.openBlock(), vue.createElementBlock("input", {
15370
15379
  key: 0,
15380
+ tabindex: "-1",
15371
15381
  style: { "width": "0", "height": "0", "position": "absolute", "opacity": "0", "z-index": "-1" },
15372
15382
  onInput: _cache[1] || (_cache[1] = ($event) => updateOpen(true)),
15373
15383
  value: selectedItems.value,
@@ -15380,7 +15390,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
15380
15390
  };
15381
15391
  }
15382
15392
  });
15383
- const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-1eb708f2"]]);
15393
+ const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-3e27cf1d"]]);
15384
15394
  /*!
15385
15395
  * vue-draggable-next v2.2.0
15386
15396
  * (c) 2023 Anish George
@@ -39454,6 +39464,10 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
39454
39464
  return editor.value.chain().focus();
39455
39465
  };
39456
39466
  const { showModalForm } = useModal();
39467
+ Image.configure({
39468
+ inline: true,
39469
+ allowBase64: true
39470
+ });
39457
39471
  function addImage() {
39458
39472
  showModalForm({
39459
39473
  title: "Add Image",
package/dist/index.mjs CHANGED
@@ -15195,6 +15195,10 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
15195
15195
  let search = ref("");
15196
15196
  const dropdown = ref(null);
15197
15197
  let open = ref(false);
15198
+ function openOptions() {
15199
+ var _a2;
15200
+ (_a2 = dropdown.value) == null ? void 0 : _a2.show();
15201
+ }
15198
15202
  function updateOpen(visible) {
15199
15203
  open.value = visible;
15200
15204
  if (!open.value)
@@ -15236,8 +15240,8 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
15236
15240
  const isSelected = (option2) => !!selectedItems.value.find((item) => getValue(option2) === getValue(item));
15237
15241
  const filteredOptions = computed(
15238
15242
  () => props2.options.filter((option2) => {
15239
- const searchTerm = new RegExp(search.value, "gi");
15240
- return Boolean(option2) && (getLabel(option2).match(searchTerm) || getValue(option2).match(searchTerm));
15243
+ const searchTerm = search.value.split(/\s+/).filter(Boolean).map((t) => new RegExp(t, "gi"));
15244
+ return Boolean(option2) && (searchTerm.every((s2) => getLabel(option2).match(s2)) || searchTerm.length === 0);
15241
15245
  })
15242
15246
  );
15243
15247
  const select2 = (option2) => {
@@ -15298,12 +15302,16 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
15298
15302
  const exists = props2.options.find(
15299
15303
  (o2) => getValue(o2) === getValue(option2)
15300
15304
  );
15301
- selectedItems.value.splice(i2, 1, exists);
15305
+ if (!exists)
15306
+ selectedItems.value.splice(i2, 1);
15307
+ else
15308
+ selectedItems.value.splice(i2, 1, exists);
15302
15309
  });
15303
15310
  const newSelection = JSON.stringify(selectedItems.value.map(getValue));
15304
15311
  if (original !== newSelection)
15305
15312
  emitUpdate();
15306
- }
15313
+ },
15314
+ { deep: true }
15307
15315
  );
15308
15316
  return (_ctx, _cache) => {
15309
15317
  return openBlock(), createBlock(unref(kt$1), {
@@ -15356,6 +15364,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
15356
15364
  createElementVNode("label", null, [
15357
15365
  createTextVNode(toDisplayString(_ctx.label) + " ", 1),
15358
15366
  createElementVNode("button", {
15367
+ onKeydown: openOptions,
15359
15368
  onClick: _cache[0] || (_cache[0] = ($event) => updateOpen(true)),
15360
15369
  disabled: _ctx.disabled,
15361
15370
  type: "button",
@@ -15363,9 +15372,10 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
15363
15372
  }, [
15364
15373
  createElementVNode("p", null, toDisplayString(selectedLabel.value), 1),
15365
15374
  createVNode(unref(_sfc_main$H), normalizeProps(guardReactiveProps({ icon: unref(open) ? "unfold_less" : "unfold_more" })), null, 16)
15366
- ], 10, _hoisted_1$m),
15375
+ ], 42, _hoisted_1$m),
15367
15376
  _ctx.required ? (openBlock(), createElementBlock("input", {
15368
15377
  key: 0,
15378
+ tabindex: "-1",
15369
15379
  style: { "width": "0", "height": "0", "position": "absolute", "opacity": "0", "z-index": "-1" },
15370
15380
  onInput: _cache[1] || (_cache[1] = ($event) => updateOpen(true)),
15371
15381
  value: selectedItems.value,
@@ -15378,7 +15388,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
15378
15388
  };
15379
15389
  }
15380
15390
  });
15381
- const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-1eb708f2"]]);
15391
+ const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-3e27cf1d"]]);
15382
15392
  /*!
15383
15393
  * vue-draggable-next v2.2.0
15384
15394
  * (c) 2023 Anish George
@@ -39452,6 +39462,10 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
39452
39462
  return editor.value.chain().focus();
39453
39463
  };
39454
39464
  const { showModalForm } = useModal();
39465
+ Image.configure({
39466
+ inline: true,
39467
+ allowBase64: true
39468
+ });
39455
39469
  function addImage() {
39456
39470
  showModalForm({
39457
39471
  title: "Add Image",
package/dist/style.css CHANGED
@@ -1056,10 +1056,10 @@ display: block;
1056
1056
  }
1057
1057
  .resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}
1058
1058
 
1059
- .selectinput[data-v-1eb708f2] {
1059
+ .selectinput[data-v-3e27cf1d] {
1060
1060
  width: 100%;
1061
1061
  }
1062
- .selectinput-option[data-v-1eb708f2] {
1062
+ .selectinput-option[data-v-3e27cf1d] {
1063
1063
  padding: 6px 12px;
1064
1064
  cursor: pointer;
1065
1065
  border-radius: 5px;
@@ -1070,14 +1070,14 @@ display: block;
1070
1070
  width: 100%;
1071
1071
  font-size: var(--input-font-size);
1072
1072
  }
1073
- .selectinput-options[data-v-1eb708f2] {
1073
+ .selectinput-options[data-v-3e27cf1d] {
1074
1074
  max-height: 300px;
1075
1075
  overflow-y: auto;
1076
1076
  }
1077
- .selectinput-option[data-v-1eb708f2]:hover {
1077
+ .selectinput-option[data-v-3e27cf1d]:hover {
1078
1078
  background: var(--bgl-gray-20);
1079
1079
  }
1080
- .isEmpty p[data-v-1eb708f2] {
1080
+ .isEmpty p[data-v-3e27cf1d] {
1081
1081
  opacity: 0.3;
1082
1082
  }
1083
1083
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.392",
4
+ "version": "0.0.394",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -42,6 +42,11 @@ const focus = () => {
42
42
  };
43
43
  const { showModalForm } = useModal();
44
44
 
45
+ Image.configure({
46
+ inline: true,
47
+ allowBase64: true,
48
+ });
49
+
45
50
  function addImage() {
46
51
  showModalForm({
47
52
  title: 'Add Image',
@@ -7,6 +7,7 @@
7
7
  <label>
8
8
  {{ label }}
9
9
  <button
10
+ @keydown="openOptions"
10
11
  @click="updateOpen(true)"
11
12
  :disabled="disabled"
12
13
  type="button"
@@ -16,6 +17,7 @@
16
17
  <Icon v-bind="{ icon: open ? 'unfold_less' : 'unfold_more' }" />
17
18
  </button>
18
19
  <input
20
+ tabindex="-1"
19
21
  style="width: 0; height: 0; position: absolute; opacity: 0; z-index: -1"
20
22
  v-if="required"
21
23
  @input="updateOpen(true)"
@@ -87,6 +89,11 @@ const dropdown = $ref<InstanceType<typeof Dropdown> | null>(null);
87
89
 
88
90
  let open = $ref(false);
89
91
 
92
+ function openOptions() {
93
+ dropdown?.show();
94
+ // updateOpen(true);
95
+ }
96
+
90
97
  function updateOpen(visible: boolean) {
91
98
  open = visible;
92
99
  if (!open) search = '';
@@ -129,10 +136,14 @@ const isSelected = (option: Option) =>
129
136
 
130
137
  const filteredOptions = $computed(() =>
131
138
  props.options.filter((option) => {
132
- const searchTerm = new RegExp(search, 'gi');
139
+ const searchTerm = search
140
+ .split(/\s+/)
141
+ .filter(Boolean)
142
+ .map((t) => new RegExp(t, 'gi'));
133
143
  return (
134
144
  Boolean(option) &&
135
- (getLabel(option).match(searchTerm) || getValue(option).match(searchTerm))
145
+ (searchTerm.every((s) => getLabel(option).match(s)) ||
146
+ searchTerm.length === 0)
136
147
  );
137
148
  })
138
149
  );
@@ -196,11 +207,13 @@ watch(
196
207
  const exists = props.options.find(
197
208
  (o) => getValue(o) === getValue(option)
198
209
  );
199
- selectedItems.splice(i, 1, exists);
210
+ if (!exists) selectedItems.splice(i, 1);
211
+ else selectedItems.splice(i, 1, exists);
200
212
  });
201
213
  const newSelection = JSON.stringify(selectedItems.map(getValue));
202
214
  if (original !== newSelection) emitUpdate();
203
- }
215
+ },
216
+ { deep: true }
204
217
  );
205
218
  </script>
206
219