@blueking/bk-user-selector 0.0.29-beta.3 → 0.0.29-beta.4

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blueking/bk-user-selector",
3
- "version": "0.0.29-beta.3",
3
+ "version": "0.0.29-beta.4",
4
4
  "description": "蓝鲸用户选择器",
5
5
  "license": "MIT",
6
6
  "author": "Tencent BlueKing",
@@ -39,7 +39,7 @@ export declare const lookupUsers: (params: {
39
39
  * @param users - API返回的用户列表
40
40
  * @returns 格式化后的用户列表
41
41
  */
42
- export declare const formatUsers: (users: User[]) => FormattedUser[];
42
+ export declare const formatUsers: (users: User[], enableMultiTenantMode?: boolean) => FormattedUser[];
43
43
  /**
44
44
  * 获取用户列表 兼容旧版本的人员选择器
45
45
  * @param url 请求的 URL
@@ -4,6 +4,8 @@ export interface JSONPOptions {
4
4
  timeout?: number;
5
5
  /** 请求参数 */
6
6
  params?: Record<string, string | undefined>;
7
+ /** 是否携带凭证(cookie),默认为 true */
8
+ withCredentials?: boolean;
7
9
  }
8
10
  export interface JSONPResult<T> {
9
11
  /** 响应数据 */
@@ -10,7 +10,7 @@ import { type FormattedUser } from '../types';
10
10
  * @param tenantId - 租户ID
11
11
  * @returns 用户搜索相关状态和方法
12
12
  */
13
- export declare const useUserSearch: (apiBaseUrl: string, tenantId: string) => {
13
+ export declare const useUserSearch: (apiBaseUrl: string, tenantId: string, enableMultiTenantMode?: boolean) => {
14
14
  searchResults: Ref<FormattedUser[], FormattedUser[]>;
15
15
  loading: Ref<boolean, boolean>;
16
16
  searchQuery: Ref<string, string>;
@@ -1,5 +1,5 @@
1
1
  import * as __WEBPACK_EXTERNAL_MODULE_vue__ from "@blueking/bkui-library";
2
- import { shallowRef, watchEffect, unref, onScopeDispose, ref, onBeforeMount, defineComponent, openBlock, createElementBlock, normalizeClass, withModifiers, createCommentVNode, h as h$1, computed, createBlock, withCtx, createVNode, createElementVNode, toDisplayString, Fragment, renderList, watch, nextTick, onMounted, withDirectives, isRef, vModelText, createTextVNode, createApp } from "@blueking/bkui-library";
2
+ import { unref, ref, onBeforeMount, defineComponent, openBlock, createElementBlock, normalizeClass, withModifiers, createCommentVNode, h as h$1, computed, createBlock, withCtx, createVNode, createElementVNode, toDisplayString, Fragment, renderList, watch, nextTick, onMounted, withDirectives, isRef, vModelText, createTextVNode, createApp } from "@blueking/bkui-library";
3
3
  var top = "top";
4
4
  var bottom = "bottom";
5
5
  var right = "right";
@@ -10678,10 +10678,15 @@ const generateCallbackName = () => {
10678
10678
  const jsonpRequest = (requestUrl, options = {}) => {
10679
10679
  return new Promise((resolve, reject) => {
10680
10680
  const url = unref(requestUrl);
10681
- const { timeout = 1e3 * 60 * 2, params } = options;
10681
+ const { timeout = 1e3 * 60 * 2, params, withCredentials = true } = options;
10682
10682
  const callbackName = generateCallbackName();
10683
10683
  const script = document.createElement("script");
10684
10684
  let timeoutId;
10685
+ if (withCredentials) {
10686
+ script.crossOrigin = "use-credentials";
10687
+ } else {
10688
+ script.crossOrigin = "anonymous";
10689
+ }
10685
10690
  const cleanup = () => {
10686
10691
  if (timeoutId) {
10687
10692
  clearTimeout(timeoutId);
@@ -10711,48 +10716,6 @@ const jsonpRequest = (requestUrl, options = {}) => {
10711
10716
  document.head.appendChild(script);
10712
10717
  });
10713
10718
  };
10714
- const useJSONP = (url, options = {}) => {
10715
- const data2 = shallowRef(null);
10716
- const loading2 = shallowRef(false);
10717
- const error3 = shallowRef(null);
10718
- let abortFlag = false;
10719
- const executeRequest = async (requestUrl) => {
10720
- if (!requestUrl) return;
10721
- loading2.value = true;
10722
- error3.value = null;
10723
- abortFlag = false;
10724
- try {
10725
- const result = await jsonpRequest(requestUrl, options);
10726
- if (!abortFlag) {
10727
- data2.value = result;
10728
- }
10729
- } catch (err) {
10730
- if (!abortFlag) {
10731
- const errorObj = err instanceof Error ? err : new Error(String(err));
10732
- error3.value = errorObj;
10733
- }
10734
- } finally {
10735
- if (!abortFlag) {
10736
- loading2.value = false;
10737
- }
10738
- }
10739
- };
10740
- const stopWatcher = watchEffect(() => {
10741
- executeRequest(unref(url));
10742
- });
10743
- onScopeDispose(() => {
10744
- abortFlag = true;
10745
- stopWatcher();
10746
- });
10747
- return {
10748
- data: data2,
10749
- loading: loading2,
10750
- error: error3,
10751
- refetch: () => {
10752
- executeRequest(unref(url));
10753
- }
10754
- };
10755
- };
10756
10719
  const getTenants = async (apiBaseUrl, tenantId) => {
10757
10720
  if (!apiBaseUrl || !tenantId) {
10758
10721
  console.warn("获取租户信息需要提供有效的apiBaseUrl和租户ID");
@@ -10846,10 +10809,18 @@ const lookupUsers = async (params) => {
10846
10809
  return [];
10847
10810
  }
10848
10811
  };
10849
- const formatUsers = (users) => {
10812
+ const formatUsers = (users, enableMultiTenantMode = true) => {
10850
10813
  if (!users || !Array.isArray(users)) return [];
10814
+ if (!enableMultiTenantMode) {
10815
+ return users.map((user) => ({
10816
+ ...user,
10817
+ id: user.username,
10818
+ name: `${user.display_name}(${user.username})`,
10819
+ tenantId: user.owner_tenant_id
10820
+ }));
10821
+ }
10851
10822
  return users.map((user) => ({
10852
- id: user.bk_username || user.username,
10823
+ id: user.bk_username,
10853
10824
  name: user.display_name,
10854
10825
  tenantId: user.owner_tenant_id,
10855
10826
  ...user
@@ -10857,7 +10828,7 @@ const formatUsers = (users) => {
10857
10828
  };
10858
10829
  const getUserList = async (url, params) => {
10859
10830
  const { userIds, keyword, pageSize = 20, page, appCode } = params;
10860
- const { data: userList } = await useJSONP(url, {
10831
+ const data2 = await jsonpRequest(url, {
10861
10832
  params: {
10862
10833
  exact_lookups: (userIds == null ? void 0 : userIds.join(",")) || void 0,
10863
10834
  fuzzy_lookups: keyword || void 0,
@@ -10866,7 +10837,7 @@ const getUserList = async (url, params) => {
10866
10837
  app_code: appCode || "bk-magicbox"
10867
10838
  }
10868
10839
  });
10869
- return userList.value || [];
10840
+ return (data2 == null ? void 0 : data2.results) || [];
10870
10841
  };
10871
10842
  const useTenantData = (apiBaseUrl, tenantId, enableMultiTenantMode = true) => {
10872
10843
  const tenants = ref({});
@@ -13697,7 +13668,7 @@ const calculateVisibleTags = (container, items, containerWidth) => {
13697
13668
  }
13698
13669
  return Math.max(1, visibleCount);
13699
13670
  };
13700
- const useUserSearch = (apiBaseUrl, tenantId) => {
13671
+ const useUserSearch = (apiBaseUrl, tenantId, enableMultiTenantMode = true) => {
13701
13672
  const searchResults = ref([]);
13702
13673
  const loading2 = ref(false);
13703
13674
  const searchQuery = ref("");
@@ -13716,9 +13687,9 @@ const useUserSearch = (apiBaseUrl, tenantId) => {
13716
13687
  apiBaseUrl,
13717
13688
  tenantId,
13718
13689
  keyword,
13719
- enableMultiTenantMode: true
13690
+ enableMultiTenantMode
13720
13691
  });
13721
- searchResults.value = formatUsers(results);
13692
+ searchResults.value = formatUsers(results, enableMultiTenantMode);
13722
13693
  } catch (error3) {
13723
13694
  console.error("用户搜索失败:", error3);
13724
13695
  searchResults.value = [];
@@ -14150,7 +14121,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
14150
14121
  searchQuery,
14151
14122
  // clearSearch,
14152
14123
  handleSearchInput
14153
- } = useUserSearch(props2.apiBaseUrl, props2.tenantId);
14124
+ } = useUserSearch(props2.apiBaseUrl, props2.tenantId, props2.enableMultiTenantMode);
14154
14125
  const containerRef = ref(null);
14155
14126
  const tagsContainerRef = ref(null);
14156
14127
  const sortableContainerRef = ref(null);
@@ -14277,7 +14248,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
14277
14248
  usersList: [props2.currentUserId],
14278
14249
  enableMultiTenantMode: props2.enableMultiTenantMode
14279
14250
  });
14280
- const formattedUsers = formatUsers(result);
14251
+ const formattedUsers = formatUsers(result, props2.enableMultiTenantMode);
14281
14252
  if (formattedUsers.length > 0) {
14282
14253
  if (!props2.selectedUsers.some((item) => item.id === formattedUsers[0].id)) {
14283
14254
  emit("update:selectedUsers", [...props2.selectedUsers, formattedUsers[0]]);
@@ -14305,7 +14276,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
14305
14276
  usersList: users,
14306
14277
  enableMultiTenantMode: props2.enableMultiTenantMode
14307
14278
  });
14308
- const formattedUsers = formatUsers(result);
14279
+ const formattedUsers = formatUsers(result, props2.enableMultiTenantMode);
14309
14280
  if (formattedUsers.length > 0) {
14310
14281
  const updatedUsers = [...props2.selectedUsers, ...formattedUsers];
14311
14282
  emit("update:selectedUsers", updatedUsers);
@@ -14619,7 +14590,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
14619
14590
  };
14620
14591
  }
14621
14592
  });
14622
- const MultipleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-bebe517d"]]);
14593
+ const MultipleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-7ff53892"]]);
14623
14594
  const _hoisted_1 = { class: "input-container" };
14624
14595
  const _hoisted_2 = ["placeholder"];
14625
14596
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
@@ -14680,7 +14651,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
14680
14651
  usersList: [props2.modelValue],
14681
14652
  enableMultiTenantMode: props2.enableMultiTenantMode
14682
14653
  });
14683
- options.value = formatUsers(result).filter((user) => !props2.excludeUserIds.includes(user.id));
14654
+ options.value = formatUsers(result, props2.enableMultiTenantMode).filter(
14655
+ (user) => !props2.excludeUserIds.includes(user.id)
14656
+ );
14684
14657
  if (props2.userGroup.length > 0) {
14685
14658
  const groupResult = props2.userGroup.filter((group) => group.id == props2.modelValue);
14686
14659
  options.value = groupResult.map((group) => ({
@@ -14711,7 +14684,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
14711
14684
  usersList: [props2.currentUserId],
14712
14685
  enableMultiTenantMode: props2.enableMultiTenantMode
14713
14686
  });
14714
- const formattedResults = formatUsers(result);
14687
+ const formattedResults = formatUsers(result, props2.enableMultiTenantMode);
14715
14688
  if (formattedResults.length > 0) {
14716
14689
  options.value = formattedResults.filter((user) => !props2.excludeUserIds.includes(user.id));
14717
14690
  addUser(formattedResults[0]);
@@ -14733,7 +14706,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
14733
14706
  keyword,
14734
14707
  enableMultiTenantMode: props2.enableMultiTenantMode
14735
14708
  });
14736
- options.value = formatUsers(result).filter((user) => !selectedUser.value || user.id !== selectedUser.value).filter((user) => !props2.excludeUserIds.includes(user.id));
14709
+ options.value = formatUsers(result, props2.enableMultiTenantMode).filter((user) => !selectedUser.value || user.id !== selectedUser.value).filter((user) => !props2.excludeUserIds.includes(user.id));
14737
14710
  } catch (error3) {
14738
14711
  console.error("获取用户列表失败:", error3);
14739
14712
  options.value = [];
@@ -14837,7 +14810,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
14837
14810
  };
14838
14811
  }
14839
14812
  });
14840
- const SingleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-67f2ee6a"]]);
14813
+ const SingleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-d56195a1"]]);
14841
14814
  const _sfc_main = /* @__PURE__ */ defineComponent({
14842
14815
  ...{
14843
14816
  name: "BkUserSelector"
@@ -14895,7 +14868,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
14895
14868
  usersList: ids,
14896
14869
  enableMultiTenantMode: props2.enableMultiTenantMode
14897
14870
  });
14898
- selectedUsers.value = [...selected, ...formatUsers(result)];
14871
+ selectedUsers.value = [...selected, ...formatUsers(result, props2.enableMultiTenantMode)];
14899
14872
  } catch (error3) {
14900
14873
  console.error("获取选中用户信息失败:", error3);
14901
14874
  }
@@ -15002,7 +14975,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
15002
14975
  };
15003
14976
  }
15004
14977
  });
15005
- const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-617ed278"]]);
14978
+ const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-812cbe5a"]]);
15006
14979
  const vue2 = {
15007
14980
  model: {
15008
14981
  prop: "modelValue",
@@ -3,7 +3,7 @@
3
3
  try {
4
4
  if (typeof document != "undefined") {
5
5
  var elementStyle = document.createElement("style");
6
- elementStyle.appendChild(document.createTextNode(".scroll-bar-style::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.scroll-bar-style::-webkit-scrollbar-thumb {\n background: #ddd;\n border-radius: 20px;\n box-shadow: inset 0 0 6px rgba(204, 204, 204, 0.3);\n}\nhtml,\nbody {\n padding: 0;\n margin: 0;\n}\n* {\n box-sizing: border-box;\n}\n/**\n * HTML5 display definitions\n * ==========================================================================\n *\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n /* 1 */\n display: inline-block;\n /* 2 */\n vertical-align: baseline;\n}\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n display: none;\n}\n/**\n * Links\n * ==========================================================================\n *\n * Remove the gray background color from active links in IE 10.\n */\na {\n background-color: transparent;\n}\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\na:active,\na:hover {\n outline: 0;\n}\n/**\n * Text-level semantics\n * ==========================================================================\n *\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n border-bottom: 1px dotted;\n}\n/**\n * Embedded content\n * ==========================================================================\n *\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n border: 0;\n}\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n overflow: hidden;\n}\n/**\n * Grouping content\n * ==========================================================================\n *\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n margin: 1em 40px;\n}\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n height: 0;\n box-sizing: content-box;\n}\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n *\n * Forms\n * ==========================================================================\n *\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n *\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n /* 3 */\n margin: 0;\n /* 2 */\n font: inherit;\n /* 1 */\n color: inherit;\n}\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n overflow: visible;\n}\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n text-transform: none;\n}\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type `input` and others.\n */\nbutton,\nhtml input[type='button'],\ninput[type='reset'],\ninput[type='submit'] {\n /* 3 */\n cursor: pointer;\n /* 2 */\n appearance: button;\n}\n/* Re-set default cursor for disabled elements. */\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n/* Remove inner padding and border in Firefox 4+. */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet.\n */\ninput {\n line-height: normal;\n}\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type='checkbox'],\ninput[type='radio'] {\n /* 2 */\n padding: 0;\n /* 1 */\n box-sizing: border-box;\n}\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type='number']::-webkit-inner-spin-button,\ninput[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n::-ms-clear,\n::-ms-reveal {\n display: none;\n}\ninput[type='text']::-ms-clear {\n display: none;\n}\ninput[type='text']::-ms-reveal {\n display: none;\n}\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\ninput[type='search'] {\n /* 2 */\n box-sizing: content-box;\n /* 1 */\n appearance: textfield;\n}\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type='search']::-webkit-search-cancel-button,\ninput[type='search']::-webkit-search-decoration {\n appearance: none;\n}\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n padding: 0.35em 0.625em 0.75em;\n margin: 0 2px;\n border: 1px solid #c0c0c0;\n}\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n /* 2 */\n padding: 0;\n /* 1 */\n border: 0;\n}\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n overflow: auto;\n}\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n font-weight: bold;\n}\n/**\n* BK-Scroll-Style\n*/\n.bk-scroll-y {\n overflow-y: auto;\n}\n.bk-scroll-y::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.bk-scroll-y::-webkit-scrollbar-thumb {\n background: #ddd;\n border-radius: 20px;\n box-shadow: inset 0 0 6px rgba(204, 204, 204, 0.3);\n}\n.bk-scroll-x {\n overflow-x: auto;\n}\n.bk-scroll-x::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.bk-scroll-x::-webkit-scrollbar-thumb {\n background: #ddd;\n border-radius: 20px;\n box-shadow: inset 0 0 6px rgba(204, 204, 204, 0.3);\n}\n@keyframes loading-scale-animate {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.6);\n }\n}\n@keyframes fade {\n 100% {\n background-color: transparent;\n }\n}\n.bk-user-selector-transition .bk-user-selector-fade-enter-active,\n.bk-user-selector-transition .bk-user-selector-fade-leave-active {\n transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);\n}\n.bk-user-selector-transition .bk-user-selector-fade-enter,\n.bk-user-selector-transition .bk-user-selector-fade-leave-to {\n opacity: 0;\n}\n.clearfix-style::after {\n display: block;\n height: 0;\n clear: both;\n font-size: 0;\n content: '';\n visibility: hidden;\n}\n.bk-user-selector-popper {\n display: none;\n padding: 7px 14px;\n font-size: 12px;\n color: #fff;\n background: #333;\n border-radius: 4px;\n}\n.bk-user-selector-popper.light {\n color: #63656e;\n background: #fff;\n box-shadow: #dcdee5 0 0 6px 0;\n}\n.bk-user-selector-popper .bk-user-selector-popper-arrow,\n.bk-user-selector-popper .bk-user-selector-popper-arrow::before {\n position: absolute;\n width: 8px;\n height: 8px;\n background: inherit;\n}\n.bk-user-selector-popper .bk-user-selector-popper-arrow {\n visibility: hidden;\n}\n.bk-user-selector-popper .bk-user-selector-popper-arrow::before {\n content: '';\n visibility: visible;\n transform: rotate(45deg);\n}\n.bk-user-selector-popper[data-show] {\n display: block;\n}\n.bk-user-selector-popper[data-popper-placement^='top'] > .bk-user-selector-popper-arrow {\n bottom: -4px;\n}\n.bk-user-selector-popper[data-popper-placement^='bottom'] > .bk-user-selector-popper-arrow {\n top: -4px;\n}\n.bk-user-selector-popper[data-popper-placement^='left'] > .bk-user-selector-popper-arrow {\n right: -4px;\n}\n.bk-user-selector-popper[data-popper-placement^='right'] > .bk-user-selector-popper-arrow {\n left: -4px;\n}\n.bk-user-selector-loading-wrapper {\n position: static;\n vertical-align: middle;\n}\n.bk-user-selector-loading-wrapper:not(.bk-user-selector-nested-loading):not(.bk-user-selector-directive-loading) {\n display: inline-flex;\n}\n.bk-user-selector-loading-wrapper.bk-user-selector-directive-loading {\n width: 100%;\n height: 100%;\n}\n.bk-user-selector-loading-wrapper.bk-user-selector-directive-loading,\n.bk-user-selector-loading-wrapper.bk-user-selector-nested-loading {\n position: relative;\n}\n.bk-user-selector-loading-wrapper.bk-user-selector-directive-loading.is-block,\n.bk-user-selector-loading-wrapper.bk-user-selector-nested-loading.is-block {\n display: block;\n}\n.bk-user-selector-loading-wrapper.bk-user-selector-directive-loading .bk-user-selector-loading-indicator,\n.bk-user-selector-loading-wrapper.bk-user-selector-nested-loading .bk-user-selector-loading-indicator {\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 11;\n text-align: center;\n transform: translate(-50%, -50%);\n}\n.bk-user-selector-loading-wrapper .dot {\n display: inline-flex;\n width: 14px;\n height: 14px;\n margin-right: 10px;\n border-radius: 50%;\n transform: scale(0.6);\n animation-duration: 0.8s;\n animation-iteration-count: infinite;\n animation-name: loading-scale-animate;\n animation-direction: normal;\n}\n.bk-user-selector-loading-wrapper .oval {\n position: absolute;\n width: 6px;\n height: 8px;\n background-color: #63656e;\n border-radius: 8px;\n animation-duration: 1.2s;\n animation-iteration-count: infinite;\n animation-name: fade;\n transform-origin: center 24px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-mask {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator {\n display: flex;\n line-height: 1;\n text-align: center;\n flex-direction: column;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .dot-4 {\n background-color: #2dcb56;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .dot-4 {\n background-color: #ea3636;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .dot-4 {\n background-color: #ff9c01;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .dot-4 {\n background-color: #3a84ff;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .dot-4 {\n background-color: white;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .dot-4 {\n background-color: #c4c6cc;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .dot-1 {\n background-color: #ea3636;\n animation-delay: 0.1s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .dot-2 {\n background-color: #ff9c01;\n animation-delay: 0.25s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .dot-3 {\n background-color: #2dcb56;\n animation-delay: 0.4s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .dot-4 {\n background-color: #3a84ff;\n animation-delay: 0.55s;\n margin-right: 0px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-1 {\n transform: rotate(135deg);\n animation-delay: -0.45s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-2 {\n transform: rotate(90deg);\n animation-delay: -0.6s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-3 {\n transform: rotate(45deg);\n animation-delay: -0.75s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-4 {\n transform: rotate(0deg);\n animation-delay: -0.9s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-5 {\n transform: rotate(-45deg);\n animation-delay: -1.05s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-6 {\n transform: rotate(-90deg);\n animation-delay: -1.2s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-7 {\n transform: rotate(-135deg);\n animation-delay: -1.35s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-8 {\n transform: rotate(-180deg);\n animation-delay: -1.5s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .bk-user-selector-normal-indicator {\n display: inline-flex;\n justify-content: center;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .bk-user-selector-spin-indicator {\n position: relative;\n display: inline-flex;\n justify-content: center;\n width: 48px;\n height: 48px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-mini .bk-user-selector-spin-indicator {\n height: 16px;\n width: 16px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-mini .dot {\n width: 3px;\n height: 3px;\n margin-right: 3px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-mini .dot.dot-4 {\n margin-right: 0;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-mini .oval {\n width: 2px;\n height: 3px;\n border-radius: 3px;\n transform-origin: center 8px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-mini .bk-user-selector-loading-title {\n font-size: 14px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-small .bk-user-selector-spin-indicator {\n height: 32px;\n width: 32px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-small .dot {\n width: 6px;\n height: 6px;\n margin-right: 6px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-small .dot.dot-4 {\n margin-right: 0;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-small .oval {\n width: 4px;\n height: 5px;\n border-radius: 5px;\n transform-origin: center 16px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-small .bk-user-selector-loading-title {\n font-size: 12px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-large .bk-user-selector-spin-indicator {\n height: 68px;\n width: 68px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-large .dot {\n width: 20px;\n height: 20px;\n margin-right: 12px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-large .dot.dot-4 {\n margin-right: 0;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-large .oval {\n width: 8px;\n height: 12px;\n border-radius: 12px;\n transform-origin: center 34px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-large .bk-user-selector-loading-title {\n font-size: 14px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .bk-user-selector-loading-title {\n margin-top: 8px;\n font-size: 14px;\n line-height: normal;\n color: #63656e;\n text-align: center;\n}\n.bk-user-selector-popover.bk-user-selector-pop2-content {\n position: absolute;\n padding: 12px;\n font-size: 12px;\n color: #fff;\n background: #26323d;\n border-radius: 4px;\n box-sizing: border-box;\n}\n.bk-user-selector-popover.bk-user-selector-pop2-content.hidden {\n display: none;\n}\n.bk-user-selector-popover.bk-user-selector-pop2-content .bk-user-selector-pop2-arrow {\n position: absolute;\n z-index: -1;\n width: 8px;\n height: 8px;\n background: #333;\n transform: rotate(45deg);\n}\n.bk-user-selector-popover.bk-user-selector-pop2-content[data-theme^='light'] {\n color: #26323d;\n background-color: #fff;\n box-shadow: 0 0 6px 0 #dcdee5;\n}\n.bk-user-selector-popover.bk-user-selector-pop2-content[data-theme^='light'] .bk-user-selector-pop2-arrow {\n background-color: #fff;\n}\n.text-ov {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.position-relative {\n position: relative;\n}\n.position-absolute {\n position: absolute;\n}\n.overflow-popover-reference {\n width: 100%;\n}\n.bk-user-selector-tag {\n display: inline-flex;\n align-items: center;\n height: 22px;\n padding: 0 10px;\n font-size: 12px;\n line-height: 22px;\n color: #63656e;\n cursor: default;\n background-color: #f0f1f5;\n border-color: rgba(151, 155, 165, 0.3);\n box-sizing: border-box;\n}\n.bk-user-selector-tag.bk-user-selector-tag-success {\n color: #14a568;\n border-color: rgba(20, 165, 104, 0.3);\n background-color: #E4FAF0;\n}\n.bk-user-selector-tag.bk-user-selector-tag-success.bk-user-selector-tag-filled {\n background-color: #14A568;\n}\n.bk-user-selector-tag.bk-user-selector-tag-success.bk-user-selector-tag-filled:hover {\n background-color: #42B685;\n}\n.bk-user-selector-tag.bk-user-selector-tag-success:hover:not(.bk-user-selector-tag-filled) {\n background-color: #C9F5E2;\n}\n.bk-user-selector-tag.bk-user-selector-tag-info {\n color: #3a84ff;\n border-color: rgba(58, 132, 255, 0.3);\n background-color: #EDF4FF;\n}\n.bk-user-selector-tag.bk-user-selector-tag-info.bk-user-selector-tag-filled {\n background-color: #3A84FF;\n}\n.bk-user-selector-tag.bk-user-selector-tag-info.bk-user-selector-tag-filled:hover {\n background-color: #609CFE;\n}\n.bk-user-selector-tag.bk-user-selector-tag-info:hover:not(.bk-user-selector-tag-filled) {\n background-color: #E1ECFF;\n}\n.bk-user-selector-tag.bk-user-selector-tag-warning {\n color: #fe9c00;\n border-color: rgba(254, 165, 0, 0.3);\n background-color: #FFF1DB;\n}\n.bk-user-selector-tag.bk-user-selector-tag-warning.bk-user-selector-tag-filled {\n background-color: #FE9C00;\n}\n.bk-user-selector-tag.bk-user-selector-tag-warning.bk-user-selector-tag-filled:hover {\n background-color: #FDAF32;\n}\n.bk-user-selector-tag.bk-user-selector-tag-warning:hover:not(.bk-user-selector-tag-filled) {\n background-color: #FFE8C3;\n}\n.bk-user-selector-tag.bk-user-selector-tag-danger {\n color: #ea3636;\n border-color: rgba(234, 53, 54, 0.3);\n background-color: #FEEBEA;\n}\n.bk-user-selector-tag.bk-user-selector-tag-danger.bk-user-selector-tag-filled {\n background-color: #EA3536;\n}\n.bk-user-selector-tag.bk-user-selector-tag-danger.bk-user-selector-tag-filled:hover {\n background-color: #ED5C5D;\n}\n.bk-user-selector-tag.bk-user-selector-tag-danger:hover:not(.bk-user-selector-tag-filled) {\n background-color: #FEDDDC;\n}\n.bk-user-selector-tag:hover {\n background-color: #dcdee5;\n}\n.bk-user-selector-tag.bk-user-selector-tag-filled {\n color: #fff;\n background-color: #979BA5;\n}\n.bk-user-selector-tag.bk-user-selector-tag-filled:hover {\n background-color: #ACAFB6;\n}\n.bk-user-selector-tag.bk-user-selector-tag-stroke {\n padding: 0 9px;\n line-height: 20px;\n border-style: solid;\n border-width: 1px;\n}\n.bk-user-selector-tag.bk-user-selector-tag-closable {\n padding: 0 4px 0 10px;\n}\n.bk-user-selector-tag.bk-user-selector-tag-checkable {\n cursor: pointer;\n background: none;\n}\n.bk-user-selector-tag.bk-user-selector-tag-checkable:hover {\n background: #F0F1F5;\n}\n.bk-user-selector-tag.bk-user-selector-tag-check {\n color: #fff;\n background: #3a84ff;\n}\n.bk-user-selector-tag.bk-user-selector-tag-check:hover {\n color: #fff;\n background: #3a84ff;\n opacity: 1;\n}\n.bk-user-selector-tag--default {\n padding: 0 8px;\n}\n.bk-user-selector-tag--small {\n height: 16px;\n padding: 0 4px;\n line-height: 16px;\n}\n.bk-user-selector-tag--small .bk-user-selector-tag-text {\n font-size: 10px;\n}\n.bk-user-selector-tag-text {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.bk-user-selector-tag-icon {\n flex-shrink: 0;\n margin-right: 4px;\n font-size: 14px;\n line-height: 0;\n}\n.bk-user-selector-tag-close {\n flex-shrink: 0;\n margin-left: 4px;\n font-size: 12px;\n line-height: 0;\n cursor: pointer;\n}\n.me-tag[data-v-9ccd9029] {\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}\n.me-tag[data-v-9ccd9029]:hover {\n color: #3a84ff;\n background-color: #cddffe;\n}\n.me-tag.disabled[data-v-9ccd9029] {\n color: #c4c6cc;\n cursor: not-allowed;\n background-color: #f0f1f5;\n}.dropdown-content[data-v-a4132257] {\n min-height: 40px;\n max-height: 300px;\n padding: 5px 0;\n overflow-y: auto;\n}\n.dropdown-content .no-data[data-v-a4132257] {\n padding: 10px;\n color: #979ba5;\n text-align: center;\n}\n.dropdown-content .user-group .group-header[data-v-a4132257] {\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-a4132257] {\n margin-left: 4px;\n}\n.dropdown-content .user-option[data-v-a4132257] {\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-a4132257]:hover {\n background-color: #f5f7fa;\n}.bk-user-selector-popover.bk-user-selector-pop2-content {\n padding: 0;\n}.user-tag[data-v-51944a49] {\n margin-right: 4px;\n margin-left: 0;\n}\n.user-tag.draggable[data-v-51944a49] {\n cursor: move;\n}\n.user-tag.active[data-v-51944a49] {\n background-color: #e1ecff;\n border-color: #3a84ff;\n}\n.user-tag .tag-content .user-name[data-v-51944a49] {\n overflow: hidden;\n font-size: 12px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}.multiple-selector[data-v-bebe517d] {\n position: relative;\n width: 100%;\n}\n.multiple-selector.is-disabled[data-v-bebe517d] {\n pointer-events: none;\n}\n.multiple-selector .tags-container[data-v-bebe517d] {\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-bebe517d] {\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-bebe517d] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-list[data-v-bebe517d] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-wrapper[data-v-bebe517d] {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n}\n.multiple-selector .search-input[data-v-bebe517d] {\n min-width: 10px;\n height: 28px;\n background: transparent;\n border: none;\n outline: none;\n}\n.multiple-selector .search-input[data-v-bebe517d]::placeholder {\n color: #c4c6cc;\n}\n.multiple-selector .search-input.inline[data-v-bebe517d] {\n min-width: 10px;\n}\n.multiple-selector .search-input.last[data-v-bebe517d], .multiple-selector .search-input.collapsed[data-v-bebe517d] {\n flex: 1;\n min-width: 60px;\n}.single-selector[data-v-67f2ee6a] {\n position: relative;\n width: 100%;\n}\n.single-selector.is-disabled[data-v-67f2ee6a] {\n pointer-events: none;\n}\n.input-container[data-v-67f2ee6a] {\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-67f2ee6a]: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-67f2ee6a] {\n flex: 1;\n height: 30px;\n background: transparent;\n border: none;\n outline: none;\n}\n.search-input[data-v-67f2ee6a]::placeholder {\n color: #c4c6cc;\n}.bk-user-selector[data-v-617ed278] {\n position: relative;\n width: 100%;\n font-size: 12px;\n}\n.bk-user-selector.is-disabled[data-v-617ed278] {\n cursor: not-allowed;\n background-color: #dcdee5;\n}"));
6
+ elementStyle.appendChild(document.createTextNode(".scroll-bar-style::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.scroll-bar-style::-webkit-scrollbar-thumb {\n background: #ddd;\n border-radius: 20px;\n box-shadow: inset 0 0 6px rgba(204, 204, 204, 0.3);\n}\nhtml,\nbody {\n padding: 0;\n margin: 0;\n}\n* {\n box-sizing: border-box;\n}\n/**\n * HTML5 display definitions\n * ==========================================================================\n *\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n /* 1 */\n display: inline-block;\n /* 2 */\n vertical-align: baseline;\n}\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n display: none;\n}\n/**\n * Links\n * ==========================================================================\n *\n * Remove the gray background color from active links in IE 10.\n */\na {\n background-color: transparent;\n}\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\na:active,\na:hover {\n outline: 0;\n}\n/**\n * Text-level semantics\n * ==========================================================================\n *\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n border-bottom: 1px dotted;\n}\n/**\n * Embedded content\n * ==========================================================================\n *\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n border: 0;\n}\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n overflow: hidden;\n}\n/**\n * Grouping content\n * ==========================================================================\n *\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n margin: 1em 40px;\n}\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n height: 0;\n box-sizing: content-box;\n}\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n *\n * Forms\n * ==========================================================================\n *\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n *\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n /* 3 */\n margin: 0;\n /* 2 */\n font: inherit;\n /* 1 */\n color: inherit;\n}\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n overflow: visible;\n}\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n text-transform: none;\n}\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type `input` and others.\n */\nbutton,\nhtml input[type='button'],\ninput[type='reset'],\ninput[type='submit'] {\n /* 3 */\n cursor: pointer;\n /* 2 */\n appearance: button;\n}\n/* Re-set default cursor for disabled elements. */\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n/* Remove inner padding and border in Firefox 4+. */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet.\n */\ninput {\n line-height: normal;\n}\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type='checkbox'],\ninput[type='radio'] {\n /* 2 */\n padding: 0;\n /* 1 */\n box-sizing: border-box;\n}\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type='number']::-webkit-inner-spin-button,\ninput[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n::-ms-clear,\n::-ms-reveal {\n display: none;\n}\ninput[type='text']::-ms-clear {\n display: none;\n}\ninput[type='text']::-ms-reveal {\n display: none;\n}\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\ninput[type='search'] {\n /* 2 */\n box-sizing: content-box;\n /* 1 */\n appearance: textfield;\n}\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type='search']::-webkit-search-cancel-button,\ninput[type='search']::-webkit-search-decoration {\n appearance: none;\n}\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n padding: 0.35em 0.625em 0.75em;\n margin: 0 2px;\n border: 1px solid #c0c0c0;\n}\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n /* 2 */\n padding: 0;\n /* 1 */\n border: 0;\n}\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n overflow: auto;\n}\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n font-weight: bold;\n}\n/**\n* BK-Scroll-Style\n*/\n.bk-scroll-y {\n overflow-y: auto;\n}\n.bk-scroll-y::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.bk-scroll-y::-webkit-scrollbar-thumb {\n background: #ddd;\n border-radius: 20px;\n box-shadow: inset 0 0 6px rgba(204, 204, 204, 0.3);\n}\n.bk-scroll-x {\n overflow-x: auto;\n}\n.bk-scroll-x::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n}\n.bk-scroll-x::-webkit-scrollbar-thumb {\n background: #ddd;\n border-radius: 20px;\n box-shadow: inset 0 0 6px rgba(204, 204, 204, 0.3);\n}\n@keyframes loading-scale-animate {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.6);\n }\n}\n@keyframes fade {\n 100% {\n background-color: transparent;\n }\n}\n.bk-user-selector-transition .bk-user-selector-fade-enter-active,\n.bk-user-selector-transition .bk-user-selector-fade-leave-active {\n transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1);\n}\n.bk-user-selector-transition .bk-user-selector-fade-enter,\n.bk-user-selector-transition .bk-user-selector-fade-leave-to {\n opacity: 0;\n}\n.clearfix-style::after {\n display: block;\n height: 0;\n clear: both;\n font-size: 0;\n content: '';\n visibility: hidden;\n}\n.bk-user-selector-popper {\n display: none;\n padding: 7px 14px;\n font-size: 12px;\n color: #fff;\n background: #333;\n border-radius: 4px;\n}\n.bk-user-selector-popper.light {\n color: #63656e;\n background: #fff;\n box-shadow: #dcdee5 0 0 6px 0;\n}\n.bk-user-selector-popper .bk-user-selector-popper-arrow,\n.bk-user-selector-popper .bk-user-selector-popper-arrow::before {\n position: absolute;\n width: 8px;\n height: 8px;\n background: inherit;\n}\n.bk-user-selector-popper .bk-user-selector-popper-arrow {\n visibility: hidden;\n}\n.bk-user-selector-popper .bk-user-selector-popper-arrow::before {\n content: '';\n visibility: visible;\n transform: rotate(45deg);\n}\n.bk-user-selector-popper[data-show] {\n display: block;\n}\n.bk-user-selector-popper[data-popper-placement^='top'] > .bk-user-selector-popper-arrow {\n bottom: -4px;\n}\n.bk-user-selector-popper[data-popper-placement^='bottom'] > .bk-user-selector-popper-arrow {\n top: -4px;\n}\n.bk-user-selector-popper[data-popper-placement^='left'] > .bk-user-selector-popper-arrow {\n right: -4px;\n}\n.bk-user-selector-popper[data-popper-placement^='right'] > .bk-user-selector-popper-arrow {\n left: -4px;\n}\n.bk-user-selector-loading-wrapper {\n position: static;\n vertical-align: middle;\n}\n.bk-user-selector-loading-wrapper:not(.bk-user-selector-nested-loading):not(.bk-user-selector-directive-loading) {\n display: inline-flex;\n}\n.bk-user-selector-loading-wrapper.bk-user-selector-directive-loading {\n width: 100%;\n height: 100%;\n}\n.bk-user-selector-loading-wrapper.bk-user-selector-directive-loading,\n.bk-user-selector-loading-wrapper.bk-user-selector-nested-loading {\n position: relative;\n}\n.bk-user-selector-loading-wrapper.bk-user-selector-directive-loading.is-block,\n.bk-user-selector-loading-wrapper.bk-user-selector-nested-loading.is-block {\n display: block;\n}\n.bk-user-selector-loading-wrapper.bk-user-selector-directive-loading .bk-user-selector-loading-indicator,\n.bk-user-selector-loading-wrapper.bk-user-selector-nested-loading .bk-user-selector-loading-indicator {\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 11;\n text-align: center;\n transform: translate(-50%, -50%);\n}\n.bk-user-selector-loading-wrapper .dot {\n display: inline-flex;\n width: 14px;\n height: 14px;\n margin-right: 10px;\n border-radius: 50%;\n transform: scale(0.6);\n animation-duration: 0.8s;\n animation-iteration-count: infinite;\n animation-name: loading-scale-animate;\n animation-direction: normal;\n}\n.bk-user-selector-loading-wrapper .oval {\n position: absolute;\n width: 6px;\n height: 8px;\n background-color: #63656e;\n border-radius: 8px;\n animation-duration: 1.2s;\n animation-iteration-count: infinite;\n animation-name: fade;\n transform-origin: center 24px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-mask {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator {\n display: flex;\n line-height: 1;\n text-align: center;\n flex-direction: column;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-success .dot-4 {\n background-color: #2dcb56;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-danger .dot-4 {\n background-color: #ea3636;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-warning .dot-4 {\n background-color: #ff9c01;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-primary .dot-4 {\n background-color: #3a84ff;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-white .dot-4 {\n background-color: white;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .oval,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .dot,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .dot-1,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .dot-2,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .dot-3,\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-default .dot-4 {\n background-color: #c4c6cc;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .dot-1 {\n background-color: #ea3636;\n animation-delay: 0.1s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .dot-2 {\n background-color: #ff9c01;\n animation-delay: 0.25s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .dot-3 {\n background-color: #2dcb56;\n animation-delay: 0.4s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .dot-4 {\n background-color: #3a84ff;\n animation-delay: 0.55s;\n margin-right: 0px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-1 {\n transform: rotate(135deg);\n animation-delay: -0.45s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-2 {\n transform: rotate(90deg);\n animation-delay: -0.6s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-3 {\n transform: rotate(45deg);\n animation-delay: -0.75s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-4 {\n transform: rotate(0deg);\n animation-delay: -0.9s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-5 {\n transform: rotate(-45deg);\n animation-delay: -1.05s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-6 {\n transform: rotate(-90deg);\n animation-delay: -1.2s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-7 {\n transform: rotate(-135deg);\n animation-delay: -1.35s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .oval-8 {\n transform: rotate(-180deg);\n animation-delay: -1.5s;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .bk-user-selector-normal-indicator {\n display: inline-flex;\n justify-content: center;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .bk-user-selector-spin-indicator {\n position: relative;\n display: inline-flex;\n justify-content: center;\n width: 48px;\n height: 48px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-mini .bk-user-selector-spin-indicator {\n height: 16px;\n width: 16px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-mini .dot {\n width: 3px;\n height: 3px;\n margin-right: 3px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-mini .dot.dot-4 {\n margin-right: 0;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-mini .oval {\n width: 2px;\n height: 3px;\n border-radius: 3px;\n transform-origin: center 8px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-mini .bk-user-selector-loading-title {\n font-size: 14px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-small .bk-user-selector-spin-indicator {\n height: 32px;\n width: 32px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-small .dot {\n width: 6px;\n height: 6px;\n margin-right: 6px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-small .dot.dot-4 {\n margin-right: 0;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-small .oval {\n width: 4px;\n height: 5px;\n border-radius: 5px;\n transform-origin: center 16px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-small .bk-user-selector-loading-title {\n font-size: 12px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-large .bk-user-selector-spin-indicator {\n height: 68px;\n width: 68px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-large .dot {\n width: 20px;\n height: 20px;\n margin-right: 12px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-large .dot.dot-4 {\n margin-right: 0;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-large .oval {\n width: 8px;\n height: 12px;\n border-radius: 12px;\n transform-origin: center 34px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator.bk-user-selector-loading-size-large .bk-user-selector-loading-title {\n font-size: 14px;\n}\n.bk-user-selector-loading-wrapper .bk-user-selector-loading-indicator .bk-user-selector-loading-title {\n margin-top: 8px;\n font-size: 14px;\n line-height: normal;\n color: #63656e;\n text-align: center;\n}\n.bk-user-selector-popover.bk-user-selector-pop2-content {\n position: absolute;\n padding: 12px;\n font-size: 12px;\n color: #fff;\n background: #26323d;\n border-radius: 4px;\n box-sizing: border-box;\n}\n.bk-user-selector-popover.bk-user-selector-pop2-content.hidden {\n display: none;\n}\n.bk-user-selector-popover.bk-user-selector-pop2-content .bk-user-selector-pop2-arrow {\n position: absolute;\n z-index: -1;\n width: 8px;\n height: 8px;\n background: #333;\n transform: rotate(45deg);\n}\n.bk-user-selector-popover.bk-user-selector-pop2-content[data-theme^='light'] {\n color: #26323d;\n background-color: #fff;\n box-shadow: 0 0 6px 0 #dcdee5;\n}\n.bk-user-selector-popover.bk-user-selector-pop2-content[data-theme^='light'] .bk-user-selector-pop2-arrow {\n background-color: #fff;\n}\n.text-ov {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.position-relative {\n position: relative;\n}\n.position-absolute {\n position: absolute;\n}\n.overflow-popover-reference {\n width: 100%;\n}\n.bk-user-selector-tag {\n display: inline-flex;\n align-items: center;\n height: 22px;\n padding: 0 10px;\n font-size: 12px;\n line-height: 22px;\n color: #63656e;\n cursor: default;\n background-color: #f0f1f5;\n border-color: rgba(151, 155, 165, 0.3);\n box-sizing: border-box;\n}\n.bk-user-selector-tag.bk-user-selector-tag-success {\n color: #14a568;\n border-color: rgba(20, 165, 104, 0.3);\n background-color: #E4FAF0;\n}\n.bk-user-selector-tag.bk-user-selector-tag-success.bk-user-selector-tag-filled {\n background-color: #14A568;\n}\n.bk-user-selector-tag.bk-user-selector-tag-success.bk-user-selector-tag-filled:hover {\n background-color: #42B685;\n}\n.bk-user-selector-tag.bk-user-selector-tag-success:hover:not(.bk-user-selector-tag-filled) {\n background-color: #C9F5E2;\n}\n.bk-user-selector-tag.bk-user-selector-tag-info {\n color: #3a84ff;\n border-color: rgba(58, 132, 255, 0.3);\n background-color: #EDF4FF;\n}\n.bk-user-selector-tag.bk-user-selector-tag-info.bk-user-selector-tag-filled {\n background-color: #3A84FF;\n}\n.bk-user-selector-tag.bk-user-selector-tag-info.bk-user-selector-tag-filled:hover {\n background-color: #609CFE;\n}\n.bk-user-selector-tag.bk-user-selector-tag-info:hover:not(.bk-user-selector-tag-filled) {\n background-color: #E1ECFF;\n}\n.bk-user-selector-tag.bk-user-selector-tag-warning {\n color: #fe9c00;\n border-color: rgba(254, 165, 0, 0.3);\n background-color: #FFF1DB;\n}\n.bk-user-selector-tag.bk-user-selector-tag-warning.bk-user-selector-tag-filled {\n background-color: #FE9C00;\n}\n.bk-user-selector-tag.bk-user-selector-tag-warning.bk-user-selector-tag-filled:hover {\n background-color: #FDAF32;\n}\n.bk-user-selector-tag.bk-user-selector-tag-warning:hover:not(.bk-user-selector-tag-filled) {\n background-color: #FFE8C3;\n}\n.bk-user-selector-tag.bk-user-selector-tag-danger {\n color: #ea3636;\n border-color: rgba(234, 53, 54, 0.3);\n background-color: #FEEBEA;\n}\n.bk-user-selector-tag.bk-user-selector-tag-danger.bk-user-selector-tag-filled {\n background-color: #EA3536;\n}\n.bk-user-selector-tag.bk-user-selector-tag-danger.bk-user-selector-tag-filled:hover {\n background-color: #ED5C5D;\n}\n.bk-user-selector-tag.bk-user-selector-tag-danger:hover:not(.bk-user-selector-tag-filled) {\n background-color: #FEDDDC;\n}\n.bk-user-selector-tag:hover {\n background-color: #dcdee5;\n}\n.bk-user-selector-tag.bk-user-selector-tag-filled {\n color: #fff;\n background-color: #979BA5;\n}\n.bk-user-selector-tag.bk-user-selector-tag-filled:hover {\n background-color: #ACAFB6;\n}\n.bk-user-selector-tag.bk-user-selector-tag-stroke {\n padding: 0 9px;\n line-height: 20px;\n border-style: solid;\n border-width: 1px;\n}\n.bk-user-selector-tag.bk-user-selector-tag-closable {\n padding: 0 4px 0 10px;\n}\n.bk-user-selector-tag.bk-user-selector-tag-checkable {\n cursor: pointer;\n background: none;\n}\n.bk-user-selector-tag.bk-user-selector-tag-checkable:hover {\n background: #F0F1F5;\n}\n.bk-user-selector-tag.bk-user-selector-tag-check {\n color: #fff;\n background: #3a84ff;\n}\n.bk-user-selector-tag.bk-user-selector-tag-check:hover {\n color: #fff;\n background: #3a84ff;\n opacity: 1;\n}\n.bk-user-selector-tag--default {\n padding: 0 8px;\n}\n.bk-user-selector-tag--small {\n height: 16px;\n padding: 0 4px;\n line-height: 16px;\n}\n.bk-user-selector-tag--small .bk-user-selector-tag-text {\n font-size: 10px;\n}\n.bk-user-selector-tag-text {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.bk-user-selector-tag-icon {\n flex-shrink: 0;\n margin-right: 4px;\n font-size: 14px;\n line-height: 0;\n}\n.bk-user-selector-tag-close {\n flex-shrink: 0;\n margin-left: 4px;\n font-size: 12px;\n line-height: 0;\n cursor: pointer;\n}\n.me-tag[data-v-9ccd9029] {\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}\n.me-tag[data-v-9ccd9029]:hover {\n color: #3a84ff;\n background-color: #cddffe;\n}\n.me-tag.disabled[data-v-9ccd9029] {\n color: #c4c6cc;\n cursor: not-allowed;\n background-color: #f0f1f5;\n}.dropdown-content[data-v-a4132257] {\n min-height: 40px;\n max-height: 300px;\n padding: 5px 0;\n overflow-y: auto;\n}\n.dropdown-content .no-data[data-v-a4132257] {\n padding: 10px;\n color: #979ba5;\n text-align: center;\n}\n.dropdown-content .user-group .group-header[data-v-a4132257] {\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-a4132257] {\n margin-left: 4px;\n}\n.dropdown-content .user-option[data-v-a4132257] {\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-a4132257]:hover {\n background-color: #f5f7fa;\n}.bk-user-selector-popover.bk-user-selector-pop2-content {\n padding: 0;\n}.user-tag[data-v-51944a49] {\n margin-right: 4px;\n margin-left: 0;\n}\n.user-tag.draggable[data-v-51944a49] {\n cursor: move;\n}\n.user-tag.active[data-v-51944a49] {\n background-color: #e1ecff;\n border-color: #3a84ff;\n}\n.user-tag .tag-content .user-name[data-v-51944a49] {\n overflow: hidden;\n font-size: 12px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}.multiple-selector[data-v-7ff53892] {\n position: relative;\n width: 100%;\n}\n.multiple-selector.is-disabled[data-v-7ff53892] {\n pointer-events: none;\n}\n.multiple-selector .tags-container[data-v-7ff53892] {\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-7ff53892] {\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-7ff53892] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-list[data-v-7ff53892] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-wrapper[data-v-7ff53892] {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n}\n.multiple-selector .search-input[data-v-7ff53892] {\n min-width: 10px;\n height: 28px;\n background: transparent;\n border: none;\n outline: none;\n}\n.multiple-selector .search-input[data-v-7ff53892]::placeholder {\n color: #c4c6cc;\n}\n.multiple-selector .search-input.inline[data-v-7ff53892] {\n min-width: 10px;\n}\n.multiple-selector .search-input.last[data-v-7ff53892], .multiple-selector .search-input.collapsed[data-v-7ff53892] {\n flex: 1;\n min-width: 60px;\n}.single-selector[data-v-d56195a1] {\n position: relative;\n width: 100%;\n}\n.single-selector.is-disabled[data-v-d56195a1] {\n pointer-events: none;\n}\n.input-container[data-v-d56195a1] {\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-d56195a1]: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-d56195a1] {\n flex: 1;\n height: 30px;\n background: transparent;\n border: none;\n outline: none;\n}\n.search-input[data-v-d56195a1]::placeholder {\n color: #c4c6cc;\n}.bk-user-selector[data-v-812cbe5a] {\n position: relative;\n width: 100%;\n font-size: 12px;\n}\n.bk-user-selector.is-disabled[data-v-812cbe5a] {\n cursor: not-allowed;\n background-color: #dcdee5;\n}"));
7
7
  document.head.appendChild(elementStyle);
8
8
  }
9
9
  } catch (e) {
@@ -316,11 +316,6 @@ var lesscodeCustomComponentLibrary = function(exports) {
316
316
  function getCurrentScope() {
317
317
  return activeEffectScope;
318
318
  }
319
- function onScopeDispose(fn, failSilently = false) {
320
- if (activeEffectScope) {
321
- activeEffectScope.cleanups.push(fn);
322
- }
323
- }
324
319
  let activeSub;
325
320
  const pausedQueueEffects = /* @__PURE__ */ new WeakSet();
326
321
  class ReactiveEffect {
@@ -5053,9 +5048,6 @@ var lesscodeCustomComponentLibrary = function(exports) {
5053
5048
  return ctx;
5054
5049
  }
5055
5050
  };
5056
- function watchEffect(effect2, options) {
5057
- return doWatch(effect2, null, options);
5058
- }
5059
5051
  function watch(source, cb, options) {
5060
5052
  return doWatch(source, cb, options);
5061
5053
  }
@@ -17303,10 +17295,15 @@ ${$(r2)}`), n2;
17303
17295
  const jsonpRequest = (requestUrl, options = {}) => {
17304
17296
  return new Promise((resolve2, reject) => {
17305
17297
  const url = unref(requestUrl);
17306
- const { timeout = 1e3 * 60 * 2, params } = options;
17298
+ const { timeout = 1e3 * 60 * 2, params, withCredentials = true } = options;
17307
17299
  const callbackName = generateCallbackName();
17308
17300
  const script = document.createElement("script");
17309
17301
  let timeoutId;
17302
+ if (withCredentials) {
17303
+ script.crossOrigin = "use-credentials";
17304
+ } else {
17305
+ script.crossOrigin = "anonymous";
17306
+ }
17310
17307
  const cleanup = () => {
17311
17308
  if (timeoutId) {
17312
17309
  clearTimeout(timeoutId);
@@ -17336,48 +17333,6 @@ ${$(r2)}`), n2;
17336
17333
  document.head.appendChild(script);
17337
17334
  });
17338
17335
  };
17339
- const useJSONP = (url, options = {}) => {
17340
- const data2 = shallowRef(null);
17341
- const loading2 = shallowRef(false);
17342
- const error2 = shallowRef(null);
17343
- let abortFlag = false;
17344
- const executeRequest = async (requestUrl) => {
17345
- if (!requestUrl) return;
17346
- loading2.value = true;
17347
- error2.value = null;
17348
- abortFlag = false;
17349
- try {
17350
- const result = await jsonpRequest(requestUrl, options);
17351
- if (!abortFlag) {
17352
- data2.value = result;
17353
- }
17354
- } catch (err) {
17355
- if (!abortFlag) {
17356
- const errorObj = err instanceof Error ? err : new Error(String(err));
17357
- error2.value = errorObj;
17358
- }
17359
- } finally {
17360
- if (!abortFlag) {
17361
- loading2.value = false;
17362
- }
17363
- }
17364
- };
17365
- const stopWatcher = watchEffect(() => {
17366
- executeRequest(unref(url));
17367
- });
17368
- onScopeDispose(() => {
17369
- abortFlag = true;
17370
- stopWatcher();
17371
- });
17372
- return {
17373
- data: data2,
17374
- loading: loading2,
17375
- error: error2,
17376
- refetch: () => {
17377
- executeRequest(unref(url));
17378
- }
17379
- };
17380
- };
17381
17336
  const getTenants = async (apiBaseUrl, tenantId) => {
17382
17337
  if (!apiBaseUrl || !tenantId) {
17383
17338
  console.warn("获取租户信息需要提供有效的apiBaseUrl和租户ID");
@@ -17471,10 +17426,18 @@ ${$(r2)}`), n2;
17471
17426
  return [];
17472
17427
  }
17473
17428
  };
17474
- const formatUsers = (users) => {
17429
+ const formatUsers = (users, enableMultiTenantMode = true) => {
17475
17430
  if (!users || !Array.isArray(users)) return [];
17431
+ if (!enableMultiTenantMode) {
17432
+ return users.map((user) => ({
17433
+ ...user,
17434
+ id: user.username,
17435
+ name: `${user.display_name}(${user.username})`,
17436
+ tenantId: user.owner_tenant_id
17437
+ }));
17438
+ }
17476
17439
  return users.map((user) => ({
17477
- id: user.bk_username || user.username,
17440
+ id: user.bk_username,
17478
17441
  name: user.display_name,
17479
17442
  tenantId: user.owner_tenant_id,
17480
17443
  ...user
@@ -17482,7 +17445,7 @@ ${$(r2)}`), n2;
17482
17445
  };
17483
17446
  const getUserList = async (url, params) => {
17484
17447
  const { userIds, keyword, pageSize = 20, page, appCode } = params;
17485
- const { data: userList } = await useJSONP(url, {
17448
+ const data2 = await jsonpRequest(url, {
17486
17449
  params: {
17487
17450
  exact_lookups: (userIds == null ? void 0 : userIds.join(",")) || void 0,
17488
17451
  fuzzy_lookups: keyword || void 0,
@@ -17491,7 +17454,7 @@ ${$(r2)}`), n2;
17491
17454
  app_code: appCode || "bk-magicbox"
17492
17455
  }
17493
17456
  });
17494
- return userList.value || [];
17457
+ return (data2 == null ? void 0 : data2.results) || [];
17495
17458
  };
17496
17459
  const useTenantData = (apiBaseUrl, tenantId, enableMultiTenantMode = true) => {
17497
17460
  const tenants = ref({});
@@ -20322,7 +20285,7 @@ ${$(r2)}`), n2;
20322
20285
  }
20323
20286
  return Math.max(1, visibleCount);
20324
20287
  };
20325
- const useUserSearch = (apiBaseUrl, tenantId) => {
20288
+ const useUserSearch = (apiBaseUrl, tenantId, enableMultiTenantMode = true) => {
20326
20289
  const searchResults = ref([]);
20327
20290
  const loading2 = ref(false);
20328
20291
  const searchQuery = ref("");
@@ -20341,9 +20304,9 @@ ${$(r2)}`), n2;
20341
20304
  apiBaseUrl,
20342
20305
  tenantId,
20343
20306
  keyword,
20344
- enableMultiTenantMode: true
20307
+ enableMultiTenantMode
20345
20308
  });
20346
- searchResults.value = formatUsers(results);
20309
+ searchResults.value = formatUsers(results, enableMultiTenantMode);
20347
20310
  } catch (error2) {
20348
20311
  console.error("用户搜索失败:", error2);
20349
20312
  searchResults.value = [];
@@ -20775,7 +20738,7 @@ ${$(r2)}`), n2;
20775
20738
  searchQuery,
20776
20739
  // clearSearch,
20777
20740
  handleSearchInput
20778
- } = useUserSearch(props2.apiBaseUrl, props2.tenantId);
20741
+ } = useUserSearch(props2.apiBaseUrl, props2.tenantId, props2.enableMultiTenantMode);
20779
20742
  const containerRef = ref(null);
20780
20743
  const tagsContainerRef = ref(null);
20781
20744
  const sortableContainerRef = ref(null);
@@ -20902,7 +20865,7 @@ ${$(r2)}`), n2;
20902
20865
  usersList: [props2.currentUserId],
20903
20866
  enableMultiTenantMode: props2.enableMultiTenantMode
20904
20867
  });
20905
- const formattedUsers = formatUsers(result);
20868
+ const formattedUsers = formatUsers(result, props2.enableMultiTenantMode);
20906
20869
  if (formattedUsers.length > 0) {
20907
20870
  if (!props2.selectedUsers.some((item) => item.id === formattedUsers[0].id)) {
20908
20871
  emit2("update:selectedUsers", [...props2.selectedUsers, formattedUsers[0]]);
@@ -20930,7 +20893,7 @@ ${$(r2)}`), n2;
20930
20893
  usersList: users,
20931
20894
  enableMultiTenantMode: props2.enableMultiTenantMode
20932
20895
  });
20933
- const formattedUsers = formatUsers(result);
20896
+ const formattedUsers = formatUsers(result, props2.enableMultiTenantMode);
20934
20897
  if (formattedUsers.length > 0) {
20935
20898
  const updatedUsers = [...props2.selectedUsers, ...formattedUsers];
20936
20899
  emit2("update:selectedUsers", updatedUsers);
@@ -21244,7 +21207,7 @@ ${$(r2)}`), n2;
21244
21207
  };
21245
21208
  }
21246
21209
  });
21247
- const MultipleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-bebe517d"]]);
21210
+ const MultipleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-7ff53892"]]);
21248
21211
  const _hoisted_1 = { class: "input-container" };
21249
21212
  const _hoisted_2 = ["placeholder"];
21250
21213
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
@@ -21305,7 +21268,9 @@ ${$(r2)}`), n2;
21305
21268
  usersList: [props2.modelValue],
21306
21269
  enableMultiTenantMode: props2.enableMultiTenantMode
21307
21270
  });
