@iamproperty/components 3.7.2 → 3.7.4

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 (75) hide show
  1. package/assets/css/components/card.css +1 -1
  2. package/assets/css/components/card.css.map +1 -1
  3. package/assets/css/components/dialog.css +1 -1
  4. package/assets/css/components/dialog.css.map +1 -1
  5. package/assets/css/components/pagination.css +1 -1
  6. package/assets/css/components/pagination.css.map +1 -1
  7. package/assets/css/components/table.css +1 -1
  8. package/assets/css/components/table.css.map +1 -1
  9. package/assets/css/components/tooltips.css +1 -1
  10. package/assets/css/components/tooltips.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.js +5 -5
  16. package/assets/js/components/accordion/accordion.component.min.js +6 -5
  17. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  18. package/assets/js/components/applied-filters/applied-filters.component.js +10 -3
  19. package/assets/js/components/applied-filters/applied-filters.component.min.js +14 -0
  20. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -0
  21. package/assets/js/components/card/card.component.js +11 -3
  22. package/assets/js/components/card/card.component.min.js +6 -6
  23. package/assets/js/components/card/card.component.min.js.map +1 -1
  24. package/assets/js/components/filterlist/filterlist.component.js +2 -1
  25. package/assets/js/components/filterlist/filterlist.component.min.js +4 -4
  26. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  27. package/assets/js/components/header/header.component.js +3 -5
  28. package/assets/js/components/header/header.component.min.js +4 -8
  29. package/assets/js/components/header/header.component.min.js.map +1 -1
  30. package/assets/js/components/pagination/pagination.component.js +4 -1
  31. package/assets/js/components/pagination/pagination.component.min.js +20 -0
  32. package/assets/js/components/pagination/pagination.component.min.js.map +1 -0
  33. package/assets/js/components/table/table.component.js +5 -1
  34. package/assets/js/components/table/table.component.min.js +14 -12
  35. package/assets/js/components/table/table.component.min.js.map +1 -1
  36. package/assets/js/components/tabs/tabs.component.js +2 -1
  37. package/assets/js/components/tabs/tabs.component.min.js +3 -3
  38. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  39. package/assets/js/dynamic.min.js +2 -2
  40. package/assets/js/dynamic.min.js.map +1 -1
  41. package/assets/js/modules/dialogs.js +8 -1
  42. package/assets/js/modules/table.js +19 -6
  43. package/assets/js/scripts.bundle.js +37 -37
  44. package/assets/js/scripts.bundle.js.map +1 -1
  45. package/assets/js/scripts.bundle.min.js +2 -2
  46. package/assets/js/scripts.bundle.min.js.map +1 -1
  47. package/assets/sass/_corefiles.scss +1 -0
  48. package/assets/sass/components/card.scss +2 -3
  49. package/assets/sass/components/dialog.scss +49 -4
  50. package/assets/sass/components/pagination.scss +2 -1
  51. package/assets/sass/components/table.scss +26 -12
  52. package/assets/sass/components/tooltips.scss +137 -49
  53. package/assets/sass/foundations/buttons.scss +1 -1
  54. package/assets/sass/foundations/reboot.scss +32 -2
  55. package/assets/ts/components/accordion/accordion.component.ts +6 -8
  56. package/assets/ts/components/applied-filters/applied-filters.component.ts +12 -3
  57. package/assets/ts/components/card/card.component.ts +16 -4
  58. package/assets/ts/components/filterlist/filterlist.component.ts +4 -2
  59. package/assets/ts/components/header/header.component.ts +4 -5
  60. package/assets/ts/components/pagination/pagination.component.ts +4 -1
  61. package/assets/ts/components/table/table.component.ts +5 -1
  62. package/assets/ts/components/tabs/tabs.component.ts +3 -1
  63. package/assets/ts/modules/dialogs.ts +11 -4
  64. package/assets/ts/modules/table.ts +25 -8
  65. package/dist/components.es.js +1179 -1148
  66. package/dist/components.umd.js +55 -36
  67. package/package.json +1 -1
  68. package/src/components/Accordion/Accordion.vue +1 -1
  69. package/src/components/AppliedFilters/AppliedFilters.vue +1 -1
  70. package/src/components/Filterlist/Filterlist.vue +1 -1
  71. package/src/components/Header/Header.vue +9 -5
  72. package/src/components/Pagination/Pagination.vue +1 -1
  73. package/src/components/Table/Table.vue +1 -1
  74. package/src/components/Tabs/Tabs.vue +1 -1
  75. package/src/components/Header/Header.spec.js +0 -34
