@blueking/bk-user-selector 0.0.35-beta.1 → 0.0.36

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.
@@ -3,7 +3,7 @@
3
3
  })(this, function(exports2, vue, bkuiVue) {
4
4
  "use strict";
5
5
  var __vite_style__ = document.createElement("style");
6
- __vite_style__.textContent = ".me-tag[data-v-44fec2ba] {\n position: absolute;\n top: 50%;\n right: 8px;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0 8px;\n font-size: 12px;\n color: #4d4f56;\n cursor: pointer;\n background-color: #e1ecff;\n border-radius: 50%;\n transform: translateY(-50%);\n white-space: nowrap;\n}\n.me-tag[data-v-44fec2ba]:hover {\n color: #3a84ff;\n background-color: #cddffe;\n}\n.me-tag.disabled[data-v-44fec2ba] {\n color: #c4c6cc;\n cursor: not-allowed;\n background-color: #f0f1f5;\n}.dropdown-content[data-v-e11d7af7] {\n min-height: 40px;\n max-height: 300px;\n padding: 5px 0;\n overflow-y: auto;\n}\n.dropdown-content .no-data[data-v-e11d7af7] {\n padding: 10px;\n color: #979ba5;\n text-align: center;\n}\n.dropdown-content .user-group .group-header[data-v-e11d7af7] {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n color: #979ba5;\n}\n.dropdown-content .user-group .group-header .group-count[data-v-e11d7af7] {\n margin-left: 4px;\n}\n.dropdown-content .user-option[data-v-e11d7af7] {\n display: flex;\n align-items: center;\n height: 32px;\n padding: 8px 12px;\n cursor: pointer;\n}\n.dropdown-content .user-option[data-v-e11d7af7]:hover {\n background-color: #f5f7fa;\n}.bk-user-selector-popover.bk-user-selector-pop2-content {\n padding: 0;\n}.user-tag[data-v-3ff46050] {\n margin-right: 4px;\n margin-left: 0;\n}\n.user-tag.draggable[data-v-3ff46050] {\n cursor: move;\n}\n.user-tag.active[data-v-3ff46050] {\n background-color: #e1ecff;\n border-color: #3a84ff;\n}\n.user-tag.is-custom[data-v-3ff46050] {\n color: #ea3636;\n background-color: #feebea;\n border-color: rgba(234, 53, 54, 0.3019607843);\n}\n.user-tag.is-custom[data-v-3ff46050]:hover {\n background-color: #fedddc;\n}\n.user-tag .tag-content .user-name[data-v-3ff46050] {\n overflow: hidden;\n font-size: 12px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}.multiple-selector[data-v-7515c7a3] {\n position: relative;\n width: 100%;\n}\n.multiple-selector.is-disabled[data-v-7515c7a3] {\n pointer-events: none;\n}\n.multiple-selector .tags-container[data-v-7515c7a3] {\n min-height: 32px;\n padding: 1px 10px 1px 8px;\n background-color: #fff;\n border: 1px solid #c4c6cc;\n border-radius: 2px;\n transition: all 0.2s ease;\n}\n.multiple-selector .tags-container.focused[data-v-7515c7a3] {\n border-color: #3a84ff;\n box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);\n}\n.multiple-selector .tags-container.collapsed[data-v-7515c7a3] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-list[data-v-7515c7a3] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-wrapper[data-v-7515c7a3] {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n}\n.multiple-selector .search-input[data-v-7515c7a3] {\n min-width: 10px;\n height: 28px;\n background: transparent;\n border: none;\n outline: none;\n}\n.multiple-selector .search-input[data-v-7515c7a3]::placeholder {\n color: #c4c6cc;\n}\n.multiple-selector .search-input.inline[data-v-7515c7a3] {\n min-width: 10px;\n}\n.multiple-selector .search-input.last[data-v-7515c7a3], .multiple-selector .search-input.collapsed[data-v-7515c7a3] {\n flex: 1;\n}\n.hidden-users[data-v-7515c7a3] {\n padding: 6px 10px;\n}.single-selector[data-v-6b8c23c5] {\n position: relative;\n width: 100%;\n}\n.single-selector.is-disabled[data-v-6b8c23c5] {\n pointer-events: none;\n}\n.input-container[data-v-6b8c23c5] {\n position: relative;\n display: flex;\n align-items: center;\n min-height: 32px;\n padding: 0 8px;\n background-color: #fff;\n border: 1px solid #c4c6cc;\n border-radius: 2px;\n}\n.input-container[data-v-6b8c23c5]:focus-within {\n border-color: #3a84ff;\n box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);\n}\n.search-input[data-v-6b8c23c5] {\n flex: 1;\n height: 30px;\n background: transparent;\n border: none;\n outline: none;\n}\n.search-input[data-v-6b8c23c5]::placeholder {\n color: #c4c6cc;\n}.bk-user-selector[data-v-20d45a5c] {\n position: relative;\n width: 100%;\n font-size: 12px;\n}\n.bk-user-selector.is-disabled[data-v-20d45a5c] {\n cursor: not-allowed;\n background-color: #dcdee5;\n}";
6
+ __vite_style__.textContent = ".me-tag[data-v-44fec2ba] {\n position: absolute;\n top: 50%;\n right: 8px;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0 8px;\n font-size: 12px;\n color: #4d4f56;\n cursor: pointer;\n background-color: #e1ecff;\n border-radius: 50%;\n transform: translateY(-50%);\n white-space: nowrap;\n}\n.me-tag[data-v-44fec2ba]:hover {\n color: #3a84ff;\n background-color: #cddffe;\n}\n.me-tag.disabled[data-v-44fec2ba] {\n color: #c4c6cc;\n cursor: not-allowed;\n background-color: #f0f1f5;\n}.dropdown-content[data-v-e11d7af7] {\n min-height: 40px;\n max-height: 300px;\n padding: 5px 0;\n overflow-y: auto;\n}\n.dropdown-content .no-data[data-v-e11d7af7] {\n padding: 10px;\n color: #979ba5;\n text-align: center;\n}\n.dropdown-content .user-group .group-header[data-v-e11d7af7] {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n color: #979ba5;\n}\n.dropdown-content .user-group .group-header .group-count[data-v-e11d7af7] {\n margin-left: 4px;\n}\n.dropdown-content .user-option[data-v-e11d7af7] {\n display: flex;\n align-items: center;\n height: 32px;\n padding: 8px 12px;\n cursor: pointer;\n}\n.dropdown-content .user-option[data-v-e11d7af7]:hover {\n background-color: #f5f7fa;\n}.bk-user-selector-popover.bk-user-selector-pop2-content {\n padding: 0;\n}.user-tag[data-v-3ff46050] {\n margin-right: 4px;\n margin-left: 0;\n}\n.user-tag.draggable[data-v-3ff46050] {\n cursor: move;\n}\n.user-tag.active[data-v-3ff46050] {\n background-color: #e1ecff;\n border-color: #3a84ff;\n}\n.user-tag.is-custom[data-v-3ff46050] {\n color: #ea3636;\n background-color: #feebea;\n border-color: rgba(234, 53, 54, 0.3019607843);\n}\n.user-tag.is-custom[data-v-3ff46050]:hover {\n background-color: #fedddc;\n}\n.user-tag .tag-content .user-name[data-v-3ff46050] {\n overflow: hidden;\n font-size: 12px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}.multiple-selector[data-v-94252de2] {\n position: relative;\n width: 100%;\n}\n.multiple-selector.is-disabled[data-v-94252de2] {\n pointer-events: none;\n}\n.multiple-selector .tags-container[data-v-94252de2] {\n min-height: 32px;\n padding: 1px 10px 1px 8px;\n background-color: #fff;\n border: 1px solid #c4c6cc;\n border-radius: 2px;\n transition: all 0.2s ease;\n}\n.multiple-selector .tags-container.focused[data-v-94252de2] {\n border-color: #3a84ff;\n box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);\n}\n.multiple-selector .tags-container.collapsed[data-v-94252de2] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-list[data-v-94252de2] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-wrapper[data-v-94252de2] {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n}\n.multiple-selector .search-input[data-v-94252de2] {\n min-width: 10px;\n height: 28px;\n background: transparent;\n border: none;\n outline: none;\n}\n.multiple-selector .search-input[data-v-94252de2]::placeholder {\n color: #c4c6cc;\n}\n.multiple-selector .search-input.inline[data-v-94252de2] {\n min-width: 10px;\n}\n.multiple-selector .search-input.last[data-v-94252de2], .multiple-selector .search-input.collapsed[data-v-94252de2] {\n flex: 1;\n}\n.hidden-users[data-v-94252de2] {\n padding: 6px 10px;\n}.single-selector[data-v-726a967e] {\n position: relative;\n width: 100%;\n}\n.single-selector.is-disabled[data-v-726a967e] {\n pointer-events: none;\n}\n.input-container[data-v-726a967e] {\n position: relative;\n display: flex;\n align-items: center;\n min-height: 32px;\n padding: 0 8px;\n background-color: #fff;\n border: 1px solid #c4c6cc;\n border-radius: 2px;\n}\n.input-container[data-v-726a967e]:focus-within {\n border-color: #3a84ff;\n box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);\n}\n.search-input[data-v-726a967e] {\n flex: 1;\n height: 30px;\n background: transparent;\n border: none;\n outline: none;\n}\n.search-input[data-v-726a967e]::placeholder {\n color: #c4c6cc;\n}.bk-user-selector[data-v-3a531e42] {\n position: relative;\n width: 100%;\n font-size: 12px;\n}\n.bk-user-selector.is-disabled[data-v-3a531e42] {\n cursor: not-allowed;\n background-color: #dcdee5;\n}";
7
7
  document.head.appendChild(__vite_style__);
8
8
  const generateCallbackName = () => {
9
9
  const timestamp = Date.now();
@@ -3612,7 +3612,7 @@
3612
3612
  enableMultiTenantMode: { type: Boolean },
3613
3613
  allowCreate: { type: Boolean, default: false }
3614
3614
  },
3615
- emits: ["update:selectedUsers", "add-user", "remove-user", "dragStart", "dragEnd"],
3615
+ emits: ["update:selectedUsers", "add-user", "remove-user", "focus", "blur"],
3616
3616
  setup(__props, { emit: __emit }) {
3617
3617
  const props = __props;
3618
3618
  const emit = __emit;
@@ -3657,9 +3657,6 @@
3657
3657
  sortableInstance.value = new Sortable(sortableContainerRef.value, {
3658
3658
  animation: 150,
3659
3659
  draggable: ".tag-wrapper",
3660
- onStart: (event) => {
3661
- emit("dragStart", event);
3662
- },
3663
3660
  onEnd: (evt) => {
3664
3661
  const { oldIndex, newIndex } = evt;
3665
3662
  if (oldIndex === newIndex || oldIndex === void 0 || newIndex === void 0) return;
@@ -3667,7 +3664,6 @@
3667
3664
  const [movedUser] = updatedUsers.splice(oldIndex, 1);
3668
3665
  updatedUsers.splice(newIndex, 0, movedUser);
3669
3666
  emit("update:selectedUsers", updatedUsers);
3670
- emit("dragEnd", evt);
3671
3667
  }
3672
3668
  });
3673
3669
  };
@@ -3709,6 +3705,9 @@
3709
3705
  if ((container == null ? void 0 : container.contains(target)) || container === target) {
3710
3706
  return;
3711
3707
  }
3708
+ if (isFocused.value) {
3709
+ emit("blur");
3710
+ }
3712
3711
  isFocused.value = false;
3713
3712
  showDropdown.value = false;
3714
3713
  activeTagIndex.value = -1;
@@ -3739,6 +3738,7 @@
3739
3738
  });
