@iamproperty/components 7.7.1--beta4 → 7.7.1--beta5

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 (156) hide show
  1. package/assets/css/components/actionbar.component.css +1 -1
  2. package/assets/css/components/actionbar.component.css.map +1 -1
  3. package/assets/css/components/address-lookup.component.css +1 -1
  4. package/assets/css/components/address-lookup.component.css.map +1 -1
  5. package/assets/css/components/applied-filters.css +1 -1
  6. package/assets/css/components/applied-filters.css.map +1 -1
  7. package/assets/css/components/barchart.component.css +1 -1
  8. package/assets/css/components/barchart.component.css.map +1 -1
  9. package/assets/css/components/calendar.component.css +1 -1
  10. package/assets/css/components/calendar.component.css.map +1 -1
  11. package/assets/css/components/card.component.css +1 -1
  12. package/assets/css/components/card.component.css.map +1 -1
  13. package/assets/css/components/carousel.component.css +1 -1
  14. package/assets/css/components/carousel.component.css.map +1 -1
  15. package/assets/css/components/collapsible-side.css +1 -1
  16. package/assets/css/components/collapsible-side.css.map +1 -1
  17. package/assets/css/components/config.component.css +1 -1
  18. package/assets/css/components/config.component.css.map +1 -1
  19. package/assets/css/components/content.component.css +1 -1
  20. package/assets/css/components/content.component.css.map +1 -1
  21. package/assets/css/components/doughnutchart.component.css +1 -1
  22. package/assets/css/components/doughnutchart.component.css.map +1 -1
  23. package/assets/css/components/fileupload.css +1 -1
  24. package/assets/css/components/fileupload.css.map +1 -1
  25. package/assets/css/components/inline-edit.css +1 -1
  26. package/assets/css/components/inline-edit.css.map +1 -1
  27. package/assets/css/components/modal.component.css +1 -1
  28. package/assets/css/components/modal.component.css.map +1 -1
  29. package/assets/css/components/multi-step-modal.component.css +1 -1
  30. package/assets/css/components/multi-step-modal.component.css.map +1 -1
  31. package/assets/css/components/multiselect.css +1 -1
  32. package/assets/css/components/multiselect.css.map +1 -1
  33. package/assets/css/components/nav.component.css +1 -1
  34. package/assets/css/components/nav.component.css.map +1 -1
  35. package/assets/css/components/pagination.css +1 -1
  36. package/assets/css/components/pagination.css.map +1 -1
  37. package/assets/css/components/split-button.component.css +1 -1
  38. package/assets/css/components/split-button.component.css.map +1 -1
  39. package/assets/css/components/tabs.component.css +1 -1
  40. package/assets/css/components/tabs.component.css.map +1 -1
  41. package/assets/css/components/tabs.config.css +1 -1
  42. package/assets/css/components/tabs.config.css.map +1 -1
  43. package/assets/css/components/video-card.component.css +1 -1
  44. package/assets/css/components/video-card.component.css.map +1 -1
  45. package/assets/css/components/video-modal.component.css +1 -1
  46. package/assets/css/components/video-modal.component.css.map +1 -1
  47. package/assets/css/components/video.component.css +1 -0
  48. package/assets/css/components/video.component.css.map +1 -0
  49. package/assets/css/core.min.css +1 -1
  50. package/assets/css/core.min.css.map +1 -1
  51. package/assets/css/elements/badge-tag.css +1 -1
  52. package/assets/css/elements/badge-tag.css.map +1 -1
  53. package/assets/css/elements/buttons--action.css +1 -1
  54. package/assets/css/elements/buttons--action.css.map +1 -1
  55. package/assets/css/elements/buttons--global.css +1 -1
  56. package/assets/css/elements/buttons--global.css.map +1 -1
  57. package/assets/css/elements/buttons.css +1 -1
  58. package/assets/css/elements/buttons.css.map +1 -1
  59. package/assets/css/elements/links.css +1 -1
  60. package/assets/css/elements/links.css.map +1 -1
  61. package/assets/css/style.min.css +1 -1
  62. package/assets/css/style.min.css.map +1 -1
  63. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  64. package/assets/js/components/actionbar/actionbar.component.min.js +2 -2
  65. package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
  66. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  67. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  68. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  69. package/assets/js/components/barchart/barchart.component.min.js +6 -6
  70. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  71. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  72. package/assets/js/components/calendar/calendar.component.min.js +2 -2
  73. package/assets/js/components/card/card.component.min.js +2 -2
  74. package/assets/js/components/carousel/carousel.component.min.js +3 -3
  75. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  76. package/assets/js/components/config/config.component.min.js +2 -2
  77. package/assets/js/components/content/content.component.min.js +2 -2
  78. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  79. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +4 -4
  80. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  81. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  82. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  83. package/assets/js/components/form/form.component.min.js +1 -1
  84. package/assets/js/components/header/header.component.min.js +1 -1
  85. package/assets/js/components/inline-edit/inline-edit.component.min.js +4 -4
  86. package/assets/js/components/input/input.component.min.js +1 -1
  87. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  88. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  89. package/assets/js/components/menu/menu.component.min.js +1 -1
  90. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  91. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  92. package/assets/js/components/modal/modal.component.js +2 -2
  93. package/assets/js/components/modal/modal.component.min.js +4 -4
  94. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  95. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  96. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +2 -2
  97. package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
  98. package/assets/js/components/nav/nav.component.min.js +2 -2
  99. package/assets/js/components/notification/notification.component.min.js +1 -1
  100. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  101. package/assets/js/components/password/password.component.min.js +1 -1
  102. package/assets/js/components/popover/popover.component.min.js +1 -1
  103. package/assets/js/components/rank/rank.component.min.js +1 -1
  104. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  105. package/assets/js/components/rating/rating.component.min.js +1 -1
  106. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  107. package/assets/js/components/search/search.component.min.js +1 -1
  108. package/assets/js/components/slider/slider.component.min.js +1 -1
  109. package/assets/js/components/split-button/split-button.component.min.js +2 -2
  110. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +4 -4
  111. package/assets/js/components/table/table.component.min.js +1 -1
  112. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  113. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  114. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  115. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  116. package/assets/js/components/tabs/tabs.component.js +13 -0
  117. package/assets/js/components/tabs/tabs.component.min.js +4 -4
  118. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  119. package/assets/js/components/tag/tag.component.min.js +1 -1
  120. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  121. package/assets/js/components/video/video.component.js +67 -0
  122. package/assets/js/components/video/video.component.min.js +21 -0
  123. package/assets/js/components/video/video.component.min.js.map +1 -0
  124. package/assets/js/components/video-card/video-card.component.js +42 -59
  125. package/assets/js/components/video-card/video-card.component.min.js +15 -7
  126. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  127. package/assets/js/components/video-modal/video-modal.component.js +10 -44
  128. package/assets/js/components/video-modal/video-modal.component.min.js +12 -6
  129. package/assets/js/components/video-modal/video-modal.component.min.js.map +1 -1
  130. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  131. package/assets/js/modules/modal.js +4 -2
  132. package/assets/js/modules/videos.js +42 -0
  133. package/assets/js/scripts.bundle.js +1 -1
  134. package/assets/js/scripts.bundle.min.js +1 -1
  135. package/assets/sass/_components.scss +1 -1
  136. package/assets/sass/components/tabs.component.scss +25 -0
  137. package/assets/sass/components/tabs.config.scss +5 -1
  138. package/assets/sass/components/video-card.component.scss +36 -62
  139. package/assets/sass/components/video-modal.component.scss +6 -4
  140. package/assets/sass/components/video.component.scss +75 -0
  141. package/assets/sass/elements/badge-tag.css +1 -1
  142. package/assets/sass/elements/buttons--action.css +17 -0
  143. package/assets/sass/elements/buttons--global.scss +5 -1
  144. package/assets/sass/elements/links.scss +53 -31
  145. package/assets/sass/foundations/animations.scss +1 -1
  146. package/assets/ts/components/modal/modal.component.ts +2 -2
  147. package/assets/ts/components/tabs/tabs.component.ts +19 -0
  148. package/assets/ts/components/video/video.component.ts +74 -0
  149. package/assets/ts/components/video-card/video-card.component.ts +54 -75
  150. package/assets/ts/components/video-modal/video-modal.component.ts +10 -59
  151. package/assets/ts/modules/modal.ts +4 -2
  152. package/assets/ts/modules/videos.ts +57 -0
  153. package/dist/components.es.js +25 -25
  154. package/dist/components.umd.js +138 -108
  155. package/package.json +1 -1
  156. package/src/components/Video/Video.vue +22 -0