@@ -21,6 +21,7 @@
21
21
  @use "components/dialog.scss";
22
22
 
23
23
  @use "components/pagination.scss";
24
+ @use "components/accordion.scss";
24
25
 
25
26
  // Bootstrap elements
26
27
  @import "../bootstrap/scss/_transitions.scss";
@@ -58,10 +58,9 @@
58
58
  }
59
59
 
60
60
  &:is(:hover,:focus,.hover) {
61
- --icon-right: 0.5rem;
61
+ --card-icon-right: 0.5rem;
62
62
  outline: 2px solid var(--colour, var(--colour-primary));
63
63
  outline-offset: -2px;
64
-
65
64
  }
66
65
 
67
66
  // Update arrow cololur
@@ -76,7 +75,7 @@
76
75
  }
77
76
 
78
77
  &:is(:active, .active){
79
- --icon-right: 0.5rem;
78
+ --card-icon-right: 0.5rem;
80
79
  outline: none;
81
80
 
82
81
  &:before {
@@ -428,9 +428,13 @@ dialog::backdrop {
428
428
 
429
429
  position: relative;
430
430
  display: inline-block;
431
+ margin-bottom: calc(var(--btn-margin) - 0.25rem);
431
432
 
432
433
 
433
434
  > .btn:first-child {
435
+
436
+ margin-bottom: 0.25rem;
437
+
434
438
  &:after {
435
439
  content: "";
436
440
 
@@ -471,14 +475,32 @@ dialog::backdrop {
471
475
  z-index: var(--index-floating);
472
476
  min-width: rem(320);
473
477
  border-radius: rem(16);
474
- max-width: rem(600);
478
+ width: rem(319);
479
+ padding: rem(24);
480
+
481
+ @include media-breakpoint-up(sm) {
482
+ width: rem(335);
483
+ }
484
+ @include media-breakpoint-up(md) {
485
+ width: rem(360);
486
+ }
475
487
  }
476
488
 
477
489
  &.dialog__wrapper--right > dialog[open]{
478
490
 
479
491
  right: 0;
480
492
  left: auto;
481
- }
493
+ }
494
+
495
+ &.dialog__wrapper--sm > dialog[open] {
496
+
497
+ width: rem(239);
498
+ }
499
+
500
+ &.dialog__wrapper--lg > dialog[open] {
501
+
502
+ width: rem(319);
503
+ }
482
504
 
483
505
  @include media-breakpoint-up(sm) {
484
506
 
@@ -491,7 +513,13 @@ dialog::backdrop {
491
513
 
492
514
  right: 0;
493
515
  left: auto;
494
- }
516
+ }
517
+ &.dialog__wrapper--sm > dialog[open] {
518
+ width: rem(265);
519
+ }
520
+ &.dialog__wrapper--lg > dialog[open] {
521
+ width: rem(452);
522
+ }
495
523
  }
496
524
 
497
525
  @include media-breakpoint-up(md) {
@@ -505,11 +533,28 @@ dialog::backdrop {
505
533
 
506
534
  right: 0;
507
535
  left: auto;
508
- }
536
+ }
537
+ &.dialog__wrapper--sm > dialog[open] {
538
+ width: rem(266);
539
+ }
540
+ &.dialog__wrapper--lg > dialog[open] {
541
+ width: rem(454);
542
+ }
509
543
  }
510
544
  }
511
545
 
512
546
  // Show hide the indidual or multiple label
547
+ .dialog__wrapper :is(.empty, .individual) {
548
+ display: none;
549
+ }
550
+
551
+ @supports selector(:has(*)) {
552
+
553
+ .dialog__wrapper :is(.empty, .individual) {
554
+ display: inline;
555
+ }
556
+ }
557
+
513
558
  .dialog__wrapper:has(input:checked) .empty,
514
559
  .dialog__wrapper:not(:has(input:checked)) .individual,
515
560
  .dialog__wrapper:has(input:checked ~ input:checked) .individual,
@@ -76,6 +76,7 @@
76
76
 
77
77
  .page-item {
78
78
  display: none;
79
+ overflow: visible;
79
80
  }
80
81
 
81
82
  .page-item:is(:first-child, :last-child, :nth-child(2), :nth-last-child(2)) {
@@ -122,7 +123,7 @@
122
123
 
123
124
  &:after {
124
125
  left: auto;
125
- right: calc(100% + #{rem(4)} + 2px);
126
+ right: calc(100% + #{rem(4)} + 1px);
126
127
  }
127
128
  }
128
129
 
@@ -100,7 +100,7 @@ tbody tr {
100
100
 
101
101
  th,td {
102
102
  background: var(--hover-background);
103
- color: var(--colour-primary-theme);
103
+ //color: var(--colour-primary-theme);
104
104
  --colour-link: var(--colour-primary-theme);
105
105
  --colour-hover: var(--colour-primary-theme);
106
106
  }
@@ -126,6 +126,7 @@ table.border-0 {
126
126
  box-shadow: 0px 6px 12px rgba(0,0,0,0.11);
127
127
  border-radius: rem(8);
128
128
  margin-bottom: rem(32);
129
+ overflow: hidden;
129
130
 
130
131
  &:before {
131
132
  display: none!important;
@@ -249,7 +250,7 @@ table.border-0 {
249
250
  top: 2.5rem;
250
251
  }
251
252
 
252
- tbody tr:first-child td:not(:first-child) {
253
+ tbody tr td:not(:first-child) {
253
254
  border-top: var(--border-width) solid currentColor!important;
254
255
  border-color: var(--colour-border)!important;
255
256
  }
@@ -334,7 +335,7 @@ table.border-0 {
334
335
  // #endregion
335
336
 
336
337
  // #region CTA column
337
- @include media-breakpoint-up(sm) {
338
+ @container (width > 23.4375em) {
338
339
 
339
340
  :is(iam-table) {
340
341
 
@@ -369,7 +370,7 @@ table.border-0 {
369
370
  top: auto;
370
371
  z-index: 3;
371
372
  background: transparent;
372
- width: calc(var(--cta-width) + 1.5rem);
373
+ width: calc(var(--cta-width) + 1rem);
373
374
  padding-left: rem(40);
374
375
  margin-left: rem(-40);
375
376
  min-height: var(--row-height);
@@ -388,6 +389,7 @@ table.border-0 {
388
389
 
389
390
  a {
390
391
  white-space: nowrap;
392
+ padding-right: 0.2rem;
391
393
  }
392
394
  }
393
395
 
@@ -508,12 +510,17 @@ table {
508
510
  [data-content="medium"],
509
511
  [data-content="high"],
510
512
  [data-content="unknown"],
513
+ [data-content="overdue"],
511
514
  [data-content="incomplete"],
512
515
  [data-content="requires approval"],
516
+ [data-content="approval required"],
517
+ [data-content="warning"],
513
518
  [data-content="verified"],
514
519
  [data-content="not started"],
520
+ [data-content="to do"],
515
521
  [data-content="completed"],
516
- .alert-status:not([data-content="0"])
522
+ [data-content="complete"],
523
+ .alert-status:not([data-content="0"]):not([data-content=""]):not(:empty)
517
524
  ) {
518
525
 
519
526
  position: relative;
@@ -564,31 +571,38 @@ table {
564
571
  color: var(--colour-muted);
565
572
  }
566
573
 
567
- :is([data-content="not started"],[data-content="incomplete"]):after {
574
+ :is([data-content="overdue"],[data-content="incomplete"]):after {
568
575
 
569
576
  content: "\f024";
570
577
  font-weight: light;
571
578
  color: var(--colour-danger);
572
579
  }
573
580
 
574
- [data-content="requires approval"]:after {
581
+ :is([data-content="not started"],[data-content="to do"]):after {
582
+
583
+ content: "\f024";
584
+ font-weight: light;
585
+ color: var(--colour-muted);
586
+ }
587
+
588
+ :is([data-content="requires approval"],[data-content="approval required"],[data-content="warning"]):after {
575
589
 
576
590
  content: "\f024";
577
591
  font-weight: light;
578
592
  color: var(--colour-warning);
579
593
  }
580
594
 
581
- :is([data-content="verified"],[data-content="completed"]):after {
595
+ :is([data-content="verified"],[data-content="completed"],[data-content="complete"]):after {
582
596
 
583
597
  content: "\f00c";
584
598
  font-weight: normal;
585
599
  color: var(--colour-complete);
586
600
  }
587
601
 
588
- .alert-status:not([data-content="0"]):not(:empty):after {
602
+ .alert-status:not([data-content="0"]):not([data-content=""]):not(:empty):after {
589
603
 
590
- content: "\f06a";
604
+ content: "\f0f3";
591
605
  font-weight: light;
592
- color: var(--colour-danger);
606
+ color: var(--colour-primary);
593
607
  }
594
- }
608
+ }
@@ -1,85 +1,173 @@
1
1
  @use "../_func.scss" as *;
2
2
 
3
- :is(abbr[title], .tooltip) {
4
3
 
5
- text-decoration: underline;
6
- text-underline-offset: 0.2em;
7
- text-decoration-thickness: 2px;
8
- text-decoration-style: dashed;
9
- text-decoration-color: var(--colour-underline);
10
- position: relative;
11
- cursor: help;
4
+ @mixin tooltip(){
12
5
 
13
- &:is(:hover, :focus, :active){
6
+ display: block;
7
+ z-index: var(--index-floating);
8
+ position: absolute;
9
+ top: calc(100% + 0.5rem);
10
+ left: auto;
11
+ right: 0.85em;
12
+ width: #{rem(270)};
13
+ transform: translate(50%,0);
14
+ background: var(--colour-primary);
15
+ color: var(--colour-white);
16
+ padding: rem(24);
17
+ border-radius: 0.5rem;
18
+ box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.11);
19
+
20
+ > strong:first-child {
21
+ display: block;
22
+ padding-bottom: 1rem;
23
+ }
14
24
 
15
- text-decoration: none;
25
+ @include media-breakpoint-up(sm) {
26
+
27
+ width: #{rem(335)};
16
28
  }
17
- }
29
+
30
+ @include media-breakpoint-up(md) {
18
31
 
19
- @mixin tooltip(){
32
+ width: #{rem(360)};
33
+ }
34
+
35
+ &::after {
36
+ content: "";
37
+ position: absolute;
38
+ bottom: 100%;
39
+ left: 50%;
40
+ margin-left: -0.25rem;
41
+ border-width: 0.5rem;
42
+ border-style: solid;
43
+ border-color: transparent transparent var(--colour-primary) transparent;
44
+ margin-bottom: -1px;
45
+ }
20
46
 
21
- display: block;
22
- z-index: var(--index-above);
23
- position: absolute;
24
- top: calc(100% + 0.25rem);
25
- left: 50%;
26
- min-width: max(120%, #{rem(100)});
27
- transform: translate(-50%,0);
28
- background: var(--colour-canvas-2);
29
- color: inherit;
30
- padding: 0.5em;
31
- border-radius: 3px;
32
- box-shadow: 1px 1px 3px 1px rgba(0,0,0,0.3);
33
47
  }
34
48
 
35
- .tooltip {
36
49
 
37
50
 
51
+ :is(abbr[title], .tooltip) {
52
+
53
+ text-decoration: none;
54
+ position: relative;
55
+
56
+ &:is(:hover, :focus, :active){
57
+
58
+ text-decoration: none;
59
+ }
60
+
38
61
  &:after{
39
62
 
40
- content: "";
63
+ font-family: "Font Awesome 6 Pro";
64
+ font-weight: 900;
65
+ content: "\f059";
41
66
  display: inline-block;
42
- margin-left: 0.1em;
67
+ margin-left: 0.2em;
68
+ margin-right: 0.1em;
43
69
  margin-bottom: 0.1em;
44
- width: 0.8em;
45
- height: 0.9em;
46
- vertical-align: text-bottom;
47
- background: currentColor;
48
- mask-image: var(--icon-question);
49
- mask-size: 100%;
50
- mask-repeat: no-repeat;
51
- mask-position: 50% 50%;
52
- -webkit-mask-image: var(--icon-question);
53
- -webkit-mask-size: 100%;
54
- -webkit-mask-repeat: no-repeat;
55
- -webkit-mask-position: 50% 50%;
70
+ color: var(--colour-primary);
71
+
56
72
  }
57
73
 
58
- .tooltip__content {
74
+ > span {
59
75
 
60
76
  opacity: 0;
61
77
  position: absolute;
62
78
 
63
79
  }
64
80
 
65
- &:is(:hover, :focus, :active){
81
+ &:is(:hover, .hover, :focus, :active){
66
82
 
67
- .tooltip__content {
83
+ > span {
68
84
 
69
85
  opacity: 1;
70
86
  @include tooltip();
71
87
  }
72
88
  }
73
- }
74
89
 
75
- @media (hover: none) {
90
+ &.tooltip--top span{
91
+
92
+ top: auto;
93
+ bottom: calc(100% + 0.5rem);
94
+ left: auto;
95
+ right: 0.85em;
96
+
97
+ &:after {
98
+
99
+ top: 100%;
100
+ bottom: auto;
101
+ left: 50%;
102
+ border-color: var(--colour-primary) transparent transparent transparent;
103
+ margin-top: -1px;
104
+ }
105
+ }
106
+
107
+
108
+ &.shift--left span{
109
+ transform: translate(calc(0% + 1.5rem), 0);
110
+
111
+ &:after {
112
+ left: calc(100% - 1.5rem);
113
+ }
114
+ }
115
+ &.shift--right span{
116
+ transform: translate(calc(100% - 1rem), 0);
117
+
118
+ &:after {
119
+ left: 1rem;
120
+ }
121
+ }
122
+
76
123
 
77
- :is(abbr[title], .tooltip[title]) {
124
+ @include media-breakpoint-up(sm) {
78
125
 
79
- &:is(:hover, :focus, :active):before{
126
+ &:is(.shift--left,.shift--right) span{
127
+ transform: translate(50%, 0);
128
+
129
+ &:after {
130
+ left: 50%
131
+ }
132
+ }
133
+
134
+ &.tooltip--left span{
80
135
 
81
- content: attr(title);
82
- @include tooltip();
136
+ top: 50%;
137
+ bottom: auto;
138
+ left: auto;
139
+ right: 1.6em;
140
+
141
+ transform: translate(0,-50%);
142
+
143
+ &:after {
144
+
145
+ top: calc(50% - 0.5em);
146
+ bottom: auto;
147
+ left: calc(100% + 0.25em - 1px);
148
+ border-color: transparent transparent transparent var(--colour-primary);
149
+ margin-bottom: 0;
150
+ }
151
+ }
152
+ &.tooltip--right span{
153
+
154
+ top: 50%;
155
+ bottom: auto;
156
+ left: calc(100% + 0.5rem);
157
+ right: auto;
158
+
159
+ transform: translate(0,-50%);
160
+
161
+ &:after {
162
+
163
+ top: calc(50% - 0.5em);
164
+ bottom: auto;
165
+ left: auto;
166
+ right: calc(100% - 1px);
167
+ border-color: transparent var(--colour-primary) transparent transparent;
168
+ margin-bottom: 0;
169
+ }
83
170
  }
171
+
84
172
  }
85
- }
173
+ }
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  display: inline-block;
24
- font-weight: bold;
24
+ font-weight: bold!important;
25
25
  text-align: left;
26
26
  text-decoration: none;
27
27
  vertical-align: middle;
@@ -1,3 +1,4 @@
1
+ @use "sass:math";
1
2
  @use "../_func" as *;
2
3
 
3
4
  @import "../../bootstrap/scss/_reboot.scss";
@@ -139,10 +140,39 @@ details {
139
140
  width: 100%;
140
141
  }
141
142
 
143
+
142
144
  // #region Undefined web components
145
+ :is(*):not(:defined) {
146
+ display: block;
147
+ padding: rem(24);
148
+ margin-bottom: rem(24);
149
+ border-radius: rem(8);
150
+ margin-left: auto;
151
+ margin-right: auto;
152
+ max-width: 80rem;
153
+ }
154
+
155
+ main > :is(*):not(:defined) {
156
+
157
+ padding: var(--container-padding);
158
+ padding-top: 1rem;
159
+ }
160
+
161
+ @include media-breakpoint-up(md) {
162
+
163
+ main > :is(*):not(:defined) {
164
+ max-width: 100%!important;
165
+ padding-inline: calc(50% - #{rem(math.div(1112,2))});
166
+ }
167
+
168
+ iam-header:not(:defined) {
169
+ min-height: rem(470);
170
+ }
171
+ }
172
+
143
173
  iam-card:not(:defined) {
144
- box-shadow: var(--card-border-radius);
174
+ box-shadow: var(--card-box-shadow);
145
175
  border-radius: var(--card-border-radius);
146
176
  padding: var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);
147
177
  }
148
- // #endregion
178
+ // #endregion
@@ -8,20 +8,21 @@ window.dataLayer.push({
8
8
  "element": "accordion"
9
9
  });
10
10
 
11
- const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets'
12
-
13
11
  class iamAccordion extends HTMLElement {
14
12
 
15
13
  constructor(){
16
14
  super();
17
15
  this.attachShadow({ mode: 'open'});
18
-
16
+
17
+ const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets'
18
+ const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
19
+ const loadCSS = `@import "${assetLocation}/css/components/accordion.css";`;
19
20
 
20
21
  const template = document.createElement('template');
21
22
  template.innerHTML = `
22
23
  <style>
23
- @import "${assetLocation}/css/core.min.css";
24
- @import "${assetLocation}/css/components/accordion.css";
24
+ @import "${coreCSS}";
25
+ ${loadCSS}
25
26
  ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
26
27
  </style>
27
28
  <div class="accordion">
@@ -34,9 +35,6 @@ class iamAccordion extends HTMLElement {
34
35
  connectedCallback() {
35
36
 
36
37
  accordion(this);
37
-
38
- // Load in the component CSS into the root so we can style the content of the component
39
- this.insertAdjacentHTML("beforebegin", `<link rel="stylesheet" href="${assetLocation}/css/components/accordion.css">`)
40
38
  }
41
39
  }
42
40
 
@@ -1,20 +1,29 @@
1
1
  // @ts-nocheck
2
2
  import createAppliedFilters from "../../modules/applied-filters";
3
3
 
4
- const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets'
5
- const loadCSS = `@import "${assetLocation}/css/components/applied-filters.css";`;
4
+ // Data layer Web component created
5
+ window.dataLayer = window.dataLayer || [];
6
+ window.dataLayer.push({
7
+ "event": "customElementRegistered",
8
+ "element": "Applied Filters"
9
+ });
10
+
6
11
 
7
12
  class iamAppliedFilters extends HTMLElement {
8
13
 
9
14
  constructor(){
10
15
  super();
11
16
  this.attachShadow({ mode: 'open'});
17
+
18
+ const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets'
19
+ const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
20
+ const loadCSS = `@import "${assetLocation}/css/components/applied-filters.css";`;
12
21
 
13
22
  let classList = this.classList.toString();
14
23
  const template = document.createElement('template');
15
24
  template.innerHTML = `
16
25
  <style>
17
- @import "${assetLocation}/css/core.min.css";
26
+ @import "${coreCSS}";
18
27
  ${loadCSS}
19
28
  ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
20
29
  </style>
@@ -1,22 +1,32 @@
1
1
  // @ts-nocheck
2
+
3
+ // Data layer Web component created
4
+ window.dataLayer = window.dataLayer || [];
5
+ window.dataLayer.push({
6
+ "event": "customElementRegistered",
7
+ "element": "Card"
8
+ });
9
+
10
+
2
11
  class iamCard extends HTMLElement {
3
12
 
4
13
  constructor(){
5
14
  super();
6
15
  this.attachShadow({ mode: 'open'});
7
16
 
8
- const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
9
- const loadCSS = `@import "${assetLocation}/css/components/card.css";`;
10
-
11
17
  if(this.querySelector('[class*="fa-"]'))
12
18
  this.classList.add('card--has-icon');
13
19
 
14
20
  let classList = this.classList.toString();
21
+
22
+ const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets'
23
+ const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
24
+ const loadCSS = `@import "${assetLocation}/css/components/card.css";`;
15
25
 
16
26
  const template = document.createElement('template');
17
27
  template.innerHTML = `
18
28
  <style>
19
- @import "${assetLocation}/css/core.min.css";
29
+ @import "${coreCSS}";
20
30
  ${loadCSS}
21
31
  ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
22
32
  </style>
@@ -35,6 +45,8 @@ class iamCard extends HTMLElement {
35
45
 
36
46
  connectedCallback() {
37
47
 
48
+ this.classList.add('loaded');
49
+
38
50
  // Mimic clicking the parent node so the focus and target events can be on the card
39
51
  const parentNode = this.parentNode.closest('a, button, label')
40
52
  const card = this.shadowRoot.querySelector('.card')
@@ -14,11 +14,13 @@ class iamFilterlist extends HTMLElement {
14
14
  super();
15
15
  this.attachShadow({ mode: 'open'});
16
16
 
17
- const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
17
+ const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets'
18
+ const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
19
+
18
20
  const template = document.createElement('template');
19
21
  template.innerHTML = `
20
22
  <style>
21
- @import "${assetLocation}/css/core.min.css";
23
+ @import "${coreCSS}";
22
24
  ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
23
25
 
24
26
  :host {