@blueking/bk-user-selector 0.0.37 → 0.0.38-beta.2

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-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}";
6
+ __vite_style__.textContent = ".me-tag[data-v-ef4a05c4] {\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 white-space: nowrap;\n cursor: pointer;\n background-color: #e1ecff;\n border-radius: 50%;\n transform: translateY(-50%);\n}\n.me-tag[data-v-ef4a05c4]:hover {\n color: #3a84ff;\n background-color: #cddffe;\n}\n.me-tag.disabled[data-v-ef4a05c4] {\n color: #c4c6cc;\n cursor: not-allowed;\n background-color: #f0f1f5;\n}.dropdown-content[data-v-ee78cf72] {\n min-height: 40px;\n max-height: 300px;\n padding: 5px 0;\n overflow-y: auto;\n}\n.dropdown-content .no-data[data-v-ee78cf72] {\n padding: 10px;\n color: #979ba5;\n text-align: center;\n}\n.dropdown-content .user-group .group-header[data-v-ee78cf72] {\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-ee78cf72] {\n margin-left: 4px;\n}\n.dropdown-content .user-option[data-v-ee78cf72] {\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-ee78cf72]:hover {\n background-color: #f5f7fa;\n}.bk-user-selector-popover.bk-user-selector-pop2-content {\n padding: 0;\n}.user-tag[data-v-48ac8fc1] {\n margin-right: 4px;\n margin-left: 0;\n}\n.user-tag.draggable[data-v-48ac8fc1] {\n cursor: move;\n}\n.user-tag.active[data-v-48ac8fc1] {\n background-color: #e1ecff;\n border-color: #3a84ff;\n}\n.user-tag.is-custom[data-v-48ac8fc1] {\n color: #ea3636;\n background-color: #feebea;\n border-color: rgba(234, 53, 54, 0.3019607843);\n}\n.user-tag.is-custom[data-v-48ac8fc1]:hover {\n background-color: #fedddc;\n}\n.user-tag .tag-content .user-name[data-v-48ac8fc1] {\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 12px;\n white-space: nowrap;\n}.multiple-selector[data-v-6c9ac297] {\n position: relative;\n width: 100%;\n}\n.multiple-selector.is-disabled[data-v-6c9ac297] {\n pointer-events: none;\n}\n.multiple-selector .tags-container[data-v-6c9ac297] {\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-6c9ac297] {\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-6c9ac297] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-list[data-v-6c9ac297] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-wrapper[data-v-6c9ac297] {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n}\n.multiple-selector .search-input[data-v-6c9ac297] {\n min-width: 10px;\n height: 28px;\n outline: none;\n background: transparent;\n border: none;\n}\n.multiple-selector .search-input[data-v-6c9ac297]::placeholder {\n color: #c4c6cc;\n}\n.multiple-selector .search-input.inline[data-v-6c9ac297] {\n min-width: 10px;\n}\n.multiple-selector .search-input.last[data-v-6c9ac297], .multiple-selector .search-input.collapsed[data-v-6c9ac297] {\n flex: 1;\n}\n.hidden-users[data-v-6c9ac297] {\n padding: 6px 10px;\n}.single-selector[data-v-2a791ec6] {\n position: relative;\n width: 100%;\n}\n.single-selector.is-disabled[data-v-2a791ec6] {\n pointer-events: none;\n}\n.input-container[data-v-2a791ec6] {\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-2a791ec6]: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-2a791ec6] {\n flex: 1;\n height: 30px;\n outline: none;\n background: transparent;\n border: none;\n}\n.search-input[data-v-2a791ec6]::placeholder {\n color: #c4c6cc;\n}.bk-user-selector[data-v-f4c00173] {\n position: relative;\n width: 100%;\n font-size: 12px;\n}\n.bk-user-selector.is-disabled[data-v-f4c00173] {\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();
@@ -13,7 +13,7 @@
13
13
  const jsonpRequest = (requestUrl, options = {}) => {
14
14
  return new Promise((resolve, reject) => {
15
15
  const url = vue.unref(requestUrl);
16
- const { timeout = 1e3 * 60 * 2, params, withCredentials = true } = options;
16
+ const { timeout = 1e3 * 60 * 2, params, withCredentials = false } = options;
17
17
  const callbackName = generateCallbackName();
18
18
  const script = document.createElement("script");
19
19
  let timeoutId;
@@ -3267,7 +3267,7 @@
3267
3267
  }
3268
3268
  return target;
3269
3269
  };
3270
- const MeTag = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-44fec2ba"]]);
3270
+ const MeTag = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-ef4a05c4"]]);
3271
3271
  const UserRender = vue.defineComponent({
3272
3272
  name: "UserRender",
3273
3273
  props: {
@@ -3442,22 +3442,22 @@
3442
3442
  };
3443
3443
  return (_ctx, _cache) => {
3444
3444
  return vue.openBlock(), vue.createBlock(vue.unref(bkuiVue.Popover), {
3445
- "ext-cls": "bk-user-selector-popover",
3446
3445
  arrow: false,
3446
+ "ext-cls": "bk-user-selector-popover",
3447
3447
  "is-show": __props.isShow,
3448
3448
  offset: { mainAxis: 4, crossAxis: __props.crossAxisOffset },
3449
- width: __props.containerWidth,
3450
3449
  placement: "bottom-start",
3451
3450
  theme: "light",
3452
3451
  trigger: "manual",
3452
+ width: __props.containerWidth,
3453
3453
  onClickoutside: handleClickOutside
3454
3454
  }, {
3455
3455
  content: vue.withCtx(() => [
3456
3456
  vue.createVNode(vue.unref(bkuiVue.Loading), {
3457
3457
  class: "dropdown-content",
3458
3458
  loading: __props.loading,
3459
- size: "mini",
3460
- mode: "spin"
3459
+ mode: "spin",
3460
+ size: "mini"
3461
3461
  }, {
3462
3462
  default: vue.withCtx(() => [
3463
3463
  __props.options.length === 0 && __props.userGroup.length === 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [
@@ -3473,8 +3473,8 @@
3473
3473
  { key: 1 },
3474
3474
  vue.renderList(groupedUsers.value, (group, groupName) => {
3475
3475
  return vue.openBlock(), vue.createElementBlock("div", {
3476
- class: "user-group",
3477
- key: groupName
3476
+ key: groupName,
3477
+ class: "user-group"
3478
3478
  }, [
3479
3479
  Object.keys(groupedUsers.value).length > 1 || group.some((user) => user.type === "userGroup") ? (vue.openBlock(), vue.createElementBlock("div", {
3480
3480
  key: 0,
@@ -3502,8 +3502,8 @@
3502
3502
  null,
3503
3503
  vue.renderList(group, (user) => {
3504
3504
  return vue.openBlock(), vue.createElementBlock("div", {
3505
- class: "user-option",
3506
3505
  key: user.id,
3506
+ class: "user-option",
3507
3507
  onClick: vue.withModifiers(($event) => selectUser(user), ["prevent"])
3508
3508
  }, [
3509
3509
  vue.createVNode(vue.unref(UserRender), {
@@ -3536,20 +3536,20 @@
3536
3536
  };
3537
3537
  }
3538
3538
  });
3539
- const SelectionPopover = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-e11d7af7"]]);
3539
+ const SelectionPopover = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-ee78cf72"]]);
3540
3540
  const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
3541
3541
  ...{
3542
3542
  name: "UserTag"
3543
3543
  },
3544
3544
  __name: "user-tag",
3545
3545
  props: {
3546
- user: {},
3547
- tenants: {},
3546
+ active: { type: Boolean },
3548
3547
  currentTenantId: {},
3549
3548
  draggable: { type: Boolean },
3550
- active: { type: Boolean },
3549
+ renderTag: { type: Function },
3551
3550
  showTenant: { type: Boolean },
3552
- renderTag: { type: Function }
3551
+ tenants: {},
3552
+ user: {}
3553
3553
  },
3554
3554
  emits: ["click", "close"],
3555
3555
  setup(__props, { emit: __emit }) {
@@ -3582,7 +3582,7 @@
3582
3582
  };
3583
3583
  }
3584
3584
  });
3585
- const UserTag = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-3ff46050"]]);
3585
+ const UserTag = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-48ac8fc1"]]);
3586
3586
  const _hoisted_1$1 = ["onClick"];
3587
3587
  const _hoisted_2$1 = ["placeholder"];
3588
3588
  const _hoisted_3 = { class: "hidden-users" };
@@ -3593,26 +3593,34 @@
3593
3593
  },
3594
3594
  __name: "multiple-selector",
3595
3595
  props: {
3596
- modelValue: { default: () => [] },
3597
3596
  draggable: { type: Boolean, default: false },
3597
+ modelValue: { default: () => [] },
3598
3598
  selectedUsers: { default: () => [] },
3599
3599
  tenants: { default: () => ({}) },
3600
+ allowCreate: { type: Boolean, default: false },
3600
3601
  apiBaseUrl: { default: "" },
3601
- tenantId: { default: "" },
3602
- placeholder: { default: "" },
3603
3602
  currentUserId: { default: "" },
3603
+ disabled: { type: Boolean },
3604
+ emptyText: { default: "" },
3605
+ enableMultiTenantMode: { type: Boolean },
3604
3606
  exactSearchKey: { default: "bk_username" },
3605
- userGroup: { default: () => [] },
3607
+ excludeUserIds: { default: () => [] },
3608
+ placeholder: { default: "" },
3609
+ tenantId: { default: "" },
3606
3610
  userGroupName: { default: "" },
3607
- emptyText: { default: "" },
3608
- disabled: { type: Boolean },
3609
3611
  renderListItem: {},
3610
3612
  renderTag: {},
3611
- excludeUserIds: { default: () => [] },
3612
- enableMultiTenantMode: { type: Boolean },
3613
- allowCreate: { type: Boolean, default: false }
3613
+ userGroup: { default: () => [] }
3614
3614
  },
3615
- emits: ["update:selectedUsers", "add-user", "remove-user", "focus", "blur"],
3615
+ emits: [
3616
+ "update:selectedUsers",
3617
+ "add-user",
3618
+ "remove-user",
3619
+ "dragStart",
3620
+ "dragEnd",
3621
+ "focus",
3622
+ "blur"
3623
+ ],
3616
3624
  setup(__props, { emit: __emit }) {
3617
3625
  const props = __props;
3618
3626
  const emit = __emit;
@@ -3657,6 +3665,9 @@
3657
3665
  sortableInstance.value = new Sortable(sortableContainerRef.value, {
3658
3666
  animation: 150,
3659
3667
  draggable: ".tag-wrapper",
3668
+ onStart: (event) => {
3669
+ emit("dragStart", event);
3670
+ },
3660
3671
  onEnd: (evt) => {
3661
3672
  const { oldIndex, newIndex } = evt;
3662
3673
  if (oldIndex === newIndex || oldIndex === void 0 || newIndex === void 0) return;
@@ -3664,6 +3675,7 @@
3664
3675
  const [movedUser] = updatedUsers.splice(oldIndex, 1);
3665
3676
  updatedUsers.splice(newIndex, 0, movedUser);
3666
3677
  emit("update:selectedUsers", updatedUsers);
3678
+ emit("dragEnd", evt);
3667
3679
  }
3668
3680
  });
3669
3681
  };
@@ -3699,7 +3711,6 @@
3699
3711
  });
3700
3712
  };
3701
3713
  const handleClickOutside = (event) => {
3702
- event.stopPropagation();
3703
3714
  const target = event.target;
3704
3715
  const container = containerRef.value;
3705
3716
  if ((container == null ? void 0 : container.contains(target)) || container === target) {
@@ -3947,8 +3958,8 @@
3947
3958
  null,
3948
3959
  vue.renderList(_ctx.selectedUsers, (user, index) => {
3949
3960
  return vue.openBlock(), vue.createElementBlock("div", {
3950
- class: "tag-wrapper",
3951
3961
  key: user.id,
3962
+ class: "tag-wrapper",
3952
3963
  onClick: vue.withModifiers(($event) => handleTagClick(index), ["stop"])
3953
3964
  }, [
3954
3965
  vue.createVNode(UserTag, {
@@ -3969,8 +3980,8 @@
3969
3980
  ref_for: true,
3970
3981
  ref_key: "inlineInputRef",
3971
3982
  ref: inlineInputRef,
3972
- class: "search-input inline",
3973
3983
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(searchQuery) ? searchQuery.value = $event : null),
3984
+ class: "search-input inline",
3974
3985
  onFocus: handleInputFocus,
3975
3986
  onInput: handleInput,
3976
3987
  onKeydown: handleKeyDown,
@@ -3992,8 +4003,8 @@
3992
4003
  key: 0,
3993
4004
  ref_key: "lastInputRef",
3994
4005
  ref: lastInputRef,
3995
- class: "search-input last",
3996
4006
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(searchQuery) ? searchQuery.value = $event : null),
4007
+ class: "search-input last",
3997
4008
  placeholder: !_ctx.selectedUsers.length ? _ctx.placeholder : "",
3998
4009
  onFocus: handleInputFocus,
3999
4010
  onInput: handleInput,
@@ -4034,8 +4045,8 @@
4034
4045
  null,
4035
4046
  vue.renderList(visibleUsers.value, (user) => {
4036
4047
  return vue.openBlock(), vue.createBlock(UserTag, {
4037
- "current-tenant-id": _ctx.tenantId,
4038
4048
  key: user.id,
4049
+ "current-tenant-id": _ctx.tenantId,
4039
4050
  "render-tag": _ctx.renderTag,
4040
4051
  "show-tenant": true,
4041
4052
  tenants: _ctx.tenants,
@@ -4090,8 +4101,8 @@
4090
4101
  vue.withDirectives(vue.createElementVNode("input", {
4091
4102
  ref_key: "collapsedInputRef",
4092
4103
  ref: collapsedInputRef,
4093
- class: "search-input collapsed",
4094
4104
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.isRef(searchQuery) ? searchQuery.value = $event : null),
4105
+ class: "search-input collapsed",
4095
4106
  placeholder: !_ctx.selectedUsers.length ? _ctx.placeholder : "",
4096
4107
  onFocus: handleFocus
4097
4108
  }, null, 40, _hoisted_4), [
@@ -4122,7 +4133,7 @@
4122
4133
  };
4123
4134
  }
4124
4135
  });
4125
- const MultipleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-94252de2"]]);
4136
+ const MultipleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-6c9ac297"]]);
4126
4137
  const _hoisted_1 = { class: "input-container" };
4127
4138
  const _hoisted_2 = ["placeholder"];
4128
4139
  const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
@@ -4133,20 +4144,20 @@
4133
4144
  props: {
4134
4145
  modelValue: { default: "" },
4135
4146
  tenants: {},
4147
+ allowCreate: { type: Boolean },
4136
4148
  apiBaseUrl: { default: "" },
4137
- tenantId: { default: "" },
4138
- placeholder: { default: "" },
4139
4149
  currentUserId: { default: "" },
4150
+ disabled: { type: Boolean },
4151
+ emptyText: { default: "" },
4152
+ enableMultiTenantMode: { type: Boolean },
4140
4153
  exactSearchKey: { default: "bk_username" },
4141
- userGroup: { default: () => [] },
4154
+ excludeUserIds: { default: () => [] },
4155
+ placeholder: { default: "" },
4156
+ tenantId: { default: "" },
4142
4157
  userGroupName: { default: "" },
4143
- emptyText: { default: "" },
4144
- disabled: { type: Boolean },
4145
4158
  renderListItem: {},
4146
4159
  renderTag: {},
4147
- excludeUserIds: { default: () => [] },
4148
- enableMultiTenantMode: { type: Boolean },
4149
- allowCreate: { type: Boolean }
4160
+ userGroup: { default: () => [] }
4150
4161
  },
4151
4162
  emits: ["update:modelValue", "change", "focus", "blur"],
4152
4163
  setup(__props, { emit: __emit }) {
@@ -4352,8 +4363,8 @@
4352
4363
  vue.withDirectives(vue.createElementVNode("input", {
4353
4364
  ref_key: "inputRef",
4354
4365
  ref: inputRef,
4355
- class: "search-input",
4356
4366
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchQuery.value = $event),
4367
+ class: "search-input",
4357
4368
  placeholder: selectedUserInfo.value ? "" : _ctx.placeholder,
4358
4369
  onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur")),
4359
4370
  onFocus: handleInputFocus,
@@ -4382,32 +4393,32 @@
4382
4393
  };
4383
4394
  }
4384
4395
  });
4385
- const SingleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-726a967e"]]);
4396
+ const SingleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-2a791ec6"]]);
4386
4397
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
4387
4398
  ...{
4388
4399
  name: "BkUserSelector"
4389
4400
  },
4390
4401
  __name: "user-selector",
4391
4402
  props: {
4392
- modelValue: { default: "" },
4393
4403
  draggable: { type: Boolean, default: false },
4404
+ modelValue: { default: "" },
4394
4405
  multiple: { type: Boolean, default: false },
4406
+ allowCreate: { type: Boolean, default: false },
4395
4407
  apiBaseUrl: { default: "" },
4396
- tenantId: { default: "" },
4397
- placeholder: { default: "" },
4398
4408
  currentUserId: { default: "" },
4409
+ disabled: { type: Boolean, default: false },
4410
+ emptyText: { default: "" },
4411
+ enableMultiTenantMode: { type: Boolean, default: true },
4399
4412
  exactSearchKey: { default: "bk_username" },
4400
- userGroup: { default: () => [] },
4413
+ excludeUserIds: { default: () => [] },
4414
+ placeholder: { default: "" },
4415
+ tenantId: { default: "" },
4401
4416
  userGroupName: { default: "" },
4402
- emptyText: { default: "" },
4403
- disabled: { type: Boolean, default: false },
4404
4417
  renderListItem: {},
4405
4418
  renderTag: {},
4406
- excludeUserIds: { default: () => [] },
4407
- enableMultiTenantMode: { type: Boolean, default: true },
4408
- allowCreate: { type: Boolean, default: false }
4419
+ userGroup: { default: () => [] }
4409
4420
  },
4410
- emits: ["update:modelValue", "change", "focus", "blur"],
4421
+ emits: ["update:modelValue", "change", "dragStart", "dragEnd", "focus", "blur"],
4411
4422
  setup(__props, { emit: __emit }) {
4412
4423
  const { t } = useI18n();
4413
4424
  bkuiVue.provideGlobalConfig({
@@ -4557,6 +4568,8 @@
4557
4568
  "user-group": _ctx.userGroup,
4558
4569
  "user-group-name": userGroupName.value,
4559
4570
  onBlur: handleBlur,
4571
+ onDragEnd: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("dragEnd", $event)),
4572
+ onDragStart: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("dragStart", $event)),
4560
4573
  onFocus: handleFocus,
4561
4574
  "onUpdate:selectedUsers": handleUpdateSelectedUsers
4562
4575
  }, 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"])
@@ -4571,7 +4584,7 @@
4571
4584
  };
4572
4585
  }
4573
4586
  });
4574
- const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3a531e42"]]);
4587
+ const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f4c00173"]]);
4575
4588
  exports2.BkUserSelector = BkUserSelector;
4576
4589
  exports2.default = BkUserSelector;
4577
4590
  Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
package/vue3/vue3.css CHANGED
@@ -1,4 +1,4 @@
1
- .me-tag[data-v-44fec2ba] {
1
+ .me-tag[data-v-ef4a05c4] {
2
2
  position: absolute;
3
3
  top: 50%;
4
4
  right: 8px;
@@ -11,83 +11,83 @@
11
11
  padding: 0 8px;
12
12
  font-size: 12px;
13
13
  color: #4d4f56;
14
+ white-space: nowrap;
14
15
  cursor: pointer;
15
16
  background-color: #e1ecff;
16
17
  border-radius: 50%;
17
18
  transform: translateY(-50%);
18
- white-space: nowrap;
19
19
  }
20
- .me-tag[data-v-44fec2ba]:hover {
20
+ .me-tag[data-v-ef4a05c4]:hover {
21
21
  color: #3a84ff;
22
22
  background-color: #cddffe;
23
23
  }
24
- .me-tag.disabled[data-v-44fec2ba] {
24
+ .me-tag.disabled[data-v-ef4a05c4] {
25
25
  color: #c4c6cc;
26
26
  cursor: not-allowed;
27
27
  background-color: #f0f1f5;
28
- }.dropdown-content[data-v-e11d7af7] {
28
+ }.dropdown-content[data-v-ee78cf72] {
29
29
  min-height: 40px;
30
30
  max-height: 300px;
31
31
  padding: 5px 0;
32
32
  overflow-y: auto;
33
33
  }
34
- .dropdown-content .no-data[data-v-e11d7af7] {
34
+ .dropdown-content .no-data[data-v-ee78cf72] {
35
35
  padding: 10px;
36
36
  color: #979ba5;
37
37
  text-align: center;
38
38
  }
39
- .dropdown-content .user-group .group-header[data-v-e11d7af7] {
39
+ .dropdown-content .user-group .group-header[data-v-ee78cf72] {
40
40
  display: flex;
41
41
  align-items: center;
42
42
  padding: 8px 12px;
43
43
  color: #979ba5;
44
44
  }
45
- .dropdown-content .user-group .group-header .group-count[data-v-e11d7af7] {
45
+ .dropdown-content .user-group .group-header .group-count[data-v-ee78cf72] {
46
46
  margin-left: 4px;
47
47
  }
48
- .dropdown-content .user-option[data-v-e11d7af7] {
48
+ .dropdown-content .user-option[data-v-ee78cf72] {
49
49
  display: flex;
50
50
  align-items: center;
51
51
  height: 32px;
52
52
  padding: 8px 12px;
53
53
  cursor: pointer;
54
54
  }
55
- .dropdown-content .user-option[data-v-e11d7af7]:hover {
55
+ .dropdown-content .user-option[data-v-ee78cf72]:hover {
56
56
  background-color: #f5f7fa;
57
57
  }.bk-user-selector-popover.bk-user-selector-pop2-content {
58
58
  padding: 0;
59
- }.user-tag[data-v-3ff46050] {
59
+ }.user-tag[data-v-48ac8fc1] {
60
60
  margin-right: 4px;
61
61
  margin-left: 0;
62
62
  }
63
- .user-tag.draggable[data-v-3ff46050] {
63
+ .user-tag.draggable[data-v-48ac8fc1] {
64
64
  cursor: move;
65
65
  }
66
- .user-tag.active[data-v-3ff46050] {
66
+ .user-tag.active[data-v-48ac8fc1] {
67
67
  background-color: #e1ecff;
68
68
  border-color: #3a84ff;
69
69
  }
70
- .user-tag.is-custom[data-v-3ff46050] {
70
+ .user-tag.is-custom[data-v-48ac8fc1] {
71
71
  color: #ea3636;
72
72
  background-color: #feebea;
73
73
  border-color: rgba(234, 53, 54, 0.3019607843);
74
74
  }
75
- .user-tag.is-custom[data-v-3ff46050]:hover {
75
+ .user-tag.is-custom[data-v-48ac8fc1]:hover {
76
76
  background-color: #fedddc;
77
77
  }
78
- .user-tag .tag-content .user-name[data-v-3ff46050] {
78
+ .user-tag .tag-content .user-name[data-v-48ac8fc1] {
79
79
  overflow: hidden;
80
- font-size: 12px;
81
80
  text-overflow: ellipsis;
81
+ font-size: 12px;
82
82
  white-space: nowrap;
83
- }.multiple-selector[data-v-94252de2] {
83
+ }.multiple-selector[data-v-6c9ac297] {
84
84
  position: relative;
85
85
  width: 100%;
86
86
  }
87
- .multiple-selector.is-disabled[data-v-94252de2] {
87
+ .multiple-selector.is-disabled[data-v-6c9ac297] {
88
88
  pointer-events: none;
89
89
  }
90
- .multiple-selector .tags-container[data-v-94252de2] {
90
+ .multiple-selector .tags-container[data-v-6c9ac297] {
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-94252de2] {
98
+ .multiple-selector .tags-container.focused[data-v-6c9ac297] {
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-94252de2] {
102
+ .multiple-selector .tags-container.collapsed[data-v-6c9ac297] {
103
103
  display: flex;
104
104
  flex-wrap: wrap;
105
105
  align-items: center;
106
106
  }
107
- .multiple-selector .tag-list[data-v-94252de2] {
107
+ .multiple-selector .tag-list[data-v-6c9ac297] {
108
108
  display: flex;
109
109
  flex-wrap: wrap;
110
110
  align-items: center;
111
111
  }
112
- .multiple-selector .tag-wrapper[data-v-94252de2] {
112
+ .multiple-selector .tag-wrapper[data-v-6c9ac297] {
113
113
  display: inline-flex;
114
114
  align-items: center;
115
115
  max-width: 100%;
116
116
  }
117
- .multiple-selector .search-input[data-v-94252de2] {
117
+ .multiple-selector .search-input[data-v-6c9ac297] {
118
118
  min-width: 10px;
119
119
  height: 28px;
120
+ outline: none;
120
121
  background: transparent;
121
122
  border: none;
122
- outline: none;
123
123
  }
124
- .multiple-selector .search-input[data-v-94252de2]::placeholder {
124
+ .multiple-selector .search-input[data-v-6c9ac297]::placeholder {
125
125
  color: #c4c6cc;
126
126
  }
127
- .multiple-selector .search-input.inline[data-v-94252de2] {
127
+ .multiple-selector .search-input.inline[data-v-6c9ac297] {
128
128
  min-width: 10px;
129
129
  }
130
- .multiple-selector .search-input.last[data-v-94252de2], .multiple-selector .search-input.collapsed[data-v-94252de2] {
130
+ .multiple-selector .search-input.last[data-v-6c9ac297], .multiple-selector .search-input.collapsed[data-v-6c9ac297] {
131
131
  flex: 1;
132
132
  }
133
- .hidden-users[data-v-94252de2] {
133
+ .hidden-users[data-v-6c9ac297] {
134
134
  padding: 6px 10px;
135
- }.single-selector[data-v-726a967e] {
135
+ }.single-selector[data-v-2a791ec6] {
136
136
  position: relative;
137
137
  width: 100%;
138
138
  }
139
- .single-selector.is-disabled[data-v-726a967e] {
139
+ .single-selector.is-disabled[data-v-2a791ec6] {
140
140
  pointer-events: none;
141
141
  }
142
- .input-container[data-v-726a967e] {
142
+ .input-container[data-v-2a791ec6] {
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-726a967e]:focus-within {
152
+ .input-container[data-v-2a791ec6]: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-726a967e] {
156
+ .search-input[data-v-2a791ec6] {
157
157
  flex: 1;
158
158
  height: 30px;
159
+ outline: none;
159
160
  background: transparent;
160
161
  border: none;
161
- outline: none;
162
162
  }
163
- .search-input[data-v-726a967e]::placeholder {
163
+ .search-input[data-v-2a791ec6]::placeholder {
164
164
  color: #c4c6cc;
165
- }.bk-user-selector[data-v-3a531e42] {
165
+ }.bk-user-selector[data-v-f4c00173] {
166
166
  position: relative;
167
167
  width: 100%;
168
168
  font-size: 12px;
169
169
  }
170
- .bk-user-selector.is-disabled[data-v-3a531e42] {
170
+ .bk-user-selector.is-disabled[data-v-f4c00173] {
171
171
  cursor: not-allowed;
172
172
  background-color: #dcdee5;
173
173
  }