@nixweb/nixloc-ui 1.9.0 → 1.11.0

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 (68) hide show
  1. package/@nixweb/nixloc-ui/package.json +88 -88
  2. package/@nixweb/nixloc-ui/src/App.vue +13 -13
  3. package/@nixweb/nixloc-ui/src/component/forms/Button.vue +163 -163
  4. package/@nixweb/nixloc-ui/src/component/forms/CheckboxGroup.vue +69 -69
  5. package/@nixweb/nixloc-ui/src/component/forms/CheckboxServer.vue +192 -192
  6. package/@nixweb/nixloc-ui/src/component/forms/CheckboxSimple.vue +60 -60
  7. package/@nixweb/nixloc-ui/src/component/forms/Color.vue +38 -38
  8. package/@nixweb/nixloc-ui/src/component/forms/DateTime.vue +170 -170
  9. package/@nixweb/nixloc-ui/src/component/forms/Dropdown.vue +236 -236
  10. package/@nixweb/nixloc-ui/src/component/forms/EditorHtml.vue +132 -132
  11. package/@nixweb/nixloc-ui/src/component/forms/FileUpload.vue +170 -170
  12. package/@nixweb/nixloc-ui/src/component/forms/InputDecimal.vue +153 -153
  13. package/@nixweb/nixloc-ui/src/component/forms/InputNumber.vue +160 -160
  14. package/@nixweb/nixloc-ui/src/component/forms/InputPassword.vue +148 -148
  15. package/@nixweb/nixloc-ui/src/component/forms/InputText.vue +174 -174
  16. package/@nixweb/nixloc-ui/src/component/forms/Modal.vue +57 -57
  17. package/@nixweb/nixloc-ui/src/component/forms/RadioGroup.vue +91 -91
  18. package/@nixweb/nixloc-ui/src/component/forms/Select.vue +378 -378
  19. package/@nixweb/nixloc-ui/src/component/forms/SelectStatic.vue +198 -198
  20. package/@nixweb/nixloc-ui/src/component/forms/Slider.vue +18 -18
  21. package/@nixweb/nixloc-ui/src/component/forms/TextArea.vue +138 -138
  22. package/@nixweb/nixloc-ui/src/component/layout/Alert.vue +88 -88
  23. package/@nixweb/nixloc-ui/src/component/layout/Badge.vue +111 -111
  24. package/@nixweb/nixloc-ui/src/component/layout/FixedBar.vue +103 -103
  25. package/@nixweb/nixloc-ui/src/component/layout/Header.vue +56 -56
  26. package/@nixweb/nixloc-ui/src/component/layout/LoadingFullPage.vue +27 -27
  27. package/@nixweb/nixloc-ui/src/component/layout/Menu.vue +287 -287
  28. package/@nixweb/nixloc-ui/src/component/layout/Molded.vue +30 -30
  29. package/@nixweb/nixloc-ui/src/component/layout/Panel.vue +185 -185
  30. package/@nixweb/nixloc-ui/src/component/layout/Popover.vue +126 -126
  31. package/@nixweb/nixloc-ui/src/component/layout/ScrollBar.vue +57 -57
  32. package/@nixweb/nixloc-ui/src/component/layout/Wizard.vue +211 -211
  33. package/@nixweb/nixloc-ui/src/component/shared/Collapse.vue +131 -131
  34. package/@nixweb/nixloc-ui/src/component/shared/ExportPDF.vue +116 -116
  35. package/@nixweb/nixloc-ui/src/component/shared/HorizontalFilter.vue +64 -64
  36. package/@nixweb/nixloc-ui/src/component/shared/Loading.vue +107 -107
  37. package/@nixweb/nixloc-ui/src/component/shared/LoadingMoreButton.vue +23 -23
  38. package/@nixweb/nixloc-ui/src/component/shared/Messages.vue +109 -109
  39. package/@nixweb/nixloc-ui/src/component/shared/PDFViewer.vue +24 -24
  40. package/@nixweb/nixloc-ui/src/component/shared/Pagination.vue +108 -108
  41. package/@nixweb/nixloc-ui/src/component/shared/ProgressBar.vue +25 -25
  42. package/@nixweb/nixloc-ui/src/component/shared/QueryButton.vue +66 -66
  43. package/@nixweb/nixloc-ui/src/component/shared/Search.vue +174 -174
  44. package/@nixweb/nixloc-ui/src/component/shared/Table.vue +174 -174
  45. package/@nixweb/nixloc-ui/src/component/shared/TableButton.vue +36 -36
  46. package/@nixweb/nixloc-ui/src/component/shared/TableTotalization.vue +47 -47
  47. package/@nixweb/nixloc-ui/src/component/shared/Tip.vue +42 -42
  48. package/@nixweb/nixloc-ui/src/component/shared/Toast.vue +69 -69
  49. package/@nixweb/nixloc-ui/src/component/shared/VerticalFilter.vue +97 -97
  50. package/@nixweb/nixloc-ui/src/component/shared/query-builder/AddRule.vue +203 -203
  51. package/@nixweb/nixloc-ui/src/component/shared/query-builder/DynamicComponentList.vue +70 -70
  52. package/@nixweb/nixloc-ui/src/component/shared/query-builder/QueryBuilder.vue +69 -69
  53. package/@nixweb/nixloc-ui/src/component/shared/query-builder/utilities.js +21 -21
  54. package/@nixweb/nixloc-ui/src/component/template/ListViewWithDataHandler.vue +429 -429
  55. package/@nixweb/nixloc-ui/src/component/template/ViewTemplateConfiguration.vue +64 -64
  56. package/@nixweb/nixloc-ui/src/component/template/ViewTemplateWithSalveCancel.vue +32 -32
  57. package/@nixweb/nixloc-ui/src/component/template/ViewTemplateWithTable.vue +62 -62
  58. package/@nixweb/nixloc-ui/src/config/axios.js +9 -9
  59. package/@nixweb/nixloc-ui/src/config/dicas.js +14 -14
  60. package/@nixweb/nixloc-ui/src/config/router.js +13 -13
  61. package/@nixweb/nixloc-ui/src/config/token.js +14 -14
  62. package/@nixweb/nixloc-ui/src/main.js +23 -23
  63. package/@nixweb/nixloc-ui/src/store/modules/generic.js +815 -815
  64. package/@nixweb/nixloc-ui/src/store/modules/validation.js +38 -38
  65. package/@nixweb/nixloc-ui/src/store/store.js +13 -13
  66. package/package.json +1 -1
  67. package/src/component/training/CourseView.vue +16 -7
  68. package/src/component/value-objects/Address.vue +4 -2
