@farm-investimentos/front-mfe-components 14.1.4 → 14.1.6
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.
- package/dist/front-mfe-components.common.js +217 -188
- package/dist/front-mfe-components.common.js.map +1 -1
- package/dist/front-mfe-components.css +2 -2
- package/dist/front-mfe-components.umd.js +217 -188
- package/dist/front-mfe-components.umd.js.map +1 -1
- package/dist/front-mfe-components.umd.min.js +1 -1
- package/dist/front-mfe-components.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Buttons/DefaultButton/DefaultButton.scss +28 -12
- package/src/components/Buttons/DefaultButton/DefaultButton.stories.js +10 -0
- package/src/components/Buttons/DefaultButton/DefaultButton.vue +8 -0
- package/src/components/DataTableHeader/DataTableHeader.stories.js +36 -3
- package/src/components/DataTableHeader/DataTableHeader.vue +2 -2
- package/src/components/DatePicker/DatePicker.stories.js +10 -0
- package/src/components/DatePicker/DatePicker.vue +16 -2
- package/src/components/DatePicker/__tests__/DatePicker.spec.js +40 -0
- package/src/components/RangeDatePicker/RangeDatePicker.vue +19 -2
- package/src/components/RangeDatePicker/__tests__/RangeDatePicker.spec.js +56 -0
- package/src/scss/VuejsDialog.scss +1 -1
package/package.json
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
@import '../../../configurations/mixins';
|
|
3
3
|
@import '../../../configurations/theme-colors';
|
|
4
4
|
$butonSizes: (
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
'xs': 20px,
|
|
6
|
+
'sm': 28px,
|
|
7
|
+
'md': 32px,
|
|
8
|
+
'lg': 48px,
|
|
9
|
+
'xl': 56px,
|
|
10
10
|
'default': 36px,
|
|
11
11
|
);
|
|
12
12
|
|
|
@@ -37,8 +37,7 @@ $butonSizes: (
|
|
|
37
37
|
width: 100%;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
@each $size,
|
|
41
|
-
$value in $sizes {
|
|
40
|
+
@each $size, $value in $sizes {
|
|
42
41
|
&#{'.farm-btn[size=' + $size + ']'} {
|
|
43
42
|
font-size: $value;
|
|
44
43
|
height: map-get($butonSizes, $size);
|
|
@@ -136,8 +135,7 @@ $butonSizes: (
|
|
|
136
135
|
color: gray;
|
|
137
136
|
}
|
|
138
137
|
|
|
139
|
-
@each $size,
|
|
140
|
-
$value in $sizes {
|
|
138
|
+
@each $size, $value in $sizes {
|
|
141
139
|
&#{'.farm-btn[size=' + $size + ']'} {
|
|
142
140
|
font-size: $value;
|
|
143
141
|
}
|
|
@@ -162,11 +160,30 @@ $butonSizes: (
|
|
|
162
160
|
::v-deep .farm-btn__content i.mdi {
|
|
163
161
|
color: var(--farm-#{$color}-base);
|
|
164
162
|
}
|
|
163
|
+
|
|
164
|
+
&.lighten-variation-icon {
|
|
165
|
+
&:hover {
|
|
166
|
+
color: var(--farm-#{$color}-lighten);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
::v-deep .farm-btn__content i.mdi {
|
|
170
|
+
color: var(--farm-#{$color}-lighten);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
&.darken-variation-icon {
|
|
175
|
+
&:hover {
|
|
176
|
+
color: var(--farm-#{$color}-darken);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
::v-deep .farm-btn__content i.mdi {
|
|
180
|
+
color: var(--farm-#{$color}-darken);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
165
183
|
}
|
|
166
184
|
}
|
|
167
185
|
|
|
168
186
|
&#{'.farm-btn--white'}:not(.farm-btn--disabled) {
|
|
169
|
-
|
|
170
187
|
::v-deep .farm-btn__content i.mdi {
|
|
171
188
|
color: white;
|
|
172
189
|
}
|
|
@@ -190,7 +207,6 @@ $butonSizes: (
|
|
|
190
207
|
}
|
|
191
208
|
}
|
|
192
209
|
}
|
|
193
|
-
|
|
194
210
|
}
|
|
195
211
|
|
|
196
212
|
.farm-btn--extra,
|
|
@@ -270,4 +286,4 @@ $butonSizes: (
|
|
|
270
286
|
width: 100%;
|
|
271
287
|
margin: 0;
|
|
272
288
|
}
|
|
273
|
-
}
|
|
289
|
+
}
|
|
@@ -201,6 +201,16 @@ export const Iconed = () => ({
|
|
|
201
201
|
<farm-icon>book</farm-icon>
|
|
202
202
|
</farm-btn>
|
|
203
203
|
|
|
204
|
+
<h4>Darken Icon</h4>
|
|
205
|
+
<farm-btn icon v-for="color of colors" :key="'random_2_' + color" :color="color" variation="darken">
|
|
206
|
+
<farm-icon>book</farm-icon>
|
|
207
|
+
</farm-btn>
|
|
208
|
+
|
|
209
|
+
<h4>Lighten Icon</h4>
|
|
210
|
+
<farm-btn icon v-for="color of colors" :key="'random_2_' + color" :color="color" variation="lighten">
|
|
211
|
+
<farm-icon>book</farm-icon>
|
|
212
|
+
</farm-btn>
|
|
213
|
+
|
|
204
214
|
<h4>Disabled Icon</h4>
|
|
205
215
|
<farm-btn icon v-for="color of colors" :key="'disabled_random_2_' + color" :color="color" :disabled="true">
|
|
206
216
|
<farm-icon>book</farm-icon>
|
|
@@ -87,6 +87,13 @@ export default Vue.extend({
|
|
|
87
87
|
type: String as PropType<'xs' | 'sm' | 'md' | 'lg' | 'xl'>,
|
|
88
88
|
default: 'default',
|
|
89
89
|
},
|
|
90
|
+
/**
|
|
91
|
+
* Color Variation to Icons
|
|
92
|
+
*/
|
|
93
|
+
variation: {
|
|
94
|
+
type: String as PropType<'base' | 'lighten' | 'darken'>,
|
|
95
|
+
default: 'base',
|
|
96
|
+
},
|
|
90
97
|
},
|
|
91
98
|
|
|
92
99
|
computed: {
|
|
@@ -105,6 +112,7 @@ export default Vue.extend({
|
|
|
105
112
|
'farm-btn--icon': this.icon,
|
|
106
113
|
'farm-btn--full': this.full,
|
|
107
114
|
['farm-btn--' + this.color]: true,
|
|
115
|
+
[this.variation + '-variation-icon']: true,
|
|
108
116
|
...obj,
|
|
109
117
|
};
|
|
110
118
|
},
|
|
@@ -23,10 +23,37 @@ export const Primary = () => ({
|
|
|
23
23
|
return {
|
|
24
24
|
headers,
|
|
25
25
|
sortClick: [],
|
|
26
|
-
firstSelected:
|
|
26
|
+
firstSelected: true,
|
|
27
|
+
|
|
28
|
+
};
|
|
29
|
+
},
|
|
30
|
+
template: `<farm-datatable-header
|
|
31
|
+
:headers="headers"
|
|
32
|
+
:sortClick="sortClick"
|
|
33
|
+
:showCheckbox="false"
|
|
34
|
+
:firstSelected="firstSelected"
|
|
35
|
+
:selectedIndex="1"
|
|
36
|
+
/>`,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export const SetDescInititalOrder = () => ({
|
|
40
|
+
data() {
|
|
41
|
+
let customHeaders = [...headers];
|
|
42
|
+
customHeaders[1].order = 'DESC';
|
|
43
|
+
return {
|
|
44
|
+
headers: customHeaders,
|
|
45
|
+
sortClick: [],
|
|
46
|
+
firstSelected: true,
|
|
47
|
+
|
|
27
48
|
};
|
|
28
49
|
},
|
|
29
|
-
template: `<farm-datatable-header
|
|
50
|
+
template: `<farm-datatable-header
|
|
51
|
+
:headers="headers"
|
|
52
|
+
:sortClick="sortClick"
|
|
53
|
+
:showCheckbox="false"
|
|
54
|
+
:firstSelected="firstSelected"
|
|
55
|
+
:selectedIndex="1"
|
|
56
|
+
/>`,
|
|
30
57
|
});
|
|
31
58
|
|
|
32
59
|
export const CheckBox = () => ({
|
|
@@ -46,7 +73,13 @@ export const CheckBox = () => ({
|
|
|
46
73
|
firstSelected: false,
|
|
47
74
|
};
|
|
48
75
|
},
|
|
49
|
-
template: `<farm-datatable-header
|
|
76
|
+
template: `<farm-datatable-header
|
|
77
|
+
:headers="headers"
|
|
78
|
+
:headerProps="headerProps"
|
|
79
|
+
:sortClick="sortClick"
|
|
80
|
+
:firstSelected="firstSelected"
|
|
81
|
+
:showCheckbox="true"
|
|
82
|
+
:selectedIndex="1" />`,
|
|
50
83
|
});
|
|
51
84
|
|
|
52
85
|
const headerProps = { someItems: true, everyItem: true };
|
|
@@ -167,8 +167,8 @@ export default Vue.extend({
|
|
|
167
167
|
created() {
|
|
168
168
|
for (let i = 0; i < this.headers.length; i += 1) {
|
|
169
169
|
this.sortClick.push({
|
|
170
|
-
[this.headers[i].value]:
|
|
171
|
-
descending: 'ASC',
|
|
170
|
+
[this.headers[i].value]: this.firstSelected && i === this.selectedIndex && this.headers[i].order === 'DESC',
|
|
171
|
+
descending: this.headers[i].order || 'ASC',
|
|
172
172
|
field: this.headers[i].value,
|
|
173
173
|
clicked: this.checkFirstSelected(i),
|
|
174
174
|
show: this.checkFirstSelected(i),
|
|
@@ -66,3 +66,13 @@ export const Readonly = () => ({
|
|
|
66
66
|
</div>`,
|
|
67
67
|
});
|
|
68
68
|
|
|
69
|
+
export const IsNull = () => ({
|
|
70
|
+
data() {
|
|
71
|
+
return {
|
|
72
|
+
date: null,
|
|
73
|
+
};
|
|
74
|
+
},
|
|
75
|
+
template: `<div style='max-width: 320px'>
|
|
76
|
+
<farm-input-datepicker inputId="input-custom-id-8" v-model="date" :required="true" />
|
|
77
|
+
</div>`,
|
|
78
|
+
});
|
|
@@ -26,7 +26,12 @@
|
|
|
26
26
|
Cancelar
|
|
27
27
|
</farm-btn>
|
|
28
28
|
|
|
29
|
-
<farm-btn
|
|
29
|
+
<farm-btn
|
|
30
|
+
class="ml-2"
|
|
31
|
+
title="Confirmar"
|
|
32
|
+
:disabled="isDateFieldDisabled"
|
|
33
|
+
@click="save()"
|
|
34
|
+
>
|
|
30
35
|
Confirmar <farm-icon>check</farm-icon>
|
|
31
36
|
</farm-btn>
|
|
32
37
|
</v-date-picker>
|
|
@@ -206,7 +211,16 @@ export default Vue.extend({
|
|
|
206
211
|
},
|
|
207
212
|
},
|
|
208
213
|
isDisabled(): boolean {
|
|
209
|
-
|
|
214
|
+
if (this.value) {
|
|
215
|
+
return this.value.length === 0 ? true : false;
|
|
216
|
+
}
|
|
217
|
+
return true;
|
|
218
|
+
},
|
|
219
|
+
isDateFieldDisabled() {
|
|
220
|
+
if (this.dateField) {
|
|
221
|
+
return this.dateField.length === 0 ? true : false;
|
|
222
|
+
}
|
|
223
|
+
return true;
|
|
210
224
|
},
|
|
211
225
|
},
|
|
212
226
|
});
|
|
@@ -33,6 +33,46 @@ describe('DatePicker component', () => {
|
|
|
33
33
|
component.inputVal = 'teste';
|
|
34
34
|
expect(wrapper.emitted().input).toBeDefined();
|
|
35
35
|
});
|
|
36
|
+
it('isDisabled to be true when value is empty', async () => {
|
|
37
|
+
await wrapper.setProps({
|
|
38
|
+
value: '',
|
|
39
|
+
});
|
|
40
|
+
expect(component.isDisabled).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it('isDisabled to be true when value is empty', async () => {
|
|
44
|
+
await wrapper.setProps({
|
|
45
|
+
value: null,
|
|
46
|
+
});
|
|
47
|
+
expect(component.isDisabled).toBe(true);
|
|
48
|
+
});
|
|
49
|
+
it('isDisabled to be false when value is valid', async () => {
|
|
50
|
+
await wrapper.setProps({
|
|
51
|
+
value: '2023-02-02',
|
|
52
|
+
});
|
|
53
|
+
expect(component.isDisabled).toBe(false);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it('isDateFieldDisabled to be true when dateField is empty', async () => {
|
|
57
|
+
await wrapper.setProps({
|
|
58
|
+
value: '',
|
|
59
|
+
});
|
|
60
|
+
expect(component.isDateFieldDisabled).toBe(true);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('isDateFieldDisabled to be true when dateField is empty', async () => {
|
|
64
|
+
await wrapper.setProps({
|
|
65
|
+
value: null,
|
|
66
|
+
});
|
|
67
|
+
expect(component.isDateFieldDisabled).toBe(true);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it('isDateFieldDisabled to be false when dateField is valid', async () => {
|
|
71
|
+
await wrapper.setProps({
|
|
72
|
+
value: '2023-02-02',
|
|
73
|
+
});
|
|
74
|
+
expect(component.isDateFieldDisabled).toBe(false);
|
|
75
|
+
});
|
|
36
76
|
});
|
|
37
77
|
|
|
38
78
|
describe('methods', () => {
|
|
@@ -31,7 +31,12 @@
|
|
|
31
31
|
Cancelar
|
|
32
32
|
</farm-btn>
|
|
33
33
|
|
|
34
|
-
<farm-btn
|
|
34
|
+
<farm-btn
|
|
35
|
+
class="ml-2"
|
|
36
|
+
title="Confirmar"
|
|
37
|
+
:disabled="isDateFieldDisabled"
|
|
38
|
+
@click="save()"
|
|
39
|
+
>
|
|
35
40
|
Confirmar <farm-icon>check</farm-icon>
|
|
36
41
|
</farm-btn>
|
|
37
42
|
</v-date-picker>
|
|
@@ -111,6 +116,9 @@ export default Vue.extend({
|
|
|
111
116
|
},
|
|
112
117
|
watch: {
|
|
113
118
|
value(newValue) {
|
|
119
|
+
if (newValue?.length === 1) {
|
|
120
|
+
newValue.push(newValue[0]);
|
|
121
|
+
}
|
|
114
122
|
this.dateField = newValue;
|
|
115
123
|
this.fieldRange = this.formatDateRange(newValue);
|
|
116
124
|
},
|
|
@@ -160,7 +168,16 @@ export default Vue.extend({
|
|
|
160
168
|
return !this.dateField || this.dateField.length == 1;
|
|
161
169
|
},
|
|
162
170
|
isDisabled() {
|
|
163
|
-
|
|
171
|
+
if (this.value) {
|
|
172
|
+
return this.value.length === 0 ? true : false;
|
|
173
|
+
}
|
|
174
|
+
return true;
|
|
175
|
+
},
|
|
176
|
+
isDateFieldDisabled() {
|
|
177
|
+
if (this.dateField) {
|
|
178
|
+
return this.dateField.length === 0 ? true : false;
|
|
179
|
+
}
|
|
180
|
+
return true;
|
|
164
181
|
},
|
|
165
182
|
isInvertedDate() {
|
|
166
183
|
if (this.dateField.length === 2) {
|
|
@@ -25,6 +25,48 @@ describe('RangeDatePicker component', () => {
|
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
describe('computed values', () => {
|
|
28
|
+
it('isDisabled to be true when value is empty', async () => {
|
|
29
|
+
await wrapper.setProps({
|
|
30
|
+
value: [],
|
|
31
|
+
});
|
|
32
|
+
expect(component.isDisabled).toBe(true);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('isDisabled to be true when value is null', async () => {
|
|
36
|
+
await wrapper.setProps({
|
|
37
|
+
value: null,
|
|
38
|
+
});
|
|
39
|
+
expect(component.isDisabled).toBe(true);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('isDisabled to be false when value is valid', async () => {
|
|
43
|
+
await wrapper.setProps({
|
|
44
|
+
value: ['2023-02-02'],
|
|
45
|
+
});
|
|
46
|
+
expect(component.isDisabled).toBe(false);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('isDateFieldDisabled to be true when dateField is empty', async () => {
|
|
50
|
+
await wrapper.setProps({
|
|
51
|
+
value: [],
|
|
52
|
+
});
|
|
53
|
+
expect(component.isDateFieldDisabled).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it('isDateFieldDisabled to be true when dateField is null', async () => {
|
|
57
|
+
await wrapper.setProps({
|
|
58
|
+
value: null,
|
|
59
|
+
});
|
|
60
|
+
expect(component.isDateFieldDisabled).toBe(true);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('isDateFieldDisabled to be false when dateField is valid', async () => {
|
|
64
|
+
await wrapper.setProps({
|
|
65
|
+
value: ['2023-02-02'],
|
|
66
|
+
});
|
|
67
|
+
expect(component.isDateFieldDisabled).toBe(false);
|
|
68
|
+
});
|
|
69
|
+
|
|
28
70
|
it('min max correctly', async () => {
|
|
29
71
|
await wrapper.setProps({
|
|
30
72
|
inputId: 'someid',
|
|
@@ -48,4 +90,18 @@ describe('RangeDatePicker component', () => {
|
|
|
48
90
|
expect(component.menuField).toBeFalsy();
|
|
49
91
|
});
|
|
50
92
|
});
|
|
93
|
+
|
|
94
|
+
describe('watchs', () => {
|
|
95
|
+
it('should show dateField and fieldRange correctly when it has one date', () => {
|
|
96
|
+
component.$options.watch.value.call(component, ['2023-02-27']);
|
|
97
|
+
expect(component.dateField).toEqual(['2023-02-27', '2023-02-27']);
|
|
98
|
+
expect(component.fieldRange).toEqual('27/02/2023 a 27/02/2023');
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
it('should show dateField and fieldRange correctly when it has two dates', () => {
|
|
102
|
+
component.$options.watch.value.call(component, ['2023-02-27', '2023-02-28']);
|
|
103
|
+
expect(component.dateField).toEqual(['2023-02-27', '2023-02-28']);
|
|
104
|
+
expect(component.fieldRange).toEqual('27/02/2023 a 28/02/2023');
|
|
105
|
+
});
|
|
106
|
+
});
|
|
51
107
|
});
|