aephidayatuloh commited on
Commit
57f3070
·
1 Parent(s): e8ad5c8

upload assets

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. assets/css/demo.css +107 -0
  2. assets/img/avatars/1.png +0 -0
  3. assets/img/avatars/5.png +0 -0
  4. assets/img/avatars/6.png +0 -0
  5. assets/img/avatars/7.png +0 -0
  6. assets/img/backgrounds/18.jpg +0 -0
  7. assets/img/elements/1.jpg +0 -0
  8. assets/img/elements/11.jpg +0 -0
  9. assets/img/elements/12.jpg +0 -0
  10. assets/img/elements/13.jpg +0 -0
  11. assets/img/elements/17.jpg +0 -0
  12. assets/img/elements/18.jpg +0 -0
  13. assets/img/elements/19.jpg +0 -0
  14. assets/img/elements/2.jpg +0 -0
  15. assets/img/elements/20.jpg +0 -0
  16. assets/img/elements/3.jpg +0 -0
  17. assets/img/elements/4.jpg +0 -0
  18. assets/img/elements/5.jpg +0 -0
  19. assets/img/elements/7.jpg +0 -0
  20. assets/img/favicon/favicon.ico +0 -0
  21. assets/img/icons/brands/asana.png +0 -0
  22. assets/img/icons/brands/behance.png +0 -0
  23. assets/img/icons/brands/dribbble.png +0 -0
  24. assets/img/icons/brands/facebook.png +0 -0
  25. assets/img/icons/brands/github.png +0 -0
  26. assets/img/icons/brands/google.png +0 -0
  27. assets/img/icons/brands/instagram.png +0 -0
  28. assets/img/icons/brands/mailchimp.png +0 -0
  29. assets/img/icons/brands/slack.png +0 -0
  30. assets/img/icons/brands/twitter.png +0 -0
  31. assets/img/icons/unicons/cc-primary.png +0 -0
  32. assets/img/icons/unicons/cc-success.png +0 -0
  33. assets/img/icons/unicons/cc-warning.png +0 -0
  34. assets/img/icons/unicons/chart-success.png +0 -0
  35. assets/img/icons/unicons/chart.png +0 -0
  36. assets/img/icons/unicons/paypal.png +0 -0
  37. assets/img/icons/unicons/wallet-info.png +0 -0
  38. assets/img/icons/unicons/wallet.png +0 -0
  39. assets/img/illustrations/girl-doing-yoga-light.png +0 -0
  40. assets/img/illustrations/man-with-laptop-light.png +0 -0
  41. assets/img/illustrations/page-misc-error-light.png +0 -0
  42. assets/img/layouts/layout-container-light.png +0 -0
  43. assets/img/layouts/layout-fluid-light.png +0 -0
  44. assets/img/layouts/layout-without-menu-light.png +0 -0
  45. assets/img/layouts/layout-without-navbar-light.png +0 -0
  46. assets/js/config.js +27 -0
  47. assets/js/dashboards-analytics.js +662 -0
  48. assets/js/extended-ui-perfect-scrollbar.js +37 -0
  49. assets/js/form-basic-inputs.js +11 -0
  50. assets/js/main.js +118 -0
