@iamproperty/components 5.1.0-beta7 → 5.1.0-beta8

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 (91) hide show
  1. package/assets/css/components/accordion.global.css.map +1 -1
  2. package/assets/css/components/card.css +1 -1
  3. package/assets/css/components/card.css.map +1 -1
  4. package/assets/css/components/carousel.css +1 -1
  5. package/assets/css/components/carousel.css.map +1 -1
  6. package/assets/css/components/component.native.css +1 -1
  7. package/assets/css/components/component.native.css.map +1 -1
  8. package/assets/css/components/component.reset.css +1 -1
  9. package/assets/css/components/component.reset.css.map +1 -1
  10. package/assets/css/components/fileupload.css +1 -1
  11. package/assets/css/components/fileupload.css.map +1 -1
  12. package/assets/css/components/header.css +1 -1
  13. package/assets/css/components/header.css.map +1 -1
  14. package/assets/css/components/marketing.css +1 -0
  15. package/assets/css/components/marketing.css.map +1 -0
  16. package/assets/css/components/nav.css +1 -1
  17. package/assets/css/components/nav.css.map +1 -1
  18. package/assets/css/components/nav.global.css +1 -1
  19. package/assets/css/components/nav.global.css.map +1 -1
  20. package/assets/css/components/slider.css.map +1 -1
  21. package/assets/css/core.min.css +1 -1
  22. package/assets/css/core.min.css.map +1 -1
  23. package/assets/css/style.min.css +1 -1
  24. package/assets/css/style.min.css.map +1 -1
  25. package/assets/img/signin-bg.png +0 -0
  26. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  27. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  28. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  29. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  30. package/assets/js/components/card/card.component.js +2 -1
  31. package/assets/js/components/card/card.component.min.js +4 -3
  32. package/assets/js/components/card/card.component.min.js.map +1 -1
  33. package/assets/js/components/carousel/carousel.component.js +61 -0
  34. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  35. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  36. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  37. package/assets/js/components/header/header.component.js +6 -12
  38. package/assets/js/components/header/header.component.min.js +8 -14
  39. package/assets/js/components/header/header.component.min.js.map +1 -1
  40. package/assets/js/components/marketing/marketing.component.js +37 -0
  41. package/assets/js/components/nav/nav.component.min.js +3 -3
  42. package/assets/js/components/notification/notification.component.min.js +1 -1
  43. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  44. package/assets/js/components/search/search.component.min.js +1 -1
  45. package/assets/js/components/table/table.component.min.js +1 -1
  46. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  47. package/assets/js/dynamic.js +1 -1
  48. package/assets/js/dynamic.min.js +3 -3
  49. package/assets/js/dynamic.min.js.map +1 -1
  50. package/assets/js/modules/carousel.js +15 -23
  51. package/assets/js/scripts.bundle.js +11 -16
  52. package/assets/js/scripts.bundle.js.map +1 -1
  53. package/assets/js/scripts.bundle.min.js +2 -2
  54. package/assets/js/scripts.bundle.min.js.map +1 -1
  55. package/assets/sass/_corefiles.scss +1 -0
  56. package/assets/sass/_elements.scss +1 -1
  57. package/assets/sass/_functions/mixins.scss +16 -0
  58. package/assets/sass/_functions/utilities.scss +0 -17
  59. package/assets/sass/_functions/variables.scss +1 -0
  60. package/assets/sass/components/card.scss +23 -3
  61. package/assets/sass/components/carousel.scss +86 -159
  62. package/assets/sass/components/component.native.scss +86 -3
  63. package/assets/sass/components/fileupload.scss +1 -1
  64. package/assets/sass/components/header.scss +53 -55
  65. package/assets/sass/components/marketing.scss +64 -0
  66. package/assets/sass/components/nav.global.scss +1 -0
  67. package/assets/sass/components/nav.scss +7 -1
  68. package/assets/sass/elements/admin-panel.scss +9 -7
  69. package/assets/sass/elements/badge.scss +29 -0
  70. package/assets/sass/elements/forms.scss +3 -3
  71. package/assets/sass/elements/links.scss +2 -1
  72. package/assets/sass/foundations/reboot.scss +12 -13
  73. package/assets/sass/foundations/root.scss +11 -3
  74. package/assets/sass/helpers/max-height.scss +78 -4
  75. package/assets/sass/templates/auth.scss +112 -0
  76. package/assets/ts/components/card/card.component.ts +2 -1
  77. package/assets/ts/components/carousel/README.md +39 -0
  78. package/assets/ts/components/carousel/carousel.component.ts +75 -0
  79. package/assets/ts/components/header/header.component.ts +6 -12
  80. package/assets/ts/components/marketing/marketing.component.ts +49 -0
  81. package/assets/ts/dynamic.ts +1 -1
  82. package/assets/ts/modules/carousel.ts +21 -33
  83. package/dist/components.es.js +459 -663
  84. package/dist/components.umd.js +95 -83
  85. package/dist/style.css +1 -1
  86. package/package.json +1 -1
  87. package/src/components/Carousel/Carousel.vue +18 -103
  88. package/src/components/Header/Header.vue +1 -3
  89. package/src/components/Marketing/Marketing.vue +39 -0
  90. package/src/components/Marketing/README.md +20 -0
  91. package/src/components/Carousel/Carousel.spec.js +0 -45
