@caweb/framework 1.9.13 → 1.9.15

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 (78) hide show
  1. package/build/delta.asset.php +1 -1
  2. package/build/delta.js +23 -27
  3. package/build/delta.js.map +1 -1
  4. package/build/delta.min.asset.php +1 -1
  5. package/build/delta.min.js +1 -1
  6. package/build/delta.min.js.map +1 -1
  7. package/build/eureka.asset.php +1 -1
  8. package/build/eureka.js +23 -27
  9. package/build/eureka.js.map +1 -1
  10. package/build/eureka.min.asset.php +1 -1
  11. package/build/eureka.min.js +1 -1
  12. package/build/eureka.min.js.map +1 -1
  13. package/build/mono.asset.php +1 -1
  14. package/build/mono.js +23 -27
  15. package/build/mono.js.map +1 -1
  16. package/build/mono.min.asset.php +1 -1
  17. package/build/mono.min.js +1 -1
  18. package/build/mono.min.js.map +1 -1
  19. package/build/oceanside.asset.php +1 -1
  20. package/build/oceanside.js +23 -27
  21. package/build/oceanside.js.map +1 -1
  22. package/build/oceanside.min.asset.php +1 -1
  23. package/build/oceanside.min.js +1 -1
  24. package/build/oceanside.min.js.map +1 -1
  25. package/build/orangecounty.asset.php +1 -1
  26. package/build/orangecounty.js +23 -27
  27. package/build/orangecounty.js.map +1 -1
  28. package/build/orangecounty.min.asset.php +1 -1
  29. package/build/orangecounty.min.js +1 -1
  30. package/build/orangecounty.min.js.map +1 -1
  31. package/build/pasorobles.asset.php +1 -1
  32. package/build/pasorobles.js +23 -27
  33. package/build/pasorobles.js.map +1 -1
  34. package/build/pasorobles.min.asset.php +1 -1
  35. package/build/pasorobles.min.js +1 -1
  36. package/build/pasorobles.min.js.map +1 -1
  37. package/build/sacramento.asset.php +1 -1
  38. package/build/sacramento.js +23 -27
  39. package/build/sacramento.js.map +1 -1
  40. package/build/sacramento.min.asset.php +1 -1
  41. package/build/sacramento.min.js +1 -1
  42. package/build/sacramento.min.js.map +1 -1
  43. package/build/santabarbara.asset.php +1 -1
  44. package/build/santabarbara.js +23 -27
  45. package/build/santabarbara.js.map +1 -1
  46. package/build/santabarbara.min.asset.php +1 -1
  47. package/build/santabarbara.min.js +1 -1
  48. package/build/santabarbara.min.js.map +1 -1
  49. package/build/santacruz.asset.php +1 -1
  50. package/build/santacruz.js +23 -27
  51. package/build/santacruz.js.map +1 -1
  52. package/build/santacruz.min.asset.php +1 -1
  53. package/build/santacruz.min.js +1 -1
  54. package/build/santacruz.min.js.map +1 -1
  55. package/build/shasta.asset.php +1 -1
  56. package/build/shasta.js +23 -27
  57. package/build/shasta.js.map +1 -1
  58. package/build/shasta.min.asset.php +1 -1
  59. package/build/shasta.min.js +1 -1
  60. package/build/shasta.min.js.map +1 -1
  61. package/build/sierra.asset.php +1 -1
  62. package/build/sierra.js +23 -27
  63. package/build/sierra.js.map +1 -1
  64. package/build/sierra.min.asset.php +1 -1
  65. package/build/sierra.min.js +1 -1
  66. package/build/sierra.min.js.map +1 -1
  67. package/build/trinity.asset.php +1 -1
  68. package/build/trinity.js +23 -27
  69. package/build/trinity.js.map +1 -1
  70. package/build/trinity.min.asset.php +1 -1
  71. package/build/trinity.min.js +1 -1
  72. package/build/trinity.min.js.map +1 -1
  73. package/package.json +1 -1
  74. package/src/scripts/components/dark-mode.js +1 -1
  75. package/src/scripts/components/external-link.js +2 -2
  76. package/src/scripts/components/header.js +25 -26
  77. package/src/scripts/components/mobile-controls.js +1 -1
  78. package/src/scripts/components/return-top.js +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caweb/framework",
3
- "version": "1.9.13",
3
+ "version": "1.9.15",
4
4
  "description": "Official CAWebPublishing Framework frontend toolkit",
5
5
  "author": "CAWebPublishing",
6
6
  "homepage": "https://github.com/CAWebPublishing/framework#readme",
