@farm-investimentos/front-mfe-components 15.2.1 → 15.2.3
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 +144 -127
- package/dist/front-mfe-components.common.js.map +1 -1
- package/dist/front-mfe-components.css +1 -1
- package/dist/front-mfe-components.umd.js +144 -127
- 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/Checkbox/Checkbox.vue +16 -2
- package/src/components/Select/Select.stories.js +36 -1
- package/src/components/Select/Select.vue +4 -0
- package/src/examples/Table.stories.js +43 -16
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<span
|
|
4
4
|
:class="{
|
|
5
5
|
'farm-checkbox': true,
|
|
6
|
-
'farm-checkbox--checked': isChecked,
|
|
6
|
+
'farm-checkbox--checked': isChecked && (forceCheck === undefined || forceCheck),
|
|
7
7
|
'farm-checkbox--disabled': disabled,
|
|
8
8
|
'farm-checkbox--indeterminate': indeterminate,
|
|
9
9
|
'farm-checkbox--lighten': variation === 'lighten',
|
|
@@ -92,12 +92,17 @@ export default Vue.extend({
|
|
|
92
92
|
* Sets an indeterminate state for the simple checkbox
|
|
93
93
|
*/
|
|
94
94
|
indeterminate: { type: Boolean, default: false },
|
|
95
|
+
/**
|
|
96
|
+
* Control if is check by prop
|
|
97
|
+
*/
|
|
98
|
+
checked: { type: Boolean, default: undefined },
|
|
95
99
|
},
|
|
96
100
|
setup(props, { emit }) {
|
|
97
101
|
const innerValue = ref(props.modelValue);
|
|
98
|
-
const { label, disabled, rules } = toRefs(props);
|
|
102
|
+
const { label, disabled, rules, checked } = toRefs(props);
|
|
99
103
|
const { errorBucket, valid, validatable } = validateFormStateBuilder();
|
|
100
104
|
const isTouched = ref(false);
|
|
105
|
+
const forceCheck = ref(checked.value);
|
|
101
106
|
let fieldValidator = validateFormFieldBuilder(rules.value);
|
|
102
107
|
|
|
103
108
|
const toggleValue = () => {
|
|
@@ -154,6 +159,14 @@ export default Vue.extend({
|
|
|
154
159
|
}
|
|
155
160
|
);
|
|
156
161
|
|
|
162
|
+
watch(
|
|
163
|
+
() => props.checked,
|
|
164
|
+
newValue => {
|
|
165
|
+
forceCheck.value = newValue;
|
|
166
|
+
innerValue.value = newValue ? props.value : null;
|
|
167
|
+
}
|
|
168
|
+
);
|
|
169
|
+
|
|
157
170
|
return {
|
|
158
171
|
innerValue,
|
|
159
172
|
label,
|
|
@@ -163,6 +176,7 @@ export default Vue.extend({
|
|
|
163
176
|
validatable,
|
|
164
177
|
hasError,
|
|
165
178
|
isChecked,
|
|
179
|
+
forceCheck,
|
|
166
180
|
toggleValue,
|
|
167
181
|
reset,
|
|
168
182
|
validate,
|
|
@@ -284,7 +284,42 @@ export const MultipleInitValue = () => ({
|
|
|
284
284
|
</div>`,
|
|
285
285
|
});
|
|
286
286
|
|
|
287
|
-
export const
|
|
287
|
+
export const MultipleResetByValue = () => ({
|
|
288
|
+
data() {
|
|
289
|
+
return {
|
|
290
|
+
filters: {
|
|
291
|
+
v: [2, 3],
|
|
292
|
+
},
|
|
293
|
+
items: [
|
|
294
|
+
{ id: 0, label: 'value 0' },
|
|
295
|
+
{ id: 1, label: 'value 1' },
|
|
296
|
+
{ id: 2, label: 'value 2' },
|
|
297
|
+
{ id: 3, label: 'value 3' },
|
|
298
|
+
],
|
|
299
|
+
};
|
|
300
|
+
},
|
|
301
|
+
methods: {
|
|
302
|
+
click() {
|
|
303
|
+
this.filters.v = [1];
|
|
304
|
+
},
|
|
305
|
+
},
|
|
306
|
+
template: `<div style="width: 400px">
|
|
307
|
+
<farm-select
|
|
308
|
+
v-model="filters.v"
|
|
309
|
+
item-value="id"
|
|
310
|
+
item-text="label"
|
|
311
|
+
ref="select"
|
|
312
|
+
multiple
|
|
313
|
+
:items="items"
|
|
314
|
+
/>
|
|
315
|
+
v-model: {{ filters.v }}
|
|
316
|
+
<farm-btn @click="click">
|
|
317
|
+
reset
|
|
318
|
+
</farm-btn>
|
|
319
|
+
</div>`,
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
export const ChangeEvent = () => ({
|
|
288
323
|
data() {
|
|
289
324
|
return {
|
|
290
325
|
v: null,
|
|
@@ -264,12 +264,16 @@ export default Vue.extend({
|
|
|
264
264
|
newValue => {
|
|
265
265
|
innerValue.value = newValue;
|
|
266
266
|
errorBucket.value = [];
|
|
267
|
+
|
|
267
268
|
if (
|
|
268
269
|
(multiple.value && newValue === null) ||
|
|
269
270
|
(Array.isArray(newValue) && newValue.length === 0)
|
|
270
271
|
) {
|
|
271
272
|
multipleValues.value = [];
|
|
272
273
|
}
|
|
274
|
+
if (Array.isArray(newValue) && newValue.length > 0) {
|
|
275
|
+
multipleValues.value = [...newValue];
|
|
276
|
+
}
|
|
273
277
|
validate(newValue);
|
|
274
278
|
updateSelectedTextValue();
|
|
275
279
|
emit('input', newValue);
|
|
@@ -83,6 +83,7 @@ export const TableSampleData = () => ({
|
|
|
83
83
|
</v-data-table>
|
|
84
84
|
</div>`,
|
|
85
85
|
});
|
|
86
|
+
|
|
86
87
|
export const TableSampleDataWithCheckbox = () => ({
|
|
87
88
|
components: { 'v-data-table': VDataTable },
|
|
88
89
|
data() {
|
|
@@ -93,6 +94,7 @@ export const TableSampleDataWithCheckbox = () => ({
|
|
|
93
94
|
{ id: 2, name: 'name 2' },
|
|
94
95
|
{ id: 3, name: 'name 3' },
|
|
95
96
|
],
|
|
97
|
+
selectedItems: [],
|
|
96
98
|
};
|
|
97
99
|
},
|
|
98
100
|
template: `<div>
|
|
@@ -102,8 +104,8 @@ export const TableSampleDataWithCheckbox = () => ({
|
|
|
102
104
|
:headers="headers"
|
|
103
105
|
:items="items"
|
|
104
106
|
show-select
|
|
107
|
+
v-model="selectedItems"
|
|
105
108
|
>
|
|
106
|
-
|
|
107
109
|
</v-data-table>
|
|
108
110
|
</div>`,
|
|
109
111
|
});
|
|
@@ -161,18 +163,43 @@ export const TableSampleLocalPagination = () => ({
|
|
|
161
163
|
</div>`,
|
|
162
164
|
});
|
|
163
165
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}
|
|
166
|
+
export const TableSampleDataWithFarmCheckbox = () => ({
|
|
167
|
+
components: { 'v-data-table': VDataTable },
|
|
168
|
+
data() {
|
|
169
|
+
return {
|
|
170
|
+
headers,
|
|
171
|
+
items: [
|
|
172
|
+
{ id: 1, name: 'name 1' },
|
|
173
|
+
{ id: 2, name: 'name 2' },
|
|
174
|
+
{ id: 3, name: 'name 3' },
|
|
175
|
+
],
|
|
176
|
+
selectedItems: [],
|
|
177
|
+
};
|
|
178
|
+
},
|
|
179
|
+
methods: {
|
|
180
|
+
onSelect({ item }) {
|
|
181
|
+
if (item.id === 2)
|
|
182
|
+
this.selectedItems = [...this.selectedItems].filter(
|
|
183
|
+
innerItem => innerItem.id !== 2
|
|
184
|
+
);
|
|
185
|
+
},
|
|
186
|
+
isItemSelected(item) {
|
|
187
|
+
return this.selectedItems.some(innerItem => innerItem.id === item.id);
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
template: `<div>{{selectedItems}}
|
|
191
|
+
<v-data-table
|
|
192
|
+
hide-default-footer
|
|
193
|
+
id="v-data-table--default"
|
|
194
|
+
v-model="selectedItems"
|
|
195
|
+
show-select
|
|
196
|
+
:headers="headers"
|
|
197
|
+
:items="items"
|
|
198
|
+
@item-selected="onSelect"
|
|
199
|
+
>
|
|
200
|
+
<template v-slot:item.data-table-select="{ isSelected, select, item }">
|
|
201
|
+
<farm-checkbox :value="item.id" :checked="isItemSelected(item)" @input="select($event)"/>
|
|
202
|
+
</template>
|
|
203
|
+
</v-data-table>
|
|
204
|
+
</div>`,
|
|
205
|
+
});
|