@kigi/components 1.41.0-alpha.8 → 1.41.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.
- package/package.json +2 -2
- package/src/components/mbg-average-customer-time/mbg-average-customer-time.html +20 -2
- package/src/components/mbg-average-customer-time/mbg-average-customer-time.scss +138 -243
- package/src/components/mbg-average-customer-time/mbg-average-customer-time.ts +166 -2
- package/src/components/mbg-store-goal/mbg-store-goal.html +25 -5
- package/src/components/mbg-store-goal/mbg-store-goal.scss +34 -3
- package/src/components/mbg-store-goal/mbg-store-goal.ts +34 -0
- package/src/index.html +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kigi/components",
|
|
3
|
-
"version": "1.41.0
|
|
3
|
+
"version": "1.41.0",
|
|
4
4
|
"description": "@kigi/components",
|
|
5
5
|
"main": "src/components/index.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"firebase": "7.16.0",
|
|
58
58
|
"fuse.js": "^3.4.6",
|
|
59
59
|
"grpc": "1.20.2",
|
|
60
|
-
"highcharts": "^
|
|
60
|
+
"highcharts": "^6.2.0",
|
|
61
61
|
"highcharts-more": "^0.1.7",
|
|
62
62
|
"imports-loader": "^0.8.0",
|
|
63
63
|
"jodit": "^3.6.11",
|
|
@@ -1,3 +1,21 @@
|
|
|
1
|
-
<div>
|
|
2
|
-
|
|
1
|
+
<div class="average-customer-time-wrapper">
|
|
2
|
+
<figure class="highcharts-figure">
|
|
3
|
+
<div class="description-container-dash">
|
|
4
|
+
<div class="mbg-h-c-tone-s-icon-dash"
|
|
5
|
+
ng-click="$ctrl.toggleShowValuesReturnCustomer(false)">
|
|
6
|
+
<i class="fa fa-lock lock-dash-store"
|
|
7
|
+
aria-hidden="true"
|
|
8
|
+
uib-tooltip="Sem permissão para visualizar"
|
|
9
|
+
tooltip-placement="left"
|
|
10
|
+
ng-if="$ctrl.isBlockValuesDashboarReturnCustomer && !$ctrl.hideValue"></i>
|
|
11
|
+
<i ng-if="!$ctrl.hideValue && $ctrl.isPermissionAverageCustomerReturnTime"
|
|
12
|
+
disable-animate
|
|
13
|
+
class="far fa-eye eye-board-target"></i>
|
|
14
|
+
<i ng-if="$ctrl.hideValue && $ctrl.isPermissionAverageCustomerReturnTime"
|
|
15
|
+
disable-animate
|
|
16
|
+
class="far fa-eye-slash eye-board-target"></i>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
<div id="container"></div>
|
|
20
|
+
</figure>
|
|
3
21
|
</div>
|
|
@@ -1,301 +1,196 @@
|
|
|
1
|
-
.
|
|
1
|
+
.average-customer-time-wrapper {}
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
.swiper-wrapper {
|
|
10
|
-
display: flex;
|
|
11
|
-
transition: transform 0.3s ease;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.swiper-slide {
|
|
15
|
-
width: 100%;
|
|
16
|
-
flex-shrink: 0;
|
|
17
|
-
display: flex;
|
|
18
|
-
justify-content: center;
|
|
19
|
-
align-items: center;
|
|
20
|
-
box-sizing: border-box;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.swiper-slide-active {
|
|
24
|
-
display: flex;
|
|
25
|
-
justify-content: center;
|
|
26
|
-
align-items: center;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.swiper-pagination {
|
|
30
|
-
position: absolute;
|
|
31
|
-
top: 100px;
|
|
32
|
-
left: 54%;
|
|
33
|
-
transform: translateX(-50%);
|
|
34
|
-
display: flex;
|
|
35
|
-
gap: 5px;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.swiper-pagination-bullet {
|
|
39
|
-
width: 10px;
|
|
40
|
-
height: 10px;
|
|
41
|
-
background-color: #606A90;
|
|
42
|
-
border-radius: 50%;
|
|
43
|
-
opacity: 0.5;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.swiper-pagination-bullet-active {
|
|
47
|
-
background-color: #0EBCBD;
|
|
48
|
-
opacity: 1;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.active-index {
|
|
52
|
-
display: flex;
|
|
53
|
-
justify-content: end;
|
|
54
|
-
font-size: 14px;
|
|
55
|
-
margin-top: -17px;
|
|
56
|
-
color: var(--titleColor);
|
|
3
|
+
.highcharts-figure {
|
|
4
|
+
.custom-title-container{
|
|
5
|
+
.custom-title{
|
|
6
|
+
position: relative;
|
|
7
|
+
left: -20px;
|
|
57
8
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
.line-goal {
|
|
9
|
+
}
|
|
10
|
+
.line-pay {
|
|
61
11
|
width: 100%;
|
|
62
12
|
background: #737373;
|
|
63
13
|
height: 1px;
|
|
64
14
|
opacity: 0.3;
|
|
65
15
|
|
|
66
16
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
justify-content: center;
|
|
72
|
-
align-items: center;
|
|
73
|
-
height: 100%;
|
|
17
|
+
#container {
|
|
18
|
+
border-radius: 10px;
|
|
19
|
+
background: #FFF;
|
|
20
|
+
box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.05);
|
|
74
21
|
width: 100%;
|
|
75
|
-
|
|
76
|
-
left: -22px;
|
|
77
|
-
|
|
78
|
-
.dashboard-estimated {
|
|
79
|
-
|
|
80
|
-
position: relative;
|
|
81
|
-
left: 52px;
|
|
82
|
-
top: 10px;
|
|
83
|
-
height: 115px;
|
|
84
|
-
font-size: 14px;
|
|
85
|
-
color: #5f5b5b;
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.dashboard-estimated-store {
|
|
90
|
-
|
|
91
|
-
position: relative;
|
|
92
|
-
top: 18px;
|
|
93
|
-
left: 38px;
|
|
94
|
-
height: 115px;
|
|
95
|
-
font-size: 14px;
|
|
96
|
-
color: #5f5b5b;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.chart-container {
|
|
22
|
+
margin-left: 19px;
|
|
101
23
|
display: flex;
|
|
102
24
|
justify-content: center;
|
|
103
25
|
align-items: center;
|
|
104
|
-
width: 300px;
|
|
105
|
-
height: auto;
|
|
106
|
-
position: relative;
|
|
107
|
-
left: 10%;
|
|
108
|
-
bottom: 195px;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.opacity-dash-goal {
|
|
112
|
-
opacity: 0.5;
|
|
113
26
|
}
|
|
114
|
-
|
|
115
|
-
|
|
27
|
+
.description-container-dash {
|
|
28
|
+
color: var(--titleColor);
|
|
29
|
+
display: flex;
|
|
30
|
+
justify-content: end;
|
|
116
31
|
position: relative;
|
|
117
|
-
top:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
.estimate-goal {
|
|
123
|
-
font-size: 14px;
|
|
124
|
-
color: #5f5b5b;
|
|
125
|
-
}
|
|
32
|
+
top: 22px;
|
|
33
|
+
right: 12px;
|
|
34
|
+
z-index: 9999;
|
|
126
35
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
i {
|
|
132
|
-
color: #0EBCBD;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
.tooltip-inner {
|
|
136
|
-
width: 250px;
|
|
36
|
+
.mbg-h-c-tone-s-icon-dash {
|
|
37
|
+
margin-top: -10px;
|
|
38
|
+
transition: opacity 500ms ease;
|
|
39
|
+
opacity: 0.9;
|
|
137
40
|
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
138
43
|
|
|
44
|
+
@media screen and (max-width: 1920px){
|
|
45
|
+
.highcharts-figure {
|
|
139
46
|
|
|
140
|
-
.
|
|
141
|
-
display: flex;
|
|
142
|
-
flex-direction: column;
|
|
47
|
+
.line-pay {
|
|
143
48
|
position: relative;
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
color: #FFFFFF;
|
|
147
|
-
width: 100%;
|
|
148
|
-
height: 100%;
|
|
149
|
-
margin-right: 200px;
|
|
150
|
-
border-radius: 10px;
|
|
151
|
-
opacity: 1.0;
|
|
49
|
+
left: -20px;
|
|
50
|
+
width: 480px;
|
|
152
51
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
color: #000000 !important;
|
|
160
|
-
width: 300px;
|
|
52
|
+
#container {
|
|
53
|
+
border-radius: 10px;
|
|
54
|
+
background: #FFF;
|
|
55
|
+
box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.05);
|
|
56
|
+
width: 504px;
|
|
57
|
+
margin-left: 19px;
|
|
161
58
|
}
|
|
59
|
+
|
|
162
60
|
}
|
|
163
61
|
|
|
164
|
-
|
|
165
|
-
display: flex;
|
|
166
|
-
justify-content: space-between;
|
|
167
|
-
align-items: end;
|
|
168
|
-
position: relative;
|
|
169
|
-
top: 170px;
|
|
170
|
-
font-size: 16px;
|
|
171
|
-
color: #5f5b5b;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
.description-container-dash {
|
|
175
|
-
flex-grow: 1;
|
|
176
|
-
color: var(--titleColor);
|
|
177
|
-
display: flex;
|
|
178
|
-
justify-content: space-between;
|
|
179
|
-
width: 100%;
|
|
180
|
-
margin-top: 16px;
|
|
181
|
-
font-weight: 600;
|
|
182
|
-
font-size: 14px;
|
|
62
|
+
}
|
|
183
63
|
|
|
184
|
-
|
|
64
|
+
@media screen and (max-width: 1728px){
|
|
65
|
+
.highcharts-figure {
|
|
66
|
+
.line-pay {
|
|
185
67
|
position: relative;
|
|
186
|
-
|
|
187
|
-
|
|
68
|
+
left: -20px;
|
|
69
|
+
width: 418px;
|
|
188
70
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
71
|
+
#container {
|
|
72
|
+
border-radius: 10px;
|
|
73
|
+
background: #FFF;
|
|
74
|
+
box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.05);
|
|
75
|
+
width: 444px;
|
|
76
|
+
padding: inherit;
|
|
194
77
|
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
195
80
|
|
|
196
|
-
|
|
81
|
+
@media screen and (max-width: 1536px){
|
|
82
|
+
.highcharts-figure {
|
|
83
|
+
.custom-title-container{
|
|
84
|
+
.custom-title{
|
|
85
|
+
font-size: 17px;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
.line-pay {
|
|
197
89
|
position: relative;
|
|
198
|
-
|
|
90
|
+
left: -20px;
|
|
91
|
+
width: 366px;
|
|
199
92
|
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
93
|
+
#container {
|
|
94
|
+
border-radius: 10px;
|
|
95
|
+
background: #FFF;
|
|
96
|
+
box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.05);
|
|
97
|
+
width: 390px;
|
|
205
98
|
}
|
|
206
99
|
}
|
|
100
|
+
}
|
|
207
101
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
102
|
+
@media screen and (max-width: 1440px){
|
|
103
|
+
.highcharts-figure {
|
|
104
|
+
.custom-title-container{
|
|
105
|
+
.custom-title{
|
|
106
|
+
font-size: 16px;
|
|
107
|
+
width: 100vw;
|
|
211
108
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.line-pay {
|
|
112
|
+
position: relative;
|
|
113
|
+
left: -20px;
|
|
114
|
+
width: 332px;
|
|
215
115
|
}
|
|
116
|
+
#container {
|
|
117
|
+
border-radius: 10px;
|
|
118
|
+
background: #FFF;
|
|
119
|
+
box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.05);
|
|
120
|
+
width: 358px;
|
|
216
121
|
|
|
217
|
-
100% {
|
|
218
|
-
opacity: 1;
|
|
219
122
|
}
|
|
220
123
|
}
|
|
124
|
+
}
|
|
221
125
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
126
|
+
@media screen and (max-width: 1368px){
|
|
127
|
+
.highcharts-figure {
|
|
128
|
+
.custom-title-container{
|
|
129
|
+
.custom-title{
|
|
130
|
+
font-size: 20px;
|
|
131
|
+
width: 100vw;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.line-pay {
|
|
229
136
|
position: relative;
|
|
230
|
-
|
|
137
|
+
left: -20px;
|
|
138
|
+
width: 450px;
|
|
231
139
|
}
|
|
140
|
+
#container {
|
|
141
|
+
border-radius: 10px;
|
|
142
|
+
background: #FFF;
|
|
143
|
+
box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.05);
|
|
144
|
+
width: 474px;
|
|
232
145
|
|
|
233
|
-
.tooltip-inner {
|
|
234
|
-
background: #ff8c00 !important;
|
|
235
|
-
color: #000000 !important;
|
|
236
|
-
width: 300px;
|
|
237
146
|
}
|
|
238
147
|
}
|
|
148
|
+
}
|
|
239
149
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
150
|
+
@media screen and (max-width: 1366px){
|
|
151
|
+
.highcharts-figure {
|
|
152
|
+
.custom-title-container{
|
|
153
|
+
.custom-title{
|
|
154
|
+
font-size: 20px;
|
|
155
|
+
width: 100vw;
|
|
245
156
|
}
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
@media screen and (max-width: 1728px){
|
|
249
|
-
.description-container-dash{
|
|
250
|
-
.active-index-slide {
|
|
251
|
-
left: 108px;
|
|
252
157
|
}
|
|
158
|
+
|
|
159
|
+
.line-pay {
|
|
160
|
+
position: relative;
|
|
161
|
+
left: -20px;
|
|
162
|
+
width: 450px;
|
|
253
163
|
}
|
|
254
|
-
|
|
164
|
+
#container {
|
|
165
|
+
border-radius: 10px;
|
|
166
|
+
background: #FFF;
|
|
167
|
+
box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.05);
|
|
168
|
+
width: 474px;
|
|
255
169
|
|
|
256
|
-
@media screen and (max-width: 1536px){
|
|
257
|
-
.description-container-dash{
|
|
258
|
-
.active-index-slide {
|
|
259
|
-
left: 70px;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
@media screen and (max-width: 1440px){
|
|
264
|
-
.description-container-dash{
|
|
265
|
-
.active-index-slide {
|
|
266
|
-
left: 58px;
|
|
267
|
-
}
|
|
268
170
|
}
|
|
269
171
|
}
|
|
172
|
+
}
|
|
270
173
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
174
|
+
@media screen and (max-width: 1024px){
|
|
175
|
+
.highcharts-figure {
|
|
176
|
+
.custom-title-container{
|
|
177
|
+
.custom-title{
|
|
178
|
+
font-size: 15px;
|
|
179
|
+
width: 100vw;
|
|
180
|
+
}
|
|
275
181
|
}
|
|
182
|
+
|
|
183
|
+
.line-pay {
|
|
184
|
+
position: relative;
|
|
185
|
+
left: -20px;
|
|
186
|
+
width: 306px;
|
|
276
187
|
}
|
|
277
|
-
|
|
188
|
+
#container {
|
|
189
|
+
border-radius: 10px;
|
|
190
|
+
background: #FFF;
|
|
191
|
+
box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.05);
|
|
192
|
+
width: 330px;
|
|
278
193
|
|
|
279
|
-
@media screen and (max-width: 1024px){
|
|
280
|
-
.description-container-dash{
|
|
281
|
-
.active-index-slide {
|
|
282
|
-
left: 44px;
|
|
283
|
-
}
|
|
284
194
|
}
|
|
285
195
|
}
|
|
286
|
-
|
|
287
196
|
}
|
|
288
|
-
|
|
289
|
-
.hide-goal {
|
|
290
|
-
display: flex;
|
|
291
|
-
justify-content: center;
|
|
292
|
-
align-items: center;
|
|
293
|
-
width: 100%;
|
|
294
|
-
height: 100%;
|
|
295
|
-
font-size: 14px;
|
|
296
|
-
color: #5f5b5b;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
.state-goal {
|
|
300
|
-
cursor: pointer;
|
|
301
|
-
}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import './mbg-average-customer-time.scss'
|
|
2
2
|
import template from './mbg-average-customer-time.html'
|
|
3
|
+
import Highcharts from 'highcharts'
|
|
4
|
+
import Exporting from 'highcharts/modules/exporting.js'
|
|
5
|
+
import Accessibility from 'highcharts/modules/accessibility.js'
|
|
6
|
+
|
|
7
|
+
Exporting(Highcharts)
|
|
8
|
+
Accessibility(Highcharts)
|
|
3
9
|
|
|
4
10
|
class MbgAverageCustomerTimeController {
|
|
11
|
+
private percentagesReturnCustomerTime
|
|
12
|
+
private isPermissionAverageCustomerReturnTime
|
|
13
|
+
private allowedToSee: boolean
|
|
14
|
+
private allowedCallBack: Function
|
|
15
|
+
private isBlockValuesDashboarReturnCustomer
|
|
16
|
+
private hideValue: boolean = false
|
|
17
|
+
|
|
5
18
|
constructor(
|
|
6
19
|
public $scope,
|
|
7
20
|
public $element,
|
|
@@ -11,7 +24,152 @@ class MbgAverageCustomerTimeController {
|
|
|
11
24
|
public $state,
|
|
12
25
|
) {}
|
|
13
26
|
|
|
14
|
-
async $onInit() {
|
|
27
|
+
async $onInit() {
|
|
28
|
+
this.isBlockValuesDashboarReturnCustomer =
|
|
29
|
+
!this.allowedToSee || !this.isPermissionAverageCustomerReturnTime
|
|
30
|
+
this.$scope.$watch(
|
|
31
|
+
'$ctrl.percentagesReturnCustomerTime',
|
|
32
|
+
(data) => {
|
|
33
|
+
if (data) {
|
|
34
|
+
this.configPanelPercentagesReturnCustomerTime()
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
true,
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
configPanelPercentagesReturnCustomerTime() {
|
|
42
|
+
const colors = ['#F24A57', '#45BDBF', '#482F72', '#CDDA34', '#F68E2C']
|
|
43
|
+
const hasPermissionPorcentages = !this.isPermissionAverageCustomerReturnTime || this.hideValue
|
|
44
|
+
const transformedData = this.percentagesReturnCustomerTime.map((item, index) => ({
|
|
45
|
+
name: `${item.days} dias`,
|
|
46
|
+
y: parseFloat(item.percentage) > 0 ? parseFloat(item.percentage) : 0,
|
|
47
|
+
color: colors[index],
|
|
48
|
+
}))
|
|
49
|
+
|
|
50
|
+
Highcharts.chart('container', {
|
|
51
|
+
chart: {
|
|
52
|
+
type: 'pie',
|
|
53
|
+
backgroundColor: 'none',
|
|
54
|
+
events: {
|
|
55
|
+
redraw: function () {
|
|
56
|
+
const chart = this
|
|
57
|
+
const noDataText = 'Nenhum período selecionado'
|
|
58
|
+
|
|
59
|
+
if (chart.noDataLabel) {
|
|
60
|
+
chart.noDataLabel.destroy()
|
|
61
|
+
chart.noDataLabel = null
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const allDataHidden = chart.series.filter((series) =>
|
|
65
|
+
series.data.filter((point) => point.options.visible),
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
const hasDate = allDataHidden[0].data.some((option) => option.visible)
|
|
69
|
+
|
|
70
|
+
if (!hasDate) {
|
|
71
|
+
const centerX = chart.plotWidth / 2
|
|
72
|
+
const centerY = chart.plotHeight / 2
|
|
73
|
+
chart.noDataLabel = chart.renderer
|
|
74
|
+
.text(noDataText, centerX, centerY)
|
|
75
|
+
.attr({
|
|
76
|
+
zIndex: 5,
|
|
77
|
+
align: 'center',
|
|
78
|
+
})
|
|
79
|
+
.css({
|
|
80
|
+
fontSize: '20px',
|
|
81
|
+
color: '#5f5b5b',
|
|
82
|
+
textAlign: 'center',
|
|
83
|
+
})
|
|
84
|
+
.add()
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
title: {
|
|
90
|
+
text: `
|
|
91
|
+
<div class="custom-title-container">
|
|
92
|
+
<p class="custom-title">Tempo médio de retorno do cliente</p>
|
|
93
|
+
<div class="line-pay"></div>
|
|
94
|
+
</div>`,
|
|
95
|
+
useHTML: true,
|
|
96
|
+
style: {
|
|
97
|
+
fontSize: '20px',
|
|
98
|
+
color: '#5f5b5b',
|
|
99
|
+
fontWeight: 'bold',
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
|
|
103
|
+
legend: {
|
|
104
|
+
layout: 'horizontal',
|
|
105
|
+
itemDistance: 5,
|
|
106
|
+
},
|
|
107
|
+
plotOptions: {
|
|
108
|
+
pie: {
|
|
109
|
+
allowPointSelect: true,
|
|
110
|
+
cursor: 'pointer',
|
|
111
|
+
borderRadius: 8,
|
|
112
|
+
dataLabels: {
|
|
113
|
+
enabled: !hasPermissionPorcentages,
|
|
114
|
+
|
|
115
|
+
formatter: function () {
|
|
116
|
+
if (!hasPermissionPorcentages) {
|
|
117
|
+
return `<span style="color:#7B7B7B">${
|
|
118
|
+
this.point.name
|
|
119
|
+
}</span><br><span style="font-weight:bold; color:#333">(${this.y.toFixed(
|
|
120
|
+
2,
|
|
121
|
+
)}%)</span>`
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
style: {
|
|
125
|
+
fontSize: '0.9em',
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
showInLegend: true,
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
tooltip: {
|
|
132
|
+
backgroundColor: '#FFF',
|
|
133
|
+
formatter: function () {
|
|
134
|
+
if (hasPermissionPorcentages) {
|
|
135
|
+
return 'Sem permissão para visualizar'
|
|
136
|
+
}
|
|
137
|
+
return `<b>${this.point.name}</b><br>Porcentagem: ${this.y.toFixed(2)}%`
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
series: [
|
|
141
|
+
{
|
|
142
|
+
name: 'Porcentagem',
|
|
143
|
+
colorByPoint: true,
|
|
144
|
+
innerSize: '75%',
|
|
145
|
+
data: transformedData,
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
navigation: {
|
|
149
|
+
buttonOptions: {
|
|
150
|
+
enabled: false,
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
credits: {
|
|
154
|
+
enabled: false,
|
|
155
|
+
},
|
|
156
|
+
})
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
toggleShowValuesReturnCustomer() {
|
|
160
|
+
if (
|
|
161
|
+
(this.allowedToSee !== undefined && !this.allowedToSee) ||
|
|
162
|
+
!this.isPermissionAverageCustomerReturnTime
|
|
163
|
+
) {
|
|
164
|
+
if (this.allowedCallBack) {
|
|
165
|
+
this.allowedCallBack()
|
|
166
|
+
}
|
|
167
|
+
return
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
this.hideValue = !this.hideValue
|
|
171
|
+
this.configPanelPercentagesReturnCustomerTime()
|
|
172
|
+
}
|
|
15
173
|
}
|
|
16
174
|
MbgAverageCustomerTimeController['$inject'] = [
|
|
17
175
|
'$scope',
|
|
@@ -23,7 +181,13 @@ MbgAverageCustomerTimeController['$inject'] = [
|
|
|
23
181
|
]
|
|
24
182
|
|
|
25
183
|
const mbgAverageCustomerTime = {
|
|
26
|
-
bindings: {
|
|
184
|
+
bindings: {
|
|
185
|
+
percentagesReturnCustomerTime: '=?',
|
|
186
|
+
isPermissionAverageCustomerReturnTime: '=?',
|
|
187
|
+
allowedToSee: '=?',
|
|
188
|
+
allowedCallBack: '&?',
|
|
189
|
+
isBlockValuesDashboarReturnCustomer: '=?',
|
|
190
|
+
},
|
|
27
191
|
template,
|
|
28
192
|
controller: MbgAverageCustomerTimeController,
|
|
29
193
|
}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
<div ng-class="{'opacity-dash-goal': !$ctrl.isPermissionStoreGoal}"
|
|
2
2
|
class="store-goal-wrapper"
|
|
3
3
|
ng-show="$ctrl.showDashboard">
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
4
|
<div class="description-container-dash">
|
|
8
5
|
<p class="description-dash">
|
|
9
6
|
Meta do mês / {{$ctrl.currentMonthName}}
|
|
@@ -13,8 +10,6 @@
|
|
|
13
10
|
ng-show="$ctrl.estimatedPercentageGreaterThanTarget"
|
|
14
11
|
aria-hidden="true"></i>
|
|
15
12
|
</p>
|
|
16
|
-
|
|
17
|
-
|
|
18
13
|
<div class="mbg-h-c-tone-s-icon-dash"
|
|
19
14
|
ng-click="$ctrl.toggleShowValueStoreGoal(false)">
|
|
20
15
|
<i class="fa fa-lock lock-dash-store"
|
|
@@ -127,6 +122,31 @@
|
|
|
127
122
|
|
|
128
123
|
|
|
129
124
|
<div class="swiper-pagination"></div>
|
|
125
|
+
<div class="loading-indicator">
|
|
126
|
+
<svg id="loading-circle"
|
|
127
|
+
width="30"
|
|
128
|
+
height="30"
|
|
129
|
+
viewBox="0 0 100 100">
|
|
130
|
+
|
|
131
|
+
<circle cx="50"
|
|
132
|
+
cy="50"
|
|
133
|
+
r="40"
|
|
134
|
+
stroke="#E9E9E9"
|
|
135
|
+
stroke-width="8"
|
|
136
|
+
fill="none" />
|
|
137
|
+
|
|
138
|
+
<circle id="progress"
|
|
139
|
+
cx="50"
|
|
140
|
+
cy="50"
|
|
141
|
+
r="40"
|
|
142
|
+
stroke="#0ebcbd"
|
|
143
|
+
stroke-width="8"
|
|
144
|
+
stroke-dasharray="251.2"
|
|
145
|
+
stroke-dashoffset="251.2"
|
|
146
|
+
fill="none"
|
|
147
|
+
transform="rotate(-90 50 50)" />
|
|
148
|
+
</svg>
|
|
149
|
+
</div>
|
|
130
150
|
</div>
|
|
131
151
|
</div>
|
|
132
152
|
</div>
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
.store-goal-wrapper {
|
|
2
2
|
|
|
3
|
+
.loading-indicator {
|
|
4
|
+
position: absolute;
|
|
5
|
+
top: 26%;
|
|
6
|
+
left: 98%;
|
|
7
|
+
transform: translate(-50%, -50%);
|
|
8
|
+
width: 40px;
|
|
9
|
+
height: 40px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
#loading-circle {
|
|
13
|
+
position: absolute;
|
|
14
|
+
}
|
|
15
|
+
|
|
3
16
|
.swiper {
|
|
4
17
|
width: 100%;
|
|
5
18
|
height: 100%;
|
|
@@ -29,7 +42,7 @@
|
|
|
29
42
|
.swiper-pagination {
|
|
30
43
|
position: absolute;
|
|
31
44
|
top: 100px;
|
|
32
|
-
left:
|
|
45
|
+
left: 50%;
|
|
33
46
|
transform: translateX(-50%);
|
|
34
47
|
display: flex;
|
|
35
48
|
gap: 5px;
|
|
@@ -73,10 +86,9 @@
|
|
|
73
86
|
height: 100%;
|
|
74
87
|
width: 100%;
|
|
75
88
|
position: relative;
|
|
76
|
-
left: -22px;
|
|
77
89
|
|
|
78
|
-
.dashboard-estimated {
|
|
79
90
|
|
|
91
|
+
.dashboard-estimated {
|
|
80
92
|
position: relative;
|
|
81
93
|
left: 52px;
|
|
82
94
|
top: 10px;
|
|
@@ -238,6 +250,7 @@
|
|
|
238
250
|
}
|
|
239
251
|
|
|
240
252
|
@media screen and (max-width: 1920px){
|
|
253
|
+
|
|
241
254
|
.description-container-dash{
|
|
242
255
|
.active-index-slide {
|
|
243
256
|
left: 140px;
|
|
@@ -261,6 +274,15 @@
|
|
|
261
274
|
}
|
|
262
275
|
}
|
|
263
276
|
@media screen and (max-width: 1440px){
|
|
277
|
+
.dashboard-wrapper{
|
|
278
|
+
.swiper-slide{
|
|
279
|
+
.dashboard-estimated{
|
|
280
|
+
position: relative;
|
|
281
|
+
left: 32px;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
}
|
|
264
286
|
.description-container-dash{
|
|
265
287
|
.active-index-slide {
|
|
266
288
|
left: 58px;
|
|
@@ -277,6 +299,15 @@
|
|
|
277
299
|
}
|
|
278
300
|
|
|
279
301
|
@media screen and (max-width: 1024px){
|
|
302
|
+
.dashboard-wrapper{
|
|
303
|
+
.swiper-slide{
|
|
304
|
+
.dashboard-estimated{
|
|
305
|
+
position: relative;
|
|
306
|
+
left: 24px;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
}
|
|
280
311
|
.description-container-dash{
|
|
281
312
|
.active-index-slide {
|
|
282
313
|
left: 44px;
|
|
@@ -76,9 +76,43 @@ class MbgStoreGoalController {
|
|
|
76
76
|
})
|
|
77
77
|
|
|
78
78
|
swiper.on('slideChange', () => {
|
|
79
|
+
this.startLoadingAnimation(swiper)
|
|
79
80
|
this.indexActiveSlide =
|
|
80
81
|
swiper.activeIndex === 1 ? '(mensal)' : swiper.activeIndex === 2 ? '(diário)' : ''
|
|
81
82
|
})
|
|
83
|
+
|
|
84
|
+
this.startLoadingAnimation(swiper)
|
|
85
|
+
}
|
|
86
|
+
startLoadingAnimation(swiper) {
|
|
87
|
+
const duration = 20000
|
|
88
|
+
const totalLength = 251.2
|
|
89
|
+
|
|
90
|
+
const progress = document.getElementById('progress')
|
|
91
|
+
if (!progress) return
|
|
92
|
+
|
|
93
|
+
let startTime: number | null = null
|
|
94
|
+
|
|
95
|
+
const animate = (timestamp: number) => {
|
|
96
|
+
if (!startTime) startTime = timestamp
|
|
97
|
+
const elapsed = timestamp - startTime
|
|
98
|
+
|
|
99
|
+
const progressPercentage = elapsed / duration
|
|
100
|
+
const currentOffset = totalLength * (1 - progressPercentage)
|
|
101
|
+
|
|
102
|
+
progress.style.strokeDashoffset = `${currentOffset}`
|
|
103
|
+
|
|
104
|
+
if (elapsed < duration) {
|
|
105
|
+
requestAnimationFrame(animate)
|
|
106
|
+
} else {
|
|
107
|
+
progress.style.strokeDashoffset = '0'
|
|
108
|
+
if (swiper.autoplay.running) {
|
|
109
|
+
swiper.autoplay.start()
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
progress.style.strokeDashoffset = `${totalLength}`
|
|
115
|
+
requestAnimationFrame(animate)
|
|
82
116
|
}
|
|
83
117
|
|
|
84
118
|
goalDataForTheMonthConfig() {
|
package/src/index.html
CHANGED
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
<div class="col-md-12"> -->
|
|
162
162
|
<div class=""
|
|
163
163
|
style="height: 260px">
|
|
164
|
-
<mbg-
|
|
164
|
+
<mbg-store-goal></mbg-store-goal>
|
|
165
165
|
|
|
166
166
|
<!-- <mbg-text-editor ng-model="editorJodit"
|
|
167
167
|
ng-if="testeeditorif"
|