@tagplus/components 5.2.19 → 5.3.1

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 (146) hide show
  1. package/dist/es/_virtual/_plugin-vue_export-helper.mjs +10 -0
  2. package/dist/es/components.css +2391 -0
  3. package/dist/es/node_modules/@element-plus/icons-vue/dist/index.mjs +148 -0
  4. package/dist/es/node_modules/@popperjs/core/lib/enums.mjs +22 -0
  5. package/dist/es/node_modules/@vue/shared/dist/shared.esm-bundler.mjs +28 -0
  6. package/dist/es/node_modules/@vueuse/core/index.mjs +172 -0
  7. package/dist/es/node_modules/@vueuse/shared/index.mjs +68 -0
  8. package/dist/es/node_modules/element-plus/es/constants/size.mjs +4 -0
  9. package/dist/es/node_modules/element-plus/es/hooks/use-focus-controller/index.mjs +64 -0
  10. package/dist/es/node_modules/element-plus/es/hooks/use-id/index.mjs +30 -0
  11. package/dist/es/node_modules/element-plus/es/hooks/use-locale/index.mjs +29 -0
  12. package/dist/es/node_modules/element-plus/es/hooks/use-namespace/index.mjs +79 -0
  13. package/dist/es/node_modules/element-plus/es/hooks/use-prop/index.mjs +11 -0
  14. package/dist/es/node_modules/element-plus/es/hooks/use-size/index.mjs +20 -0
  15. package/dist/es/node_modules/element-plus/es/locale/lang/en.mjs +182 -0
  16. package/dist/es/node_modules/element-plus/es/utils/error.mjs +16 -0
  17. package/dist/es/node_modules/element-plus/es/utils/types.mjs +9 -0
  18. package/dist/es/node_modules/element-plus/es/utils/vue/props/runtime.mjs +42 -0
  19. package/dist/es/src/components/Autosuggest/Autosuggest.vue.mjs +446 -0
  20. package/dist/es/src/components/Autosuggest/Multisuggest.vue.mjs +17 -0
  21. package/dist/es/src/components/Autosuggest/autosuggest-props.mjs +204 -0
  22. package/dist/es/src/components/Autosuggest/core.mjs +56 -0
  23. package/dist/es/src/components/Autosuggest/multisuggest-props.mjs +11 -0
  24. package/dist/es/src/components/Autosuggest/option.vue.mjs +118 -0
  25. package/dist/es/src/components/Autosuggest/select-dropdown.vue.mjs +62 -0
  26. package/dist/es/src/components/Autosuggest/useOption.mjs +93 -0
  27. package/dist/es/src/components/Autosuggest/useSelect.mjs +803 -0
  28. package/dist/es/src/components/Inline/Inline.vue.mjs +125 -0
  29. package/dist/es/src/components/Inline/index.mjs +4 -0
  30. package/dist/es/src/components/InputNumber/InputNumber.vue.mjs +360 -0
  31. package/dist/es/src/components/InputNumber/index.mjs +4 -0
  32. package/dist/es/src/components/InputNumber/input-number.mjs +128 -0
  33. package/dist/es/src/components/Loader/Loader.vue.mjs +59 -0
  34. package/dist/es/src/components/Loader/index.mjs +4 -0
  35. package/dist/es/src/components/Money/Money.vue.mjs +72 -0
  36. package/dist/es/src/components/Money/index.mjs +4 -0
  37. package/dist/es/src/components/Multisuggest/index.mjs +4 -0
  38. package/dist/es/src/components/OptionsList/OptionsList.vue.mjs +28 -0
  39. package/dist/es/src/components/OptionsList/index.mjs +4 -0
  40. package/dist/es/src/components/OptionsListItem/OptionsListItem.vue.mjs +96 -0
  41. package/dist/es/src/components/OptionsListItem/index.mjs +4 -0
  42. package/dist/es/src/components/Percent/Percent.vue.mjs +73 -0
  43. package/dist/es/src/components/Percent/index.mjs +4 -0
  44. package/dist/es/src/components/Skeleton/Skeleton.vue.mjs +79 -0
  45. package/dist/es/src/components/Skeleton/index.mjs +4 -0
  46. package/dist/es/src/components/Step/Step.vue.mjs +206 -0
  47. package/dist/es/src/components/Step/index.mjs +4 -0
  48. package/dist/es/src/components/Steps/Steps.vue.mjs +15 -0
  49. package/dist/es/src/components/Steps/index.mjs +4 -0
  50. package/dist/es/src/components/Tip/Tip.vue.mjs +160 -0
  51. package/dist/es/src/components/Tip/index.mjs +4 -0
  52. package/dist/es/src/components/index.mjs +32 -0
  53. package/dist/es/src/locale/i18nCreator.mjs +93 -0
  54. package/dist/es/src/locale/lang/pt-br.mjs +21 -0
  55. package/dist/es/src/main.mjs +17 -0
  56. package/dist/es/src/mixins/floatFormatter.mjs +42 -0
  57. package/dist/es/src/plugins/currency.mjs +69 -0
  58. package/dist/es/src/utils/constants.mjs +6 -0
  59. package/dist/es/src/utils/error.mjs +22 -0
  60. package/dist/es/src/utils/i18n.mjs +4 -0
  61. package/dist/es/src/utils/icon.mjs +9 -0
  62. package/dist/es/src/utils/index.mjs +11 -0
  63. package/dist/es/src/utils/runtime.mjs +50 -0
  64. package/dist/es/src/utils/scroll.mjs +28 -0
  65. package/dist/es/src/utils/strings.mjs +4 -0
  66. package/dist/es/src/utils/types.mjs +9 -0
  67. package/dist/es/src/utils/use-derived-namespace.mjs +15 -0
  68. package/dist/es/src/utils/use-form-common-props.mjs +25 -0
  69. package/dist/es/src/utils/use-form-item.mjs +61 -0
  70. package/dist/es/src/utils/use-id.mjs +35 -0
  71. package/dist/es/src/utils/use-input.mjs +31 -0
  72. package/dist/lib/_virtual/_plugin-vue_export-helper.js +10 -0
  73. package/dist/lib/components.css +2391 -0
  74. package/dist/lib/node_modules/@element-plus/icons-vue/dist/index.js +148 -0
  75. package/dist/lib/node_modules/@popperjs/core/lib/enums.js +22 -0
  76. package/dist/lib/node_modules/@vue/shared/dist/shared.esm-bundler.js +28 -0
  77. package/dist/lib/node_modules/@vueuse/core/index.js +170 -0
  78. package/dist/lib/node_modules/@vueuse/shared/index.js +68 -0
  79. package/dist/lib/node_modules/element-plus/es/constants/size.js +4 -0
  80. package/dist/lib/node_modules/element-plus/es/hooks/use-focus-controller/index.js +64 -0
  81. package/dist/lib/node_modules/element-plus/es/hooks/use-id/index.js +30 -0
  82. package/dist/lib/node_modules/element-plus/es/hooks/use-locale/index.js +29 -0
  83. package/dist/lib/node_modules/element-plus/es/hooks/use-namespace/index.js +79 -0
  84. package/dist/lib/node_modules/element-plus/es/hooks/use-prop/index.js +11 -0
  85. package/dist/lib/node_modules/element-plus/es/hooks/use-size/index.js +20 -0
  86. package/dist/lib/node_modules/element-plus/es/locale/lang/en.js +182 -0
  87. package/dist/lib/node_modules/element-plus/es/utils/error.js +16 -0
  88. package/dist/lib/node_modules/element-plus/es/utils/types.js +9 -0
  89. package/dist/lib/node_modules/element-plus/es/utils/vue/props/runtime.js +42 -0
  90. package/dist/lib/src/components/Autosuggest/Autosuggest.vue.js +446 -0
  91. package/dist/lib/src/components/Autosuggest/Multisuggest.vue.js +17 -0
  92. package/dist/lib/src/components/Autosuggest/autosuggest-props.js +204 -0
  93. package/dist/lib/src/components/Autosuggest/core.js +56 -0
  94. package/dist/lib/src/components/Autosuggest/multisuggest-props.js +11 -0
  95. package/dist/lib/src/components/Autosuggest/option.vue.js +118 -0
  96. package/dist/lib/src/components/Autosuggest/select-dropdown.vue.js +62 -0
  97. package/dist/lib/src/components/Autosuggest/useOption.js +93 -0
  98. package/dist/lib/src/components/Autosuggest/useSelect.js +803 -0
  99. package/dist/lib/src/components/Inline/Inline.vue.js +125 -0
  100. package/dist/lib/src/components/Inline/index.js +4 -0
  101. package/dist/lib/src/components/InputNumber/InputNumber.vue.js +360 -0
  102. package/dist/lib/src/components/InputNumber/index.js +4 -0
  103. package/dist/lib/src/components/InputNumber/input-number.js +128 -0
  104. package/dist/lib/src/components/Loader/Loader.vue.js +59 -0
  105. package/dist/lib/src/components/Loader/index.js +4 -0
  106. package/dist/lib/src/components/Money/Money.vue.js +72 -0
  107. package/dist/lib/src/components/Money/index.js +4 -0
  108. package/dist/lib/src/components/Multisuggest/index.js +4 -0
  109. package/dist/lib/src/components/OptionsList/OptionsList.vue.js +28 -0
  110. package/dist/lib/src/components/OptionsList/index.js +4 -0
  111. package/dist/lib/src/components/OptionsListItem/OptionsListItem.vue.js +96 -0
  112. package/dist/lib/src/components/OptionsListItem/index.js +4 -0
  113. package/dist/lib/src/components/Percent/Percent.vue.js +73 -0
  114. package/dist/lib/src/components/Percent/index.js +4 -0
  115. package/dist/lib/src/components/Skeleton/Skeleton.vue.js +79 -0
  116. package/dist/lib/src/components/Skeleton/index.js +4 -0
  117. package/dist/lib/src/components/Step/Step.vue.js +206 -0
  118. package/dist/lib/src/components/Step/index.js +4 -0
  119. package/dist/lib/src/components/Steps/Steps.vue.js +15 -0
  120. package/dist/lib/src/components/Steps/index.js +4 -0
  121. package/dist/lib/src/components/Tip/Tip.vue.js +160 -0
  122. package/dist/lib/src/components/Tip/index.js +4 -0
  123. package/dist/lib/src/components/index.js +32 -0
  124. package/dist/lib/src/locale/i18nCreator.js +93 -0
  125. package/dist/lib/src/locale/lang/pt-br.js +21 -0
  126. package/dist/lib/src/main.js +17 -0
  127. package/dist/lib/src/mixins/floatFormatter.js +42 -0
  128. package/dist/lib/src/plugins/currency.js +69 -0
  129. package/dist/lib/src/utils/constants.js +6 -0
  130. package/dist/lib/src/utils/error.js +22 -0
  131. package/dist/lib/src/utils/i18n.js +4 -0
  132. package/dist/lib/src/utils/icon.js +9 -0
  133. package/dist/lib/src/utils/index.js +14 -0
  134. package/dist/lib/src/utils/runtime.js +50 -0
  135. package/dist/lib/src/utils/scroll.js +28 -0
  136. package/dist/lib/src/utils/strings.js +4 -0
  137. package/dist/lib/src/utils/types.js +12 -0
  138. package/dist/lib/src/utils/use-derived-namespace.js +15 -0
  139. package/dist/lib/src/utils/use-form-common-props.js +25 -0
  140. package/dist/lib/src/utils/use-form-item.js +61 -0
  141. package/dist/lib/src/utils/use-id.js +35 -0
  142. package/dist/lib/src/utils/use-input.js +31 -0
  143. package/package.json +18 -15
  144. package/dist/main.bundle.js +0 -2
  145. package/dist/main.bundle.js.LICENSE.txt +0 -15
  146. package/dist/main.css +0 -11