@@ -0,0 +1,75 @@
1
+ // @ts-nocheck
2
+ import carousel from "../../modules/carousel";
3
+
4
+ // Data layer Web component created
5
+ window.dataLayer = window.dataLayer || [];
6
+ window.dataLayer.push({
7
+ "event": "customElementRegistered",
8
+ "element": "carousel"
9
+ });
10
+
11
+ class iamCarousel extends HTMLElement {
12
+
13
+ constructor(){
14
+ super();
15
+ this.attachShadow({ mode: 'open'});
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/carousel.css";`;
20
+
21
+ const template = document.createElement('template');
22
+ template.innerHTML = `
23
+ <style>
24
+ @import "${coreCSS}";
25
+ ${loadCSS}
26
+ ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
27
+ </style>
28
+ <div class="carousel" :id="'carousel'+id">
29
+ <div class="carousel__wrapper">
30
+ <div class="carousel__inner">
31
+
32
+ <slot></slot>
33
+ </div>
34
+
35
+ <div class="carousel__controls">
36
+
37
+ </div>
38
+
39
+ <button class="btn btn-prev" data-go="0" disabled>Prev</button>
40
+ <button class="btn btn-next" data-go="2">Next</button>
41
+
42
+ </div>
43
+ </div>
44
+ `;
45
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
46
+ }
47
+
48
+ connectedCallback() {
49
+
50
+ const carouselElement = this.shadowRoot.querySelector('.carousel');
51
+ const row = this.querySelector('.row');
52
+ const carouselControls = this.shadowRoot.querySelector('.carousel__controls');
53
+
54
+ let itemCount = this.querySelectorAll(':scope > .row > .col').length
55
+
56
+ carouselElement.setAttribute('data-row-class',row.className);
57
+
58
+ if(this.classList.contains('hide-btns'))
59
+ carouselElement.classList.add('hide-btns');
60
+
61
+ if(this.classList.contains('hide-controls'))
62
+ carouselElement.classList.add('hide-controls');
63
+
64
+ // populate the pips
65
+ let pips = "";
66
+ for (let i = 1; i <= itemCount; i++) {
67
+ pips += `<button class="control-${i}" data-slide="${i}" ${i == 1 ? "aria-current":""}>Slide ${i}</button>`;
68
+ }
69
+ carouselControls.innerHTML = pips;
70
+
71
+ carousel(carouselElement,row);
72
+ }
73
+ }
74
+
75
+ export default iamCarousel;
@@ -25,18 +25,12 @@ class iamHeader extends HTMLElement {
25
25
  ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
26
26
  </style>
27
27
  <div class="header-banner">
28
- <div class="container" part="container">
29
- <slot name="breadcrumb"></slot>
30
- <div class="header-banner__inner">
31
- <slot></slot>
32
- </div>
33
- </div>
34
28
  <picture>
35
- <!-- Actual image only loaded on desktops -->
36
- <source srcset="" media="(min-width: 62em)">
37
- <!-- Placeholder image -->
38
29
  <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" lazy="" />
39
30
  </picture>
31
+ <div class="container">
32
+ <slot></slot>
33
+ </div>
40
34
  </div>
41
35
  `;
42
36
  this.shadowRoot.appendChild(template.content.cloneNode(true));
@@ -44,13 +38,13 @@ class iamHeader extends HTMLElement {
44
38
 
45
39
  connectedCallback() {
46
40
 
47
- this.classList.add('loaded');
41
+ this.classList.add('bg-primary');
48
42
 
49
43
  const picture = this.shadowRoot.querySelector('picture');
50
- const source = this.shadowRoot.querySelector('picture source');
44
+ const source = this.shadowRoot.querySelector('picture img');
51
45
 
52
46
  if(this.hasAttribute('image'))
53
- source.setAttribute('srcset', this.getAttribute('image'));
47
+ source.setAttribute('src', this.getAttribute('image'));
54
48
  else
55
49
  picture.remove();
56
50
 
@@ -0,0 +1,49 @@
1
+ // @ts-nocheck
2
+
3
+ // Data layer Web component created
4
+ window.dataLayer = window.dataLayer || [];
5
+ window.dataLayer.push({
6
+ "event": "customElementRegistered",
7
+ "element": "Marketing"
8
+ });
9
+
10
+ class iamMarketing extends HTMLElement {
11
+
12
+ constructor(){
13
+ super();
14
+ this.attachShadow({ mode: 'open'});
15
+
16
+ const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets'
17
+ const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
18
+ const loadCSS = `@import "${assetLocation}/css/components/marketing.css";`;
19
+
20
+ const template = document.createElement('template');
21
+ template.innerHTML = `
22
+ <style>
23
+ @import "${coreCSS}";
24
+ ${loadCSS}
25
+
26
+ </style>
27
+ <link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous" />
28
+ <div class="marketing">
29
+
30
+ <slot></slot>
31
+ </div>
32
+ `;
33
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
34
+ }
35
+
36
+ connectedCallback() {
37
+
38
+ this.classList.add('invert-colours');
39
+
40
+ if(this.hasAttribute('data-img')){
41
+ this.shadowRoot.querySelector('.marketing').insertAdjacentHTML(
42
+ 'afterbegin',
43
+ `<figure><img src="${this.getAttribute('data-img')}" alt="" /></figure>`,
44
+ );
45
+ }
46
+ }
47
+ }
48
+
49
+ export default iamMarketing;
@@ -14,7 +14,7 @@ import youtubeVideo from '../js/modules/youtubevideo'
14
14
 
15
15
  import iamNotification from './components/notification/notification.component'
16
16
 
17
- const components = ['accordion','header','tabs', 'table','card','pagination','filterlist', 'applied-filters'];
17
+ const components = ['accordion','header','tabs', 'table','card','pagination','filterlist', 'applied-filters', 'nav', 'marketing'];
18
18
  const prefix = "iam"
19
19
  const options = {
20
20
  rootMargin: '50px',
@@ -1,33 +1,32 @@
1
1
  // @ts-nocheck
2
- function carousel(carouselElement) {
2
+ function carousel(carouselElement, row) {
3
3
 
4
4
  var scrollTimeout;
5
5
 
6
6
  let carouselInner = carouselElement.querySelector('.carousel__inner');
7
- let itemCount = carouselElement.querySelectorAll('.carousel__item').length;
8
- let cols = carouselElement.getAttribute('data-cols');
9
- let smCols = carouselElement.getAttribute('data-sm-cols');
10
- let mdCols = carouselElement.getAttribute('data-md-cols');
11
-
12
- carouselElement.querySelector('.carousel__controls a').setAttribute('aria-current', true);
7
+ let carouselControls = carouselElement.querySelector('.carousel__controls');
8
+ let itemCount = row.querySelectorAll('.col').length;
13
9
 
14
10
  // On scroll we need to make sure the buttons get corrected and the next testimonial is shown
15
11
  carouselInner.addEventListener('scroll', function(e){
16
12
  clearTimeout(scrollTimeout);
17
- scrollTimeout = setTimeout(function(){
13
+ scrollTimeout = setTimeout(function(){
18
14
 
19
15
  let scrollArea = carouselInner.clientWidth;
20
16
  let scrollWidth = carouselInner.scrollWidth;
21
17
  let scrollLeft = carouselInner.scrollLeft;
22
18
  let targetSlide = Math.round((scrollLeft / scrollWidth) * itemCount) + 1;
23
- let lastItemOffset = carouselElement.querySelector('.carousel__item:last-child').offsetLeft;
19
+ let lastItemOffset = row.querySelector('.col:last-child').offsetLeft + 50;
20
+
21
+ if(carouselInner.scrollLeft + scrollArea >= lastItemOffset)
22
+ targetSlide = itemCount;
24
23
 
25
- Array.from(carouselElement.querySelectorAll('.carousel__controls a')).forEach((link, index) => {
26
- link.removeAttribute('aria-current');
24
+ Array.from(carouselElement.querySelectorAll('.carousel__controls button')).forEach((button, index) => {
25
+ button.removeAttribute('aria-current');
27
26
  });
28
27
 
29
28
  carouselElement.querySelector('.control-'+targetSlide).setAttribute('aria-current', true);
30
-
29
+
31
30
  // Disable the previous button
32
31
  if(targetSlide == 1)
33
32
  carouselElement.querySelector('.btn-prev').setAttribute('disabled','disabled');
@@ -35,29 +34,29 @@ function carousel(carouselElement) {
35
34
  carouselElement.querySelector('.btn-prev').removeAttribute('disabled');
36
35
 
37
36
  // Disable the next button if the last item is in view
38
- if(carouselInner.scrollLeft + scrollArea > lastItemOffset)
37
+ if(targetSlide == itemCount)
39
38
  carouselElement.querySelector('.btn-next').setAttribute('disabled','disabled');
40
39
  else
41
40
  carouselElement.querySelector('.btn-next').removeAttribute('disabled');
42
-
41
+
43
42
  }, 100);
44
43
 
45
44
  }, false);
46
45
 
47
46
  // when the buttons are used we need to make sure the carousel scrolls to the correct place
48
- carouselElement.addEventListener('click', function(e){
47
+ carouselControls.addEventListener('click', function(e){
49
48
 
50
49
  for (var target = e.target; target && target != this; target = target.parentNode) {
51
- if (target.matches('.carousel__controls a')) {
50
+ if (typeof target.matches == "function" && target.matches('button')) {
52
51
 
53
52
  e.preventDefault();
54
53
 
55
- Array.from(carouselElement.querySelectorAll('.carousel__controls a')).forEach((link, index) => {
56
- link.removeAttribute('aria-current');
54
+ Array.from(carouselControls.querySelectorAll('button')).forEach((button, index) => {
55
+ button.removeAttribute('aria-current');
57
56
  });
58
57
  target.setAttribute('aria-current', true);
59
-
60
- const el = document.querySelector(target.getAttribute('href'));
58
+
59
+ const el = row.querySelector(`*:nth-child(${target.getAttribute('data-slide')})`);
61
60
 
62
61
  carouselInner.scroll({
63
62
  top: 0,
@@ -69,11 +68,11 @@ function carousel(carouselElement) {
69
68
  }
70
69
  }
71
70
  }, false);
72
-
71
+
73
72
  carouselElement.addEventListener('click', function(e){
74
73
 
75
74
  for (var target = e.target; target && target != this; target = target.parentNode) {
76
- if (target.matches('.btn-next, .btn-prev')) {
75
+ if (typeof target.matches == "function" && target.matches('.btn-next, .btn-prev')) {
77
76
 
78
77
  e.preventDefault();
79
78
  let scrollTo = target.classList.contains('btn-prev') ? carouselInner.scrollLeft - carouselInner.clientWidth : carouselInner.scrollLeft + carouselInner.clientWidth;
@@ -87,17 +86,6 @@ function carousel(carouselElement) {
87
86
  }
88
87
  }
89
88
  }, false);
90
-
91
-
92
- // Add responsive hide button classes
93
- if(itemCount == 1)
94
- carouselElement.classList.add('hide-btns');
95
-
96
- if(smCols >= itemCount)
97
- carouselElement.classList.add('hide-sm-btns');
98
-
99
- if(mdCols >= itemCount)
100
- carouselElement.classList.add('hide-md-btns');
101
89
  }
102
90
 
103
91
  export default carousel