3740
3739
  };
3741
3740
  const handleInputFocus = () => {
3741
+ emit("focus");
3742
3742
  if (!isFocused.value) {
3743
3743
  isFocused.value = true;
3744
3744
  }
@@ -4122,7 +4122,7 @@
4122
4122
  };
4123
4123
  }
4124
4124
  });
4125
- const MultipleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-7515c7a3"]]);
4125
+ const MultipleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-94252de2"]]);
4126
4126
  const _hoisted_1 = { class: "input-container" };
4127
4127
  const _hoisted_2 = ["placeholder"];
4128
4128
  const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
@@ -4148,7 +4148,7 @@
4148
4148
  enableMultiTenantMode: { type: Boolean },
4149
4149
  allowCreate: { type: Boolean }
4150
4150
  },
4151
- emits: ["update:modelValue", "change"],
4151
+ emits: ["update:modelValue", "change", "focus", "blur"],
4152
4152
  setup(__props, { emit: __emit }) {
4153
4153
  const props = __props;
4154
4154
  const emit = __emit;
@@ -4289,6 +4289,7 @@
4289
4289
  if (searchQuery.value.length >= 1 || Array.isArray(props.userGroup) && props.userGroup.length > 0) {
4290
4290
  showDropdown.value = true;
4291
4291
  }
4292
+ emit("focus");
4292
4293
  };