@@ -1,5 +1,5 @@
1
1
  import { trackComponent, trackComponentRegistered } from '../_global';
2
- import { loadYouTubeScripts, createYoutTubeVideo } from '../../modules/videos';
2
+ import { videoHTML, loadYouTubeScripts, createYoutTubeVideo,openYoutubeVideo,openVimeoVideo } from '../../modules/videos';
3
3
  import { openModal,closeModal,closeButtonHtml } from '../../modules/modal';
4
4
 
5
5
  trackComponentRegistered('iam-video-modal');
@@ -26,74 +26,22 @@ class iamVideoCard extends HTMLElement {
26
26
 
27
27
  <dialog>
28
28
  ${closeButtonHtml}
29
- <slot></slot>
29
+ ${videoHTML}
30
30
  </dialog>
31
31
  `;
32
32
 
33
33
  this.shadowRoot.appendChild(template.content.cloneNode(true));
34
34
  }
35
35
 
36
- openYoutubeVideo = async (id, component):void => {
37
-
38
- const embed = component.querySelector('.embed');
39
-
40
- openModal(id, component);
41
-
42
- const youtubeId = component.getAttribute('data-youtube');
43
- let loaded;
44
- if (!document.body.classList.contains('youtubeLoaded')) {
45
-
46
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
47
- loaded = await loadYouTubeScripts();
48
- }
49
-
50
- const customEvent = new CustomEvent('play-video', {
51
- detail: { 'Video Type': 'YoutTube', ID: youtubeId },
52
- });
53
- component.dispatchEvent(customEvent);
54
-
55
- const interval = setInterval(():void => {
56
-
57
- if(typeof YT != "undefined"){
58
- clearInterval(interval);
59
- createYoutTubeVideo(embed, youtubeId);
60
- }
61
- }, 200);
62
- // Limit the number of calls
63
- setTimeout(function() {
64
- clearInterval(interval)
65
- }, 2000);
66
-
67
- }
68
-
69
- openVimeoVideo = async (id, component):void => {
70
-
71
- const embed = component.querySelector('.embed');
72
-
73
- openModal(id, component);
74
-
75
- const vimeoId = component.getAttribute('data-vimeo');
76
-
77
- const customEvent = new CustomEvent('play-video', {
78
- detail: { 'Video Type': 'Vimeo', ID: vimeoId },
79
- });
80
- component.dispatchEvent(customEvent);
81
- window.dataLayer.push(customEvent.detail);
82
-
83
- if (!embed.querySelector('iframe'))
84
- embed.innerHTML = `<iframe src="https://player.vimeo.com/video/${vimeoId}?autoplay=1" width="100%" height="100%" frameborder="0" allow="autoplay; encrypted-media" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;
85
-
86
- }
87
-
88
36
  async connectedCallback(): void {
89
37
 
90
38
  const id = this.getAttribute('id');
91
39
  const closeButton = this.shadowRoot?.querySelector('[data-close]');
92
40
 
93
- this.innerHTML = `<div class="embed"></div>`
41
+ this.innerHTML = `<div class="embed" slot="video"></div>`;
94
42
  const embed = this.querySelector('.embed');
95
43
 
96
- document.addEventListener('click', async (e) => {
44
+ document.addEventListener('click', (e) => {
97
45
 
98
46
  if(e.target.closest(`[command="show-modal"][commandfor="${id}"]`)){
99
47
 
@@ -102,16 +50,19 @@ class iamVideoCard extends HTMLElement {
102
50
  if(this.hasAttribute('data-youtube')){
103
51
  const youtubeId = this.getAttribute('data-youtube');
104
52
  embed?.setAttribute('id',youtubeId);
105
- this.openYoutubeVideo(id, this);
53
+ openYoutubeVideo(this);
54
+ openModal(this);
106
55
  }
107
56
  else if(this.hasAttribute('data-vimeo')) {
108
- this.openVimeoVideo(id, this);
57
+ openVimeoVideo(this);
58
+ openModal(this);
109
59
  }
110
60
  }
111
61
  });
62
+
112
63
 
113
64
  closeButton?.addEventListener('click', () => {
114
- closeModal(id, this);
65
+ closeModal(this);
115
66
 
116
67
  if(this.hasAttribute('data-youtube')){
117
68
  const youtubeId = this.getAttribute('data-youtube');
@@ -1,6 +1,7 @@
1
- export const openModal = (id, modal): void => {
1
+ export const openModal = (modal): void => {
2
2
 
3
3
  const dialog = modal.shadowRoot?.querySelector('dialog');
4
+ const id = modal.hasAttribute('id') ? modal.getAttribute('id') : 'unknown';
4
5
 
5
6
  dialog?.showModal();
6
7
  dialog?.focus();
@@ -20,9 +21,10 @@ export const openModal = (id, modal): void => {
20
21
  });
21
22
  }
22
23
 
23
- export const closeModal = (id, modal): void => {
24
+ export const closeModal = (modal): void => {
24
25
 
25
26
  const dialog = modal.shadowRoot?.querySelector('dialog');
27
+ const id = modal.hasAttribute('id') ? modal.getAttribute('id') : 'unknown';
26
28
 
27
29
  dialog?.close();
28
30
 
@@ -101,6 +101,14 @@ const videoSupport = async (body): void => {
101
101
  });
102
102
  };
103
103
 
104
+ export const videoHTML = `<div class="video-wrapper">
105
+ <slot name="video"></slot>
106
+ <picture>
107
+ <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" lazy="" />
108
+ </picture>
109
+ <button class="btn btn-compact fa-play m-0 colour-success">Play</button>
110
+ </div>`;
111
+
104
112
  export const loadYouTubeScripts = async (): any => {
105
113
  return new Promise((resolve, reject) => {
106
114
  const image = new Image();
@@ -133,6 +141,9 @@ export const createYoutTubeVideo = async (target, video_id): void | boolean => {
133
141
  return false;
134
142
  }
135
143
 
144
+ console.log('hi2');
145
+
146
+
136
147
  // This function creates an <iframe> (and YouTube player) after the API code downloads.
137
148
  //function onYouTubeIframeAPIReady() {
138
149
 
@@ -173,4 +184,50 @@ export const createYoutTubeVideo = async (target, video_id): void | boolean => {
173
184
  }
174
185
  };
175
186
 
187
+ export const openYoutubeVideo = async (component):void => {
188
+
189
+ const embed = component.shadowRoot.querySelector('.embed');
190
+ const youtubeId = component.getAttribute('data-youtube');
191
+
192
+ let loaded;
193
+ if (!document.body.classList.contains('youtubeLoaded')) {
194
+
195
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
196
+ loaded = await loadYouTubeScripts();
197
+ }
198
+
199
+ const customEvent = new CustomEvent('play-video', {
200
+ detail: { 'Video Type': 'YoutTube', ID: youtubeId },
201
+ });
202
+ component.dispatchEvent(customEvent);
203
+
204
+ const interval = setInterval(():void => {
205
+
206
+ if(typeof YT != "undefined"){
207
+ clearInterval(interval);
208
+ createYoutTubeVideo(embed, youtubeId);
209
+ }
210
+ }, 200);
211
+ // Limit the number of calls
212
+ setTimeout(function() {
213
+ clearInterval(interval)
214
+ }, 2000);
215
+
216
+ }
217
+
218
+ export const openVimeoVideo = async (component):void => {
219
+
220
+ const embed = component.querySelector('.embed');
221
+ const vimeoId = component.getAttribute('data-vimeo');
222
+
223
+ const customEvent = new CustomEvent('play-video', {
224
+ detail: { 'Video Type': 'Vimeo', ID: vimeoId },
225
+ });
226
+ component.dispatchEvent(customEvent);
227
+ window.dataLayer.push(customEvent.detail);
228
+
229
+ if (!embed.querySelector('iframe'))
230
+ embed.innerHTML = `<iframe src="https://player.vimeo.com/video/${vimeoId}?autoplay=1" width="100%" height="100%" frameborder="0" allow="autoplay; encrypted-media" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;
231
+ }
232
+
176
233
  export default videoSupport;