@@ -1,148 +1,148 @@
1
- <template>
2
- <div class="form-group">
3
- <label>
4
- <span class="title" :style="'color: ' + titleColor">{{ title }} </span>
5
- <span class="required" v-if="required">*</span>
6
- <Tip :field="field" :formName="formName" />
7
- </label>
8
- <div class="inner-addon right-addon">
9
- <i v-if="notifications.length > 0 && formDirty" class="required glyphicon fas fa-exclamation-triangle"></i>
10
- <slot v-else></slot>
11
- <input type="password" :disabled="disabled" :placeholder="titlePlaceholder" v-mask="mask || withoutMask"
12
- v-bind:value="value" v-on:input="$emit('input', $event.target.value)" class="form-control"
13
- :class="{ required: notifications.length > 0 && formDirty }" />
14
- </div>
15
- <div v-if="formDirty">
16
- <div v-for="message in notifications" :key="message">
17
- <span class="invalid">{{ message }}</span>
18
- </div>
19
- </div>
20
- </div>
21
- </template>
22
-
23
- <script>
24
- import Tip from "../shared/Tip.vue";
25
- import { mapState, mapMutations } from "vuex";
26
-
27
- export default {
28
- components: { Tip },
29
- name: "InputPassword",
30
- mixins: [],
31
- props: [
32
- "title",
33
- "field",
34
- "titleColor",
35
- "placeholder",
36
- "disabled",
37
- "mask",
38
- "formName",
39
- "required",
40
- "maxLength",
41
- "value",
42
- ],
43
- data() {
44
- return {
45
- notifications: [],
46
- formDirty: false,
47
- withoutMask: {
48
- mask: "*".repeat(255),
49
- tokens: {
50
- "*": { pattern: /./ },
51
- },
52
- },
53
- };
54
- },
55
- created() {
56
- this.validate();
57
- },
58
- methods: {
59
- ...mapMutations("validation", [
60
- "addValidation",
61
- "removeValidation",
62
- "updateFormDirty",
63
- ]),
64
- validate() {
65
- this.notifications = [];
66
-
67
- if (this.required && this.value.length == 0) {
68
- var message = `${this.title} não pode ser vazio!`;
69
- this.notifications.push(message);
70
- }
71
-
72
- if (this.maxLength > 0) {
73
- if (this.value.length > this.maxLength) {
74
- var message = `Máximo de ${this.maxLength} caracteres!`;
75
- this.notifications.push(message);
76
- }
77
- }
78
- },
79
- },
80
- computed: {
81
- ...mapState("validation", ["resetForm", "validations"]),
82
- titlePlaceholder() {
83
- return "Digite a " + this.title;
84
- },
85
- },
86
- watch: {
87
- value() {
88
- this.validate();
89
- this.formDirty = true;
90
- this.updateFormDirty(true);
91
- },
92
- notifications() {
93
- let self = this;
94
- this.notifications.forEach(function (notification) {
95
- let obj = {
96
- key: self.field + "&" + self.formName,
97
- formName: self.formName,
98
- notification: notification,
99
- };
100
- self.addValidation(obj);
101
- });
102
-
103
- if (this.notifications.length == 0) {
104
- let obj = {
105
- key: self.field + "&" + self.formName,
106
- formName: self.formName,
107
- };
108
- self.removeValidation(obj);
109
- }
110
- },
111
- resetForm: {
112
- handler(form) {
113
- if (form.name == this.formName) this.formDirty = false;
114
- },
115
- deep: true,
116
- },
117
- },
118
- };
119
- </script>
120
-
121
- <style scoped>
122
- .title {
123
- font-size: 14px !important;
124
- font-weight: 400 !important;
125
- color: #0a0a0a;
126
- letter-spacing: 0.5px !important;
127
- }
128
-
129
- input::placeholder {
130
- font-weight: 300 !important;
131
- opacity: 0.5;
132
- color: #969595;
133
- }
134
-
135
- .success {
136
- color: #94aa2a;
137
- font-size: 14px;
138
- }
139
-
140
- .invalid {
141
- color: #f0134d;
142
- font-size: 14px;
143
- }
144
-
145
- .margin-button {
146
- margin-top: -10px;
147
- }
148
- </style>
1
+ <template>
2
+ <div class="form-group">
3
+ <label>
4
+ <span class="title" :style="'color: ' + titleColor">{{ title }} </span>
5
+ <span class="required" v-if="required">*</span>
6
+ <Tip :field="field" :formName="formName" />
7
+ </label>
8
+ <div class="inner-addon right-addon">
9
+ <i v-if="notifications.length > 0 && formDirty" class="required glyphicon fas fa-exclamation-triangle"></i>
10
+ <slot v-else></slot>
11
+ <input type="password" :disabled="disabled" :placeholder="titlePlaceholder" v-mask="mask || withoutMask"
12
+ v-bind:value="value" v-on:input="$emit('input', $event.target.value)" class="form-control"
13
+ :class="{ required: notifications.length > 0 && formDirty }" />
14
+ </div>
15
+ <div v-if="formDirty">
16
+ <div v-for="message in notifications" :key="message">
17
+ <span class="invalid">{{ message }}</span>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </template>
22
+
23
+ <script>
24
+ import Tip from "../shared/Tip.vue";
25
+ import { mapState, mapMutations } from "vuex";
26
+
27
+ export default {
28
+ components: { Tip },
29
+ name: "InputPassword",
30
+ mixins: [],
31
+ props: [
32
+ "title",
33
+ "field",
34
+ "titleColor",
35
+ "placeholder",
36
+ "disabled",
37
+ "mask",
38
+ "formName",
39
+ "required",
40
+ "maxLength",
41
+ "value",
42
+ ],
43
+ data() {
44
+ return {
45
+ notifications: [],
46
+ formDirty: false,
47
+ withoutMask: {
48
+ mask: "*".repeat(255),
49
+ tokens: {
50
+ "*": { pattern: /./ },
51
+ },
52
+ },
53
+ };
54
+ },
55
+ created() {
56
+ this.validate();
57
+ },
58
+ methods: {
59
+ ...mapMutations("validation", [
60
+ "addValidation",
61
+ "removeValidation",
62
+ "updateFormDirty",
63
+ ]),
64
+ validate() {
65
+ this.notifications = [];
66
+
67
+ if (this.required && this.value.length == 0) {
68
+ var message = `${this.title} não pode ser vazio!`;
69
+ this.notifications.push(message);
70
+ }
71
+
72
+ if (this.maxLength > 0) {
73
+ if (this.value.length > this.maxLength) {
74
+ var message = `Máximo de ${this.maxLength} caracteres!`;
75
+ this.notifications.push(message);
76
+ }
77
+ }
78
+ },
79
+ },
80
+ computed: {
81
+ ...mapState("validation", ["resetForm", "validations"]),
82
+ titlePlaceholder() {
83
+ return "Digite a " + this.title;
84
+ },
85
+ },
86
+ watch: {
87
+ value() {
88
+ this.validate();
89
+ this.formDirty = true;
90
+ this.updateFormDirty(true);
91
+ },
92
+ notifications() {
93
+ let self = this;
94
+ this.notifications.forEach(function (notification) {
95
+ let obj = {
96
+ key: self.field + "&" + self.formName,
97
+ formName: self.formName,
98
+ notification: notification,
99
+ };
100
+ self.addValidation(obj);
101
+ });
102
+
103
+ if (this.notifications.length == 0) {
104
+ let obj = {
105
+ key: self.field + "&" + self.formName,
106
+ formName: self.formName,
107
+ };
108
+ self.removeValidation(obj);
109
+ }
110
+ },
111
+ resetForm: {
112
+ handler(form) {
113
+ if (form.name == this.formName) this.formDirty = false;
114
+ },
115
+ deep: true,
116
+ },
117
+ },
118
+ };
119
+ </script>
120
+
121
+ <style scoped>
122
+ .title {
123
+ font-size: 14px !important;
124
+ font-weight: 400 !important;
125
+ color: #0a0a0a;
126
+ letter-spacing: 0.5px !important;
127
+ }
128
+
129
+ input::placeholder {
130
+ font-weight: 300 !important;
131
+ opacity: 0.5;
132
+ color: #969595;
133
+ }
134
+
135
+ .success {
136
+ color: #94aa2a;
137
+ font-size: 14px;
138
+ }
139
+
140
+ .invalid {
141
+ color: #f0134d;
142
+ font-size: 14px;
143
+ }
144
+
145
+ .margin-button {
146
+ margin-top: -10px;
147
+ }
148
+ </style>
@@ -1,174 +1,174 @@
1
- <template>
2
- <div class="form-group">
3
- <label>
4
- <i class="title class-icon-title" :class="classIconTitle"></i>
5
- <span class="title" :style="'color: ' + titleColor">{{ title }} </span>
6
- <span class="required" v-if="required">*</span>
7
- <Tip :field="field" :formName="formName" />
8
- </label>
9
- <div class="inner-addon right-addon">
10
- <div class="required glyphicon" v-if="notifications.length > 0 && formDirty">
11
- <i class="fas fa-exclamation-triangle"></i>
12
- </div>
13
- <slot v-else></slot>
14
- <input type="text" :style="_style" :placeholder="titlePlaceholder" :disabled="disabled"
15
- @keyup.enter.prevent="pressedEnter" @keyup="cleanedField" @blur="outField" v-mask="mask || withoutMask"
16
- v-bind:value="value" v-on:input="$emit('input', $event.target.value)" class="form-control"
17
- :class="{ required: notifications.length > 0 && formDirty }" />
18
- </div>
19
- <div v-if="formDirty">
20
- <div v-for="message in notifications" :key="message">
21
- <span class="invalid">{{ message }}</span>
22
- </div>
23
- </div>
24
- </div>
25
- </template>
26
-
27
- <script>
28
- import Tip from "../shared/Tip.vue";
29
- import { mapState, mapMutations } from "vuex";
30
-
31
- export default {
32
- components: { Tip },
33
- name: "InputText",
34
- props: [
35
- "title",
36
- "classIconTitle",
37
- "field",
38
- "placeholder",
39
- "disabled",
40
- "titleColor",
41
- "mask",
42
- "_style",
43
- "formName",
44
- "required",
45
- "maxLength",
46
- "value",
47
- "enter",
48
- "cleaned",
49
- "exited",
50
- "markFormDirty",
51
- ],
52
- data() {
53
- return {
54
- notifications: [],
55
- formDirty: false,
56
- withoutMask: {
57
- mask: "*".repeat(255),
58
- tokens: {
59
- "*": { pattern: /./ },
60
- },
61
- },
62
- };
63
- },
64
- created() {
65
- this.validate();
66
- },
67
- methods: {
68
- ...mapMutations("validation", [
69
- "addValidation",
70
- "removeValidation",
71
- "updateFormDirty",
72
- ]),
73
- validate() {
74
- this.notifications = [];
75
-
76
- if (this.required && this.value.length == 0) {
77
- var message = `${this.title} não pode ser vazio!`;
78
- this.notifications.push(message);
79
- }
80
-
81
- if (this.maxLength > 0) {
82
- if (this.value.length > this.maxLength) {
83
- var message = `Máximo de ${this.maxLength} caracteres!`;
84
- this.notifications.push(message);
85
- }
86
- }
87
- },
88
- pressedEnter() {
89
- if (this.enter) this.enter();
90
- },
91
- outField() {
92
- if (this.exited) this.exited();
93
- },
94
- cleanedField() {
95
- if (this.value.length == 0) {
96
- if (this.cleaned) this.cleaned();
97
- }
98
- },
99
- },
100
- computed: {
101
- ...mapState("validation", ["resetForm", "validations"]),
102
- titlePlaceholder() {
103
- return "Digite o " + this.title;
104
- },
105
- },
106
- watch: {
107
- value() {
108
- this.validate();
109
- this.formDirty = true;
110
- // inverti a validação devido não colocar o default como true no props
111
- var _value = this.markFormDirty == undefined ? true : this.markFormDirty;
112
- if (_value) this.updateFormDirty(true);
113
- },
114
- notifications() {
115
- let self = this;
116
- this.notifications.forEach(function (notification) {
117
- let obj = {
118
- key: self.field + "&" + self.formName,
119
- formName: self.formName,
120
- notification: notification,
121
- };
122
- self.addValidation(obj);
123
- });
124
-
125
- if (this.notifications.length == 0) {
126
- let obj = {
127
- key: self.field + "&" + self.formName,
128
- formName: self.formName,
129
- };
130
- self.removeValidation(obj);
131
- }
132
- },
133
- resetForm: {
134
- handler(form) {
135
- if (form.name == this.formName) this.formDirty = false;
136
- },
137
- deep: true,
138
- },
139
- },
140
- };
141
- </script>
142
-
143
- <style scoped>
144
- .title {
145
- font-size: 14px !important;
146
- font-weight: 400 !important;
147
- color: #0a0a0a;
148
- letter-spacing: 0.5px !important;
149
- }
150
-
151
- input::placeholder {
152
- font-weight: 300 !important;
153
- opacity: 0.5;
154
- color: #969595;
155
- }
156
-
157
- .class-icon-title {
158
- margin-right: 5px;
159
- }
160
-
161
- .success {
162
- color: #94aa2a;
163
- font-size: 14px;
164
- }
165
-
166
- .invalid {
167
- color: #f0134d;
168
- font-size: 14px;
169
- }
170
-
171
- .margin-button {
172
- margin-top: -3px;
173
- }
174
- </style>
1
+ <template>
2
+ <div class="form-group">
3
+ <label>
4
+ <i class="title class-icon-title" :class="classIconTitle"></i>
5
+ <span class="title" :style="'color: ' + titleColor">{{ title }} </span>
6
+ <span class="required" v-if="required">*</span>
7
+ <Tip :field="field" :formName="formName" />
8
+ </label>
9
+ <div class="inner-addon right-addon">
10
+ <div class="required glyphicon" v-if="notifications.length > 0 && formDirty">
11
+ <i class="fas fa-exclamation-triangle"></i>
12
+ </div>
13
+ <slot v-else></slot>
14
+ <input type="text" :style="_style" :placeholder="titlePlaceholder" :disabled="disabled"
15
+ @keyup.enter.prevent="pressedEnter" @keyup="cleanedField" @blur="outField" v-mask="mask || withoutMask"
16
+ v-bind:value="value" v-on:input="$emit('input', $event.target.value)" class="form-control"
17
+ :class="{ required: notifications.length > 0 && formDirty }" />
18
+ </div>
19
+ <div v-if="formDirty">
20
+ <div v-for="message in notifications" :key="message">
21
+ <span class="invalid">{{ message }}</span>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </template>
26
+
27
+ <script>
28
+ import Tip from "../shared/Tip.vue";
29
+ import { mapState, mapMutations } from "vuex";
30
+
31
+ export default {
32
+ components: { Tip },
33
+ name: "InputText",
34
+ props: [
35
+ "title",
36
+ "classIconTitle",
37
+ "field",
38
+ "placeholder",
39
+ "disabled",
40
+ "titleColor",
41
+ "mask",
42
+ "_style",
43
+ "formName",
44
+ "required",
45
+ "maxLength",
46
+ "value",
47
+ "enter",
48
+ "cleaned",
49
+ "exited",
50
+ "markFormDirty",
51
+ ],
52
+ data() {
53
+ return {
54
+ notifications: [],
55
+ formDirty: false,
56
+ withoutMask: {
57
+ mask: "*".repeat(255),
58
+ tokens: {
59
+ "*": { pattern: /./ },
60
+ },
61
+ },
62
+ };
63
+ },
64
+ created() {
65
+ this.validate();
66
+ },
67
+ methods: {
68
+ ...mapMutations("validation", [
69
+ "addValidation",
70
+ "removeValidation",
71
+ "updateFormDirty",
72
+ ]),
73
+ validate() {
74
+ this.notifications = [];
75
+
76
+ if (this.required && this.value.length == 0) {
77
+ var message = `${this.title} não pode ser vazio!`;
78
+ this.notifications.push(message);
79
+ }
80
+
81
+ if (this.maxLength > 0) {
82
+ if (this.value.length > this.maxLength) {
83
+ var message = `Máximo de ${this.maxLength} caracteres!`;
84
+ this.notifications.push(message);
85
+ }
86
+ }
87
+ },
88
+ pressedEnter() {
89
+ if (this.enter) this.enter();
90
+ },
91
+ outField() {
92
+ if (this.exited) this.exited();
93
+ },
94
+ cleanedField() {
95
+ if (this.value.length == 0) {
96
+ if (this.cleaned) this.cleaned();
97
+ }
98
+ },
99
+ },
100
+ computed: {
101
+ ...mapState("validation", ["resetForm", "validations"]),
102
+ titlePlaceholder() {
103
+ return "Digite o " + this.title;
104
+ },
105
+ },
106
+ watch: {
107
+ value() {
108
+ this.validate();
109
+ this.formDirty = true;
110
+ // inverti a validação devido não colocar o default como true no props
111
+ var _value = this.markFormDirty == undefined ? true : this.markFormDirty;
112
+ if (_value) this.updateFormDirty(true);
113
+ },
114
+ notifications() {
115
+ let self = this;
116
+ this.notifications.forEach(function (notification) {
117
+ let obj = {
118
+ key: self.field + "&" + self.formName,
119
+ formName: self.formName,
120
+ notification: notification,
121
+ };
122
+ self.addValidation(obj);
123
+ });
124
+
125
+ if (this.notifications.length == 0) {
126
+ let obj = {
127
+ key: self.field + "&" + self.formName,
128
+ formName: self.formName,
129
+ };
130
+ self.removeValidation(obj);
131
+ }
132
+ },
133
+ resetForm: {
134
+ handler(form) {
135
+ if (form.name == this.formName) this.formDirty = false;
136
+ },
137
+ deep: true,
138
+ },
139
+ },
140
+ };
141
+ </script>
142
+
143
+ <style scoped>
144
+ .title {
145
+ font-size: 14px !important;
146
+ font-weight: 400 !important;
147
+ color: #0a0a0a;
148
+ letter-spacing: 0.5px !important;
149
+ }
150
+
151
+ input::placeholder {
152
+ font-weight: 300 !important;
153
+ opacity: 0.5;
154
+ color: #969595;
155
+ }
156
+
157
+ .class-icon-title {
158
+ margin-right: 5px;
159
+ }
160
+
161
+ .success {
162
+ color: #94aa2a;
163
+ font-size: 14px;
164
+ }
165
+
166
+ .invalid {
167
+ color: #f0134d;
168
+ font-size: 14px;
169
+ }
170
+
171
+ .margin-button {
172
+ margin-top: -3px;
173
+ }
174
+ </style>