@tagplus/components 5.3.2 → 5.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/dist/demo.html +1 -0
  2. package/dist/fonts/bevi-bold.7e4dcd11.woff +0 -0
  3. package/dist/fonts/bevi-bold.873def84.woff2 +0 -0
  4. package/dist/fonts/bevi-medium.6187e050.woff2 +0 -0
  5. package/dist/fonts/bevi-medium.65b3056d.woff +0 -0
  6. package/dist/fonts/bevi-regular.c89f126e.woff +0 -0
  7. package/dist/fonts/bevi-regular.f81e4b8f.woff2 +0 -0
  8. package/dist/tp.common.js +2 -0
  9. package/dist/tp.common.js.map +1 -0
  10. package/dist/tp.css +167 -0
  11. package/dist/tp.umd.js +2 -0
  12. package/dist/tp.umd.js.map +1 -0
  13. package/dist/tp.umd.min.js +2 -0
  14. package/dist/tp.umd.min.js.map +1 -0
  15. package/package.json +61 -74
  16. package/src/assets/scss/_fonts.scss +27 -0
  17. package/src/assets/scss/_functions.scss +22 -0
  18. package/src/assets/scss/_helpers.scss +112 -0
  19. package/src/assets/scss/_mixins.scss +69 -0
  20. package/src/assets/scss/_overrides.scss +69 -0
  21. package/src/assets/scss/_resass.scss +83 -0
  22. package/src/assets/scss/_variables.scss +27 -0
  23. package/src/assets/scss/index.scss +11 -0
  24. package/src/components/Autosuggest/Autosuggest.vue +791 -0
  25. package/src/components/Autosuggest/index.js +3 -0
  26. package/src/components/Dialog/Dialog.vue +253 -0
  27. package/src/components/Dialog/index.js +3 -0
  28. package/src/components/Inline/Inline.vue +149 -0
  29. package/src/components/Inline/index.js +3 -0
  30. package/src/components/InputNumber/InputNumber.vue +430 -0
  31. package/src/components/InputNumber/index.js +3 -0
  32. package/src/components/Loader/Loader.vue +317 -0
  33. package/src/components/Loader/animations.scss +68 -0
  34. package/src/components/Loader/index.js +3 -0
  35. package/src/components/Money/Money.vue +82 -0
  36. package/src/components/Money/index.js +3 -0
  37. package/src/components/Multisuggest/Multisuggest.vue +858 -0
  38. package/src/components/Multisuggest/index.js +3 -0
  39. package/src/components/OptionsList/OptionsList.vue +61 -0
  40. package/src/components/OptionsList/index.js +3 -0
  41. package/src/components/OptionsListItem/OptionsListItem.vue +191 -0
  42. package/src/components/OptionsListItem/index.js +3 -0
  43. package/src/components/Percent/Percent.vue +81 -0
  44. package/src/components/Percent/index.js +3 -0
  45. package/src/components/Skeleton/Skeleton.vue +137 -0
  46. package/src/components/Skeleton/index.js +3 -0
  47. package/src/components/Step/Step.vue +230 -0
  48. package/src/components/Step/index.js +3 -0
  49. package/src/components/Steps/Steps.vue +18 -0
  50. package/src/components/Steps/index.js +3 -0
  51. package/src/components/Tip/Tip.vue +193 -0
  52. package/src/components/Tip/index.js +3 -0
  53. package/src/components/index.js +31 -0
  54. package/src/locale/index.js +78 -0
  55. package/{dist → src/locale}/lang/en.js +2 -3
  56. package/{dist → src/locale}/lang/pt-br.js +2 -3
  57. package/src/main.js +26 -0
  58. package/src/mixins/floatFormatter.js +53 -0
  59. package/src/mixins/locale.js +9 -0
  60. package/src/utils/currency.js +180 -0
  61. package/src/utils/filters.js +84 -0
  62. package/dist/es/_virtual/_plugin-vue_export-helper.mjs +0 -10
  63. package/dist/es/components.css +0 -2391
  64. package/dist/es/node_modules/@element-plus/icons-vue/dist/index.mjs +0 -148
  65. package/dist/es/node_modules/@popperjs/core/lib/enums.mjs +0 -22
  66. package/dist/es/node_modules/@vue/shared/dist/shared.esm-bundler.mjs +0 -28
  67. package/dist/es/node_modules/@vueuse/core/index.mjs +0 -172
  68. package/dist/es/node_modules/@vueuse/shared/index.mjs +0 -68
  69. package/dist/es/node_modules/element-plus/es/constants/size.mjs +0 -4
  70. package/dist/es/node_modules/element-plus/es/hooks/use-focus-controller/index.mjs +0 -64
  71. package/dist/es/node_modules/element-plus/es/hooks/use-id/index.mjs +0 -30
  72. package/dist/es/node_modules/element-plus/es/hooks/use-locale/index.mjs +0 -29
  73. package/dist/es/node_modules/element-plus/es/hooks/use-namespace/index.mjs +0 -79
  74. package/dist/es/node_modules/element-plus/es/hooks/use-prop/index.mjs +0 -11
  75. package/dist/es/node_modules/element-plus/es/hooks/use-size/index.mjs +0 -20
  76. package/dist/es/node_modules/element-plus/es/locale/lang/en.mjs +0 -182
  77. package/dist/es/node_modules/element-plus/es/utils/error.mjs +0 -16
  78. package/dist/es/node_modules/element-plus/es/utils/types.mjs +0 -9
  79. package/dist/es/node_modules/element-plus/es/utils/vue/props/runtime.mjs +0 -42
  80. package/dist/es/src/components/Autosuggest/Autosuggest.vue.mjs +0 -446
  81. package/dist/es/src/components/Autosuggest/Multisuggest.vue.mjs +0 -17
  82. package/dist/es/src/components/Autosuggest/autosuggest-props.mjs +0 -204
  83. package/dist/es/src/components/Autosuggest/core.mjs +0 -56
  84. package/dist/es/src/components/Autosuggest/multisuggest-props.mjs +0 -11
  85. package/dist/es/src/components/Autosuggest/option.vue.mjs +0 -118
  86. package/dist/es/src/components/Autosuggest/select-dropdown.vue.mjs +0 -62
  87. package/dist/es/src/components/Autosuggest/useOption.mjs +0 -93
  88. package/dist/es/src/components/Autosuggest/useSelect.mjs +0 -803
  89. package/dist/es/src/components/Inline/Inline.vue.mjs +0 -125
  90. package/dist/es/src/components/Inline/index.mjs +0 -4
  91. package/dist/es/src/components/InputNumber/InputNumber.vue.mjs +0 -360
  92. package/dist/es/src/components/InputNumber/index.mjs +0 -4
  93. package/dist/es/src/components/InputNumber/input-number.mjs +0 -128
  94. package/dist/es/src/components/Loader/Loader.vue.mjs +0 -59
  95. package/dist/es/src/components/Loader/index.mjs +0 -4
  96. package/dist/es/src/components/Money/Money.vue.mjs +0 -72
  97. package/dist/es/src/components/Money/index.mjs +0 -4
  98. package/dist/es/src/components/Multisuggest/index.mjs +0 -4
  99. package/dist/es/src/components/OptionsList/OptionsList.vue.mjs +0 -28
  100. package/dist/es/src/components/OptionsList/index.mjs +0 -4
  101. package/dist/es/src/components/OptionsListItem/OptionsListItem.vue.mjs +0 -96
  102. package/dist/es/src/components/OptionsListItem/index.mjs +0 -4
  103. package/dist/es/src/components/Percent/Percent.vue.mjs +0 -73
  104. package/dist/es/src/components/Percent/index.mjs +0 -4
  105. package/dist/es/src/components/Skeleton/Skeleton.vue.mjs +0 -79
  106. package/dist/es/src/components/Skeleton/index.mjs +0 -4
  107. package/dist/es/src/components/Step/Step.vue.mjs +0 -206
  108. package/dist/es/src/components/Step/index.mjs +0 -4
  109. package/dist/es/src/components/Steps/Steps.vue.mjs +0 -15
  110. package/dist/es/src/components/Steps/index.mjs +0 -4
  111. package/dist/es/src/components/Tip/Tip.vue.mjs +0 -160
  112. package/dist/es/src/components/Tip/index.mjs +0 -4
  113. package/dist/es/src/components/index.mjs +0 -32
  114. package/dist/es/src/locale/i18nCreator.mjs +0 -93
  115. package/dist/es/src/locale/lang/pt-br.mjs +0 -21
  116. package/dist/es/src/main.mjs +0 -17
  117. package/dist/es/src/mixins/floatFormatter.mjs +0 -42
  118. package/dist/es/src/plugins/currency.mjs +0 -69
  119. package/dist/es/src/utils/constants.mjs +0 -6
  120. package/dist/es/src/utils/error.mjs +0 -22
  121. package/dist/es/src/utils/i18n.mjs +0 -4
  122. package/dist/es/src/utils/icon.mjs +0 -9
  123. package/dist/es/src/utils/index.mjs +0 -11
  124. package/dist/es/src/utils/runtime.mjs +0 -50
  125. package/dist/es/src/utils/scroll.mjs +0 -28
  126. package/dist/es/src/utils/strings.mjs +0 -4
  127. package/dist/es/src/utils/types.mjs +0 -9
  128. package/dist/es/src/utils/use-derived-namespace.mjs +0 -15
  129. package/dist/es/src/utils/use-form-common-props.mjs +0 -25
  130. package/dist/es/src/utils/use-form-item.mjs +0 -61
  131. package/dist/es/src/utils/use-id.mjs +0 -35
  132. package/dist/es/src/utils/use-input.mjs +0 -31
  133. package/dist/lib/_virtual/_plugin-vue_export-helper.js +0 -10
  134. package/dist/lib/components.css +0 -2391
  135. package/dist/lib/node_modules/@element-plus/icons-vue/dist/index.js +0 -148
  136. package/dist/lib/node_modules/@popperjs/core/lib/enums.js +0 -22
  137. package/dist/lib/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -28
  138. package/dist/lib/node_modules/@vueuse/core/index.js +0 -170
  139. package/dist/lib/node_modules/@vueuse/shared/index.js +0 -68
  140. package/dist/lib/node_modules/element-plus/es/constants/size.js +0 -4
  141. package/dist/lib/node_modules/element-plus/es/hooks/use-focus-controller/index.js +0 -64
  142. package/dist/lib/node_modules/element-plus/es/hooks/use-id/index.js +0 -30
  143. package/dist/lib/node_modules/element-plus/es/hooks/use-locale/index.js +0 -29
  144. package/dist/lib/node_modules/element-plus/es/hooks/use-namespace/index.js +0 -79
  145. package/dist/lib/node_modules/element-plus/es/hooks/use-prop/index.js +0 -11
  146. package/dist/lib/node_modules/element-plus/es/hooks/use-size/index.js +0 -20
  147. package/dist/lib/node_modules/element-plus/es/locale/lang/en.js +0 -182
  148. package/dist/lib/node_modules/element-plus/es/utils/error.js +0 -16
  149. package/dist/lib/node_modules/element-plus/es/utils/types.js +0 -9
  150. package/dist/lib/node_modules/element-plus/es/utils/vue/props/runtime.js +0 -42
  151. package/dist/lib/src/components/Autosuggest/Autosuggest.vue.js +0 -446
  152. package/dist/lib/src/components/Autosuggest/Multisuggest.vue.js +0 -17
  153. package/dist/lib/src/components/Autosuggest/autosuggest-props.js +0 -204
  154. package/dist/lib/src/components/Autosuggest/core.js +0 -56
  155. package/dist/lib/src/components/Autosuggest/multisuggest-props.js +0 -11
  156. package/dist/lib/src/components/Autosuggest/option.vue.js +0 -118
  157. package/dist/lib/src/components/Autosuggest/select-dropdown.vue.js +0 -62
  158. package/dist/lib/src/components/Autosuggest/useOption.js +0 -93
  159. package/dist/lib/src/components/Autosuggest/useSelect.js +0 -803
  160. package/dist/lib/src/components/Inline/Inline.vue.js +0 -125
  161. package/dist/lib/src/components/Inline/index.js +0 -4
  162. package/dist/lib/src/components/InputNumber/InputNumber.vue.js +0 -360
  163. package/dist/lib/src/components/InputNumber/index.js +0 -4
  164. package/dist/lib/src/components/InputNumber/input-number.js +0 -128
  165. package/dist/lib/src/components/Loader/Loader.vue.js +0 -59
  166. package/dist/lib/src/components/Loader/index.js +0 -4
  167. package/dist/lib/src/components/Money/Money.vue.js +0 -72
  168. package/dist/lib/src/components/Money/index.js +0 -4
  169. package/dist/lib/src/components/Multisuggest/index.js +0 -4
  170. package/dist/lib/src/components/OptionsList/OptionsList.vue.js +0 -28
  171. package/dist/lib/src/components/OptionsList/index.js +0 -4
  172. package/dist/lib/src/components/OptionsListItem/OptionsListItem.vue.js +0 -96
  173. package/dist/lib/src/components/OptionsListItem/index.js +0 -4
  174. package/dist/lib/src/components/Percent/Percent.vue.js +0 -73
  175. package/dist/lib/src/components/Percent/index.js +0 -4
  176. package/dist/lib/src/components/Skeleton/Skeleton.vue.js +0 -79
  177. package/dist/lib/src/components/Skeleton/index.js +0 -4
  178. package/dist/lib/src/components/Step/Step.vue.js +0 -206
  179. package/dist/lib/src/components/Step/index.js +0 -4
  180. package/dist/lib/src/components/Steps/Steps.vue.js +0 -15
  181. package/dist/lib/src/components/Steps/index.js +0 -4
  182. package/dist/lib/src/components/Tip/Tip.vue.js +0 -160
  183. package/dist/lib/src/components/Tip/index.js +0 -4
  184. package/dist/lib/src/components/index.js +0 -32
  185. package/dist/lib/src/locale/i18nCreator.js +0 -93
  186. package/dist/lib/src/locale/lang/pt-br.js +0 -21
  187. package/dist/lib/src/main.js +0 -17
  188. package/dist/lib/src/mixins/floatFormatter.js +0 -42
  189. package/dist/lib/src/plugins/currency.js +0 -69
  190. package/dist/lib/src/utils/constants.js +0 -6
  191. package/dist/lib/src/utils/error.js +0 -22
  192. package/dist/lib/src/utils/i18n.js +0 -4
  193. package/dist/lib/src/utils/icon.js +0 -9
  194. package/dist/lib/src/utils/index.js +0 -14
  195. package/dist/lib/src/utils/runtime.js +0 -50
  196. package/dist/lib/src/utils/scroll.js +0 -28
  197. package/dist/lib/src/utils/strings.js +0 -4
  198. package/dist/lib/src/utils/types.js +0 -12
  199. package/dist/lib/src/utils/use-derived-namespace.js +0 -15
  200. package/dist/lib/src/utils/use-form-common-props.js +0 -25
  201. package/dist/lib/src/utils/use-form-item.js +0 -61
  202. package/dist/lib/src/utils/use-id.js +0 -35
  203. package/dist/lib/src/utils/use-input.js +0 -31
