@penskemediacorp/larva-js 1.24.1 → 1.26.0

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 (36) hide show
  1. package/build/video-showcase.js +6 -6
  2. package/package.json +2 -2
  3. package/src/__tests__/fixtures/markup.js +1 -1
  4. package/src/__tests__/utils/removeDesktopXlClasses.test.js +6 -4
  5. package/src/interface/Collapsible/Collapsible.js +31 -17
  6. package/src/interface/Collapsible/index.js +6 -2
  7. package/src/interface/EmailCapture/EmailCapture.js +17 -13
  8. package/src/interface/EmailCapture/index.js +6 -3
  9. package/src/interface/ExpandableSearch/ExpandableSearch.js +21 -21
  10. package/src/interface/ExpandableSearch/index.js +4 -4
  11. package/src/interface/Flickity/index.js +16 -11
  12. package/src/interface/MegaMenu/MegaMenu.js +22 -13
  13. package/src/interface/MegaMenu/index.js +12 -10
  14. package/src/interface/MobileHeightToggle/MobileHeightToggle.js +5 -4
  15. package/src/interface/MobileHeightToggle/MobileHeightToggle.test.js +22 -21
  16. package/src/interface/MobileHeightToggle/index.js +9 -8
  17. package/src/interface/Navigable/Navigable.js +29 -18
  18. package/src/interface/Navigable/index.js +1 -1
  19. package/src/interface/PopOver/PopOver.js +15 -15
  20. package/src/interface/PopOver/index.js +4 -4
  21. package/src/interface/ProfileFilter/ProfileFilter.js +40 -35
  22. package/src/interface/ProfileFilter/__test__/ProfileFilter.test.js +38 -31
  23. package/src/interface/ProfileFilter/index.js +2 -2
  24. package/src/interface/SelectNav/SelectNav.js +8 -6
  25. package/src/interface/SelectNav/index.js +2 -3
  26. package/src/interface/SideSkinAd/SideSkinAd.js +0 -2
  27. package/src/interface/SideSkinAd/index.js +10 -10
  28. package/src/interface/TabsManager/TabsManager.js +11 -6
  29. package/src/interface/TabsManager/index.js +1 -1
  30. package/src/interface/Tooltip/Tooltip.js +0 -1
  31. package/src/interface/VideoShowcase/VideoShowcase.js +77 -49
  32. package/src/interface/VideoShowcase/index.js +6 -2
  33. package/src/utils/ajaxIconSprite.js +4 -4
  34. package/src/utils/dom.js +6 -3
  35. package/src/utils/removeDesktopXlClasses.js +5 -7
  36. package/src/utils/webfontConfig.js +26 -40
@@ -3,22 +3,22 @@
3
3
  * containing the responseText.
4
4
  *
5
5
  * @param {string} buildPath
6
+ * @param iconPath
6
7
  */
