@fiscozen/input 0.1.2 → 0.1.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.
@@ -0,0 +1,121 @@
1
+ import { Ref } from 'vue';
2
+
3
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
4
+ modelValue: import('vue').PropType<any>;
5
+ name: {
6
+ type: import('vue').PropType<string>;
7
+ };
8
+ size: {
9
+ type: import('vue').PropType<"sm" | "md" | "lg">;
10
+ default: string;
11
+ };
12
+ type: {
13
+ type: import('vue').PropType<"number" | "text" | "password" | "email" | "tel" | "url">;
14
+ default: string;
15
+ };
16
+ required: {
17
+ type: import('vue').PropType<boolean>;
18
+ };
19
+ label: {
20
+ type: import('vue').PropType<string>;
21
+ required: true;
22
+ };
23
+ pattern: {
24
+ type: import('vue').PropType<string>;
25
+ };
26
+ placeholder: {
27
+ type: import('vue').PropType<string>;
28
+ };
29
+ disabled: {
30
+ type: import('vue').PropType<boolean>;
31
+ };
32
+ error: {
33
+ type: import('vue').PropType<boolean>;
34
+ default: boolean;
35
+ };
36
+ leftIcon: {
37
+ type: import('vue').PropType<string>;
38
+ };
39
+ leftIconVariant: {
40
+ type: import('vue').PropType<import('@fiscozen/icons/src/types').IconVariant>;
41
+ };
42
+ rightIcon: {
43
+ type: import('vue').PropType<string>;
44
+ };
45
+ rightIconVariant: {
46
+ type: import('vue').PropType<import('@fiscozen/icons/src/types').IconVariant>;
47
+ };
48
+ valid: {
49
+ type: import('vue').PropType<boolean>;
50
+ };
51
+ }, {
52
+ inputRef: Ref<HTMLInputElement | null>;
53
+ containerRef: Ref<HTMLElement | null>;
54
+ }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
55
+ input: (...args: any[]) => void;
56
+ focus: (...args: any[]) => void;
57
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
58
+ modelValue: import('vue').PropType<any>;
59
+ name: {
60
+ type: import('vue').PropType<string>;
61
+ };
62
+ size: {
63
+ type: import('vue').PropType<"sm" | "md" | "lg">;
64
+ default: string;
65
+ };
66
+ type: {
67
+ type: import('vue').PropType<"number" | "text" | "password" | "email" | "tel" | "url">;
68
+ default: string;
69
+ };
70
+ required: {
71
+ type: import('vue').PropType<boolean>;
72
+ };
73
+ label: {
74
+ type: import('vue').PropType<string>;
75
+ required: true;
76
+ };
77
+ pattern: {
78
+ type: import('vue').PropType<string>;
79
+ };
80
+ placeholder: {
81
+ type: import('vue').PropType<string>;
82
+ };
83
+ disabled: {
84
+ type: import('vue').PropType<boolean>;
85
+ };
86
+ error: {
87
+ type: import('vue').PropType<boolean>;
88
+ default: boolean;
89
+ };
90
+ leftIcon: {
91
+ type: import('vue').PropType<string>;
92
+ };
93
+ leftIconVariant: {
94
+ type: import('vue').PropType<import('@fiscozen/icons/src/types').IconVariant>;
95
+ };
96
+ rightIcon: {
97
+ type: import('vue').PropType<string>;
98
+ };
99
+ rightIconVariant: {
100
+ type: import('vue').PropType<import('@fiscozen/icons/src/types').IconVariant>;
101
+ };
102
+ valid: {
103
+ type: import('vue').PropType<boolean>;
104
+ };
105
+ }>> & {
106
+ onFocus?: ((...args: any[]) => any) | undefined;
107
+ onInput?: ((...args: any[]) => any) | undefined;
108
+ }, {
109
+ size: "sm" | "md" | "lg";
110
+ type: "number" | "text" | "password" | "email" | "tel" | "url";
111
+ error: boolean;
112
+ }, {}>, {
113
+ errorMessage?(_: {}): any;
114
+ helpText?(_: {}): any;
115
+ }>;
116
+ export default _default;
117
+ type __VLS_WithTemplateSlots<T, S> = T & {
118
+ new (): {
119
+ $slots: S;
120
+ };
121
+ };
@@ -0,0 +1,2 @@
1
+ export { default as FzInput } from './FzInput.vue';
2
+ export type * from './types';
@@ -0,0 +1,61 @@
1
+ import { IconVariant } from '@fiscozen/icons';
2
+
3
+ type FzInputProps = {
4
+ /**
5
+ * The label displayed on top of the input
6
+ */
7
+ label: string;
8
+ /**
9
+ * The size of the input
10
+ */
11
+ size?: "sm" | "md" | "lg";
12
+ /**
13
+ * The placeholder displayed in the input
14
+ */
15
+ placeholder?: string;
16
+ /**
17
+ * If set to true, the input is required
18
+ */
19
+ required?: boolean;
20
+ /**
21
+ * If set to true, the input is disabled
22
+ */
23
+ disabled?: boolean;
24
+ /**
25
+ * If set to true, the input is in error state
26
+ */
27
+ error?: boolean;
28
+ /**
29
+ * Left icon name
30
+ */
31
+ leftIcon?: string;
32
+ /**
33
+ * Left icon variant
34
+ */
35
+ leftIconVariant?: IconVariant;
36
+ /**
37
+ * Right icon name
38
+ */
39
+ rightIcon?: string;
40
+ /**
41
+ * Right icon variant
42
+ */
43
+ rightIconVariant?: IconVariant;
44
+ /**
45
+ * The input type
46
+ */
47
+ type?: "text" | "password" | "email" | "number" | "tel" | "url";
48
+ /**
49
+ * If set to true, the input is valid
50
+ */
51
+ valid?: boolean;
52
+ /**
53
+ * Pattern to validate the input
54
+ */
55
+ pattern?: string;
56
+ /**
57
+ * Defines the textarea key in a form
58
+ */
59
+ name?: string;
60
+ };
61
+ export { FzInputProps };
@@ -0,0 +1,12 @@
1
+ import { Ref } from 'vue';
2
+ import { FzInputProps } from './types';
3
+
4
+ export default function useInputStyle(props: FzInputProps, container: Ref<HTMLElement | null>): {
5
+ staticContainerClass: string;
6
+ computedContainerClass: import('vue').ComputedRef<string[]>;
7
+ computedLabelClass: import('vue').ComputedRef<string[]>;
8
+ staticInputClass: string;
9
+ computedHelpClass: import('vue').ComputedRef<string[]>;
10
+ computedErrorClass: import('vue').ComputedRef<string[]>;
11
+ containerWidth: import('vue').ComputedRef<string>;
12
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiscozen/input",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Design System Input component",
5
5
  "main": "src/index.ts",
6
6
  "type": "module",
@@ -9,7 +9,8 @@
9
9
  "peerDependencies": {
10
10
  "tailwindcss": "^3.4.1",
11
11
  "vue": "^3.4.13",
12
- "@fiscozen/icons": "^0.1.0"
12
+ "@fiscozen/composables": "^0.1.15",
13
+ "@fiscozen/icons": "^0.1.9"
13
14
  },
14
15
  "devDependencies": {
15
16
  "@rushstack/eslint-patch": "^1.3.3",
@@ -27,8 +28,8 @@
27
28
  "vite-plugin-dts": "^3.8.3",
28
29
  "vitest": "^1.2.0",
29
30
  "vue-tsc": "^1.8.25",
30
- "@fiscozen/prettier-config": "^0.1.0",
31
31
  "@fiscozen/tsconfig": "^0.1.0",
32
+ "@fiscozen/prettier-config": "^0.1.0",
32
33
  "@fiscozen/eslint-config": "^0.1.0"
33
34
  },
34
35
  "license": "MIT",
@@ -0,0 +1,24 @@
1
+ <template>
2
+ <FzInput
3
+ ref="fzInputRef"
4
+ v-bind="props"
5
+ :model-value="model"
6
+ ></FzInput>
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ import {onMounted, ref} from 'vue'
11
+ import FzInput from './FzInput.vue'
12
+ import {FzInputProps} from './types'
13
+ import {useCurrency} from '@fiscozen/composables'
14
+
15
+ const fzInputRef = ref();
16
+ const props = defineProps<Omit<FzInputProps, 'type'>>();
17
+ const {inputRef} = useCurrency();
18
+
19
+ onMounted(() => {
20
+ inputRef.value = fzInputRef.value.inputRef
21
+ })
22
+ const model = defineModel()
23
+
24
+ </script>
package/src/FzInput.vue CHANGED
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="w-full flex flex-col gap-8">
2
+ <div class="fz-input w-full flex flex-col gap-8">
3
3
  <label :class="['text-sm', computedLabelClass]" :for="uniqueId">
4
4
  {{ label }}{{ required ? " *" : "" }}
5
5
  </label>
@@ -18,6 +18,7 @@
18
18
  :type="type"
19
19
  :required="required ? required : false"
20
20
  :disabled="disabled"
21
+ :readonly="readonly"
21
22
  :placeholder="placeholder"
22
23
  v-model="model"
23
24
  :id="uniqueId"
@@ -0,0 +1,37 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { mount } from "@vue/test-utils";
3
+ import { FzCurrencyInput } from "..";
4
+
5
+ describe.concurrent("FzCurrencyInput", () => {
6
+ it('renders floating numbers as currency', async () => {
7
+ const val = 1234.56
8
+
9
+ const wrapper = mount(FzCurrencyInput, {
10
+ props: {
11
+ label: "Label",
12
+ modelValue: val,
13
+ 'onUpdate:modelValue': (e) => wrapper.setProps({ modelValue: e})
14
+ },
15
+ });
16
+
17
+ const inputElement = wrapper.find('input')
18
+ await inputElement.setValue(val)
19
+ await inputElement.trigger('blur')
20
+ expect(inputElement.element.value).toBe('1.234,56')
21
+ })
22
+ it('should not allow inputs other than digits and separators', async () => {
23
+ const wrapper = mount(FzCurrencyInput, {
24
+ props: {
25
+ label: "Label",
26
+ 'onUpdate:modelValue': (e) => wrapper.setProps({ modelValue: e})
27
+ },
28
+ });
29
+
30
+ const inputElement = wrapper.find('input')
31
+ await inputElement.setValue('as12.3')
32
+ await inputElement.trigger('input')
33
+ expect(inputElement.element.value).toBe('12.3')
34
+ await inputElement.trigger('blur')
35
+ expect(inputElement.element.value).toBe('12,30')
36
+ })
37
+ });
package/src/index.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export { default as FzInput } from "./FzInput.vue";
2
+ export { default as FzCurrencyInput } from "./FzCurrencyInput.vue";
3
+
2
4
  export type * from "./types";
package/src/types.ts CHANGED
@@ -57,6 +57,14 @@ type FzInputProps = {
57
57
  * Defines the textarea key in a form
58
58
  */
59
59
  name?: string;
60
+
61
+ /**
62
+ * native readonly input value
63
+ */
64
+ readonly?: boolean;
65
+
60
66
  };
61
67
 
62
- export { FzInputProps };
68
+ type FzCurrencyInputProps = Omit<FzInputProps, 'type'>
69
+
70
+ export { FzInputProps, FzCurrencyInputProps };
@@ -0,0 +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"}