pui9-components 1.16.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.
- package/README.md +43 -0
- package/dist/demo.html +10 -0
- package/dist/pui9-components.common.js +81953 -0
- package/dist/pui9-components.common.js.map +1 -0
- package/dist/pui9-components.css +5 -0
- package/dist/pui9-components.umd.js +81963 -0
- package/dist/pui9-components.umd.js.map +1 -0
- package/dist/pui9-components.umd.min.js +308 -0
- package/dist/pui9-components.umd.min.js.map +1 -0
- package/package-lock.json +15945 -0
- package/package.json +78 -0
- package/src/App.vue +117 -0
- package/src/components/PuiCheckbox.vue +105 -0
- package/src/components/PuiCodeEditor.vue +123 -0
- package/src/components/PuiDateField.vue +1004 -0
- package/src/components/PuiField.vue +30 -0
- package/src/components/PuiFieldSet.vue +27 -0
- package/src/components/PuiFormFooter.vue +64 -0
- package/src/components/PuiFormFooterBtns.vue +118 -0
- package/src/components/PuiFormHeader.vue +25 -0
- package/src/components/PuiFormLoading.vue +12 -0
- package/src/components/PuiFormMiniAudit.vue +53 -0
- package/src/components/PuiMasterDetail.vue +96 -0
- package/src/components/PuiModalDialog.vue +87 -0
- package/src/components/PuiModalDialogForm.vue +205 -0
- package/src/components/PuiMultiSelect.vue +499 -0
- package/src/components/PuiNumberField.vue +503 -0
- package/src/components/PuiPasswordField.vue +105 -0
- package/src/components/PuiRadioGroup.vue +105 -0
- package/src/components/PuiRichTextEditor.vue +117 -0
- package/src/components/PuiSelect.vue +1638 -0
- package/src/components/PuiSelectDetailDialog.vue +106 -0
- package/src/components/PuiSelectTextService.vue +61 -0
- package/src/components/PuiSpinnerField.vue +484 -0
- package/src/components/PuiSwitch.vue +104 -0
- package/src/components/PuiTextArea.vue +203 -0
- package/src/components/PuiTextField.vue +272 -0
- package/src/dateTimeUtils.js +78 -0
- package/src/index.js +73 -0
- package/src/main.js +33 -0
- package/src/mixins/PuiFormComponentMixin.js +81 -0
- package/src/mixins/PuiMultiSelectMixin.js +106 -0
- package/src/mixins/PuiUtilsNumberMixin.js +19 -0
- package/src/plugins/vuetify.js +32 -0
- package/src/tests/TestAutocomplete.vue +138 -0
- package/src/tests/TestCodeEditor.vue +48 -0
- package/src/tests/TestField.vue +22 -0
- package/src/tests/TestFieldSet.vue +30 -0
- package/src/tests/TestInputCheckbox.vue +53 -0
- package/src/tests/TestInputDate.vue +146 -0
- package/src/tests/TestInputNumber.vue +77 -0
- package/src/tests/TestInputRadioGroup.vue +86 -0
- package/src/tests/TestInputSpinner.vue +77 -0
- package/src/tests/TestInputSwitch.vue +52 -0
- package/src/tests/TestInputText.vue +120 -0
- package/src/tests/TestInputTextArea.vue +73 -0
- package/src/tests/TestMultiSelect.vue +127 -0
- package/src/tests/TestPuiForm.vue +68 -0
- package/src/tests/TestRichTextEditor.vue +54 -0
- package/src/utils.js +148 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-container>
|
|
3
|
+
<v-flex xs12>
|
|
4
|
+
<v-card class="pa-4 mt-4">
|
|
5
|
+
<h2 class="mb-4">Date</h2>
|
|
6
|
+
<!-- Date básico-->
|
|
7
|
+
<pui-date-field label="Campo de fecha básico" v-model="model1"></pui-date-field>
|
|
8
|
+
<!-- Date básico con formato-->
|
|
9
|
+
<pui-date-field label="Campo de fecha con formato YYYY-MM-DD" v-model="model2" isoDateFormat="YYYY-MM-DD"></pui-date-field>
|
|
10
|
+
<!-- Campo de fecha básico no editable a mano-->
|
|
11
|
+
<pui-date-field label="Campo de fecha básico no editable a mano" v-model="model3" disableTextInput></pui-date-field>
|
|
12
|
+
<!-- Date básico etiqueta arriba-->
|
|
13
|
+
<pui-date-field label="Campo de fecha etiqueta arriba" v-model="model4" toplabel></pui-date-field>
|
|
14
|
+
<!-- Date básico con estilos de columna-->
|
|
15
|
+
<pui-date-field
|
|
16
|
+
label="Campo de fecha con estilos de columna"
|
|
17
|
+
v-model="model4"
|
|
18
|
+
required
|
|
19
|
+
labelColumnStyles="xs12 md4 xl2"
|
|
20
|
+
valueColumnStyles="xs12 md8 xl10"
|
|
21
|
+
></pui-date-field>
|
|
22
|
+
<!-- Date obligatorio-->
|
|
23
|
+
<pui-date-field label="Campo de fecha obligatorio" v-model="model5" required></pui-date-field>
|
|
24
|
+
<!-- Date obligatorio-->
|
|
25
|
+
<pui-date-field label="Campo de fecha desactivado" v-model="model6" disabled></pui-date-field>
|
|
26
|
+
<!-- Date con fecha delimitando mínima y máxima-->
|
|
27
|
+
<pui-date-field
|
|
28
|
+
label="Campo de fecha delimitando mínima y máxima"
|
|
29
|
+
v-model="model7"
|
|
30
|
+
:min="model7min"
|
|
31
|
+
:max="model7max"
|
|
32
|
+
></pui-date-field>
|
|
33
|
+
|
|
34
|
+
<!-- Campo con fecha sin separador-->
|
|
35
|
+
<pui-date-field label="Campo de fecha sin separador: YYYYMMDD" v-model="model8" isoDateFormat="YYYYMMDD"></pui-date-field>
|
|
36
|
+
<!-- Campo con fecha de hoy-->
|
|
37
|
+
<pui-date-field label="Campo de fecha de hoy" v-model="model9" today></pui-date-field>
|
|
38
|
+
<!-- Campo con fecha y hora-->
|
|
39
|
+
<pui-date-field label="Campo de fecha y hora: DD-MM-YYYY HH:mm" v-model="model10" time></pui-date-field>
|
|
40
|
+
<!-- Campo con fecha y hora HH:MM:SS-->
|
|
41
|
+
<pui-date-field label="Campo de fecha y hora: DD-MM-YYYY HH:mm:ss" v-model="model11" timesecs></pui-date-field>
|
|
42
|
+
<!-- Campo con fecha con model nulo: DD-MM-YYYY-->
|
|
43
|
+
<pui-date-field label="Campo de fecha con model nulo" v-model="model12"></pui-date-field>
|
|
44
|
+
<!-- Campo con fecha sin model y today: DD-MM-YYYY HH:mm:ss-->
|
|
45
|
+
<pui-date-field label="Campo de fecha con modeles nulos" v-model="model13" timesecs></pui-date-field>
|
|
46
|
+
<!-- Campo con fecha NO LAZY-->
|
|
47
|
+
<pui-date-field label="Campo de fecha NO lazy" v-model="model14" noLazyModel></pui-date-field>
|
|
48
|
+
</v-card>
|
|
49
|
+
<v-card class="pa-4 mt-4">
|
|
50
|
+
<h2 class="mb-4">Linked dates</h2>
|
|
51
|
+
<!-- Date básico-->
|
|
52
|
+
<pui-date-field label="Campo de fecha A" v-model="model20"></pui-date-field>
|
|
53
|
+
<!-- Date básico con formato-->
|
|
54
|
+
<pui-date-field label="Campo de fecha B enlazado con A (fecha A es la mínima)" v-model="model21" :min="model20"></pui-date-field>
|
|
55
|
+
<!-- Date básico con formato-->
|
|
56
|
+
<pui-date-field label="Campo de fecha C enlazado con A (fecha A es la máxima)" v-model="model22" :max="model20"></pui-date-field>
|
|
57
|
+
</v-card>
|
|
58
|
+
<v-card class="pa-4 mt-4">
|
|
59
|
+
<h2 class="mb-4">Linked dates each others</h2>
|
|
60
|
+
<!-- Date básico-->
|
|
61
|
+
<pui-date-field label="Campo de fecha INICIAL" v-model="model30" :max="model31"></pui-date-field>
|
|
62
|
+
<!-- Date básico con formato-->
|
|
63
|
+
<pui-date-field label="Campo de fecha FINAL" v-model="model31" :min="model30"></pui-date-field>
|
|
64
|
+
</v-card>
|
|
65
|
+
</v-flex>
|
|
66
|
+
</v-container>
|
|
67
|
+
</template>
|
|
68
|
+
|
|
69
|
+
<script>
|
|
70
|
+
import PuiDateField from '@/components/PuiDateField';
|
|
71
|
+
|
|
72
|
+
export default {
|
|
73
|
+
name: 'TestInputDate',
|
|
74
|
+
components: { PuiDateField },
|
|
75
|
+
data() {
|
|
76
|
+
return {
|
|
77
|
+
model1: null,
|
|
78
|
+
model2: null,
|
|
79
|
+
model3: null,
|
|
80
|
+
model4: null,
|
|
81
|
+
model5: null,
|
|
82
|
+
model6: null,
|
|
83
|
+
model7min: '2019-01-13T18:30:30.123Z',
|
|
84
|
+
model7max: '2019-02-17T18:30:30.123Z',
|
|
85
|
+
model7: null,
|
|
86
|
+
|
|
87
|
+
model8: null,
|
|
88
|
+
model9: null,
|
|
89
|
+
model10: null,
|
|
90
|
+
model11: null,
|
|
91
|
+
model12: null,
|
|
92
|
+
model13: null,
|
|
93
|
+
model14: '2019-02-17T18:30:30.123+07:00',
|
|
94
|
+
|
|
95
|
+
model20: null,
|
|
96
|
+
model21: null,
|
|
97
|
+
model22: null,
|
|
98
|
+
|
|
99
|
+
model30: null,
|
|
100
|
+
model31: null,
|
|
101
|
+
|
|
102
|
+
errorMessage: 'Mensaje de error del input',
|
|
103
|
+
message:
|
|
104
|
+
'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s.'
|
|
105
|
+
};
|
|
106
|
+
},
|
|
107
|
+
methods: {
|
|
108
|
+
printModel(modelName, value) {
|
|
109
|
+
console.log(modelName, value);
|
|
110
|
+
},
|
|
111
|
+
lazyLoadTest() {
|
|
112
|
+
setTimeout(() => {
|
|
113
|
+
this.model1 = '2019-02-11T18:30:30.123Z';
|
|
114
|
+
this.model2 = '2019-02-13T18:30:30.123Z';
|
|
115
|
+
this.model3 = '2018-02-13T18:30:30.123Z';
|
|
116
|
+
this.model4 = '2019-02-15T18:30:30.123+06:00';
|
|
117
|
+
this.model5 = '2019-02-13T18:30:30.123-06:00';
|
|
118
|
+
this.model6 = '2019-02-11T18:30:30.123Z';
|
|
119
|
+
this.model7 = '2019-02-11T18:30:30.123Z';
|
|
120
|
+
this.model8 = '2018-02-11T18:30:30.123Z';
|
|
121
|
+
this.model10 = '2018-02-11T12:30:30.123+03:00';
|
|
122
|
+
this.model11 = '2018-02-11T12:30:30.123-01:00';
|
|
123
|
+
this.model12 = null;
|
|
124
|
+
this.model13 = null;
|
|
125
|
+
this.model20 = '2018-02-11T12:30:30.123+03:00';
|
|
126
|
+
this.model21 = '2018-02-12T12:30:30.123+03:00';
|
|
127
|
+
this.model22 = '2018-02-13T12:30:30.123+03:00';
|
|
128
|
+
|
|
129
|
+
this.model30 = '2018-02-11T12:30:30.123+03:00';
|
|
130
|
+
this.model31 = '2019-02-12T12:30:30.123+03:00';
|
|
131
|
+
console.log('TestInputDate', 'Cargando modelos lazy');
|
|
132
|
+
}, 4000);
|
|
133
|
+
setTimeout(() => {
|
|
134
|
+
this.model7min = '2019-01-11T18:30:30.123Z';
|
|
135
|
+
this.model7max = '2019-02-19T18:30:30.123Z';
|
|
136
|
+
}, 6000);
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
created() {
|
|
140
|
+
for (let i = 1; i <= 100; i++) {
|
|
141
|
+
this.$watch(() => this[`model${i}`], this.printModel.bind(this, `Model${i}`));
|
|
142
|
+
}
|
|
143
|
+
this.lazyLoadTest();
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
</script>
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-container>
|
|
3
|
+
<v-flex xs12>
|
|
4
|
+
<v-card class="pa-4 mt-4">
|
|
5
|
+
<h2 class="mb-4">Campo numérico</h2>
|
|
6
|
+
<!-- Campo numérico básico-->
|
|
7
|
+
<pui-number-field label="Campo numérico básico" id="model40" v-model="model40"></pui-number-field>
|
|
8
|
+
<!-- Campo numérico requerido-->
|
|
9
|
+
<pui-number-field label="Campo numérico requerido" v-model="model41" required></pui-number-field>
|
|
10
|
+
<!-- Campo numérico máximo decimales-->
|
|
11
|
+
<pui-number-field label="Campo numérico máximo decimales" v-model="model42" decimals="5"></pui-number-field>
|
|
12
|
+
<!-- Campo numérico valor máximo y mínimo-->
|
|
13
|
+
<pui-number-field label="Campo numérico valor máximo y mínimo" v-model="model43" min="-2.1" max="12.5"></pui-number-field>
|
|
14
|
+
<!-- Campo numérico valor entero-->
|
|
15
|
+
<pui-number-field label="Campo numérico valor entero" v-model="model44" integer></pui-number-field>
|
|
16
|
+
<!-- Campo numérico con label arriba-->
|
|
17
|
+
<pui-number-field label="Campo numérico con label arriba" v-model="model45" toplabel required></pui-number-field>
|
|
18
|
+
<!-- Campo numérico con estilos de columna-->
|
|
19
|
+
<pui-number-field
|
|
20
|
+
label="Campo numérico con estilos de columna"
|
|
21
|
+
v-model="model45"
|
|
22
|
+
required
|
|
23
|
+
labelColumnStyles="xs12 md4 xl2"
|
|
24
|
+
valueColumnStyles="xs12 md8 xl10"
|
|
25
|
+
></pui-number-field>
|
|
26
|
+
<!-- Campo numérico con modelo NO lazy-->
|
|
27
|
+
<pui-number-field label="Campo numérico con modelo NO lazy" v-model="model46" noLazyModel required></pui-number-field>
|
|
28
|
+
</v-card>
|
|
29
|
+
</v-flex>
|
|
30
|
+
</v-container>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
<script>
|
|
34
|
+
import PuiNumberField from '@/components/PuiNumberField';
|
|
35
|
+
|
|
36
|
+
export default {
|
|
37
|
+
name: 'TestInputNumber',
|
|
38
|
+
components: { PuiNumberField },
|
|
39
|
+
data() {
|
|
40
|
+
return {
|
|
41
|
+
model40: null,
|
|
42
|
+
model41: null,
|
|
43
|
+
model42: null,
|
|
44
|
+
model43: null,
|
|
45
|
+
model44: null,
|
|
46
|
+
model45: null,
|
|
47
|
+
model46: 5.67,
|
|
48
|
+
|
|
49
|
+
errorMessage: 'Mensaje de error del input',
|
|
50
|
+
message:
|
|
51
|
+
'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s.'
|
|
52
|
+
};
|
|
53
|
+
},
|
|
54
|
+
methods: {
|
|
55
|
+
printModel(modelName, value) {
|
|
56
|
+
console.log(modelName, value);
|
|
57
|
+
},
|
|
58
|
+
lazyLoadTest() {
|
|
59
|
+
setTimeout(() => {
|
|
60
|
+
this.model40 = 52.567;
|
|
61
|
+
this.model41 = 12345678.765;
|
|
62
|
+
this.model42 = 12345.6789;
|
|
63
|
+
this.model43 = 12.6;
|
|
64
|
+
this.model44 = 2.5565;
|
|
65
|
+
this.model45 = -7.56565;
|
|
66
|
+
console.log('TestInputNumber', 'Cargando modelos lazy');
|
|
67
|
+
}, 3000);
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
created() {
|
|
71
|
+
for (let i = 1; i <= 100; i++) {
|
|
72
|
+
this.$watch(() => this[`model${i}`], this.printModel.bind(this, `Model${i}`));
|
|
73
|
+
}
|
|
74
|
+
this.lazyLoadTest();
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
</script>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-container>
|
|
3
|
+
<v-flex xs12>
|
|
4
|
+
<v-card class="pa-4 mt-4">
|
|
5
|
+
<h2 class="mb-4">Radios</h2>
|
|
6
|
+
<!-- Radio simple columna-->
|
|
7
|
+
<pui-radio-group label="Radio simple columna" v-model="model80" column :radios="radios1"></pui-radio-group>
|
|
8
|
+
<!-- Radio simple fila-->
|
|
9
|
+
<pui-radio-group label="Radio simple fila" v-model="model81" row :radios="radios2" required></pui-radio-group>
|
|
10
|
+
<!-- Radio simple fila con etiqeta arriba-->
|
|
11
|
+
<pui-radio-group label="Radio simple fila con etiqueta arriba" v-model="model82" row :radios="radios3" toplabel></pui-radio-group>
|
|
12
|
+
</v-card>
|
|
13
|
+
</v-flex>
|
|
14
|
+
</v-container>
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
<script>
|
|
18
|
+
import PuiRadioGroup from '@/components/PuiRadioGroup';
|
|
19
|
+
|
|
20
|
+
export default {
|
|
21
|
+
name: 'TestInputRadioGroup',
|
|
22
|
+
components: { PuiRadioGroup },
|
|
23
|
+
data() {
|
|
24
|
+
return {
|
|
25
|
+
model80: 1,
|
|
26
|
+
radios1: [
|
|
27
|
+
{
|
|
28
|
+
id: 1,
|
|
29
|
+
label: 'Radio X',
|
|
30
|
+
value: 'x'
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 2,
|
|
34
|
+
label: 'Radio Y',
|
|
35
|
+
value: 'y'
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
model81: 2,
|
|
39
|
+
radios2: [
|
|
40
|
+
{
|
|
41
|
+
id: 1,
|
|
42
|
+
label: 'Radio Z',
|
|
43
|
+
value: 'z'
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: 2,
|
|
47
|
+
label: 'Radio W',
|
|
48
|
+
value: 'w'
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
model82: 3,
|
|
52
|
+
radios3: [
|
|
53
|
+
{
|
|
54
|
+
id: 1,
|
|
55
|
+
label: 'Radio A',
|
|
56
|
+
value: 'a'
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 2,
|
|
60
|
+
label: 'Radio B',
|
|
61
|
+
value: 'b'
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 3,
|
|
65
|
+
label: 'Radio C',
|
|
66
|
+
value: 'c'
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
errorMessage: 'Mensaje de error del input',
|
|
70
|
+
message:
|
|
71
|
+
'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s.'
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
methods: {
|
|
76
|
+
printModel(modelName, value) {
|
|
77
|
+
console.log(modelName, value);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
created() {
|
|
81
|
+
for (let i = 1; i <= 100; i++) {
|
|
82
|
+
this.$watch(() => this[`model${i}`], this.printModel.bind(this, `Model${i}`));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
</script>
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-container>
|
|
3
|
+
<v-flex xs12>
|
|
4
|
+
<v-card class="pa-4 mt-4">
|
|
5
|
+
<h2 class="mb-4">Spinner</h2>
|
|
6
|
+
<!-- Number input - Spinner-->
|
|
7
|
+
<pui-spinner-field label="Spinner básico" v-model="model30"></pui-spinner-field>
|
|
8
|
+
<!-- Number input - Spinner carga modelo NO lazy-->
|
|
9
|
+
<pui-spinner-field label="Spinner modelo NO lazy" v-model="model31" noLazyModel></pui-spinner-field>
|
|
10
|
+
<!-- Number input - Spinner-->
|
|
11
|
+
<pui-spinner-field label="Spinner con sufijo" v-model="model32" suffix="m"></pui-spinner-field>
|
|
12
|
+
<!-- Number input - Spinner-->
|
|
13
|
+
<pui-spinner-field label="Spinner con max y min" v-model="model33" max="7" min="-2"></pui-spinner-field>
|
|
14
|
+
<!-- Number input - Spinner-->
|
|
15
|
+
<pui-spinner-field label="Spinner etiqueta arriba" v-model="model34" toplabel></pui-spinner-field>
|
|
16
|
+
<!-- Number input - Spinner-->
|
|
17
|
+
<pui-spinner-field label="Spinner valor inicial null" v-model="model35" toplabel></pui-spinner-field>
|
|
18
|
+
<!-- Number input - Spinner-->
|
|
19
|
+
<pui-spinner-field label="Spinner con ancho definido 150px" v-model="model36" width="150"></pui-spinner-field>
|
|
20
|
+
<!-- Number input - Spinner-->
|
|
21
|
+
<pui-spinner-field label="Spinner con max y min dinámico" v-model="model37" :max="maxVal" :min="minVal"></pui-spinner-field>
|
|
22
|
+
<v-btn @click="changeMinMax">Incrementar max ({{ maxVal }}) y min ({{ minVal }}) del spinner anterior en 1</v-btn>
|
|
23
|
+
</v-card>
|
|
24
|
+
</v-flex>
|
|
25
|
+
</v-container>
|
|
26
|
+
</template>
|
|
27
|
+
|
|
28
|
+
<script>
|
|
29
|
+
import PuiSpinnerField from '@/components/PuiSpinnerField';
|
|
30
|
+
|
|
31
|
+
export default {
|
|
32
|
+
name: 'TestInputSpinner',
|
|
33
|
+
components: { PuiSpinnerField },
|
|
34
|
+
data() {
|
|
35
|
+
return {
|
|
36
|
+
model30: null,
|
|
37
|
+
model31: 0,
|
|
38
|
+
model32: null,
|
|
39
|
+
model33: null,
|
|
40
|
+
model34: null,
|
|
41
|
+
model35: null,
|
|
42
|
+
model36: null,
|
|
43
|
+
model37: null,
|
|
44
|
+
minVal: 0,
|
|
45
|
+
maxVal: 5,
|
|
46
|
+
errorMessage: 'Mensaje de error del input',
|
|
47
|
+
message:
|
|
48
|
+
'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s.'
|
|
49
|
+
};
|
|
50
|
+
},
|
|
51
|
+
methods: {
|
|
52
|
+
printModel(modelName, value) {
|
|
53
|
+
console.log(modelName, value);
|
|
54
|
+
},
|
|
55
|
+
lazyLoadTest() {
|
|
56
|
+
setTimeout(() => {
|
|
57
|
+
this.model30 = 2;
|
|
58
|
+
this.model32 = 3;
|
|
59
|
+
this.model33 = 4;
|
|
60
|
+
this.model34 = 5;
|
|
61
|
+
this.model35 = 6;
|
|
62
|
+
this.model36 = 7;
|
|
63
|
+
}, 3000);
|
|
64
|
+
},
|
|
65
|
+
changeMinMax() {
|
|
66
|
+
this.minVal = this.minVal + 1;
|
|
67
|
+
this.maxVal = this.maxVal + 1;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
created() {
|
|
71
|
+
for (let i = 1; i <= 100; i++) {
|
|
72
|
+
this.$watch(() => this[`model${i}`], this.printModel.bind(this, `Model${i}`));
|
|
73
|
+
}
|
|
74
|
+
this.lazyLoadTest();
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
</script>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-container>
|
|
3
|
+
<v-flex xs12>
|
|
4
|
+
<v-card class="pa-4 mt-4">
|
|
5
|
+
<h2 class="mb-4">Selectores</h2>
|
|
6
|
+
|
|
7
|
+
<!-- Switch básico -->
|
|
8
|
+
<pui-switch label="Switch básico" v-model="model66"></pui-switch>
|
|
9
|
+
<!-- Switch básico deseleccionado -->
|
|
10
|
+
<pui-switch label="Switch básico deseleccionado" v-model="model67"></pui-switch>
|
|
11
|
+
<!-- Switch básico desactivado -->
|
|
12
|
+
<pui-switch label="Switch básico desactivado" v-model="model68" disabled></pui-switch>
|
|
13
|
+
<!-- Switch requerido-->
|
|
14
|
+
<pui-switch label="Switch requerido" v-model="model69" required></pui-switch>
|
|
15
|
+
<!-- Switch devolviendo S ó N-->
|
|
16
|
+
<pui-switch label="Switch devolviendo S ó N" v-model="model70" true-value="S" false-value="N"></pui-switch>
|
|
17
|
+
</v-card>
|
|
18
|
+
</v-flex>
|
|
19
|
+
</v-container>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
import PuiSwitch from '@/components/PuiSwitch';
|
|
24
|
+
|
|
25
|
+
export default {
|
|
26
|
+
name: 'TestInputSwitch',
|
|
27
|
+
components: { PuiSwitch },
|
|
28
|
+
data() {
|
|
29
|
+
return {
|
|
30
|
+
model66: true,
|
|
31
|
+
model67: false,
|
|
32
|
+
model68: false,
|
|
33
|
+
model69: false,
|
|
34
|
+
model70: 'S',
|
|
35
|
+
errorMessage: 'Mensaje de error del input',
|
|
36
|
+
message:
|
|
37
|
+
'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s.'
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
methods: {
|
|
42
|
+
printModel(modelName, value) {
|
|
43
|
+
console.log(modelName, value);
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
created() {
|
|
47
|
+
for (let i = 1; i <= 100; i++) {
|
|
48
|
+
this.$watch(() => this[`model${i}`], this.printModel.bind(this, `Model${i}`));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
</script>
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-container>
|
|
3
|
+
<v-flex xs12>
|
|
4
|
+
<v-card class="pa-4 mt-4">
|
|
5
|
+
<h2 class="mb-4">Campo de texto</h2>
|
|
6
|
+
<!-- Input text-->
|
|
7
|
+
<pui-text-field label="Campo básico" placeholder=" " v-model="model1"></pui-text-field>
|
|
8
|
+
<!-- Input text with placeholder -->
|
|
9
|
+
<pui-text-field label="Campo con placeholder" v-model="model2" placeholder="Placeholder"></pui-text-field>
|
|
10
|
+
<!-- Input text required -->
|
|
11
|
+
<pui-text-field label="Campo requerido" v-model="model11" required placeholder=" "></pui-text-field>
|
|
12
|
+
<!-- Input text sin efecto editable -->
|
|
13
|
+
<pui-text-field label="Campo sin efecto editable" placeholder=" " v-model="model4" noeditable></pui-text-field>
|
|
14
|
+
<!-- Input text disabled -->
|
|
15
|
+
<pui-text-field label="Campo desactivado" v-model="model5" disabled></pui-text-field>
|
|
16
|
+
<!-- Input text solo lectura -->
|
|
17
|
+
<pui-text-field label="Campo solo lectura" v-model="model14" readonly></pui-text-field>
|
|
18
|
+
<!-- Input text error -->
|
|
19
|
+
<pui-text-field label="Campo con error" placeholder=" " v-model="model6" error :error-messages="errorMessage"></pui-text-field>
|
|
20
|
+
<!-- Input text special -->
|
|
21
|
+
<puipasswordfield label="Contraseña" v-model="model7"></puipasswordfield>
|
|
22
|
+
<!-- Input text message -->
|
|
23
|
+
<pui-text-field label="Campo con Mensaje" placeholder=" " v-model="model8" value="53aa" :messages="message"></pui-text-field>
|
|
24
|
+
<!-- Input text prefix -->
|
|
25
|
+
<pui-text-field label="Campo con prefijo" placeholder=" " v-model="model9" value="56.8" prefix="$"></pui-text-field>
|
|
26
|
+
<!-- Input text suffix -->
|
|
27
|
+
<pui-text-field label="Campo con sufijo" placeholder=" " v-model="model10" required suffix="m3"></pui-text-field>
|
|
28
|
+
<!-- Input text top label -->
|
|
29
|
+
<pui-text-field label="Campo con label arriba" placeholder=" " v-model="model12" toplabel required></pui-text-field>
|
|
30
|
+
<!-- Input text with styles -->
|
|
31
|
+
<pui-text-field
|
|
32
|
+
label="Campo con estilos de columnas"
|
|
33
|
+
placeholder="Label (xs12 md4 xl2), Input (xs12 md8 xl10)"
|
|
34
|
+
v-model="model12"
|
|
35
|
+
labelColumnStyles="xs12 md4 xl2"
|
|
36
|
+
valueColumnStyles="xs12 md8 xl10"
|
|
37
|
+
required
|
|
38
|
+
></pui-text-field>
|
|
39
|
+
<!-- Input text con botón de limpiado -->
|
|
40
|
+
<pui-text-field label="Campo con botón de limpiado" placeholder=" " v-model="model13" clearable></pui-text-field>
|
|
41
|
+
<!-- Input text de búsqueda con etiqueta sin efecto editable y sincronizado con el padre en tiempo real-->
|
|
42
|
+
<pui-text-field
|
|
43
|
+
label="Campo de búsqueda con etiqueta no editable"
|
|
44
|
+
placeholder="Buscar"
|
|
45
|
+
v-model="model15"
|
|
46
|
+
clearable
|
|
47
|
+
prepend-inner-icon="far fa-search"
|
|
48
|
+
noeditable
|
|
49
|
+
realtime
|
|
50
|
+
></pui-text-field>
|
|
51
|
+
<!-- Input text de búsqueda sin etiqueta sin efecto editable y sincroniza con el padre en tiempo real -->
|
|
52
|
+
<pui-text-field
|
|
53
|
+
placeholder="Buscar"
|
|
54
|
+
v-model="model16"
|
|
55
|
+
clearable
|
|
56
|
+
prepend-inner-icon="far fa-search"
|
|
57
|
+
noeditable
|
|
58
|
+
realtime
|
|
59
|
+
></pui-text-field>
|
|
60
|
+
<!-- Input text con carga NO lazy-->
|
|
61
|
+
<pui-text-field label="Campo de texto sin carga Lazy" placeholder v-model="model17" noLazyModel></pui-text-field>
|
|
62
|
+
<!-- Campo de tipo contraseña -->
|
|
63
|
+
<pui-password-field label="Contraseña" v-model="model18"></pui-password-field>
|
|
64
|
+
</v-card>
|
|
65
|
+
</v-flex>
|
|
66
|
+
</v-container>
|
|
67
|
+
</template>
|
|
68
|
+
|
|
69
|
+
<script>
|
|
70
|
+
import PuiTextField from '@/components/PuiTextField';
|
|
71
|
+
import PuiPasswordField from '@/components/PuiPasswordField';
|
|
72
|
+
|
|
73
|
+
export default {
|
|
74
|
+
name: 'TestInputText',
|
|
75
|
+
components: { PuiTextField, PuiPasswordField },
|
|
76
|
+
data() {
|
|
77
|
+
return {
|
|
78
|
+
model1: null,
|
|
79
|
+
model2: null,
|
|
80
|
+
model3: null,
|
|
81
|
+
model4: null,
|
|
82
|
+
model5: 'disabled',
|
|
83
|
+
model6: null,
|
|
84
|
+
model7: null,
|
|
85
|
+
model8: '',
|
|
86
|
+
model9: null,
|
|
87
|
+
model10: null,
|
|
88
|
+
model11: null,
|
|
89
|
+
model12: null,
|
|
90
|
+
model13: null,
|
|
91
|
+
model14: 'readonly',
|
|
92
|
+
model15: null,
|
|
93
|
+
model16: null,
|
|
94
|
+
model17: 'No lazy load',
|
|
95
|
+
errorMessage: 'Mensaje de error del input',
|
|
96
|
+
message:
|
|
97
|
+
'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s.'
|
|
98
|
+
};
|
|
99
|
+
},
|
|
100
|
+
methods: {
|
|
101
|
+
printModel(modelName, value) {
|
|
102
|
+
console.log(modelName, value);
|
|
103
|
+
},
|
|
104
|
+
lazyLoadTest() {
|
|
105
|
+
setTimeout(() => {
|
|
106
|
+
this.model1 = 'lazy load';
|
|
107
|
+
this.model2 = 'lazy load';
|
|
108
|
+
this.model14 = 'lazy load';
|
|
109
|
+
console.log('TestInputText:', 'Cargando modelos lazy');
|
|
110
|
+
}, 2000);
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
created() {
|
|
114
|
+
for (let i = 1; i <= 100; i++) {
|
|
115
|
+
this.$watch(() => this[`model${i}`], this.printModel.bind(this, `Model${i}`));
|
|
116
|
+
}
|
|
117
|
+
this.lazyLoadTest();
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
</script>
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-container>
|
|
3
|
+
<v-flex xs12>
|
|
4
|
+
<v-card class="pa-4 mt-4">
|
|
5
|
+
<h2 class="mb-4">Area de texto</h2>
|
|
6
|
+
<!-- Text area-->
|
|
7
|
+
<pui-text-area label="Área de texto básica" v-model="model20"></pui-text-area>
|
|
8
|
+
<!-- Text area desactivado-->
|
|
9
|
+
<pui-text-area label="Área de texto desactivada" v-model="model21" disabled></pui-text-area>
|
|
10
|
+
<!-- Text area requerido-->
|
|
11
|
+
<pui-text-area label="Área de texto requerido" v-model="model22" required></pui-text-area>
|
|
12
|
+
<!-- Text area label arriba-->
|
|
13
|
+
<pui-text-area label="Área de texto label arriba" v-model="model23" toplabel required></pui-text-area>
|
|
14
|
+
<!-- Text area con estilos de columna-->
|
|
15
|
+
<pui-text-area
|
|
16
|
+
label="Área de texto con estilos de columna"
|
|
17
|
+
v-model="model23"
|
|
18
|
+
required
|
|
19
|
+
labelColumnStyles="xs12 md4 xl2"
|
|
20
|
+
valueColumnStyles="xs12 md8 xl10"
|
|
21
|
+
></pui-text-area>
|
|
22
|
+
<!-- Text area solo lectura-->
|
|
23
|
+
<pui-text-area label="Área de texto solo lectura" v-model="model24" readonly></pui-text-area>
|
|
24
|
+
<!-- Text area texto placeholder-->
|
|
25
|
+
<pui-text-area label="Área de texto con placeholder" v-model="model25" placeholder="Añade texto aquí"></pui-text-area>
|
|
26
|
+
<!-- Text area NO lazy load-->
|
|
27
|
+
<pui-text-area label="Área de texto NO lazy" v-model="model27" placeholder noLazyLoad></pui-text-area>
|
|
28
|
+
</v-card>
|
|
29
|
+
</v-flex>
|
|
30
|
+
</v-container>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
<script>
|
|
34
|
+
import PuiTextArea from '@/components/PuiTextArea';
|
|
35
|
+
|
|
36
|
+
export default {
|
|
37
|
+
name: 'TestInputTextArea',
|
|
38
|
+
components: { PuiTextArea },
|
|
39
|
+
data() {
|
|
40
|
+
return {
|
|
41
|
+
model20: null,
|
|
42
|
+
model21: 'value value value',
|
|
43
|
+
model22: 'required required',
|
|
44
|
+
model23: 'label top',
|
|
45
|
+
model24: 'Solo lectura',
|
|
46
|
+
model25: 'Placeholder',
|
|
47
|
+
model26: '',
|
|
48
|
+
model27: '',
|
|
49
|
+
errorMessage: 'Mensaje de error del input',
|
|
50
|
+
message:
|
|
51
|
+
'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s.'
|
|
52
|
+
};
|
|
53
|
+
},
|
|
54
|
+
methods: {
|
|
55
|
+
printModel(modelName, value) {
|
|
56
|
+
console.log(modelName, value);
|
|
57
|
+
},
|
|
58
|
+
lazyLoadTest() {
|
|
59
|
+
setTimeout(() => {
|
|
60
|
+
this.model20 = 'lazy load';
|
|
61
|
+
this.model21 = 'lazy load';
|
|
62
|
+
console.log('TestInputTextArea:', 'Cargando modelos lazy');
|
|
63
|
+
}, 3000);
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
created() {
|
|
67
|
+
for (let i = 1; i <= 100; i++) {
|
|
68
|
+
this.$watch(() => this[`model${i}`], this.printModel.bind(this, `Model${i}`));
|
|
69
|
+
}
|
|
70
|
+
this.lazyLoadTest();
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
</script>
|