4293
4294
  const handleInput = () => {
4294
4295
  fetchUsers(searchQuery.value);
@@ -4354,6 +4355,7 @@
4354
4355
  class: "search-input",
4355
4356
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchQuery.value = $event),
4356
4357
  placeholder: selectedUserInfo.value ? "" : _ctx.placeholder,
4358
+ onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur")),
4357
4359
  onFocus: handleInputFocus,
4358
4360
  onInput: handleInput,
4359
4361
  onKeydown: handleKeyDown
@@ -4380,7 +4382,7 @@
4380
4382
  };
4381
4383
  }
4382
4384
  });
4383
- const SingleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-6b8c23c5"]]);
4385
+ const SingleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-726a967e"]]);
4384
4386
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
4385
4387
  ...{
4386
4388
  name: "BkUserSelector"
@@ -4405,7 +4407,7 @@
4405
4407
  enableMultiTenantMode: { type: Boolean, default: true },
4406
4408
  allowCreate: { type: Boolean, default: false }
4407
4409
  },
4408
- emits: ["update:modelValue", "change", "dragStart", "dragEnd"],
4410
+ emits: ["update:modelValue", "change", "focus", "blur"],
4409
4411
  setup(__props, { emit: __emit }) {
4410
4412
  const { t } = useI18n();
4411
4413
  bkuiVue.provideGlobalConfig({
@@ -4471,6 +4473,12 @@
4471
4473
  );
4472
4474
  emit("change", users);
4473
4475
  };
4476
+ const handleFocus = () => {
4477
+ emit("focus");
4478
+ };
4479
+ const handleBlur = () => {
4480
+ emit("blur");
4481
+ };
4474
4482
  vue.watch(selectedUser, (newVal) => {
4475
4483
  if (!props.multiple) {
4476
4484
  emit("update:modelValue", newVal);
@@ -4486,7 +4494,8 @@
4486
4494
  () => props.modelValue,
4487
4495
  () => {
4488
4496
  initSelectedUsers();
4489
- }
4497
+ },
4498
+ { deep: true }
4490
4499
  );
4491
4500
  vue.onBeforeMount(() => {
4492
4501
  initSelectedUsers();
@@ -4519,7 +4528,9 @@
4519
4528
  tenants: vue.unref(tenants),
4520
4529
  "user-group": _ctx.userGroup,
4521
4530
  "user-group-name": userGroupName.value,
4522
- onChange: handleUpdateUser
4531
+ onBlur: handleBlur,
4532
+ onChange: handleUpdateUser,
4533
+ onFocus: handleFocus
4523
4534
  }, null, 8, ["modelValue", "allow-create", "api-base-url", "current-user-id", "disabled", "empty-text", "enable-multi-tenant-mode", "exact-search-key", "exclude-user-ids", "placeholder", "render-list-item", "render-tag", "tenant-id", "tenants", "user-group", "user-group-name"])) : (vue.openBlock(), vue.createElementBlock(
4524
4535
  vue.Fragment,
4525
4536
  { key: 1 },
@@ -4545,8 +4556,8 @@
4545
4556
  tenants: vue.unref(tenants),
4546
4557
  "user-group": _ctx.userGroup,
4547
4558
  "user-group-name": userGroupName.value,
4548
- onDragEnd: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("dragEnd", $event)),
4549
- onDragStart: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("dragStart", $event)),
4559
+ onBlur: handleBlur,
4560
+ onFocus: handleFocus,
4550
4561
  "onUpdate:selectedUsers": handleUpdateSelectedUsers
4551
4562
  }, null, 8, ["modelValue", "allow-create", "api-base-url", "current-user-id", "disabled", "draggable", "empty-text", "enable-multi-tenant-mode", "exact-search-key", "exclude-user-ids", "placeholder", "render-list-item", "render-tag", "selected-users", "tenant-id", "tenants", "user-group", "user-group-name"])
