@fiscozen/input 0.1.6 → 0.1.8

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.
@@ -0,0 +1,105 @@
1
+ declare const _default: import('vue').DefineComponent<{
2
+ amount: import('vue').PropType<any>;
3
+ nullOnEmpty: {
4
+ type: import('vue').PropType<boolean>;
5
+ };
6
+ name: {
7
+ type: import('vue').PropType<string>;
8
+ };
9
+ size: {
10
+ type: import('vue').PropType<"sm" | "md" | "lg">;
11
+ };
12
+ required: {
13
+ type: import('vue').PropType<boolean>;
14
+ };
15
+ label: {
16
+ type: import('vue').PropType<string>;
17
+ required: true;
18
+ };
19
+ pattern: {
20
+ type: import('vue').PropType<string>;
21
+ };
22
+ placeholder: {
23
+ type: import('vue').PropType<string>;
24
+ };
25
+ disabled: {
26
+ type: import('vue').PropType<boolean>;
27
+ };
28
+ error: {
29
+ type: import('vue').PropType<boolean>;
30
+ };
31
+ leftIcon: {
32
+ type: import('vue').PropType<string>;
33
+ };
34
+ leftIconVariant: {
35
+ type: import('vue').PropType<import('@fiscozen/icons/src/types').IconVariant>;
36
+ };
37
+ rightIcon: {
38
+ type: import('vue').PropType<string>;
39
+ };
40
+ rightIconVariant: {
41
+ type: import('vue').PropType<import('@fiscozen/icons/src/types').IconVariant>;
42
+ };
43
+ valid: {
44
+ type: import('vue').PropType<boolean>;
45
+ };
46
+ readonly: {
47
+ type: import('vue').PropType<boolean>;
48
+ };
49
+ }, {
50
+ inputRef: import('vue').ComputedRef<HTMLInputElement | null | undefined>;
51
+ containerRef: import('vue').ComputedRef<HTMLElement | null | undefined>;
52
+ }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
53
+ "update:amount": (...args: any[]) => void;
54
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
55
+ amount: import('vue').PropType<any>;
56
+ nullOnEmpty: {
57
+ type: import('vue').PropType<boolean>;
58
+ };
59
+ name: {
60
+ type: import('vue').PropType<string>;
61
+ };
62
+ size: {
63
+ type: import('vue').PropType<"sm" | "md" | "lg">;
64
+ };
65
+ required: {
66
+ type: import('vue').PropType<boolean>;
67
+ };
68
+ label: {
69
+ type: import('vue').PropType<string>;
70
+ required: true;
71
+ };
72
+ pattern: {
73
+ type: import('vue').PropType<string>;
74
+ };
75
+ placeholder: {
76
+ type: import('vue').PropType<string>;
77
+ };
78
+ disabled: {
79
+ type: import('vue').PropType<boolean>;
80
+ };
81
+ error: {
82
+ type: import('vue').PropType<boolean>;
83
+ };
84
+ leftIcon: {
85
+ type: import('vue').PropType<string>;
86
+ };
87
+ leftIconVariant: {
88
+ type: import('vue').PropType<import('@fiscozen/icons/src/types').IconVariant>;
89
+ };
90
+ rightIcon: {
91
+ type: import('vue').PropType<string>;
92
+ };
93
+ rightIconVariant: {
94
+ type: import('vue').PropType<import('@fiscozen/icons/src/types').IconVariant>;
95
+ };
96
+ valid: {
97
+ type: import('vue').PropType<boolean>;
98
+ };
99
+ readonly: {
100
+ type: import('vue').PropType<boolean>;
101
+ };
102
+ }>> & {
103
+ "onUpdate:amount"?: ((...args: any[]) => any) | undefined;
104
+ }, {}, {}>;
105
+ export default _default;
@@ -48,6 +48,9 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
48
48
  valid: {
49
49
  type: import('vue').PropType<boolean>;
50
50
  };