@@ -0,0 +1,125 @@
1
+ import { defineComponent, resolveComponent, createElementBlock, openBlock, createBlock, createElementVNode, withKeys, createCommentVNode, toDisplayString, withCtx, createVNode, createTextVNode } from "vue";
2
+ import { Check as check_default } from "../../../node_modules/@element-plus/icons-vue/dist/index.mjs";
3
+ /* empty css */
4
+ import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
5
+ const _sfc_main = defineComponent({
6
+ name: "TpInline",
7
+ props: {
8
+ id: {
9
+ type: String,
10
+ required: false,
11
+ default: null
12
+ },
13
+ value: {
14
+ type: [Number, String],
15
+ default: ""
16
+ },
17
+ readonly: {
18
+ type: Boolean,
19
+ default: false
20
+ },
21
+ inputHidden: {
22
+ type: Boolean,
23
+ default: true
24
+ },
25
+ buttonText: {
26
+ type: String,
27
+ default: "Ok"
28
+ }
29
+ },
30
+ emits: ["input", "change", "blur"],
31
+ data() {
32
+ return {
33
+ hideInput: true,
34
+ ElIconCheck: check_default
35
+ };
36
+ },
37
+ computed: {
38
+ _id() {
39
+ return this.id || this.$options.name;
40
+ }
41
+ },
42
+ mounted() {
43
+ this.hideInput = this.inputHidden;
44
+ },
45
+ methods: {
46
+ toggleInput() {
47
+ const status = !this.hideInput;
48
+ if (this.readonly) {
49
+ this.hideInput = true;
50
+ } else if (!this.readonly) {
51
+ this.hideInput = status;
52
+ if (!this.hideInput) {
53
+ this.$nextTick(function() {
54
+ this.$refs.inlineInput.focus();
55
+ });
56
+ }
57
+ }
58
+ },
59
+ input(event) {
60
+ this.$emit("input", event);
61
+ },
62
+ blur(event) {
63
+ this.$emit("blur", event);
64
+ }
65
+ }
66
+ });
67
+ const _hoisted_1 = ["id"];
68
+ const _hoisted_2 = {
69
+ key: 0,
70
+ "data-tid": "inline-span"
71
+ };
72
+ const _hoisted_3 = ["id"];
73
+ const _hoisted_4 = { "data-tid": "inline-value" };
74
+ const _hoisted_5 = {
75
+ key: 0,
76
+ class: "el-icon-edit"
77
+ };
78
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
79
+ const _component_el_button = resolveComponent("el-button");
80
+ const _component_el_input = resolveComponent("el-input");
81
+ return openBlock(), createElementBlock("div", {
82
+ id: `${_ctx._id}-wrapper`,
83
+ class: "tp-inline"
84
+ }, [
85
+ _ctx.hideInput || _ctx.readonly ? (openBlock(), createElementBlock("span", _hoisted_2, [
86
+ createElementVNode("a", {
87
+ id: `${_ctx._id}-toggle`,
88
+ tabindex: "0",
89
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.toggleInput && _ctx.toggleInput(...args)),
90
+ onKeypress: _cache[1] || (_cache[1] = withKeys((...args) => _ctx.toggleInput && _ctx.toggleInput(...args), ["enter"]))
91
+ }, [
92
+ createElementVNode("span", _hoisted_4, toDisplayString(_ctx.value), 1),
93
+ !_ctx.readonly ? (openBlock(), createElementBlock("small", _hoisted_5)) : createCommentVNode("", true)
94
+ ], 40, _hoisted_3)
95
+ ])) : (openBlock(), createBlock(_component_el_input, {
96
+ key: 1,
97
+ id: `${_ctx._id}-input`,
98
+ ref: "inlineInput",
99
+ "model-value": _ctx.value,
100
+ "data-tid": "inline-input",
101
+ onInput: _ctx.input,
102
+ onBlur: _ctx.blur,
103
+ onKeypress: withKeys(_ctx.toggleInput, ["enter"])
104
+ }, {
105
+ append: withCtx(() => [
106
+ createVNode(_component_el_button, {
107
+ id: `${_ctx._id}-btn`,
108
+ icon: _ctx.ElIconCheck,
109
+ "data-tid": "inline-button",
110
+ onClick: _ctx.toggleInput
111
+ }, {
112
+ default: withCtx(() => [
113
+ createTextVNode(toDisplayString(_ctx.buttonText), 1)
114
+ ]),
115
+ _: 1
116
+ }, 8, ["id", "icon", "onClick"])
117
+ ]),
118
+ _: 1
119
+ }, 8, ["id", "model-value", "onInput", "onBlur", "onKeypress"]))
120
+ ], 8, _hoisted_1);
121
+ }
122
+ const Inline = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-202cdb93"]]);
123
+ export {
124
+ Inline as default
125
+ };
@@ -0,0 +1,4 @@
1
+ import Inline from "./Inline.vue.mjs";
2
+ export {
3
+ Inline as default
4
+ };
@@ -0,0 +1,360 @@
1
+ import { ref, getCurrentInstance, reactive, computed, watch, onMounted, onUpdated, resolveComponent, createElementBlock, openBlock, withModifiers, normalizeClass, unref, withDirectives, createCommentVNode, createBlock, withKeys, createVNode, withCtx } from "vue";
2
+ import { isNil } from "lodash-es";
3
+ import { isNumber, isUndefined } from "../../utils/types.mjs";
4
+ import { debugWarn, throwError } from "../../utils/error.mjs";
5
+ import { isString } from "../../../node_modules/@vue/shared/dist/shared.esm-bundler.mjs";
6
+ import { ArrowDown as arrow_down_default, Minus as minus_default, ArrowUp as arrow_up_default, Plus as plus_default } from "../../../node_modules/@element-plus/icons-vue/dist/index.mjs";
7
+ import { useFormItem } from "../../utils/use-form-item.mjs";
8
+ import { useFormSize, useFormDisabled } from "../../utils/use-form-common-props.mjs";
9
+ import { vRepeatClick } from "element-plus";
10
+ import { inputNumberEmits, inputNumberProps } from "./input-number.mjs";
11
+ import { useLocale } from "../../../node_modules/element-plus/es/hooks/use-locale/index.mjs";
12
+ import { useNamespace } from "../../../node_modules/element-plus/es/hooks/use-namespace/index.mjs";
13
+ const _hoisted_1 = ["aria-label"];
14
+ const _hoisted_2 = ["aria-label"];
15
+ const UPDATE_MODEL_EVENT = "update:modelValue";
16
+ const CHANGE_EVENT = "change";
17
+ const INPUT_EVENT = "input";
18
+ const _sfc_main = /* @__PURE__ */ Object.assign({
19
+ name: "TpInputNumber"
20
+ }, {
21
+ __name: "InputNumber",
22
+ props: inputNumberProps,
23
+ emits: inputNumberEmits,
24
+ setup(__props, { expose: __expose, emit: __emit }) {
25
+ const props = __props;
26
+ const emit = __emit;
27
+ const { t } = useLocale();
28
+ const ns = useNamespace("input-number");
29
+ const input = ref();
30
+ const vm = getCurrentInstance().proxy;
31
+ const key = ref(1);
32
+ const data = reactive({
33
+ currentValue: props.modelValue,
34
+ userInput: null
35
+ });
36
+ const { formItem } = useFormItem();
37
+ const minDisabled = computed(
38
+ () => isNumber(props.modelValue) && props.modelValue <= props.min
39
+ );
40
+ const maxDisabled = computed(
41
+ () => isNumber(props.modelValue) && props.modelValue >= props.max
42
+ );
43
+ const numPrecision = computed(() => {
44
+ const stepPrecision = getPrecision(props.step);
45
+ if (!isUndefined(props.precision)) {
46
+ if (stepPrecision > props.precision) {
47
+ debugWarn(
48
+ "InputNumber",
49
+ "precision should not be less than the decimal places of step"
50
+ );
51
+ }
52
+ return props.precision;
53
+ } else {
54
+ return Math.max(getPrecision(props.modelValue), stepPrecision);
55
+ }
56
+ });
57
+ const controlsAtRight = computed(() => {
58
+ return props.controls && props.controlsPosition === "right";
59
+ });
60
+ const inputNumberSize = useFormSize();
61
+ const inputNumberDisabled = useFormDisabled();
62
+ const displayValue = computed(() => {
63
+ if (data.userInput !== null) {
64
+ return data.userInput;
65
+ }
66
+ let currentValue = data.currentValue;
67
+ const fallbackValue = props.stringDefaultsZero ? 0 : "";
68
+ if (props.modelValue === "" || isNil(currentValue) || currentValue === "") {
69
+ return fallbackValue;
70
+ }
71
+ if (isNumber(currentValue)) {
72
+ if (Number.isNaN(currentValue)) return fallbackValue;
73
+ if (!isUndefined(props.precision)) {
74
+ currentValue = currentValue.toFixed(props.precision);
75
+ }
76
+ }
77
+ return currentValue;
78
+ });
79
+ const displayFormatter = computed(() => {
80
+ const decimalChar = vm.$t("locale.number.decimal");
81
+ const thousandsChar = vm.$t("locale.number.thousands");
82
+ return (value) => {
83
+ const noLetters = value.replaceAll(/[a-zA-Z]/g, "");
84
+ const res = noLetters.replace(".", decimalChar).replace(/\B(?=(\d{3})+(?!\d))/g, thousandsChar);
85
+ return res;
86
+ };
87
+ });
88
+ const inputParser = computed(() => {
89
+ const decimalChar = vm.$t("locale.number.decimal");
90
+ const thousandsChar = vm.$t("locale.number.thousands");
91
+ return (value) => {
92
+ const regexThou = `/$s?|(${thousandsChar}*)/g`;
93
+ const res = value.replace(regexThou, "").replace(decimalChar, ".");
94
+ return res;
95
+ };
96
+ });
97
+ const toPrecision = (num, pre) => {
98
+ if (isUndefined(pre)) pre = numPrecision.value;
99
+ if (pre === 0) return Math.round(num);
100
+ let snum = String(num);
101
+ const pointPos = snum.indexOf(".");
102
+ if (pointPos === -1) return num;
103
+ const nums = snum.replace(".", "").split("");
104
+ const datum = nums[pointPos + pre];
105
+ if (!datum) return num;
106
+ const length = snum.length;
107
+ if (snum.charAt(length - 1) === "5") {
108
+ snum = `${snum.slice(0, Math.max(0, length - 1))}6`;
109
+ }
110
+ return Number.parseFloat(Number(snum).toFixed(pre));
111
+ };
112
+ const getPrecision = (value) => {
113
+ if (isNil(value)) return 0;
114
+ const valueString = value.toString();
115
+ const dotPosition = valueString.indexOf(".");
116
+ let precision = 0;
117
+ if (dotPosition !== -1) {
118
+ precision = valueString.length - dotPosition - 1;
119
+ }
120
+ return precision;
121
+ };
122
+ const ensurePrecision = (val, coefficient = 1) => {
123
+ if (!isNumber(val)) return data.currentValue;
124
+ return toPrecision(val + props.step * coefficient);
125
+ };
126
+ const increase = () => {
127
+ if (props.readonly || inputNumberDisabled.value || maxDisabled.value) return;
128
+ const value = Number(displayValue.value) || 0;
129
+ const newVal = ensurePrecision(value);
130
+ setCurrentValue(newVal);
131
+ emit(INPUT_EVENT, data.currentValue);
132
+ setCurrentValueToModelValue();
133
+ };
134
+ const decrease = () => {
135
+ if (props.readonly || inputNumberDisabled.value || minDisabled.value) return;
136
+ const value = Number(displayValue.value) || 0;
137
+ const newVal = ensurePrecision(value, -1);
138
+ setCurrentValue(newVal);
139
+ emit(INPUT_EVENT, data.currentValue);
140
+ setCurrentValueToModelValue();
141
+ };
142
+ const verifyValue = (value, update) => {
143
+ const { max, min, step, precision, stepStrictly, valueOnClear } = props;
144
+ if (max < min) {
145
+ throwError("InputNumber", "min should not be greater than max.");
146
+ }
147
+ let newVal = Number(value);
148
+ if (isNil(value) || Number.isNaN(newVal)) {
149
+ return null;
150
+ }
151
+ if (value === "") {
152
+ if (valueOnClear === null) {
153
+ return null;
154
+ }
155
+ newVal = isString(valueOnClear) ? { min, max }[valueOnClear] : valueOnClear;
156
+ }
157
+ if (stepStrictly) {
158
+ newVal = toPrecision(Math.round(newVal / step) * step, precision);
159
+ }
160
+ if (!isUndefined(precision)) {
161
+ newVal = toPrecision(newVal, precision);
162
+ }
163
+ if (newVal > max || newVal < min) {
164
+ newVal = newVal > max ? max : min;
165
+ update && emit(UPDATE_MODEL_EVENT, newVal);
166
+ }
167
+ return newVal;
168
+ };
169
+ const setCurrentValue = (value, emitChange = true) => {
170
+ var _a;
171
+ const oldVal = data.currentValue;
172
+ const newVal = verifyValue(value);
173
+ if (!emitChange) {
174
+ emit(UPDATE_MODEL_EVENT, newVal);
175
+ return;
176
+ }
177
+ if (oldVal === newVal) return;
178
+ data.userInput = null;
179
+ emit(UPDATE_MODEL_EVENT, newVal);
180
+ emit(CHANGE_EVENT, newVal, oldVal);
181
+ if (props.validateEvent) {
182
+ (_a = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a.call(formItem, "change").catch((err) => debugWarn(err));
183
+ }
184
+ data.currentValue = newVal;
185
+ };
186
+ const handleInput = (value) => {
187
+ data.userInput = value;
188
+ const newVal = value === "" ? null : Number(value);
189
+ emit(INPUT_EVENT, newVal);
190
+ setCurrentValue(newVal, false);
191
+ };
192
+ const handleInputChange = (value) => {
193
+ const newVal = value !== "" ? Number(value) : "";
194
+ if (isNumber(newVal) && !Number.isNaN(newVal) || value === "") {
195
+ setCurrentValue(newVal);
196
+ }
197
+ setCurrentValueToModelValue();
198
+ data.userInput = null;
199
+ };
200
+ const focus = () => {
201
+ var _a, _b;
202
+ (_b = (_a = input.value) == null ? void 0 : _a.focus) == null ? void 0 : _b.call(_a);
203
+ };
204
+ const blur = () => {
205
+ var _a, _b;
206
+ (_b = (_a = input.value) == null ? void 0 : _a.blur) == null ? void 0 : _b.call(_a);
207
+ };
208
+ const handleFocus = (event) => {
209
+ emit("focus", event);
210
+ };
211
+ const handleBlur = (event) => {
212
+ var _a;
213
+ data.userInput = null;
214
+ emit("blur", event);
215
+ if (props.validateEvent) {
216
+ (_a = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a.call(formItem, "blur").catch((err) => debugWarn(err));
217
+ }
218
+ };
219
+ const setCurrentValueToModelValue = () => {
220
+ if (data.currentValue !== props.modelValue) {
221
+ data.currentValue = props.modelValue;
222
+ }
223
+ };
224
+ watch(
225
+ () => props.modelValue,
226
+ (value, oldValue) => {
227
+ const newValue = verifyValue(value, true);
228
+ if (data.userInput === null && newValue !== oldValue) {
229
+ data.currentValue = newValue;
230
+ }
231
+ },
232
+ { immediate: true }
233
+ );
234
+ watch(
235
+ () => vm.$i18nHelper.hooks.onLanguageChanged,
236
+ (value, oldValue) => {
237
+ key.value++;
238
+ }
239
+ );
240
+ onMounted(() => {
241
+ var _a;
242
+ const { min, max, modelValue } = props;
243
+ const innerInput = (_a = input.value) == null ? void 0 : _a.input;
244
+ innerInput.setAttribute("role", "spinbutton");
245
+ if (Number.isFinite(max)) {
246
+ innerInput.setAttribute("aria-valuemax", String(max));
247
+ } else {
248
+ innerInput.removeAttribute("aria-valuemax");
249
+ }
250
+ if (Number.isFinite(min)) {
251
+ innerInput.setAttribute("aria-valuemin", String(min));
252
+ } else {
253
+ innerInput.removeAttribute("aria-valuemin");
254
+ }
255
+ innerInput.setAttribute(
256
+ "aria-valuenow",
257
+ data.currentValue || data.currentValue === 0 ? String(data.currentValue) : ""
258
+ );
259
+ innerInput.setAttribute("aria-disabled", String(inputNumberDisabled.value));
260
+ if (!isNumber(modelValue) && modelValue != null) {
261
+ let val = Number(modelValue);
262
+ if (Number.isNaN(val)) {
263
+ val = null;
264
+ }
265
+ emit(UPDATE_MODEL_EVENT, val);
266
+ }
267
+ });
268
+ onUpdated(() => {
269
+ var _a;
270
+ const innerInput = (_a = input.value) == null ? void 0 : _a.input;
271
+ innerInput == null ? void 0 : innerInput.setAttribute("aria-valuenow", `${data.currentValue ?? ""}`);
272
+ });
273
+ __expose({
274
+ /** @description get focus the input component */
275
+ focus,
276
+ /** @description remove focus the input component */
277
+ blur
278
+ });
279
+ return (_ctx, _cache) => {
280
+ const _component_el_icon = resolveComponent("el-icon");
281
+ const _component_el_input = resolveComponent("el-input");
282
+ return openBlock(), createElementBlock("div", {
283
+ class: normalizeClass([
284
+ unref(ns).b(),
285
+ unref(ns).m(unref(inputNumberSize)),
286
+ unref(ns).is("disabled", unref(inputNumberDisabled)),
287
+ unref(ns).is("without-controls", !_ctx.controls),
288
+ unref(ns).is("controls-right", controlsAtRight.value)
289
+ ]),
290
+ onDragstart: _cache[1] || (_cache[1] = withModifiers(() => {
291
+ }, ["prevent"]))
292
+ }, [
293
+ _ctx.controls ? withDirectives((openBlock(), createElementBlock("span", {
294
+ key: 0,
295
+ role: "button",
296
+ "aria-label": unref(t)("el.inputNumber.decrease"),
297
+ class: normalizeClass([unref(ns).e("decrease"), unref(ns).is("disabled", minDisabled.value)]),
298
+ onKeydown: withKeys(decrease, ["enter"])
299
+ }, [
300
+ createVNode(_component_el_icon, null, {
301
+ default: withCtx(() => [
302
+ controlsAtRight.value ? (openBlock(), createBlock(unref(arrow_down_default), { key: 0 })) : (openBlock(), createBlock(unref(minus_default), { key: 1 }))
303
+ ]),
304
+ _: 1
305
+ })
306
+ ], 42, _hoisted_1)), [
307
+ [unref(vRepeatClick), decrease]
308
+ ]) : createCommentVNode("", true),
309
+ _ctx.controls ? withDirectives((openBlock(), createElementBlock("span", {
310
+ key: 1,
311
+ role: "button",
312
+ "aria-label": unref(t)("el.inputNumber.increase"),
313
+ class: normalizeClass([unref(ns).e("increase"), unref(ns).is("disabled", maxDisabled.value)]),
314
+ onKeydown: withKeys(increase, ["enter"])
315
+ }, [
316
+ createVNode(_component_el_icon, null, {
317
+ default: withCtx(() => [
318
+ controlsAtRight.value ? (openBlock(), createBlock(unref(arrow_up_default), { key: 0 })) : (openBlock(), createBlock(unref(plus_default), { key: 1 }))
319
+ ]),
320
+ _: 1
321
+ })
322
+ ], 42, _hoisted_2)), [
323
+ [unref(vRepeatClick), increase]
324
+ ]) : createCommentVNode("", true),
325
+ (openBlock(), createBlock(_component_el_input, {
326
+ id: _ctx.id,
327
+ ref_key: "input",
328
+ ref: input,
329
+ key: key.value,
330
+ step: _ctx.step,
331
+ "model-value": displayValue.value,
332
+ formatter: displayFormatter.value,
333
+ parser: inputParser.value,
334
+ placeholder: _ctx.placeholder,
335
+ readonly: _ctx.readonly,
336
+ disabled: unref(inputNumberDisabled),
337
+ size: unref(inputNumberSize),
338
+ max: _ctx.max,
339
+ min: _ctx.min,
340
+ name: _ctx.name,
341
+ label: _ctx.label,
342
+ "validate-event": false,
343
+ onWheel: _cache[0] || (_cache[0] = withModifiers(() => {
344
+ }, ["prevent"])),
345
+ onKeydown: [
346
+ withKeys(withModifiers(increase, ["prevent"]), ["up"]),
347
+ withKeys(withModifiers(decrease, ["prevent"]), ["down"])
348
+ ],
349
+ onBlur: handleBlur,
350
+ onFocus: handleFocus,
351
+ onInput: handleInput,
352
+ onChange: handleInputChange
353
+ }, null, 8, ["id", "step", "model-value", "formatter", "parser", "placeholder", "readonly", "disabled", "size", "max", "min", "name", "label", "onKeydown"]))
354
+ ], 34);
355
+ };
356
+ }
357
+ });
358
+ export {
359
+ _sfc_main as default
360
+ };
@@ -0,0 +1,4 @@
1
+ import _sfc_main from "./InputNumber.vue.mjs";
2
+ export {
3
+ _sfc_main as default
4
+ };
@@ -0,0 +1,128 @@
1
+ import { isNil } from "lodash-es";
2
+ import { UPDATE_MODEL_EVENT, INPUT_EVENT, CHANGE_EVENT } from "../../utils/index.mjs";
3
+ import { buildProps } from "../../utils/runtime.mjs";
4
+ import { useSizeProp } from "../../../node_modules/element-plus/es/hooks/use-size/index.mjs";
5
+ import { isNumber } from "../../utils/types.mjs";
6
+ const inputNumberProps = buildProps({
7
+ /**
8
+ * @description same as `id` in native input
9
+ */
10
+ id: {
11
+ type: String,
12
+ default: void 0
13
+ },
14
+ /**
15
+ * @description incremental step
16
+ */
17
+ step: {
18
+ type: Number,
19
+ default: 1
20
+ },
21
+ /**
22
+ * @description whether input value can only be multiple of step
23
+ */
24
+ stepStrictly: Boolean,
25
+ /**
26
+ * @description the maximum allowed value
27
+ */
28
+ max: {
29
+ type: Number,
30
+ default: Number.POSITIVE_INFINITY
31
+ },
32
+ /**
33
+ * @description the minimum allowed value
34
+ */
35
+ min: {
36
+ type: Number,
37
+ default: Number.NEGATIVE_INFINITY
38
+ },
39
+ /**
40
+ * @description binding value
41
+ */
42
+ modelValue: {
43
+ type: [Number, String],
44
+ default: null
45
+ },
46
+ /**
47
+ * @description same as `readonly` in native input
48
+ */
49
+ readonly: Boolean,
50
+ /**
51
+ * @description whether the component is disabled
52
+ */
53
+ disabled: Boolean,
54
+ /**
55
+ * @description size of the component
56
+ */
57
+ size: useSizeProp,
58
+ /**
59
+ * @description whether to enable the control buttons
60
+ */
61
+ controls: {
62
+ type: Boolean,
63
+ default: true
64
+ },
65
+ /**
66
+ * @description position of the control buttons
67
+ */
68
+ controlsPosition: {
69
+ type: String,
70
+ default: "",
71
+ values: ["", "right"]
72
+ },
73
+ /**
74
+ * @description value should be set when input box is cleared
75
+ */
76
+ valueOnClear: {
77
+ type: [String, Number, null],
78
+ validator: (val) => val === null || isNumber(val) || ["min", "max"].includes(val),
79
+ default: null
80
+ },
81
+ /**
82
+ * @description same as `name` in native input
83
+ */
84
+ name: String,
85
+ /**
86
+ * @description same as `label` in native input
87
+ */
88
+ label: String,
89
+ /**
90
+ * @description same as `placeholder` in native input
91
+ */
92
+ placeholder: String,
93
+ /**
94
+ * @tagplus default 2
95
+ * @description precision of input value
96
+ */
97
+ precision: {
98
+ type: Number,
99
+ default: 2,
100
+ validator: (val) => val >= 0 && val === Number.parseInt(`${val}`, 10)
101
+ },
102
+ /**
103
+ * @description whether to trigger form validation
104
+ */
105
+ validateEvent: {
106
+ type: Boolean,
107
+ default: true
108
+ },
109
+ /**
110
+ * @tagplus
111
+ * Se false permite campo vazio
112
+ **/
113
+ stringDefaultsZero: {
114
+ type: Boolean,
115
+ default: true
116
+ }
117
+ });
118
+ const inputNumberEmits = {
119
+ [CHANGE_EVENT]: (cur, prev) => prev !== cur,
120
+ blur: (e) => e instanceof FocusEvent,
121
+ focus: (e) => e instanceof FocusEvent,
122
+ [INPUT_EVENT]: (val) => isNumber(val) || isNil(val),
123
+ [UPDATE_MODEL_EVENT]: (val) => isNumber(val) || isNil(val)
124
+ };
125
+ export {
126
+ inputNumberEmits,
127
+ inputNumberProps
128
+ };
@@ -0,0 +1,59 @@
1
+ import { defineComponent, createElementBlock, openBlock, createElementVNode, createStaticVNode, Fragment, renderList, normalizeStyle, normalizeClass, renderSlot } from "vue";
2
+ /* empty css */
3
+ import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const _sfc_main = defineComponent({
5
+ name: "TpLoader",
6
+ props: {
7
+ // Lista contendo as classes de icones a serem exibidos no loader
8
+ icons: {
9
+ type: Array,
10
+ required: false,
11
+ default: () => [
12
+ "fa-solid fa-badge-percent",
13
+ "fa-solid fa-box-usd",
14
+ "fa-solid fa-credit-card-front",
15
+ "fa-solid fa-cart-shopping",
16
+ "fa-solid fa-gift",
17
+ "fa-solid fa-dolly-flatbed-alt",
18
+ "fa-solid fa-receipt",
19
+ "fa-solid fa-chart-pie-alt",
20
+ "fa-solid fa-badge-percent",
21
+ "fa-solid fa-box-usd",
22
+ "fa-solid fa-credit-card-front",
23
+ "fa-solid fa-cart-shopping",
24
+ "fa-solid fa-gift",
25
+ "fa-solid fa-dolly-flatbed-alt",
26
+ "fa-solid fa-receipt",
27
+ "fa-solid fa-chart-pie-alt"
28
+ ]
29
+ }
30
+ }
31
+ });
32
+ const _hoisted_1 = { class: "tp-loader" };
33
+ const _hoisted_2 = { class: "wrapper" };
34
+ const _hoisted_3 = { class: "icones" };
35
+ const _hoisted_4 = { class: "texto" };
36
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
37
+ return openBlock(), createElementBlock("div", _hoisted_1, [
38
+ createElementVNode("div", _hoisted_2, [
39
+ _cache[0] || (_cache[0] = createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="150px" height="150px" data-v-719fb911><mask id="mascara" data-v-719fb911><rect x="0" y="0" width="100%" height="100%" fill="white" data-v-719fb911></rect><circle id="circulo-interno" class="circulo" cx="45" cy="50" r="40" fill="black" data-v-719fb911></circle></mask><g id="bola" fill="none" fill-rule="evenodd" transform="translate(30 30)" data-v-719fb911><circle id="circulo" class="circulo" cx="45" cy="50" r="40" fill="#1F7DE7" mask="url(#mascara)" data-v-719fb911></circle><g fill="none" fill-rule="evenodd" data-v-719fb911><circle class="residuo top center" cx="45" cy="9" r="15" fill="#FFCB05" data-v-719fb911></circle><circle class="residuo top right" cx="72" cy="21" r="8.5" fill="#1F7DE7" data-v-719fb911></circle><circle class="residuo middle right" cx="81" cy="45" r="12" fill="#1F7DE7" data-v-719fb911></circle><circle class="residuo bottom right" cx="71" cy="70" r="8.5" fill="none" stroke="#FFCB05" stroke-width="3" data-v-719fb911></circle><circle class="residuo bottom center" cx="45" cy="81" r="8.5" fill="none" stroke="#1F7DE7" stroke-width="3" data-v-719fb911></circle><circle class="residuo bottom left" cx="19" cy="70" r="8.5" fill="#1F7DE7" data-v-719fb911></circle><circle class="residuo middle left" cx="9" cy="45" r="10" fill="#FFCB05" data-v-719fb911></circle><circle class="residuo top left" cx="18" cy="21" r="8.5" fill="none" stroke="#1F7DE7" stroke-width="3" data-v-719fb911></circle></g></g></svg>', 1)),
40
+ createElementVNode("div", _hoisted_3, [
41
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.icons, (icon, k) => {
42
+ return openBlock(), createElementBlock("i", {
43
+ key: k,
44
+ class: normalizeClass(icon),
45
+ style: normalizeStyle(`--iconsItem:${k}`)
46
+ }, null, 6);
47
+ }), 128))
48
+ ]),
49
+ createElementVNode("div", _hoisted_4, [
50
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
51
+ ])
52
+ ]),
53
+ _cache[1] || (_cache[1] = createElementVNode("div", { class: "overlay" }, null, -1))
54
+ ]);
55
+ }
56
+ const Loader = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-719fb911"]]);
57
+ export {
58
+ Loader as default
59
+ };
@@ -0,0 +1,4 @@
1
+ import Loader from "./Loader.vue.mjs";
2
+ export {
3
+ Loader as default
4
+ };