bkui-vue 0.0.2-beta.74 → 0.0.2-beta.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/lib/affix/index.js +1 -319
  2. package/lib/alert/index.js +1 -215
  3. package/lib/animate-number/index.js +1 -155
  4. package/lib/backtop/backtop.variable.css +3 -3
  5. package/lib/backtop/index.js +1 -188
  6. package/lib/badge/index.js +1 -236
  7. package/lib/breadcrumb/index.js +1 -309
  8. package/lib/button/index.js +1 -321
  9. package/lib/card/index.js +1 -274
  10. package/lib/cascader/index.js +2 -2019
  11. package/lib/cascader/index.js.LICENSE.txt +1 -0
  12. package/lib/checkbox/index.js +1 -542
  13. package/lib/code-diff/index.js +1 -5501
  14. package/lib/collapse/index.js +1 -518
  15. package/lib/collapse-transition/index.js +1 -178
  16. package/lib/color-picker/index.js +1 -2662
  17. package/lib/components.js +1 -530
  18. package/lib/config-provider/index.js +1 -317
  19. package/lib/container/index.js +1 -343
  20. package/lib/date-picker/index.js +1 -5481
  21. package/lib/dialog/index.js +2 -1266
  22. package/lib/dialog/index.js.LICENSE.txt +1 -0
  23. package/lib/directives/index.js +2 -1335
  24. package/lib/directives/index.js.LICENSE.txt +14 -0
  25. package/lib/dist.index.js +1 -87
  26. package/lib/divider/index.js +1 -169
  27. package/lib/dropdown/index.js +1 -369
  28. package/lib/exception/index.js +1 -385
  29. package/lib/fixed-navbar/index.js +1 -154
  30. package/lib/form/index.js +1 -918
  31. package/lib/hooks.js +1 -73
  32. package/lib/icon/angle-double-down-line.js +1 -481
  33. package/lib/icon/angle-double-left-line.js +1 -481
  34. package/lib/icon/angle-double-left.js +1 -481
  35. package/lib/icon/angle-double-right-line.js +1 -481
  36. package/lib/icon/angle-double-right.js +1 -481
  37. package/lib/icon/angle-double-up-line.js +1 -481
  38. package/lib/icon/angle-down-fill.js +1 -481
  39. package/lib/icon/angle-down-line.js +1 -481
  40. package/lib/icon/angle-down.js +1 -481
  41. package/lib/icon/angle-left.js +1 -481
  42. package/lib/icon/angle-right.js +1 -481
  43. package/lib/icon/angle-up-fill.js +1 -481
  44. package/lib/icon/angle-up.js +1 -481
  45. package/lib/icon/archive-fill.js +1 -481
  46. package/lib/icon/arrows-left.js +1 -481
  47. package/lib/icon/arrows-right.js +1 -481
  48. package/lib/icon/assistant.js +1 -481
  49. package/lib/icon/audio-fill.js +1 -481
  50. package/lib/icon/bk.js +1 -481
  51. package/lib/icon/circle.js +1 -481
  52. package/lib/icon/close-line.js +1 -481
  53. package/lib/icon/close.js +1 -481
  54. package/lib/icon/code.js +1 -481
  55. package/lib/icon/cog-shape.js +1 -481
  56. package/lib/icon/collapse-left.js +1 -481
  57. package/lib/icon/copy-shape.js +1 -481
  58. package/lib/icon/copy.js +1 -481
  59. package/lib/icon/data-shape.js +1 -481
  60. package/lib/icon/del.js +1 -481
  61. package/lib/icon/doc-fill.js +1 -481
  62. package/lib/icon/done.js +1 -481
  63. package/lib/icon/down-shape.js +1 -481
  64. package/lib/icon/down-small.js +1 -481
  65. package/lib/icon/edit-line.js +1 -481
  66. package/lib/icon/ellipsis.js +1 -481
  67. package/lib/icon/enlarge-line.js +1 -481
  68. package/lib/icon/error.js +1 -481
  69. package/lib/icon/excel-fill.js +1 -481
  70. package/lib/icon/exclamation-circle-shape.js +1 -481
  71. package/lib/icon/eye.js +1 -481
  72. package/lib/icon/filliscreen-line.js +1 -481
  73. package/lib/icon/fix-line.js +1 -481
  74. package/lib/icon/fix-shape.js +1 -481
  75. package/lib/icon/folder-open.js +1 -481
  76. package/lib/icon/folder-shape-open.js +1 -481
  77. package/lib/icon/folder-shape.js +1 -481
  78. package/lib/icon/folder.js +1 -481
  79. package/lib/icon/funnel.js +1 -481
  80. package/lib/icon/help-document-fill.js +1 -481
  81. package/lib/icon/help-fill.js +1 -481
  82. package/lib/icon/help.js +1 -481
  83. package/lib/icon/image-fill.js +1 -527
  84. package/lib/icon/img-error.js +1 -527
  85. package/lib/icon/img-placehoulder.js +1 -527
  86. package/lib/icon/index.js +1 -2367
  87. package/lib/icon/info-line.js +1 -527
  88. package/lib/icon/info.js +1 -527
  89. package/lib/icon/left-shape.js +1 -527
  90. package/lib/icon/left-turn-line.js +1 -527
  91. package/lib/icon/narrow-line.js +1 -527
  92. package/lib/icon/original.js +1 -527
  93. package/lib/icon/pdf-fill.js +1 -527
  94. package/lib/icon/play-shape.js +1 -527
  95. package/lib/icon/plus.js +1 -527
  96. package/lib/icon/ppt-fill.js +1 -527
  97. package/lib/icon/qq.js +1 -527
  98. package/lib/icon/right-shape.js +1 -527
  99. package/lib/icon/right-turn-line.js +1 -527
  100. package/lib/icon/search.js +1 -527
  101. package/lib/icon/share.js +1 -527
  102. package/lib/icon/spinner.js +1 -527
  103. package/lib/icon/success.js +1 -527
  104. package/lib/icon/switcher-loading.js +1 -527
  105. package/lib/icon/text-file.js +1 -527
  106. package/lib/icon/text-fill.js +1 -527
  107. package/lib/icon/transfer.js +1 -527
  108. package/lib/icon/tree-application-shape.js +1 -527
  109. package/lib/icon/unfull-screen.js +1 -527
  110. package/lib/icon/unvisible.js +1 -527
  111. package/lib/icon/up-shape.js +1 -527
  112. package/lib/icon/upload.js +1 -527
  113. package/lib/icon/video-fill.js +1 -527
  114. package/lib/icon/warn.js +1 -527
  115. package/lib/icon/weixin-pro.js +1 -527
  116. package/lib/icon/weixin.js +1 -527
  117. package/lib/image/index.js +1 -593
  118. package/lib/index.js +1 -97
  119. package/lib/info-box/index.js +2 -1456
  120. package/lib/info-box/index.js.LICENSE.txt +1 -0
  121. package/lib/input/index.js +2 -1528
  122. package/lib/input/index.js.LICENSE.txt +1 -0
  123. package/lib/link/index.js +1 -160
  124. package/lib/loading/index.js +1 -379
  125. package/lib/locale/index.js +1 -465
  126. package/lib/menu/index.js +1 -725
  127. package/lib/message/index.js +2 -1790
  128. package/lib/message/index.js.LICENSE.txt +6 -0
  129. package/lib/modal/index.js +1 -337
  130. package/lib/navigation/index.js +1 -367
  131. package/lib/notify/index.js +1 -394
  132. package/lib/overflow-title/index.js +1 -485
  133. package/lib/pagination/index.js +1 -880
  134. package/lib/plugin-popover/index.js +1 -4067
  135. package/lib/plugins/index.js +1 -63
  136. package/lib/pop-confirm/index.js +1 -273
  137. package/lib/popover/index.js +1 -4075
  138. package/lib/popover2/index.js +1 -107
  139. package/lib/preset.js +1 -93
  140. package/lib/process/index.js +2 -1099
  141. package/lib/process/index.js.LICENSE.txt +1 -0
  142. package/lib/progress/index.js +1 -428
  143. package/lib/radio/index.js +1 -627
  144. package/lib/rate/index.js +1 -338
  145. package/lib/resize-layout/index.js +1 -430
  146. package/lib/search-select/index.js +2 -3036
  147. package/lib/search-select/index.js.LICENSE.txt +1 -0
  148. package/lib/select/index.js +2 -2571
  149. package/lib/select/index.js.LICENSE.txt +1 -0
  150. package/lib/select/select.variable.css +24 -24
  151. package/lib/shared/index.js +1 -2865
  152. package/lib/sideslider/index.js +2 -1005
  153. package/lib/sideslider/index.js.LICENSE.txt +1 -0
  154. package/lib/slider/index.js +2 -1629
  155. package/lib/slider/index.js.LICENSE.txt +1 -0
  156. package/lib/steps/index.js +2 -1163
  157. package/lib/steps/index.js.LICENSE.txt +1 -0
  158. package/lib/styles/mixins/animate.css +21 -0
  159. package/lib/styles/mixins/animate.less +31 -0
  160. package/lib/styles/mixins/animate.variable.css +143 -0
  161. package/lib/swiper/index.js +1 -336
  162. package/lib/switcher/index.js +1 -277
  163. package/lib/tab/index.js +1 -859
  164. package/lib/table/index.js +1 -6568
  165. package/lib/table-column/index.js +1 -730
  166. package/lib/tag/index.js +1 -233
  167. package/lib/tag-input/index.js +1 -1652
  168. package/lib/time-picker/index.js +1 -71
  169. package/lib/timeline/index.js +1 -242
  170. package/lib/transfer/index.js +1 -673
  171. package/lib/tree/index.js +1 -2625
  172. package/lib/upload/index.js +2 -3193
  173. package/lib/upload/index.js.LICENSE.txt +1 -0
  174. package/lib/virtual-render/index.js +1 -748
  175. package/package.json +1 -1
