@nixweb/nixloc-ui 1.19.0 → 1.21.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 (110) hide show
  1. package/package.json +1 -1
  2. package/src/component/forms/ButtonFilter.vue +104 -104
  3. package/src/component/forms/ButtonGroup.vue +66 -66
  4. package/src/component/forms/ButtonGroupInline.vue +210 -210
  5. package/src/component/forms/ButtonSub.vue +97 -97
  6. package/src/component/forms/ButtonToggle.vue +76 -76
  7. package/src/component/forms/DateYearMonth.vue +192 -192
  8. package/src/component/forms/ImageUpload.vue +214 -214
  9. package/src/component/forms/IncrementDecrement.vue +151 -151
  10. package/src/component/forms/InputAddressGoogle.vue +171 -171
  11. package/src/component/forms/InputCallToAction.vue +135 -135
  12. package/src/component/forms/InputDecimalDiscount.vue +146 -146
  13. package/src/component/forms/InputTag.vue +124 -124
  14. package/src/component/forms/InputTextEdit.vue +69 -69
  15. package/src/component/forms/InputWhatsApp.vue +47 -47
  16. package/src/component/forms/SideBar.vue +99 -99
  17. package/src/component/forms/Toggle.vue +72 -72
  18. package/src/component/layout/Account.vue +131 -131
  19. package/src/component/layout/AnimatedPhrase.vue +68 -68
  20. package/src/component/layout/BarFloating.vue +67 -67
  21. package/src/component/layout/BottomActionsBar.vue +205 -205
  22. package/src/component/layout/ColorPicker.vue +175 -175
  23. package/src/component/layout/Gantt.vue +128 -128
  24. package/src/component/layout/HideShow.vue +61 -61
  25. package/src/component/layout/IconMolded.vue +58 -58
  26. package/src/component/layout/IconPicker.vue +161 -161
  27. package/src/component/layout/NewAccount.vue +136 -136
  28. package/src/component/layout/NewHeader.vue +59 -59
  29. package/src/component/layout/NewIconMolded.vue +70 -70
  30. package/src/component/layout/NewMenu.vue +472 -472
  31. package/src/component/layout/Tab.vue +259 -259
  32. package/src/component/layout/Tag.vue +97 -97
  33. package/src/component/layout/Tooltip.vue +155 -155
  34. package/src/component/layout/Zoom.vue +111 -111
  35. package/src/component/rental/DisplayCalculatePeriod.vue +48 -48
  36. package/src/component/rental/DisplayPeriodRent.vue +55 -55
  37. package/src/component/rental/DisplayTotalization.vue +86 -86
  38. package/src/component/report/Fields.vue +108 -108
  39. package/src/component/report/Report.vue +377 -377
  40. package/src/component/report/ReportTable.vue +111 -111
  41. package/src/component/report/Totalization.vue +33 -33
  42. package/src/component/shared/CodeEditor.vue +128 -128
  43. package/src/component/shared/Confirmation.vue +74 -74
  44. package/src/component/shared/DocumentEditor.vue +99 -99
  45. package/src/component/shared/DocumentPreview.vue +117 -105
  46. package/src/component/shared/DocumentPublic.vue +33 -33
  47. package/src/component/shared/ExportExcel.vue +56 -56
  48. package/src/component/shared/FullCalendar.vue +175 -175
  49. package/src/component/shared/HeaderReport.vue +47 -47
  50. package/src/component/shared/ListNotifications.vue +70 -70
  51. package/src/component/shared/Loading.vue +1 -4
  52. package/src/component/shared/LoadingCard.vue +64 -64
  53. package/src/component/shared/ParameterLegend.vue +169 -169
  54. package/src/component/shared/Report.vue +250 -250
  55. package/src/component/shared/SaveCancel.vue +99 -117
  56. package/src/component/shared/SelectOption.vue +162 -162
  57. package/src/component/shared/TableDraggable.vue +117 -117
  58. package/src/component/shared/TableImport.vue +93 -93
  59. package/src/component/shared/TableItem.vue +228 -228
  60. package/src/component/shared/TableTotalPerPage.vue +114 -114
  61. package/src/component/shared/TableTotalRecords.vue +44 -44
  62. package/src/component/shared/TimeLine.vue +41 -41
  63. package/src/component/shared/Timer.vue +77 -77
  64. package/src/component/shared/ToggleTheme.vue +127 -127
  65. package/src/component/shared/TotalizationReport.vue +86 -86
  66. package/src/component/shared/actions/ActionButtons.vue +53 -53
  67. package/src/component/shared/actions/ActionErrorContent.vue +103 -103
  68. package/src/component/shared/actions/ActionFooter.vue +93 -99
  69. package/src/component/shared/actions/ActionHeader.vue +110 -110
  70. package/src/component/shared/actions/ActionItemList.vue +143 -143
  71. package/src/component/shared/actions/ActionsOptions.vue +209 -209
  72. package/src/component/shared/actions/ActionsSelected.vue +262 -262
  73. package/src/component/shared/automation/ActivitiesList.vue +43 -43
  74. package/src/component/shared/automation/AddRule.vue +60 -60
  75. package/src/component/shared/automation/AutomationBuilder.vue +26 -26
  76. package/src/component/shared/automation/DynamicComponentList.vue +85 -85
  77. package/src/component/shared/automation/SelectRule.vue +97 -97
  78. package/src/component/shared/automation/components/BillingByRent.vue +97 -97
  79. package/src/component/shared/automation/components/SendEmail.vue +93 -93
  80. package/src/component/shared/file-manager/FileManager.vue +390 -390
  81. package/src/component/shared/filter-builder/FilterBuilder.vue +220 -220
  82. package/src/component/shared/filter-builder/FilterQuery.vue +95 -95
  83. package/src/component/shared/query-builder/ConvertToOdata.js +86 -86
  84. package/src/component/shared/query-builder/DynamicComponent.vue +161 -161
  85. package/src/component/shared/query-builder/Fields.vue +93 -93
  86. package/src/component/shared/query-builder/Rules.vue +68 -68
  87. package/src/component/shared/query-builder/SelectRule.vue +97 -97
  88. package/src/component/shared/query-builder/Tags.vue +59 -59
  89. package/src/component/signature/Payment.vue +160 -160
  90. package/src/component/signature/Warning.vue +75 -75
  91. package/src/component/template/ReportCreateUpdate.vue +110 -110
  92. package/src/component/template/ViewTemplateDocumentView.vue +213 -213
  93. package/src/component/template/ViewTemplateImportFile.vue +347 -347
  94. package/src/component/template/ViewTemplateReportList.vue +240 -240
  95. package/src/component/template/ViewTemplateReportPreview.vue +521 -521
  96. package/src/component/template/ViewTemplateSelectOption.vue +46 -46
  97. package/src/component/template/model/Report.js +5 -5
  98. package/src/component/training/Course.vue +343 -343
  99. package/src/component/training/CourseView.vue +198 -198
  100. package/src/component/value-objects/Address.js +10 -10
  101. package/src/component/value-objects/Address.vue +173 -173
  102. package/src/component/value-objects/Contact.js +6 -6
  103. package/src/component/value-objects/Contact.vue +106 -106
  104. package/src/component/value-objects/Person.js +10 -10
  105. package/src/component/value-objects/Person.vue +130 -130
  106. package/src/store/modules/automation.js +30 -30
  107. package/src/store/modules/generic.js +16 -6
  108. package/src/store/modules/report.js +277 -277
  109. package/src/store/modules/user.js +69 -69
  110. package/src/store/modules/util.js +25 -25
