PageSourceSearch

https://www.theglobeandmail.com/pf/dist/components/combinations/En…otoViewerModal.chunk.js?d=961&mxId=00000000

js theglobeandmail.com collected 2026-09-24 06:43:12 UTC 13,654 bytes, 1 lines download raw bytes

1"use strict";(this.webpackChunkFusion_components=this.webpackChunkFusion_components||[]).push([[7508],{2502:function(e,t,n){n.d(t,{uh:function(){return b}});var o=n(40809);const i="Left",a="Right",s="Up",r="Down",c={delta:10,preventScrollOnSwipe:!1,rotationAngle:0,trackMouse:!1,trackTouch:!0,swipeDuration:1/0,touchEventOptions:{passive:!0}},l={first:!0,initial:[0,0],start:0,swiping:!1,xy:[0,0]},u="mousemove",d="mouseup",h="touchend",p="touchmove",f="touchstart";function v(e,t){if(0===t)return e;const n=Math.PI/180*t;return[e[0]*Math.cos(n)+e[1]*Math.sin(n),e[1]*Math.cos(n)-e[0]*Math.sin(n)]}function m(e,t){const n=t=>{const n="touches"in t;n&&t.touches.length>1||e((e,i)=>{i.trackMouse&&!n&&(document.addEventListener(u,o),document.addEventListener(d,b));const{clientX:a,clientY:s}=n?t.touches[0]:t,r=v([a,s],i.rotationAngle);return i.onTouchStartOrOnMouseDown&&i.onTouchStartOrOnMouseDown({event:t}),Object.assign(Object.assign(Object.assign({},e),l),{initial:r.slice(),xy:r,start:t.timeStamp||0})})},o=t=>{e((e,n)=>{const o="touches"in t;if(o&&t.touches.length>1)return e;if(t.timeStamp-e.start>n.swipeDuration)return e.swiping?Object.assign(Object.assign({},e),{swiping:!1}):e;const{clientX:l,clientY:u}=o?t.touches[0]:t,[d,h]=v([l,u],n.rotationAngle),p=d-e.xy[0],f=h-e.xy[1],m=Math.abs(p),b=Math.abs(f),g=(t.timeStamp||0)-e.start,w=Math.sqrt(m*m+b*b)/(g||1),O=[p/(g||1),f/(g||1)],j=function(e,t,n,o){return e>t?n>0?a:i:o>0?r:s}(m,b,p,f),y="number"==typeof n.delta?n.delta:n.delta[j.toLowerCase()]||c.delta;if(m<y&&b<y&&!e.swiping)return e;const S={absX:m,absY:b,deltaX:p,deltaY:f,dir:j,event:t,first:e.first,initial:e.initial,velocity:w,vxvy:O};S.first&&n.onSwipeStart&&n.onSwipeStart(S),n.onSwiping&&n.onSwiping(S);let x=!1;return(n.onSwiping||n.onSwiped||n[`onSwiped${j}`])&&(x=!0),x&&n.preventScrollOnSwipe&&n.trackTouch&&t.cancelable&&t.preventDefault(),Object.assign(Object.assign({},e),{first:!1,eventData:S,swiping:!0})})},m=t=>{e((e,n)=>{let o;if(e.swiping&&e.eventData){if(t.timeStamp-e.start<n.swipeDuration){o=Object.assign(Object.assign({},e.eventData),{event:t}),n.onSwiped&&n.onSwiped(o);const i=n[`onSwiped${o.dir}`];i&&i(o)}}else n.onTap&&n.onTap({event:t});return n.onTouchEndOrOnMouseUp&&n.onTouchEndOrOnMouseUp({event:t}),Object.assign(Object.assign(Object.assign({},e),l),{eventData:o})})},b=e=>{document.removeEventListener(u,o),document.removeEventListener(d,b),m(e)},g=(e,t)=>{let i=()=>{};if(e&&e.addEventListener){const a=Object.assign(Object.assign({},c.touchEventOptions),t.touchEventOptions),s=[[f,n,a],[p,o,Object.assign(Object.assign({},a),t.preventScrollOnSwipe?{passive:!1}:{})],[h,m,a]];s.forEach(([t,n,o])=>e.addEventListener(t,n,o)),i=()=>s.forEach(([t,n])=>e.removeEventListener(t,n))}return i},w={ref:t=>{null!==t&&e((e,n)=>{if(e.el===t)return e;const o={};return e.el&&e.el!==t&&e.cleanUpTouch&&(e.cleanUpTouch(),o.cleanUpTouch=void 0),n.trackTouch&&t&&(o.cleanUpTouch=g(t,n)),Object.assign(Object.assign(Object.assign({},e),{el:t}),o)})}};return t.trackMouse&&(w.onMouseDown=n),[w,g]}function b(e){const{trackMouse:t}=e,n=o.useRef(Object.assign({},l)),i=o.useRef(Object.assign({},c)),a=o.useRef(Object.assign({},i.current));let s;for(s in a.current=Object.assign({},i.current),i.current=Object.assign(Object.assign({},c),e),c)void 0===i.current[s]&&(i.current[s]=c[s]);const[r,u]=o.useMemo(()=>m(e=>n.current=e(n.current,i.current),{trackMouse:t}),[t]);return n.current=function(e,t,n,o){return t.trackTouch&&e.el?e.cleanUpTouch?t.preventScrollOnSwipe!==n.preventScrollOnSwipe||t.touchEventOptions.passive!==n.touchEventOptions.passive?(e.cleanUpTouch(),Object.assign(Object.assign({},e),{cleanUpTouch:o(e.el,t)})):e:Object.assign(Object.assign({},e),{cleanUpTouch:o(e.el,t)}):(e.cleanUpTouch&&e.cleanUpTouch(),Object.assign(Object.assign({},e),{cleanUpTouch:void 0}))}(n.current,i.current,a.current,u),r}},38309:function(e,t,n){n.r(t),n.d(t,{default:function(){return z}});var o=n(86780),i=n.n(o),a=n(40809),s=n(81862),r=n.n(s),c=n(13287),l=n(2502),u=n(78299),d=n(89167),h=n(85349);function p(){const{shareUrlEmail:e,shareUrlFacebook:t,shareUrlTwitter:n,shareUrlLinkedIn:o,shareUrlWhatsApp:i}=(0,d.p_)(),a=[{label:"Share via Email",icon:"email",href:e},{label:"Share on Facebook",icon:"facebook",href:t},{label:"Share on Twitter",icon:"twitter",href:n},{label:"Share on LinkedIn",icon:"linkedin",href:o},{label:"Share on WhatsApp",icon:"whatsapp",href:i}];return(0,h.jsx)("div",{className:"enhanced-photo-viewer-share-tools",children:a.map(({label:e,icon:t,href:n})=>(0,h.jsx)(u.Ay,{analytics:{fid:"enhanced photo viewer social share tools",label:e},className:"enhanced-photo-viewer-share-tool",href:n,icon:t,theme:"dark"},e))})}p.displayName="EnhancedPhotoViewerShareTools";var f=p,v=n(78206),m=n(12803),b=n(85040),g=n(63490),w=n(82387),O=n(60173),j=n(40966),y=n(9458),S=n(82392),x=n(93900),R=n(70015),_=n(57817),k=n(40761),E=n(22090);function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
1t%2?D(Object(n),!0).forEach(function(t){A(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function A(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const C=(0,n(12675).A)("[EnhancedPhotoViewer]"),{storyContentElements:N}=S.lT,M={srcset:N.widths,sizes:["90vh"]},U={contentElements:i().array.isRequired,activeIndex:i().number,isSponsored:i().bool,uuid:i().string.isRequired,close:i().func,closeButtonRef:x.Ay.reference,onSlideReveal:i().func};function P({contentElements:e=[],activeIndex:t=0,isSponsored:n=!1,uuid:o="",close:i=()=>{},closeButtonRef:s=null,onSlideReveal:r=e=>e}){const d=(0,a.useRef)(void 0),p=(0,a.useRef)(void 0),x=(0,a.useRef)(void 0),D=(0,a.useRef)(void 0),A=(0,a.useRef)(void 0),N=(0,a.useRef)(void 0),[U,P]=(0,a.useState)(t),[I,$]=(0,a.useState)([0,0]),[L,q]=I,[z,V]=(0,a.useState)(0),[W,B]=(0,a.useState)(!1),{isComposerPreview:F}=(0,b.f)(),{slides:X,slidesTotal:Y,captionRefs:H}=(0,a.useMemo)(()=>{const t=e?.filter(e=>"image"===e.type)??[],n=[],o=t.map(e=>{const{aspectRatio:t,aspectRatioDebug:o,caption:i,credit:s,id:r,intrinsicWidth:c,resizedUrls:l,url:u,published:d}=(0,R.bE)(e,"1:I"),h=F&&!d,p=h?u:l?.w900?.[(0,S.JP)(t)]??u,f=c(q),v=q,m=(0,a.createRef)();return n.push(m),{data:e,imageRef:(0,a.createRef)(),sourceData:h?{srcset:[],sizes:[]}:(0,_.G)(l,M,t),imageData:{aspectRatio:t,aspectRatioDebug:o,id:r,caption:i,credit:s,src:p,width:f,height:v},captionRef:m}});return C.debug("slides: ",o),{slides:o,slidesTotal:o.length,captionRefs:n}},[q,e,F]),[G,J]=(0,a.useState)(()=>X.map(()=>!1)),[Q,K]=(0,a.useState)(()=>X.map(()=>!1));(0,a.useEffect)(()=>{J(X.map((e,t)=>{const n=e?.imageRef?.current,o=!(!n||!n.complete);return o&&C.debug(`initially loaded ${t+1}`,{index:t,imageRef:n}),o}))},[X]);const Z=(0,a.useCallback)(e=>{void 0!==G[e]&&J(G.map((t,n)=>n===e||t))},[G]),ee=(0,a.useCallback)(e=>{void 0!==Q[e]&&K(Q.map((t,n)=>n===e||t))},[Q]),te=(0,l.uh)({onSwiping:e=>
1{if(!((window?.visualViewport?.scale||1)>1)&&e.first){switch(e.dir){case"Left":se();break;case"Right":ae()}re()}}}),ne=(0,a.useCallback)(()=>U-1<0?Y-1:U-1,[U,Y]),oe=(0,a.useCallback)(()=>U+1>=Y?0:U+1,[U,Y]);(0,a.useEffect)(function(){const e=D.current;e&&(e.scrollLeft=e.clientWidth*U,(0,k.Tn)(r)&&r(U))},[U,r]);const ie=(0,a.useCallback)((e,t=!0)=>{B(t),P(e);const n=X[e]?.imageRef?.current;n?.complete?(Z(e),C.debug(`already loaded ${e+1}`,{index:e,imageRef:n})):C.debug(`not yet loaded ${e+1}`,{index:e,imageRef:n})},[X,Z]);function ae(){ie(ne())}function se(){ie(oe())}function re(){const e=d?.current;e?.focus()}function ce(){const e=A?.current;e?.focus()}function le(){const e=N?.current;e?.focus()}(0,m._)("keydown",function(e){const t=e.code;if(t===E.Qu)e.preventDefault(),ae();else{if(t!==E.rn)return;e.preventDefault(),se()}re()},{},d.current);const ue=(0,a.useCallback)(()=>{const e=p.current;if(!e||L===e.clientWidth&&q===e.clientHeight||($([e.clientWidth,e.clientHeight]),ie(U,!1)),H?.[0]?.current){const e=H.reduce((e,t)=>{const n=t?.current?.clientHeight??0;return n>e?n:e},0);z!==e&&(V(e),ie(U,!1))}},[q,L,z,H,U,ie]);return(0,g.l)(ue,500),(0,h.jsxs)("div",{className:"enhanced-photo-viewer",ref:d,role:"region","aria-label":"Photo viewer. Use arrow keys or click/tap/swipe to navigate through the photos.",tabIndex:0,"data-sophi-feature":"enhanced photo viewer","data-is-adv":n,children:[s?(0,h.jsx)(u.Ay,{"aria-label":"Close",className:"enhanced-photo-viewer__close",icon:"close",onClick:i,reference:s,theme:"dark"}):null,(0,h.jsxs)("div",{className:"enhanced-photo-viewer__canvas",ref:p,children:[(0,h.jsxs)("div",T(T({className:"enhanced-photo-viewer__nav",ref:e=>{te.ref(e),x.current=e}},te),{},{children:[(0,h.jsx)(u.Ay,{analytics:{label:"Scroll photo viewer left"},"aria-controls":`enhanced-photo-viewer-${o}`,"aria-label":"View previous photo",className:"enhanced-photo-viewer__nav-button enhanced-photo-viewer__nav-button--left",disabled:0===U,onMouseDown:e=>{e.preventDefault(),ce()},onClick:()=>{ae(),ce()},reference:A,tabIndex:-1,theme:"dark",variant:"icon",children:(0,h.jsx)(y.A,{symbol:"back"})}),(0,h.jsx)(u.Ay,{analytics:{label:"Scroll photo viewer right"},"aria-controls":`enhanced-photo-viewer-${o}`,"aria-label":"View next photo",className:"enhanced-photo-viewer__nav-button enhanced-photo-viewer__nav-button--right",disabled:U===Y-1,onMouseDown:e=>{e.preventDefault(),le()},onClick:()=>{se(),le()},reference:N,tabIndex:-1,theme:"dark",variant:"icon",children:(0,h.jsx)(y.A,{symbol:"forward"})})]})),(0,h.jsx)("ul",{className:(0,c.A)(["enhanced-photo-viewer__slides",{"enhanced-photo-viewer__slides--smooth":W}]),ref:D,id:`photo-viewer-${o}`,"aria-live":"polite","aria-atomic":"true",children:X.map(({data:e,imageRef:t,imageData:o,sourceData:i,captionRef:a},s)=>(0,h.jsx)("li",{className:"enhanced-photo-viewer__slide","aria-hidden":U!==s,children:(0,h.jsxs)(w.A,{className:"enhanced-photo-viewer__slide-figure",children:[G[s]||Q[s]?null:(0,h.jsx)(v.A,{id:`enhanced-photo-viewer-spinner-${e._id}`,size:"lg",color:"light"}),Q[s]?(0,h.jsx)("div",{className:"enhanced-photo-viewer__error-message",children:"Image failed to load"}):null,(0,h.jsx)(j.A,{imgClassName:"enhanced-photo-viewer__slide-image",reference:t,src:o.src,srcset:i?.srcset,sizes:i?.sizes,width:o.width,height:o.height,loading:"lazy",onImageLoad:()=>{Z(s),C.debug(`freshly loaded ${s+1}`,{index:s,imageRef:t})},onImageError:()=>{ee(s),C.debug(`load error ${s+1}`,{index:s,imageRef:t})},alt:"","data-content-id":o.id,"data-ct":"image","data-sophi-label":o.caption.toLowerCase(),"data-aspect-ratio-debug":o.aspectRatioDebug}),(0,h.jsx)(O.A,{className:"enhanced-photo-viewer__slide-caption",reference:a,sponsored:n,caption:o.caption,credit:o.credit,sequence:`${s+1} of ${Y}`})]})},e._id))})]}),X[U]?.imageData?.caption||X[U]?.imageData?.credit?(0,h.jsxs)("details",{className:"enhanced-photo-viewer__details","aria-hidden":"true",open:!0,children:[(0,h.jsxs)("summary",{className:"enhanced-photo-viewer__summary "+(n?"text-helr-4":"text-gml-3"),tabIndex:0,children:["Caption ",(0,h.jsx)(y.A,{symbol:"open-accordion"})]}),(0,h.jsx)("div",{className:"enhanced-photo-viewer__floating-caption",style:{height:`${z}px`},children:(0,h.jsx)(O.A,{as:"div",sponsored:n,caption:X[U]?.imageData?.caption,credit:X[U]?.imageData?.credit,sequence:`${U+1} of ${Y}`})})]}):null,(0,h.jsx)("div",{className:"enhanced-photo-viewer__share-tools",children:(0,h.jsx)(f,{})})]})}P.displayName="EnhancedPhotoViewerContent",P.propTypes=U;var I=P;const $="#fusion-app";r().setAppElement($);const L={isOpen:i().bool.isRequired,onAfterClose:i().func,onAfterOpen:i().func,onRequestClose:i().func.isRequired,contentElements:i().array.isRequired,activeIndex:i().number,isSponsored:i().bool,uuid:i().string.isRequired,close:i().func,closeButtonRef:x.Ay.reference,onSlideReveal:i().func};function q({isOpen:e,onAfterClose:t,onAfterOpen:n,onRequestClose:o,contentElements:i=[],activeIndex:s=0,isSponsored:c=!1,uuid:l="",close:u=()=>{},closeButtonRef:d=null,onSlideReveal:p=e=>e}){const f=(0,a.useCallback)(()=>{document.querySelector($).setAttribute("inert",""),n()},[n]),v=(0,a.useCallback)(()=>{document.querySelector($).removeAttribute("inert"),t()},[t]);return(0,h.jsx)(r(),{isOpen:e,bodyOpenClassName:"u-no-scroll",className:"enhanced-photo-viewer-modal-content",overlayClassName:"enhanced-photo-viewer-modal-overlay",shouldCloseOnEsc:!0,shouldCloseOnOverlayClick:!1,onRequestClose:o,onAfterClose:v,onAfterOpen:f,children:(0,h.jsx)(I,{contentElements:i,activeIndex:s,isSponsored:c,uuid:l,close:u,closeButtonRef:d,onSlideReveal:p})})}q.displayName="EnhancedPhotoViewerModal",q.propTypes=L;var z=q},82387:function(e,t,n){var o=n(86780),i=n.n(o),a=n(13287),s=(n(40809),n(85349));const r={className:i().string,children:i().oneOfType([i().arrayOf(i().node),i().node])};function c(e){const{className:t,children:n}=e,o=(0,a.A)(["c-image-figure",t]);return(0,s.jsx)("figure",{className:o,children:n})}c.propTypes=r,c.displayName="Figure",t.A=c}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.