@@ -1,1652 +1 @@
1
- import * as __WEBPACK_EXTERNAL_MODULE__shared_65459f0a__ from "../shared";
2
- import * as __WEBPACK_EXTERNAL_MODULE_vue__ from "vue";
3
- import * as __WEBPACK_EXTERNAL_MODULE_lodash__ from "lodash";
4
- import * as __WEBPACK_EXTERNAL_MODULE__config_provider_9d0186d9__ from "../config-provider";
5
- import * as __WEBPACK_EXTERNAL_MODULE__directives_9cc9ba10__ from "../directives";
6
- import * as __WEBPACK_EXTERNAL_MODULE__icon_85385c3e__ from "../icon";
7
- import * as __WEBPACK_EXTERNAL_MODULE__loading_4d683b23__ from "../loading";
8
- import * as __WEBPACK_EXTERNAL_MODULE__popover_cf5f8dce__ from "../popover";
9
- import * as __WEBPACK_EXTERNAL_MODULE_vue_types_22de060a__ from "vue-types";
10
- /******/ // The require scope
11
- /******/ var __webpack_require__ = {};
12
- /******/
13
- /************************************************************************/
14
- /******/ /* webpack/runtime/define property getters */
15
- /******/ (() => {
16
- /******/ // define getter functions for harmony exports
17
- /******/ __webpack_require__.d = (exports, definition) => {
18
- /******/ for(var key in definition) {
19
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
20
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
21
- /******/ }
22
- /******/ }
23
- /******/ };
24
- /******/ })();
25
- /******/
26
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
27
- /******/ (() => {
28
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
29
- /******/ })();
30
- /******/
31
- /************************************************************************/
32
- var __webpack_exports__ = {};
33
-
34
- // EXPORTS
35
- __webpack_require__.d(__webpack_exports__, {
36
- Z: () => (/* binding */ src)
37
- });
38
-
39
- ;// CONCATENATED MODULE: external "../shared"
40
- var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
41
- var y = x => () => x
42
- const external_shared_namespaceObject = x({ ["PropTypes"]: () => __WEBPACK_EXTERNAL_MODULE__shared_65459f0a__.PropTypes, ["checkOverflow"]: () => __WEBPACK_EXTERNAL_MODULE__shared_65459f0a__.checkOverflow, ["useFormItem"]: () => __WEBPACK_EXTERNAL_MODULE__shared_65459f0a__.useFormItem, ["withInstall"]: () => __WEBPACK_EXTERNAL_MODULE__shared_65459f0a__.withInstall });
43
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/typeof.js
44
- function _typeof(obj) {
45
- "@babel/helpers - typeof";
46
-
47
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
48
- return typeof obj;
49
- } : function (obj) {
50
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
51
- }, _typeof(obj);
52
- }
53
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
54
- function _arrayWithHoles(arr) {
55
- if (Array.isArray(arr)) return arr;
56
- }
57
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
58
- function _iterableToArrayLimit(arr, i) {
59
- var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
60
- if (null != _i) {
61
- var _s,
62
- _e,
63
- _x,
64
- _r,
65
- _arr = [],
66
- _n = !0,
67
- _d = !1;
68
- try {
69
- if (_x = (_i = _i.call(arr)).next, 0 === i) {
70
- if (Object(_i) !== _i) return;
71
- _n = !1;
72
- } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
73
- } catch (err) {
74
- _d = !0, _e = err;
75
- } finally {
76
- try {
77
- if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
78
- } finally {
79
- if (_d) throw _e;
80
- }
81
- }
82
- return _arr;
83
- }
84
- }
85
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
86
- function _arrayLikeToArray(arr, len) {
87
- if (len == null || len > arr.length) len = arr.length;
88
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
89
- return arr2;
90
- }
91
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
92
-
93
- function _unsupportedIterableToArray(o, minLen) {
94
- if (!o) return;
95
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
96
- var n = Object.prototype.toString.call(o).slice(8, -1);
97
- if (n === "Object" && o.constructor) n = o.constructor.name;
98
- if (n === "Map" || n === "Set") return Array.from(o);
99
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
100
- }
101
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
102
- function _nonIterableRest() {
103
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
104
- }
105
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js
106
-
107
-
108
-
109
-
110
- function _slicedToArray(arr, i) {
111
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
112
- }
113
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
114
-
115
- function _arrayWithoutHoles(arr) {
116
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
117
- }
118
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js
119
- function _iterableToArray(iter) {
120
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
121
- }
122
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
123
- function _nonIterableSpread() {
124
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
125
- }
126
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
127
-
128
-
129
-
130
-
131
- function _toConsumableArray(arr) {
132
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
133
- }
134
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js
135
-
136
- function _toPrimitive(input, hint) {
137
- if (_typeof(input) !== "object" || input === null) return input;
138
- var prim = input[Symbol.toPrimitive];
139
- if (prim !== undefined) {
140
- var res = prim.call(input, hint || "default");
141
- if (_typeof(res) !== "object") return res;
142
- throw new TypeError("@@toPrimitive must return a primitive value.");
143
- }
144
- return (hint === "string" ? String : Number)(input);
145
- }
146
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
147
-
148
-
149
- function _toPropertyKey(arg) {
150
- var key = _toPrimitive(arg, "string");
151
- return _typeof(key) === "symbol" ? key : String(key);
152
- }
153
- ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/defineProperty.js
154
-
155
- function _defineProperty(obj, key, value) {
156
- key = _toPropertyKey(key);
157
- if (key in obj) {
158
- Object.defineProperty(obj, key, {
159
- value: value,
160
- enumerable: true,
161
- configurable: true,
162
- writable: true
163
- });
164
- } else {
165
- obj[key] = value;
166
- }
167
- return obj;
168
- }
169
- ;// CONCATENATED MODULE: external "vue"
170
- var external_vue_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
171
- var external_vue_y = x => () => x
172
- const external_vue_namespaceObject = external_vue_x({ ["computed"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.computed, ["createTextVNode"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.createTextVNode, ["createVNode"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.createVNode, ["defineComponent"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.defineComponent, ["h"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.h, ["markRaw"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.markRaw, ["mergeProps"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.mergeProps, ["nextTick"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.nextTick, ["onMounted"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.onMounted, ["reactive"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.reactive, ["ref"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.ref, ["resolveDirective"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.resolveDirective, ["toRefs"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.toRefs, ["vModelText"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.vModelText, ["vShow"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.vShow, ["watch"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.watch, ["withDirectives"]: () => __WEBPACK_EXTERNAL_MODULE_vue__.withDirectives });
173
- ;// CONCATENATED MODULE: external "lodash"
174
- var external_lodash_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
175
- var external_lodash_y = x => () => x
176
- const external_lodash_namespaceObject = external_lodash_x({ ["debounce"]: () => __WEBPACK_EXTERNAL_MODULE_lodash__.debounce });
177
- ;// CONCATENATED MODULE: external "../config-provider"
178
- var external_config_provider_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
179
- var external_config_provider_y = x => () => x
180
- const external_config_provider_namespaceObject = external_config_provider_x({ ["useLocale"]: () => __WEBPACK_EXTERNAL_MODULE__config_provider_9d0186d9__.useLocale, ["usePrefix"]: () => __WEBPACK_EXTERNAL_MODULE__config_provider_9d0186d9__.usePrefix });
181
- ;// CONCATENATED MODULE: external "../directives"
182
- var external_directives_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
183
- var external_directives_y = x => () => x
184
- const external_directives_namespaceObject = external_directives_x({ ["bkTooltips"]: () => __WEBPACK_EXTERNAL_MODULE__directives_9cc9ba10__.bkTooltips });
185
- ;// CONCATENATED MODULE: external "../icon"
186
- var external_icon_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
187
- var external_icon_y = x => () => x
188
- const external_icon_namespaceObject = external_icon_x({ ["Close"]: () => __WEBPACK_EXTERNAL_MODULE__icon_85385c3e__.Close, ["Error"]: () => __WEBPACK_EXTERNAL_MODULE__icon_85385c3e__.Error });
189
- ;// CONCATENATED MODULE: external "../loading"
190
- var external_loading_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
191
- var external_loading_y = x => () => x
192
- const external_loading_namespaceObject = external_loading_x({ ["BkLoadingSize"]: () => __WEBPACK_EXTERNAL_MODULE__loading_4d683b23__.BkLoadingSize, ["default"]: () => __WEBPACK_EXTERNAL_MODULE__loading_4d683b23__["default"] });
193
- ;// CONCATENATED MODULE: external "../popover"
194
- var external_popover_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
195
- var external_popover_y = x => () => x
196
- const external_popover_namespaceObject = external_popover_x({ ["default"]: () => __WEBPACK_EXTERNAL_MODULE__popover_cf5f8dce__["default"] });
197
- ;// CONCATENATED MODULE: ../../packages/tag-input/src/common.ts
198
-
199
- /*
200
- * Tencent is pleased to support the open source community by making
201
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
202
- *
203
- * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
204
- *
205
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
206
- *
207
- * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
208
- *
209
- * ---------------------------------------------------
210
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
211
- * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
212
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
213
- * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
214
- *
215
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
216
- * the Software.
217
- *
218
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
219
- * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
220
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
221
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
222
- * IN THE SOFTWARE.
223
- */
224
-
225
- var INPUT_MIN_WIDTH = 12;
226
- function useDebouncedRef(value) {
227
- var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;
228
- var timeout;
229
- var innerValue = value;
230
- return customRef(function (track, trigger) {
231
- return {
232
- get: function get() {
233
- track();
234
- return innerValue;
235
- },
236
- set: function set(newValue) {
237
- clearTimeout(timeout);
238
- timeout = setTimeout(function () {
239
- innerValue = newValue;
240
- trigger();
241
- }, delay);
242
- }
243
- };
244
- });
245
- }
246
- function usePage(pageSize) {
247
- var state = (0,external_vue_namespaceObject.reactive)({
248
- curPage: 1,
249
- totalSize: 0,
250
- totalPage: 0,
251
- pageSize: pageSize,
252
- isPageLoading: false,
253
- curPageList: [],
254
- renderListPaged: []
255
- });
256
- // 初始化分页信息
257
- var initPage = function initPage() {
258
- var _state$renderListPage, _state$curPageList;
259
- var allList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
260
- state.curPage = 1;
261
- state.totalSize = allList.length;
262
- state.totalPage = Math.ceil(state.totalSize / state.pageSize) || 1;
263
- var list = [];
264
- // 小于等于0会无限循环
265
- if (state.pageSize > 0) {
266
- for (var i = 0; i < state.totalSize; i += state.pageSize) {
267
- list.push(allList.slice(i, i + state.pageSize));
268
- }
269
- }
270
- (_state$renderListPage = state.renderListPaged).splice.apply(_state$renderListPage, [0, state.renderListPaged.length].concat(list));
271
- (_state$curPageList = state.curPageList).splice.apply(_state$curPageList, [0, state.curPageList.length].concat(_toConsumableArray(state.renderListPaged[state.curPage - 1] || [])));
272
- };
273
- var pageChange = function pageChange(page) {
274
- var _state$curPageList2;
275
- state.curPage = page;
276
- (_state$curPageList2 = state.curPageList).splice.apply(_state$curPageList2, [state.curPageList.length, 0].concat(_toConsumableArray(state.renderListPaged[state.curPage - 1] || [])));
277
- state.isPageLoading = false;
278
- };
279
- return {
280
- pageState: state,
281
- initPage: initPage,
282
- pageChange: pageChange
283
- };
284
- }
285
- function useFlatList(props) {
286
- var _toRefs = (0,external_vue_namespaceObject.toRefs)(props),
287
- useGroup = _toRefs.useGroup,
288
- saveKey = _toRefs.saveKey,
289
- displayKey = _toRefs.displayKey,
290
- list = _toRefs.list;
291
- var flatList = (0,external_vue_namespaceObject.ref)([]);
292
- var saveKeyMap = (0,external_vue_namespaceObject.ref)({});
293
- (0,external_vue_namespaceObject.watch)([useGroup, saveKey, displayKey, list], function () {
294
- flatList.value = [];
295
- var formatList = (0,external_vue_namespaceObject.markRaw)(list.value);
296
- if (useGroup.value) {
297
- formatList = formatList.reduce(function (formatList, item) {
298
- var children = [];
299
- if (item.children) {
300
- children = item.children.map(function (child) {
301
- return Object.assign({
302
- group: {
303
- groupId: item[saveKey.value],
304
- groupName: item[displayKey.value]
305
- }
306
- }, child);
307
- });
308
- }
309
- return formatList.concat(children);
310
- }, []);
311
- }
312
- flatList.value = formatList;
313
- saveKeyMap.value = formatList.reduce(function (acc, item) {
314
- acc[item[saveKey.value]] = item;
315
- return acc;
316
- }, {});
317
- }, {
318
- immediate: true,
319
- deep: true
320
- });
321
- return {
322
- flatList: flatList,
323
- saveKeyMap: saveKeyMap
324
- };
325
- }
326
- /**
327
- * 获取字符长度,汉字两个字节
328
- * @param str 需要计算长度的字符
329
- * @returns 字符长度
330
- */
331
- var getCharLength = function getCharLength(str) {
332
- var len = str.length;
333
- var bitLen = 0;
334
- for (var i = 0; i < len; i++) {
335
- if ((str.charCodeAt(i) & 0xff00) !== 0) {
336
- bitLen += 1;
337
- }
338
- bitLen += 1;
339
- }
340
- return bitLen;
341
- };
342
- /**
343
- * 获取隐藏 tag index
344
- * @param tagInputRef 组件容器 ref
345
- * @param collapseTags 是否折叠 tags
346
- * @param selectedTagList 已选择 tags
347
- */
348
- var useTagsOverflow = function useTagsOverflow(tagInputRef, collapseTags, selectedTagList) {
349
- (0,external_vue_namespaceObject.watch)([selectedTagList, collapseTags], function () {
350
- calcOverflow();
351
- }, {
352
- flush: 'post'
353
- });
354
- var overflowTagIndex = (0,external_vue_namespaceObject.ref)(null);
355
- // 计算出现换行的索引
356
- var calcOverflow = function calcOverflow() {
357
- if (!collapseTags.value) return;
358
- overflowTagIndex.value = null;
359
- setTimeout(function () {
360
- var tags = Array.from(tagInputRef.value.querySelectorAll('.tag-item'));
361
- var tagIndexInSecondRow = tags.findIndex(function (currentTag, index) {
362
- if (!index) {
363
- return false;
364
- }
365
- var previousTag = tags[index - 1];
366
- return previousTag.offsetTop !== currentTag.offsetTop;
367
- });
368
- overflowTagIndex.value = tagIndexInSecondRow > 0 ? tagIndexInSecondRow - 1 : null;
369
- });
370
- };
371
- return {
372
- overflowTagIndex: overflowTagIndex
373
- };
374
- };
375
- ;// CONCATENATED MODULE: ../../packages/tag-input/src/list-tag-render.tsx
376
-
377
- /*
378
- * Tencent is pleased to support the open source community by making
379
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
380
- *
381
- * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
382
- *
383
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
384
- *
385
- * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
386
- *
387
- * ---------------------------------------------------
388
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
389
- * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
390
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
391
- * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
392
- *
393
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
394
- * the Software.
395
- *
396
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
397
- * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
398
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
399
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
400
- * IN THE SOFTWARE.
401
- */
402
-
403
-
404
-
405
- /* harmony default export */ const list_tag_render = ((0,external_vue_namespaceObject.defineComponent)({
406
- name: 'ListTagRender',
407
- props: {
408
- node: external_shared_namespaceObject.PropTypes.object,
409
- searchKey: external_shared_namespaceObject.PropTypes.oneOfType([external_shared_namespaceObject.PropTypes.string, external_shared_namespaceObject.PropTypes.arrayOf(external_shared_namespaceObject.PropTypes.string)]),
410
- displayKey: external_shared_namespaceObject.PropTypes.string,
411
- searchKeyword: external_shared_namespaceObject.PropTypes.string,
412
- tpl: {
413
- type: Function
414
- }
415
- },
416
- render: function render() {
417
- var _this = this;
418
- var _usePrefix = (0,external_config_provider_namespaceObject.usePrefix)(),
419
- resolveClassName = _usePrefix.resolveClassName;
420
- var highlightKeyword = function highlightKeyword(value) {
421
- if (_this.searchKeyword) {
422
- var keywordReg = new RegExp("(".concat(_this.searchKeyword, ")"), 'i');
423
- return value.replace(keywordReg, '<strong class="highlight-text">$1</strong>');
424
- }
425
- return value;
426
- };
427
- if (this.tpl) {
428
- return this.tpl(this.node, highlightKeyword, external_vue_namespaceObject.h, this);
429
- }
430
- var displayText = this.node[this.displayKey];
431
- return (0,external_vue_namespaceObject.createVNode)("div", {
432
- "class": "".concat(resolveClassName('selector-node'))
433
- }, [(0,external_vue_namespaceObject.createVNode)("span", {
434
- "class": "text",
435
- "innerHTML": highlightKeyword(displayText)
436
- }, [displayText])]);
437
- }
438
- }));
439
- ;// CONCATENATED MODULE: external "vue-types"
440
- var external_vue_types_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
441
- var external_vue_types_y = x => () => x
442
- const external_vue_types_namespaceObject = external_vue_types_x({ ["toType"]: () => __WEBPACK_EXTERNAL_MODULE_vue_types_22de060a__.toType });
443
- ;// CONCATENATED MODULE: ../../packages/tag-input/src/tag-props.ts
444
- /*
445
- * Tencent is pleased to support the open source community by making
446
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
447
- *
448
- * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
449
- *
450
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
451
- *
452
- * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
453
- *
454
- * ---------------------------------------------------
455
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
456
- * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
457
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
458
- * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
459
- *
460
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
461
- * the Software.
462
- *
463
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
464
- * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
465
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
466
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
467
- * IN THE SOFTWARE.
468
- */
469
-
470
-
471
- var TagInputTriggerEnum;
472
- (function (TagInputTriggerEnum) {
473
- TagInputTriggerEnum["FOCUS"] = "focus";
474
- TagInputTriggerEnum["SEARCH"] = "search";
475
- })(TagInputTriggerEnum || (TagInputTriggerEnum = {}));
476
- var tagProps = function tagProps() {
477
- return {
478
- modelValue: external_shared_namespaceObject.PropTypes.arrayOf(external_shared_namespaceObject.PropTypes.string).def([]),
479
- placeholder: external_shared_namespaceObject.PropTypes.string.def(''),
480
- list: external_shared_namespaceObject.PropTypes.arrayOf(external_shared_namespaceObject.PropTypes.object).def([]),
481
- disabled: external_shared_namespaceObject.PropTypes.bool.def(false),
482
- tooltipKey: external_shared_namespaceObject.PropTypes.string.def(''),
483
- saveKey: external_shared_namespaceObject.PropTypes.string.def('id'),
484
- displayKey: external_shared_namespaceObject.PropTypes.string.def('name'),
485
- hasDeleteIcon: external_shared_namespaceObject.PropTypes.bool.def(false),
486
- clearable: external_shared_namespaceObject.PropTypes.bool.def(true),
487
- trigger: (0,external_vue_types_namespaceObject.toType)('treeTriggerType', {}).def(TagInputTriggerEnum.SEARCH),
488
- searchKey: external_shared_namespaceObject.PropTypes.oneOfType([external_shared_namespaceObject.PropTypes.string, external_shared_namespaceObject.PropTypes.arrayOf(external_shared_namespaceObject.PropTypes.string)]).def('name'),
489
- useGroup: external_shared_namespaceObject.PropTypes.bool.def(false),
490
- allowCreate: external_shared_namespaceObject.PropTypes.bool.def(false),
491
- maxData: external_shared_namespaceObject.PropTypes.number.def(-1),
492
- maxResult: external_shared_namespaceObject.PropTypes.number.def(10),
493
- contentMaxHeight: external_shared_namespaceObject.PropTypes.number.def(300),
494
- contentWidth: external_shared_namespaceObject.PropTypes.number.def(190),
495
- separator: external_shared_namespaceObject.PropTypes.string.def(''),
496
- allowNextFocus: external_shared_namespaceObject.PropTypes.bool.def(true),
497
- allowAutoMatch: external_shared_namespaceObject.PropTypes.bool.def(false),
498
- showClearOnlyHover: external_shared_namespaceObject.PropTypes.bool.def(false),
499
- isAsyncList: external_shared_namespaceObject.PropTypes.bool.def(false),
500
- leftSpace: external_shared_namespaceObject.PropTypes.number.def(0),
501
- createTagValidator: {
502
- type: Function
503
- },
504
- filterCallback: {
505
- type: Function
506
- },
507
- tagTpl: {
508
- type: Function
509
- },
510
- tpl: {
511
- type: Function
512
- },
513
- pasteFn: {
514
- type: Function
515
- },
516
- withValidate: {
517
- type: Boolean,
518
- "default": true
519
- },
520
- popoverProps: {
521
- type: Object,
522
- "default": function _default() {
523
- return {};
524
- }
525
- },
526
- collapseTags: {
527
- type: Boolean,
528
- "default": false
529
- },
530
- tagOverflowTips: {
531
- type: Object,
532
- "default": function _default() {
533
- return {};
534
- }
535
- }
536
- };
537
- };
538
- /* harmony default export */ const tag_props = (tagProps);
539
- ;// CONCATENATED MODULE: ../../packages/tag-input/src/tag-render.tsx
540
-
541
- /*
542
- * Tencent is pleased to support the open source community by making
543
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
544
- *
545
- * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
546
- *
547
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
548
- *
549
- * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
550
- *
551
- * ---------------------------------------------------
552
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
553
- * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
554
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
555
- * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
556
- *
557
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
558
- * the Software.
559
- *
560
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
561
- * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
562
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
563
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
564
- * IN THE SOFTWARE.
565
- */
566
-
567
-
568
-
569
- /* harmony default export */ const tag_render = ((0,external_vue_namespaceObject.defineComponent)({
570
- name: 'TagRender',
571
- directives: {
572
- bkTooltips: external_directives_namespaceObject.bkTooltips
573
- },
574
- props: {
575
- node: external_shared_namespaceObject.PropTypes.object,
576
- displayKey: external_shared_namespaceObject.PropTypes.string,
577
- tpl: {
578
- type: Function
579
- },
580
- hasTips: {
581
- type: Boolean,
582
- "default": false
583
- },
584
- tagOverflowTips: {
585
- type: Object,
586
- "default": function _default() {
587
- return {};
588
- }
589
- }
590
- },
591
- setup: function setup(props) {
592
- var tagRef = (0,external_vue_namespaceObject.ref)();
593
- var isOverflow = (0,external_vue_namespaceObject.ref)(false);
594
- var overflowTips = (0,external_vue_namespaceObject.computed)(function () {
595
- return Object.assign({
596
- boundary: 'window',
597
- theme: 'light',
598
- distance: 12,
599
- content: props.node[props.displayKey],
600
- disabled: props.hasTips || !isOverflow.value
601
- }, props.tagOverflowTips);
602
- });
603
- (0,external_vue_namespaceObject.onMounted)(function () {
604
- isOverflow.value = (0,external_shared_namespaceObject.checkOverflow)(tagRef.value);
605
- });
606
- return {
607
- overflowTips: overflowTips,
608
- tagRef: tagRef
609
- };
610
- },
611
- render: function render() {
612
- if (this.tpl) {
613
- return this.tpl(this.node, external_vue_namespaceObject.h, this);
614
- }
615
- return (0,external_vue_namespaceObject.withDirectives)((0,external_vue_namespaceObject.createVNode)("div", {
616
- "class": "tag",
617
- "ref": "tagRef"
618
- }, [(0,external_vue_namespaceObject.createVNode)("span", {
619
- "class": "text"
620
- }, [this.node[this.displayKey]])]), [[(0,external_vue_namespaceObject.resolveDirective)("bk-tooltips"), this.overflowTips]]);
621
- }
622
- }));
623
- ;// CONCATENATED MODULE: ../../packages/tag-input/src/tag-input.tsx
624
-
625
-
626
-
627
-
628
-
629
- /*
630
- * Tencent is pleased to support the open source community by making
631
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
632
- *
633
- * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
634
- *
635
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
636
- *
637
- * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
638
- *
639
- * ---------------------------------------------------
640
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
641
- * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
642
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
643
- * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
644
- *
645
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
646
- * the Software.
647
- *
648
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
649
- * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
650
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
651
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
652
- * IN THE SOFTWARE.
653
- */
654
-
655
-
656
-
657
-
658
-
659
-
660
-
661
-
662
-
663
-
664
-
665
-
666
- /* harmony default export */ const tag_input = ((0,external_vue_namespaceObject.defineComponent)({
667
- name: 'TagInput',
668
- directives: {
669
- bkTooltips: external_directives_namespaceObject.bkTooltips
670
- },
671
- props: tag_props(),
672
- emits: ['update:modelValue', 'change', 'select', 'focus', 'blur', 'remove', 'removeAll', 'input'],
673
- setup: function setup(props, _ref) {
674
- var emit = _ref.emit;
675
- var formItem = (0,external_shared_namespaceObject.useFormItem)();
676
- var t = (0,external_config_provider_namespaceObject.useLocale)('tagInput');
677
- var state = (0,external_vue_namespaceObject.reactive)({
678
- isEdit: false,
679
- isHover: false,
680
- focusItemIndex: props.allowCreate ? -1 : 0
681
- });
682
- var popoverProps = (0,external_vue_namespaceObject.reactive)(Object.assign({
683
- isShow: false,
684
- width: 190,
685
- offset: {
686
- mainAxis: 4,
687
- crossAxis: 0
688
- // alignmentAxis: 50,
689
- }
690
- }, props.popoverProps));
691
- var _usePrefix = (0,external_config_provider_namespaceObject.usePrefix)(),
692
- resolveClassName = _usePrefix.resolveClassName;
693
- // 分页处理
694
- var _toRefs = (0,external_vue_namespaceObject.toRefs)(props),
695
- maxResult = _toRefs.maxResult;
696
- var _usePage = usePage(maxResult),
697
- pageState = _usePage.pageState,
698
- initPage = _usePage.initPage,
699
- pageChange = _usePage.pageChange;
700
- var curInputValue = (0,external_vue_namespaceObject.ref)('');
701
- var tagInputRef = (0,external_vue_namespaceObject.ref)(null);
702
- var bkTagSelectorRef = (0,external_vue_namespaceObject.ref)(null);
703
- var tagListRef = (0,external_vue_namespaceObject.ref)(null);
704
- var tagInputItemRef = (0,external_vue_namespaceObject.ref)(null);
705
- var selectorListRef = (0,external_vue_namespaceObject.ref)(null);
706
- var timer = (0,external_vue_namespaceObject.ref)(null);
707
- // 是否展示tag close
708
- var showTagClose = (0,external_vue_namespaceObject.computed)(function () {
709
- return !props.disabled && props.hasDeleteIcon;
710
- });
711
- // 是否单选
712
- var isSingleSelect = (0,external_vue_namespaceObject.computed)(function () {
713
- return props.maxData === 1;
714
- });
715
- // 是否展示placeholder
716
- var isShowPlaceholder = (0,external_vue_namespaceObject.computed)(function () {
717
- return listState.selectedTagList.length === 0 && curInputValue.value === '' && !state.isEdit;
718
- });
719
- var placeholderText = (0,external_vue_namespaceObject.computed)(function () {
720
- return props.placeholder || t.value.placeholder;
721
- });
722
- // 是否展示清空Icon
723
- /**
724
- * 不显示条件:
725
- * 1. 设置不可清除
726
- * 2. 禁用时
727
- * 3. tag标签为空时
728
- * 4. 设置了showClearOnlyHover,且没有hover的时候
729
- */
730
- var isShowClear = (0,external_vue_namespaceObject.computed)(function () {
731
- return props.clearable && !props.disabled && listState.selectedTagList.length !== 0 && (props.showClearOnlyHover ? state.isHover : true);
732
- });
733
- var triggerClass = (0,external_vue_namespaceObject.computed)(function () {
734
- var _ref2;
735
- return _ref2 = {}, _defineProperty(_ref2, "".concat(resolveClassName('tag-input-trigger')), true), _defineProperty(_ref2, "active", state.isEdit), _defineProperty(_ref2, "disabled", props.disabled), _ref2;
736
- });
737
- var listState = (0,external_vue_namespaceObject.reactive)({
738
- localList: [],
739
- tagListCache: [],
740
- selectedTagList: [],
741
- selectedTagListCache: []
742
- });
743
- // 选中标签 save key 列表
744
- var tagList = (0,external_vue_namespaceObject.computed)(function () {
745
- return listState.selectedTagList.map(function (tag) {
746
- return tag[props.saveKey];
747
- });
748
- });
749
- // 扁平化 list
750
- var _useFlatList = useFlatList(props),
751
- flatList = _useFlatList.flatList,
752
- saveKeyMap = _useFlatList.saveKeyMap;
753
- // 下拉框渲染列表
754
- var renderList = (0,external_vue_namespaceObject.computed)(function () {
755
- if (props.useGroup) {
756
- var groupMap = {};
757
- pageState.curPageList.forEach(function (item, index) {
758
- item.__index__ = index;
759
- if (!groupMap[item.group.groupId]) {
760
- groupMap[item.group.groupId] = {
761
- id: item.group.groupId,
762
- name: item.group.groupName,
763
- children: []
764
- };
765
- }
766
- groupMap[item.group.groupId].children.push(item);
767
- });
768
- return Object.keys(groupMap).map(function (key) {
769
- return groupMap[key];
770
- });
771
- }
772
- return pageState.curPageList;
773
- });
774
- (0,external_vue_namespaceObject.watch)([function () {
775
- return flatList.value;
776
- }], function () {
777
- (0,external_vue_namespaceObject.nextTick)(function () {
778
- initData();
779
- });
780
- }, {
781
- deep: true
782
- });
783
- (0,external_vue_namespaceObject.watch)(function () {
784
- return props.modelValue;
785
- }, function (val) {
786
- var _a;
787
- if (!shallowCompareArray(tagList.value, val)) {
788
- (0,external_vue_namespaceObject.nextTick)(function () {
789
- initData();
790
- });
791
- if (props.withValidate) {
792
- (_a = formItem === null || formItem === void 0 ? void 0 : formItem.validate) === null || _a === void 0 ? void 0 : _a.call(formItem, 'change');
793
- }
794
- }
795
- });
796
- (0,external_vue_namespaceObject.watch)(curInputValue, (0,external_lodash_namespaceObject.debounce)(function () {
797
- var hasShowCount = pageState.curPageList.length !== 0;
798
- var value = curInputValue.value;
799
- /**
800
- * 1. value !== '' && hasShowCount => search value list.
801
- * 2. value === '' && props.trigger === 'focus' && hasShowCount => trigger is focus and show all list.
802
- */
803
- if (value !== '' && hasShowCount || value === '' && props.trigger === 'focus' && hasShowCount) {
804
- popoverProps.isShow = true;
805
- } else if (props.trigger !== 'focus' || !hasShowCount) {
806
- popoverProps.isShow = false;
807
- }
808
- }, 150));
809
- (0,external_vue_namespaceObject.watch)(function () {
810
- return popoverProps.isShow;
811
- }, function (show) {
812
- changePopoverOffset();
813
- if (show) {
814
- if (selectorListRef.value) {
815
- (0,external_vue_namespaceObject.nextTick)(function () {
816
- selectorListRef.value.scrollTop = 0;
817
- });
818
- selectorListRef.value.removeEventListener('scroll', scrollHandler);
819
- selectorListRef.value.addEventListener('scroll', scrollHandler);
820
- }
821
- }
822
- });
823
- (0,external_vue_namespaceObject.onMounted)(function () {
824
- initData();
825
- });
826
- var changePopoverOffset = function changePopoverOffset() {
827
- var _a;
828
- // 修改popover offset
829
- popoverProps.offset.crossAxis = isSingleSelect.value ? 0 : (_a = tagInputItemRef.value) === null || _a === void 0 ? void 0 : _a.offsetLeft;
830
- };
831
- var scrollHandler = function scrollHandler() {
832
- if (pageState.isPageLoading || selectorListRef.value.scrollTop === 0) {
833
- return;
834
- }
835
- var _selectorListRef$valu = selectorListRef.value,
836
- scrollTop = _selectorListRef$valu.scrollTop,
837
- offsetHeight = _selectorListRef$valu.offsetHeight,
838
- scrollHeight = _selectorListRef$valu.scrollHeight;
839
- if (scrollTop + offsetHeight >= scrollHeight) {
840
- var curPage = pageState.curPage + 1;
841
- if (curPage <= pageState.totalPage) {
842
- pageState.isPageLoading = true;
843
- setTimeout(function () {
844
- pageChange(curPage);
845
- }, 500);
846
- }
847
- }
848
- };
849
- // 获取选中元素节点
850
- var getSelectedTagNodes = function getSelectedTagNodes() {
851
- var _a;
852
- var nodes = Array.from(((_a = tagListRef.value) === null || _a === void 0 ? void 0 : _a.childNodes) || []);
853
- return nodes.filter(function (node) {
854
- return ![Node.TEXT_NODE, Node.COMMENT_NODE].includes(node.nodeType);
855
- });
856
- };
857
- /**
858
- * 触发输入框聚焦
859
- * @param e
860
- */
861
- var focusInputTrigger = function focusInputTrigger(e) {
862
- if (props.disabled) return;
863
- if (e === null || e === void 0 ? void 0 : e.target) {
864
- var className = e.target.className;
865
- if (className.indexOf("".concat(resolveClassName('tag-input-trigger'))) > -1 || className.indexOf('tag-list') > -1) {
866
- // 如果没点在节点上,重置input位置(在最后插入input)
867
- tagListRef.value.appendChild(tagInputItemRef.value);
868
- }
869
- }
870
- clearTimeout(timer.value);
871
- // 如果是单选,在获取焦点时自动定位为当前值
872
- if (isSingleSelect.value && tagList.value.length) {
873
- listState.tagListCache = _toConsumableArray(tagList.value);
874
- listState.selectedTagListCache = _toConsumableArray(listState.selectedTagList);
875
- curInputValue.value = listState.selectedTagListCache[0][props.saveKey];
876
- removeTag(listState.selectedTagList[0], 0);
877
- handleInput();
878
- }
879
- state.isEdit = true;
880
- setTimeout(function () {
881
- var _a;
882
- (_a = tagInputRef.value) === null || _a === void 0 ? void 0 : _a.focus();
883
- if (props.trigger === 'focus' && listState.localList.length !== 0) {
884
- filterData();
885
- if (popoverProps.isShow) {
886
- changePopoverOffset();
887
- } else {
888
- popoverProps.isShow = true;
889
- }
890
- }
891
- }, 200);
892
- };
893
- /**
894
- * 初始化列表数据
895
- */
896
- var initData = function initData() {
897
- var saveKey = props.saveKey,
898
- modelValue = props.modelValue,
899
- displayKey = props.displayKey,
900
- allowCreate = props.allowCreate,
901
- trigger = props.trigger,
902
- isAsyncList = props.isAsyncList;
903
- listState.selectedTagList = [];
904
- listState.localList = flatList.value;
905
- if (modelValue.length) {
906
- var modelValueMap = {};
907
- listState.selectedTagList = modelValue.map(function (tag) {
908
- var item = saveKeyMap.value[tag];
909
- modelValueMap[tag] = 1;
910
- if (!item && allowCreate) {
911
- var _ref3;
912
- return _ref3 = {}, _defineProperty(_ref3, saveKey, tag), _defineProperty(_ref3, displayKey, tag), _ref3;
913
- }
914
- return item;
915
- }).filter(function (item) {
916
- return item;
917
- });
918
- // 如果不是单选时,需要将已选的过滤掉
919
- if (!isSingleSelect.value) {
920
- listState.localList = listState.localList.filter(function (val) {
921
- return !modelValueMap[val[saveKey]];
922
- });
923
- }
924
- }
925
- if (isAsyncList && curInputValue.value) {
926
- filterData(curInputValue.value);
927
- if (pageState.curPageList.length) {
928
- popoverProps.isShow = true;
929
- }
930
- return;
931
- }
932
- // 如果需要首次展示列表,先初始化
933
- if (trigger === 'focus') {
934
- filterData();
935
- }
936
- };
937
- // 过滤数据
938
- var filterData = function filterData() {
939
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
940
- var searchKey = props.searchKey,
941
- filterCallback = props.filterCallback;
942
- var lowerCaseValue = value.toLowerCase().trim();
943
- if (lowerCaseValue === '') {
944
- initPage(listState.localList);
945
- return;
946
- }
947
- var filterData = [];
948
- if (typeof filterCallback === 'function') {
949
- filterData = filterCallback(lowerCaseValue, searchKey, listState.localList) || [];
950
- } else {
951
- // 根据文本框输入的值筛选过来的数据
952
- if (Array.isArray(searchKey)) {
953
- // 数组,过滤多个关键字
954
- filterData = listState.localList.filter(function (item) {
955
- return searchKey.some(function (keyword) {
956
- return item[keyword].toLowerCase().indexOf(lowerCaseValue) > -1;
957
- });
958
- });
959
- } else {
960
- filterData = listState.localList.filter(function (item) {
961
- return item[searchKey].toLowerCase().indexOf(lowerCaseValue) > -1;
962
- });
963
- }
964
- }
965
- initPage(filterData);
966
- };
967
- var activeClass = function activeClass(data, index) {
968
- var _style;
969
- var style = (_style = {}, _defineProperty(_style, "".concat(resolveClassName('selector-actived')), true), _defineProperty(_style, "".concat(resolveClassName('selector-selected')), tagList.value.includes(data[props.saveKey])), _style);
970
- if (props.useGroup) {
971
- style["".concat(resolveClassName('selector-actived'))] = data.__index__ === state.focusItemIndex;
972
- } else {
973
- style["".concat(resolveClassName('selector-actived'))] = index === state.focusItemIndex;
974
- }
975
- return style;
976
- };
977
- function shallowCompareArray(arr1, arr2) {
978
- if (arr1.length !== arr2.length) return false;
979
- return arr2.every(function (item, index) {
980
- return arr1[index] === item;
981
- });
982
- }
983
- var clearSingleCache = function clearSingleCache() {
984
- listState.tagListCache = [];
985
- listState.selectedTagListCache = [];
986
- listState.selectedTagList = [];
987
- };
988
- var clearInput = function clearInput() {
989
- curInputValue.value = '';
990
- };
991
- /**
992
- * 获取输入框元素位置
993
- */
994
- var getTagInputItemSite = function getTagInputItemSite() {
995
- // 单选时,当前替换位置为第一个元素
996
- if (isSingleSelect.value) {
997
- return 0;
998
- }
999
- var childNodes = getSelectedTagNodes();
1000
- var index = childNodes.findIndex(function (_ref4) {
1001
- var id = _ref4.id;
1002
- return id === 'tagInputItem';
1003
- });
1004
- return index >= 0 ? index : 0;
1005
- };
1006
- /**
1007
- * 交换元素位置
1008
- */
1009
- var swapElementPositions = function swapElementPositions(newNode, referenceNode) {
1010
- var isNextElementSibling = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1011
- if (!referenceNode || !newNode) return;
1012
- var swap = referenceNode;
1013
- if (isNextElementSibling) {
1014
- swap = referenceNode.nextElementSibling || null;
1015
- }
1016
- referenceNode.parentNode.insertBefore(newNode, swap);
1017
- };
1018
- var handleInput = function handleInput(e) {
1019
- var maxData = props.maxData,
1020
- trigger = props.trigger,
1021
- allowCreate = props.allowCreate;
1022
- if (maxData === -1 || maxData > tagList.value.length) {
1023
- var _ref5 = (e === null || e === void 0 ? void 0 : e.target) ? e.target : curInputValue,
1024
- value = _ref5.value;
1025
- var charLen = getCharLength(value);
1026
- if (charLen) {
1027
- filterData(value);
1028
- tagInputRef.value.style.width = "".concat(charLen * INPUT_MIN_WIDTH, "px");
1029
- } else {
1030
- if (trigger === 'focus') {
1031
- filterData();
1032
- }
1033
- }
1034
- } else {
1035
- handleBlur();
1036
- curInputValue.value = '';
1037
- popoverProps.isShow = false;
1038
- }
1039
- state.isEdit = true;
1040
- // 重置下拉菜单选中信息
1041
- state.focusItemIndex = allowCreate ? -1 : 0;
1042
- emit('input', curInputValue.value);
1043
- };
1044
- var handleFocus = function handleFocus() {
1045
- var _a;
1046
- // this.dispatch('bk-form-item', 'form-focus')
1047
- popoverProps.width = isSingleSelect.value ? (_a = bkTagSelectorRef.value) === null || _a === void 0 ? void 0 : _a.clientWidth : props.contentWidth;
1048
- emit('focus');
1049
- // e.currentTarget.select();
1050
- };
1051
-
1052
- var handleBlur = function handleBlur() {
1053
- timer.value = setTimeout(function () {
1054
- var _a;
1055
- var inputValue = curInputValue.value;
1056
- clearInput();
1057
- // 通知表单组件,可用于实时验证
1058
- // this.dispatch('bk-form-item', 'form-blur')
1059
- state.isEdit = false;
1060
- if (isSingleSelect.value) {
1061
- var _listState$tagListCac = _slicedToArray(listState.tagListCache, 1),
1062
- oldValue = _listState$tagListCac[0];
1063
- // 如果是单选,且input不为空,即保留了上次的结果则恢复
1064
- if (inputValue && inputValue === oldValue && listState.selectedTagListCache.length) {
1065
- addTag(listState.selectedTagListCache[0], 'select');
1066
- } else {
1067
- handleChange('remove');
1068
- }
1069
- } else if (props.allowAutoMatch && inputValue) {
1070
- // 如果匹配,则自动选则
1071
- var matchItem = pageState.curPageList.find(function (item) {
1072
- if (Array.isArray(props.searchKey)) {
1073
- var searchValue = props.searchKey.map(function (key) {
1074
- return item[key];
1075
- });
1076
- return searchValue.includes(inputValue);
1077
- }
1078
- return item[props.searchKey] === inputValue;
1079
- });
1080
- if (matchItem) {
1081
- handleTagSelected(matchItem, 'select');
1082
- } else if (props.allowCreate) {
1083
- // 支持自定义
1084
- handleTagSelected(inputValue, 'custom');
1085
- }
1086
- }
1087
- popoverProps.isShow = false;
1088
- emit('blur', inputValue, tagList.value);
1089
- (_a = formItem === null || formItem === void 0 ? void 0 : formItem.validate) === null || _a === void 0 ? void 0 : _a.call(formItem, 'blur');
1090
- }, 200);
1091
- };
1092
- /**
1093
- * tag selected handler
1094
- * @param item tag data
1095
- * @param type emit type
1096
- */
1097
- var handleTagSelected = function handleTagSelected(item, type, e) {
1098
- e === null || e === void 0 ? void 0 : e.stopPropagation();
1099
- // 如果 item 不存在(备选项中没有包含输入的字母的情况即输入关键字没有备选项出现的情况)或者选中标签所在组是禁用状态,返回
1100
- if (!item || item.disabled) {
1101
- return;
1102
- }
1103
- // 如果是单选,清空上一次缓存结果
1104
- if (isSingleSelect.value) {
1105
- clearSingleCache();
1106
- }
1107
- addTag(item, type);
1108
- handleChange('select');
1109
- clearInput();
1110
- popoverProps.isShow = false;
1111
- };
1112
- /**
1113
- * remove selected tag
1114
- * @param data tag data
1115
- * @param index tag index
1116
- * @param e mouse event
1117
- */
1118
- var handleTagRemove = function handleTagRemove(data, index, e) {
1119
- e === null || e === void 0 ? void 0 : e.stopPropagation();
1120
- removeTag(data, index);
1121
- clearInput();
1122
- handleChange('remove', data);
1123
- tagInputRef.value.style.width = "".concat(INPUT_MIN_WIDTH, "px");
1124
- };
1125
- /**
1126
- * emit trigger
1127
- * @param type emit type
1128
- */
1129
- var handleChange = function handleChange(type, data) {
1130
- // this.dispatch('bk-form-item', 'form-change')
1131
- emit(type, data);
1132
- emit('update:modelValue', tagList.value);
1133
- emit('change', tagList.value);
1134
- };
1135
- /**
1136
- * clear all selected tags
1137
- * @param e mouse event
1138
- */
1139
- var handleClear = function handleClear(e) {
1140
- e.stopPropagation();
1141
- var removeList = listState.selectedTagList;
1142
- listState.selectedTagList = [];
1143
- // 将删除的项加入加列表
1144
- var existList = removeList.filter(function (item) {
1145
- return saveKeyMap.value[item[props.saveKey]];
1146
- });
1147
- if ((props.allowCreate && existList.length !== 0 || !props.allowCreate) && !isSingleSelect.value) {
1148
- var _listState$localList;
1149
- (_listState$localList = listState.localList).push.apply(_listState$localList, _toConsumableArray(existList));
1150
- }
1151
- handleChange('removeAll');
1152
- };
1153
- var updateScrollTop = function updateScrollTop() {
1154
- // 获取下拉列表容器的位置信息,用于判断上下键选中的元素是否在可视区域,若不在则需滚动至可视区域
1155
- var panelInfo = {
1156
- height: selectorListRef.value.clientHeight,
1157
- yAxis: selectorListRef.value.getBoundingClientRect().y
1158
- };
1159
- (0,external_vue_namespaceObject.nextTick)(function () {
1160
- var activeObj = selectorListRef.value.querySelector(".".concat(resolveClassName('selector-actived')));
1161
- if (!activeObj) {
1162
- return;
1163
- }
1164
- var activeInfo = {
1165
- height: activeObj.clientHeight,
1166
- yAxis: activeObj.getBoundingClientRect().y
1167
- };
1168
- // 选中元素顶部坐标大于容器顶部坐标时,则该元素有部分或者全部区域不在可视区域,执行滚动
1169
- if (activeInfo.yAxis < panelInfo.yAxis) {
1170
- selectorListRef.value.scrollTop = selectorListRef.value.scrollTop - (panelInfo.yAxis - activeInfo.yAxis);
1171
- }
1172
- var distanceToBottom = activeInfo.yAxis + activeInfo.height - panelInfo.yAxis;
1173
- // 选中元素底部坐标大于容器顶部坐标,且超出容器的实际高度,则该元素有部分或者全部区域不在可视区域,执行滚动
1174
- if (distanceToBottom > panelInfo.height) {
1175
- selectorListRef.value.scrollTop = selectorListRef.value.scrollTop + distanceToBottom - panelInfo.height;
1176
- }
1177
- });
1178
- };
1179
- var backspaceHandler = function backspaceHandler(index, target) {
1180
- // 先交换输入框与被删除节点位置,再进行删除
1181
- var nodes = getSelectedTagNodes();
1182
- swapElementPositions(tagInputItemRef.value, nodes[index - 1]);
1183
- listState.selectedTagList.splice(index - 1, 1);
1184
- focusInputTrigger();
1185
- var isExistInit = saveKeyMap.value[target[props.saveKey]];
1186
- // 将删除的项加入加列表
1187
- if ((props.allowCreate && isExistInit || !props.allowCreate) && !isSingleSelect.value) {
1188
- listState.localList.push(target);
1189
- }
1190
- tagInputRef.value = "".concat(INPUT_MIN_WIDTH, "px");
1191
- handleChange('remove');
1192
- };
1193
- var handleKeydown = function handleKeydown(e) {
1194
- if (pageState.isPageLoading) {
1195
- return;
1196
- }
1197
- var target;
1198
- var val = e.target.value;
1199
- var valLen = getCharLength(val);
1200
- var tagInputItemIndex = getTagInputItemSite();
1201
- var nodes = getSelectedTagNodes();
1202
- switch (e.code) {
1203
- case 'ArrowUp':
1204
- e.preventDefault();
1205
- if (!popoverProps.isShow) {
1206
- return;
1207
- }
1208
- state.focusItemIndex = state.focusItemIndex - 1;
1209
- state.focusItemIndex = state.focusItemIndex < 0 ? -1 : state.focusItemIndex;
1210
- if (state.focusItemIndex === -1) {
1211
- state.focusItemIndex = pageState.curPageList.length - 1;
1212
- }
1213
- updateScrollTop();
1214
- break;
1215
- case 'ArrowDown':
1216
- e.preventDefault();
1217
- if (!popoverProps.isShow) {
1218
- return;
1219
- }
1220
- state.focusItemIndex = state.focusItemIndex + 1;
1221
- state.focusItemIndex = state.focusItemIndex > pageState.curPageList.length - 1 ? pageState.curPageList.length : state.focusItemIndex;
1222
- if (state.focusItemIndex === pageState.curPageList.length) {
1223
- state.focusItemIndex = 0;
1224
- }
1225
- updateScrollTop();
1226
- break;
1227
- case 'ArrowLeft':
1228
- state.isEdit = true;
1229
- if (!valLen) {
1230
- // 输入框已经是第一个节点,无法左移
1231
- if (tagInputItemIndex < 1) {
1232
- return;
1233
- }
1234
- swapElementPositions(tagInputItemRef.value, nodes[tagInputItemIndex - 1]);
1235
- focusInputTrigger();
1236
- }
1237
- break;
1238
- case 'ArrowRight':
1239
- state.isEdit = true;
1240
- if (!valLen) {
1241
- // 输入框已经是最后一个节点,无法右移
1242
- if (tagInputItemIndex === nodes.length - 1) {
1243
- return;
1244
- }
1245
- swapElementPositions(nodes[tagInputItemIndex + 1], tagInputItemRef.value);
1246
- focusInputTrigger();
1247
- }
1248
- break;
1249
- case 'Enter':
1250
- case 'NumpadEnter':
1251
- if (!props.allowCreate && popoverProps.isShow || props.allowCreate && state.focusItemIndex >= 0 && popoverProps.isShow) {
1252
- handleTagSelected(pageState.curPageList[state.focusItemIndex], 'select', e);
1253
- } else if (props.allowCreate && curInputValue.value.trim()) {
1254
- handleTagSelected(curInputValue.value, 'custom', e);
1255
- }
1256
- // 如果是enter, 防止触发form submit
1257
- e.preventDefault();
1258
- break;
1259
- case 'Backspace':
1260
- if (tagInputItemIndex !== 0 && !curInputValue.value) {
1261
- target = listState.selectedTagList[tagInputItemIndex - 1];
1262
- backspaceHandler(tagInputItemIndex, target);
1263
- }
1264
- break;
1265
- default:
1266
- break;
1267
- }
1268
- };
1269
- var defaultPasteFn = function defaultPasteFn(value) {
1270
- var target = [];
1271
- var textArr = value.split(';');
1272
- var regx = /^[a-zA-Z][a-zA-Z_]*/g;
1273
- textArr.forEach(function (item) {
1274
- var matchValue = item.match(regx);
1275
- if (matchValue) {
1276
- var _target$push;
1277
- var finalItem = matchValue.join('');
1278
- target.push((_target$push = {}, _defineProperty(_target$push, props.saveKey, finalItem), _defineProperty(_target$push, props.displayKey, finalItem), _target$push));
1279
- }
1280
- });
1281
- return target;
1282
- };
1283
- var handlePaste = function handlePaste(e) {
1284
- e.preventDefault();
1285
- // 单选禁止复制粘贴,防止粘贴多个tag
1286
- if (isSingleSelect.value) {
1287
- return false;
1288
- }
1289
- var maxData = props.maxData,
1290
- saveKey = props.saveKey,
1291
- displayKey = props.displayKey,
1292
- pasteFn = props.pasteFn,
1293
- allowCreate = props.allowCreate;
1294
- var value = e.clipboardData.getData('text');
1295
- var valArr = pasteFn ? pasteFn(value) : defaultPasteFn(value);
1296
- var tags = valArr.map(function (value) {
1297
- return value[saveKey];
1298
- });
1299
- if (tags.length) {
1300
- var nodes = getSelectedTagNodes();
1301
- var index = getTagInputItemSite();
1302
- var localInitData = listState.localList.map(function (data) {
1303
- return data[saveKey];
1304
- });
1305
- tags = tags.filter(function (tag) {
1306
- var canSelected = (tag === null || tag === void 0 ? void 0 : tag.trim()) && !tagList.value.includes(tag);
1307
- return allowCreate ? canSelected : canSelected && localInitData.includes(tag);
1308
- });
1309
- // 最大显示限制处理
1310
- if (maxData !== -1) {
1311
- var selectedLength = listState.selectedTagList.length;
1312
- if (selectedLength < maxData) {
1313
- var differ = maxData - selectedLength;
1314
- if (tags.length > differ) {
1315
- tags = _toConsumableArray(tags.slice(0, differ));
1316
- }
1317
- } else {
1318
- tags = [];
1319
- }
1320
- }
1321
- var localTags = allowCreate ? tags.map(function (tag) {
1322
- var _ref6;
1323
- var localTag = listState.localList.find(function (localTag) {
1324
- return localTag[saveKey] === tag;
1325
- });
1326
- return localTag !== null && localTag !== void 0 ? localTag : (_ref6 = {}, _defineProperty(_ref6, saveKey, tag), _defineProperty(_ref6, displayKey, tag), _ref6);
1327
- }) : listState.localList.filter(function (tag) {
1328
- return tags.includes(tag[saveKey]);
1329
- });
1330
- if (tags.length) {
1331
- var _listState$selectedTa;
1332
- (_listState$selectedTa = listState.selectedTagList).splice.apply(_listState$selectedTa, [index, 0].concat(_toConsumableArray(localTags)));
1333
- swapElementPositions(tagInputItemRef.value, nodes[index]);
1334
- tagInputRef.value.style.width = "".concat(INPUT_MIN_WIDTH, "px");
1335
- listState.localList = listState.localList.filter(function (val) {
1336
- return !tags.includes(val[saveKey]);
1337
- });
1338
- handleChange('select');
1339
- focusInputTrigger();
1340
- }
1341
- }
1342
- };
1343
- /**
1344
- * 已选中标签点击
1345
- * @param e mouse event
1346
- */
1347
- var tagFocus = function tagFocus(e) {
1348
- if (props.disabled) {
1349
- return;
1350
- }
1351
- swapElementPositions(tagInputItemRef.value, e.currentTarget, true);
1352
- tagInputRef.value.style.width = "".concat(INPUT_MIN_WIDTH, "px");
1353
- popoverProps.isShow && changePopoverOffset();
1354
- };
1355
- /**
1356
- * add tag
1357
- * @param item current tag data
1358
- * @param type operation type
1359
- */
1360
- var addTag = function addTag(item, type) {
1361
- // 不允许超过最大可选数量
1362
- if (listState.selectedTagList.length >= props.maxData && props.maxData !== -1) return;
1363
- var separator = props.separator,
1364
- saveKey = props.saveKey,
1365
- displayKey = props.displayKey,
1366
- createTagValidator = props.createTagValidator;
1367
- var targetIndex = getTagInputItemSite();
1368
- var moveCount = 1;
1369
- var isSelected = false;
1370
- var newValue;
1371
- var validateTag = function validateTag(value) {
1372
- if (typeof createTagValidator === 'function') {
1373
- return createTagValidator(value);
1374
- }
1375
- return true;
1376
- };
1377
- // 自定义
1378
- if (type === 'custom') {
1379
- // 自定义时,如果配置分隔符可以一次性输入多个值
1380
- if (separator) {
1381
- var tags = item.split(separator);
1382
- tags = tags.filter(function (tag) {
1383
- return (tag === null || tag === void 0 ? void 0 : tag.trim()) && !tagList.value.includes(tag) && validateTag(tag);
1384
- });
1385
- var localTags = tags.map(function (tag) {
1386
- var _ref7;
1387
- return saveKeyMap.value[tag] || (_ref7 = {}, _defineProperty(_ref7, saveKey, tag), _defineProperty(_ref7, displayKey, tag), _ref7);
1388
- });
1389
- if (tags.length) {
1390
- var _listState$selectedTa2;
1391
- (_listState$selectedTa2 = listState.selectedTagList).splice.apply(_listState$selectedTa2, [targetIndex, 0].concat(_toConsumableArray(localTags)));
1392
- moveCount = localTags.length;
1393
- isSelected = true;
1394
- }
1395
- } else {
1396
- var isObject = _typeof(item) === 'object';
1397
- newValue = isObject ? item[saveKey] : item.trim();
1398
- newValue = newValue.replace(/\s+/g, '');
1399
- if (newValue !== undefined && !tagList.value.includes(newValue) && validateTag(newValue)) {
1400
- var _ref8;
1401
- var localItem = saveKeyMap.value[newValue] || (isObject ? item : (_ref8 = {}, _defineProperty(_ref8, saveKey, newValue), _defineProperty(_ref8, displayKey, newValue), _ref8));
1402
- listState.selectedTagList.splice(targetIndex, 0, localItem);
1403
- isSelected = true;
1404
- }
1405
- }
1406
- } else if (item) {
1407
- newValue = item[saveKey];
1408
- if (newValue !== undefined && !tagList.value.includes(newValue)) {
1409
- listState.selectedTagList.splice(targetIndex, 0, item);
1410
- isSelected = true;
1411
- }
1412
- }
1413
- if (isSelected) {
1414
- (0,external_vue_namespaceObject.nextTick)(function () {
1415
- for (var count = 1; count <= moveCount; count++) {
1416
- var nodes = getSelectedTagNodes();
1417
- var site = nodes[targetIndex + count];
1418
- swapElementPositions(site, tagInputItemRef.value);
1419
- }
1420
- tagInputRef.value.style.width = "".concat(INPUT_MIN_WIDTH, "px");
1421
- // 非单选
1422
- if (!isSingleSelect.value) {
1423
- // focus继续让用户进行下一个输入
1424
- props.allowNextFocus && focusInputTrigger();
1425
- // 将已经选中的项从数据列表中去除
1426
- var selectedMap = tagList.value.reduce(function (acc, tag) {
1427
- acc[tag] = 1;
1428
- return acc;
1429
- }, {});
1430
- listState.localList = listState.localList.filter(function (val) {
1431
- return !selectedMap[val[saveKey]];
1432
- });
1433
- }
1434
- });
1435
- }
1436
- };
1437
- /**
1438
- * remove current tag
1439
- * @param data tag data
1440
- * @param index tag index
1441
- */
1442
- var removeTag = function removeTag(data, index) {
1443
- listState.selectedTagList.splice(index, 1);
1444
- var isExistInit = saveKeyMap.value[data[props.saveKey]];
1445
- // 将删除的项加入加列表
1446
- if ((props.allowCreate && isExistInit || !props.allowCreate) && !isSingleSelect.value) {
1447
- listState.localList.push(data);
1448
- }
1449
- };
1450
- // 折叠 tags index
1451
- var localCollapseTags = (0,external_vue_namespaceObject.computed)(function () {
1452
- return props.collapseTags ? props.collapseTags && !state.isEdit : props.collapseTags;
1453
- });
1454
- var _useTagsOverflow = useTagsOverflow(bkTagSelectorRef, localCollapseTags, tagList),
1455
- overflowTagIndex = _useTagsOverflow.overflowTagIndex;
1456
- return Object.assign(Object.assign(Object.assign(Object.assign({
1457
- popoverProps: popoverProps
1458
- }, (0,external_vue_namespaceObject.toRefs)(state)), (0,external_vue_namespaceObject.toRefs)(listState)), (0,external_vue_namespaceObject.toRefs)(pageState)), {
1459
- isShowPlaceholder: isShowPlaceholder,
1460
- isShowClear: isShowClear,
1461
- placeholderText: placeholderText,
1462
- curInputValue: curInputValue,
1463
- renderList: renderList,
1464
- showTagClose: showTagClose,
1465
- tagInputRef: tagInputRef,
1466
- bkTagSelectorRef: bkTagSelectorRef,
1467
- tagListRef: tagListRef,
1468
- tagInputItemRef: tagInputItemRef,
1469
- selectorListRef: selectorListRef,
1470
- triggerClass: triggerClass,
1471
- overflowTagIndex: overflowTagIndex,
1472
- localCollapseTags: localCollapseTags,
1473
- focusInputTrigger: focusInputTrigger,
1474
- activeClass: activeClass,
1475
- handleInput: handleInput,
1476
- handleFocus: handleFocus,
1477
- handleBlur: handleBlur,
1478
- handleTagSelected: handleTagSelected,
1479
- handleTagRemove: handleTagRemove,
1480
- handleClear: handleClear,
1481
- tagFocus: tagFocus,
1482
- handleKeydown: handleKeydown,
1483
- handlePaste: handlePaste,
1484
- resolveClassName: resolveClassName
1485
- });
1486
- },
1487
- render: function render() {
1488
- var _this = this;
1489
- return (0,external_vue_namespaceObject.createVNode)("div", {
1490
- "class": "".concat(this.resolveClassName('tag-input')),
1491
- "ref": "bkTagSelectorRef",
1492
- "onClick": this.focusInputTrigger,
1493
- "onMouseenter": function onMouseenter() {
1494
- return _this.isHover = true;
1495
- },
1496
- "onMouseleave": function onMouseleave() {
1497
- return _this.isHover = false;
1498
- }
1499
- }, [(0,external_vue_namespaceObject.createVNode)(external_popover_namespaceObject["default"], (0,external_vue_namespaceObject.mergeProps)({
1500
- "theme": "light ".concat(this.resolveClassName('tag-input-popover-content')),
1501
- "trigger": "manual",
1502
- "placement": "bottom-start",
1503
- "arrow": false
1504
- }, this.popoverProps), {
1505
- "default": function _default() {
1506
- var _a, _b, _c;
1507
- return (0,external_vue_namespaceObject.createVNode)("div", {
1508
- "class": _this.triggerClass
1509
- }, [(0,external_vue_namespaceObject.createVNode)("ul", {
1510
- "class": "tag-list",
1511
- "ref": "tagListRef",
1512
- "style": {
1513
- marginLeft: "".concat(_this.leftSpace, "px")
1514
- }
1515
- }, [_this.selectedTagList.map(function (item, index) {
1516
- var tooltips = {
1517
- boundary: 'window',
1518
- theme: 'light',
1519
- distance: 12,
1520
- content: item[_this.tooltipKey],
1521
- disabled: !_this.tooltipKey
1522
- };
1523
- var isOverflow = _this.localCollapseTags && _this.overflowTagIndex && index >= _this.overflowTagIndex;
1524
- return (0,external_vue_namespaceObject.withDirectives)((0,external_vue_namespaceObject.createVNode)("li", {
1525
- "class": "tag-item",
1526
- "style": {
1527
- display: isOverflow ? 'none' : ''
1528
- },
1529
- "onClick": _this.tagFocus
1530
- }, [(0,external_vue_namespaceObject.createVNode)(tag_render, {
1531
- "node": item,
1532
- "tpl": _this.tagTpl,
1533
- "displayKey": _this.displayKey,
1534
- "hasTips": !!_this.tooltipKey,
1535
- "tagOverflowTips": _this.tagOverflowTips
1536
- }, null), _this.showTagClose ? (0,external_vue_namespaceObject.createVNode)(external_icon_namespaceObject.Error, {
1537
- "class": "remove-tag",
1538
- "onClick": _this.handleTagRemove.bind(_this, item, index)
1539
- }, null) : null]), [[(0,external_vue_namespaceObject.resolveDirective)("bk-tooltips"), tooltips]]);
1540
- }), (0,external_vue_namespaceObject.withDirectives)((0,external_vue_namespaceObject.createVNode)("li", {
1541
- "ref": "tagInputItemRef",
1542
- "id": "tagInputItem",
1543
- "class": "tag-input-item",
1544
- "role": "input"
1545
- }, [(0,external_vue_namespaceObject.withDirectives)((0,external_vue_namespaceObject.createVNode)("input", {
1546
- "type": "text",
1547
- "class": "tag-input",
1548
- "ref": "tagInputRef",
1549
- "onUpdate:modelValue": function onUpdateModelValue($event) {
1550
- return _this.curInputValue = $event;
1551
- },
1552
- "onInput": _this.handleInput,
1553
- "onFocus": _this.handleFocus,
1554
- "onBlur": _this.handleBlur,
1555
- "onKeydown": _this.handleKeydown,
1556
- "onPaste": _this.handlePaste
1557
- }, null), [[external_vue_namespaceObject.vModelText, _this.curInputValue]])]), [[external_vue_namespaceObject.vShow, _this.isEdit]]), !!_this.overflowTagIndex && _this.localCollapseTags && (0,external_vue_namespaceObject.createVNode)("li", {
1558
- "class": "tag-item"
1559
- }, [(0,external_vue_namespaceObject.createVNode)("div", {
1560
- "class": "tag"
1561
- }, [(0,external_vue_namespaceObject.createVNode)("span", {
1562
- "class": "text"
1563
- }, [(0,external_vue_namespaceObject.createTextVNode)("+"), _this.selectedTagList.length - _this.overflowTagIndex])])])]), (0,external_vue_namespaceObject.withDirectives)((0,external_vue_namespaceObject.createVNode)("p", {
1564
- "class": "placeholder"
1565
- }, [_this.placeholderText]), [[external_vue_namespaceObject.vShow, _this.isShowPlaceholder]]), (_c = (_b = (_a = _this.$slots) === null || _a === void 0 ? void 0 : _a.suffix) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : _this.isShowClear && (0,external_vue_namespaceObject.createVNode)(external_icon_namespaceObject.Close, {
1566
- "class": "clear-icon",
1567
- "onClick": _this.handleClear
1568
- }, null)]);
1569
- },
1570
- content: function content() {
1571
- return (0,external_vue_namespaceObject.createVNode)("div", {
1572
- "class": "".concat(_this.resolveClassName('selector-list'))
1573
- }, [(0,external_vue_namespaceObject.createVNode)("ul", {
1574
- "ref": "selectorListRef",
1575
- "style": {
1576
- 'max-height': "".concat(_this.contentMaxHeight, "px")
1577
- },
1578
- "class": "outside-ul"
1579
- }, [_this.renderList.map(function (group, index) {
1580
- return _this.useGroup ? (0,external_vue_namespaceObject.createVNode)("li", {
1581
- "class": "".concat(_this.resolveClassName('selector-group-item'))
1582
- }, [(0,external_vue_namespaceObject.createVNode)("span", {
1583
- "class": "group-name"
1584
- }, [group.name, (0,external_vue_namespaceObject.createTextVNode)(" ("), group.children.length, (0,external_vue_namespaceObject.createTextVNode)(")")]), (0,external_vue_namespaceObject.createVNode)("ul", {
1585
- "class": "".concat(_this.resolveClassName('selector-group-list-item'))
1586
- }, [group.children.map(function (item, index) {
1587
- return (0,external_vue_namespaceObject.createVNode)("li", {
1588
- "class": ["".concat(_this.resolveClassName('selector-list-item')), {
1589
- disabled: item.disabled
1590
- }, _this.activeClass(item, index)],
1591
- "onClick": _this.handleTagSelected.bind(_this, item, 'select')
1592
- }, [(0,external_vue_namespaceObject.createVNode)(list_tag_render, {
1593
- "node": item,
1594
- "displayKey": _this.displayKey,
1595
- "tpl": _this.tpl,
1596
- "searchKey": _this.searchKey,
1597
- "searchKeyword": _this.curInputValue
1598
- }, null)]);
1599
- })])]) : (0,external_vue_namespaceObject.createVNode)("li", {
1600
- "class": ["".concat(_this.resolveClassName('selector-list-item')), {
1601
- disabled: group.disabled
1602
- }, _this.activeClass(group, index)],
1603
- "onClick": _this.handleTagSelected.bind(_this, group, 'select')
1604
- }, [(0,external_vue_namespaceObject.createVNode)(list_tag_render, {
1605
- "node": group,
1606
- "displayKey": _this.displayKey,
1607
- "tpl": _this.tpl,
1608
- "searchKey": _this.searchKey,
1609
- "searchKeyword": _this.curInputValue
1610
- }, null)]);
1611
- }), _this.isPageLoading ? (0,external_vue_namespaceObject.createVNode)("li", {
1612
- "class": "".concat(_this.resolveClassName('selector-list-item'), " loading")
1613
- }, [(0,external_vue_namespaceObject.createVNode)(external_loading_namespaceObject["default"], {
1614
- "theme": "primary",
1615
- "size": external_loading_namespaceObject.BkLoadingSize.Small
1616
- }, null)]) : null])]);
1617
- }
1618
- })]);
1619
- }
1620
- }));
1621
- ;// CONCATENATED MODULE: ../../packages/tag-input/src/index.ts
1622
- /*
1623
- * Tencent is pleased to support the open source community by making
1624
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
1625
- *
1626
- * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
1627
- *
1628
- * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
1629
- *
1630
- * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
1631
- *
1632
- * ---------------------------------------------------
1633
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
1634
- * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
1635
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
1636
- * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
1637
- *
1638
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
1639
- * the Software.
1640
- *
1641
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
1642
- * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1643
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
1644
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
1645
- * IN THE SOFTWARE.
1646
- */
1647
-
1648
-
1649
- var TagInput = (0,external_shared_namespaceObject.withInstall)(tag_input);
1650
- /* harmony default export */ const src = (TagInput);
1651
- var __webpack_exports__default = __webpack_exports__.Z;
1652
- export { __webpack_exports__default as default };
1
+ import*as e from"../shared";import*as t from"vue";import*as a from"lodash";import*as r from"../config-provider";import*as o from"../directives";import*as n from"../icon";import*as l from"../loading";import*as i from"../popover";import*as s from"vue-types";var c={d:(e,t)=>{for(var a in t)c.o(t,a)&&!c.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},u={};c.d(u,{Z:()=>A});const d=(p={PropTypes:()=>e.PropTypes,checkOverflow:()=>e.checkOverflow,useFormItem:()=>e.useFormItem,withInstall:()=>e.withInstall},f={},c.d(f,p),f);var p,f;function v(e){return v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v(e)}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}function h(e,t){if(e){if("string"==typeof e)return g(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?g(e,t):void 0}}function y(e){return function(e){if(Array.isArray(e))return g(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||h(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t,a){return(t=function(e){var t=function(e,t){if("object"!==v(e)||null===e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var r=a.call(e,"string");if("object"!==v(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===v(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const T=(e=>{var t={};return c.d(t,e),t})({computed:()=>t.computed,createTextVNode:()=>t.createTextVNode,createVNode:()=>t.createVNode,defineComponent:()=>t.defineComponent,h:()=>t.h,markRaw:()=>t.markRaw,mergeProps:()=>t.mergeProps,nextTick:()=>t.nextTick,onMounted:()=>t.onMounted,reactive:()=>t.reactive,ref:()=>t.ref,resolveDirective:()=>t.resolveDirective,toRefs:()=>t.toRefs,vModelText:()=>t.vModelText,vShow:()=>t.vShow,watch:()=>t.watch,withDirectives:()=>t.withDirectives}),w=(e=>{var t={};return c.d(t,e),t})({debounce:()=>a.debounce}),b=(e=>{var t={};return c.d(t,e),t})({useLocale:()=>r.useLocale,usePrefix:()=>r.usePrefix}),L=(e=>{var t={};return c.d(t,e),t})({bkTooltips:()=>o.bkTooltips}),P=(e=>{var t={};return c.d(t,e),t})({Close:()=>n.Close,Error:()=>n.Error}),x=(e=>{var t={};return c.d(t,e),t})({BkLoadingSize:()=>l.BkLoadingSize,default:()=>l.default}),I=(e=>{var t={};return c.d(t,e),t})({default:()=>i.default});var C=12,S=function(e){for(var t=e.length,a=0,r=0;r<t;r++)0!=(65280&e.charCodeAt(r))&&(a+=1),a+=1;return a};const N=(0,T.defineComponent)({name:"ListTagRender",props:{node:d.PropTypes.object,searchKey:d.PropTypes.oneOfType([d.PropTypes.string,d.PropTypes.arrayOf(d.PropTypes.string)]),displayKey:d.PropTypes.string,searchKeyword:d.PropTypes.string,tpl:{type:Function}},render:function(){var e=this,t=(0,b.usePrefix)().resolveClassName,a=function(t){if(e.searchKeyword){var a=new RegExp("(".concat(e.searchKeyword,")"),"i");return t.replace(a,'<strong class="highlight-text">$1</strong>')}return t};if(this.tpl)return this.tpl(this.node,a,T.h,this);var r=this.node[this.displayKey];return(0,T.createVNode)("div",{class:"".concat(t("selector-node"))},[(0,T.createVNode)("span",{class:"text",innerHTML:a(r)},[r])])}}),K=(e=>{var t={};return c.d(t,e),t})({toType:()=>s.toType});var V;!function(e){e.FOCUS="focus",e.SEARCH="search"}(V||(V={}));const O=(0,T.defineComponent)({name:"TagRender",directives:{bkTooltips:L.bkTooltips},props:{node:d.PropTypes.object,displayKey:d.PropTypes.string,tpl:{type:Function},hasTips:{type:Boolean,default:!1},tagOverflowTips:{type:Object,default:function(){return{}}}},setup:function(e){var t=(0,T.ref)(),a=(0,T.ref)(!1),r=(0,T.computed)((function(){return Object.assign({boundary:"window",theme:"light",distance:12,content:e.node[e.displayKey],disabled:e.hasTips||!a.value},e.tagOverflowTips)}));return(0,T.onMounted)((function(){a.value=(0,d.checkOverflow)(t.value)})),{overflowTips:r,tagRef:t}},render:function(){return this.tpl?this.tpl(this.node,T.h,this):(0,T.withDirectives)((0,T.createVNode)("div",{class:"tag",ref:"tagRef"},[(0,T.createVNode)("span",{class:"text"},[this.node[this.displayKey]])]),[[(0,T.resolveDirective)("bk-tooltips"),this.overflowTips]])}}),k=(0,T.defineComponent)({name:"TagInput",directives:{bkTooltips:L.bkTooltips},props:{modelValue:d.PropTypes.arrayOf(d.PropTypes.string).def([]),placeholder:d.PropTypes.string.def(""),list:d.PropTypes.arrayOf(d.PropTypes.object).def([]),disabled:d.PropTypes.bool.def(!1),tooltipKey:d.PropTypes.string.def(""),saveKey:d.PropTypes.string.def("id"),displayKey:d.PropTypes.string.def("name"),hasDeleteIcon:d.PropTypes.bool.def(!1),clearable:d.PropTypes.bool.def(!0),trigger:(0,K.toType)("treeTriggerType",{}).def(V.SEARCH),searchKey:d.PropTypes.oneOfType([d.PropTypes.string,d.PropTypes.arrayOf(d.PropTypes.string)]).def("name"),useGroup:d.PropTypes.bool.def(!1),allowCreate:d.PropTypes.bool.def(!1),maxData:d.PropTypes.number.def(-1),maxResult:d.PropTypes.number.def(10),contentMaxHeight:d.PropTypes.number.def(300),contentWidth:d.PropTypes.number.def(190),separator:d.PropTypes.string.def(""),allowNextFocus:d.PropTypes.bool.def(!0),allowAutoMatch:d.PropTypes.bool.def(!1),showClearOnlyHover:d.PropTypes.bool.def(!1),isAsyncList:d.PropTypes.bool.def(!1),leftSpace:d.PropTypes.number.def(0),createTagValidator:{type:Function},filterCallback:{type:Function},tagTpl:{type:Function},tpl:{type:Function},pasteFn:{type:Function},withValidate:{type:Boolean,default:!0},popoverProps:{type:Object,default:function(){return{}}},collapseTags:{type:Boolean,default:!1},tagOverflowTips:{type:Object,default:function(){return{}}}},emits:["update:modelValue","change","select","focus","blur","remove","removeAll","input"],setup:function(e,t){var a=t.emit,r=(0,d.useFormItem)(),o=(0,b.useLocale)("tagInput"),n=(0,T.reactive)({isEdit:!1,isHover:!1,focusItemIndex:e.allowCreate?-1:0}),l=(0,T.reactive)(Object.assign({isShow:!1,width:190,offset:{mainAxis:4,crossAxis:0}},e.popoverProps)),i=(0,b.usePrefix)().resolveClassName,s=function(e){var t=(0,T.reactive)({curPage:1,totalSize:0,totalPage:0,pageSize:e,isPageLoading:!1,curPageList:[],renderListPaged:[]});return{pageState:t,initPage:function(){var e,a,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.curPage=1,t.totalSize=r.length,t.totalPage=Math.ceil(t.totalSize/t.pageSize)||1;var o=[];if(t.pageSize>0)for(var n=0;n<t.totalSize;n+=t.pageSize)o.push(r.slice(n,n+t.pageSize));(e=t.renderListPaged).splice.apply(e,[0,t.renderListPaged.length].concat(o)),(a=t.curPageList).splice.apply(a,[0,t.curPageList.length].concat(y(t.renderListPaged[t.curPage-1]||[])))},pageChange:function(e){var a;t.curPage=e,(a=t.curPageList).splice.apply(a,[t.curPageList.length,0].concat(y(t.renderListPaged[t.curPage-1]||[]))),t.isPageLoading=!1}}}((0,T.toRefs)(e).maxResult),c=s.pageState,u=s.initPage,p=s.pageChange,f=(0,T.ref)(""),g=(0,T.ref)(null),L=(0,T.ref)(null),P=(0,T.ref)(null),x=(0,T.ref)(null),I=(0,T.ref)(null),N=(0,T.ref)(null),K=(0,T.computed)((function(){return!e.disabled&&e.hasDeleteIcon})),V=(0,T.computed)((function(){return 1===e.maxData})),O=(0,T.computed)((function(){return 0===E.selectedTagList.length&&""===f.value&&!n.isEdit})),k=(0,T.computed)((function(){return e.placeholder||o.value.placeholder})),A=(0,T.computed)((function(){return e.clearable&&!e.disabled&&0!==E.selectedTagList.length&&(!e.showClearOnlyHover||n.isHover)})),R=(0,T.computed)((function(){var t;return m(t={},"".concat(i("tag-input-trigger")),!0),m(t,"active",n.isEdit),m(t,"disabled",e.disabled),t})),E=(0,T.reactive)({localList:[],tagListCache:[],selectedTagList:[],selectedTagListCache:[]}),D=(0,T.computed)((function(){return E.selectedTagList.map((function(t){return t[e.saveKey]}))})),j=function(e){var t=(0,T.toRefs)(e),a=t.useGroup,r=t.saveKey,o=t.displayKey,n=t.list,l=(0,T.ref)([]),i=(0,T.ref)({});return(0,T.watch)([a,r,o,n],(function(){l.value=[];var e=(0,T.markRaw)(n.value);a.value&&(e=e.reduce((function(e,t){var a=[];return t.children&&(a=t.children.map((function(e){return Object.assign({group:{groupId:t[r.value],groupName:t[o.value]}},e)}))),e.concat(a)}),[])),l.value=e,i.value=e.reduce((function(e,t){return e[t[r.value]]=t,e}),{})}),{immediate:!0,deep:!0}),{flatList:l,saveKeyMap:i}}(e),F=j.flatList,M=j.saveKeyMap,z=(0,T.computed)((function(){if(e.useGroup){var t={};return c.curPageList.forEach((function(e,a){e.__index__=a,t[e.group.groupId]||(t[e.group.groupId]={id:e.group.groupId,name:e.group.groupName,children:[]}),t[e.group.groupId].children.push(e)})),Object.keys(t).map((function(e){return t[e]}))}return c.curPageList}));(0,T.watch)([function(){return F.value}],(function(){(0,T.nextTick)((function(){U()}))}),{deep:!0}),(0,T.watch)((function(){return e.modelValue}),(function(t){var a,o,n;n=t,(o=D.value).length===n.length&&n.every((function(e,t){return o[t]===e}))||((0,T.nextTick)((function(){U()})),e.withValidate&&(null===(a=null==r?void 0:r.validate)||void 0===a||a.call(r,"change")))})),(0,T.watch)(f,(0,w.debounce)((function(){var t=0!==c.curPageList.length,a=f.value;""!==a&&t||""===a&&"focus"===e.trigger&&t?l.isShow=!0:"focus"===e.trigger&&t||(l.isShow=!1)}),150)),(0,T.watch)((function(){return l.isShow}),(function(e){H(),e&&I.value&&((0,T.nextTick)((function(){I.value.scrollTop=0})),I.value.removeEventListener("scroll",B),I.value.addEventListener("scroll",B))})),(0,T.onMounted)((function(){U()}));var H=function(){var e;l.offset.crossAxis=V.value?0:null===(e=x.value)||void 0===e?void 0:e.offsetLeft},B=function(){if(!c.isPageLoading&&0!==I.value.scrollTop){var e=I.value;if(e.scrollTop+e.offsetHeight>=e.scrollHeight){var t=c.curPage+1;t<=c.totalPage&&(c.isPageLoading=!0,setTimeout((function(){p(t)}),500))}}},_=function(){var e;return Array.from((null===(e=P.value)||void 0===e?void 0:e.childNodes)||[]).filter((function(e){return![Node.TEXT_NODE,Node.COMMENT_NODE].includes(e.nodeType)}))},G=function(t){if(!e.disabled){if(null==t?void 0:t.target){var a=t.target.className;(a.indexOf("".concat(i("tag-input-trigger")))>-1||a.indexOf("tag-list")>-1)&&P.value.appendChild(x.value)}clearTimeout(N.value),V.value&&D.value.length&&(E.tagListCache=y(D.value),E.selectedTagListCache=y(E.selectedTagList),f.value=E.selectedTagListCache[0][e.saveKey],ae(E.selectedTagList[0],0),X()),n.isEdit=!0,setTimeout((function(){var t;null===(t=g.value)||void 0===t||t.focus(),"focus"===e.trigger&&0!==E.localList.length&&(Z(),l.isShow?H():l.isShow=!0)}),200)}},U=function(){var t=e.saveKey,a=e.modelValue,r=e.displayKey,o=e.allowCreate,n=e.trigger,i=e.isAsyncList;if(E.selectedTagList=[],E.localList=F.value,a.length){var s={};E.selectedTagList=a.map((function(e){var a,n=M.value[e];return s[e]=1,!n&&o?(m(a={},t,e),m(a,r,e),a):n})).filter((function(e){return e})),V.value||(E.localList=E.localList.filter((function(e){return!s[e[t]]})))}if(i&&f.value)return Z(f.value),void(c.curPageList.length&&(l.isShow=!0));"focus"===n&&Z()},Z=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",a=e.searchKey,r=e.filterCallback,o=t.toLowerCase().trim();if(""!==o){var n;n="function"==typeof r?r(o,a,E.localList)||[]:Array.isArray(a)?E.localList.filter((function(e){return a.some((function(t){return e[t].toLowerCase().indexOf(o)>-1}))})):E.localList.filter((function(e){return e[a].toLowerCase().indexOf(o)>-1})),u(n)}else u(E.localList)},W=function(){f.value=""},$=function(){if(V.value)return 0;var e=_().findIndex((function(e){return"tagInputItem"===e.id}));return e>=0?e:0},q=function(e,t){if(t&&e){var a=t;arguments.length>2&&void 0!==arguments[2]&&arguments[2]&&(a=t.nextElementSibling||null),t.parentNode.insertBefore(e,a)}},X=function(t){var r=e.maxData,o=e.trigger,i=e.allowCreate;if(-1===r||r>D.value.length){var s=((null==t?void 0:t.target)?t.target:f).value,c=S(s);c?(Z(s),g.value.style.width="".concat(c*C,"px")):"focus"===o&&Z()}else J(),f.value="",l.isShow=!1;n.isEdit=!0,n.focusItemIndex=i?-1:0,a("input",f.value)},J=function(){N.value=setTimeout((function(){var t,o,i,s=f.value;if(W(),n.isEdit=!1,V.value){var u=(o=E.tagListCache,i=1,function(e){if(Array.isArray(e))return e}(o)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,o,n,l,i=[],s=!0,c=!1;try{if(n=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;s=!1}else for(;!(s=(r=n.call(a)).done)&&(i.push(r.value),i.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(c)throw o}}return i}}(o,i)||h(o,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];s&&s===u&&E.selectedTagListCache.length?te(E.selectedTagListCache[0],"select"):Y("remove")}else if(e.allowAutoMatch&&s){var d=c.curPageList.find((function(t){return Array.isArray(e.searchKey)?e.searchKey.map((function(e){return t[e]})).includes(s):t[e.searchKey]===s}));d?Q(d,"select"):e.allowCreate&&Q(s,"custom")}l.isShow=!1,a("blur",s,D.value),null===(t=null==r?void 0:r.validate)||void 0===t||t.call(r,"blur")}),200)},Q=function(e,t,a){null==a||a.stopPropagation(),e&&!e.disabled&&(V.value&&(E.tagListCache=[],E.selectedTagListCache=[],E.selectedTagList=[]),te(e,t),Y("select"),W(),l.isShow=!1)},Y=function(e,t){a(e,t),a("update:modelValue",D.value),a("change",D.value)},ee=function(){var e=I.value.clientHeight,t=I.value.getBoundingClientRect().y;(0,T.nextTick)((function(){var a=I.value.querySelector(".".concat(i("selector-actived")));if(a){var r=a.clientHeight,o=a.getBoundingClientRect().y;o<t&&(I.value.scrollTop=I.value.scrollTop-(t-o));var n=o+r-t;n>e&&(I.value.scrollTop=I.value.scrollTop+n-e)}}))},te=function(t,a){if(!(E.selectedTagList.length>=e.maxData&&-1!==e.maxData)){var r,o=e.separator,n=e.saveKey,l=e.displayKey,i=e.createTagValidator,s=$(),c=1,u=!1,d=function(e){return"function"!=typeof i||i(e)};if("custom"===a)if(o){var p,f=t.split(o),h=(f=f.filter((function(e){return(null==e?void 0:e.trim())&&!D.value.includes(e)&&d(e)}))).map((function(e){var t;return M.value[e]||(m(t={},n,e),m(t,l,e),t)}));f.length&&((p=E.selectedTagList).splice.apply(p,[s,0].concat(y(h))),c=h.length,u=!0)}else{var w="object"===v(t);if(void 0!==(r=(r=w?t[n]:t.trim()).replace(/\s+/g,""))&&!D.value.includes(r)&&d(r)){var b,L=M.value[r]||(w?t:(m(b={},n,r),m(b,l,r),b));E.selectedTagList.splice(s,0,L),u=!0}}else t&&(void 0===(r=t[n])||D.value.includes(r)||(E.selectedTagList.splice(s,0,t),u=!0));u&&(0,T.nextTick)((function(){for(var t=1;t<=c;t++){var a=_()[s+t];q(a,x.value)}if(g.value.style.width="".concat(C,"px"),!V.value){e.allowNextFocus&&G();var r=D.value.reduce((function(e,t){return e[t]=1,e}),{});E.localList=E.localList.filter((function(e){return!r[e[n]]}))}}))}},ae=function(t,a){E.selectedTagList.splice(a,1);var r=M.value[t[e.saveKey]];(e.allowCreate&&r||!e.allowCreate)&&!V.value&&E.localList.push(t)},re=(0,T.computed)((function(){return e.collapseTags?e.collapseTags&&!n.isEdit:e.collapseTags})),oe=function(e,t,a){(0,T.watch)([a,t],(function(){o()}),{flush:"post"});var r=(0,T.ref)(null),o=function(){t.value&&(r.value=null,setTimeout((function(){var t=Array.from(e.value.querySelectorAll(".tag-item")),a=t.findIndex((function(e,a){return!!a&&t[a-1].offsetTop!==e.offsetTop}));r.value=a>0?a-1:null})))};return{overflowTagIndex:r}}(L,re,D),ne=oe.overflowTagIndex;return Object.assign(Object.assign(Object.assign(Object.assign({popoverProps:l},(0,T.toRefs)(n)),(0,T.toRefs)(E)),(0,T.toRefs)(c)),{isShowPlaceholder:O,isShowClear:A,placeholderText:k,curInputValue:f,renderList:z,showTagClose:K,tagInputRef:g,bkTagSelectorRef:L,tagListRef:P,tagInputItemRef:x,selectorListRef:I,triggerClass:R,overflowTagIndex:ne,localCollapseTags:re,focusInputTrigger:G,activeClass:function(t,a){var r,o=(m(r={},"".concat(i("selector-actived")),!0),m(r,"".concat(i("selector-selected")),D.value.includes(t[e.saveKey])),r);return e.useGroup?o["".concat(i("selector-actived"))]=t.__index__===n.focusItemIndex:o["".concat(i("selector-actived"))]=a===n.focusItemIndex,o},handleInput:X,handleFocus:function(){var t;l.width=V.value?null===(t=L.value)||void 0===t?void 0:t.clientWidth:e.contentWidth,a("focus")},handleBlur:J,handleTagSelected:Q,handleTagRemove:function(e,t,a){null==a||a.stopPropagation(),ae(e,t),W(),Y("remove",e),g.value.style.width="".concat(C,"px")},handleClear:function(t){t.stopPropagation();var a=E.selectedTagList;E.selectedTagList=[];var r,o=a.filter((function(t){return M.value[t[e.saveKey]]}));(!e.allowCreate||0===o.length)&&e.allowCreate||V.value||(r=E.localList).push.apply(r,y(o)),Y("removeAll")},tagFocus:function(t){e.disabled||(q(x.value,t.currentTarget,!0),g.value.style.width="".concat(C,"px"),l.isShow&&H())},handleKeydown:function(t){if(!c.isPageLoading){var a=t.target.value,r=S(a),o=$(),i=_();switch(t.code){case"ArrowUp":if(t.preventDefault(),!l.isShow)return;n.focusItemIndex=n.focusItemIndex-1,n.focusItemIndex=n.focusItemIndex<0?-1:n.focusItemIndex,-1===n.focusItemIndex&&(n.focusItemIndex=c.curPageList.length-1),ee();break;case"ArrowDown":if(t.preventDefault(),!l.isShow)return;n.focusItemIndex=n.focusItemIndex+1,n.focusItemIndex=n.focusItemIndex>c.curPageList.length-1?c.curPageList.length:n.focusItemIndex,n.focusItemIndex===c.curPageList.length&&(n.focusItemIndex=0),ee();break;case"ArrowLeft":if(n.isEdit=!0,!r){if(o<1)return;q(x.value,i[o-1]),G()}break;case"ArrowRight":if(n.isEdit=!0,!r){if(o===i.length-1)return;q(i[o+1],x.value),G()}break;case"Enter":case"NumpadEnter":!e.allowCreate&&l.isShow||e.allowCreate&&n.focusItemIndex>=0&&l.isShow?Q(c.curPageList[n.focusItemIndex],"select",t):e.allowCreate&&f.value.trim()&&Q(f.value,"custom",t),t.preventDefault();break;case"Backspace":0===o||f.value||function(t,a){var r=_();q(x.value,r[t-1]),E.selectedTagList.splice(t-1,1),G();var o=M.value[a[e.saveKey]];(e.allowCreate&&o||!e.allowCreate)&&!V.value&&E.localList.push(a),g.value="".concat(C,"px"),Y("remove")}(o,E.selectedTagList[o-1])}}},handlePaste:function(t){if(t.preventDefault(),V.value)return!1;var a=e.maxData,r=e.saveKey,o=e.displayKey,n=e.pasteFn,l=e.allowCreate,i=t.clipboardData.getData("text"),s=n?n(i):function(t){var a=[],r=t.split(";"),o=/^[a-zA-Z][a-zA-Z_]*/g;return r.forEach((function(t){var r=t.match(o);if(r){var n,l=r.join("");a.push((m(n={},e.saveKey,l),m(n,e.displayKey,l),n))}})),a}(i),c=s.map((function(e){return e[r]}));if(c.length){var u=_(),d=$(),p=E.localList.map((function(e){return e[r]}));if(c=c.filter((function(e){var t=(null==e?void 0:e.trim())&&!D.value.includes(e);return l?t:t&&p.includes(e)})),-1!==a){var f=E.selectedTagList.length;if(f<a){var v=a-f;c.length>v&&(c=y(c.slice(0,v)))}else c=[]}var h,T=l?c.map((function(e){var t,a=E.localList.find((function(t){return t[r]===e}));return null!=a?a:(m(t={},r,e),m(t,o,e),t)})):E.localList.filter((function(e){return c.includes(e[r])}));c.length&&((h=E.selectedTagList).splice.apply(h,[d,0].concat(y(T))),q(x.value,u[d]),g.value.style.width="".concat(C,"px"),E.localList=E.localList.filter((function(e){return!c.includes(e[r])})),Y("select"),G())}},resolveClassName:i})},render:function(){var e=this;return(0,T.createVNode)("div",{class:"".concat(this.resolveClassName("tag-input")),ref:"bkTagSelectorRef",onClick:this.focusInputTrigger,onMouseenter:function(){return e.isHover=!0},onMouseleave:function(){return e.isHover=!1}},[(0,T.createVNode)(I.default,(0,T.mergeProps)({theme:"light ".concat(this.resolveClassName("tag-input-popover-content")),trigger:"manual",placement:"bottom-start",arrow:!1},this.popoverProps),{default:function(){var t,a,r;return(0,T.createVNode)("div",{class:e.triggerClass},[(0,T.createVNode)("ul",{class:"tag-list",ref:"tagListRef",style:{marginLeft:"".concat(e.leftSpace,"px")}},[e.selectedTagList.map((function(t,a){var r={boundary:"window",theme:"light",distance:12,content:t[e.tooltipKey],disabled:!e.tooltipKey},o=e.localCollapseTags&&e.overflowTagIndex&&a>=e.overflowTagIndex;return(0,T.withDirectives)((0,T.createVNode)("li",{class:"tag-item",style:{display:o?"none":""},onClick:e.tagFocus},[(0,T.createVNode)(O,{node:t,tpl:e.tagTpl,displayKey:e.displayKey,hasTips:!!e.tooltipKey,tagOverflowTips:e.tagOverflowTips},null),e.showTagClose?(0,T.createVNode)(P.Error,{class:"remove-tag",onClick:e.handleTagRemove.bind(e,t,a)},null):null]),[[(0,T.resolveDirective)("bk-tooltips"),r]])})),(0,T.withDirectives)((0,T.createVNode)("li",{ref:"tagInputItemRef",id:"tagInputItem",class:"tag-input-item",role:"input"},[(0,T.withDirectives)((0,T.createVNode)("input",{type:"text",class:"tag-input",ref:"tagInputRef","onUpdate:modelValue":function(t){return e.curInputValue=t},onInput:e.handleInput,onFocus:e.handleFocus,onBlur:e.handleBlur,onKeydown:e.handleKeydown,onPaste:e.handlePaste},null),[[T.vModelText,e.curInputValue]])]),[[T.vShow,e.isEdit]]),!!e.overflowTagIndex&&e.localCollapseTags&&(0,T.createVNode)("li",{class:"tag-item"},[(0,T.createVNode)("div",{class:"tag"},[(0,T.createVNode)("span",{class:"text"},[(0,T.createTextVNode)("+"),e.selectedTagList.length-e.overflowTagIndex])])])]),(0,T.withDirectives)((0,T.createVNode)("p",{class:"placeholder"},[e.placeholderText]),[[T.vShow,e.isShowPlaceholder]]),null!==(r=null===(a=null===(t=e.$slots)||void 0===t?void 0:t.suffix)||void 0===a?void 0:a.call(t))&&void 0!==r?r:e.isShowClear&&(0,T.createVNode)(P.Close,{class:"clear-icon",onClick:e.handleClear},null)])},content:function(){return(0,T.createVNode)("div",{class:"".concat(e.resolveClassName("selector-list"))},[(0,T.createVNode)("ul",{ref:"selectorListRef",style:{"max-height":"".concat(e.contentMaxHeight,"px")},class:"outside-ul"},[e.renderList.map((function(t,a){return e.useGroup?(0,T.createVNode)("li",{class:"".concat(e.resolveClassName("selector-group-item"))},[(0,T.createVNode)("span",{class:"group-name"},[t.name,(0,T.createTextVNode)(" ("),t.children.length,(0,T.createTextVNode)(")")]),(0,T.createVNode)("ul",{class:"".concat(e.resolveClassName("selector-group-list-item"))},[t.children.map((function(t,a){return(0,T.createVNode)("li",{class:["".concat(e.resolveClassName("selector-list-item")),{disabled:t.disabled},e.activeClass(t,a)],onClick:e.handleTagSelected.bind(e,t,"select")},[(0,T.createVNode)(N,{node:t,displayKey:e.displayKey,tpl:e.tpl,searchKey:e.searchKey,searchKeyword:e.curInputValue},null)])}))])]):(0,T.createVNode)("li",{class:["".concat(e.resolveClassName("selector-list-item")),{disabled:t.disabled},e.activeClass(t,a)],onClick:e.handleTagSelected.bind(e,t,"select")},[(0,T.createVNode)(N,{node:t,displayKey:e.displayKey,tpl:e.tpl,searchKey:e.searchKey,searchKeyword:e.curInputValue},null)])})),e.isPageLoading?(0,T.createVNode)("li",{class:"".concat(e.resolveClassName("selector-list-item")," loading")},[(0,T.createVNode)(x.default,{theme:"primary",size:x.BkLoadingSize.Small},null)]):null])])}})])}}),A=(0,d.withInstall)(k);var R=u.Z;export{R as default};