@blateral/b.kit 2.5.4 → 2.7.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 (38) hide show
  1. package/cjs/TableBlock-f2c59d9b.js +2 -0
  2. package/cjs/TableBlock-f2c59d9b.js.map +1 -0
  3. package/cjs/{VideoBlock-a7d6ff7d.js → VideoBlock-dea7de8a.js} +2 -2
  4. package/cjs/{VideoBlock-a7d6ff7d.js.map → VideoBlock-dea7de8a.js.map} +1 -1
  5. package/cjs/blocks.js +1 -1
  6. package/cjs/hooks.js +1 -1
  7. package/cjs/hooks.js.map +1 -1
  8. package/cjs/sections.js +1 -1
  9. package/cjs/sections.js.map +1 -1
  10. package/cjs/sections.news.js +1 -1
  11. package/cjs/sections.news.js.map +1 -1
  12. package/esm/{TableBlock-cc49e089.js → TableBlock-67fe2385.js} +186 -14
  13. package/esm/TableBlock-67fe2385.js.map +1 -0
  14. package/esm/{VideoBlock-5fe94711.js → VideoBlock-b227ae6e.js} +2 -2
  15. package/esm/{VideoBlock-5fe94711.js.map → VideoBlock-b227ae6e.js.map} +1 -1
  16. package/esm/blocks.js +2 -2
  17. package/esm/hooks.js +1 -1
  18. package/esm/hooks.js.map +1 -1
  19. package/esm/sections.js +76 -53
  20. package/esm/sections.js.map +1 -1
  21. package/esm/sections.news.js +19 -15
  22. package/esm/sections.news.js.map +1 -1
  23. package/package.json +1 -1
  24. package/types/components/base/icons/ButtonLeft.d.ts +9 -0
  25. package/types/components/base/icons/ButtonLeft.d.ts.map +1 -0
  26. package/types/components/base/icons/ButtonRight.d.ts +9 -0
  27. package/types/components/base/icons/ButtonRight.d.ts.map +1 -0
  28. package/types/components/blocks/TableBlock.d.ts +2 -2
  29. package/types/components/blocks/TableBlock.d.ts.map +1 -1
  30. package/types/components/sections/HtmlCode.d.ts +21 -0
  31. package/types/components/sections/HtmlCode.d.ts.map +1 -0
  32. package/types/components/sections/Table.d.ts.map +1 -1
  33. package/types/components/sections/news/NewsTable.d.ts.map +1 -1
  34. package/types/sections.d.ts +1 -0
  35. package/types/sections.d.ts.map +1 -1
  36. package/cjs/TableBlock-007f8e34.js +0 -2
  37. package/cjs/TableBlock-007f8e34.js.map +0 -1
  38. package/esm/TableBlock-cc49e089.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("./ClockFilled-2483aa4a.js"),n=require("react"),t=require("styled-components"),i=require("./Copy-ea6ab025.js"),l=require("./styles-3a495a2d.js"),o=require("./LibThemeProvider-4823de57.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function r(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var s,c,d,p,u,f,m,g,b,h,v,x,w,y,k,_=a(n),T=r(n),C=a(t),E=C.default.div.withConfig({displayName:"Title__View",componentId:"sc-1pyc768-0"})(s||(s=e.__makeTemplateObject(["\n display: block;\n text-align: ",";\n margin: ",";\n\n & > * + * {\n margin-top: ","px;\n }\n"],["\n display: block;\n text-align: ",";\n margin: ",";\n\n & > * + * {\n margin-top: ","px;\n }\n"])),(function(e){return e.isCentered?"center":"left"}),(function(e){return e.isCentered&&"0 auto"}),2*l.spacings.nudge),j=C.default(i.Heading).withConfig({displayName:"Title__SuperTitle",componentId:"sc-1pyc768-1"})(c||(c=e.__makeTemplateObject(["\n display: block;\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: -webkit-box;\n -webkit-line-clamp: 2; /* number of lines to show */\n line-clamp: 2;\n -webkit-box-orient: vertical;\n"],["\n display: block;\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: -webkit-box;\n -webkit-line-clamp: 2; /* number of lines to show */\n line-clamp: 2;\n -webkit-box-orient: vertical;\n"]))),B=C.default(i.Heading).withConfig({displayName:"Title__MainTitle",componentId:"sc-1pyc768-2"})(p||(p=e.__makeTemplateObject(["\n display: block;\n\n ","\n"],["\n display: block;\n\n ","\n"])),(function(n){var i=n.maxLines;return i&&i>0&&t.css(d||(d=e.__makeTemplateObject(["\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: ","; /* number of lines to show */\n line-clamp: ",";\n -webkit-box-orient: vertical;\n "],["\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: ","; /* number of lines to show */\n line-clamp: ",";\n -webkit-box-orient: vertical;\n "])),i,i)})),I=C.default.svg.withConfig({displayName:"ButtonLeft__SVG",componentId:"sc-1k7dd0m-0"})(u||(u=e.__makeTemplateObject(["\n display: block;\n"],["\n display: block;\n"]))),O=function(e){var n=e.id,t=e.className,i=e.ariaHidden,l=void 0===i||i;return T.createElement(I,{width:"48",height:"48",viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:t,"aria-hidden":l},T.createElement("circle",{cx:"24",cy:"24",r:"24",transform:"rotate(-180 24 24)",fill:"#000",fillOpacity:".4"}),T.createElement("g",{clipPath:"url(#button-left-path-".concat(n,")")},T.createElement("path",{d:"m29.51 15.87-1.77-1.77-9.9 9.9 9.9 9.9 1.77-1.77L21.38 24l8.13-8.13Z",fill:"#fff"})),T.createElement("defs",null,T.createElement("clipPath",{id:"button-left-path-".concat(n)},T.createElement("path",{fill:"#fff",d:"M36 36H12V12h24z"}))))},N=C.default.svg.withConfig({displayName:"ButtonRight__SVG",componentId:"sc-ibg8un-0"})(f||(f=e.__makeTemplateObject(["\n display: block;\n"],["\n display: block;\n"]))),L=function(e){var n=e.id,t=e.className,i=e.ariaHidden,l=void 0===i||i;return T.createElement(N,{width:"48",height:"48",viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:t,"aria-hidden":l},T.createElement("circle",{cx:"24",cy:"24",r:"24",fill:"#000",fillOpacity:".4"}),T.createElement("g",{clipPath:"url(#button-right-path-".concat(n,")")},T.createElement("path",{d:"m18.49 32.13 1.77 1.77 9.9-9.9-9.9-9.9-1.77 1.77L26.62 24l-8.13 8.13Z",fill:"#fff"})),T.createElement("defs",null,T.createElement("clipPath",{id:"button-right-path-".concat(n)},T.createElement("path",{fill:"#fff",d:"M12 12h24v24H12z"}))))},z=C.default.div.withConfig({displayName:"TableBlock__View",componentId:"sc-1n2im8m-0"})(m||(m=e.__makeTemplateObject(["\n display: grid;\n position: relative;\n\n &:focus {\n outline: 1px dashed ",";\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n"],["\n display: grid;\n position: relative;\n\n &:focus {\n outline: 1px dashed ",";\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n"])),(function(e){var n=e.theme;return l.getColors(n).primary.default})),H=C.default(i.Copy).withConfig({displayName:"TableBlock__Caption",componentId:"sc-1n2im8m-1"})(g||(g=e.__makeTemplateObject(["\n margin-bottom: ","px;\n padding: 0 ","px;\n text-align: left;\n"],["\n margin-bottom: ","px;\n padding: 0 ","px;\n text-align: left;\n"])),l.spacings.nudge,2*l.spacings.nudge),V=C.default.div.withConfig({displayName:"TableBlock__TableContainer",componentId:"sc-1n2im8m-2"})(b||(b=e.__makeTemplateObject(["\n position: relative;\n overflow-x: scroll;\n overflow-y: hidden;\n white-space: nowrap;\n\n grid-column: 1;\n grid-row: 1;\n\n &:focus {\n outline: none;\n border: 1px solid ",";\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n border: none;\n }\n\n &::-webkit-scrollbar {\n display: none;\n scrollbar-width: none;\n }\n"],["\n position: relative;\n overflow-x: scroll;\n overflow-y: hidden;\n white-space: nowrap;\n\n grid-column: 1;\n grid-row: 1;\n\n &:focus {\n outline: none;\n border: 1px solid ",";\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n border: none;\n }\n\n &::-webkit-scrollbar {\n display: none;\n scrollbar-width: none;\n }\n"])),(function(e){var n=e.theme;return l.getColors(n).primary.default})),M=C.default.table.withConfig({displayName:"TableBlock__TableBody",componentId:"sc-1n2im8m-3"})(h||(h=e.__makeTemplateObject(["\n width: 100%;\n max-width: 100%;\n\n border-collapse: separate;\n border-spacing: 0 ","px;\n\n padding: 0 ","px;\n"],["\n width: 100%;\n max-width: 100%;\n\n border-collapse: separate;\n border-spacing: 0 ","px;\n\n padding: 0 ","px;\n"])),.5*l.spacings.nudge,2*l.spacings.nudge),A=C.default(i.Copy).withConfig({displayName:"TableBlock__TableHead",componentId:"sc-1n2im8m-4"})(v||(v=e.__makeTemplateObject(["\n text-align: left;\n color: ",";\n background-color: ",";\n\n padding: 0 ","px;\n height: 56px;\n box-sizing: content-box;\n\n :last-child {\n padding-right: ","px;\n text-align: ",";\n }\n"],["\n text-align: left;\n color: ",";\n background-color: ",";\n\n padding: 0 ","px;\n height: 56px;\n box-sizing: content-box;\n\n :last-child {\n padding-right: ","px;\n text-align: ",";\n }\n"])),(function(e){var n=e.theme;return e.isInverted?l.getColors(n).text.inverted:l.getColors(n).text.default}),(function(e){var n=e.theme;return e.isInverted?l.getColors(n).elementBg.dark:l.getColors(n).elementBg.medium}),3*l.spacings.nudge,2.5*l.spacings.spacer,(function(e){return e.alignRight?"right":"left"})),P=C.default(i.Copy).withConfig({displayName:"TableBlock__TableData",componentId:"sc-1n2im8m-5"})(x||(x=e.__makeTemplateObject(["\n padding: 0 ","px;\n height: 56px;\n box-sizing: content-box;\n\n background-color: ",";\n\n :last-child {\n text-align: ",";\n padding-right: ","px;\n }\n"],["\n padding: 0 ","px;\n height: 56px;\n box-sizing: content-box;\n\n background-color: ",";\n\n :last-child {\n text-align: ",";\n padding-right: ","px;\n }\n"])),3*l.spacings.nudge,(function(e){var n=e.hasBack,t=e.theme;return n?l.getColors(t).elementBg.light:l.getColors(t).elementBg.medium}),(function(e){return e.alignRight?"right":"left"}),2.5*l.spacings.spacer),R=C.default.button.withConfig({displayName:"TableBlock__ButtonContainer",componentId:"sc-1n2im8m-6"})(w||(w=e.__makeTemplateObject(["\n position: sticky;\n bottom: 40px;\n opacity: ",";\n pointer-events: ",";\n border: none;\n background: none;\n\n grid-column: 1;\n grid-row: 1;\n align-self: end;\n margin: ","px ","px;\n\n cursor: ",";\n pointer-events: none;\n\n transition: opacity ease-in-out 0.2s;\n\n &:hover {\n opacity: ",";\n }\n\n & > * {\n pointer-events: all;\n }\n"],["\n position: sticky;\n bottom: 40px;\n opacity: ",";\n pointer-events: ",";\n border: none;\n background: none;\n\n grid-column: 1;\n grid-row: 1;\n align-self: end;\n margin: ","px ","px;\n\n cursor: ",";\n pointer-events: none;\n\n transition: opacity ease-in-out 0.2s;\n\n &:hover {\n opacity: ",";\n }\n\n & > * {\n pointer-events: all;\n }\n"])),(function(e){return e.isVisible?1:0}),(function(e){return e.isVisible?"all":"none"}),l.spacings.spacer,2*l.spacings.nudge,(function(e){return e.isVisible?"pointer":"default"}),(function(e){return e.isVisible?.7:0})),q=C.default(R).withConfig({displayName:"TableBlock__ButtonRightContainer",componentId:"sc-1n2im8m-7"})(y||(y=e.__makeTemplateObject(["\n float: right;\n justify-self: end;\n"],["\n float: right;\n justify-self: end;\n"]))),S=C.default(R).withConfig({displayName:"TableBlock__ButtonLeftContainer",componentId:"sc-1n2im8m-8"})(k||(k=e.__makeTemplateObject(["\n float: left;\n justify-self: start;\n"],["\n float: left;\n justify-self: start;\n"]))),W=function(e){var t=e.row,i=e.tableTitle,l=e.rowTitle,o=e.isInverted,a=void 0!==o&&o,r=e.hasBack,s=void 0!==r&&r,c=e.lastCol,d=void 0===c?"left":c,p=n.useRef(null),u=_.default.useState(!1),f=u[0],m=u[1],g=_.default.useState(!1),b=g[0],h=g[1];n.useEffect((function(){var e=p.current;if(e){var n=function(){e.scrollWidth>e.offsetWidth?(h(e.scrollLeft>0),m(e.scrollLeft+e.offsetWidth<e.scrollWidth-1)):(h(!1),m(!1))};return n(),window.addEventListener("resize",n),e.addEventListener("scroll",n),function(){window.removeEventListener("resize",n),e.removeEventListener("scroll",n)}}}),[]);var v=l||t.length>0;return _.default.createElement(z,null,_.default.createElement(V,{tabIndex:1,ref:p},_.default.createElement(M,null,i&&_.default.createElement(H,{renderAs:"caption",type:"copy-b",isInverted:a},i),l&&_.default.createElement("thead",null,_.default.createElement("tr",null,l.map((function(e,n){return _.default.createElement(A,{key:n,type:"copy-b",renderAs:"th",isInverted:!a,alignRight:"right"===d},e)})))),_.default.createElement("tbody",null,t.map((function(e,n){var t=e.cols;return _.default.createElement("tr",{key:n},t.map((function(e,n){return _.default.createElement(P,{key:n,renderAs:"td",hasBack:s,alignRight:"right"===d,innerHTML:e})})))}))))),_.default.createElement(S,{style:{marginTop:l&&t.length>1?"80px":void 0},isVisible:v&&b,onClick:function(){var e=p.current;e&&(null==e||e.scrollBy({left:-1*e.offsetWidth,behavior:"smooth"}))}},_.default.createElement(O,{id:"left"})),_.default.createElement(q,{style:{marginTop:l&&t.length>1?"80px":void 0},isVisible:v&&f,onClick:function(){var e=p.current;e&&(null==e||e.scrollBy({left:e.offsetWidth,behavior:"smooth"}))}},_.default.createElement(L,{id:"right"})))};W.displayName="TableBlock",exports.TableBlock=W,exports.Title=function(e){var n=e.colorMode,t=void 0===n?"default":n,i=e.superTitle,l=e.superTitleAs,a=e.title,r=e.titleAs,s=e.titleSize,c=void 0===s?"heading-2":s,d=e.maxLines,p=e.isCentered,u=void 0!==p&&p,f=e.titleHyphens,m=e.className,g=o.useLibTheme().colors;return _.default.createElement(E,{isCentered:u,className:m},i&&_.default.createElement(j,{renderAs:l||"div",size:"super",textColor:"onImage"===t?g.text.inverted:void 0,isInverted:"inverted"===t,innerHTML:i}),a&&_.default.createElement(B,{renderAs:r||"h2",size:"heading-1"===c?"heading-1":"heading-2",hyphens:f,textColor:"onImage"===t?g.text.inverted:void 0,isInverted:"inverted"===t,innerHTML:a,maxLines:d}))};
2
+ //# sourceMappingURL=TableBlock-f2c59d9b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableBlock-f2c59d9b.js","sources":["../src/components/blocks/Title.tsx","../src/components/base/icons/ButtonLeft.tsx","../src/components/base/icons/ButtonRight.tsx","../src/components/blocks/TableBlock.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Heading, { HeadlineTag } from 'components/typography/Heading';\nimport { FontType, spacings } from 'utils/styles';\nimport { useLibTheme } from 'utils/LibThemeProvider';\n\nconst View = styled.div<{ isCentered?: boolean }>`\n display: block;\n text-align: ${({ isCentered }) => (isCentered ? 'center' : 'left')};\n margin: ${({ isCentered }) => isCentered && '0 auto'};\n\n & > * + * {\n margin-top: ${spacings.nudge * 2}px;\n }\n`;\n\nconst SuperTitle = styled(Heading)`\n display: block;\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: -webkit-box;\n -webkit-line-clamp: 2; /* number of lines to show */\n line-clamp: 2;\n -webkit-box-orient: vertical;\n`;\n\nconst MainTitle = styled(Heading)<{ maxLines?: number }>`\n display: block;\n\n ${({ maxLines }) =>\n maxLines &&\n maxLines > 0 &&\n css`\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: ${maxLines}; /* number of lines to show */\n line-clamp: ${maxLines};\n -webkit-box-orient: vertical;\n `}\n`;\n\nexport type TitleSize = Extract<FontType, 'heading-1' | 'heading-2'>;\n\nconst Title: FC<{\n /**\n * Text color mode mostly background dependent.\n * The value onImage is used if the title is placed on an underlying image\n * */\n colorMode?: 'default' | 'inverted' | 'onImage';\n\n /** Superior title that stands above main title */\n superTitle?: string;\n\n /** Superior title HTML tag type (h3, h4 ...) */\n superTitleAs?: HeadlineTag;\n\n /** Main title text */\n title?: string;\n\n /** Main title HTML tag type (h2, h3, h4...) */\n titleAs?: HeadlineTag;\n\n /** Style type of main title */\n titleSize?: TitleSize;\n\n /** Clamp lines of text to specific number */\n maxLines?: number;\n\n /** Center texts */\n isCentered?: boolean;\n\n /** Enable titel text hypens */\n titleHyphens?: boolean;\n\n className?: string;\n}> = ({\n colorMode = 'default',\n superTitle,\n superTitleAs,\n title,\n titleAs,\n titleSize = 'heading-2',\n maxLines,\n isCentered = false,\n titleHyphens,\n className,\n}) => {\n const { colors } = useLibTheme();\n\n return (\n <View isCentered={isCentered} className={className}>\n {superTitle && (\n <SuperTitle\n renderAs={superTitleAs || 'div'}\n size=\"super\"\n textColor={\n colorMode === 'onImage'\n ? colors.text.inverted\n : undefined\n }\n isInverted={colorMode === 'inverted'}\n innerHTML={superTitle}\n />\n )}\n {title && (\n <MainTitle\n renderAs={titleAs || 'h2'}\n size={titleSize === 'heading-1' ? 'heading-1' : 'heading-2'}\n hyphens={titleHyphens}\n textColor={\n colorMode === 'onImage'\n ? colors.text.inverted\n : undefined\n }\n isInverted={colorMode === 'inverted'}\n innerHTML={title}\n maxLines={maxLines}\n />\n )}\n </View>\n );\n};\n\nexport default Title;\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nconst SVG = styled.svg`\n display: block;\n`;\n\nconst ButtonLeft: React.FC<{\n id?: string;\n iconColor?: string;\n className?: string;\n ariaHidden?: boolean;\n}> = ({ id, className, ariaHidden = true }) => (\n <SVG\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-hidden={ariaHidden}\n >\n <circle\n cx=\"24\"\n cy=\"24\"\n r=\"24\"\n transform=\"rotate(-180 24 24)\"\n fill=\"#000\"\n fillOpacity=\".4\"\n />\n <g clipPath={`url(#button-left-path-${id})`}>\n <path\n d=\"m29.51 15.87-1.77-1.77-9.9 9.9 9.9 9.9 1.77-1.77L21.38 24l8.13-8.13Z\"\n fill=\"#fff\"\n />\n </g>\n <defs>\n <clipPath id={`button-left-path-${id}`}>\n <path fill=\"#fff\" d=\"M36 36H12V12h24z\" />\n </clipPath>\n </defs>\n </SVG>\n);\n\nexport default ButtonLeft;\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nconst SVG = styled.svg`\n display: block;\n`;\n\nconst ButtonRight: React.FC<{\n id?: string;\n iconColor?: string;\n className?: string;\n ariaHidden?: boolean;\n}> = ({ id, className, ariaHidden = true }) => (\n <SVG\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-hidden={ariaHidden}\n >\n <circle cx=\"24\" cy=\"24\" r=\"24\" fill=\"#000\" fillOpacity=\".4\" />\n <g clipPath={`url(#button-right-path-${id})`}>\n <path\n d=\"m18.49 32.13 1.77 1.77 9.9-9.9-9.9-9.9-1.77 1.77L26.62 24l-8.13 8.13Z\"\n fill=\"#fff\"\n />\n </g>\n <defs>\n <clipPath id={`button-right-path-${id}`}>\n <path fill=\"#fff\" d=\"M12 12h24v24H12z\" />\n </clipPath>\n </defs>\n </SVG>\n);\n\nexport default ButtonRight;\n","import ButtonLeft from 'components/base/icons/ButtonLeft';\nimport ButtonRight from 'components/base/icons/ButtonRight';\nimport Copy from 'components/typography/Copy';\nimport React, { FC, useEffect, useRef } from 'react';\nimport styled from 'styled-components';\n\nimport { getColors as color, spacings } from 'utils/styles';\n\nconst View = styled.div`\n display: grid;\n position: relative;\n\n &:focus {\n outline: 1px dashed ${({ theme }) => color(theme).primary.default};\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n`;\n\nconst Caption = styled(Copy)`\n margin-bottom: ${spacings.nudge}px;\n padding: 0 ${spacings.nudge * 2}px;\n text-align: left;\n`;\n\nconst TableContainer = styled.div`\n position: relative;\n overflow-x: scroll;\n overflow-y: hidden;\n white-space: nowrap;\n\n grid-column: 1;\n grid-row: 1;\n\n &:focus {\n outline: none;\n border: 1px solid ${({ theme }) => color(theme).primary.default};\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n border: none;\n }\n\n &::-webkit-scrollbar {\n display: none;\n scrollbar-width: none;\n }\n`;\n\nconst TableBody = styled.table`\n width: 100%;\n max-width: 100%;\n\n border-collapse: separate;\n border-spacing: 0 ${spacings.nudge * 0.5}px;\n\n padding: 0 ${spacings.nudge * 2}px;\n`;\n\nconst TableHead = styled(Copy)<{\n isInverted?: boolean;\n alignRight?: boolean;\n}>`\n text-align: left;\n color: ${({ theme, isInverted }) =>\n isInverted ? color(theme).text.inverted : color(theme).text.default};\n background-color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).elementBg.dark\n : color(theme).elementBg.medium};\n\n padding: 0 ${spacings.nudge * 3}px;\n height: 56px;\n box-sizing: content-box;\n\n :last-child {\n padding-right: ${spacings.spacer * 2.5}px;\n text-align: ${({ alignRight }) => (alignRight ? 'right' : 'left')};\n }\n`;\n\nconst TableData = styled(Copy)<{\n hasBack?: boolean;\n alignRight?: boolean;\n}>`\n padding: 0 ${spacings.nudge * 3}px;\n height: 56px;\n box-sizing: content-box;\n\n background-color: ${({ hasBack, theme }) =>\n hasBack ? color(theme).elementBg.light : color(theme).elementBg.medium};\n\n :last-child {\n text-align: ${({ alignRight }) => (alignRight ? 'right' : 'left')};\n padding-right: ${spacings.spacer * 2.5}px;\n }\n`;\n\nconst ButtonContainer = styled.button<{ isVisible?: boolean }>`\n position: sticky;\n bottom: 40px;\n opacity: ${({ isVisible }) => (isVisible ? 1 : 0)};\n pointer-events: ${({ isVisible }) => (isVisible ? 'all' : 'none')};\n border: none;\n background: none;\n\n grid-column: 1;\n grid-row: 1;\n align-self: end;\n margin: ${spacings.spacer}px ${spacings.nudge * 2}px;\n\n cursor: ${({ isVisible }) => (isVisible ? 'pointer' : 'default')};\n pointer-events: none;\n\n transition: opacity ease-in-out 0.2s;\n\n &:hover {\n opacity: ${({ isVisible }) => (isVisible ? 0.7 : 0)};\n }\n\n & > * {\n pointer-events: all;\n }\n`;\n\nconst ButtonRightContainer = styled(ButtonContainer)`\n float: right;\n justify-self: end;\n`;\n\nconst ButtonLeftContainer = styled(ButtonContainer)`\n float: left;\n justify-self: start;\n`;\n\nexport interface TableProps {\n tableTitle?: string;\n rowTitle?: string[];\n row: Array<{\n cols: string[];\n }>;\n isInverted?: boolean;\n hasBack?: boolean;\n lastCol?: 'left' | 'right';\n}\n\nconst TableBlock: FC<TableProps> = ({\n row,\n tableTitle,\n rowTitle,\n isInverted = false,\n hasBack = false,\n lastCol = 'left',\n}) => {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [showButtonRight, setShowButtonRight] = React.useState(false);\n const [showButtonLeft, setShowButtonLeft] = React.useState(false);\n\n useEffect(() => {\n const scrollEl = scrollRef.current;\n if (!scrollEl) return;\n\n const calcControls = () => {\n if (scrollEl.scrollWidth > scrollEl.offsetWidth) {\n setShowButtonLeft(scrollEl.scrollLeft > 0);\n setShowButtonRight(\n scrollEl.scrollLeft + scrollEl.offsetWidth <\n scrollEl.scrollWidth - 1 // reduced by 1 pixel to prevent bug on some viewport widths\n );\n } else {\n setShowButtonLeft(false);\n setShowButtonRight(false);\n }\n };\n\n calcControls();\n window.addEventListener('resize', calcControls);\n scrollEl.addEventListener('scroll', calcControls);\n\n return () => {\n window.removeEventListener('resize', calcControls);\n scrollEl.removeEventListener('scroll', calcControls);\n };\n }, []);\n\n const handleRightClick = () => {\n const scrollEl = scrollRef.current;\n if (!scrollEl) return;\n\n scrollEl?.scrollBy({ left: scrollEl.offsetWidth, behavior: 'smooth' });\n };\n\n const handleLeftClick = () => {\n const scrollEl = scrollRef.current;\n if (!scrollEl) return;\n\n scrollEl?.scrollBy({\n left: scrollEl.offsetWidth * -1,\n behavior: 'smooth',\n });\n };\n\n const showButtons = rowTitle || row.length > 0;\n\n return (\n <View>\n <TableContainer tabIndex={1} ref={scrollRef}>\n <TableBody>\n {tableTitle && (\n <Caption\n renderAs=\"caption\"\n type=\"copy-b\"\n isInverted={isInverted}\n >\n {tableTitle}\n </Caption>\n )}\n {rowTitle && (\n <thead>\n <tr>\n {rowTitle.map((item, ii) => (\n <TableHead\n key={ii}\n type=\"copy-b\"\n renderAs=\"th\"\n isInverted={!isInverted}\n alignRight={lastCol === 'right'}\n >\n {item}\n </TableHead>\n ))}\n </tr>\n </thead>\n )}\n <tbody>\n {row.map(({ cols }, i) => (\n <tr key={i}>\n {cols.map((itemText, ii) => {\n return (\n <TableData\n key={ii}\n renderAs=\"td\"\n hasBack={hasBack}\n alignRight={lastCol === 'right'}\n innerHTML={itemText}\n />\n );\n })}\n </tr>\n ))}\n </tbody>\n </TableBody>\n </TableContainer>\n <ButtonLeftContainer\n style={{\n marginTop: rowTitle && row.length > 1 ? '80px' : undefined,\n }}\n isVisible={showButtons && showButtonLeft}\n onClick={handleLeftClick}\n >\n <ButtonLeft id=\"left\" />\n </ButtonLeftContainer>\n <ButtonRightContainer\n style={{\n marginTop: rowTitle && row.length > 1 ? '80px' : undefined,\n }}\n isVisible={showButtons && showButtonRight}\n onClick={handleRightClick}\n >\n <ButtonRight id=\"right\" />\n </ButtonRightContainer>\n </View>\n );\n};\n\nTableBlock.displayName = 'TableBlock';\n\nexport default TableBlock;\n"],"names":["View","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","_a","isCentered","spacings","nudge","SuperTitle","Heading","templateObject_2","MainTitle","templateObject_4","maxLines","css","SVG","svg","ButtonLeft","id","className","_b","ariaHidden","React","createElement","width","height","viewBox","fill","xmlns","cx","cy","r","transform","fillOpacity","clipPath","concat","d","ButtonRight","theme","color","primary","default","Caption","Copy","TableContainer","templateObject_3","TableBody","table","TableHead","templateObject_5","isInverted","text","inverted","elementBg","dark","medium","spacer","alignRight","TableData","templateObject_6","hasBack","light","ButtonContainer","button","templateObject_7","isVisible","ButtonRightContainer","templateObject_8","ButtonLeftContainer","templateObject_9","TableBlock","row","tableTitle","rowTitle","_c","_d","lastCol","scrollRef","useRef","_e","useState","showButtonRight","setShowButtonRight","_f","showButtonLeft","setShowButtonLeft","useEffect","scrollEl","current","calcControls","scrollWidth","offsetWidth","scrollLeft","window","addEventListener","removeEventListener","handleRightClick","showButtons","length","tabIndex","ref","renderAs","type","map","item","ii","key","i","cols","itemText","innerHTML","style","marginTop","undefined","onClick","scrollBy","left","behavior","colorMode","superTitle","superTitleAs","title","titleAs","titleSize","titleHyphens","colors","useLibTheme","size","textColor","hyphens"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var n=require("./ClockFilled-2483aa4a.js"),e=require("react"),t=require("styled-components"),a=require("./styles-3a495a2d.js"),i=require("./TableBlock-007f8e34.js"),o=require("./Copy-ea6ab025.js"),r=require("./Actions-c7b16449.js"),l=require("./Image-c72f7a80.js");function d(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var s,c,p,m,u,f,g,v,x,h,w,b=d(e),k=d(t),y=k.default.div.withConfig({displayName:"IntroBlock__View",componentId:"sc-w71lok-0"})(s||(s=n.__makeTemplateObject(["\n display: block;\n margin: 0;\n padding: 0;\n width: 100%;\n text-align: ",";\n\n @media "," {\n display: flex;\n flex-direction: row;\n\n & > * + * {\n margin-left: ","px;\n }\n }\n"],["\n display: block;\n margin: 0;\n padding: 0;\n width: 100%;\n text-align: ",";\n\n @media "," {\n display: flex;\n flex-direction: row;\n\n & > * + * {\n margin-left: ","px;\n }\n }\n"])),(function(n){return n.isCentered&&"center"}),a.mq.semilarge,a.spacings.spacer),_=k.default.div.withConfig({displayName:"IntroBlock__Content",componentId:"sc-w71lok-1"})(c||(c=n.__makeTemplateObject(["\n & > * + * {\n margin-top: ","px;\n }\n\n max-width: 100%;\n\n @media "," {\n flex: 1 0 66.66%;\n }\n"],["\n & > * + * {\n margin-top: ","px;\n }\n\n max-width: 100%;\n\n @media "," {\n flex: 1 0 66.66%;\n }\n"])),a.spacings.spacer,a.mq.semilarge),I=k.default(i.Title).withConfig({displayName:"IntroBlock__StyledTitle",componentId:"sc-w71lok-2"})(p||(p=n.__makeTemplateObject(["\n max-width: ",";\n"],["\n max-width: ",";\n"])),(function(n){return n.clamp&&"880px"})),C=k.default(o.Copy).withConfig({displayName:"IntroBlock__ContentBlock",componentId:"sc-w71lok-3"})(u||(u=n.__makeTemplateObject(["\n display: block;\n max-width: ",";\n margin-left: ",";\n margin-right: ",";\n\n ","\n\n & + & {\n margin-top: ","px;\n }\n"],["\n display: block;\n max-width: ",";\n margin-left: ",";\n margin-right: ",";\n\n ","\n\n & + & {\n margin-top: ","px;\n }\n"])),(function(n){return n.clamp&&"880px"}),(function(n){return n.isCentered&&"auto"}),(function(n){return n.isCentered&&"auto"}),(function(e){var a=e.maxLines;return a&&a>0&&t.css(m||(m=n.__makeTemplateObject(["\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: ","; /* number of lines to show */\n line-clamp: ",";\n -webkit-box-orient: vertical;\n "],["\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: ","; /* number of lines to show */\n line-clamp: ",";\n -webkit-box-orient: vertical;\n "])),a,a)}),3*a.spacings.nudge),T=k.default(r.Actions).withConfig({displayName:"IntroBlock__StyledActions",componentId:"sc-w71lok-4"})(f||(f=n.__makeTemplateObject(["\n @media "," {\n display: block;\n text-align: ",";\n }\n"],["\n @media "," {\n display: block;\n text-align: ",";\n }\n"])),a.mq.medium,(function(n){return n.isCentered&&"center"})),j=k.default.div.withConfig({displayName:"IntroBlock__MobileImageContainer",componentId:"sc-w71lok-5"})(g||(g=n.__makeTemplateObject(["\n width: 100%;\n height: 100%;\n max-width: 400px;\n max-height: ",";\n text-align: center;\n\n margin: 0 auto;\n margin-top: ","px;\n\n @media "," {\n display: ",";\n }\n"],["\n width: 100%;\n height: 100%;\n max-width: 400px;\n max-height: ",";\n text-align: center;\n\n margin: 0 auto;\n margin-top: ","px;\n\n @media "," {\n display: ",";\n }\n"])),(function(n){return n.coverSpace&&"400px"}),a.spacings.spacer,a.mq.semilarge,(function(n){return n.isCentered?"block":"none"})),q=k.default.div.withConfig({displayName:"IntroBlock__DesktopImageContainer",componentId:"sc-w71lok-6"})(v||(v=n.__makeTemplateObject(["\n display: none;\n width: 100%;\n\n @media "," {\n display: block;\n\n max-width: 400px;\n max-width: calc(100% - 66.66% - ","px);\n }\n"],["\n display: none;\n width: 100%;\n\n @media "," {\n display: block;\n\n max-width: 400px;\n max-width: calc(100% - 66.66% - ","px);\n }\n"])),a.mq.semilarge,a.spacings.spacer),B=k.default.div.withConfig({displayName:"VideoBlock__AspectContainer",componentId:"sc-160aafd-0"})(h||(h=n.__makeTemplateObject(["\n position: relative;\n border-radius: ",";\n overflow: hidden;\n\n aspect-ratio: ",";\n width: ",";\n max-width: 100%;\n\n background: ",";\n object-position: center;\n\n @supports not (aspect-ratio: auto) {\n height: ",";\n padding-top: ",";\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n ","\n"],["\n position: relative;\n border-radius: ",";\n overflow: hidden;\n\n aspect-ratio: ",";\n width: ",";\n max-width: 100%;\n\n background: ",";\n object-position: center;\n\n @supports not (aspect-ratio: auto) {\n height: ",";\n padding-top: ",";\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n ","\n"])),(function(n){var e=n.theme;return a.getGlobals(e).sections.edgeRadius}),(function(n){var e=n.ratios;return null==e?void 0:e.small}),(function(n){var e=n.ratios;return(null==e?void 0:e.small)&&"100%"}),(function(n){var e=n.theme;return n.isInverted?a.getGlobals(e).sections.imagePlaceholderBg.inverted:a.getGlobals(e).sections.imagePlaceholderBg.default}),(function(n){var e=n.ratios;return(null==e?void 0:e.small)&&0}),(function(n){var e=n.ratios;return(null==e?void 0:e.small)&&"calc(100% / ".concat(null==e?void 0:e.small,")")}),a.mq.medium,(function(n){var e=n.ratios;return null==e?void 0:e.medium}),(function(n){var e=n.ratios;return(null==e?void 0:e.medium)&&"calc(100% / ".concat(null==e?void 0:e.medium,")")}),a.mq.semilarge,(function(n){var e=n.ratios;return null==e?void 0:e.semilarge}),(function(n){var e=n.ratios;return(null==e?void 0:e.semilarge)&&"calc(100% / ".concat(null==e?void 0:e.semilarge,")")}),a.mq.large,(function(n){var e=n.ratios;return null==e?void 0:e.large}),(function(n){var e=n.ratios;return(null==e?void 0:e.large)&&"calc(100% / ".concat(null==e?void 0:e.large,")")}),a.mq.xlarge,(function(n){var e=n.ratios;return null==e?void 0:e.xlarge}),(function(n){var e=n.ratios;return(null==e?void 0:e.xlarge)&&"calc(100% / ".concat(null==e?void 0:e.xlarge,")")}),(function(e){return e.ratios&&t.css(x||(x=n.__makeTemplateObject(["\n video {\n height: 100%;\n width: 100%;\n object-fit: cover;\n\n @supports not (aspect-ratio: auto) {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n }\n }\n "],["\n video {\n height: 100%;\n width: 100%;\n object-fit: cover;\n\n @supports not (aspect-ratio: auto) {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n }\n }\n "])))})),E=k.default.video.withConfig({displayName:"VideoBlock__Video",componentId:"sc-160aafd-1"})(w||(w=n.__makeTemplateObject(["\n display: block;\n"],["\n display: block;\n"]))),N=e.forwardRef((function(n,t){var a=n.urls,i=n.ratios,o=n.isInverted,r=n.muted,l=void 0!==r&&r,d=n.autoPlay,s=void 0!==d&&d,c=n.loop,p=void 0!==c&&c,m=n.controls,u=void 0!==m&&m,f=n.playsInline,g=void 0===f||f,v=n.onCanPlayThrough,x=n.className,h=e.useRef(null);return e.useImperativeHandle(t,(function(){return h.current})),e.useEffect((function(){h.current&&h.current.readyState>3&&(null==v||v())}),[v]),b.default.createElement(B,{ratios:i,isInverted:o,className:x},b.default.createElement(E,{ref:h,muted:l,autoPlay:s,loop:p,controls:u,onCanPlayThrough:v,playsInline:g},null==a?void 0:a.map((function(n,e){return b.default.createElement("source",{src:n,key:e})}))))}));N.displayName="VideoBlock",exports.IntroBlock=function(e){var t=e.renderAs,a=void 0===t?"div":t,i=e.colorMode,o=void 0===i?"default":i,r=e.title,d=e.titleAs,s=e.titleSize,c=void 0===s?"heading-2":s,p=e.superTitle,m=e.superTitleAs,u=e.abstract,f=e.text,g=e.textType,v=void 0===g?"copy":g,x=e.textSize,h=void 0===x?"medium":x,w=e.primaryAction,k=e.secondaryAction,B=e.isCentered,E=void 0!==B&&B,N=e.clampTitle,A=void 0!==N&&N,O=e.clampAbstract,S=void 0!==O&&O,L=e.maxTitleLines,P=e.maxAbstractLines,V=e.clampText,z=void 0!==V&&V,H=e.maxTextLines,M=e.className,R=e.titleHyphens,G=e.image,D="inverted"===o||"onImage"===o,F=!1!==(null==G?void 0:G.coverSpace);return b.default.createElement(y,{as:a,isCentered:E,className:M},b.default.createElement(_,null,(r||p)&&b.default.createElement(I,{colorMode:o,title:r,titleAs:d,titleSize:c,superTitle:p,superTitleAs:m,isCentered:E,clamp:A,maxLines:L,titleHyphens:R}),(null==G?void 0:G.small)&&b.default.createElement(j,{isCentered:E,coverSpace:F},b.default.createElement(l.Image,n.__assign({},G,{coverSpace:F,allowEdgeRadius:!0,isInverted:D}))),u&&b.default.createElement(C,{type:"copy",size:"big",textColor:"onImage"===o?"#fff":void 0,isInverted:D,isCentered:E,innerHTML:u,clamp:S,maxLines:P}),f&&b.default.createElement(C,{type:v,size:h,textColor:"onImage"===o?"#fff":void 0,isInverted:D,isCentered:E,innerHTML:f,clamp:z,maxLines:H}),(w||k)&&b.default.createElement(T,{primary:w&&w({isInverted:D,isTextCentered:E}),secondary:k&&k({isInverted:D,isTextCentered:E})})),(null==G?void 0:G.small)&&!E&&b.default.createElement(q,null,b.default.createElement(l.Image,n.__assign({},G,{coverSpace:F,allowEdgeRadius:!0,isInverted:D}))))},exports.VideoBlock=N;
2
- //# sourceMappingURL=VideoBlock-a7d6ff7d.js.map
1
+ "use strict";var n=require("./ClockFilled-2483aa4a.js"),e=require("react"),t=require("styled-components"),a=require("./styles-3a495a2d.js"),i=require("./TableBlock-f2c59d9b.js"),o=require("./Copy-ea6ab025.js"),r=require("./Actions-c7b16449.js"),l=require("./Image-c72f7a80.js");function d(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var s,c,p,m,u,f,g,v,x,h,w,b=d(e),k=d(t),y=k.default.div.withConfig({displayName:"IntroBlock__View",componentId:"sc-w71lok-0"})(s||(s=n.__makeTemplateObject(["\n display: block;\n margin: 0;\n padding: 0;\n width: 100%;\n text-align: ",";\n\n @media "," {\n display: flex;\n flex-direction: row;\n\n & > * + * {\n margin-left: ","px;\n }\n }\n"],["\n display: block;\n margin: 0;\n padding: 0;\n width: 100%;\n text-align: ",";\n\n @media "," {\n display: flex;\n flex-direction: row;\n\n & > * + * {\n margin-left: ","px;\n }\n }\n"])),(function(n){return n.isCentered&&"center"}),a.mq.semilarge,a.spacings.spacer),_=k.default.div.withConfig({displayName:"IntroBlock__Content",componentId:"sc-w71lok-1"})(c||(c=n.__makeTemplateObject(["\n & > * + * {\n margin-top: ","px;\n }\n\n max-width: 100%;\n\n @media "," {\n flex: 1 0 66.66%;\n }\n"],["\n & > * + * {\n margin-top: ","px;\n }\n\n max-width: 100%;\n\n @media "," {\n flex: 1 0 66.66%;\n }\n"])),a.spacings.spacer,a.mq.semilarge),I=k.default(i.Title).withConfig({displayName:"IntroBlock__StyledTitle",componentId:"sc-w71lok-2"})(p||(p=n.__makeTemplateObject(["\n max-width: ",";\n"],["\n max-width: ",";\n"])),(function(n){return n.clamp&&"880px"})),C=k.default(o.Copy).withConfig({displayName:"IntroBlock__ContentBlock",componentId:"sc-w71lok-3"})(u||(u=n.__makeTemplateObject(["\n display: block;\n max-width: ",";\n margin-left: ",";\n margin-right: ",";\n\n ","\n\n & + & {\n margin-top: ","px;\n }\n"],["\n display: block;\n max-width: ",";\n margin-left: ",";\n margin-right: ",";\n\n ","\n\n & + & {\n margin-top: ","px;\n }\n"])),(function(n){return n.clamp&&"880px"}),(function(n){return n.isCentered&&"auto"}),(function(n){return n.isCentered&&"auto"}),(function(e){var a=e.maxLines;return a&&a>0&&t.css(m||(m=n.__makeTemplateObject(["\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: ","; /* number of lines to show */\n line-clamp: ",";\n -webkit-box-orient: vertical;\n "],["\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: ","; /* number of lines to show */\n line-clamp: ",";\n -webkit-box-orient: vertical;\n "])),a,a)}),3*a.spacings.nudge),T=k.default(r.Actions).withConfig({displayName:"IntroBlock__StyledActions",componentId:"sc-w71lok-4"})(f||(f=n.__makeTemplateObject(["\n @media "," {\n display: block;\n text-align: ",";\n }\n"],["\n @media "," {\n display: block;\n text-align: ",";\n }\n"])),a.mq.medium,(function(n){return n.isCentered&&"center"})),j=k.default.div.withConfig({displayName:"IntroBlock__MobileImageContainer",componentId:"sc-w71lok-5"})(g||(g=n.__makeTemplateObject(["\n width: 100%;\n height: 100%;\n max-width: 400px;\n max-height: ",";\n text-align: center;\n\n margin: 0 auto;\n margin-top: ","px;\n\n @media "," {\n display: ",";\n }\n"],["\n width: 100%;\n height: 100%;\n max-width: 400px;\n max-height: ",";\n text-align: center;\n\n margin: 0 auto;\n margin-top: ","px;\n\n @media "," {\n display: ",";\n }\n"])),(function(n){return n.coverSpace&&"400px"}),a.spacings.spacer,a.mq.semilarge,(function(n){return n.isCentered?"block":"none"})),q=k.default.div.withConfig({displayName:"IntroBlock__DesktopImageContainer",componentId:"sc-w71lok-6"})(v||(v=n.__makeTemplateObject(["\n display: none;\n width: 100%;\n\n @media "," {\n display: block;\n\n max-width: 400px;\n max-width: calc(100% - 66.66% - ","px);\n }\n"],["\n display: none;\n width: 100%;\n\n @media "," {\n display: block;\n\n max-width: 400px;\n max-width: calc(100% - 66.66% - ","px);\n }\n"])),a.mq.semilarge,a.spacings.spacer),B=k.default.div.withConfig({displayName:"VideoBlock__AspectContainer",componentId:"sc-160aafd-0"})(h||(h=n.__makeTemplateObject(["\n position: relative;\n border-radius: ",";\n overflow: hidden;\n\n aspect-ratio: ",";\n width: ",";\n max-width: 100%;\n\n background: ",";\n object-position: center;\n\n @supports not (aspect-ratio: auto) {\n height: ",";\n padding-top: ",";\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n ","\n"],["\n position: relative;\n border-radius: ",";\n overflow: hidden;\n\n aspect-ratio: ",";\n width: ",";\n max-width: 100%;\n\n background: ",";\n object-position: center;\n\n @supports not (aspect-ratio: auto) {\n height: ",";\n padding-top: ",";\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n @media "," {\n aspect-ratio: ",";\n\n @supports not (aspect-ratio: auto) {\n padding-top: ",";\n }\n }\n\n ","\n"])),(function(n){var e=n.theme;return a.getGlobals(e).sections.edgeRadius}),(function(n){var e=n.ratios;return null==e?void 0:e.small}),(function(n){var e=n.ratios;return(null==e?void 0:e.small)&&"100%"}),(function(n){var e=n.theme;return n.isInverted?a.getGlobals(e).sections.imagePlaceholderBg.inverted:a.getGlobals(e).sections.imagePlaceholderBg.default}),(function(n){var e=n.ratios;return(null==e?void 0:e.small)&&0}),(function(n){var e=n.ratios;return(null==e?void 0:e.small)&&"calc(100% / ".concat(null==e?void 0:e.small,")")}),a.mq.medium,(function(n){var e=n.ratios;return null==e?void 0:e.medium}),(function(n){var e=n.ratios;return(null==e?void 0:e.medium)&&"calc(100% / ".concat(null==e?void 0:e.medium,")")}),a.mq.semilarge,(function(n){var e=n.ratios;return null==e?void 0:e.semilarge}),(function(n){var e=n.ratios;return(null==e?void 0:e.semilarge)&&"calc(100% / ".concat(null==e?void 0:e.semilarge,")")}),a.mq.large,(function(n){var e=n.ratios;return null==e?void 0:e.large}),(function(n){var e=n.ratios;return(null==e?void 0:e.large)&&"calc(100% / ".concat(null==e?void 0:e.large,")")}),a.mq.xlarge,(function(n){var e=n.ratios;return null==e?void 0:e.xlarge}),(function(n){var e=n.ratios;return(null==e?void 0:e.xlarge)&&"calc(100% / ".concat(null==e?void 0:e.xlarge,")")}),(function(e){return e.ratios&&t.css(x||(x=n.__makeTemplateObject(["\n video {\n height: 100%;\n width: 100%;\n object-fit: cover;\n\n @supports not (aspect-ratio: auto) {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n }\n }\n "],["\n video {\n height: 100%;\n width: 100%;\n object-fit: cover;\n\n @supports not (aspect-ratio: auto) {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n }\n }\n "])))})),E=k.default.video.withConfig({displayName:"VideoBlock__Video",componentId:"sc-160aafd-1"})(w||(w=n.__makeTemplateObject(["\n display: block;\n"],["\n display: block;\n"]))),N=e.forwardRef((function(n,t){var a=n.urls,i=n.ratios,o=n.isInverted,r=n.muted,l=void 0!==r&&r,d=n.autoPlay,s=void 0!==d&&d,c=n.loop,p=void 0!==c&&c,m=n.controls,u=void 0!==m&&m,f=n.playsInline,g=void 0===f||f,v=n.onCanPlayThrough,x=n.className,h=e.useRef(null);return e.useImperativeHandle(t,(function(){return h.current})),e.useEffect((function(){h.current&&h.current.readyState>3&&(null==v||v())}),[v]),b.default.createElement(B,{ratios:i,isInverted:o,className:x},b.default.createElement(E,{ref:h,muted:l,autoPlay:s,loop:p,controls:u,onCanPlayThrough:v,playsInline:g},null==a?void 0:a.map((function(n,e){return b.default.createElement("source",{src:n,key:e})}))))}));N.displayName="VideoBlock",exports.IntroBlock=function(e){var t=e.renderAs,a=void 0===t?"div":t,i=e.colorMode,o=void 0===i?"default":i,r=e.title,d=e.titleAs,s=e.titleSize,c=void 0===s?"heading-2":s,p=e.superTitle,m=e.superTitleAs,u=e.abstract,f=e.text,g=e.textType,v=void 0===g?"copy":g,x=e.textSize,h=void 0===x?"medium":x,w=e.primaryAction,k=e.secondaryAction,B=e.isCentered,E=void 0!==B&&B,N=e.clampTitle,A=void 0!==N&&N,O=e.clampAbstract,S=void 0!==O&&O,L=e.maxTitleLines,P=e.maxAbstractLines,V=e.clampText,z=void 0!==V&&V,H=e.maxTextLines,M=e.className,R=e.titleHyphens,G=e.image,D="inverted"===o||"onImage"===o,F=!1!==(null==G?void 0:G.coverSpace);return b.default.createElement(y,{as:a,isCentered:E,className:M},b.default.createElement(_,null,(r||p)&&b.default.createElement(I,{colorMode:o,title:r,titleAs:d,titleSize:c,superTitle:p,superTitleAs:m,isCentered:E,clamp:A,maxLines:L,titleHyphens:R}),(null==G?void 0:G.small)&&b.default.createElement(j,{isCentered:E,coverSpace:F},b.default.createElement(l.Image,n.__assign({},G,{coverSpace:F,allowEdgeRadius:!0,isInverted:D}))),u&&b.default.createElement(C,{type:"copy",size:"big",textColor:"onImage"===o?"#fff":void 0,isInverted:D,isCentered:E,innerHTML:u,clamp:S,maxLines:P}),f&&b.default.createElement(C,{type:v,size:h,textColor:"onImage"===o?"#fff":void 0,isInverted:D,isCentered:E,innerHTML:f,clamp:z,maxLines:H}),(w||k)&&b.default.createElement(T,{primary:w&&w({isInverted:D,isTextCentered:E}),secondary:k&&k({isInverted:D,isTextCentered:E})})),(null==G?void 0:G.small)&&!E&&b.default.createElement(q,null,b.default.createElement(l.Image,n.__assign({},G,{coverSpace:F,allowEdgeRadius:!0,isInverted:D}))))},exports.VideoBlock=N;
2
+ //# sourceMappingURL=VideoBlock-dea7de8a.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VideoBlock-a7d6ff7d.js","sources":["../src/components/blocks/IntroBlock.tsx","../src/components/blocks/VideoBlock.tsx"],"sourcesContent":["import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { spacings, mq, FontOptions } from 'utils/styles';\n\nimport Title, { TitleSize } from 'components/blocks/Title';\nimport Copy, { CopyType } from 'components/typography/Copy';\nimport Actions from 'components/blocks/Actions';\nimport { HeadlineTag } from 'components/typography/Heading';\nimport Image, { ImageProps } from './Image';\n\nconst View = styled.div<{ isCentered?: boolean }>`\n display: block;\n margin: 0;\n padding: 0;\n width: 100%;\n text-align: ${({ isCentered }) => isCentered && 'center'};\n\n @media ${mq.semilarge} {\n display: flex;\n flex-direction: row;\n\n & > * + * {\n margin-left: ${spacings.spacer}px;\n }\n }\n`;\n\nconst Content = styled.div`\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n\n max-width: 100%;\n\n @media ${mq.semilarge} {\n flex: 1 0 66.66%;\n }\n`;\n\nconst StyledTitle = styled(Title)<{ clamp?: boolean }>`\n max-width: ${({ clamp }) => clamp && '880px'};\n`;\n\nconst ContentBlock = styled(Copy)<{\n isCentered?: boolean;\n clamp?: boolean;\n maxLines?: number;\n}>`\n display: block;\n max-width: ${({ clamp }) => clamp && '880px'};\n margin-left: ${({ isCentered }) => isCentered && 'auto'};\n margin-right: ${({ isCentered }) => isCentered && 'auto'};\n\n ${({ maxLines }) =>\n maxLines &&\n maxLines > 0 &&\n css`\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: ${maxLines}; /* number of lines to show */\n line-clamp: ${maxLines};\n -webkit-box-orient: vertical;\n `}\n\n & + & {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst StyledActions = styled(Actions)<{ isCentered?: boolean }>`\n @media ${mq.medium} {\n display: block;\n text-align: ${({ isCentered }) => isCentered && 'center'};\n }\n`;\n\nconst MobileImageContainer = styled.div<{\n isCentered?: boolean;\n coverSpace?: boolean;\n}>`\n width: 100%;\n height: 100%;\n max-width: 400px;\n max-height: ${({ coverSpace }) => coverSpace && '400px'};\n text-align: center;\n\n margin: 0 auto;\n margin-top: ${spacings.spacer}px;\n\n @media ${mq.semilarge} {\n display: ${({ isCentered }) => (isCentered ? 'block' : 'none')};\n }\n`;\n\nconst DesktopImageContainer = styled.div`\n display: none;\n width: 100%;\n\n @media ${mq.semilarge} {\n display: block;\n\n max-width: 400px;\n max-width: calc(100% - 66.66% - ${spacings.spacer}px);\n }\n`;\n\nexport interface IntroActionProps {\n isInverted?: boolean;\n isTextCentered?: boolean;\n}\n\nconst IntroBlock: React.FC<{\n /** Define rendered HTML DOM tag of intro container */\n renderAs?: 'div' | 'figcaption';\n\n /** Color presets for text and blocks. onImage has always a white text color */\n colorMode?: 'default' | 'inverted' | 'onImage';\n\n /** Main title text */\n title?: string;\n\n /** Main title HTML tag type (h2, h3, h4...) */\n titleAs?: HeadlineTag;\n\n /** Main title size */\n titleSize?: TitleSize;\n\n /** Superior title that stands above main title */\n superTitle?: string;\n\n /** Superior title HTML tag type (h3, h4 ...) */\n superTitleAs?: HeadlineTag;\n\n /** Intro text underneath the title (richtext) */\n abstract?: string;\n\n /** Main intro text (richtext) */\n text?: string;\n\n /** Intro image. coverSpace defaults to true */\n image?: ImageProps;\n\n /** Copy type of intro text (limits richtext capabilites on textType == copy-b or copy-i) */\n textType?: CopyType;\n\n /** Copy size of intro text */\n textSize?: keyof FontOptions;\n\n /** Function to inject custom primary button */\n primaryAction?: (props: IntroActionProps) => React.ReactNode;\n\n /** Function to inject custom secondary button */\n secondaryAction?: (props: IntroActionProps) => React.ReactNode;\n\n /** Center text and actions */\n isCentered?: boolean;\n\n /** Clamp title to max width of 880px */\n clampTitle?: boolean;\n\n /** Limit lines of title. Cut of with elipsis */\n maxTitleLines?: number;\n\n /** Clamp text to max width of 880px */\n clampText?: boolean;\n\n /** Clamp abstract to max width of 880px */\n clampAbstract?: boolean;\n\n /** Limit lines of text. Cut of with elipsis */\n maxTextLines?: number;\n\n /** Limit lines of abstract text. Cut of with elipsis */\n maxAbstractLines?: number;\n\n /** Main title hyphens */\n titleHyphens?: boolean;\n\n className?: string;\n}> = ({\n renderAs = 'div',\n colorMode = 'default',\n title,\n titleAs,\n titleSize = 'heading-2',\n superTitle,\n superTitleAs,\n abstract,\n text,\n textType = 'copy',\n textSize = 'medium',\n primaryAction,\n secondaryAction,\n isCentered = false,\n clampTitle = false,\n clampAbstract = false,\n maxTitleLines,\n maxAbstractLines,\n clampText = false,\n maxTextLines,\n className,\n titleHyphens,\n image,\n}) => {\n const isInverted = colorMode === 'inverted' || colorMode === 'onImage';\n const coverSpace = image?.coverSpace === false ? false : true;\n\n return (\n <View as={renderAs} isCentered={isCentered} className={className}>\n <Content>\n {(title || superTitle) && (\n <StyledTitle\n colorMode={colorMode}\n title={title}\n titleAs={titleAs}\n titleSize={titleSize}\n superTitle={superTitle}\n superTitleAs={superTitleAs}\n isCentered={isCentered}\n clamp={clampTitle}\n maxLines={maxTitleLines}\n titleHyphens={titleHyphens}\n />\n )}\n {image?.small && (\n <MobileImageContainer\n isCentered={isCentered}\n coverSpace={coverSpace}\n >\n <Image\n {...image}\n coverSpace={coverSpace}\n allowEdgeRadius\n isInverted={isInverted}\n />\n </MobileImageContainer>\n )}\n {abstract && (\n <ContentBlock\n type=\"copy\"\n size=\"big\"\n textColor={colorMode === 'onImage' ? '#fff' : undefined}\n isInverted={isInverted}\n isCentered={isCentered}\n innerHTML={abstract}\n clamp={clampAbstract}\n maxLines={maxAbstractLines}\n />\n )}\n {text && (\n <ContentBlock\n type={textType}\n size={textSize}\n textColor={colorMode === 'onImage' ? '#fff' : undefined}\n isInverted={isInverted}\n isCentered={isCentered}\n innerHTML={text}\n clamp={clampText}\n maxLines={maxTextLines}\n />\n )}\n {(primaryAction || secondaryAction) && (\n <StyledActions\n primary={\n primaryAction &&\n primaryAction({\n isInverted,\n isTextCentered: isCentered,\n })\n }\n secondary={\n secondaryAction &&\n secondaryAction({\n isInverted,\n isTextCentered: isCentered,\n })\n }\n />\n )}\n </Content>\n\n {image?.small && !isCentered && (\n <DesktopImageContainer>\n <Image\n {...image}\n coverSpace={coverSpace}\n allowEdgeRadius\n isInverted={isInverted}\n />\n </DesktopImageContainer>\n )}\n </View>\n );\n};\n\nexport default IntroBlock;\n","import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react';\nimport styled, { css } from 'styled-components';\nimport { getGlobals as global, mq } from 'utils/styles';\n\nconst AspectContainer = styled.div<{\n ratios?: VideoAspectRatios;\n isInverted?: boolean;\n}>`\n position: relative;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n\n aspect-ratio: ${({ ratios }) => ratios?.small};\n width: ${({ ratios }) => ratios?.small && '100%'};\n max-width: 100%;\n\n background: ${({ theme, isInverted }) =>\n isInverted\n ? global(theme).sections.imagePlaceholderBg.inverted\n : global(theme).sections.imagePlaceholderBg.default};\n object-position: center;\n\n @supports not (aspect-ratio: auto) {\n height: ${({ ratios }) => ratios?.small && 0};\n padding-top: ${({ ratios }) =>\n ratios?.small && `calc(100% / ${ratios?.small})`};\n }\n\n @media ${mq.medium} {\n aspect-ratio: ${({ ratios }) => ratios?.medium};\n\n @supports not (aspect-ratio: auto) {\n padding-top: ${({ ratios }) =>\n ratios?.medium && `calc(100% / ${ratios?.medium})`};\n }\n }\n\n @media ${mq.semilarge} {\n aspect-ratio: ${({ ratios }) => ratios?.semilarge};\n\n @supports not (aspect-ratio: auto) {\n padding-top: ${({ ratios }) =>\n ratios?.semilarge && `calc(100% / ${ratios?.semilarge})`};\n }\n }\n\n @media ${mq.large} {\n aspect-ratio: ${({ ratios }) => ratios?.large};\n\n @supports not (aspect-ratio: auto) {\n padding-top: ${({ ratios }) =>\n ratios?.large && `calc(100% / ${ratios?.large})`};\n }\n }\n\n @media ${mq.xlarge} {\n aspect-ratio: ${({ ratios }) => ratios?.xlarge};\n\n @supports not (aspect-ratio: auto) {\n padding-top: ${({ ratios }) =>\n ratios?.xlarge && `calc(100% / ${ratios?.xlarge})`};\n }\n }\n\n ${({ ratios }) =>\n ratios &&\n css`\n video {\n height: 100%;\n width: 100%;\n object-fit: cover;\n\n @supports not (aspect-ratio: auto) {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n }\n }\n `}\n`;\n\nconst Video = styled.video`\n display: block;\n`;\n\nexport interface VideoAspectRatios {\n small: number;\n medium?: number;\n semilarge?: number;\n large?: number;\n xlarge?: number;\n}\n\nexport interface VideoProps {\n urls?: string[];\n ratios?: VideoAspectRatios;\n isInverted?: boolean;\n\n muted?: boolean;\n autoPlay?: boolean;\n loop?: boolean;\n controls?: boolean;\n playsInline?: boolean;\n onCanPlayThrough?: () => void;\n}\n\nconst VideoBlock = forwardRef<\n HTMLVideoElement,\n VideoProps & { className?: string }\n>(\n (\n {\n urls,\n ratios,\n isInverted,\n muted = false,\n autoPlay = false,\n loop = false,\n controls = false,\n playsInline = true,\n onCanPlayThrough,\n className,\n },\n ref\n ) => {\n const videoRef = useRef<HTMLVideoElement | null>(null);\n\n useImperativeHandle<HTMLVideoElement | null, HTMLVideoElement | null>(\n ref,\n () => videoRef.current\n );\n\n useEffect(() => {\n if (videoRef.current && videoRef.current.readyState > 3) {\n onCanPlayThrough?.();\n }\n }, [onCanPlayThrough]);\n\n return (\n <AspectContainer\n ratios={ratios}\n isInverted={isInverted}\n className={className}\n >\n <Video\n ref={videoRef}\n muted={muted}\n autoPlay={autoPlay}\n loop={loop}\n controls={controls}\n onCanPlayThrough={onCanPlayThrough}\n playsInline={playsInline}\n >\n {urls?.map((url, i) => (\n <source src={url} key={i} />\n ))}\n </Video>\n </AspectContainer>\n );\n }\n);\n\nVideoBlock.displayName = 'VideoBlock';\n\nexport default VideoBlock;\n"],"names":["View","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","_a","isCentered","mq","semilarge","spacings","spacer","Content","templateObject_2","StyledTitle","Title","templateObject_3","clamp","ContentBlock","Copy","templateObject_5","maxLines","css","nudge","StyledActions","Actions","medium","MobileImageContainer","coverSpace","DesktopImageContainer","templateObject_8","AspectContainer","theme","global","sections","edgeRadius","ratios","small","isInverted","getGlobals","imagePlaceholderBg","inverted","default","concat","large","xlarge","Video","video","VideoBlock","forwardRef","ref","urls","_b","muted","_c","autoPlay","_d","loop","_e","controls","_f","playsInline","onCanPlayThrough","className","videoRef","useRef","useImperativeHandle","current","useEffect","readyState","React","createElement","map","url","i","src","key","renderAs","colorMode","title","titleAs","titleSize","superTitle","superTitleAs","abstract","text","textType","textSize","primaryAction","secondaryAction","_g","_h","clampTitle","_j","clampAbstract","maxTitleLines","maxAbstractLines","_k","clampText","maxTextLines","titleHyphens","image","as","Image","__assign","allowEdgeRadius","type","size","textColor","undefined","innerHTML","primary","isTextCentered","secondary"],"mappings":"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"}
1
+ {"version":3,"file":"VideoBlock-dea7de8a.js","sources":["../src/components/blocks/IntroBlock.tsx","../src/components/blocks/VideoBlock.tsx"],"sourcesContent":["import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { spacings, mq, FontOptions } from 'utils/styles';\n\nimport Title, { TitleSize } from 'components/blocks/Title';\nimport Copy, { CopyType } from 'components/typography/Copy';\nimport Actions from 'components/blocks/Actions';\nimport { HeadlineTag } from 'components/typography/Heading';\nimport Image, { ImageProps } from './Image';\n\nconst View = styled.div<{ isCentered?: boolean }>`\n display: block;\n margin: 0;\n padding: 0;\n width: 100%;\n text-align: ${({ isCentered }) => isCentered && 'center'};\n\n @media ${mq.semilarge} {\n display: flex;\n flex-direction: row;\n\n & > * + * {\n margin-left: ${spacings.spacer}px;\n }\n }\n`;\n\nconst Content = styled.div`\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n\n max-width: 100%;\n\n @media ${mq.semilarge} {\n flex: 1 0 66.66%;\n }\n`;\n\nconst StyledTitle = styled(Title)<{ clamp?: boolean }>`\n max-width: ${({ clamp }) => clamp && '880px'};\n`;\n\nconst ContentBlock = styled(Copy)<{\n isCentered?: boolean;\n clamp?: boolean;\n maxLines?: number;\n}>`\n display: block;\n max-width: ${({ clamp }) => clamp && '880px'};\n margin-left: ${({ isCentered }) => isCentered && 'auto'};\n margin-right: ${({ isCentered }) => isCentered && 'auto'};\n\n ${({ maxLines }) =>\n maxLines &&\n maxLines > 0 &&\n css`\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: ${maxLines}; /* number of lines to show */\n line-clamp: ${maxLines};\n -webkit-box-orient: vertical;\n `}\n\n & + & {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst StyledActions = styled(Actions)<{ isCentered?: boolean }>`\n @media ${mq.medium} {\n display: block;\n text-align: ${({ isCentered }) => isCentered && 'center'};\n }\n`;\n\nconst MobileImageContainer = styled.div<{\n isCentered?: boolean;\n coverSpace?: boolean;\n}>`\n width: 100%;\n height: 100%;\n max-width: 400px;\n max-height: ${({ coverSpace }) => coverSpace && '400px'};\n text-align: center;\n\n margin: 0 auto;\n margin-top: ${spacings.spacer}px;\n\n @media ${mq.semilarge} {\n display: ${({ isCentered }) => (isCentered ? 'block' : 'none')};\n }\n`;\n\nconst DesktopImageContainer = styled.div`\n display: none;\n width: 100%;\n\n @media ${mq.semilarge} {\n display: block;\n\n max-width: 400px;\n max-width: calc(100% - 66.66% - ${spacings.spacer}px);\n }\n`;\n\nexport interface IntroActionProps {\n isInverted?: boolean;\n isTextCentered?: boolean;\n}\n\nconst IntroBlock: React.FC<{\n /** Define rendered HTML DOM tag of intro container */\n renderAs?: 'div' | 'figcaption';\n\n /** Color presets for text and blocks. onImage has always a white text color */\n colorMode?: 'default' | 'inverted' | 'onImage';\n\n /** Main title text */\n title?: string;\n\n /** Main title HTML tag type (h2, h3, h4...) */\n titleAs?: HeadlineTag;\n\n /** Main title size */\n titleSize?: TitleSize;\n\n /** Superior title that stands above main title */\n superTitle?: string;\n\n /** Superior title HTML tag type (h3, h4 ...) */\n superTitleAs?: HeadlineTag;\n\n /** Intro text underneath the title (richtext) */\n abstract?: string;\n\n /** Main intro text (richtext) */\n text?: string;\n\n /** Intro image. coverSpace defaults to true */\n image?: ImageProps;\n\n /** Copy type of intro text (limits richtext capabilites on textType == copy-b or copy-i) */\n textType?: CopyType;\n\n /** Copy size of intro text */\n textSize?: keyof FontOptions;\n\n /** Function to inject custom primary button */\n primaryAction?: (props: IntroActionProps) => React.ReactNode;\n\n /** Function to inject custom secondary button */\n secondaryAction?: (props: IntroActionProps) => React.ReactNode;\n\n /** Center text and actions */\n isCentered?: boolean;\n\n /** Clamp title to max width of 880px */\n clampTitle?: boolean;\n\n /** Limit lines of title. Cut of with elipsis */\n maxTitleLines?: number;\n\n /** Clamp text to max width of 880px */\n clampText?: boolean;\n\n /** Clamp abstract to max width of 880px */\n clampAbstract?: boolean;\n\n /** Limit lines of text. Cut of with elipsis */\n maxTextLines?: number;\n\n /** Limit lines of abstract text. Cut of with elipsis */\n maxAbstractLines?: number;\n\n /** Main title hyphens */\n titleHyphens?: boolean;\n\n className?: string;\n}> = ({\n renderAs = 'div',\n colorMode = 'default',\n title,\n titleAs,\n titleSize = 'heading-2',\n superTitle,\n superTitleAs,\n abstract,\n text,\n textType = 'copy',\n textSize = 'medium',\n primaryAction,\n secondaryAction,\n isCentered = false,\n clampTitle = false,\n clampAbstract = false,\n maxTitleLines,\n maxAbstractLines,\n clampText = false,\n maxTextLines,\n className,\n titleHyphens,\n image,\n}) => {\n const isInverted = colorMode === 'inverted' || colorMode === 'onImage';\n const coverSpace = image?.coverSpace === false ? false : true;\n\n return (\n <View as={renderAs} isCentered={isCentered} className={className}>\n <Content>\n {(title || superTitle) && (\n <StyledTitle\n colorMode={colorMode}\n title={title}\n titleAs={titleAs}\n titleSize={titleSize}\n superTitle={superTitle}\n superTitleAs={superTitleAs}\n isCentered={isCentered}\n clamp={clampTitle}\n maxLines={maxTitleLines}\n titleHyphens={titleHyphens}\n />\n )}\n {image?.small && (\n <MobileImageContainer\n isCentered={isCentered}\n coverSpace={coverSpace}\n >\n <Image\n {...image}\n coverSpace={coverSpace}\n allowEdgeRadius\n isInverted={isInverted}\n />\n </MobileImageContainer>\n )}\n {abstract && (\n <ContentBlock\n type=\"copy\"\n size=\"big\"\n textColor={colorMode === 'onImage' ? '#fff' : undefined}\n isInverted={isInverted}\n isCentered={isCentered}\n innerHTML={abstract}\n clamp={clampAbstract}\n maxLines={maxAbstractLines}\n />\n )}\n {text && (\n <ContentBlock\n type={textType}\n size={textSize}\n textColor={colorMode === 'onImage' ? '#fff' : undefined}\n isInverted={isInverted}\n isCentered={isCentered}\n innerHTML={text}\n clamp={clampText}\n maxLines={maxTextLines}\n />\n )}\n {(primaryAction || secondaryAction) && (\n <StyledActions\n primary={\n primaryAction &&\n primaryAction({\n isInverted,\n isTextCentered: isCentered,\n })\n }\n secondary={\n secondaryAction &&\n secondaryAction({\n isInverted,\n isTextCentered: isCentered,\n })\n }\n />\n )}\n </Content>\n\n {image?.small && !isCentered && (\n <DesktopImageContainer>\n <Image\n {...image}\n coverSpace={coverSpace}\n allowEdgeRadius\n isInverted={isInverted}\n />\n </DesktopImageContainer>\n )}\n </View>\n );\n};\n\nexport default IntroBlock;\n","import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react';\nimport styled, { css } from 'styled-components';\nimport { getGlobals as global, mq } from 'utils/styles';\n\nconst AspectContainer = styled.div<{\n ratios?: VideoAspectRatios;\n isInverted?: boolean;\n}>`\n position: relative;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n\n aspect-ratio: ${({ ratios }) => ratios?.small};\n width: ${({ ratios }) => ratios?.small && '100%'};\n max-width: 100%;\n\n background: ${({ theme, isInverted }) =>\n isInverted\n ? global(theme).sections.imagePlaceholderBg.inverted\n : global(theme).sections.imagePlaceholderBg.default};\n object-position: center;\n\n @supports not (aspect-ratio: auto) {\n height: ${({ ratios }) => ratios?.small && 0};\n padding-top: ${({ ratios }) =>\n ratios?.small && `calc(100% / ${ratios?.small})`};\n }\n\n @media ${mq.medium} {\n aspect-ratio: ${({ ratios }) => ratios?.medium};\n\n @supports not (aspect-ratio: auto) {\n padding-top: ${({ ratios }) =>\n ratios?.medium && `calc(100% / ${ratios?.medium})`};\n }\n }\n\n @media ${mq.semilarge} {\n aspect-ratio: ${({ ratios }) => ratios?.semilarge};\n\n @supports not (aspect-ratio: auto) {\n padding-top: ${({ ratios }) =>\n ratios?.semilarge && `calc(100% / ${ratios?.semilarge})`};\n }\n }\n\n @media ${mq.large} {\n aspect-ratio: ${({ ratios }) => ratios?.large};\n\n @supports not (aspect-ratio: auto) {\n padding-top: ${({ ratios }) =>\n ratios?.large && `calc(100% / ${ratios?.large})`};\n }\n }\n\n @media ${mq.xlarge} {\n aspect-ratio: ${({ ratios }) => ratios?.xlarge};\n\n @supports not (aspect-ratio: auto) {\n padding-top: ${({ ratios }) =>\n ratios?.xlarge && `calc(100% / ${ratios?.xlarge})`};\n }\n }\n\n ${({ ratios }) =>\n ratios &&\n css`\n video {\n height: 100%;\n width: 100%;\n object-fit: cover;\n\n @supports not (aspect-ratio: auto) {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n }\n }\n `}\n`;\n\nconst Video = styled.video`\n display: block;\n`;\n\nexport interface VideoAspectRatios {\n small: number;\n medium?: number;\n semilarge?: number;\n large?: number;\n xlarge?: number;\n}\n\nexport interface VideoProps {\n urls?: string[];\n ratios?: VideoAspectRatios;\n isInverted?: boolean;\n\n muted?: boolean;\n autoPlay?: boolean;\n loop?: boolean;\n controls?: boolean;\n playsInline?: boolean;\n onCanPlayThrough?: () => void;\n}\n\nconst VideoBlock = forwardRef<\n HTMLVideoElement,\n VideoProps & { className?: string }\n>(\n (\n {\n urls,\n ratios,\n isInverted,\n muted = false,\n autoPlay = false,\n loop = false,\n controls = false,\n playsInline = true,\n onCanPlayThrough,\n className,\n },\n ref\n ) => {\n const videoRef = useRef<HTMLVideoElement | null>(null);\n\n useImperativeHandle<HTMLVideoElement | null, HTMLVideoElement | null>(\n ref,\n () => videoRef.current\n );\n\n useEffect(() => {\n if (videoRef.current && videoRef.current.readyState > 3) {\n onCanPlayThrough?.();\n }\n }, [onCanPlayThrough]);\n\n return (\n <AspectContainer\n ratios={ratios}\n isInverted={isInverted}\n className={className}\n >\n <Video\n ref={videoRef}\n muted={muted}\n autoPlay={autoPlay}\n loop={loop}\n controls={controls}\n onCanPlayThrough={onCanPlayThrough}\n playsInline={playsInline}\n >\n {urls?.map((url, i) => (\n <source src={url} key={i} />\n ))}\n </Video>\n </AspectContainer>\n );\n }\n);\n\nVideoBlock.displayName = 'VideoBlock';\n\nexport default VideoBlock;\n"],"names":["View","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","_a","isCentered","mq","semilarge","spacings","spacer","Content","templateObject_2","StyledTitle","Title","templateObject_3","clamp","ContentBlock","Copy","templateObject_5","maxLines","css","nudge","StyledActions","Actions","medium","MobileImageContainer","coverSpace","DesktopImageContainer","templateObject_8","AspectContainer","theme","global","sections","edgeRadius","ratios","small","isInverted","getGlobals","imagePlaceholderBg","inverted","default","concat","large","xlarge","Video","video","VideoBlock","forwardRef","ref","urls","_b","muted","_c","autoPlay","_d","loop","_e","controls","_f","playsInline","onCanPlayThrough","className","videoRef","useRef","useImperativeHandle","current","useEffect","readyState","React","createElement","map","url","i","src","key","renderAs","colorMode","title","titleAs","titleSize","superTitle","superTitleAs","abstract","text","textType","textSize","primaryAction","secondaryAction","_g","_h","clampTitle","_j","clampAbstract","maxTitleLines","maxAbstractLines","_k","clampText","maxTextLines","titleHyphens","image","as","Image","__assign","allowEdgeRadius","type","size","textColor","undefined","innerHTML","primary","isTextCentered","secondary"],"mappings":"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"}
package/cjs/blocks.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./TableBlock-007f8e34.js"),r=require("./Actions-c7b16449.js"),s=require("./Bdot-5f8e0450.js"),o=require("./VideoBlock-a7d6ff7d.js"),t=require("./Image-c72f7a80.js"),i=require("./LanguageSwitcher-8fdd22ba.js"),a=require("./EventBlock-04e719a7.js"),c=require("./Tag-9238cf0c.js"),u=require("./POICard-e46f9041.js"),l=require("./InfoList-71d3388a.js"),d=require("./SocialList-1d5f75a8.js");require("./ClockFilled-2483aa4a.js"),require("react"),require("styled-components"),require("./Copy-ea6ab025.js"),require("./clamp-bd21d587.js"),require("./LibThemeProvider-4823de57.js"),require("./styles-3a495a2d.js"),require("react-dom/server"),require("./Link-5a6f1633.js"),require("./statusFormatter-0393122b.js"),require("./arrays-c272ed59.js"),exports.TableBlock=e.TableBlock,exports.Title=e.Title,exports.Actions=r.Actions,exports.Bdot=s.Bdot,exports.IntroBlock=o.IntroBlock,exports.VideoBlock=o.VideoBlock,exports.Image=t.Image,exports.LanguageSwitcher=i.LanguageSwitcher,exports.EventBlock=a.EventBlock,exports.Tag=c.Tag,exports.POICard=u.POICard,exports.POIFacts=u.POIFacts,exports.InfoList=l.InfoList,exports.SocialList=d.SocialList;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./TableBlock-f2c59d9b.js"),r=require("./Actions-c7b16449.js"),s=require("./Bdot-5f8e0450.js"),o=require("./VideoBlock-dea7de8a.js"),t=require("./Image-c72f7a80.js"),i=require("./LanguageSwitcher-8fdd22ba.js"),a=require("./EventBlock-04e719a7.js"),c=require("./Tag-9238cf0c.js"),u=require("./POICard-e46f9041.js"),d=require("./InfoList-71d3388a.js"),l=require("./SocialList-1d5f75a8.js");require("./ClockFilled-2483aa4a.js"),require("react"),require("styled-components"),require("./Copy-ea6ab025.js"),require("./clamp-bd21d587.js"),require("./LibThemeProvider-4823de57.js"),require("./styles-3a495a2d.js"),require("react-dom/server"),require("./Link-5a6f1633.js"),require("./statusFormatter-0393122b.js"),require("./arrays-c272ed59.js"),exports.TableBlock=e.TableBlock,exports.Title=e.Title,exports.Actions=r.Actions,exports.Bdot=s.Bdot,exports.IntroBlock=o.IntroBlock,exports.VideoBlock=o.VideoBlock,exports.Image=t.Image,exports.LanguageSwitcher=i.LanguageSwitcher,exports.EventBlock=a.EventBlock,exports.Tag=c.Tag,exports.POICard=u.POICard,exports.POIFacts=u.POIFacts,exports.InfoList=d.InfoList,exports.SocialList=l.SocialList;
2
2
  //# sourceMappingURL=blocks.js.map
package/cjs/hooks.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./useEqualSheetHeight-501f4c5f.js"),r=require("./useIE-aef9decc.js"),t=require("react"),n=require("./useMediaQuery-3d1054e5.js"),a=require("./useScrollTo-fdd665da.js"),s=require("./useUpdateEffect-4d233e2c.js"),o=require("./useMounted-0bba9869.js"),u=require("./useLazyInput-f71c221b.js"),i=require("./navigation-bf154e6e.js"),l=require("./ClockFilled-2483aa4a.js"),c=require("./hexRgbConverter-91b28aea.js"),f=require("./clamp-bd21d587.js"),d=require("./arrays-c272ed59.js"),p=require("./concat-f387d848.js"),m=require("./styles-3a495a2d.js"),g=require("./useLeafletMap-2e608b01.js"),v=require("./useGeolocation-d8946470.js"),x=require("./useObserverSupport-5ab320dd.js"),h=require("./urlParams-7525f638.js"),w=require("./useCookieConsent-aa9f1104.js");function y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("react-dom/server");var _,S=y(t);exports.ScrollDirection=void 0,(_=exports.ScrollDirection||(exports.ScrollDirection={}))[_.UP=0]="UP",_[_.DOWN=1]="DOWN";var b=function(){if(!n.isBrowser)return!1;var e=document.createElement("canvas");return(!e.getContext||!e.getContext("2d"))&&0==e.toDataURL("image/webp").indexOf("data:image/webp")};var E="undefined"!=typeof window&&"URLSearchParams"in window,P=function(e){var r={},t=Object.fromEntries(e||new URLSearchParams(window.location.search));for(var n in t){var a=t[n];"string"==typeof a&&(a=decodeURIComponent(a)),r[n]=a}return r};exports.useEqualSheetHeight=e.useEqualSheetHeight,exports.useFontsLoaded=e.useFontsLoaded,exports.useResizeThrottle=e.useResizeThrottle,exports.useIE=r.useIE,exports.getMediaQuery=n.getMediaQuery,exports.isBrowser=n.isBrowser,exports.useDynamicMediaQueries=n.useDynamicMediaQueries,exports.useMediaQueries=n.useMediaQueries,exports.useMediaQuery=n.useMediaQuery,exports.useScrollTo=a.useScrollTo,exports.useUpdateEffect=s.useUpdateEffect,exports.useMounted=o.useMounted,exports.useDebounce=u.useDebounce,exports.useLazyInput=u.useLazyInput,exports.useTimeout=u.useTimeout,exports.getCurrentNavItem=i.getCurrentNavItem,exports.getCurrentNavPath=i.getCurrentNavPath,exports.useScrollThrottle=i.useScrollThrottle,exports.hexToRgba=c.hexToRgba,exports.clampValue=f.clampValue,exports.isEmptyArray=d.isEmptyArray,exports.isValidArray=d.isValidArray,exports.concat=p.concat,exports.printAnchorTag=p.printAnchorTag,exports.getSVGDataImg=m.getSVGDataImg,exports.useLeafletMap=g.useLeafletMap,exports.useGeolocation=v.useGeolocation,exports.useObserverSupport=x.useObserverSupport,exports.deleteUrlParam=h.deleteUrlParam,exports.getUrlParams=h.getUrlParams,exports.setUrlParam=h.setUrlParam,exports.selectors=w.selectors,exports.useCookieConsent=w.useCookieConsent,exports.canUseWebP=b,exports.getBgImage=function(e,r){switch(r){default:case"small":return e.small;case"medium":return e.medium||e.semilarge||e.large||e.xlarge||e.small;case"semilarge":return e.semilarge||e.large||e.xlarge||e.medium||e.small;case"large":return e.large||e.xlarge||e.semilarge||e.medium||e.small;case"xlarge":return e.xlarge||e.large||e.semilarge||e.medium||e.small}},exports.getLinkIcon=function(e,r,t){var n,a=m.getGlobals(e).icons.linkIcons,s=".".concat((null==r?void 0:r.split(".").pop())||""),o=a.find((function(e){var r;return null===(r=e.patterns)||void 0===r?void 0:r.find((function(e){return e.match(s)}))}));return(null==o?void 0:o.iconChar)||(null===(n=null==o?void 0:o.iconUrl)||void 0===n?void 0:n.call(o,t))||""},exports.importFonts=function(e){return S.default.createElement(S.default.Fragment,null,e&&e.length>0&&S.default.createElement("style",{dangerouslySetInnerHTML:{__html:null==e?void 0:e.reduce((function(e,r){var t;return(null==r?void 0:r.fallbacks)?e+=null===(t=null==r?void 0:r.fallbacks)||void 0===t?void 0:t.reduce((function(e,r){return e+="@font-face { font-family: '".concat(r.name,"'; size-adjust: ").concat(r.sizeAdjust,"; src: local('").concat(r.altFont,"'); } ")}),""):e}),"")}}),null==e?void 0:e.map((function(e,r){return S.default.createElement("link",{key:r,rel:"preconnect",href:e.rootPath,crossOrigin:"true"})})),null==e?void 0:e.map((function(e,r){return S.default.createElement("link",{key:r,rel:"preload",as:"style",href:e.sourcePath})})),S.default.createElement("style",{dangerouslySetInnerHTML:{__html:"</style>".concat(null==e?void 0:e.reduce((function(e,r){return e+'\n <link rel="stylesheet" href="'.concat(r.sourcePath,'" media="print" onload="this.media=\'all\'" />')}),""),"<style>")}}),S.default.createElement("noscript",null,null==e?void 0:e.map((function(e,r){return S.default.createElement("link",{key:r,rel:"stylesheet",href:e.sourcePath})}))))},exports.useArray=function(e){var r=t.useState(e||[]),n=r[0],a=r[1];return{array:n,set:a,push:function(e){Array.isArray(e)?a((function(r){return l.__spreadArray(l.__spreadArray([],r,!0),e,!0)})):a((function(r){return l.__spreadArray(l.__spreadArray([],r,!0),[e],!1)}))},filter:function(e){a((function(r){return r.filter(e)}))},update:function(e,r){a((function(t){return l.__spreadArray(l.__spreadArray(l.__spreadArray([],t.slice(0,e),!0),[r],!1),t.slice(e+1,t.length),!0)}))},remove:function(e){a((function(r){return l.__spreadArray(l.__spreadArray([],r.slice(0,e),!0),r.slice(e+1,r.length),!0)}))},clear:function(){a([])},pop:function(){var e;return a((function(r){var t=l.__spreadArray([],r,!0);return e=t.pop(),t})),e}}},exports.useImgPreload=function(e,r){void 0===r&&(r=["semilarge","large"]);var a=t.useState(!1),s=a[0],o=a[1],u=t.useState(!1),i=u[0],c=u[1],f=n.useMediaQuery(r),d=t.useState({small:[],medium:[],semilarge:[],large:[],xlarge:[],xxlarge:[],xxxLarge:[]}),p=d[0],m=d[1];return t.useEffect((function(){var r;if(s&&p&&f&&(p[f].length<e.length&&e.length>0)){var t=e.map((function(e){return e[f]}));r=function(e){return e.filter((function(e){return e})).map((function(e,r){return new Promise((function(t){var n=new window.Image;n.src=e,n.onload=function(){return t({url:e,i:r})}}))}))}(t),l.__awaiter(void 0,void 0,void 0,(function(){var e,t,n,a;return l.__generator(this,(function(s){switch(s.label){case 0:e=function(e){var r;return l.__generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return r=t.sent(),m((function(e){var t;return e[f].find((function(e){return e.id===r.i}))?e:l.__assign(l.__assign({},e),((t={})[f]=l.__spreadArray(l.__spreadArray([],e[f],!0),[{id:r.i,image:r.url}],!1),t))})),[2]}}))},t=0,n=r,s.label=1;case 1:return t<n.length?(a=n[t],[5,e(a)]):[3,4];case 2:s.sent(),s.label=3;case 3:return t++,[3,1];case 4:return[2]}}))}))}}),[f,e,s,p]),t.useEffect((function(){if(p&&f){var r=e.filter((function(e){return e[f]})).length;c(p[f].length>=r)}}),[f,e,p]),{loadedImages:f&&p[f],isLoaded:i,setReady:o}},exports.useInterval=function(e,r){var n=t.useRef(e),a=t.useRef();t.useEffect((function(){n.current=e}),[e]);var s=t.useCallback((function(){a.current=window.setInterval((function(){var e;return null===(e=n.current)||void 0===e?void 0:e.call(n)}),r)}),[r]),o=t.useCallback((function(){a.current&&window.clearTimeout(a.current)}),[]);t.useEffect((function(){return s(),o}),[r,s,o]);var u=t.useCallback((function(){o(),s()}),[o,s]);return{clear:o,reset:u}},exports.useItemHeight=function(){var e=t.useState(null),r=e[0],n=e[1],a=t.useState(0),s=a[0],o=a[1];return t.useEffect((function(){var e=function(){r&&o(r.offsetHeight)};return r&&(e(),window.addEventListener("resize",e)),function(){window.removeEventListener("resize",e)}}),[r]),{setElement:n,height:s}},exports.useParams=function(){var e=t.useState({}),r=e[0],n=e[1];t.useEffect((function(){E&&n(P())}),[]);var a=t.useCallback((function(e,t){if(E){var a=l.__assign({},r);a[e]=t;var s=new URLSearchParams(window.location.search);for(var o in a)s.set(o,encodeURIComponent(a[o]));n(P(s)),window.history.replaceState({},"","".concat(location.pathname,"?").concat(s.toString()+location.hash))}}),[r]);return{params:r,update:a}},exports.usePoster=function(e,r){var a=t.useState(),s=a[0],o=a[1],u=e.webp&&b()?e.webp:e,i=n.useMediaQuery(r||["small","medium","semilarge","large","xlarge"]);return t.useEffect((function(){i&&u[i]&&u[i]!==s&&o(u[i])}),[s,i,u]),s},exports.useScroll=function(e){var r=e.initialTopOffset,n=void 0===r?0:r,a=e.onLeftOffset,s=e.onEnterOffset,o=t.useState(n),u=o[0],i=o[1],l=t.useState(!0),c=l[0],f=l[1],d=t.useState(!0),p=d[0],m=d[1],g=t.useState(exports.ScrollDirection.DOWN),v=g[0],x=g[1],h=t.useRef(0);return t.useEffect((function(){if("undefined"!=typeof window){var e=function(){f(window.pageYOffset<=1),m(window.pageYOffset<=1+u),h.current&&(window.pageYOffset>1+u&&h.current<=1+u&&a&&a(),window.pageYOffset<=1+u&&h.current>1+u&&s&&s(),x((function(e){return window.pageYOffset<=1||window.pageYOffset>h.current?exports.ScrollDirection.DOWN:window.pageYOffset<h.current?exports.ScrollDirection.UP:e}))),h.current=window.pageYOffset};return e(),window.addEventListener("scroll",e),function(){window.removeEventListener("scroll",e)}}}),[h,a,s,v,u]),{isTop:c,isInOffset:p,scrollDirection:v,setTopOffset:i,topOffset:u}},exports.useTouch=function(){var e=t.useState(!1),r=e[0],n=e[1];return t.useEffect((function(){n("ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0)}),[]),r};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./useEqualSheetHeight-501f4c5f.js"),r=require("./useIE-aef9decc.js"),t=require("react"),n=require("./useMediaQuery-3d1054e5.js"),a=require("./useScrollTo-fdd665da.js"),s=require("./useUpdateEffect-4d233e2c.js"),o=require("./useMounted-0bba9869.js"),u=require("./useLazyInput-f71c221b.js"),i=require("./navigation-bf154e6e.js"),l=require("./ClockFilled-2483aa4a.js"),c=require("./hexRgbConverter-91b28aea.js"),f=require("./clamp-bd21d587.js"),d=require("./arrays-c272ed59.js"),p=require("./concat-f387d848.js"),m=require("./styles-3a495a2d.js"),g=require("./useLeafletMap-2e608b01.js"),v=require("./useGeolocation-d8946470.js"),x=require("./useObserverSupport-5ab320dd.js"),h=require("./urlParams-7525f638.js"),w=require("./useCookieConsent-aa9f1104.js");function y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("react-dom/server");var _,S=y(t);exports.ScrollDirection=void 0,(_=exports.ScrollDirection||(exports.ScrollDirection={}))[_.UP=0]="UP",_[_.DOWN=1]="DOWN";var b=function(){if(!n.isBrowser)return!1;var e=document.createElement("canvas");return(!e.getContext||!e.getContext("2d"))&&0==e.toDataURL("image/webp").indexOf("data:image/webp")};var E="undefined"!=typeof window&&"URLSearchParams"in window,P=function(e){var r={},t=Object.fromEntries(e||new URLSearchParams(window.location.search));for(var n in t){var a=t[n];"string"==typeof a&&(a=decodeURIComponent(a)),r[n]=a}return r};exports.useEqualSheetHeight=e.useEqualSheetHeight,exports.useFontsLoaded=e.useFontsLoaded,exports.useResizeThrottle=e.useResizeThrottle,exports.useIE=r.useIE,exports.getMediaQuery=n.getMediaQuery,exports.isBrowser=n.isBrowser,exports.useDynamicMediaQueries=n.useDynamicMediaQueries,exports.useMediaQueries=n.useMediaQueries,exports.useMediaQuery=n.useMediaQuery,exports.useScrollTo=a.useScrollTo,exports.useUpdateEffect=s.useUpdateEffect,exports.useMounted=o.useMounted,exports.useDebounce=u.useDebounce,exports.useLazyInput=u.useLazyInput,exports.useTimeout=u.useTimeout,exports.getCurrentNavItem=i.getCurrentNavItem,exports.getCurrentNavPath=i.getCurrentNavPath,exports.useScrollThrottle=i.useScrollThrottle,exports.hexToRgba=c.hexToRgba,exports.clampValue=f.clampValue,exports.isEmptyArray=d.isEmptyArray,exports.isValidArray=d.isValidArray,exports.concat=p.concat,exports.printAnchorTag=p.printAnchorTag,exports.getSVGDataImg=m.getSVGDataImg,exports.useLeafletMap=g.useLeafletMap,exports.useGeolocation=v.useGeolocation,exports.useObserverSupport=x.useObserverSupport,exports.deleteUrlParam=h.deleteUrlParam,exports.getUrlParams=h.getUrlParams,exports.setUrlParam=h.setUrlParam,exports.selectors=w.selectors,exports.useCookieConsent=w.useCookieConsent,exports.canUseWebP=b,exports.getBgImage=function(e,r){switch(r){default:case"small":return e.small;case"medium":return e.medium||e.semilarge||e.large||e.xlarge||e.small;case"semilarge":return e.semilarge||e.large||e.xlarge||e.medium||e.small;case"large":return e.large||e.xlarge||e.semilarge||e.medium||e.small;case"xlarge":return e.xlarge||e.large||e.semilarge||e.medium||e.small}},exports.getLinkIcon=function(e,r,t){var n,a=m.getGlobals(e).icons.linkIcons,s=".".concat((null==r?void 0:r.split(".").pop())||""),o=a.find((function(e){var r;return null===(r=e.patterns)||void 0===r?void 0:r.find((function(e){return e.match(s)}))}));return(null==o?void 0:o.iconChar)||(null===(n=null==o?void 0:o.iconUrl)||void 0===n?void 0:n.call(o,t))||""},exports.importFonts=function(e){return S.default.createElement(S.default.Fragment,null,e&&e.length>0&&S.default.createElement("style",{dangerouslySetInnerHTML:{__html:null==e?void 0:e.reduce((function(e,r){var t;return(null==r?void 0:r.fallbacks)?e+=null===(t=null==r?void 0:r.fallbacks)||void 0===t?void 0:t.reduce((function(e,r){return e+="@font-face { font-family: '".concat(r.name,"'; size-adjust: ").concat(r.sizeAdjust,"; src: local('").concat(r.altFont,"'); } ")}),""):e}),"")}}),null==e?void 0:e.map((function(e,r){return S.default.createElement("link",{key:r,rel:"preconnect",href:e.rootPath,crossOrigin:"true"})})),null==e?void 0:e.map((function(e,r){return S.default.createElement("link",{key:r,rel:"preload",as:"style",href:e.sourcePath})})),S.default.createElement("style",{dangerouslySetInnerHTML:{__html:"</style>".concat(null==e?void 0:e.reduce((function(e,r){return e+'\n <link rel="stylesheet" href="'.concat(r.sourcePath,'" media="print" onload="this.media=\'all\'" />')}),""),"<style>")}}),S.default.createElement("noscript",null,null==e?void 0:e.map((function(e,r){return S.default.createElement("link",{key:r,rel:"stylesheet",href:e.sourcePath})}))))},exports.useArray=function(e){var r=t.useState(e||[]),n=r[0],a=r[1];return{array:n,set:a,push:function(e){Array.isArray(e)?a((function(r){return l.__spreadArray(l.__spreadArray([],r,!0),e,!0)})):a((function(r){return l.__spreadArray(l.__spreadArray([],r,!0),[e],!1)}))},filter:function(e){a((function(r){return r.filter(e)}))},update:function(e,r){a((function(t){return l.__spreadArray(l.__spreadArray(l.__spreadArray([],t.slice(0,e),!0),[r],!1),t.slice(e+1,t.length),!0)}))},remove:function(e){a((function(r){return l.__spreadArray(l.__spreadArray([],r.slice(0,e),!0),r.slice(e+1,r.length),!0)}))},clear:function(){a([])},pop:function(){var e;return a((function(r){var t=l.__spreadArray([],r,!0);return e=t.pop(),t})),e}}},exports.useImgPreload=function(e,r){void 0===r&&(r=["semilarge","large"]);var a=t.useState(!1),s=a[0],o=a[1],u=t.useState(!1),i=u[0],c=u[1],f=n.useMediaQuery(r),d=t.useState({small:[],medium:[],semilarge:[],large:[],xlarge:[],xxlarge:[],xxxLarge:[]}),p=d[0],m=d[1];return t.useEffect((function(){var r;if(s&&p&&f&&(p[f].length<e.length&&e.length>0)){var t=e.map((function(e){return e[f]}));r=function(e){return e.filter((function(e){return e})).map((function(e,r){return new Promise((function(t){var n=new window.Image;n.src=e,n.onload=function(){return t({url:e,i:r})}}))}))}(t),l.__awaiter(void 0,void 0,void 0,(function(){var e,t,n,a;return l.__generator(this,(function(s){switch(s.label){case 0:e=function(e){var r;return l.__generator(this,(function(t){switch(t.label){case 0:return[4,e];case 1:return r=t.sent(),m((function(e){var t;return e[f].find((function(e){return e.id===r.i}))?e:l.__assign(l.__assign({},e),((t={})[f]=l.__spreadArray(l.__spreadArray([],e[f],!0),[{id:r.i,image:r.url}],!1),t))})),[2]}}))},t=0,n=r,s.label=1;case 1:return t<n.length?(a=n[t],[5,e(a)]):[3,4];case 2:s.sent(),s.label=3;case 3:return t++,[3,1];case 4:return[2]}}))}))}}),[f,e,s,p]),t.useEffect((function(){if(p&&f){var r=e.filter((function(e){return e[f]})).length;c(p[f].length>=r)}}),[f,e,p]),{loadedImages:f&&p[f],isLoaded:i,setReady:o}},exports.useInterval=function(e,r){var n=t.useRef(e),a=t.useRef();t.useEffect((function(){n.current=e}),[e]);var s=t.useCallback((function(){a.current=window.setInterval((function(){var e;return null===(e=n.current)||void 0===e?void 0:e.call(n)}),r)}),[r]),o=t.useCallback((function(){a.current&&window.clearInterval(a.current)}),[]);t.useEffect((function(){return s(),o}),[r,s,o]);var u=t.useCallback((function(){o(),s()}),[o,s]);return{clear:o,reset:u}},exports.useItemHeight=function(){var e=t.useState(null),r=e[0],n=e[1],a=t.useState(0),s=a[0],o=a[1];return t.useEffect((function(){var e=function(){r&&o(r.offsetHeight)};return r&&(e(),window.addEventListener("resize",e)),function(){window.removeEventListener("resize",e)}}),[r]),{setElement:n,height:s}},exports.useParams=function(){var e=t.useState({}),r=e[0],n=e[1];t.useEffect((function(){E&&n(P())}),[]);var a=t.useCallback((function(e,t){if(E){var a=l.__assign({},r);a[e]=t;var s=new URLSearchParams(window.location.search);for(var o in a)s.set(o,encodeURIComponent(a[o]));n(P(s)),window.history.replaceState({},"","".concat(location.pathname,"?").concat(s.toString()+location.hash))}}),[r]);return{params:r,update:a}},exports.usePoster=function(e,r){var a=t.useState(),s=a[0],o=a[1],u=e.webp&&b()?e.webp:e,i=n.useMediaQuery(r||["small","medium","semilarge","large","xlarge"]);return t.useEffect((function(){i&&u[i]&&u[i]!==s&&o(u[i])}),[s,i,u]),s},exports.useScroll=function(e){var r=e.initialTopOffset,n=void 0===r?0:r,a=e.onLeftOffset,s=e.onEnterOffset,o=t.useState(n),u=o[0],i=o[1],l=t.useState(!0),c=l[0],f=l[1],d=t.useState(!0),p=d[0],m=d[1],g=t.useState(exports.ScrollDirection.DOWN),v=g[0],x=g[1],h=t.useRef(0);return t.useEffect((function(){if("undefined"!=typeof window){var e=function(){f(window.pageYOffset<=1),m(window.pageYOffset<=1+u),h.current&&(window.pageYOffset>1+u&&h.current<=1+u&&a&&a(),window.pageYOffset<=1+u&&h.current>1+u&&s&&s(),x((function(e){return window.pageYOffset<=1||window.pageYOffset>h.current?exports.ScrollDirection.DOWN:window.pageYOffset<h.current?exports.ScrollDirection.UP:e}))),h.current=window.pageYOffset};return e(),window.addEventListener("scroll",e),function(){window.removeEventListener("scroll",e)}}}),[h,a,s,v,u]),{isTop:c,isInOffset:p,scrollDirection:v,setTopOffset:i,topOffset:u}},exports.useTouch=function(){var e=t.useState(!1),r=e[0],n=e[1];return t.useEffect((function(){n("ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0)}),[]),r};
2
2
  //# sourceMappingURL=hooks.js.map
package/cjs/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../src/utils/useScroll.ts","../src/utils/usePoster.ts","../src/utils/useTouch.ts","../src/utils/useParams.ts","../src/utils/backgroundImage.ts","../src/utils/getLinkIcon.ts","../src/utils/fontLoading.tsx","../src/utils/useArray.ts","../src/utils/useImgPreload.ts","../src/utils/useInterval.ts","../src/utils/useItemHeight.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport enum ScrollDirection {\n UP,\n DOWN,\n}\n\nexport const useScroll = ({\n initialTopOffset = 0,\n onLeftOffset,\n onEnterOffset,\n}: {\n initialTopOffset?: number;\n onLeftOffset?: () => void;\n onEnterOffset?: () => void;\n}) => {\n const [topOffset, setTopOffset] = useState<number>(initialTopOffset);\n const [isTop, setIsTop] = useState<boolean>(true);\n const [isInOffset, setIsInOffset] = useState<boolean>(true);\n const [scrollDirection, setScrollDirection] = useState<ScrollDirection>(\n ScrollDirection.DOWN\n );\n const lastScrollPos = useRef<number>(0);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const handleScroll = () => {\n setIsTop(window.pageYOffset <= 1);\n setIsInOffset(window.pageYOffset <= 1 + topOffset);\n\n if (lastScrollPos.current) {\n // check if top offset is left\n if (\n window.pageYOffset > 1 + topOffset &&\n lastScrollPos.current <= 1 + topOffset\n ) {\n onLeftOffset && onLeftOffset();\n }\n\n // check if top offset was joined\n if (\n window.pageYOffset <= 1 + topOffset &&\n lastScrollPos.current > 1 + topOffset\n ) {\n onEnterOffset && onEnterOffset();\n }\n\n setScrollDirection((prev) => {\n if (window.pageYOffset <= 1) return ScrollDirection.DOWN;\n return window.pageYOffset > lastScrollPos.current\n ? ScrollDirection.DOWN\n : window.pageYOffset < lastScrollPos.current\n ? ScrollDirection.UP\n : prev;\n });\n }\n lastScrollPos.current = window.pageYOffset;\n };\n\n handleScroll();\n window.addEventListener('scroll', handleScroll);\n\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, [\n lastScrollPos,\n onLeftOffset,\n onEnterOffset,\n scrollDirection,\n topOffset,\n ]);\n\n return {\n isTop,\n isInOffset,\n scrollDirection,\n setTopOffset,\n topOffset,\n };\n};\n","import { useEffect, useState } from 'react';\nimport { isBrowser, useMediaQuery } from './useMediaQuery';\n\n// *****************\n// usePoster\n// *****************\n\ninterface PosterImage {\n small: string;\n medium?: string;\n semilarge?: string;\n large?: string;\n xlarge?: string;\n}\n\nexport const canUseWebP = () => {\n if (!isBrowser) return false;\n\n const elem = document.createElement('canvas');\n\n if (!(elem.getContext && elem.getContext('2d'))) {\n // was able or not to get WebP representation\n return elem.toDataURL('image/webp').indexOf('data:image/webp') == 0;\n }\n\n // very old browser like IE 8, canvas not supported\n return false;\n};\n\nexport type PosterMq = 'small' | 'medium' | 'semilarge' | 'large' | 'xlarge';\n\nexport const usePoster = (\n posterImage: PosterImage & {\n webp?: PosterImage;\n },\n mqs?: PosterMq[]\n) => {\n const [currentImage, setCurrentImage] = useState<string | undefined>();\n\n const workingImage =\n posterImage.webp && canUseWebP() ? posterImage.webp : posterImage;\n const currentMq = useMediaQuery(\n mqs || ['small', 'medium', 'semilarge', 'large', 'xlarge']\n ) as PosterMq | undefined;\n\n useEffect(() => {\n if (\n currentMq &&\n workingImage[currentMq] &&\n workingImage[currentMq] !== currentImage\n ) {\n setCurrentImage(workingImage[currentMq]);\n }\n }, [currentImage, currentMq, workingImage]);\n\n return currentImage;\n};\n","import { useState, useEffect } from 'react';\n\nconst useTouch = () => {\n const [canTouch, setCanTouch] = useState(false);\n\n useEffect(() => {\n setCanTouch(\n 'ontouchstart' in window ||\n navigator.maxTouchPoints > 0 ||\n (navigator as any).msMaxTouchPoints > 0\n );\n }, []);\n return canTouch;\n};\n\nexport default useTouch;\n","import { useCallback, useEffect, useState } from 'react';\n\nconst isSupported =\n typeof window !== 'undefined' && 'URLSearchParams' in window;\n\nconst getParamsObj = (params?: URLSearchParams) => {\n const obj: Record<string, string> = {};\n\n const paramsObj = Object.fromEntries(\n params || new URLSearchParams(window.location.search)\n );\n\n for (const param in paramsObj) {\n let value = paramsObj[param];\n if (typeof value === 'string') {\n value = decodeURIComponent(value);\n }\n obj[param] = value;\n }\n\n return obj;\n};\n\nconst useParams = () => {\n const [params, setParams] = useState<Record<string, string>>({});\n\n useEffect(() => {\n if (!isSupported) return;\n\n setParams(getParamsObj());\n }, []);\n\n const update = useCallback(\n (key: string, value: string) => {\n if (!isSupported) return;\n\n const newParams = { ...params };\n newParams[key] = value;\n\n const currentParams = new URLSearchParams(window.location.search);\n for (const param in newParams) {\n currentParams.set(param, encodeURIComponent(newParams[param]));\n }\n\n setParams(getParamsObj(currentParams));\n\n window.history.replaceState(\n {},\n '',\n `${location.pathname}?${\n currentParams.toString() + location.hash\n }`\n );\n },\n [params]\n );\n\n return { params, update };\n};\n\nexport default useParams;\n","export const getBgImage = (\n bgImage: {\n small: string;\n medium?: string;\n semilarge?: string;\n large?: string;\n xlarge?: string;\n },\n mq?: 'small' | 'medium' | 'semilarge' | 'large' | 'xlarge'\n): string => {\n switch (mq) {\n default:\n case 'small':\n return bgImage.small;\n\n case 'medium':\n return (\n bgImage.medium ||\n bgImage.semilarge ||\n bgImage.large ||\n bgImage.xlarge ||\n bgImage.small\n );\n\n case 'semilarge':\n return (\n bgImage.semilarge ||\n bgImage.large ||\n bgImage.xlarge ||\n bgImage.medium ||\n bgImage.small\n );\n\n case 'large':\n return (\n bgImage.large ||\n bgImage.xlarge ||\n bgImage.semilarge ||\n bgImage.medium ||\n bgImage.small\n );\n\n case 'xlarge':\n return (\n bgImage.xlarge ||\n bgImage.large ||\n bgImage.semilarge ||\n bgImage.medium ||\n bgImage.small\n );\n }\n};\n","import { DefaultTheme } from 'styled-components';\nimport { getGlobals as global } from 'utils/styles';\n\nexport const getLinkIcon = (\n theme: DefaultTheme,\n href: string,\n isInverted?: boolean\n): string => {\n const linkIcons = global(theme).icons.linkIcons;\n\n const fileExtension = `.${href?.split('.').pop() || ''}`;\n const result = linkIcons.find((icon) => {\n return icon.patterns?.find((pattern) => pattern.match(fileExtension));\n });\n\n return result?.iconChar || result?.iconUrl?.(isInverted) || '';\n};\n","import React from 'react';\n\ninterface FontFallback {\n name: string;\n altFont: string;\n sizeAdjust: string;\n}\n\nexport interface Font {\n rootPath: string;\n sourcePath: string;\n fallbacks?: FontFallback[];\n}\n\nexport const importFonts = (fonts: Font[]) => {\n return (\n <React.Fragment>\n {fonts && fonts.length > 0 && (\n <style\n dangerouslySetInnerHTML={{\n __html: fonts?.reduce((acc, current) => {\n if (current?.fallbacks) {\n acc += current?.fallbacks?.reduce(\n (fallAcc, f) => {\n fallAcc += `@font-face { font-family: '${f.name}'; size-adjust: ${f.sizeAdjust}; src: local('${f.altFont}'); } `;\n return fallAcc;\n },\n\n ''\n );\n return acc;\n } else return acc;\n }, ''),\n }}\n />\n )}\n\n {fonts?.map((font, i) => (\n <link\n key={i}\n rel=\"preconnect\"\n href={font.rootPath}\n crossOrigin=\"true\"\n />\n ))}\n {fonts?.map((font, i) => (\n <link key={i} rel=\"preload\" as=\"style\" href={font.sourcePath} />\n ))}\n\n <style\n dangerouslySetInnerHTML={{\n __html: `</style>${fonts?.reduce<string>(\n (prev, current) => {\n return (prev += `\n <link rel=\"stylesheet\" href=\"${current.sourcePath}\" media=\"print\" onload=\"this.media='all'\" />`);\n },\n ''\n )}<style>`,\n }}\n />\n\n <noscript>\n {fonts?.map((font, i) => (\n <link key={i} rel=\"stylesheet\" href={font.sourcePath} />\n ))}\n </noscript>\n </React.Fragment>\n );\n};\n","import { useState } from 'react';\n\nconst useArray = <T>(defaultValue?: Array<T>) => {\n const [array, setArray] = useState<Array<T>>(defaultValue || []);\n\n const push = (element: T | T[]) => {\n if (Array.isArray(element)) {\n setArray((prev) => [...prev, ...element]);\n } else {\n setArray((prev) => [...prev, element]);\n }\n };\n\n const pop = () => {\n let lastEl: T | undefined;\n\n setArray((prev) => {\n const copy = [...prev];\n lastEl = copy.pop();\n return copy;\n });\n return lastEl;\n };\n\n const filter = (\n callback: (value: T, index: number, array: T[]) => void\n ) => {\n setArray((prev) => prev.filter(callback));\n };\n\n const update = (index: number, newEl: T) => {\n setArray((prev) => [\n ...prev.slice(0, index),\n newEl,\n ...prev.slice(index + 1, prev.length),\n ]);\n };\n\n const remove = (index: number) => {\n setArray((prev) => [\n ...prev.slice(0, index),\n ...prev.slice(index + 1, prev.length),\n ]);\n };\n\n const clear = () => {\n setArray([]);\n };\n\n return {\n array,\n set: setArray,\n push,\n filter,\n update,\n remove,\n clear,\n pop,\n };\n};\n\nexport default useArray;\n","import { ImageProps } from 'components/blocks/Image';\nimport { useEffect, useState } from 'react';\nimport { MediaQueryType } from './styles';\nimport { useMediaQuery } from './useMediaQuery';\n\nexport const useImgPreload = (\n imageUrls: ImageProps[],\n mqs: MediaQueryType[] = ['semilarge', 'large']\n) => {\n const [isReady, setReady] = useState(false);\n const [isLoaded, setLoaded] = useState(false);\n const currentMq = useMediaQuery(mqs as MediaQueryType[]);\n const [loadedImages, setLoadedImages] = useState<{\n [key: string]: { id: number | string; image: string }[];\n }>({\n small: [],\n medium: [],\n semilarge: [],\n large: [],\n xlarge: [],\n xxlarge: [],\n xxxLarge: [],\n });\n\n const preloadImages = (imageUrls: (string | undefined)[]) => {\n const images = (imageUrls.filter((img) => img) as string[]).map(\n (src, i) => {\n return new Promise((res) => {\n const img = new window.Image();\n img.src = src;\n img.onload = () => res({ url: src, i });\n });\n }\n );\n\n return images;\n };\n\n useEffect(() => {\n if (isReady && loadedImages && currentMq) {\n const loadedForMq = loadedImages[currentMq];\n\n if (loadedForMq.length < imageUrls.length && imageUrls.length > 0) {\n const requestedImages = imageUrls.map((img) => img[currentMq]);\n\n const resolve = async (items: any) => {\n for (const item of items) {\n const x = await item;\n\n setLoadedImages((prev) => {\n // check if image id already exists in array\n if (!prev[currentMq].find((e) => e.id === x.i)) {\n return {\n ...prev,\n [currentMq]: [\n ...prev[currentMq],\n {\n id: x.i,\n image: x.url,\n },\n ],\n };\n } else return prev;\n });\n }\n };\n\n resolve(preloadImages(requestedImages));\n }\n }\n }, [currentMq, imageUrls, isReady, loadedImages]);\n\n useEffect(() => {\n if (loadedImages && currentMq) {\n const imgCount = imageUrls.filter((img) => img[currentMq]).length;\n setLoaded(loadedImages[currentMq].length >= imgCount);\n }\n }, [currentMq, imageUrls, loadedImages]);\n\n return {\n loadedImages: currentMq && loadedImages[currentMq],\n isLoaded,\n setReady,\n };\n};\n","import { useCallback, useEffect, useRef } from 'react';\n\nexport default function useInterval(callback: () => void, delay: number) {\n const callbackRef = useRef(callback);\n const intervalRef = useRef<number>();\n\n // Remember the latest callback.\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const set = useCallback(() => {\n intervalRef.current = window.setInterval(\n () => callbackRef.current?.(),\n delay\n );\n }, [delay]);\n\n const clear = useCallback(() => {\n intervalRef.current && window.clearTimeout(intervalRef.current);\n }, []);\n\n useEffect(() => {\n set();\n return clear;\n }, [delay, set, clear]);\n\n const reset = useCallback(() => {\n clear();\n set();\n }, [clear, set]);\n\n return { clear, reset };\n}\n","import { useEffect, useState } from 'react';\n\nexport const useItemHeight = () => {\n const [element, setElement] = useState<HTMLElement | null>(null);\n const [height, setHeight] = useState<number>(0);\n\n useEffect(() => {\n const calcHeight = () => {\n if (element) setHeight(element.offsetHeight);\n };\n\n if (element) {\n calcHeight();\n window.addEventListener('resize', calcHeight);\n }\n\n return () => {\n window.removeEventListener('resize', calcHeight);\n };\n }, [element]);\n\n return {\n setElement,\n height,\n };\n};\n"],"names":["ScrollDirection","useScroll","canUseWebP","isBrowser","elem","document","createElement","getContext","toDataURL","indexOf","useTouch","isSupported","window","getParamsObj","params","obj","paramsObj","Object","fromEntries","URLSearchParams","location","search","param","value","decodeURIComponent","bgImage","mq","small","medium","semilarge","large","xlarge","theme","href","isInverted","linkIcons","global","getGlobals","icons","fileExtension","concat","split","pop","result","find","icon","_a","patterns","pattern","match","iconChar","iconUrl","call","fonts","React","Fragment","length","dangerouslySetInnerHTML","__html","reduce","acc","current","fallbacks","fallAcc","f","name","sizeAdjust","altFont","map","font","i","key","rel","rootPath","crossOrigin","as","sourcePath","prev","defaultValue","useState","array","setArray","set","push","element","Array","isArray","__spreadArray","filter","callback","update","index","newEl","slice","remove","clear","lastEl","copy","imageUrls","mqs","isReady","setReady","_b","isLoaded","setLoaded","currentMq","useMediaQuery","_c","xxlarge","xxxLarge","loadedImages","setLoadedImages","useEffect","items","requestedImages","img","src","Promise","res","Image","onload","url","preloadImages","__awaiter","item","x","sent","e","id","__assign","image","_i","items_1","imgCount","delay","callbackRef","useRef","intervalRef","useCallback","setInterval","clearTimeout","reset","setElement","height","setHeight","calcHeight","offsetHeight","addEventListener","removeEventListener","setParams","newParams","currentParams","encodeURIComponent","history","replaceState","pathname","toString","hash","posterImage","currentImage","setCurrentImage","workingImage","webp","initialTopOffset","onLeftOffset","onEnterOffset","topOffset","setTopOffset","_d","isTop","setIsTop","_e","isInOffset","setIsInOffset","_f","DOWN","scrollDirection","setScrollDirection","lastScrollPos","handleScroll","pageYOffset","UP","canTouch","setCanTouch","navigator","maxTouchPoints","msMaxTouchPoints"],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sources":["../src/utils/useScroll.ts","../src/utils/usePoster.ts","../src/utils/useTouch.ts","../src/utils/useParams.ts","../src/utils/backgroundImage.ts","../src/utils/getLinkIcon.ts","../src/utils/fontLoading.tsx","../src/utils/useArray.ts","../src/utils/useImgPreload.ts","../src/utils/useInterval.ts","../src/utils/useItemHeight.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport enum ScrollDirection {\n UP,\n DOWN,\n}\n\nexport const useScroll = ({\n initialTopOffset = 0,\n onLeftOffset,\n onEnterOffset,\n}: {\n initialTopOffset?: number;\n onLeftOffset?: () => void;\n onEnterOffset?: () => void;\n}) => {\n const [topOffset, setTopOffset] = useState<number>(initialTopOffset);\n const [isTop, setIsTop] = useState<boolean>(true);\n const [isInOffset, setIsInOffset] = useState<boolean>(true);\n const [scrollDirection, setScrollDirection] = useState<ScrollDirection>(\n ScrollDirection.DOWN\n );\n const lastScrollPos = useRef<number>(0);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const handleScroll = () => {\n setIsTop(window.pageYOffset <= 1);\n setIsInOffset(window.pageYOffset <= 1 + topOffset);\n\n if (lastScrollPos.current) {\n // check if top offset is left\n if (\n window.pageYOffset > 1 + topOffset &&\n lastScrollPos.current <= 1 + topOffset\n ) {\n onLeftOffset && onLeftOffset();\n }\n\n // check if top offset was joined\n if (\n window.pageYOffset <= 1 + topOffset &&\n lastScrollPos.current > 1 + topOffset\n ) {\n onEnterOffset && onEnterOffset();\n }\n\n setScrollDirection((prev) => {\n if (window.pageYOffset <= 1) return ScrollDirection.DOWN;\n return window.pageYOffset > lastScrollPos.current\n ? ScrollDirection.DOWN\n : window.pageYOffset < lastScrollPos.current\n ? ScrollDirection.UP\n : prev;\n });\n }\n lastScrollPos.current = window.pageYOffset;\n };\n\n handleScroll();\n window.addEventListener('scroll', handleScroll);\n\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, [\n lastScrollPos,\n onLeftOffset,\n onEnterOffset,\n scrollDirection,\n topOffset,\n ]);\n\n return {\n isTop,\n isInOffset,\n scrollDirection,\n setTopOffset,\n topOffset,\n };\n};\n","import { useEffect, useState } from 'react';\nimport { isBrowser, useMediaQuery } from './useMediaQuery';\n\n// *****************\n// usePoster\n// *****************\n\ninterface PosterImage {\n small: string;\n medium?: string;\n semilarge?: string;\n large?: string;\n xlarge?: string;\n}\n\nexport const canUseWebP = () => {\n if (!isBrowser) return false;\n\n const elem = document.createElement('canvas');\n\n if (!(elem.getContext && elem.getContext('2d'))) {\n // was able or not to get WebP representation\n return elem.toDataURL('image/webp').indexOf('data:image/webp') == 0;\n }\n\n // very old browser like IE 8, canvas not supported\n return false;\n};\n\nexport type PosterMq = 'small' | 'medium' | 'semilarge' | 'large' | 'xlarge';\n\nexport const usePoster = (\n posterImage: PosterImage & {\n webp?: PosterImage;\n },\n mqs?: PosterMq[]\n) => {\n const [currentImage, setCurrentImage] = useState<string | undefined>();\n\n const workingImage =\n posterImage.webp && canUseWebP() ? posterImage.webp : posterImage;\n const currentMq = useMediaQuery(\n mqs || ['small', 'medium', 'semilarge', 'large', 'xlarge']\n ) as PosterMq | undefined;\n\n useEffect(() => {\n if (\n currentMq &&\n workingImage[currentMq] &&\n workingImage[currentMq] !== currentImage\n ) {\n setCurrentImage(workingImage[currentMq]);\n }\n }, [currentImage, currentMq, workingImage]);\n\n return currentImage;\n};\n","import { useState, useEffect } from 'react';\n\nconst useTouch = () => {\n const [canTouch, setCanTouch] = useState(false);\n\n useEffect(() => {\n setCanTouch(\n 'ontouchstart' in window ||\n navigator.maxTouchPoints > 0 ||\n (navigator as any).msMaxTouchPoints > 0\n );\n }, []);\n return canTouch;\n};\n\nexport default useTouch;\n","import { useCallback, useEffect, useState } from 'react';\n\nconst isSupported =\n typeof window !== 'undefined' && 'URLSearchParams' in window;\n\nconst getParamsObj = (params?: URLSearchParams) => {\n const obj: Record<string, string> = {};\n\n const paramsObj = Object.fromEntries(\n params || new URLSearchParams(window.location.search)\n );\n\n for (const param in paramsObj) {\n let value = paramsObj[param];\n if (typeof value === 'string') {\n value = decodeURIComponent(value);\n }\n obj[param] = value;\n }\n\n return obj;\n};\n\nconst useParams = () => {\n const [params, setParams] = useState<Record<string, string>>({});\n\n useEffect(() => {\n if (!isSupported) return;\n\n setParams(getParamsObj());\n }, []);\n\n const update = useCallback(\n (key: string, value: string) => {\n if (!isSupported) return;\n\n const newParams = { ...params };\n newParams[key] = value;\n\n const currentParams = new URLSearchParams(window.location.search);\n for (const param in newParams) {\n currentParams.set(param, encodeURIComponent(newParams[param]));\n }\n\n setParams(getParamsObj(currentParams));\n\n window.history.replaceState(\n {},\n '',\n `${location.pathname}?${\n currentParams.toString() + location.hash\n }`\n );\n },\n [params]\n );\n\n return { params, update };\n};\n\nexport default useParams;\n","export const getBgImage = (\n bgImage: {\n small: string;\n medium?: string;\n semilarge?: string;\n large?: string;\n xlarge?: string;\n },\n mq?: 'small' | 'medium' | 'semilarge' | 'large' | 'xlarge'\n): string => {\n switch (mq) {\n default:\n case 'small':\n return bgImage.small;\n\n case 'medium':\n return (\n bgImage.medium ||\n bgImage.semilarge ||\n bgImage.large ||\n bgImage.xlarge ||\n bgImage.small\n );\n\n case 'semilarge':\n return (\n bgImage.semilarge ||\n bgImage.large ||\n bgImage.xlarge ||\n bgImage.medium ||\n bgImage.small\n );\n\n case 'large':\n return (\n bgImage.large ||\n bgImage.xlarge ||\n bgImage.semilarge ||\n bgImage.medium ||\n bgImage.small\n );\n\n case 'xlarge':\n return (\n bgImage.xlarge ||\n bgImage.large ||\n bgImage.semilarge ||\n bgImage.medium ||\n bgImage.small\n );\n }\n};\n","import { DefaultTheme } from 'styled-components';\nimport { getGlobals as global } from 'utils/styles';\n\nexport const getLinkIcon = (\n theme: DefaultTheme,\n href: string,\n isInverted?: boolean\n): string => {\n const linkIcons = global(theme).icons.linkIcons;\n\n const fileExtension = `.${href?.split('.').pop() || ''}`;\n const result = linkIcons.find((icon) => {\n return icon.patterns?.find((pattern) => pattern.match(fileExtension));\n });\n\n return result?.iconChar || result?.iconUrl?.(isInverted) || '';\n};\n","import React from 'react';\n\ninterface FontFallback {\n name: string;\n altFont: string;\n sizeAdjust: string;\n}\n\nexport interface Font {\n rootPath: string;\n sourcePath: string;\n fallbacks?: FontFallback[];\n}\n\nexport const importFonts = (fonts: Font[]) => {\n return (\n <React.Fragment>\n {fonts && fonts.length > 0 && (\n <style\n dangerouslySetInnerHTML={{\n __html: fonts?.reduce((acc, current) => {\n if (current?.fallbacks) {\n acc += current?.fallbacks?.reduce(\n (fallAcc, f) => {\n fallAcc += `@font-face { font-family: '${f.name}'; size-adjust: ${f.sizeAdjust}; src: local('${f.altFont}'); } `;\n return fallAcc;\n },\n\n ''\n );\n return acc;\n } else return acc;\n }, ''),\n }}\n />\n )}\n\n {fonts?.map((font, i) => (\n <link\n key={i}\n rel=\"preconnect\"\n href={font.rootPath}\n crossOrigin=\"true\"\n />\n ))}\n {fonts?.map((font, i) => (\n <link key={i} rel=\"preload\" as=\"style\" href={font.sourcePath} />\n ))}\n\n <style\n dangerouslySetInnerHTML={{\n __html: `</style>${fonts?.reduce<string>(\n (prev, current) => {\n return (prev += `\n <link rel=\"stylesheet\" href=\"${current.sourcePath}\" media=\"print\" onload=\"this.media='all'\" />`);\n },\n ''\n )}<style>`,\n }}\n />\n\n <noscript>\n {fonts?.map((font, i) => (\n <link key={i} rel=\"stylesheet\" href={font.sourcePath} />\n ))}\n </noscript>\n </React.Fragment>\n );\n};\n","import { useState } from 'react';\n\nconst useArray = <T>(defaultValue?: Array<T>) => {\n const [array, setArray] = useState<Array<T>>(defaultValue || []);\n\n const push = (element: T | T[]) => {\n if (Array.isArray(element)) {\n setArray((prev) => [...prev, ...element]);\n } else {\n setArray((prev) => [...prev, element]);\n }\n };\n\n const pop = () => {\n let lastEl: T | undefined;\n\n setArray((prev) => {\n const copy = [...prev];\n lastEl = copy.pop();\n return copy;\n });\n return lastEl;\n };\n\n const filter = (\n callback: (value: T, index: number, array: T[]) => void\n ) => {\n setArray((prev) => prev.filter(callback));\n };\n\n const update = (index: number, newEl: T) => {\n setArray((prev) => [\n ...prev.slice(0, index),\n newEl,\n ...prev.slice(index + 1, prev.length),\n ]);\n };\n\n const remove = (index: number) => {\n setArray((prev) => [\n ...prev.slice(0, index),\n ...prev.slice(index + 1, prev.length),\n ]);\n };\n\n const clear = () => {\n setArray([]);\n };\n\n return {\n array,\n set: setArray,\n push,\n filter,\n update,\n remove,\n clear,\n pop,\n };\n};\n\nexport default useArray;\n","import { ImageProps } from 'components/blocks/Image';\nimport { useEffect, useState } from 'react';\nimport { MediaQueryType } from './styles';\nimport { useMediaQuery } from './useMediaQuery';\n\nexport const useImgPreload = (\n imageUrls: ImageProps[],\n mqs: MediaQueryType[] = ['semilarge', 'large']\n) => {\n const [isReady, setReady] = useState(false);\n const [isLoaded, setLoaded] = useState(false);\n const currentMq = useMediaQuery(mqs as MediaQueryType[]);\n const [loadedImages, setLoadedImages] = useState<{\n [key: string]: { id: number | string; image: string }[];\n }>({\n small: [],\n medium: [],\n semilarge: [],\n large: [],\n xlarge: [],\n xxlarge: [],\n xxxLarge: [],\n });\n\n const preloadImages = (imageUrls: (string | undefined)[]) => {\n const images = (imageUrls.filter((img) => img) as string[]).map(\n (src, i) => {\n return new Promise((res) => {\n const img = new window.Image();\n img.src = src;\n img.onload = () => res({ url: src, i });\n });\n }\n );\n\n return images;\n };\n\n useEffect(() => {\n if (isReady && loadedImages && currentMq) {\n const loadedForMq = loadedImages[currentMq];\n\n if (loadedForMq.length < imageUrls.length && imageUrls.length > 0) {\n const requestedImages = imageUrls.map((img) => img[currentMq]);\n\n const resolve = async (items: any) => {\n for (const item of items) {\n const x = await item;\n\n setLoadedImages((prev) => {\n // check if image id already exists in array\n if (!prev[currentMq].find((e) => e.id === x.i)) {\n return {\n ...prev,\n [currentMq]: [\n ...prev[currentMq],\n {\n id: x.i,\n image: x.url,\n },\n ],\n };\n } else return prev;\n });\n }\n };\n\n resolve(preloadImages(requestedImages));\n }\n }\n }, [currentMq, imageUrls, isReady, loadedImages]);\n\n useEffect(() => {\n if (loadedImages && currentMq) {\n const imgCount = imageUrls.filter((img) => img[currentMq]).length;\n setLoaded(loadedImages[currentMq].length >= imgCount);\n }\n }, [currentMq, imageUrls, loadedImages]);\n\n return {\n loadedImages: currentMq && loadedImages[currentMq],\n isLoaded,\n setReady,\n };\n};\n","import { useCallback, useEffect, useRef } from 'react';\n\nexport default function useInterval(callback: () => void, delay: number) {\n const callbackRef = useRef(callback);\n const intervalRef = useRef<number>();\n\n // Remember the latest callback.\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const set = useCallback(() => {\n intervalRef.current = window.setInterval(\n () => callbackRef.current?.(),\n delay\n );\n }, [delay]);\n\n const clear = useCallback(() => {\n intervalRef.current && window.clearInterval(intervalRef.current);\n }, []);\n\n useEffect(() => {\n set();\n return clear;\n }, [delay, set, clear]);\n\n const reset = useCallback(() => {\n clear();\n set();\n }, [clear, set]);\n\n return { clear, reset };\n}\n","import { useEffect, useState } from 'react';\n\nexport const useItemHeight = () => {\n const [element, setElement] = useState<HTMLElement | null>(null);\n const [height, setHeight] = useState<number>(0);\n\n useEffect(() => {\n const calcHeight = () => {\n if (element) setHeight(element.offsetHeight);\n };\n\n if (element) {\n calcHeight();\n window.addEventListener('resize', calcHeight);\n }\n\n return () => {\n window.removeEventListener('resize', calcHeight);\n };\n }, [element]);\n\n return {\n setElement,\n height,\n };\n};\n"],"names":["ScrollDirection","useScroll","canUseWebP","isBrowser","elem","document","createElement","getContext","toDataURL","indexOf","useTouch","isSupported","window","getParamsObj","params","obj","paramsObj","Object","fromEntries","URLSearchParams","location","search","param","value","decodeURIComponent","bgImage","mq","small","medium","semilarge","large","xlarge","theme","href","isInverted","linkIcons","global","getGlobals","icons","fileExtension","concat","split","pop","result","find","icon","_a","patterns","pattern","match","iconChar","iconUrl","call","fonts","React","Fragment","length","dangerouslySetInnerHTML","__html","reduce","acc","current","fallbacks","fallAcc","f","name","sizeAdjust","altFont","map","font","i","key","rel","rootPath","crossOrigin","as","sourcePath","prev","defaultValue","useState","array","setArray","set","push","element","Array","isArray","__spreadArray","filter","callback","update","index","newEl","slice","remove","clear","lastEl","copy","imageUrls","mqs","isReady","setReady","_b","isLoaded","setLoaded","currentMq","useMediaQuery","_c","xxlarge","xxxLarge","loadedImages","setLoadedImages","useEffect","items","requestedImages","img","src","Promise","res","Image","onload","url","preloadImages","__awaiter","item","x","sent","e","id","__assign","image","_i","items_1","imgCount","delay","callbackRef","useRef","intervalRef","useCallback","setInterval","clearInterval","reset","setElement","height","setHeight","calcHeight","offsetHeight","addEventListener","removeEventListener","setParams","newParams","currentParams","encodeURIComponent","history","replaceState","pathname","toString","hash","posterImage","currentImage","setCurrentImage","workingImage","webp","initialTopOffset","onLeftOffset","onEnterOffset","topOffset","setTopOffset","_d","isTop","setIsTop","_e","isInOffset","setIsInOffset","_f","DOWN","scrollDirection","setScrollDirection","lastScrollPos","handleScroll","pageYOffset","UP","canTouch","setCanTouch","navigator","maxTouchPoints","msMaxTouchPoints"],"mappings":"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"}