@@ -1,228 +1,228 @@
1
- <template>
2
- <div class="item-main">
3
- <div v-if="obj.type === 'period-rent'" class="period-rent" @click="navegateTo(obj, row)" :style="obj.styleBody"
4
- :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
5
- <DisplayPeriodRent :periodRent="row[obj.field]" :fontSize="14" :showDeliveryDevolution="true" />
6
- </div>
7
- <div v-if="obj.type === 'text'" :style="obj.styleBody"
8
- :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
9
- {{ row[obj.field] }}
10
- <div>{{ row[obj.fieldSecond] }}</div>
11
- </div>
12
- <div v-if="obj.type === 'image'" :style="obj.styleBody">
13
- <img :class="convertClass(row[obj.fieldComparison], obj.classCssBody)" class="img"
14
- :src="urlImage + obj.container + '/' + row[obj.field]" />
15
- </div>
16
- <div v-if="obj.type === 'class'" class="text-center">
17
- <div :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
18
- {{ row[obj.field] }}
19
- </div>
20
- </div>
21
- <div class="item-align-center" v-if="obj.type === 'html' && row[obj.field]" :style="obj.styleBody"
22
- :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
23
- <div v-if="row[obj.field]" v-html="row[obj.field]"></div>
24
- <div v-else v-html="obj.html"></div>
25
- <div v-html="row[obj.fieldSecond]"></div>
26
- </div>
27
- <div v-if="obj.type === 'select'" :style="obj.styleBody"
28
- :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
29
- {{ row[obj.field].content }}
30
- </div>
31
- <div v-if="obj.type === 'date'" :style="obj.styleBody"
32
- :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
33
- {{ row[obj.field] | moment("DD/MM/YYYY") }}
34
- </div>
35
- <div v-if="obj.type === 'dateTime'" :style="obj.styleBody"
36
- :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
37
- {{ row[obj.field] | moment("DD/MM/YYYY HH:mm") }}
38
- </div>
39
- <div v-if="obj.type === 'currency'" :style="obj.styleBody"
40
- :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
41
- {{ row[obj.field] | currency }}
42
- </div>
43
- <div class="hide-print" v-if="obj.type === 'button'" :style="obj.styleBody"
44
- :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
45
- <TableButton v-if="obj.ifFieldEqual == row[obj.field]" :obj="obj" :row="row" />
46
- </div>
47
- <div v-if="obj.type === 'link'" :style="obj.styleBody"
48
- :class="convertClass(row[obj.fieldComparison], obj.classCssBody)" @click="navegateTo(obj, row)">
49
- <div class="div-progress" v-if="idSelected == row.id">
50
- <ProgressBar bgColor="orange" bColor="#CCCCCC" size="4" :value="loadingProgress" :max="100" />
51
- </div>
52
- <div class="link" v-else>
53
- <span> {{ row[obj.field] }}</span>
54
- <div class="field-second">{{ row[obj.fieldSecond] }}</div>
55
- </div>
56
- </div>
57
- </div>
58
- </template>
59
- <script>
60
- import TableButton from "@nixweb/nixloc-ui/src/component/shared/TableButton.vue";
61
- import DisplayPeriodRent from "@nixweb/nixloc-ui/src/component/rental/DisplayPeriodRent";
62
- import ProgressBar from "@nixweb/nixloc-ui/src/component/shared/ProgressBar";
63
-
64
- import { mapMutations } from "vuex";
65
-
66
- export default {
67
- name: "TableItem",
68
- components: { TableButton, DisplayPeriodRent, ProgressBar },
69
- props: {
70
- obj: Object,
71
- row: Object,
72
- },
73
- data() {
74
- return {
75
- idSelected: "",
76
- loadingProgress: 0,
77
- };
78
- },
79
- computed: {
80
- urlImage() {
81
- return "https://espaco.blob.core.windows.net/";
82
- },
83
- },
84
- methods: {
85
- ...mapMutations("generic", ["addSelected", "addEvent"]),
86
- convertClass(fieldComparison, classCssBody) {
87
- if (Array.isArray(classCssBody)) {
88
- let ret = [];
89
- classCssBody.forEach(function (value) {
90
- let classCss = value.classCss;
91
- let condition = value.fieldComparison == fieldComparison;
92
- let obj = { [classCss]: condition };
93
- ret.push(obj);
94
- });
95
- return ret;
96
- } else {
97
- return classCssBody;
98
- }
99
- },
100
- isVisible(conditionVisibility, row) {
101
- // se for undefined, quer dizer que não tem condicional, então pode mostrar
102
- // if (conditionVisibility == undefined) return true;
103
-
104
- return eval(conditionVisibility);
105
- },
106
- navegateTo(obj, row) {
107
- this.idSelected = row.id;
108
- this.startLoading(obj, row);
109
- },
110
- startLoading(obj, row) {
111
- let self = this;
112
- const interval = setInterval(() => {
113
- if (self.loadingProgress < 100) {
114
- self.loadingProgress += 10;
115
- } else {
116
- clearInterval(interval);
117
- }
118
- }, 50);
119
- }
120
- },
121
- watch: {
122
- loadingProgress: {
123
- handler(loadingProgress) {
124
- if (loadingProgress == 100) {
125
- if (this.obj.routeName) {
126
- this.$router.push({
127
- name: this.obj.routeName,
128
- params: { id: this.row.id, type: this.row.type },
129
- });
130
- } else {
131
- this.addEvent({
132
- name: this.obj.eventName,
133
- data: this.row,
134
- });
135
-
136
- let self = this;
137
- setTimeout(function () {
138
- self.idSelected = "";
139
- self.loadingProgress = 0;
140
- }, 200);
141
- }
142
- }
143
- },
144
- deep: true,
145
- },
146
- },
147
- };
148
- </script>
149
- <style scoped>
150
- .field-second {
151
- color: rgb(83, 82, 82);
152
- font-size: 13px;
153
- }
154
-
155
- .table-currency {
156
- font-size: 14px;
157
- min-width: 100px;
158
- }
159
-
160
- .link {
161
- color: #3f529b;
162
- font-size: 14px;
163
- font-weight: 400;
164
- cursor: pointer;
165
- }
166
-
167
- .link:hover {
168
- text-decoration: underline;
169
- transition: 0.1s;
170
- }
171
-
172
- .icon-link:hover {
173
- font-size: 12.5px;
174
- }
175
-
176
- .center-vertical {
177
- padding-top: 5px;
178
- }
179
-
180
- .center-vertical-bank {
181
- padding-top: 6px;
182
- }
183
-
184
- .badge-center {
185
- margin: auto !important;
186
- }
187
-
188
- .img {
189
- width: 50px;
190
- height: 50px;
191
- }
192
-
193
- .img-round {
194
- border-radius: 30px;
195
- }
196
-
197
- .img-bank {
198
- width: 30px;
199
- height: 30px;
200
- border-radius: 10px;
201
- }
202
-
203
- .img-user {
204
- width: 40px;
205
- height: 40px;
206
- border-radius: 20px;
207
- }
208
-
209
- .period-rent {
210
- cursor: pointer;
211
- }
212
-
213
- .div-progress {
214
- margin-top: 11px;
215
- width: 200px;
216
- }
217
-
218
- .item-main {
219
- display: table;
220
- height: 100%;
221
- width: 100%;
222
- }
223
-
224
- .item-main>* {
225
- display: table-cell;
226
- vertical-align: middle;
227
- }
228
- </style>
1
+ <template>
2
+ <div class="item-main">
3
+ <div v-if="obj.type === 'period-rent'" class="period-rent" @click="navegateTo(obj, row)" :style="obj.styleBody"
4
+ :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
5
+ <DisplayPeriodRent :periodRent="row[obj.field]" :fontSize="14" :showDeliveryDevolution="true" />
6
+ </div>
7
+ <div v-if="obj.type === 'text'" :style="obj.styleBody"
8
+ :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
9
+ {{ row[obj.field] }}
10
+ <div>{{ row[obj.fieldSecond] }}</div>
11
+ </div>
12
+ <div v-if="obj.type === 'image'" :style="obj.styleBody">
13
+ <img :class="convertClass(row[obj.fieldComparison], obj.classCssBody)" class="img"
14
+ :src="urlImage + obj.container + '/' + row[obj.field]" />
15
+ </div>
16
+ <div v-if="obj.type === 'class'" class="text-center">
17
+ <div :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
18
+ {{ row[obj.field] }}
19
+ </div>
20
+ </div>
21
+ <div class="item-align-center" v-if="obj.type === 'html' && row[obj.field]" :style="obj.styleBody"
22
+ :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
23
+ <div v-if="row[obj.field]" v-html="row[obj.field]"></div>
24
+ <div v-else v-html="obj.html"></div>
25
+ <div v-html="row[obj.fieldSecond]"></div>
26
+ </div>
27
+ <div v-if="obj.type === 'select'" :style="obj.styleBody"
28
+ :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
29
+ {{ row[obj.field].content }}
30
+ </div>
31
+ <div v-if="obj.type === 'date'" :style="obj.styleBody"
32
+ :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
33
+ {{ row[obj.field] | moment("DD/MM/YYYY") }}
34
+ </div>
35
+ <div v-if="obj.type === 'dateTime'" :style="obj.styleBody"
36
+ :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
37
+ {{ row[obj.field] | moment("DD/MM/YYYY HH:mm") }}
38
+ </div>
39
+ <div v-if="obj.type === 'currency'" :style="obj.styleBody"
40
+ :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
41
+ {{ row[obj.field] | currency }}
42
+ </div>
43
+ <div class="hide-print" v-if="obj.type === 'button'" :style="obj.styleBody"
44
+ :class="convertClass(row[obj.fieldComparison], obj.classCssBody)">
45
+ <TableButton v-if="obj.ifFieldEqual == row[obj.field]" :obj="obj" :row="row" />
46
+ </div>
47
+ <div v-if="obj.type === 'link'" :style="obj.styleBody"
48
+ :class="convertClass(row[obj.fieldComparison], obj.classCssBody)" @click="navegateTo(obj, row)">
49
+ <div class="div-progress" v-if="idSelected == row.id">
50
+ <ProgressBar bgColor="orange" bColor="#CCCCCC" size="4" :value="loadingProgress" :max="100" />
51
+ </div>
52
+ <div class="link" v-else>
53
+ <span> {{ row[obj.field] }}</span>
54
+ <div class="field-second">{{ row[obj.fieldSecond] }}</div>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </template>
59
+ <script>
60
+ import TableButton from "@nixweb/nixloc-ui/src/component/shared/TableButton.vue";
61
+ import DisplayPeriodRent from "@nixweb/nixloc-ui/src/component/rental/DisplayPeriodRent";
62
+ import ProgressBar from "@nixweb/nixloc-ui/src/component/shared/ProgressBar";
63
+
64
+ import { mapMutations } from "vuex";
65
+
66
+ export default {
67
+ name: "TableItem",
68
+ components: { TableButton, DisplayPeriodRent, ProgressBar },
69
+ props: {
70
+ obj: Object,
71
+ row: Object,
72
+ },
73
+ data() {
74
+ return {
75
+ idSelected: "",
76
+ loadingProgress: 0,
77
+ };
78
+ },
79
+ computed: {
80
+ urlImage() {
81
+ return "https://espaco.blob.core.windows.net/";
82
+ },
83
+ },
84
+ methods: {
85
+ ...mapMutations("generic", ["addSelected", "addEvent"]),
86
+ convertClass(fieldComparison, classCssBody) {
87
+ if (Array.isArray(classCssBody)) {
88
+ let ret = [];
89
+ classCssBody.forEach(function (value) {
90
+ let classCss = value.classCss;
91
+ let condition = value.fieldComparison == fieldComparison;
92
+ let obj = { [classCss]: condition };
93
+ ret.push(obj);
94
+ });
95
+ return ret;
96
+ } else {
97
+ return classCssBody;
98
+ }
99
+ },
100
+ isVisible(conditionVisibility, row) {
101
+ // se for undefined, quer dizer que não tem condicional, então pode mostrar
102
+ // if (conditionVisibility == undefined) return true;
103
+
104
+ return eval(conditionVisibility);
105
+ },
106
+ navegateTo(obj, row) {
107
+ this.idSelected = row.id;
108
+ this.startLoading(obj, row);
109
+ },
110
+ startLoading(obj, row) {
111
+ let self = this;
112
+ const interval = setInterval(() => {
113
+ if (self.loadingProgress < 100) {
114
+ self.loadingProgress += 10;
115
+ } else {
116
+ clearInterval(interval);
117
+ }
118
+ }, 50);
119
+ }
120
+ },
121
+ watch: {
122
+ loadingProgress: {
123
+ handler(loadingProgress) {
124
+ if (loadingProgress == 100) {
125
+ if (this.obj.routeName) {
126
+ this.$router.push({
127
+ name: this.obj.routeName,
128
+ params: { id: this.row.id, type: this.row.type },
129
+ });
130
+ } else {
131
+ this.addEvent({
132
+ name: this.obj.eventName,
133
+ data: this.row,
134
+ });
135
+
136
+ let self = this;
137
+ setTimeout(function () {
138
+ self.idSelected = "";
139
+ self.loadingProgress = 0;
140
+ }, 200);
141
+ }
142
+ }
143
+ },
144
+ deep: true,
145
+ },
146
+ },
147
+ };
148
+ </script>
149
+ <style scoped>
150
+ .field-second {
151
+ color: rgb(83, 82, 82);
152
+ font-size: 13px;
153
+ }
154
+
155
+ .table-currency {
156
+ font-size: 14px;
157
+ min-width: 100px;
158
+ }
159
+
160
+ .link {
161
+ color: #3f529b;
162
+ font-size: 14px;
163
+ font-weight: 400;
164
+ cursor: pointer;
165
+ }
166
+
167
+ .link:hover {
168
+ text-decoration: underline;
169
+ transition: 0.1s;
170
+ }
171
+
172
+ .icon-link:hover {
173
+ font-size: 12.5px;
174
+ }
175
+
176
+ .center-vertical {
177
+ padding-top: 5px;
178
+ }
179
+
180
+ .center-vertical-bank {
181
+ padding-top: 6px;
182
+ }
183
+
184
+ .badge-center {
185
+ margin: auto !important;
186
+ }
187
+
188
+ .img {
189
+ width: 50px;
190
+ height: 50px;
191
+ }
192
+
193
+ .img-round {
194
+ border-radius: 30px;
195
+ }
196
+
197
+ .img-bank {
198
+ width: 30px;
199
+ height: 30px;
200
+ border-radius: 10px;
201
+ }
202
+
203
+ .img-user {
204
+ width: 40px;
205
+ height: 40px;
206
+ border-radius: 20px;
207
+ }
208
+
209
+ .period-rent {
210
+ cursor: pointer;
211
+ }
212
+
213
+ .div-progress {
214
+ margin-top: 11px;
215
+ width: 200px;
216
+ }
217
+
218
+ .item-main {
219
+ display: table;
220
+ height: 100%;
221
+ width: 100%;
222
+ }
223
+
224
+ .item-main>* {
225
+ display: table-cell;
226
+ vertical-align: middle;
227
+ }
228
+ </style>