@iamproperty/components 5.7.1-beta5 → 5.7.1-beta6

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 (59) hide show
  1. package/assets/css/components/barchart.component.css +1 -1
  2. package/assets/css/components/barchart.component.css.map +1 -1
  3. package/assets/css/components/card.css +1 -1
  4. package/assets/css/components/card.css.map +1 -1
  5. package/assets/css/components/card.global.css +1 -1
  6. package/assets/css/components/card.global.css.map +1 -1
  7. package/assets/css/components/charts.config.css +1 -1
  8. package/assets/css/components/charts.config.css.map +1 -1
  9. package/assets/css/components/charts.module.css +1 -1
  10. package/assets/css/components/charts.module.css.map +1 -1
  11. package/assets/css/core.min.css +1 -1
  12. package/assets/css/core.min.css.map +1 -1
  13. package/assets/css/style.min.css +1 -1
  14. package/assets/css/style.min.css.map +1 -1
  15. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  16. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  17. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  18. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  19. package/assets/js/components/barchart/barchart.component.js +8 -6
  20. package/assets/js/components/barchart/barchart.component.min.js +4 -6
  21. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  22. package/assets/js/components/card/card.component.js +28 -3
  23. package/assets/js/components/card/card.component.min.js +14 -7
  24. package/assets/js/components/card/card.component.min.js.map +1 -1
  25. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  26. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  27. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  28. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  29. package/assets/js/components/header/header.component.min.js +1 -1
  30. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  31. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  32. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  33. package/assets/js/components/nav/nav.component.min.js +1 -1
  34. package/assets/js/components/notification/notification.component.min.js +1 -1
  35. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  36. package/assets/js/components/search/search.component.min.js +1 -1
  37. package/assets/js/components/slider/slider.component.min.js +1 -1
  38. package/assets/js/components/table/table.component.min.js +1 -1
  39. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  40. package/assets/js/dynamic.min.js +1 -1
  41. package/assets/js/modules/chart.module.js +46 -31
  42. package/assets/js/scripts.bundle.js +22 -15
  43. package/assets/js/scripts.bundle.js.map +1 -1
  44. package/assets/js/scripts.bundle.min.js +2 -2
  45. package/assets/js/scripts.bundle.min.js.map +1 -1
  46. package/assets/sass/components/barchart.component.scss +47 -3
  47. package/assets/sass/components/card.global.scss +7 -1
  48. package/assets/sass/components/card.scss +114 -45
  49. package/assets/sass/components/charts.config.scss +15 -10
  50. package/assets/sass/components/charts.module.scss +6 -0
  51. package/assets/sass/elements/badge-tag.scss +6 -0
  52. package/assets/sass/elements/dialog.scss +6 -2
  53. package/assets/ts/components/barchart/barchart.component.ts +10 -6
  54. package/assets/ts/components/card/card.component.ts +34 -3
  55. package/assets/ts/modules/chart.module.ts +67 -37
  56. package/dist/components.es.js +11 -11
  57. package/dist/components.umd.js +53 -46
  58. package/package.json +1 -1
  59. package/src/components/BarChart/BarChart.vue +1 -1
@@ -2,17 +2,24 @@ import { numberOfDays } from './helpers'
2
2
 
3
3
  // #region Functions that setup and trigger other functions
4
4
 