21308
- options.value = formatUsers(result).filter((user) => !props2.excludeUserIds.includes(user.id));
21271
+ options.value = formatUsers(result, props2.enableMultiTenantMode).filter(
21272
+ (user) => !props2.excludeUserIds.includes(user.id)
21273
+ );
21309
21274
  if (props2.userGroup.length > 0) {
21310
21275
  const groupResult = props2.userGroup.filter((group) => group.id == props2.modelValue);
21311
21276
  options.value = groupResult.map((group) => ({
@@ -21336,7 +21301,7 @@ ${$(r2)}`), n2;
21336
21301
  usersList: [props2.currentUserId],
21337
21302
  enableMultiTenantMode: props2.enableMultiTenantMode
21338
21303
  });
21339
- const formattedResults = formatUsers(result);
21304
+ const formattedResults = formatUsers(result, props2.enableMultiTenantMode);
21340
21305
  if (formattedResults.length > 0) {
21341
21306
  options.value = formattedResults.filter((user) => !props2.excludeUserIds.includes(user.id));
21342
21307
  addUser(formattedResults[0]);
@@ -21358,7 +21323,7 @@ ${$(r2)}`), n2;
21358
21323
  keyword,
21359
21324
  enableMultiTenantMode: props2.enableMultiTenantMode
21360
21325
  });
21361
- options.value = formatUsers(result).filter((user) => !selectedUser.value || user.id !== selectedUser.value).filter((user) => !props2.excludeUserIds.includes(user.id));
21326
+ options.value = formatUsers(result, props2.enableMultiTenantMode).filter((user) => !selectedUser.value || user.id !== selectedUser.value).filter((user) => !props2.excludeUserIds.includes(user.id));
21362
21327
  } catch (error2) {
21363
21328
  console.error("获取用户列表失败:", error2);
21364
21329
  options.value = [];
@@ -21462,7 +21427,7 @@ ${$(r2)}`), n2;
21462
21427
  };
21463
21428
  }
21464
21429
  });
21465
- const SingleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-67f2ee6a"]]);
21430
+ const SingleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-d56195a1"]]);
21466
21431
  const _sfc_main = /* @__PURE__ */ defineComponent({
21467
21432
  ...{
21468
21433
  name: "BkUserSelector"
@@ -21520,7 +21485,7 @@ ${$(r2)}`), n2;
21520
21485
  usersList: ids,
21521
21486
  enableMultiTenantMode: props2.enableMultiTenantMode
21522
21487
  });
21523
- selectedUsers.value = [...selected, ...formatUsers(result)];
21488
+ selectedUsers.value = [...selected, ...formatUsers(result, props2.enableMultiTenantMode)];
21524
21489
  } catch (error2) {
21525
21490
  console.error("获取选中用户信息失败:", error2);
21526
21491
  }
@@ -21627,7 +21592,7 @@ ${$(r2)}`), n2;
21627
21592
  };
21628
21593
  }
21629
21594
  });
21630
- const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-617ed278"]]);
21595
+ const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-812cbe5a"]]);
21631
21596
  const vue2 = {
21632
21597
  model: {
21633
21598
  prop: "modelValue",