7
- export default function( iconPath ) {
8
-
8
+ export default function ( iconPath ) {
9
9
  const ajax = new XMLHttpRequest();
10
10
  const div = document.createElement( 'div' );
11
11
 
12
12
  ajax.open( 'GET', iconPath, true );
13
13
  ajax.send();
14
14
 
15
- ajax.onload = function() {
15
+ ajax.onload = function () {
16
16
  div.id = 'icon-sprite';
17
17
 
18
18
  // NOTE: Ignore WPCS WARNING for innerHTML, it's related to svg icon.
19
19
  // As this must be handled by innerHTML only.
20
20
  div.innerHTML = ajax.responseText; // @codingStandardsIgnoreLine
21
21
 
22
- document.body.insertBefore( div, document.body.childNodes[0] );
22
+ document.body.insertBefore( div, document.body.childNodes[ 0 ] );
23
23
  };
24
24
  }
package/src/utils/dom.js CHANGED
@@ -1,8 +1,11 @@
1
- export const matchesSelector = ( selector, el ) => el.matches && el.matches( selector );
1
+ export const matchesSelector = ( selector, el ) =>
2
+ el.matches && el.matches( selector );
2
3
 
3
4
  export const delegateEvent = ( parent, event, selector, callback ) => {
4
- parent.addEventListener( event, e => {
5
- const matchingNode = matchesSelector( selector, e.target ) ? e.target : e.target.closest( selector );
5
+ parent.addEventListener( event, ( e ) => {
6
+ const matchingNode = matchesSelector( selector, e.target )
7
+ ? e.target
8
+ : e.target.closest( selector );
6
9
 
7
10
  if ( matchingNode ) {
8
11
  callback( e, matchingNode );
@@ -15,24 +15,22 @@
15
15
  */
16
16
 
17
17
  export default function removeDesktopXlClasses() {
18
-
19
18
  // Get all elements with desktop-xl styling
20
- const desktopXlEls = [ ...document.querySelectorAll( '[class*="@desktop-xl"]' ) ];
19
+ const desktopXlEls = [
20
+ ...document.querySelectorAll( '[class*="@desktop-xl"]' ),
21
+ ];
21
22
 
22
23
  // For each of these elements
23
24
  // rebuild the className without the @desktop-xl classes
24
25
  desktopXlEls.forEach( ( el ) => {
25
-
26
- let classes = el.className.split( ' ' );
26
+ const classes = el.className.split( ' ' );
27
27
 
28
28
  el.className = '';
29
29
 
30
30
  classes.map( ( c ) => {
31
31
  if ( ! c.includes( '@desktop-xl' ) ) {
32
- el.className += ` ${c}`;
32
+ el.className += ` ${ c }`;
33
33
  }
34
34
  } );
35
-
36
35
  } );
37
-
38
36
  }
@@ -2,66 +2,52 @@
2
2
  // post launch task from GUT-67 is to pull the
3
3
  // IW related values into configuration
4
4
  const webFontConfig = {
5
-
6
5
  init: function init() {
7
-
8
- let fontCookie = pmc.cookie.get( 'iw_fonts_loaded' );
6
+ const fontCookie = pmc.cookie.get( 'iw_fonts_loaded' );
9
7
 
10
8
  if ( 'undefined' !== typeof fontCookie && fontCookie ) {
11
-
12
9
  this.load( 'directload' );
13
-
14
10
  } else {
15
-
16
11
  window.addEventListener( 'load', () => {
17
-
18
12
  this.load( 'load' );
19
-
20
13
  } );
21
14
  }
22
-
23
15
  },
24
16
 
25
17
  load: function load( type ) {
26
-
27
18
  const currentThemeUrl = this.getThemeUrl();
28
19
 
29
- let loadcount = this.loadcount++;
30
-
31
- WebFont.load(
32
- {
33
- google: {
34
- families: [
35
- 'PT Sans:400,700',
36
- 'Teko:300,400'
37
- ]
38
- },
39
- custom: {
40
- families: [
41
- 'Argent CF'
42
- ]
43
- },
44
-
45
- active: function webfontsLoaderActive() {
46
- try {
47
- if ( 'load' == type ) {
48
- pmc.cookie.set( 'iw_fonts_loaded', 1, 7 * 24 * 60 * 60 );
49
- }
50
- console.log( 'fonts loaded ' + type );
51
- } catch ( e ) {}
52
- }
53
- }
54
- );
20
+ const loadcount = this.loadcount++;
21
+
22
+ WebFont.load( {
23
+ google: {
24
+ families: [ 'PT Sans:400,700', 'Teko:300,400' ],
25
+ },
26
+ custom: {
27
+ families: [ 'Argent CF' ],
28
+ },
29
+
30
+ active: function webfontsLoaderActive() {
31
+ try {
32
+ if ( 'load' == type ) {
33
+ pmc.cookie.set(
34
+ 'iw_fonts_loaded',
35
+ 1,
36
+ 7 * 24 * 60 * 60
37
+ );
38
+ }
39
+ console.log( 'fonts loaded ' + type );
40
+ } catch ( e ) {}
41
+ },
42
+ } );
55
43
  },
56
44
 
57
45
  getThemeUrl: function getThemeUrl() {
58
-
59
46
  if ( 'undefined' === typeof pmc_common_urls ) {
60
47
  return '';
61
- } else {
62
- return pmc_common_urls.current_theme_uri;
63
48
  }
64
- }
49
+ return pmc_common_urls.current_theme_uri;
50
+ },
65
51
  };
66
52
 
67
53
  export default webFontConfig;