@@ -1,4 +1,4 @@
1
- document.addEventListener( 'DOMContentLoaded', () => {
1
+ document.addEventListener( 'load', () => {
2
2
  // Set is-dark-mode class if user has requested dark mode.
3
3
  if ( window.matchMedia( '(prefers-color-scheme: dark)' ).matches ){
4
4
  document.documentElement.setAttribute('data-bs-theme', 'dark');
@@ -1,7 +1,7 @@
1
- //@ts-check
1
+
2
2
 
3
3
  /* EXTERNAL LINK ICON */
4
- window.addEventListener('DOMContentLoaded', () => {
4
+ window.addEventListener('load', () => {
5
5
  const ext = '<span class="ca-gov-icon-external-link" aria-hidden="true"></span><span class="sr-only">opens in a new window</span>';
6
6
 
7
7
  // Add any exceptions to not render here
@@ -1,14 +1,17 @@
1
- //@ts-check
2
- window.addEventListener('DOMContentLoaded', () => {
1
+
2
+ window.addEventListener('load', () => {
3
3
  let location_hash = window.location.hash.replace(/(\|)/g, "\\$1");
4
4
 
5
5
  const header = document.querySelector('header') ;
6
6
  const pageContainer = document.querySelector('#page-container');
7
7
 
8
+ const alerts = header?.querySelector('.alerts');
9
+ const utilityHeader = header?.querySelector('.utility-header');
10
+
8
11
  // array of elements that are compacted
9
12
  const compactedElements = [
10
- document.querySelector('.alerts'),
11
- document.querySelector('.utility-header'),
13
+ alerts,
14
+ utilityHeader,
12
15
  ].filter(Boolean);
13
16
 
14
17
  const getCompactedElementsHeight = () => {
@@ -21,21 +24,24 @@ window.addEventListener('DOMContentLoaded', () => {
21
24
 
22
25
  }, 0);
23
26
  }
24
-
27
+
25
28
  let compactedElementsHeight = getCompactedElementsHeight();
26
29
 
27
- // lets collect the height of any fixed elements above the header.
28
- let topOffset = 0;
29
- let current = header?.previousElementSibling;
30
-
31
- while( current ){
32
- // if current element has a fixed position, add its height to the topOffset.
33
- if( current instanceof HTMLElement && window.getComputedStyle(current).position === 'fixed' ){
34
- topOffset += current.clientHeight ;
35
- }
36
- current = current.previousElementSibling;
30
+ // resize observer function to watch if compacted elements change height, so we can update the compacted elements height when they change.
31
+ const clientHeightObserver = (entries) => {
32
+ for(const entry of entries) {
33
+ // update the compacted elements height when the compacted entry changes., which can happen when google translate loads and changes the height of the utility header or when items wrap
34
+ compactedElementsHeight = getCompactedElementsHeight();
37
35
  }
38
-
36
+ }
37
+
38
+ // observe compacted elements for height changes, so we can update the compacted elements height when they change.
39
+ compactedElements.forEach((element) => {
40
+ if( element instanceof HTMLElement ){
41
+ const observer = new ResizeObserver(clientHeightObserver);
42
+ observer.observe(element);
43
+ }
44
+ });
39
45
 
40
46
  // scroll to target
41
47
  if( location_hash ){
@@ -53,7 +59,6 @@ window.addEventListener('DOMContentLoaded', () => {
53
59
  if (!header) {
54
60
  return;
55
61
  }
56
-
57
62
 
58
63
  const compactHeader = () => {
59
64
  // downscroll code passed the header height
@@ -61,20 +66,15 @@ window.addEventListener('DOMContentLoaded', () => {
61
66
  document.documentElement.scrollTop >= header.offsetHeight
62
67
  ) {
63
68
  // move the header up to hide the compacted elements height, minus the top offset.
64
- header.style.top = `-${(compactedElementsHeight - topOffset)}px`;
69
+ header.style.top = `-${(compactedElementsHeight)}px`;
65
70
 
66
71
  } else {
67
72
  // reset header to initial position
68
73
  // we need to set the header's top to the offset.
69
74
  if( header ){
70
- header.style.top = `${topOffset}px`;
75
+ header.style.top = 0;
71
76
  }
72
77
 
73
- // if we have a page container, we need to set its top padding to the offset
74
- if( pageContainer && pageContainer instanceof HTMLElement ){
75
- // pageContainer.style.paddingTop = `${topOffset}px`;
76
- }
77
-
78
78
  }
79
79
 
80
80
  };
@@ -89,9 +89,8 @@ window.addEventListener('DOMContentLoaded', () => {
89
89
 
90
90
  // for each element with an id we add the scroll-margin-top
91
91
  const updateScrollMarginTop = (/** @type Element */ element) => {
92
+
92
93
  if( element instanceof HTMLElement ){
93
- let scrollMarginHeight = header.clientHeight + topOffset;
94
-
95
94
  // if the elements offsetTop is greater than twice the header size,
96
95
  // we can assume the header is compacted
97
96
  // so we need to subtract the compacted elements height from the scroll margin.
@@ -1,5 +1,5 @@
1
1
 
2
- window.addEventListener('DOMContentLoaded', () => {
2
+ window.addEventListener('load', () => {
3
3
  const isDesktopWidth = () => window.innerWidth > 992; //Maximum px for mobile width
4
4
 
5
5
  const mainHeader = document.querySelector('header');
@@ -1,5 +1,5 @@
1
- //@ts-check
2
- window.addEventListener('DOMContentLoaded', () => {
1
+
2
+ window.addEventListener('load', () => {
3
3
  document.querySelectorAll('.return-top').forEach(returnTop =>
4
4
  returnTop.addEventListener('click', () => {
5
5
  document.body.scrollTop = 0; // For Safari