@nixweb/nixloc-ui 0.0.128 → 0.0.129

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.
Files changed (84) hide show
  1. package/package.json +87 -79
  2. package/src/App.vue +13 -13
  3. package/src/component/forms/Button.vue +171 -170
  4. package/src/component/forms/ButtonGroup.vue +57 -0
  5. package/src/component/forms/ButtonSub.vue +98 -0
  6. package/src/component/forms/CheckboxGroup.vue +73 -72
  7. package/src/component/forms/CheckboxSimple.vue +46 -46
  8. package/src/component/forms/Color.vue +38 -38
  9. package/src/component/forms/DateTime.vue +167 -167
  10. package/src/component/forms/Dropdown.vue +242 -218
  11. package/src/component/forms/EditorHtml.vue +126 -126
  12. package/src/component/forms/FileUpload.vue +185 -185
  13. package/src/component/forms/IncrementDecrement.vue +7 -2
  14. package/src/component/forms/InputDecimal.vue +150 -142
  15. package/src/component/forms/InputDecimalDiscount.vue +92 -0
  16. package/src/component/forms/InputNumber.vue +160 -154
  17. package/src/component/forms/InputPassword.vue +135 -135
  18. package/src/component/forms/InputText.vue +174 -162
  19. package/src/component/forms/InputTextEdit.vue +68 -0
  20. package/src/component/forms/Modal.vue +65 -65
  21. package/src/component/forms/RadioGroup.vue +50 -50
  22. package/src/component/forms/Select.vue +351 -349
  23. package/src/component/forms/SelectStatic.vue +127 -127
  24. package/src/component/forms/Slider.vue +18 -18
  25. package/src/component/forms/TextArea.vue +126 -126
  26. package/src/component/forms/Toggle.vue +3 -1
  27. package/src/component/layout/Account.vue +3 -3
  28. package/src/component/layout/Alert.vue +92 -92
  29. package/src/component/layout/Badge.vue +104 -103
  30. package/src/component/layout/FixedBar.vue +100 -100
  31. package/src/component/layout/Gantt.vue +130 -0
  32. package/src/component/layout/Header.vue +38 -38
  33. package/src/component/layout/IconMolded.vue +48 -0
  34. package/src/component/layout/LoadingFullPage.vue +27 -27
  35. package/src/component/layout/Menu.vue +213 -210
  36. package/src/component/layout/Molded.vue +28 -28
  37. package/src/component/layout/Panel.vue +140 -140
  38. package/src/component/layout/Popover.vue +126 -126
  39. package/src/component/layout/ScrollBar.vue +42 -42
  40. package/src/component/layout/Wizard.vue +211 -211
  41. package/src/component/rental/DisplayCalculatePeriod.vue +49 -0
  42. package/src/component/rental/DisplayPeriodRent.vue +19 -44
  43. package/src/component/rental/DisplayTotalization.vue +11 -2
  44. package/src/component/shared/Collapse.vue +131 -131
  45. package/src/component/shared/Confirmation.vue +21 -2
  46. package/src/component/shared/DocumentPreview.vue +2 -1
  47. package/src/component/shared/ExportPDF.vue +116 -116
  48. package/src/component/shared/FullCalendar.vue +159 -0
  49. package/src/component/shared/HorizontalFilter.vue +59 -59
  50. package/src/component/shared/Loading.vue +107 -107
  51. package/src/component/shared/LoadingMoreButton.vue +23 -23
  52. package/src/component/shared/Messages.vue +81 -81
  53. package/src/component/shared/PDFViewer.vue +22 -22
  54. package/src/component/shared/Pagination.vue +52 -52
  55. package/src/component/shared/ProgressBar.vue +22 -22
  56. package/src/component/shared/QueryButton.vue +66 -66
  57. package/src/component/shared/SaveCancel.vue +3 -2
  58. package/src/component/shared/Search.vue +154 -154
  59. package/src/component/shared/Table.vue +163 -163
  60. package/src/component/shared/TableButton.vue +36 -36
  61. package/src/component/shared/TableTotalization.vue +47 -47
  62. package/src/component/shared/TimeLine.vue +47 -0
  63. package/src/component/shared/Tip.vue +42 -42
  64. package/src/component/shared/Toast.vue +54 -54
  65. package/src/component/shared/VerticalFilter.vue +97 -97
  66. package/src/component/shared/query-builder/AddRule.vue +181 -181
  67. package/src/component/shared/query-builder/DynamicComponentList.vue +73 -73
  68. package/src/component/shared/query-builder/QueryBuilder.vue +69 -69
  69. package/src/component/shared/query-builder/utilities.js +21 -21
  70. package/src/component/template/ListViewWithDataHandler.vue +260 -260
  71. package/src/component/template/ViewTemplateConfiguration.vue +64 -64
  72. package/src/component/template/ViewTemplateReportList.vue +1 -1
  73. package/src/component/template/ViewTemplateReportPreview.vue +0 -1
  74. package/src/component/template/ViewTemplateWithSalveCancel.vue +32 -32
  75. package/src/component/template/ViewTemplateWithTable.vue +56 -56
  76. package/src/config/axios.js +9 -9
  77. package/src/config/dicas.js +14 -14
  78. package/src/config/router.js +13 -13
  79. package/src/config/token.js +14 -14
  80. package/src/main.js +23 -23
  81. package/src/store/modules/generic.js +543 -512
  82. package/src/store/modules/user.js +3 -0
  83. package/src/store/modules/validation.js +38 -38
  84. package/src/store/store.js +13 -13