5
- export const addClasses = (chartElement:any) => {
5
+ export const addClasses = (chartElement:any, chartOuter:any) => {
6
6
 
7
7
  // add colour classes
8
8
  for (let i = 1; i <= 10; i++) {
9
9
  if(chartElement.hasAttribute(`data-colour-${i}`)){
10
10
 
11
11
  let colour = chartElement.getAttribute(`data-colour-${i}`);
12
-
13
12
  chartElement.style.setProperty(`--chart-colour-${i}`, `var(--chart-colour-${colour})`);
14
13
  chartElement.style.setProperty(`--chart-colour-${i}-hover`, `var(--chart-colour-${colour}-hover)`);
15
14
  }
15
+
16
+ Array.from(chartOuter.querySelectorAll(`[data-colour-${i}]`)).forEach((element:HTMLElement) => {
17
+
18
+ let colour = element.getAttribute(`data-colour-${i}`);
19
+ element.style.setProperty(`--chart-colour-${i}-set`, `var(--chart-colour-${colour})`);
20
+ element.style.setProperty(`--chart-colour-${i}-hover`, `var(--chart-colour-${colour}-hover)`);
21
+ });
22
+
16
23
  }
17
24
 
18
25
  return true;
@@ -53,7 +60,7 @@ export const setupChart = (chartElement:any,chartOuter:any,tableElement:any) =>
53
60
  // #endregion
54
61
 
55
62
  // #region Event handlers and observers
56
- export const setEventListener = function(chartOuter:any) {
63
+ export const setEventListener = function(chartElement:any, chartOuter:any) {
57
64
 
58
65
  let chart = chartOuter.querySelector('.chart');
59
66
  chart.addEventListener('mousemove', (event:any) => {
@@ -81,15 +88,35 @@ export const setEventListener = function(chartOuter:any) {
81
88
  label.setAttribute('part','key-unchecked');
82
89
  });
83
90
 
84
- chartOuter.addEventListener('change', function(){
91
+
92
+ let table = chartElement.querySelector('table');
93
+ let shadowTable = chartOuter.querySelector('table');
94
+
95
+ chartOuter.addEventListener('change', function(event:any){
96
+
97
+ let eventTarget = event.target;
98
+
99
+ const customEvent = new CustomEvent("view-change", { detail: {
100
+ 'data-dataset': eventTarget.getAttribute('data-dataset'),
101
+ 'label': eventTarget.getAttribute('data-label'),
102
+ 'checked': eventTarget.checked
103
+ }
104
+ });
105
+
106
+ chartElement.dispatchEvent(customEvent);
85
107
 
86
108
  Array.from(labels).forEach((label:HTMLElement) => {
87
109
 
88
- if(chartOuter.querySelector(`input#${label.getAttribute('for')}`).checked)
110
+ if(chartOuter.querySelector(`input#${label.getAttribute('for')}`)?.checked)
89
111
  label.setAttribute('part','key-checked');
90
112
  else
91
113
  label.setAttribute('part','key-unchecked');
92
114
  });
115
+
116
+
117
+ shadowTable.innerHTML = table.innerHTML;
118
+ setCellData(chartElement,chartOuter,shadowTable);
119
+
93
120
  });
94
121
  }
95
122
 
@@ -152,7 +179,7 @@ export const getChartData = function(chartElement:any,chartOuter:any){
152
179
  let table = chartOuter.querySelector('.chart__wrapper table');
153
180
 
154
181
  let min:any = chartElement.hasAttribute('data-min') ? chartElement.getAttribute('data-min') : 0;
155
- let max:any = chartElement.hasAttribute('data-max') ? chartElement.getAttribute('data-max') : getLargestValue(table);
182
+ let max:any = chartElement.hasAttribute('data-max') ? chartElement.getAttribute('data-max') : getLargestValue(chartElement,table);
156
183
  let type:string = chartElement.hasAttribute('data-type') ? chartElement.getAttribute('data-type') : 'column';
157
184
  let yaxis:any = chartElement.hasAttribute('data-yaxis') ? chartElement.getAttribute('data-yaxis').split(',') : [];
158
185
  let guidelines:any = chartElement.hasAttribute('data-guidelines') ? chartElement.getAttribute('data-guidelines').split(',') : [];
@@ -162,7 +189,7 @@ export const getChartData = function(chartElement:any,chartOuter:any){
162
189
  let increment = chartElement.hasAttribute('data-increment') ? chartElement.getAttribute('data-increment'): null;
163
190
 
164
191
  let start:any = chartElement.hasAttribute('data-start') ? chartElement.getAttribute('data-start') : 0;
165
- let end:any = chartElement.hasAttribute('data-end') ? chartElement.getAttribute('data-end') : getLargestValue(table); // TODO - get largest value from the data-xaxis
192
+ let end:any = chartElement.hasAttribute('data-end') ? chartElement.getAttribute('data-end') : getLargestValue(chartElement,table); // TODO - get largest value from the data-xaxis
166
193
 
167
194
 
168
195
  let slope:any = chartElement.hasAttribute('data-slope') ? chartElement.getAttribute('data-slope') : null;
@@ -171,23 +198,21 @@ export const getChartData = function(chartElement:any,chartOuter:any){
171
198
  return {min,max,type,yaxis,targets,events,xaxis,increment,start,end,slope,yInt,guidelines};
172
199
  }
173
200
 
174
- function getLargestValue(table:any){
201
+ function getLargestValue(chartElement:any,table:any){
202
+
203
+ const selector = chartElement.classList.contains('chart--stacked') ? 'tbody tr' : 'tbody td:not(:first-child)';
175
204
 
176
- let values = Array.from(table.querySelectorAll('tbody td:not(:first-child)')).map((element: any) => {
205
+ let values = Array.from(table.querySelectorAll(selector)).map((element: any) => {
177
206
 
178
- let currentValue:string|number = String(element.textContent);
179
- currentValue = currentValue.replace('£','');
180
- currentValue = currentValue.replace('%','');
181
- currentValue = currentValue.replace(',','');
182
- currentValue = Number.parseFloat(currentValue);
207
+ let currentValue = element.getAttribute('data-numeric');
183
208
 
184
209
  return currentValue;
185
- })
210
+ });
186
211
 
187
- let largetValue:number = Math.max(...values);
212
+ let largestValue:number = Math.max(...values);
188
213
 
189
214
  // TO DO round to the nearest 10, 100, 1000 and so on
190
- return Math.ceil(largetValue);
215
+ return Math.ceil(largestValue);
191
216
  }
192
217
 
193
218
  const getValues = function(value:number,min:any,max:any,start?:number){
@@ -229,10 +254,27 @@ const getValues = function(value:number,min:any,max:any,start?:number){
229
254
  // #region SET functions - set data attributes and classes
230
255
  export const setCellData = function(chartElement:any,chartOuter:any,table:any){
231
256
 
232
- let {min, max} = getChartData(chartElement,chartOuter);
257
+ Array.from(table.querySelectorAll('tbody tr')).forEach((tr:any) => {
233
258
 
234
- let increment = chartElement.getAttribute('data-increment');
235
- let startDay = min;
259
+ let rowValue = 0;
260
+ // Set the data numeric value if not set
261
+ Array.from(tr.querySelectorAll('td:not(:first-child)')).forEach((td:any) => {
262
+
263
+ let value = parseFloat(td.textContent.replace('£','').replace('%','').replace(',',''));
264
+
265
+ td.setAttribute('data-numeric',value);
266
+ td.setAttribute('data-value',td.textContent);
267
+
268
+ let display = getComputedStyle(td).display;
269
+
270
+ if(display != 'none')
271
+ rowValue += value;
272
+ });
273
+
274
+ tr.setAttribute('data-numeric',rowValue);
275
+ });
276
+
277
+ let {min, max} = getChartData(chartElement,chartOuter);
236
278
 
237
279
  Array.from(table.querySelectorAll('tbody tr')).forEach((tr:any, index) => {
238
280
 
@@ -240,24 +282,10 @@ export const setCellData = function(chartElement:any,chartOuter:any,table:any){
240
282
 
241
283
  tr.setAttribute('part','group');
242
284
 
243
- // Set the data numeric value if not set
244
- Array.from(tr.querySelectorAll('td:not([data-numeric]):not(:first-child)')).forEach((td:any) => {
245
-
246
- let value = parseFloat(td.textContent.replace('£','').replace('%','').replace(',',''));
247
- let start = 0;
248
- if(increment == "days"){
249
- let dates = td.textContent.split(' - ');
250
- if(dates[1]){
251
-
252
- value = numberOfDays(dates[0],dates[1]);
253
- start = numberOfDays(startDay,dates[0]) - 1;
254
- }
255
- }
256
285
 
257
- td.setAttribute('data-numeric',value);
258
- td.setAttribute('data-value',td.textContent);
259
- td.setAttribute('data-start',start);
260
- });
286
+ let percent = ((tr.getAttribute('data-numeric') - min)/(max - min)) * 100;
287
+
288
+ tr.style.setProperty('--percent',`${percent}%`)
261
289
 
262
290
  // Set the data label value if not set
263
291
  Array.from(tr.querySelectorAll('td:not([data-label])')).forEach((td:any, index) => {
@@ -385,6 +413,8 @@ function createChartKeyItem(chartID:string,index:number,text:Array<string>,chart
385
413
  let input = document.createElement('input');
386
414
  input.setAttribute('name',`${chartID}-dataset-${index}`);
387
415
  input.setAttribute('id',`${chartID}-dataset-${index}`);
416
+ input.setAttribute('data-dataset',`${index}`);
417
+ input.setAttribute('data-label',`${text}`);
388
418
  input.checked = true;
389
419
  input.setAttribute('type',`checkbox`);
390
420
 
@@ -67,7 +67,7 @@ const Ra = /* @__PURE__ */ m(U, [["render", G]]), J = (t) => t.charAt(0).toUpper
67
67
  },
68
68
  created() {
69
69
  this.$nextTick(function() {
70
- import("./table.component.min-738ab176.mjs").then((t) => {
70
+ import("./table.component.min-9853d2c5.mjs").then((t) => {
71
71
  window.customElements.get("iam-table") || window.customElements.define("iam-table", t.default);
72
72
  }).catch((t) => {
73
73
  console.log(t.message);
@@ -453,7 +453,7 @@ const N = /* @__PURE__ */ m(ne, [["render", Se]]), xe = {
453
453
  },
454
454
  created() {
455
455
  this.$nextTick(function() {
456
- import("./fileupload.component.min-23ebc31b.mjs").then((t) => {
456
+ import("./fileupload.component.min-82035493.mjs").then((t) => {
457
457
  window.customElements.get("iam-fileupload") || window.customElements.define("iam-fileupload", t.default);
458
458
  }).catch((t) => {
459
459
  console.log(t.message);
@@ -483,7 +483,7 @@ const qe = {
483
483
  props: {},
484
484
  mounted() {
485
485
  this.$nextTick(function() {
486
- import("./accordion.component.min-1faad083.mjs").then((t) => {
486
+ import("./accordion.component.min-768b3be9.mjs").then((t) => {
487
487
  window.customElements.get("iam-accordion") || window.customElements.define("iam-accordion", t.default);
488
488
  }).catch((t) => {
489
489
  console.log(t.message);
@@ -592,7 +592,7 @@ const Va = /* @__PURE__ */ m(Ne, [["render", Fe]]), ze = {
592
592
  name: "Card",
593
593
  created() {
594
594
  this.$nextTick(function() {
595
- import("./card.component.min-e5219693.mjs").then((t) => {
595
+ import("./card.component.min-c4e53d1e.mjs").then((t) => {
596
596
  window.customElements.get("iam-card") || window.customElements.define("iam-card", t.default);
597
597
  }).catch((t) => {
598
598
  console.log(t.message);
@@ -623,7 +623,7 @@ const Fa = /* @__PURE__ */ m(ze, [["render", Be]]), Oe = {
623
623
  },
624
624
  mounted() {
625
625
  this.$nextTick(function() {
626
- import("./carousel.component.min-8da5a71d.mjs").then((t) => {
626
+ import("./carousel.component.min-a5083bec.mjs").then((t) => {
627
627
  window.customElements.get("iam-carousel") || window.customElements.define("iam-carousel", t.default);
628
628
  }).catch((t) => {
629
629
  console.log(t.message);
@@ -652,7 +652,7 @@ const za = /* @__PURE__ */ m(Oe, [["render", We]]), Ke = {
652
652
  },
653
653
  mounted() {
654
654
  this.$nextTick(function() {
655
- import("./header.component.min-f43e553c.mjs").then((t) => {
655
+ import("./header.component.min-2a524d9d.mjs").then((t) => {
656
656
  window.customElements.get("iam-header") || window.customElements.define("iam-header", t.default);
657
657
  }).catch((t) => {
658
658
  console.log(t.message);
@@ -1048,7 +1048,7 @@ const Wa = /* @__PURE__ */ m(_t, [["render", Ht]]), Mt = {
1048
1048
  name: "Nav",
1049
1049
  mounted() {
1050
1050
  this.$nextTick(function() {
1051
- import("./nav.component.min-1f47b3d5.mjs").then((t) => {
1051
+ import("./nav.component.min-35f8fe36.mjs").then((t) => {
1052
1052
  window.customElements.get("iam-nav") || window.customElements.define("iam-nav", t.default);
1053
1053
  }).catch((t) => {
1054
1054
  console.log(t.message);
@@ -1168,7 +1168,7 @@ const Zt = {
1168
1168
  name: "Tabs",
1169
1169
  created() {
1170
1170
  this.$nextTick(function() {
1171
- import("./tabs.component.min-20d3154f.mjs").then((t) => {
1171
+ import("./tabs.component.min-58743be6.mjs").then((t) => {
1172
1172
  window.customElements.get("iam-tabs") || window.customElements.define("iam-tabs", t.default);
1173
1173
  }).catch((t) => {
1174
1174
  console.log(t.message);
@@ -1315,7 +1315,7 @@ function ha(t, a, e, i, r, s) {
1315
1315
  }
1316
1316
  const es = /* @__PURE__ */ m(pa, [["render", ha]]);
1317
1317
  /*!
1318
- * iamKey v5.7.1-beta5
1318
+ * iamKey v5.7.1-beta6
1319
1319
  * Copyright 2022-2024 iamproperty
1320
1320
  */
1321
1321
  function fa(t, a) {
@@ -1485,7 +1485,7 @@ const as = /* @__PURE__ */ m(ka, [["render", Aa]]), La = {
1485
1485
  props: {},
1486
1486
  mounted() {
1487
1487
  this.$nextTick(function() {
1488
- import("./actionbar.component.min-0b43b51d.mjs").then((t) => {
1488
+ import("./actionbar.component.min-d141c9b1.mjs").then((t) => {
1489
1489
  window.customElements.get("iam-actionbar") || window.customElements.define("iam-actionbar", t.default);
1490
1490
  }).catch((t) => {
1491
1491
  console.log(t.message);
@@ -1500,7 +1500,7 @@ function Sa(t, a, e, i, r, s) {
1500
1500
  }
1501
1501
  const ss = /* @__PURE__ */ m(La, [["render", Sa]]);
1502
1502
  /*!
1503
- * iamKey v5.7.1-beta5
1503
+ * iamKey v5.7.1-beta6
1504
1504
  * Copyright 2022-2024 iamproperty
1505
1505
  */
1506
1506
  class R extends HTMLElement {