assets/css/demo.css ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * demo.css
3
+ * File include item demo only specific css only
4
+ ******************************************************************************/
5
+
6
+ .menu .app-brand.demo {
7
+ height: 64px;
8
+ margin-top: 12px;
9
+ }
10
+
11
+ .app-brand-logo.demo svg {
12
+ width: 22px;
13
+ height: 38px;
14
+ }
15
+
16
+ .app-brand-text.demo {
17
+ font-size: 1.75rem;
18
+ letter-spacing: -0.5px;
19
+ text-transform: lowercase;
20
+ }
21
+
22
+ /* ! For .layout-navbar-fixed added fix padding top tpo .layout-page */
23
+ /* Detached navbar */
24
+ .layout-navbar-fixed .layout-wrapper:not(.layout-horizontal):not(.layout-without-menu) .layout-page {
25
+ padding-top: 76px !important;
26
+ }
27
+ /* Default navbar */
28
+ .layout-navbar-fixed .layout-wrapper:not(.layout-without-menu) .layout-page {
29
+ padding-top: 64px !important;
30
+ }
31
+
32
+ /* Navbar page z-index issue solution */
33
+ .content-wrapper .navbar {
34
+ z-index: auto;
35
+ }
36
+
37
+ /*
38
+ * Content
39
+ ******************************************************************************/
40
+
41
+ .demo-blocks > * {
42
+ display: block !important;
43
+ }
44
+
45
+ .demo-inline-spacing > * {
46
+ margin: 1rem 0.375rem 0 0 !important;
47
+ }
48
+
49
+ /* ? .demo-vertical-spacing class is used to have vertical margins between elements. To remove margin-top from the first-child, use .demo-only-element class with .demo-vertical-spacing class. For example, we have used this class in forms-input-groups.html file. */
50
+ .demo-vertical-spacing > * {
51
+ margin-top: 1rem !important;
52
+ margin-bottom: 0 !important;
53
+ }
54
+ .demo-vertical-spacing.demo-only-element > :first-child {
55
+ margin-top: 0 !important;
56
+ }
57
+
58
+ .demo-vertical-spacing-lg > * {
59
+ margin-top: 1.875rem !important;
60
+ margin-bottom: 0 !important;
61
+ }
62
+ .demo-vertical-spacing-lg.demo-only-element > :first-child {
63
+ margin-top: 0 !important;
64
+ }
65
+
66
+ .demo-vertical-spacing-xl > * {
67
+ margin-top: 5rem !important;
68
+ margin-bottom: 0 !important;
69
+ }
70
+ .demo-vertical-spacing-xl.demo-only-element > :first-child {
71
+ margin-top: 0 !important;
72
+ }
73
+
74
+ .rtl-only {
75
+ display: none !important;
76
+ text-align: left !important;
77
+ direction: ltr !important;
78
+ }
79
+
80
+ [dir='rtl'] .rtl-only {
81
+ display: block !important;
82
+ }
83
+
84
+ /*
85
+ * Layout demo
86
+ ******************************************************************************/
87
+
88
+ .layout-demo-wrapper {
89
+ display: -webkit-box;
90
+ display: -ms-flexbox;
91
+ display: flex;
92
+ -webkit-box-align: center;
93
+ -ms-flex-align: center;
94
+ align-items: center;
95
+ -webkit-box-orient: vertical;
96
+ -webkit-box-direction: normal;
97
+ -ms-flex-direction: column;
98
+ flex-direction: column;
99
+ margin-top: 1rem;
100
+ }
101
+ .layout-demo-placeholder img {
102
+ width: 900px;
103
+ }
104
+ .layout-demo-info {
105
+ text-align: center;
106
+ margin-top: 1rem;
107
+ }
assets/img/avatars/1.png ADDED
assets/img/avatars/5.png ADDED
assets/img/avatars/6.png ADDED
assets/img/avatars/7.png ADDED
assets/img/backgrounds/18.jpg ADDED
assets/img/elements/1.jpg ADDED
assets/img/elements/11.jpg ADDED
assets/img/elements/12.jpg ADDED
assets/img/elements/13.jpg ADDED
assets/img/elements/17.jpg ADDED
assets/img/elements/18.jpg ADDED
assets/img/elements/19.jpg ADDED
assets/img/elements/2.jpg ADDED
assets/img/elements/20.jpg ADDED
assets/img/elements/3.jpg ADDED
assets/img/elements/4.jpg ADDED
assets/img/elements/5.jpg ADDED
assets/img/elements/7.jpg ADDED
assets/img/favicon/favicon.ico ADDED
assets/img/icons/brands/asana.png ADDED
assets/img/icons/brands/behance.png ADDED
assets/img/icons/brands/dribbble.png ADDED
assets/img/icons/brands/facebook.png ADDED
assets/img/icons/brands/github.png ADDED
assets/img/icons/brands/google.png ADDED
assets/img/icons/brands/instagram.png ADDED
assets/img/icons/brands/mailchimp.png ADDED
assets/img/icons/brands/slack.png ADDED
assets/img/icons/brands/twitter.png ADDED
assets/img/icons/unicons/cc-primary.png ADDED
assets/img/icons/unicons/cc-success.png ADDED
assets/img/icons/unicons/cc-warning.png ADDED
assets/img/icons/unicons/chart-success.png ADDED
assets/img/icons/unicons/chart.png ADDED
assets/img/icons/unicons/paypal.png ADDED
assets/img/icons/unicons/wallet-info.png ADDED
assets/img/icons/unicons/wallet.png ADDED
assets/img/illustrations/girl-doing-yoga-light.png ADDED
assets/img/illustrations/man-with-laptop-light.png ADDED
assets/img/illustrations/page-misc-error-light.png ADDED
assets/img/layouts/layout-container-light.png ADDED
assets/img/layouts/layout-fluid-light.png ADDED
assets/img/layouts/layout-without-menu-light.png ADDED
assets/img/layouts/layout-without-navbar-light.png ADDED
assets/js/config.js ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Config
3
+ * -------------------------------------------------------------------------------------
4
+ * ! IMPORTANT: Make sure you clear the browser local storage In order to see the config changes in the template.
5
+ * ! To clear local storage: (https://www.leadshook.com/help/how-to-clear-local-storage-in-google-chrome-browser/).
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ // JS global variables
11
+ let config = {
12
+ colors: {
13
+ primary: '#696cff',
14
+ secondary: '#8592a3',
15
+ success: '#71dd37',
16
+ info: '#03c3ec',
17
+ warning: '#ffab00',
18
+ danger: '#ff3e1d',
19
+ dark: '#233446',
20
+ black: '#000',
21
+ white: '#fff',
22
+ body: '#f4f5fb',
23
+ headingColor: '#566a7f',
24
+ axisColor: '#a1acb8',
25
+ borderColor: '#eceef1'
26
+ }
27
+ };
assets/js/dashboards-analytics.js ADDED
@@ -0,0 +1,662 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Dashboard Analytics
3
+ */
4
+
5
+ 'use strict';
6
+
7
+ (function () {
8
+ let cardColor, headingColor, axisColor, shadeColor, borderColor;
9
+
10
+ cardColor = config.colors.white;
11
+ headingColor = config.colors.headingColor;
12
+ axisColor = config.colors.axisColor;
13
+ borderColor = config.colors.borderColor;
14
+
15
+ // Total Revenue Report Chart - Bar Chart
16
+ // --------------------------------------------------------------------
17
+ const totalRevenueChartEl = document.querySelector('#totalRevenueChart'),
18
+ totalRevenueChartOptions = {
19
+ series: [
20
+ {
21
+ name: '2021',
22
+ data: [18, 7, 15, 29, 18, 12, 9]
23
+ },
24
+ {
25
+ name: '2020',
26
+ data: [-13, -18, -9, -14, -5, -17, -15]
27
+ }
28
+ ],
29
+ chart: {
30
+ height: 300,
31
+ stacked: true,
32
+ type: 'bar',
33
+ toolbar: { show: false }
34
+ },
35
+ plotOptions: {
36
+ bar: {
37
+ horizontal: false,
38
+ columnWidth: '33%',
39
+ borderRadius: 12,
40
+ startingShape: 'rounded',
41
+ endingShape: 'rounded'
42
+ }
43
+ },
44
+ colors: [config.colors.primary, config.colors.info],
45
+ dataLabels: {
46
+ enabled: false
47
+ },
48
+ stroke: {
49
+ curve: 'smooth',
50
+ width: 6,
51
+ lineCap: 'round',
52
+ colors: [cardColor]
53
+ },
54
+ legend: {
55
+ show: true,
56
+ horizontalAlign: 'left',
57
+ position: 'top',
58
+ markers: {
59
+ height: 8,
60
+ width: 8,
61
+ radius: 12,
62
+ offsetX: -3
63
+ },
64
+ labels: {
65
+ colors: axisColor
66
+ },
67
+ itemMargin: {
68
+ horizontal: 10
69
+ }
70
+ },
71
+ grid: {
72
+ borderColor: borderColor,
73
+ padding: {
74
+ top: 0,
75
+ bottom: -8,
76
+ left: 20,
77
+ right: 20
78
+ }
79
+ },
80
+ xaxis: {
81
+ categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
82
+ labels: {
83
+ style: {
84
+ fontSize: '13px',
85
+ colors: axisColor
86
+ }
87
+ },
88
+ axisTicks: {
89
+ show: false
90
+ },
91
+ axisBorder: {
92
+ show: false
93
+ }
94
+ },
95
+ yaxis: {
96
+ labels: {
97
+ style: {
98
+ fontSize: '13px',
99
+ colors: axisColor
100
+ }
101
+ }
102
+ },
103
+ responsive: [
104
+ {
105
+ breakpoint: 1700,
106
+ options: {
107
+ plotOptions: {
108
+ bar: {
109
+ borderRadius: 10,
110
+ columnWidth: '32%'
111
+ }
112
+ }
113
+ }
114
+ },
115
+ {
116
+ breakpoint: 1580,
117
+ options: {
118
+ plotOptions: {
119
+ bar: {
120
+ borderRadius: 10,
121
+ columnWidth: '35%'
122
+ }
123
+ }
124
+ }
125
+ },
126
+ {
127
+ breakpoint: 1440,
128
+ options: {
129
+ plotOptions: {
130
+ bar: {
131
+ borderRadius: 10,
132
+ columnWidth: '42%'
133
+ }
134
+ }
135
+ }
136
+ },
137
+ {
138
+ breakpoint: 1300,
139
+ options: {
140
+ plotOptions: {
141
+ bar: {
142
+ borderRadius: 10,
143
+ columnWidth: '48%'
144
+ }
145
+ }
146
+ }
147
+ },
148
+ {
149
+ breakpoint: 1200,
150
+ options: {
151
+ plotOptions: {
152
+ bar: {
153
+ borderRadius: 10,
154
+ columnWidth: '40%'
155
+ }
156
+ }
157
+ }
158
+ },
159
+ {
160
+ breakpoint: 1040,
161
+ options: {
162
+ plotOptions: {
163
+ bar: {
164
+ borderRadius: 11,
165
+ columnWidth: '48%'
166
+ }
167
+ }
168
+ }
169
+ },
170
+ {
171
+ breakpoint: 991,
172
+ options: {
173
+ plotOptions: {
174
+ bar: {
175
+ borderRadius: 10,
176
+ columnWidth: '30%'
177
+ }
178
+ }
179
+ }
180
+ },
181
+ {
182
+ breakpoint: 840,
183
+ options: {
184
+ plotOptions: {
185
+ bar: {
186
+ borderRadius: 10,
187
+ columnWidth: '35%'
188
+ }
189
+ }
190
+ }
191
+ },
192
+ {
193
+ breakpoint: 768,
194
+ options: {
195
+ plotOptions: {
196
+ bar: {
197
+ borderRadius: 10,
198
+ columnWidth: '28%'
199
+ }
200
+ }
201
+ }
202
+ },
203
+ {
204
+ breakpoint: 640,
205
+ options: {
206
+ plotOptions: {
207
+ bar: {
208
+ borderRadius: 10,
209
+ columnWidth: '32%'
210
+ }
211
+ }
212
+ }
213
+ },
214
+ {
215
+ breakpoint: 576,
216
+ options: {
217
+ plotOptions: {
218
+ bar: {
219
+ borderRadius: 10,
220
+ columnWidth: '37%'
221
+ }
222
+ }
223
+ }
224
+ },
225
+ {
226
+ breakpoint: 480,
227
+ options: {
228
+ plotOptions: {
229
+ bar: {
230
+ borderRadius: 10,
231
+ columnWidth: '45%'
232
+ }
233
+ }
234
+ }
235
+ },
236
+ {
237
+ breakpoint: 420,
238
+ options: {
239
+ plotOptions: {
240
+ bar: {
241
+ borderRadius: 10,
242
+ columnWidth: '52%'
243
+ }
244
+ }
245
+ }
246
+ },
247
+ {
248
+ breakpoint: 380,
249
+ options: {
250
+ plotOptions: {
251
+ bar: {
252
+ borderRadius: 10,
253
+ columnWidth: '60%'
254
+ }
255
+ }
256
+ }
257
+ }
258
+ ],
259
+ states: {
260
+ hover: {
261
+ filter: {
262
+ type: 'none'
263
+ }
264
+ },
265
+ active: {
266
+ filter: {
267
+ type: 'none'
268
+ }
269
+ }
270
+ }
271
+ };
272
+ if (typeof totalRevenueChartEl !== undefined && totalRevenueChartEl !== null) {
273
+ const totalRevenueChart = new ApexCharts(totalRevenueChartEl, totalRevenueChartOptions);
274
+ totalRevenueChart.render();
275
+ }
276
+
277
+ // Growth Chart - Radial Bar Chart
278
+ // --------------------------------------------------------------------
279
+ const growthChartEl = document.querySelector('#growthChart'),
280
+ growthChartOptions = {
281
+ series: [78],
282
+ labels: ['Growth'],
283
+ chart: {
284
+ height: 240,
285
+ type: 'radialBar'
286
+ },
287
+ plotOptions: {
288
+ radialBar: {
289
+ size: 150,
290
+ offsetY: 10,
291
+ startAngle: -150,
292
+ endAngle: 150,
293
+ hollow: {
294
+ size: '55%'
295
+ },
296
+ track: {
297
+ background: cardColor,
298
+ strokeWidth: '100%'
299
+ },
300
+ dataLabels: {
301
+ name: {
302
+ offsetY: 15,
303
+ color: headingColor,
304
+ fontSize: '15px',
305
+ fontWeight: '600',
306
+ fontFamily: 'Public Sans'
307
+ },
308
+ value: {
309
+ offsetY: -25,
310
+ color: headingColor,
311
+ fontSize: '22px',
312
+ fontWeight: '500',
313
+ fontFamily: 'Public Sans'
314
+ }
315
+ }
316
+ }
317
+ },
318
+ colors: [config.colors.primary],
319
+ fill: {
320
+ type: 'gradient',
321
+ gradient: {
322
+ shade: 'dark',
323
+ shadeIntensity: 0.5,
324
+ gradientToColors: [config.colors.primary],
325
+ inverseColors: true,
326
+ opacityFrom: 1,
327
+ opacityTo: 0.6,
328
+ stops: [30, 70, 100]
329
+ }
330
+ },
331
+ stroke: {
332
+ dashArray: 5
333
+ },
334
+ grid: {
335
+ padding: {
336
+ top: -35,
337
+ bottom: -10
338
+ }
339
+ },
340
+ states: {
341
+ hover: {
342
+ filter: {
343
+ type: 'none'
344
+ }
345
+ },
346
+ active: {
347
+ filter: {
348
+ type: 'none'
349
+ }
350
+ }
351
+ }
352
+ };
353
+ if (typeof growthChartEl !== undefined && growthChartEl !== null) {
354
+ const growthChart = new ApexCharts(growthChartEl, growthChartOptions);
355
+ growthChart.render();
356
+ }
357
+
358
+ // Profit Report Line Chart
359
+ // --------------------------------------------------------------------
360
+ const profileReportChartEl = document.querySelector('#profileReportChart'),
361
+ profileReportChartConfig = {
362
+ chart: {
363
+ height: 80,
364
+ // width: 175,
365
+ type: 'line',
366
+ toolbar: {
367
+ show: false
368
+ },
369
+ dropShadow: {
370
+ enabled: true,
371
+ top: 10,
372
+ left: 5,
373
+ blur: 3,
374
+ color: config.colors.warning,
375
+ opacity: 0.15
376
+ },
377
+ sparkline: {
378
+ enabled: true
379
+ }
380
+ },
381
+ grid: {
382
+ show: false,
383
+ padding: {
384
+ right: 8
385
+ }
386
+ },
387
+ colors: [config.colors.warning],
388
+ dataLabels: {
389
+ enabled: false
390
+ },
391
+ stroke: {
392
+ width: 5,
393
+ curve: 'smooth'
394
+ },
395
+ series: [
396
+ {
397
+ data: [110, 270, 145, 245, 205, 285]
398
+ }
399
+ ],
400
+ xaxis: {
401
+ show: false,
402
+ lines: {
403
+ show: false
404
+ },
405
+ labels: {
406
+ show: false
407
+ },
408
+ axisBorder: {
409
+ show: false
410
+ }
411
+ },
412
+ yaxis: {
413
+ show: false
414
+ }
415
+ };
416
+ if (typeof profileReportChartEl !== undefined && profileReportChartEl !== null) {
417
+ const profileReportChart = new ApexCharts(profileReportChartEl, profileReportChartConfig);
418
+ profileReportChart.render();
419
+ }
420
+
421
+ // Order Statistics Chart
422
+ // --------------------------------------------------------------------
423
+ const chartOrderStatistics = document.querySelector('#orderStatisticsChart'),
424
+ orderChartConfig = {
425
+ chart: {
426
+ height: 165,
427
+ width: 130,
428
+ type: 'donut'
429
+ },
430
+ labels: ['Electronic', 'Sports', 'Decor', 'Fashion'],
431
+ series: [85, 15, 50, 50],
432
+ colors: [config.colors.primary, config.colors.secondary, config.colors.info, config.colors.success],
433
+ stroke: {
434
+ width: 5,
435
+ colors: cardColor
436
+ },
437
+ dataLabels: {
438
+ enabled: false,
439
+ formatter: function (val, opt) {
440
+ return parseInt(val) + '%';
441
+ }
442
+ },
443
+ legend: {
444
+ show: false
445
+ },
446
+ grid: {
447
+ padding: {
448
+ top: 0,
449
+ bottom: 0,
450
+ right: 15
451
+ }
452
+ },
453
+ plotOptions: {
454
+ pie: {
455
+ donut: {
456
+ size: '75%',
457
+ labels: {
458
+ show: true,
459
+ value: {
460
+ fontSize: '1.5rem',
461
+ fontFamily: 'Public Sans',
462
+ color: headingColor,
463
+ offsetY: -15,
464
+ formatter: function (val) {
465
+ return parseInt(val) + '%';
466
+ }
467
+ },
468
+ name: {
469
+ offsetY: 20,
470
+ fontFamily: 'Public Sans'
471
+ },
472
+ total: {
473
+ show: true,
474
+ fontSize: '0.8125rem',
475
+ color: axisColor,
476
+ label: 'Weekly',
477
+ formatter: function (w) {
478
+ return '38%';
479
+ }
480
+ }
481
+ }
482
+ }
483
+ }
484
+ }
485
+ };
486
+ if (typeof chartOrderStatistics !== undefined && chartOrderStatistics !== null) {
487
+ const statisticsChart = new ApexCharts(chartOrderStatistics, orderChartConfig);
488
+ statisticsChart.render();
489
+ }
490
+
491
+ // Income Chart - Area chart
492
+ // --------------------------------------------------------------------
493
+ const incomeChartEl = document.querySelector('#incomeChart'),
494
+ incomeChartConfig = {
495
+ series: [
496
+ {
497
+ data: [24, 21, 30, 22, 42, 26, 35, 29]
498
+ }
499
+ ],
500
+ chart: {
501
+ height: 215,
502
+ parentHeightOffset: 0,
503
+ parentWidthOffset: 0,
504
+ toolbar: {
505
+ show: false
506
+ },
507
+ type: 'area'
508
+ },
509
+ dataLabels: {
510
+ enabled: false
511
+ },
512
+ stroke: {
513
+ width: 2,
514
+ curve: 'smooth'
515
+ },
516
+ legend: {
517
+ show: false
518
+ },
519
+ markers: {
520
+ size: 6,
521
+ colors: 'transparent',
522
+ strokeColors: 'transparent',
523
+ strokeWidth: 4,
524
+ discrete: [
525
+ {
526
+ fillColor: config.colors.white,
527
+ seriesIndex: 0,
528
+ dataPointIndex: 7,
529
+ strokeColor: config.colors.primary,
530
+ strokeWidth: 2,
531
+ size: 6,
532
+ radius: 8
533
+ }
534
+ ],
535
+ hover: {
536
+ size: 7
537
+ }
538
+ },
539
+ colors: [config.colors.primary],
540
+ fill: {
541
+ type: 'gradient',
542
+ gradient: {
543
+ shade: shadeColor,
544
+ shadeIntensity: 0.6,
545
+ opacityFrom: 0.5,
546
+ opacityTo: 0.25,
547
+ stops: [0, 95, 100]
548
+ }
549
+ },
550
+ grid: {
551
+ borderColor: borderColor,
552
+ strokeDashArray: 3,
553
+ padding: {
554
+ top: -20,
555
+ bottom: -8,
556
+ left: -10,
557
+ right: 8
558
+ }
559
+ },
560
+ xaxis: {
561
+ categories: ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
562
+ axisBorder: {
563
+ show: false
564
+ },
565
+ axisTicks: {
566
+ show: false
567
+ },
568
+ labels: {
569
+ show: true,
570
+ style: {
571
+ fontSize: '13px',
572
+ colors: axisColor
573
+ }
574
+ }
575
+ },
576
+ yaxis: {
577
+ labels: {
578
+ show: false
579
+ },
580
+ min: 10,
581
+ max: 50,
582
+ tickAmount: 4
583
+ }
584
+ };
585
+ if (typeof incomeChartEl !== undefined && incomeChartEl !== null) {
586
+ const incomeChart = new ApexCharts(incomeChartEl, incomeChartConfig);
587
+ incomeChart.render();
588
+ }
589
+
590
+ // Expenses Mini Chart - Radial Chart
591
+ // --------------------------------------------------------------------
592
+ const weeklyExpensesEl = document.querySelector('#expensesOfWeek'),
593
+ weeklyExpensesConfig = {
594
+ series: [65],
595
+ chart: {
596
+ width: 60,
597
+ height: 60,
598
+ type: 'radialBar'
599
+ },
600
+ plotOptions: {
601
+ radialBar: {
602
+ startAngle: 0,
603
+ endAngle: 360,
604
+ strokeWidth: '8',
605
+ hollow: {
606
+ margin: 2,
607
+ size: '45%'
608
+ },
609
+ track: {
610
+ strokeWidth: '50%',
611
+ background: borderColor
612
+ },
613
+ dataLabels: {
614
+ show: true,
615
+ name: {
616
+ show: false
617
+ },
618
+ value: {
619
+ formatter: function (val) {
620
+ return '$' + parseInt(val);
621
+ },
622
+ offsetY: 5,
623
+ color: '#697a8d',
624
+ fontSize: '13px',
625
+ show: true
626
+ }
627
+ }
628
+ }
629
+ },
630
+ fill: {
631
+ type: 'solid',
632
+ colors: config.colors.primary
633
+ },
634
+ stroke: {
635
+ lineCap: 'round'
636
+ },
637
+ grid: {
638
+ padding: {
639
+ top: -10,
640
+ bottom: -15,
641
+ left: -10,
642
+ right: -10
643
+ }
644
+ },
645
+ states: {
646
+ hover: {
647
+ filter: {
648
+ type: 'none'
649
+ }
650
+ },
651
+ active: {
652
+ filter: {
653
+ type: 'none'
654
+ }
655
+ }
656
+ }
657
+ };
658
+ if (typeof weeklyExpensesEl !== undefined && weeklyExpensesEl !== null) {
659
+ const weeklyExpenses = new ApexCharts(weeklyExpensesEl, weeklyExpensesConfig);
660
+ weeklyExpenses.render();
661
+ }
662
+ })();
assets/js/extended-ui-perfect-scrollbar.js ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Perfect Scrollbar
3
+ */
4
+ 'use strict';
5
+
6
+ document.addEventListener('DOMContentLoaded', function () {
7
+ (function () {
8
+ const verticalExample = document.getElementById('vertical-example'),
9
+ horizontalExample = document.getElementById('horizontal-example'),
10
+ horizVertExample = document.getElementById('both-scrollbars-example');
11
+
12
+ // Vertical Example
13
+ // --------------------------------------------------------------------
14
+ if (verticalExample) {
15
+ new PerfectScrollbar(verticalExample, {
16
+ wheelPropagation: false
17
+ });
18
+ }
19
+
20
+ // Horizontal Example
21
+ // --------------------------------------------------------------------
22
+ if (horizontalExample) {
23
+ new PerfectScrollbar(horizontalExample, {
24
+ wheelPropagation: false,
25
+ suppressScrollY: true
26
+ });
27
+ }
28
+
29
+ // Both vertical and Horizontal Example
30
+ // --------------------------------------------------------------------
31
+ if (horizVertExample) {
32
+ new PerfectScrollbar(horizVertExample, {
33
+ wheelPropagation: false
34
+ });
35
+ }
36
+ })();
37
+ });
assets/js/form-basic-inputs.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Form Basic Inputs
3
+ */
4
+
5
+ 'use strict';
6
+
7
+ (function () {
8
+ // Indeterminate checkbox
9
+ const checkbox = document.getElementById('defaultCheck2');
10
+ checkbox.indeterminate = true;
11
+ })();
assets/js/main.js ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Main
3
+ */
4
+
5
+ 'use strict';
6
+
7
+ let menu, animate;
8
+
9
+ (function () {
10
+ // Initialize menu
11
+ //-----------------
12
+
13
+ let layoutMenuEl = document.querySelectorAll('#layout-menu');
14
+ layoutMenuEl.forEach(function (element) {
15
+ menu = new Menu(element, {
16
+ orientation: 'vertical',
17
+ closeChildren: false
18
+ });
19
+ // Change parameter to true if you want scroll animation
20
+ window.Helpers.scrollToActive((animate = false));
21
+ window.Helpers.mainMenu = menu;
22
+ });
23
+
24
+ // Initialize menu togglers and bind click on each
25
+ let menuToggler = document.querySelectorAll('.layout-menu-toggle');
26
+ menuToggler.forEach(item => {
27
+ item.addEventListener('click', event => {
28
+ event.preventDefault();
29
+ window.Helpers.toggleCollapsed();
30
+ });
31
+ });
32
+
33
+ // Display menu toggle (layout-menu-toggle) on hover with delay
34
+ let delay = function (elem, callback) {
35
+ let timeout = null;
36
+ elem.onmouseenter = function () {
37
+ // Set timeout to be a timer which will invoke callback after 300ms (not for small screen)
38
+ if (!Helpers.isSmallScreen()) {
39
+ timeout = setTimeout(callback, 300);
40
+ } else {
41
+ timeout = setTimeout(callback, 0);
42
+ }
43
+ };
44
+
45
+ elem.onmouseleave = function () {
46
+ // Clear any timers set to timeout
47
+ document.querySelector('.layout-menu-toggle').classList.remove('d-block');
48
+ clearTimeout(timeout);
49
+ };
50
+ };
51
+ if (document.getElementById('layout-menu')) {
52
+ delay(document.getElementById('layout-menu'), function () {
53
+ // not for small screen
54
+ if (!Helpers.isSmallScreen()) {
55
+ document.querySelector('.layout-menu-toggle').classList.add('d-block');
56
+ }
57
+ });
58
+ }
59
+
60
+ // Display in main menu when menu scrolls
61
+ let menuInnerContainer = document.getElementsByClassName('menu-inner'),
62
+ menuInnerShadow = document.getElementsByClassName('menu-inner-shadow')[0];
63
+ if (menuInnerContainer.length > 0 && menuInnerShadow) {
64
+ menuInnerContainer[0].addEventListener('ps-scroll-y', function () {
65
+ if (this.querySelector('.ps__thumb-y').offsetTop) {
66
+ menuInnerShadow.style.display = 'block';
67
+ } else {
68
+ menuInnerShadow.style.display = 'none';
69
+ }
70
+ });
71
+ }
72
+
73
+ // Init helpers & misc
74
+ // --------------------
75
+
76
+ // Init BS Tooltip
77
+ const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
78
+ tooltipTriggerList.map(function (tooltipTriggerEl) {
79
+ return new bootstrap.Tooltip(tooltipTriggerEl);
80
+ });
81
+
82
+ // Accordion active class
83
+ const accordionActiveFunction = function (e) {
84
+ if (e.type == 'show.bs.collapse' || e.type == 'show.bs.collapse') {
85
+ e.target.closest('.accordion-item').classList.add('active');
86
+ } else {
87
+ e.target.closest('.accordion-item').classList.remove('active');
88
+ }
89
+ };
90
+
91
+ const accordionTriggerList = [].slice.call(document.querySelectorAll('.accordion'));
92
+ const accordionList = accordionTriggerList.map(function (accordionTriggerEl) {
93
+ accordionTriggerEl.addEventListener('show.bs.collapse', accordionActiveFunction);
94
+ accordionTriggerEl.addEventListener('hide.bs.collapse', accordionActiveFunction);
95
+ });
96
+
97
+ // Auto update layout based on screen size
98
+ window.Helpers.setAutoUpdate(true);
99
+
100
+ // Toggle Password Visibility
101
+ window.Helpers.initPasswordToggle();
102
+
103
+ // Speech To Text
104
+ window.Helpers.initSpeechToText();
105
+
106
+ // Manage menu expanded/collapsed with templateCustomizer & local storage
107
+ //------------------------------------------------------------------
108
+
109
+ // If current layout is horizontal OR current window screen is small (overlay menu) than return from here
110
+ if (window.Helpers.isSmallScreen()) {
111
+ return;
112
+ }
113
+
114
+ // If current layout is vertical and current window screen is > small
115
+
116
+ // Auto update menu collapsed/expanded based on the themeConfig
117
+ window.Helpers.setCollapsed(true, false);
118
+ })();