@@ -1,56 +0,0 @@
1
- import { provide, reactive } from "vue";
2
- import { ClickOutside } from "element-plus";
3
- import { ArrowDown as arrow_down_default } from "../../../node_modules/@element-plus/icons-vue/dist/index.mjs";
4
- import ElSelectMenu from "./select-dropdown.vue.mjs";
5
- import ElOption from "./option.vue.mjs";
6
- import { useSelect } from "./useSelect.mjs";
7
- function autosuggestCore(component_name, propsDefinition) {
8
- return {
9
- name: component_name,
10
- componentName: component_name,
11
- directives: {
12
- ClickOutside
13
- },
14
- components: {
15
- ArrowDown: arrow_down_default,
16
- ElOption,
17
- ElSelectMenu
18
- },
19
- props: propsDefinition,
20
- emits: [
21
- "update:modelValue",
22
- "change",
23
- "remove-tag",
24
- "clear",
25
- "visible-change",
26
- "focus",
27
- "blur"
28
- ],
29
- setup(props, context) {
30
- const API = useSelect(props, context);
31
- provide(
32
- "select",
33
- reactive({
34
- props,
35
- states: API.states,
36
- optionsArray: API.optionsArray,
37
- handleOptionSelect: API.handleOptionSelect,
38
- onOptionCreate: API.onOptionCreate,
39
- onOptionDestroy: API.onOptionDestroy,
40
- selectRef: API.selectRef,
41
- setSelected: API.setSelected
42
- })
43
- );
44
- return API;
45
- },
46
- data() {
47
- return {
48
- visible: false,
49
- tooltipVisible: false
50
- };
51
- }
52
- };
53
- }
54
- export {
55
- autosuggestCore as default
56
- };
@@ -1,11 +0,0 @@
1
- import autosuggestProps from "./autosuggest-props.mjs";
2
- const multisuggestProps = {
3
- ...autosuggestProps,
4
- multiple: {
5
- type: Boolean,
6
- default: true
7
- }
8
- };
9
- export {
10
- multisuggestProps as default
11
- };
@@ -1,118 +0,0 @@
1
- import { defineComponent, computed, unref, toRefs, reactive, getCurrentInstance, onBeforeUnmount, nextTick, withDirectives, createElementBlock, openBlock, withModifiers, normalizeClass, renderSlot, createElementVNode, toDisplayString, vShow } from "vue";
2
- import { useOption } from "./useOption.mjs";
3
- import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
4
- import { useNamespace } from "../../../node_modules/element-plus/es/hooks/use-namespace/index.mjs";
5
- import { useId } from "../../../node_modules/element-plus/es/hooks/use-id/index.mjs";
6
- const _sfc_main = defineComponent({
7
- name: "ElOption",
8
- componentName: "ElOption",
9
- props: {
10
- /**
11
- * @description value of option
12
- */
13
- value: {
14
- required: true,
15
- type: [String, Number, Boolean, Object, null]
16
- },
17
- /**
18
- * @description label of option, same as `value` if omitted
19
- */
20
- label: [String, Number],
21
- created: Boolean,
22
- /**
23
- * @description whether option is disabled
24
- */
25
- disabled: Boolean,
26
- /**
27
- * @tagplus
28
- * @description recebe o item inteiro para ser emitido, ao inves de somente key/value
29
- */
30
- item: {
31
- type: [String, Number, Boolean, Object],
32
- required: true
33
- }
34
- },
35
- setup(props) {
36
- const ns = useNamespace("select");
37
- const id = useId();
38
- const containerKls = computed(() => [
39
- ns.be("dropdown", "item"),
40
- ns.is("disabled", unref(isDisabled)),
41
- ns.is("selected", unref(itemSelected)),
42
- ns.is("hovering", unref(hover))
43
- ]);
44
- const states = reactive({
45
- index: -1,
46
- groupDisabled: false,
47
- visible: true,
48
- hover: false
49
- });
50
- const {
51
- currentLabel,
52
- itemSelected,
53
- isDisabled,
54
- select,
55
- hoverItem,
56
- updateOption
57
- } = useOption(props, states);
58
- const { visible, hover } = toRefs(states);
59
- const vm = getCurrentInstance().proxy;
60
- select.onOptionCreate(vm);
61
- onBeforeUnmount(() => {
62
- const key = vm.value;
63
- const { selected } = select.states;
64
- const selectedOptions = select.props.multiple ? selected : [selected];
65
- const doesSelected = selectedOptions.some((item) => {
66
- return item.value === vm.value;
67
- });
68
- nextTick(() => {
69
- if (select.states.cachedOptions.get(key) === vm && !doesSelected) {
70
- select.states.cachedOptions.delete(key);
71
- }
72
- });
73
- select.onOptionDestroy(key, vm);
74
- });
75
- function selectOptionClick() {
76
- if (props.disabled !== true && states.groupDisabled !== true) {
77
- select.handleOptionSelect(vm);
78
- }
79
- }
80
- return {
81
- ns,
82
- id,
83
- containerKls,
84
- currentLabel,
85
- itemSelected,
86
- isDisabled,
87
- select,
88
- hoverItem,
89
- updateOption,
90
- visible,
91
- hover,
92
- selectOptionClick,
93
- states
94
- };
95
- }
96
- });
97
- const _hoisted_1 = ["id", "aria-disabled", "aria-selected"];
98
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
99
- return withDirectives((openBlock(), createElementBlock("li", {
100
- id: _ctx.id,
101
- class: normalizeClass(_ctx.containerKls),
102
- role: "option",
103
- "aria-disabled": _ctx.isDisabled || void 0,
104
- "aria-selected": _ctx.itemSelected,
105
- onMouseenter: _cache[0] || (_cache[0] = (...args) => _ctx.hoverItem && _ctx.hoverItem(...args)),
106
- onClick: _cache[1] || (_cache[1] = withModifiers((...args) => _ctx.selectOptionClick && _ctx.selectOptionClick(...args), ["stop"]))
107
- }, [
108
- renderSlot(_ctx.$slots, "default", {}, () => [
109
- createElementVNode("span", null, toDisplayString(_ctx.currentLabel), 1)
110
- ])
111
- ], 42, _hoisted_1)), [
112
- [vShow, _ctx.visible]
113
- ]);
114
- }
115
- const ElOption = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
116
- export {
117
- ElOption as default
118
- };
@@ -1,62 +0,0 @@
1
- import { defineComponent, ref, createElementBlock, openBlock, normalizeStyle, normalizeClass, createCommentVNode, renderSlot } from "vue";
2
- import { useResizeObserver } from "../../../node_modules/@vueuse/core/index.mjs";
3
- import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
4
- import { useNamespace } from "../../../node_modules/element-plus/es/hooks/use-namespace/index.mjs";
5
- const _sfc_main = defineComponent({
6
- name: "ElSelectDropdown",
7
- componentName: "ElSelectDropdown",
8
- inject: ["select"],
9
- setup() {
10
- const ns = useNamespace("select");
11
- const minWidth = ref("");
12
- return {
13
- ns,
14
- minWidth
15
- };
16
- },
17
- computed: {
18
- popperClass() {
19
- return this.select.popperClass;
20
- },
21
- isMultiple() {
22
- return this.select.multiple;
23
- },
24
- isFitInputWidth() {
25
- return this.select.fitInputWidth;
26
- }
27
- },
28
- mounted() {
29
- this.updateMinWidth();
30
- useResizeObserver(this.select.selectRef, this.updateMinWidth);
31
- },
32
- methods: {
33
- updateMinWidth() {
34
- var _a;
35
- this.minWidth = `${(_a = this.select.selectRef) == null ? void 0 : _a.offsetWidth}px`;
36
- }
37
- }
38
- });
39
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
40
- return openBlock(), createElementBlock("div", {
41
- class: normalizeClass([_ctx.ns.b("dropdown"), _ctx.ns.is("multiple", _ctx.isMultiple), _ctx.popperClass]),
42
- style: normalizeStyle({ [_ctx.isFitInputWidth ? "width" : "minWidth"]: _ctx.minWidth })
43
- }, [
44
- _ctx.$slots.header ? (openBlock(), createElementBlock("div", {
45
- key: 0,
46
- class: normalizeClass(_ctx.ns.be("dropdown", "header"))
47
- }, [
48
- renderSlot(_ctx.$slots, "header")
49
- ], 2)) : createCommentVNode("", true),
50
- renderSlot(_ctx.$slots, "default"),
51
- _ctx.$slots.footer ? (openBlock(), createElementBlock("div", {
52
- key: 1,
53
- class: normalizeClass(_ctx.ns.be("dropdown", "footer"))
54
- }, [
55
- renderSlot(_ctx.$slots, "footer")
56
- ], 2)) : createCommentVNode("", true)
57
- ], 6);
58
- }
59
- const ElSelectMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
60
- export {
61
- ElSelectMenu as default
62
- };
@@ -1,93 +0,0 @@
1
- import { inject, computed, getCurrentInstance, toRaw, watch } from "vue";
2
- import { get, isEqual } from "lodash-es";
3
- import { isObject } from "../../../node_modules/@vue/shared/dist/shared.esm-bundler.mjs";
4
- import { escapeStringRegexp } from "../../utils/strings.mjs";
5
- function useOption(props, states) {
6
- const select = inject("select");
7
- const selectGroup = inject("ElSelectGroup", { disabled: false });
8
- const itemSelected = computed(() => {
9
- if (select.props.multiple) {
10
- return contains(select.props.modelValue, props.value);
11
- } else {
12
- return contains([select.props.modelValue], props.value);
13
- }
14
- });
15
- const limitReached = computed(() => {
16
- if (select.props.multiple) {
17
- const modelValue = select.props.modelValue || [];
18
- return !itemSelected.value && modelValue.length >= select.props.multipleLimit && select.props.multipleLimit > 0;
19
- } else {
20
- return false;
21
- }
22
- });
23
- const currentLabel = computed(() => {
24
- return props.label || (isObject(props.value) ? "" : props.value);
25
- });
26
- const currentValue = computed(() => {
27
- return props.value || props.label || "";
28
- });
29
- const isDisabled = computed(() => {
30
- return props.disabled || states.groupDisabled || limitReached.value;
31
- });
32
- const instance = getCurrentInstance();
33
- const contains = (arr = [], target) => {
34
- if (!isObject(props.value)) {
35
- return arr && arr.includes(target);
36
- } else {
37
- const valueKey = select.props.valueKey;
38
- return arr && arr.some((item) => {
39
- return toRaw(get(item, valueKey)) === get(target, valueKey);
40
- });
41
- }
42
- };
43
- const hoverItem = () => {
44
- if (!props.disabled && !selectGroup.disabled) {
45
- select.states.hoveringIndex = select.optionsArray.indexOf(instance.proxy);
46
- }
47
- };
48
- const updateOption = (query) => {
49
- const regexp = new RegExp(escapeStringRegexp(query), "i");
50
- states.visible = regexp.test(currentLabel.value) || props.created;
51
- };
52
- watch(
53
- () => currentLabel.value,
54
- () => {
55
- if (!props.created && !select.props.remote) select.setSelected();
56
- }
57
- );
58
- watch(
59
- () => props.value,
60
- (val, oldVal) => {
61
- const { remote, valueKey } = select.props;
62
- if (!isEqual(val, oldVal)) {
63
- select.onOptionDestroy(oldVal, instance.proxy);
64
- select.onOptionCreate(instance.proxy);
65
- }
66
- if (!props.created && !remote) {
67
- if (valueKey && isObject(val) && isObject(oldVal) && val[valueKey] === oldVal[valueKey]) {
68
- return;
69
- }
70
- select.setSelected();
71
- }
72
- }
73
- );
74
- watch(
75
- () => selectGroup.disabled,
76
- () => {
77
- states.groupDisabled = selectGroup.disabled;
78
- },
79
- { immediate: true }
80
- );
81
- return {
82
- select,
83
- currentLabel,
84
- currentValue,
85
- itemSelected,
86
- isDisabled,
87
- hoverItem,
88
- updateOption
89
- };
90
- }
91
- export {
92
- useOption
93
- };