PageSourceSearch

https://account.canapii.com/chunk-GUBMD4BL.js

js canapii.com collected 2026-09-24 09:41:32 UTC 10,379 bytes, 1 lines download raw bytes

1import{Ma as E}from"./chunk-N6YNBQSS.js";import"./chunk-WTUVN6DR.js";import"./chunk-Z4VFRRQH.js";import"./chunk-TO2X7YZY.js";import"./chunk-JN6AA4VD.js";import"./chunk-ZSHO3KMD.js";import"./chunk-QVGEDMLN.js";import"./chunk-UZY2R5Q5.js";import"./chunk-5GAGQHFR.js";import"./chunk-RYT6C367.js";import"./chunk-SNZM6YGS.js";import"./chunk-3PGMBZAP.js";import"./chunk-VT7CJSCD.js";import"./chunk-Y3MTRBLK.js";import"./chunk-XMBPLYUK.js";import"./chunk-QRMJLQVM.js";import"./chunk-24HYNKH3.js";import{a as F}from"./chunk-65I45D2I.js";import"./chunk-GZL4NBTB.js";import"./chunk-OMIAKVTT.js";import"./chunk-3XCK7DOC.js";import"./chunk-PJWNDC7A.js";import"./chunk-QDFFLVTB.js";import"./chunk-S43ITSQ5.js";import{e as k}from"./chunk-5FWAKVG3.js";import{z as b}from"./chunk-KAXBUATZ.js";import{Cc as x,Dc as i,Ea as _,Ec as r,Fc as d,Hb as M,Ia as P,Jb as a,Vc as v,Wb as g,Xc as f,bc as O,g as C,jd as s,kd as w,va as l,vc as p,ve as y,xc as c,z as u}from"./chunk-XW6AEKHB.js";import{l as m}from"./chunk-6G35VSEK.js";var j=(()=>{class t{constructor(n){this.http=n,this.apiBase=`${F.api}/venue-maps/floorplan-viewer`}getFloorplanData(n){let o=new URLSearchParams;return o.append("userToken",n),this.http.get(`${this.apiBase}?${o.toString()}`).pipe(u(e=>{if(e?.success&&e?.data)return{project:e.data.project,floorplans:e.data.floorplans,sponsors:e.data.sponsors||[],sessions:e.data.sessions||[],meetings:e.data.meetings||[]};throw new Error(e?.message||"Failed to load floorplan data")}))}static{this.\u0275fac=function(o){return new(o||t)(P(y))}}static{this.\u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function D(t,h){t&1&&(i(0,"div",1)(1,"div",4)(2,"div",5),d(3,"div",6)(4,"div",6)(5,"div",6),r(),i(6,"div",7),s(7,"Loading floorplan..."),r()()())}function I(t,h){if(t&1&&(i(0,"div",2)(1,"div",8),d(2,"i",9),r(),i(3,"h3"),s(4,"Unable to Load Floorplan"),r(),i(5,"p",10),s(6),r(),i(7,"p",11),s(8,"Please contact event support if this issue persists."),r()()),t&2){let n=f();a(6),w(n.errorMessage)}}function V(t,h){if(t&1&&(i(0,"div",3),d(1,"app-floorplan-preview",12),r()),t&2){let n=f();a(),x("projectFloorplansInput",n.floorplans)("enableInteraction",!0)("backgroundColor","#ffffff")("sessions",n.sessionData)("meetings",n.meetingData)("sponsors",n.sponsorData)}}var q=(()=>{class t{constructor(n,o){this.route=n,this.viewerApiService=o,this.userToken=null,this.eventUrl=null,this.attendeePK=null,this.project=null,this.floorplans=[],this.currentFloorplan=null,this.sessionData=[],this.meetingData=[],this.sponsorData=[],this.isLoading=!0,this.hasError=!1,this.errorMessage="",this.isWebView=!1,this.destroy$=new C,this.isWebView=this.detectWebView()}ngOnInit(){this.route.params.pipe(l(this.destroy$)).subscribe(n=>{this.eventUrl=n.event}),this.route.queryParams.pipe(l(this.destroy$)).subscribe(n=>{if(this.userToken=n.userToken,!this.userToken){this.showError("Access denied. Valid token required.");return}if(!this.eventUrl){this.showError("Invalid event URL.");return}this.loadFloorplanData()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}detectWebView(){let n=navigator.userAgent.toLowerCase();return n.includes("flutter")||n.includes("webview")||n.includes("wv")||window.parent!==window}loadFloorplanData(){return m(this,null,function*(){this.isLoading=!0,this.hasError=!1;try{this.viewerApiService.getFloorplanData(this.userToken).pipe(l(this.destroy$)).subscribe({next:n=>{if(this.project=n.project,this.floorplans=n.floorplans,this.sessionData=n.sessions||[],this.meetingData=n.meetings||[],this.sponsorData=n.sponsors||[],this.floorplans.length===0){this.showError("No active floorplans available.");return}this.isLoading=!1},error:n=>{console.error("Error loading floorplans:",n);let o=n?.message||"Failed to load floorplan data. Please try again.";this.showError(o)}})}catch(n){console.error("Error loading floorplan:",n),this.showError("Failed to load floorplan. Please check your access token.")}})}onLocationClick(n){let o={locationId:n.id,locationPK:n.PK||n.id,locationName:n.name||"Unknown Location",attendeePK:this.attendeePK,timestamp:new Date().toISOString()};if(this.isWebView){let e=window.location.origin;window.parent.postMessage({type:"floorplanLocationClick",data:o},e)}}showError(n){this.isLoading=!1,this.hasError=!0,this.errorMessage=n}onPostMessage(n){n.data.type==="floorplanReady"&&console.log("Floorplan viewer ready notification sent to Flutter")}static{this.\u0275fac=function(o){return new(o||t)(g(k),g(j))}}static{this.\u0275cmp=O({type:t,selectors:[["app-floorplan-viewer"]],hostBindings:function(o,e){o&1&&v("message",function(z){return e.onPostMessage(z)},M)},decls:4,vars:3,consts:[[1,"floorplan-viewer-container"],[1,"loading-overlay-fullscreen"],[1,"error-state"],[1,"floorplan-content"],[1,"loading-content"],[1,"loading-spinner"],[1,"spinner-ring"],[1,"loading-text"],[1,"error-icon"],[1,"bi","bi-exclamation-triangle-fill"],[1,"error-message"],[1,"text-muted","mt-3"],[3,"projectFloorplansInput","enableInteraction","backgroundColor","sessions","meetings","sponsors"]],template:function(o,e){o&1&&(i(0,"div",0),p(1,D,8,0,"div",1),p(2,I,9,1,"div",2),p(3,V,2,6,"div",3),r()),o&2&&(a(),c(e.isLoading?1:-1),a(),c(e.hasError&&!e.isLoading?2:-1),a(),c(!e.isLoading&&!e.hasError?3:-1))},dependencies:[b,E],styles:[".floorplan-viewer-container[_ngcontent-%COMP%]{min-height:100vh;background:#f8f9fa;display:flex;flex-direction:column}.loading-state[_ngcontent-%COMP%], .error-state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px;text-align:center}.loading-state[_ngcontent-%COMP%]   .spinner-border[_ngcontent-%COMP%]{width:3rem;height:3rem}.loading-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:16px}.error-state[_ngcontent-%COMP%]   .error-icon[_ngcontent-%COMP%]{font-size:64px;color:#dc3545;margin-bottom:20px}.error-state[_ngcontent-%COMP%]   .error-icon[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{display:block}.error-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#212529;font-weight:600;margin-bottom:12px}.error-state[_ngcontent-%COMP%]   .error-message[_ngcontent-%COMP%]{color:#6c757d;font-size:16px;max-width:500px;margin:0 auto}.loading-overlay-fullscreen[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;position:absolute;inset:0;width:100%;height:100%;background-color:#f6f6f6;z-index:9999}.loading-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:24px}.loading-spinner[_ngcontent-%COMP%]{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center}.loading-spinner[_ngcontent-%COMP%]   .spinner-ring[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;border-radius:50%;border:3px solid transparent;border-top-color:#52badd;animation:_ngcontent-%COMP%_spin 1.5s cubic-bezier(.68,-.55,.27,1.55) infinite}.loading-spinner[_ngcontent-%COMP%]   .spinner-ring[_ngcontent-%COMP%]:nth-child(2){width:70%;height:70%;border-top-color:#20798d;animation-duration:1.8s;animation-direction:reverse}.loading-spinner[_ngcontent-%COMP%]   .spinner-ring[_ngcontent-%COMP%]:nth-child(3){width:40%;height:40%;border-top-color:#164874;animation-duration:1.2s}.loading-text[_ngcontent-%COMP%]{font-size:16px;font-weight:500;color:#164874;letter-spacing:.5px;animation:_ngcontent-%COMP%_pulse 2s ease-in-out infinite}.floorplan-content[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;height:100vh}.floorplan-header[_ngcontent-%COMP%]{background:#fff;padding:16px 20px;border-bottom:1px solid #dee2e6;box-shadow:0 2px 4px #0000000d}.floorplan-header[_ngcontent-%COMP%]   .event-info[_ngcontent-%COMP%]{margin-bottom:16px}.floorplan-header[_ngcontent-%COMP%]   .event-info[_ngcontent-%COMP%]   h4[_ng
1content-%COMP%]{font-weight:600;color:#212529;font-size:20px}.floorplan-header[_ngcontent-%COMP%]   .event-info[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px}.floorplan-header[_ngcontent-%COMP%]   .floor-selector[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:#495057;margin-bottom:8px;display:block}.floorplan-header[_ngcontent-%COMP%]   .floor-selector[_ngcontent-%COMP%]   .btn-group[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px}.floorplan-header[_ngcontent-%COMP%]   .floor-selector[_ngcontent-%COMP%]   .btn-group[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]{font-size:14px;padding:8px 16px;border-radius:6px;transition:all .2s}.floorplan-canvas-wrapper[_ngcontent-%COMP%]{flex:1;position:relative;overflow:hidden;background:#fff}.floorplan-canvas-wrapper[_ngcontent-%COMP%]   .konva-container[_ngcontent-%COMP%]{width:100%;height:100%;position:relative}.floorplan-instructions[_ngcontent-%COMP%]{background:#fff;padding:12px 20px;border-top:1px solid #dee2e6}.floorplan-instructions[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px;display:flex;align-items:center}.floorplan-instructions[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:16px;color:#0d6efd}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes _ngcontent-%COMP%_fade-in{0%{opacity:0}to{opacity:1}}@keyframes _ngcontent-%COMP%_slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (width <= 768px){.floorplan-header[_ngcontent-%COMP%]{padding:12px 16px}.floorplan-header[_ngcontent-%COMP%]   .event-info[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font-size:18px}.floorplan-header[_ngcontent-%COMP%]   .event-info[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:13px}.floorplan-header[_ngcontent-%COMP%]   .floor-selector[_ngcontent-%COMP%]   .btn-group[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]{font-size:13px;padding:6px 12px}.floorplan-instructions[_ngcontent-%COMP%]{padding:10px 16px}.floorplan-instructions[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:13px}}.webview[_nghost-%COMP%]   .floorplan-header[_ngcontent-%COMP%], .webview   [_nghost-%COMP%]   .floorplan-header[_ngcontent-%COMP%]{padding-top:env(safe-area-inset-top,12px)}.webview[_nghost-%COMP%]   .floorplan-instructions[_ngcontent-%COMP%], .webview   [_nghost-%COMP%]   .floorplan-instructions[_ngcontent-%COMP%]{padding-bottom:env(safe-area-inset-bottom,12px)}"]})}}return t})();export{q as FloorplanViewerComponent};

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.