4552
4563
  ],
@@ -4560,7 +4571,7 @@
4560
4571
  };
4561
4572
  }
4562
4573
  });
4563
- const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-20d45a5c"]]);
4574
+ const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3a531e42"]]);
4564
4575
  exports2.BkUserSelector = BkUserSelector;
4565
4576
  exports2.default = BkUserSelector;
4566
4577
  Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
package/vue3/vue3.css CHANGED
@@ -80,14 +80,14 @@
80
80
  font-size: 12px;
81
81
  text-overflow: ellipsis;
82
82
  white-space: nowrap;
83
- }.multiple-selector[data-v-7515c7a3] {
83
+ }.multiple-selector[data-v-94252de2] {
84
84
  position: relative;
85
85
  width: 100%;
86
86
  }
87
- .multiple-selector.is-disabled[data-v-7515c7a3] {
87
+ .multiple-selector.is-disabled[data-v-94252de2] {
88
88
  pointer-events: none;
89
89
  }
90
- .multiple-selector .tags-container[data-v-7515c7a3] {
90
+ .multiple-selector .tags-container[data-v-94252de2] {
91
91
  min-height: 32px;
92
92
  padding: 1px 10px 1px 8px;
93
93
  background-color: #fff;
@@ -95,51 +95,51 @@
95
95
  border-radius: 2px;
96
96
  transition: all 0.2s ease;
97
97
  }
98
- .multiple-selector .tags-container.focused[data-v-7515c7a3] {
98
+ .multiple-selector .tags-container.focused[data-v-94252de2] {
99
99
  border-color: #3a84ff;
100
100
  box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);
101
101
  }
102
- .multiple-selector .tags-container.collapsed[data-v-7515c7a3] {
102
+ .multiple-selector .tags-container.collapsed[data-v-94252de2] {
103
103
  display: flex;
104
104
  flex-wrap: wrap;
105
105
  align-items: center;
106
106
  }
107
- .multiple-selector .tag-list[data-v-7515c7a3] {
107
+ .multiple-selector .tag-list[data-v-94252de2] {
108
108
  display: flex;
109
109
  flex-wrap: wrap;
110
110
  align-items: center;
111
111
  }
112
- .multiple-selector .tag-wrapper[data-v-7515c7a3] {
112
+ .multiple-selector .tag-wrapper[data-v-94252de2] {
113
113
  display: inline-flex;
114
114
  align-items: center;
115
115
  max-width: 100%;
116
116
  }
117
- .multiple-selector .search-input[data-v-7515c7a3] {
117
+ .multiple-selector .search-input[data-v-94252de2] {
118
118
  min-width: 10px;
119
119
  height: 28px;
120
120
  background: transparent;
121
121
  border: none;
122
122
  outline: none;
123
123
  }
124
- .multiple-selector .search-input[data-v-7515c7a3]::placeholder {
124
+ .multiple-selector .search-input[data-v-94252de2]::placeholder {
125
125
  color: #c4c6cc;
126
126
  }
127
- .multiple-selector .search-input.inline[data-v-7515c7a3] {
127
+ .multiple-selector .search-input.inline[data-v-94252de2] {
128
128
  min-width: 10px;
129
129
  }
130
- .multiple-selector .search-input.last[data-v-7515c7a3], .multiple-selector .search-input.collapsed[data-v-7515c7a3] {
130
+ .multiple-selector .search-input.last[data-v-94252de2], .multiple-selector .search-input.collapsed[data-v-94252de2] {
131
131
  flex: 1;
132
132
  }
133
- .hidden-users[data-v-7515c7a3] {
133
+ .hidden-users[data-v-94252de2] {
134
134
  padding: 6px 10px;
135
- }.single-selector[data-v-6b8c23c5] {
135
+ }.single-selector[data-v-726a967e] {
136
136
  position: relative;
137
137
  width: 100%;
138
138
  }
139
- .single-selector.is-disabled[data-v-6b8c23c5] {
139
+ .single-selector.is-disabled[data-v-726a967e] {
140
140
  pointer-events: none;
141
141
  }
142
- .input-container[data-v-6b8c23c5] {
142
+ .input-container[data-v-726a967e] {
143
143
  position: relative;
144
144
  display: flex;
145
145
  align-items: center;
@@ -149,25 +149,25 @@
149
149
  border: 1px solid #c4c6cc;
150
150
  border-radius: 2px;
151
151
  }
152
- .input-container[data-v-6b8c23c5]:focus-within {
152
+ .input-container[data-v-726a967e]:focus-within {
153
153
  border-color: #3a84ff;
154
154
  box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);
155
155
  }
156
- .search-input[data-v-6b8c23c5] {
156
+ .search-input[data-v-726a967e] {
157
157
  flex: 1;
158
158
  height: 30px;
159
159
  background: transparent;
160
160
  border: none;
161
161
  outline: none;
162
162
  }
163
- .search-input[data-v-6b8c23c5]::placeholder {
163
+ .search-input[data-v-726a967e]::placeholder {
164
164
  color: #c4c6cc;
165
- }.bk-user-selector[data-v-20d45a5c] {
165
+ }.bk-user-selector[data-v-3a531e42] {
166
166
  position: relative;
167
167
  width: 100%;
168
168
  font-size: 12px;
169
169
  }
170
- .bk-user-selector.is-disabled[data-v-20d45a5c] {
170
+ .bk-user-selector.is-disabled[data-v-3a531e42] {
171
171
  cursor: not-allowed;
172
172
  background-color: #dcdee5;
173
173
  }