51
+ readonly: {
52
+ type: import('vue').PropType<boolean>;
53
+ };
51
54
  }, {
52
55
  inputRef: Ref<HTMLInputElement | null>;
53
56
  containerRef: Ref<HTMLElement | null>;
@@ -102,6 +105,9 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
102
105
  valid: {
103
106
  type: import('vue').PropType<boolean>;
104
107
  };
108
+ readonly: {
109
+ type: import('vue').PropType<boolean>;
110
+ };
105
111
  }>> & {
106
112
  onFocus?: ((...args: any[]) => any) | undefined;
107
113
  onInput?: ((...args: any[]) => any) | undefined;
@@ -1,2 +1,3 @@
1
1
  export { default as FzInput } from './FzInput.vue';
2
+ export { default as FzCurrencyInput } from './FzCurrencyInput.vue';
2
3
  export type * from './types';
@@ -57,5 +57,15 @@ type FzInputProps = {
57
57
  * Defines the textarea key in a form
58
58
  */
59
59
  name?: string;
60
+ /**
61
+ * native readonly input value
62
+ */
63
+ readonly?: boolean;
60
64
  };
61
- export { FzInputProps };
65
+ interface FzCurrencyInputProps extends Omit<FzInputProps, "type" | "modelValue"> {
66
+ /**
67
+ * Is set to true, an empty string will be casted to null
68
+ */
69
+ nullOnEmpty?: boolean;
70
+ }
71
+ export { FzInputProps, FzCurrencyInputProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiscozen/input",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Design System Input component",
5
5
  "main": "src/index.ts",
6
6
  "type": "module",
@@ -9,8 +9,8 @@
9
9
  "peerDependencies": {
10
10
  "tailwindcss": "^3.4.1",
11
11
  "vue": "^3.4.13",
12
- "@fiscozen/composables": "^0.1.24",
13
- "@fiscozen/icons": "^0.1.9"
12
+ "@fiscozen/composables": "^0.1.26",
13
+ "@fiscozen/icons": "^0.1.10"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@rushstack/eslint-patch": "^1.3.3",
@@ -1,21 +1,120 @@
1
1
  <template>
2
- <FzInput ref="fzInputRef" v-bind="props" type="text"></FzInput>
2
+ <FzInput
3
+ ref="fzInputRef"
4
+ v-bind="props"
5
+ :modelValue="fzInputModel"
6
+ type="text"
7
+ @paste="onPaste"
8
+ ></FzInput>
3
9
  </template>
4
10
 
5
11
  <script setup lang="ts">
6
- import { onMounted, ref } from "vue";
12
+ import { computed, nextTick, onMounted, ref, watch } from "vue";
7
13
  import FzInput from "./FzInput.vue";
8
14
  import { FzCurrencyInputProps } from "./types";
9
15
  import { useCurrency } from "@fiscozen/composables";
10
16
 
11
- const fzInputRef = ref();
12
- const props = defineProps<FzCurrencyInputProps>();
13
- const { inputRef } = useCurrency();
17
+ const fzInputRef = ref<InstanceType<typeof FzInput>>();
18
+ const fzInputModel = ref();
19
+ const containerRef = computed(() => fzInputRef.value?.containerRef);
20
+ const inputRef = computed(() => fzInputRef.value?.inputRef);
21
+ const props = withDefaults(defineProps<FzCurrencyInputProps>(), {
22
+ minimumFractionDigits: 2,
23
+ maximumFractionDigits: 2,
24
+ });
25
+ const {
26
+ inputRef: currencyInputRef,
27
+ setValue,
28
+ emitAmount,
29
+ parse,
30
+ format,
31
+ } = useCurrency({
32
+ minimumFractionDigits: props.minimumFractionDigits,
33
+ maximumFractionDigits: props.maximumFractionDigits,
34
+ });
14
35
 
15
36
  defineEmits(["update:amount"]);
16
37
 
38
+ const onPaste = (e: ClipboardEvent) => {
39
+ e.preventDefault();
40
+
41
+ if (props.readonly) {
42
+ return;
43
+ }
44
+
45
+ let rawPastedText;
46
+ if (e.clipboardData && e.clipboardData.getData) {
47
+ rawPastedText = e.clipboardData.getData("text/plain");
48
+ } else {
49
+ throw "invalid paste value";
50
+ }
51
+
52
+ // Fix for firefox paste handling on `contenteditable` elements where `e.target` is the text node, not the element
53
+ let eventTarget;
54
+ if ((!e.target as any)?.tagName) {
55
+ eventTarget = (e as any).explicitOriginalTarget;
56
+ } else {
57
+ eventTarget = e.target;
58
+ }
59
+
60
+ let isNegative = rawPastedText.slice(0, 1) === "-";
61
+ const separatorRegex = /[,.]/g;
62
+ const separators: string[] = [...rawPastedText.matchAll(separatorRegex)].map(
63
+ (regexRes) => regexRes[0],
64
+ );
65
+
66
+ const uniqueSeparators = new Set(separators);
67
+ let decimalSeparator = ".";
68
+ let thousandSeparator = "";
69
+ let unknownSeparator;
70
+
71
+ // case 1: there are 2 different separators pasted, therefore we can assume the rightmost is the decimal separator
72
+ if (uniqueSeparators.size > 1) {
73
+ decimalSeparator = separators[separators.length - 1];
74
+ thousandSeparator = separators[0];
75
+ }
76
+
77
+ // case 2: there are multiple instances of the same separator, therefore it must be the thousand separator
78
+ if (uniqueSeparators.size === 1) {
79
+ if (separators.length > 1) {
80
+ thousandSeparator = separators[0];
81
+ }
82
+
83
+ // case 3: there is only one instance of a separator with < 3 digits afterwards (must be decimal separator)
84
+ unknownSeparator = separators[0];
85
+ const splitted = rawPastedText.split(unknownSeparator);
86
+
87
+ if (splitted[1].length !== 3) {
88
+ decimalSeparator = unknownSeparator;
89
+ }
90
+ }
91
+
92
+ // case 3: there is only one instance of a separator with 3 digits afterwards. Here we cannot make assumptions
93
+ // we will format based on settings
94
+ //@ts-ignore
95
+ let safeText = rawPastedText.replaceAll(thousandSeparator, "").trim();
96
+ safeText = safeText.replaceAll(decimalSeparator, ".").trim();
97
+
98
+ const safeNum = parse(safeText);
99
+ safeText = format(safeNum);
100
+ setValue(safeText);
101
+ emitAmount(safeNum);
102
+ };
103
+
17
104
  onMounted(() => {
18
- inputRef.value = fzInputRef.value.inputRef;
105
+ currencyInputRef.value = inputRef.value;
106
+ nextTick(() => {
107
+ fzInputModel.value = inputRef.value?.value;
108
+ });
19
109
  });
20
110
  const model = defineModel("amount");
111
+
112
+ watch(model, (newVal) => {
113
+ fzInputModel.value = newVal as string;
114
+ });
115
+
116
+ defineExpose({
117
+ inputRef,
118
+ containerRef,
119
+ });
21
120
  </script>
package/src/FzInput.vue CHANGED
@@ -27,6 +27,7 @@
27
27
  :pattern="pattern"
28
28
  :name
29
29
  @focus="(e) => $emit('focus', e)"
30
+ @paste="(e) => $emit('paste', e)"
30
31
  />
31
32
  <FzIcon
32
33
  v-if="valid"
@@ -92,7 +93,7 @@ const {
92
93
  containerWidth,
93
94
  } = useInputStyle(props, containerRef);
94
95
 
95
- const emit = defineEmits(["input", "focus"]);
96
+ const emit = defineEmits(["input", "focus", "paste"]);
96
97
  defineExpose({
97
98
  inputRef,
98
99
  containerRef,
@@ -37,4 +37,93 @@ describe.concurrent("FzCurrencyInput", () => {
37
37
  await new Promise((resolve) => window.setTimeout(resolve, 100));
38
38
  expect(inputElement.element.value).toBe("12,30");
39
39
  });
40
+
41
+ it("should allow to set value at 0", async () => {
42
+ const wrapper = mount(FzCurrencyInput, {
43
+ props: {
44
+ label: "Label",
45
+ amount: 10,
46
+ "onUpdate:amount": (e) => wrapper.setProps({ amount: e }),
47
+ },
48
+ });
49
+
50
+ const inputElement = wrapper.find("input");
51
+ await inputElement.trigger("blur");
52
+ await new Promise((resolve) => window.setTimeout(resolve, 100));
53
+ expect(inputElement.element.value).toBe("10,00");
54
+ wrapper.setProps({ amount: 0 });
55
+ await new Promise((resolve) => window.setTimeout(resolve, 100));
56
+ expect(inputElement.element.value).toBe("0,00");
57
+ });
58
+
59
+ it("should handle pasted values using the best possible euristic to parse and render it correctly", async () => {
60
+ const wrapper = mount(FzCurrencyInput, {
61
+ props: {
62
+ label: "Label",
63
+ "onUpdate:amount": (e) => wrapper.setProps({ amount: e }),
64
+ },
65
+ });
66
+
67
+ const inputElement = wrapper.find("input");
68
+ // we need to mock the paste event
69
+ await inputElement.trigger("paste", {
70
+ clipboardData: {
71
+ getData() {
72
+ return "1.233.222,43";
73
+ },
74
+ },
75
+ });
76
+ await new Promise((resolve) => window.setTimeout(resolve, 100));
77
+ expect(inputElement.element.value).toBe("1233222,43");
78
+
79
+ await inputElement.trigger("paste", {
80
+ clipboardData: {
81
+ getData() {
82
+ return "1.23";
83
+ },
84
+ },
85
+ });
86
+ await new Promise((resolve) => window.setTimeout(resolve, 100));
87
+ expect(inputElement.element.value).toBe("1,23");
88
+
89
+ await inputElement.trigger("paste", {
90
+ clipboardData: {
91
+ getData() {
92
+ return "1,23";
93
+ },
94
+ },
95
+ });
96
+ await new Promise((resolve) => window.setTimeout(resolve, 100));
97
+ expect(inputElement.element.value).toBe("1,23");
98
+
99
+ await inputElement.trigger("paste", {
100
+ clipboardData: {
101
+ getData() {
102
+ return "1.232.111";
103
+ },
104
+ },
105
+ });
106
+ await new Promise((resolve) => window.setTimeout(resolve, 100));
107
+ expect(inputElement.element.value).toBe("1232111,00");
108
+
109
+ await inputElement.trigger("paste", {
110
+ clipboardData: {
111
+ getData() {
112
+ return "1.232";
113
+ },
114
+ },
115
+ });
116
+ await new Promise((resolve) => window.setTimeout(resolve, 100));
117
+ expect(inputElement.element.value).toBe("1,23");
118
+
119
+ await inputElement.trigger("paste", {
120
+ clipboardData: {
121
+ getData() {
122
+ return "1.232555";
123
+ },
124
+ },
125
+ });
126
+ await new Promise((resolve) => window.setTimeout(resolve, 100));
127
+ expect(inputElement.element.value).toBe("1,23");
128
+ });
40
129
  });
package/src/types.ts CHANGED
@@ -70,6 +70,18 @@ interface FzCurrencyInputProps
70
70
  * Is set to true, an empty string will be casted to null
71
71
  */
72
72
  nullOnEmpty?: boolean;
73
+ /**
74
+ * Minimum number of decimal places allowed, set null to allow arbitrary decimal values length
75
+ * note that limits from Intl.NumberFormat still apply
76
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#digit_options
77
+ */
78
+ minimumFractionDigits?: number;
79
+ /**
80
+ * Maximum number of decimal places allowed, set null to allow arbitrary decimal values length
81
+ * note that limits from Intl.NumberFormat still apply
82
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#digit_options
83
+ */
84
+ maximumFractionDigits?: number | null;
73
85
  }
74
86
 
75
87
  export { FzInputProps, FzCurrencyInputProps };
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@vue+shared@3.4.13/node_modules/@vue/shared/dist/shared.d.ts","../../node_modules/.pnpm/@vue+reactivity@3.4.13/node_modules/@vue/reactivity/dist/reactivity.d.ts","../../node_modules/.pnpm/@vue+runtime-core@3.4.13/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","../../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/@vue+runtime-dom@3.4.13/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","../../node_modules/.pnpm/vue@3.4.13_typescript@5.3.3/node_modules/vue/jsx-runtime/index.d.ts","../../node_modules/.pnpm/@babel+types@7.23.6/node_modules/@babel/types/lib/index.d.ts","../../node_modules/.pnpm/@babel+parser@7.23.6/node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/.pnpm/source-map-js@1.0.2/node_modules/source-map-js/source-map.d.ts","../../node_modules/.pnpm/@vue+compiler-core@3.4.13/node_modules/@vue/compiler-core/dist/compiler-core.d.ts","../../node_modules/.pnpm/@vue+compiler-dom@3.4.13/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","../../node_modules/.pnpm/vue@3.4.13_typescript@5.3.3/node_modules/vue/dist/vue.d.mts","../../node_modules/.pnpm/@fortawesome+fontawesome-common-types@6.5.1/node_modules/@fortawesome/fontawesome-common-types/index.d.ts","../../node_modules/.pnpm/@fortawesome+fontawesome-svg-core@6.5.1/node_modules/@fortawesome/fontawesome-svg-core/index.d.ts","../../node_modules/.pnpm/@fortawesome+fontawesome-common-types@6.6.0/node_modules/@fortawesome/fontawesome-common-types/index.d.ts","../../node_modules/.pnpm/@awesome.me+kit-8137893ad3@1.0.131/node_modules/@awesome.me/kit-8137893ad3/icons/modules/icon-types.ts","../../node_modules/.pnpm/@awesome.me+kit-8137893ad3@1.0.131/node_modules/@awesome.me/kit-8137893ad3/icons/modules/index.d.ts","../../node_modules/.pnpm/@fortawesome+vue-fontawesome@3.0.6_@fortawesome+fontawesome-svg-core@6.5.1_vue@3.4.13_typescript@5.3.3_/node_modules/@fortawesome/vue-fontawesome/index.d.ts","../../node_modules/.pnpm/@fiscozen+icons@0.1.6_vue@3.4.13_typescript@5.3.3_/node_modules/@fiscozen/icons/src/types.ts","../../node_modules/.pnpm/@fiscozen+icons@0.1.6_vue@3.4.13_typescript@5.3.3_/node_modules/@fiscozen/icons/src/FzIcon.vue.ts","../../node_modules/.pnpm/@fiscozen+icons@0.1.6_vue@3.4.13_typescript@5.3.3_/node_modules/@fiscozen/icons/src/index.ts","./src/types.ts","./src/useInputStyle.ts","./src/FzInput.vue.ts","./__VLS_types.d.ts","./dist/src/FzInput.vue.d.ts","./dist/src/types.d.ts","./dist/src/index.d.ts","./dist/index.d.ts","./dist/src/useInputStyle.d.ts","./src/index.ts","../../node_modules/.pnpm/@fiscozen+icons@0.1.6_vue@3.4.13_typescript@5.3.3_/node_modules/@fiscozen/icons/src/FzIcon.vue"],"fileInfos":[{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0"],"root":[[67,76]],"options":{"composite":true,"esModuleInterop":true,"jsx":1,"jsxImportSource":"vue","module":99,"noImplicitThis":true,"skipLibCheck":true,"strict":true,"target":99,"useDefineForClassFields":true},"fileIdsList":[[51,59,60,61],[60,61],[52],[51,57,62,63,64],[51,57,59,61,62,64,65],[51],[58],[57,59,61],[46,52,53,54],[55],[46],[46,47,48],[48,49],[54],[50,56],[50],[51,57],[73],[57,64],[71,72],[66],[57,72],[51,57,66,67,68],[51,67,69],[51,66],[51,57,67],[51,57,59,61,62,64,77]],"referencedMap":[[61,1],[62,2],[53,3],[65,4],[66,5],[64,6],[59,7],[63,8],[55,9],[56,10],[47,11],[48,12],[50,13],[54,14],[57,15],[51,16],[70,17],[74,18],[71,19],[73,20],[72,21],[75,22],[69,23],[76,24],[67,25],[68,26]],"exportedModulesMap":[[61,1],[62,2],[53,3],[65,4],[66,27],[64,6],[59,7],[63,8],[55,9],[56,10],[47,11],[48,12],[50,13],[54,14],[57,15],[51,16],[70,17],[74,18],[71,19],[73,20],[72,21],[75,22],[69,23],[76,17],[67,25],[68,26]],"semanticDiagnosticsPerFile":[61,62,53,52,65,66,64,58,60,59,63,55,56,47,48,50,46,49,54,44,45,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,20,24,21,22,23,25,26,27,5,28,29,30,31,6,35,32,33,34,36,7,37,42,43,38,39,40,41,1,57,51,70,74,71,73,72,75,69,76,67,68],"affectedFilesPendingEmit":[69,76,67,68],"emitSignatures":[67,68,69]},"version":"5.3.3"}
1
+ {"program":{"fileNames":["../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@vue+shared@3.4.13/node_modules/@vue/shared/dist/shared.d.ts","../../node_modules/.pnpm/@vue+reactivity@3.4.13/node_modules/@vue/reactivity/dist/reactivity.d.ts","../../node_modules/.pnpm/@vue+runtime-core@3.4.13/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","../../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/@vue+runtime-dom@3.4.13/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","../../node_modules/.pnpm/vue@3.4.13_typescript@5.3.3/node_modules/vue/jsx-runtime/index.d.ts","../../node_modules/.pnpm/@babel+types@7.23.6/node_modules/@babel/types/lib/index.d.ts","../../node_modules/.pnpm/@babel+parser@7.23.6/node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/.pnpm/source-map-js@1.0.2/node_modules/source-map-js/source-map.d.ts","../../node_modules/.pnpm/@vue+compiler-core@3.4.13/node_modules/@vue/compiler-core/dist/compiler-core.d.ts","../../node_modules/.pnpm/@vue+compiler-dom@3.4.13/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","../../node_modules/.pnpm/vue@3.4.13_typescript@5.3.3/node_modules/vue/dist/vue.d.mts","../../node_modules/.pnpm/@vue+shared@3.4.33/node_modules/@vue/shared/dist/shared.d.ts","../../node_modules/.pnpm/@vue+reactivity@3.4.33/node_modules/@vue/reactivity/dist/reactivity.d.ts","../../node_modules/.pnpm/@vue+runtime-core@3.4.33/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","../../node_modules/.pnpm/@vue+runtime-dom@3.4.33/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","../../node_modules/.pnpm/vue@3.4.33_typescript@5.4.2/node_modules/vue/jsx-runtime/index.d.ts","../../node_modules/.pnpm/@babel+types@7.24.9/node_modules/@babel/types/lib/index.d.ts","../../node_modules/.pnpm/@babel+parser@7.24.8/node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/.pnpm/@vue+compiler-core@3.4.33/node_modules/@vue/compiler-core/dist/compiler-core.d.ts","../../node_modules/.pnpm/@vue+compiler-dom@3.4.33/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","../../node_modules/.pnpm/vue@3.4.33_typescript@5.4.2/node_modules/vue/dist/vue.d.mts","../../node_modules/.pnpm/@fortawesome+fontawesome-common-types@6.6.0/node_modules/@fortawesome/fontawesome-common-types/index.d.ts","../../node_modules/.pnpm/@fortawesome+fontawesome-svg-core@6.6.0/node_modules/@fortawesome/fontawesome-svg-core/index.d.ts","../../node_modules/.pnpm/@fortawesome+fontawesome-common-types@6.5.1/node_modules/@fortawesome/fontawesome-common-types/index.d.ts","../../node_modules/.pnpm/@fortawesome+fontawesome-svg-core@6.5.1/node_modules/@fortawesome/fontawesome-svg-core/index.d.ts","../../node_modules/.pnpm/@awesome.me+kit-8137893ad3@1.0.140/node_modules/@awesome.me/kit-8137893ad3/icons/modules/icon-types.ts","../../node_modules/.pnpm/@awesome.me+kit-8137893ad3@1.0.140/node_modules/@awesome.me/kit-8137893ad3/icons/modules/index.d.ts","../../node_modules/.pnpm/@fortawesome+vue-fontawesome@3.0.8_@fortawesome+fontawesome-svg-core@6.6.0_vue@3.4.33_typescript@5.4.2_/node_modules/@fortawesome/vue-fontawesome/index.d.ts","../icons/src/types.ts","../icons/src/FzIcon.vue.ts","../icons/src/index.ts","./src/types.ts","./src/useInputStyle.ts","./src/FzInput.vue.ts","../composables/src/types.ts","../composables/src/utils/index.ts","../composables/src/composables/useFloating.ts","../composables/src/composables/useMediaQuery.ts","../composables/src/composables/useBreakpoints.ts","../composables/src/composables/useClickOutside.ts","../composables/src/composables/useKeyDown.ts","../composables/src/composables/useKeyUp.ts","../composables/src/composables/useCurrency.ts","../composables/src/composables/index.ts","../composables/src/FzFloating.vue.ts","../composables/src/index.ts","./src/FzCurrencyInput.vue.ts","./__VLS_types.d.ts","./dist/src/FzInput.vue.d.ts","./dist/src/FzCurrencyInput.vue.d.ts","./dist/src/types.d.ts","./dist/src/index.d.ts","./dist/index.d.ts","./dist/src/useInputStyle.d.ts","./src/index.ts"],"fileInfos":[{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0"],"root":[[78,80],[93,101]],"options":{"composite":true,"esModuleInterop":true,"jsx":1,"jsxImportSource":"vue","module":99,"noImplicitThis":true,"skipLibCheck":true,"strict":true,"target":99,"useDefineForClassFields":true},"fileIdsList":[[51,68,71,72],[68,72],[52],[63],[70],[68],[67,69],[46,52,53,54],[52,58,64],[55],[65],[46],[58],[46,47,48],[50,58,59,60,61],[48,49,59,60,61],[49,50,59,60],[54],[50,56],[50],[61,66],[61],[51,57,81,90],[51,83,84,85,86,87,88,89],[51,84],[51,57],[51,57,81,82],[51,81,90,91],[51,81],[62,67,73,74,75],[62,67,69,73,75,76],[62],[98],[57,75],[95,96,97],[77],[57,97],[51,57,78,80,92],[51,57,77,78,79],[51,78,80,93],[51,77],[51,57,78],[48,49],[51,81,90],[62,67,69,73,75],[51]],"referencedMap":[[72,1],[73,2],[53,3],[64,4],[71,5],[69,6],[74,7],[55,8],[65,9],[56,10],[66,11],[47,12],[59,13],[48,14],[60,15],[50,16],[61,17],[54,18],[57,19],[51,20],[67,21],[62,22],[91,23],[90,24],[85,25],[86,26],[89,26],[83,27],[87,26],[88,26],[84,26],[92,28],[81,26],[82,29],[76,30],[77,31],[75,32],[94,26],[99,33],[96,34],[95,34],[98,35],[97,36],[100,37],[93,38],[80,39],[101,40],[78,41],[79,42]],"exportedModulesMap":[[72,1],[73,2],[53,3],[64,4],[71,5],[69,6],[74,7],[55,8],[65,9],[56,10],[66,11],[47,12],[59,13],[48,14],[60,15],[50,43],[61,17],[54,18],[57,19],[51,20],[67,21],[62,22],[91,23],[90,24],[85,25],[86,26],[89,26],[83,27],[87,26],[88,26],[84,26],[92,44],[81,26],[82,29],[76,30],[77,45],[75,32],[94,26],[99,26],[96,26],[95,26],[98,26],[97,26],[100,26],[93,38],[80,39],[101,26],[78,46],[79,42]],"semanticDiagnosticsPerFile":[72,73,53,64,52,63,70,68,71,69,74,55,65,56,66,47,59,48,60,50,61,46,58,49,54,44,45,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,20,24,21,22,23,25,26,27,5,28,29,30,31,6,35,32,33,34,36,7,37,42,43,38,39,40,41,1,57,51,67,62,91,90,85,86,89,83,87,88,84,92,81,82,76,77,75,94,99,96,95,98,97,100,93,80,101,78,79],"affectedFilesPendingEmit":[93,80,101,78,79],"emitSignatures":[78,79,80,93]},"version":"5.3.3"}