@@ -1,349 +1,351 @@
1
- <template>
2
- <div class="margin">
3
- <label>
4
- <span class="title">{{ title }}</span>
5
- <span class="required" v-if="required">*</span>
6
- <Tip :field="field" :formName="formName" />
7
- </label>
8
- <div
9
- class="select"
10
- :class="{
11
- 'select-invalid': notifications.length > 0 && formDirty,
12
- border: showBorder,
13
- }"
14
- >
15
- <multiselect
16
- @open="onOpen"
17
- @select="onSelected"
18
- @search-change="onSearch"
19
- :options="data"
20
- v-model.trim="currentValue"
21
- :custom-label="label"
22
- placeholder
23
- :disabled="disabled"
24
- :showLabels="true"
25
- :noResult="false"
26
- :maxHeight="250"
27
- ref="multiselect"
28
- selectLabel
29
- deselectLabel
30
- selectedLabel
31
- >
32
- <div slot="beforeList">
33
- <vue-loading
34
- v-if="loading"
35
- type="bubbles"
36
- color="#577696"
37
- :size="{ width: '40px', height: '40px' }"
38
- ></vue-loading>
39
- <div class="before-list" v-if="!loading">
40
- <Button
41
- v-if="showNewRegister"
42
- key="addNewRegister"
43
- type="primary"
44
- title="Novo"
45
- size="small"
46
- :clicked="addNewRegister"
47
- />
48
- <Button
49
- key="cleanSelect"
50
- type="warning"
51
- classIcon="fas fa-broom"
52
- size="small"
53
- :clicked="cleanSelect"
54
- />
55
- </div>
56
- </div>
57
- <div slot="afterList" v-if="totalRecords > 20 && data.length < totalRecords">
58
- <div class="after-list text-center">
59
- <Button
60
- key="loadingMore"
61
- type="info"
62
- title="Carregar mais..."
63
- classIcon="fas fa-redo-alt"
64
- size="small"
65
- :clicked="loadingMore"
66
- />
67
- </div>
68
- </div>
69
- <div slot="noOptions">Lista está vazia</div>
70
- <div slot="noResult">Nenhum registro encontrado</div>
71
- </multiselect>
72
- <div v-if="formDirty">
73
- <div v-for="message in notifications" :key="message">
74
- <span class="invalid">{{ message }}</span>
75
- </div>
76
- </div>
77
- </div>
78
-
79
- <vodal
80
- v-if="nameNewRegister"
81
- :duration="50"
82
- :show="showVodal(nameNewRegister)"
83
- @hide="hide()"
84
- :width="widthNewRegister"
85
- :height="heightNewRegister"
86
- :closeOnEsc="true"
87
- :closeButton="true"
88
- >
89
- <Messages v-if="vodal.open" />
90
- <div class="title-new-form">{{ titleNewRegister }}</div>
91
- <hr class="hr" />
92
- <slot></slot>
93
- </vodal>
94
- </div>
95
- </template>
96
- <script>
97
- import Tip from "../shared/Tip.vue";
98
- import Messages from "../shared/Messages.vue";
99
- import Multiselect from "vue-multiselect";
100
-
101
- import Button from "./Button.vue";
102
- import Vodal from "vodal";
103
-
104
- import { mapState, mapActions, mapMutations, mapGetters } from "vuex";
105
-
106
- export default {
107
- name: "Select",
108
- props: {
109
- title: String,
110
- field: String,
111
- formName: String,
112
- required: Boolean,
113
- url: String,
114
- disabled: Boolean,
115
- fieldTarget: String,
116
- propsParams: Object,
117
- value: Object,
118
- changed: Function,
119
- nameNewRegister: String,
120
- showNewRegister: {
121
- type: Boolean,
122
- default: true,
123
- },
124
- titleNewRegister: String,
125
- widthNewRegister: Number,
126
- heightNewRegister: Number,
127
- markFormDirty: {
128
- type: Boolean,
129
- default: true,
130
- },
131
- showBorder: {
132
- type: Boolean,
133
- default: true,
134
- },
135
- },
136
- components: {
137
- Multiselect,
138
- Button,
139
- Vodal,
140
- Messages,
141
- Tip,
142
- },
143
- data() {
144
- return {
145
- currentValue: {},
146
- data: [],
147
- totalRecords: 0,
148
- baseParams: {
149
- search: "",
150
- currentPage: 1,
151
- totalPerPage: 20,
152
- },
153
-
154
- registerNew: false,
155
- loading: true,
156
- notifications: [],
157
- formDirty: false,
158
- };
159
- },
160
- created() {
161
- this.validate();
162
- if (this.value)
163
- this.currentValue = { id: this.value.id, content: this.value.content };
164
- },
165
- mounted() {
166
- let el = this.$el.getElementsByClassName("multiselect")[0];
167
- if (el) {
168
- el.tabIndex = 0;
169
- }
170
- },
171
- computed: {
172
- ...mapState("validation", ["resetForm", "vodal"]),
173
- ...mapState("generic", ["vodal"]),
174
- ...mapGetters("generic", ["showVodal"]),
175
- },
176
- methods: {
177
- ...mapActions("generic", ["getApi"]),
178
- ...mapMutations("generic", [
179
- "removeLoading",
180
- "openVodal",
181
- "hideVodal",
182
- "removeNotificarions",
183
- "addFilter",
184
- ]),
185
- ...mapMutations("validation", [
186
- "addValidation",
187
- "removeValidation",
188
- "resetValidation",
189
- "updateFormDirty",
190
- ]),
191
- onOpen() {
192
- this.getAll();
193
- },
194
- onSelected(value) {
195
- this.$emit("input", value);
196
- if (this.changed) this.changed();
197
- if (this.fieldTarget) {
198
- let obj = { fieldTarget: this.fieldTarget, value: value.id };
199
- this.addFilter(obj);
200
- }
201
- },
202
- onSearch(value) {
203
- this.baseParams.search = value;
204
- this.getAll();
205
- },
206
- label(value) {
207
- if (value.content) return `${value.content}`;
208
- },
209
- getAll() {
210
- let obj = { ...this.baseParams, ...this.propsParams };
211
- let params = { url: this.url, obj: obj };
212
- this.loading = true;
213
- this.getApi(params).then((response) => {
214
- this.totalRecords = response.content.totalRecords;
215
- let self = this;
216
- if (this.baseParams.currentPage == 1) {
217
- this.data = [];
218
- }
219
- response.content.data.map(function (value, key) {
220
- self.data.push(value);
221
- });
222
- this.loading = false;
223
- this.removeLoading(["loadingMore"]);
224
- });
225
- },
226
- addNewRegister() {
227
- this.openVodal(this.nameNewRegister);
228
- this.resetValidation(this.nameNewRegister);
229
- this.removeNotificarions();
230
- this.$refs.multiselect.deactivate();
231
- this.removeLoading(["addNewRegister"]);
232
- },
233
- hide() {
234
- this.hideVodal();
235
- },
236
- cleanSelect() {
237
- let obj = { id: "", conteudo: "" };
238
- this.currentValue = obj;
239
- this.$emit("input", obj);
240
- this.$refs.multiselect.deactivate();
241
- this.removeLoading(["cleanSelect"]);
242
-
243
- if (this.fieldTarget) {
244
- let obj = { fieldTarget: this.fieldTarget, value: "" };
245
- this.addFilter(obj);
246
- }
247
- },
248
- loadingMore() {
249
- this.baseParams.currentPage++;
250
- this.getAll();
251
- },
252
- validate() {
253
- this.notifications = [];
254
- if (this.required && !this.value.id) {
255
- var message = `${this.title} não pode ser vazio!`;
256
- this.notifications.push(message);
257
- }
258
- },
259
- },
260
- watch: {
261
- "value.id": function () {
262
- this.validate();
263
- this.formDirty = true;
264
- if (this.markFormDirty) this.updateFormDirty(true);
265
- this.currentValue = { id: this.value.id, content: this.value.content };
266
- },
267
- notifications() {
268
- let self = this;
269
- this.notifications.forEach(function (notification) {
270
- let obj = {
271
- key: self.field + "&" + self.formName,
272
- formName: self.formName,
273
- notification: notification,
274
- };
275
- self.addValidation(obj);
276
- });
277
-
278
- if (this.notifications.length == 0) {
279
- let obj = {
280
- key: self.field + "&" + self.formName,
281
- formName: self.formName,
282
- };
283
- self.removeValidation(obj);
284
- }
285
- },
286
- resetForm: {
287
- handler(form) {
288
- if (form.nome == this.formName) {
289
- let obj = { id: "", conteudo: "" };
290
- this.currentValue = obj;
291
- this.$emit("input", obj);
292
- this.formDirty = false;
293
- }
294
- },
295
- deep: true,
296
- },
297
- "vodal.open": function (value) {
298
- if (!value) this.registerNew = false;
299
- },
300
- },
301
- };
302
- </script>
303
-
304
- <style scoped>
305
- .margin{
306
- margin-bottom: 10px;
307
- }
308
-
309
-
310
- div.before-list {
311
- padding: 8px;
312
- }
313
-
314
- div.after-list {
315
- padding: 8px;
316
- }
317
-
318
- .invalid {
319
- color: #f0134d;
320
- font-size: 14px;
321
- }
322
-
323
- .select {
324
- min-width: 300px;
325
- height: 36px;
326
- border-bottom: 1px solid #d6dadf;
327
- border-radius: 0px !important;
328
- z-index: 100;
329
- }
330
-
331
- .select-invalid {
332
- border-bottom: 1px solid #ff5454;
333
- }
334
-
335
- .select-valid {
336
- border-bottom: 1px solid #94aa2a;
337
- }
338
-
339
- .title-new-form {
340
- font-size: 18px;
341
- margin-bottom: 5px;
342
- }
343
-
344
- .border {
345
- border: 1px solid #dbdee0 !important;
346
- border-radius: 5px !important;
347
- height: 38px !important;
348
- }
349
- </style>
1
+ <template>
2
+ <div class="margin">
3
+ <label>
4
+ <span class="title">{{ title }}</span>
5
+ <span class="required" v-if="required">*</span>
6
+ <Tip :field="field" :formName="formName" />
7
+ </label>
8
+ <div
9
+ class="select"
10
+ :class="{
11
+ 'select-invalid': notifications.length > 0 && formDirty,
12
+ border: showBorder,
13
+ }"
14
+ >
15
+ <multiselect
16
+ @open="onOpen"
17
+ @select="onSelected"
18
+ @search-change="onSearch"
19
+ :options="data"
20
+ v-model.trim="currentValue"
21
+ :custom-label="label"
22
+ placeholder
23
+ :disabled="disabled"
24
+ :showLabels="true"
25
+ :noResult="false"
26
+ :maxHeight="250"
27
+ ref="multiselect"
28
+ selectLabel
29
+ deselectLabel
30
+ selectedLabel
31
+ >
32
+ <div slot="beforeList">
33
+ <vue-loading
34
+ v-if="loading"
35
+ type="bubbles"
36
+ color="#577696"
37
+ :size="{ width: '40px', height: '40px' }"
38
+ ></vue-loading>
39
+ <div class="before-list" v-if="!loading">
40
+ <Button
41
+ v-if="showNewRegister"
42
+ key="addNewRegister"
43
+ type="primary"
44
+ title="Novo"
45
+ size="small"
46
+ :clicked="addNewRegister"
47
+ />
48
+ <Button
49
+ key="cleanSelect"
50
+ type="warning"
51
+ classIcon="fas fa-broom"
52
+ size="small"
53
+ :clicked="cleanSelect"
54
+ />
55
+ </div>
56
+ </div>
57
+ <div
58
+ slot="afterList"
59
+ v-if="totalRecords > 20 && data.length < totalRecords"
60
+ >
61
+ <div class="after-list text-center">
62
+ <Button
63
+ key="loadingMore"
64
+ type="info"
65
+ title="Carregar mais..."
66
+ classIcon="fas fa-redo-alt"
67
+ size="small"
68
+ :clicked="loadingMore"
69
+ />
70
+ </div>
71
+ </div>
72
+ <div slot="noOptions">Lista está vazia</div>
73
+ <div slot="noResult">Nenhum registro encontrado</div>
74
+ </multiselect>
75
+ <div v-if="formDirty">
76
+ <div v-for="message in notifications" :key="message">
77
+ <span class="invalid">{{ message }}</span>
78
+ </div>
79
+ </div>
80
+ </div>
81
+
82
+ <vodal
83
+ v-if="nameNewRegister"
84
+ :duration="50"
85
+ :show="showVodal(nameNewRegister)"
86
+ @hide="hide()"
87
+ :width="widthNewRegister"
88
+ :height="heightNewRegister"
89
+ :closeOnEsc="true"
90
+ :closeButton="true"
91
+ >
92
+ <Messages v-if="vodal.open" />
93
+ <div class="title-new-form">{{ titleNewRegister }}</div>
94
+ <hr class="hr" />
95
+ <slot></slot>
96
+ </vodal>
97
+ </div>
98
+ </template>
99
+ <script>
100
+ import Tip from "../shared/Tip.vue";
101
+ import Messages from "../shared/Messages.vue";
102
+ import Multiselect from "vue-multiselect";
103
+
104
+ import Button from "./Button.vue";
105
+ import Vodal from "vodal";
106
+
107
+ import { mapState, mapActions, mapMutations, mapGetters } from "vuex";
108
+
109
+ export default {
110
+ name: "Select",
111
+ props: {
112
+ title: String,
113
+ field: String,
114
+ formName: String,
115
+ required: Boolean,
116
+ url: String,
117
+ disabled: Boolean,
118
+ fieldTarget: String,
119
+ propsParams: Object,
120
+ value: Object,
121
+ changed: Function,
122
+ nameNewRegister: String,
123
+ showNewRegister: {
124
+ type: Boolean,
125
+ default: true,
126
+ },
127
+ titleNewRegister: String,
128
+ widthNewRegister: Number,
129
+ heightNewRegister: Number,
130
+ markFormDirty: {
131
+ type: Boolean,
132
+ default: true,
133
+ },
134
+ showBorder: {
135
+ type: Boolean,
136
+ default: true,
137
+ },
138
+ },
139
+ components: {
140
+ Multiselect,
141
+ Button,
142
+ Vodal,
143
+ Messages,
144
+ Tip,
145
+ },
146
+ data() {
147
+ return {
148
+ currentValue: {},
149
+ data: [],
150
+ totalRecords: 0,
151
+ baseParams: {
152
+ search: "",
153
+ currentPage: 1,
154
+ totalPerPage: 20,
155
+ },
156
+
157
+ registerNew: false,
158
+ loading: true,
159
+ notifications: [],
160
+ formDirty: false,
161
+ };
162
+ },
163
+ created() {
164
+ this.validate();
165
+ if (this.value)
166
+ this.currentValue = { id: this.value.id, content: this.value.content };
167
+ },
168
+ mounted() {
169
+ let el = this.$el.getElementsByClassName("multiselect")[0];
170
+ if (el) {
171
+ el.tabIndex = 0;
172
+ }
173
+ },
174
+ computed: {
175
+ ...mapState("validation", ["resetForm", "vodal"]),
176
+ ...mapState("generic", ["vodal"]),
177
+ ...mapGetters("generic", ["showVodal"]),
178
+ },
179
+ methods: {
180
+ ...mapActions("generic", ["getApi"]),
181
+ ...mapMutations("generic", [
182
+ "removeLoading",
183
+ "openVodal",
184
+ "hideVodal",
185
+ "removeNotificarions",
186
+ "addFilter",
187
+ ]),
188
+ ...mapMutations("validation", [
189
+ "addValidation",
190
+ "removeValidation",
191
+ "resetValidation",
192
+ "updateFormDirty",
193
+ ]),
194
+ onOpen() {
195
+ this.getAll();
196
+ },
197
+ onSelected(value) {
198
+ this.$emit("input", value);
199
+ if (this.changed) this.changed();
200
+ if (this.fieldTarget) {
201
+ let obj = { fieldTarget: this.fieldTarget, value: value.id };
202
+ this.addFilter(obj);
203
+ }
204
+ },
205
+ onSearch(value) {
206
+ this.baseParams.search = value;
207
+ this.getAll();
208
+ },
209
+ label(value) {
210
+ if (value.content) return `${value.content}`;
211
+ },
212
+ getAll() {
213
+ let obj = { ...this.baseParams, ...this.propsParams };
214
+ let params = { url: this.url, obj: obj };
215
+ this.loading = true;
216
+ this.getApi(params).then((response) => {
217
+ this.totalRecords = response.content.totalRecords;
218
+ let self = this;
219
+ if (this.baseParams.currentPage == 1) {
220
+ this.data = [];
221
+ }
222
+ response.content.data.map(function (value, key) {
223
+ self.data.push(value);
224
+ });
225
+ this.loading = false;
226
+ this.removeLoading(["loadingMore"]);
227
+ });
228
+ },
229
+ addNewRegister() {
230
+ this.openVodal(this.nameNewRegister);
231
+ this.resetValidation(this.nameNewRegister);
232
+ this.removeNotificarions();
233
+ this.$refs.multiselect.deactivate();
234
+ this.removeLoading(["addNewRegister"]);
235
+ },
236
+ hide() {
237
+ this.hideVodal();
238
+ },
239
+ cleanSelect() {
240
+ let obj = { id: "", conteudo: "" };
241
+ this.currentValue = obj;
242
+ this.$emit("input", obj);
243
+ this.$refs.multiselect.deactivate();
244
+ this.removeLoading(["cleanSelect"]);
245
+
246
+ if (this.fieldTarget) {
247
+ let obj = { fieldTarget: this.fieldTarget, value: "" };
248
+ this.addFilter(obj);
249
+ }
250
+ },
251
+ loadingMore() {
252
+ this.baseParams.currentPage++;
253
+ this.getAll();
254
+ },
255
+ validate() {
256
+ this.notifications = [];
257
+ if (this.required && !this.value.id) {
258
+ var message = `${this.title} não pode ser vazio!`;
259
+ this.notifications.push(message);
260
+ }
261
+ },
262
+ },
263
+ watch: {
264
+ "value.id": function () {
265
+ this.validate();
266
+ this.formDirty = true;
267
+ if (this.markFormDirty) this.updateFormDirty(true);
268
+ this.currentValue = { id: this.value.id, content: this.value.content };
269
+ },
270
+ notifications() {
271
+ let self = this;
272
+ this.notifications.forEach(function (notification) {
273
+ let obj = {
274
+ key: self.field + "&" + self.formName,
275
+ formName: self.formName,
276
+ notification: notification,
277
+ };
278
+ self.addValidation(obj);
279
+ });
280
+
281
+ if (this.notifications.length == 0) {
282
+ let obj = {
283
+ key: self.field + "&" + self.formName,
284
+ formName: self.formName,
285
+ };
286
+ self.removeValidation(obj);
287
+ }
288
+ },
289
+ resetForm: {
290
+ handler(form) {
291
+ if (form.nome == this.formName) {
292
+ let obj = { id: "", conteudo: "" };
293
+ this.currentValue = obj;
294
+ this.$emit("input", obj);
295
+ this.formDirty = false;
296
+ }
297
+ },
298
+ deep: true,
299
+ },
300
+ "vodal.open": function (value) {
301
+ if (!value) this.registerNew = false;
302
+ },
303
+ },
304
+ };
305
+ </script>
306
+
307
+ <style scoped>
308
+ .margin {
309
+ margin-bottom: 10px;
310
+ }
311
+
312
+ div.before-list {
313
+ padding: 8px;
314
+ }
315
+
316
+ div.after-list {
317
+ padding: 8px;
318
+ }
319
+
320
+ .invalid {
321
+ color: #f0134d;
322
+ font-size: 14px;
323
+ }
324
+
325
+ .select {
326
+ min-width: 300px;
327
+ height: 36px;
328
+ border-bottom: 1px solid #d6dadf;
329
+ border-radius: 0px !important;
330
+ z-index: 100;
331
+ }
332
+
333
+ .select-invalid {
334
+ border-bottom: 1px solid #ff5454;
335
+ }
336
+
337
+ .select-valid {
338
+ border-bottom: 1px solid #94aa2a;
339
+ }
340
+
341
+ .title-new-form {
342
+ font-size: 18px;
343
+ margin-bottom: 5px;
344
+ }
345
+
346
+ .border {
347
+ border: 1px solid #dbdee0 !important;
348
+ border-radius: 5px !important;
349
+ height: 38px !important;
350
+ }
351
+ </style>