{"version":3,"sources":["./node_modules/@ionic/core/dist/esm-es5 lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","./src/app/app.component.html","./src/app/components/admin-config/admin-config.component.html","./src/app/components/app-banner/app-banner.component.html","./src/app/components/back-button/back-button.component.html","./src/app/components/header-title/header-title.component.html","./src/app/components/image-viewer/image-viewer.component.html","./src/app/components/loading-indicator/loading-indicator.component.html","./src/app/components/location-list/location-list.component.html","./src/app/components/location-notification/location-notification.component.html","./src/app/components/logo-footer/logo-footer.component.html","./src/app/components/map/map.component.html","./src/app/components/modals/single-video/single-video.component.html","./src/app/components/navbutton/navbutton.component.html","./src/app/components/pass-lock/pass-lock.component.html","./src/app/components/protagonists-list/protagonists-list.component.html","./src/app/components/space-list/space-list.component.html","./src/app/components/space-map-menu/space-map-menu.component.html","./src/app/components/stories/stories.component.html","./src/app/components/storyteller-overlay/storyteller-overlay.component.html","./src/app/pages/single-term/single-term.page.html","./node_modules/tslib/tslib.es6.js","./src/$_lazy_route_resource lazy namespace object","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/classes/app-injector/app-injector.ts","./src/app/classes/audio-helper/audio-helper.ts","./src/app/classes/dom-helper/dom-helper.ts","./src/app/classes/modal-helper/modal-helper.ts","./src/app/components/admin-config/admin-config.component.scss","./src/app/components/admin-config/admin-config.component.ts","./src/app/components/app-banner/app-banner.component.scss","./src/app/components/app-banner/app-banner.component.ts","./src/app/components/back-button/back-button.component.scss","./src/app/components/back-button/back-button.component.ts","./src/app/components/components.module.ts","./src/app/components/header-title/header-title.component.scss","./src/app/components/header-title/header-title.component.ts","./src/app/components/image-viewer/image-viewer.component.scss","./src/app/components/image-viewer/image-viewer.component.ts","./src/app/components/loading-indicator/loading-indicator.component.scss","./src/app/components/loading-indicator/loading-indicator.component.ts","./src/app/components/location-list/location-list.component.scss","./src/app/components/location-list/location-list.component.ts","./src/app/components/location-notification/location-notification.component.scss","./src/app/components/location-notification/location-notification.component.ts","./src/app/components/logo-footer/logo-footer.component.scss","./src/app/components/logo-footer/logo-footer.component.ts","./src/app/components/map/map-style.ts","./src/app/components/map/map.component.scss","./src/app/components/map/map.component.ts","./src/app/components/map/map.drawhelper.ts","./src/app/components/map/map.tilehelper.ts","./src/app/components/map/storychooser.ts","./src/app/components/map/userlocator.ts","./src/app/components/modals/single-video/single-video.component.scss","./src/app/components/modals/single-video/single-video.component.ts","./src/app/components/navbutton/navbutton.component.scss","./src/app/components/navbutton/navbutton.component.ts","./src/app/components/pass-lock/pass-lock.component.scss","./src/app/components/pass-lock/pass-lock.component.ts","./src/app/components/protagonists-list/protagonists-list.component.scss","./src/app/components/protagonists-list/protagonists-list.component.ts","./src/app/components/space-list/space-list.component.scss","./src/app/components/space-list/space-list.component.ts","./src/app/components/space-map-menu/space-map-menu.component.scss","./src/app/components/space-map-menu/space-map-menu.component.ts","./src/app/components/space-map-menu/spacePositions.ts","./src/app/components/stories/stories.component.scss","./src/app/components/stories/stories.component.ts","./src/app/components/storyteller-overlay/storyteller-overlay.component.scss","./src/app/components/storyteller-overlay/storyteller-overlay.component.ts","./src/app/constants.ts","./src/app/interfaces/map.ts","./src/app/pages/single-term/single-term.module.ts","./src/app/pages/single-term/single-term.page.scss","./src/app/pages/single-term/single-term.page.ts","./src/app/pipes.module.ts","./src/app/pipes/safe-html.pipe.ts","./src/app/services/activity/activity.service.ts","./src/app/services/app/app.service.ts","./src/app/services/attachment/attachment.service.ts","./src/app/services/auth/auth.service.ts","./src/app/services/context/context.service.ts","./src/app/services/history/history.service.ts","./src/app/services/index.ts","./src/app/services/location/location.service.ts","./src/app/services/menu/menu.service.ts","./src/app/services/page/page.service.ts","./src/app/services/protagonist/protagonist.service.ts","./src/app/services/route/route.service.ts","./src/app/services/settings/settings.service.ts","./src/app/services/space/space.service.ts","./src/app/services/storage/storage.service.ts","./src/app/services/story/story.service.ts","./src/app/services/term/term.service.ts","./src/app/services/translator/TranslatePipe.ts","./src/app/services/translator/translator.service.ts","./src/app/translations.ts","./src/app/utils/BeerSlider.js","./src/app/utils/array-flat.ts","./src/app/utils/array-unique.ts","./src/app/utils/download-file.ts","./src/app/utils/fetch-url.ts","./src/app/utils/generate-id.ts","./src/app/utils/index.ts","./src/app/utils/kiosk.ts","./src/app/utils/listeners/accordion.listener.ts","./src/app/utils/listeners/document-style.listener.ts","./src/app/utils/listeners/firebase-analytics.listener.ts","./src/app/utils/listeners/glossary-link.listener.ts","./src/app/utils/listeners/image-comparison-slider.listener.ts","./src/app/utils/listeners/image-slides.listener.ts","./src/app/utils/listeners/image-viewer.listener.ts","./src/app/utils/listeners/index.ts","./src/app/utils/listeners/interferer.listener.ts","./src/app/utils/listeners/nav-link.listener.ts","./src/app/utils/listeners/svg-extractor.listener.ts","./src/app/utils/listeners/video.listener.ts","./src/app/utils/listeners/wavesurfer.listener.ts","./src/app/utils/map.ts","./src/app/utils/progress.ts","./src/app/utils/timeout.ts","./src/app/utils/unzip-file.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;;ACtZA;AAAe,6nDAA8jD,wBAAwB,yVAAyV,yBAAyB,4zBAA4zB,sBAAsB,09BAA09B,WAAW,2QAA2Q,cAAc,6O;;;;;;;;;;;;ACAviI;AAAe,4vGAA6rG,cAAc,keAAke,cAAc,scAAsc,iBAAiB,6zBAA6zB,cAAc,8OAA8O,UAAU,qkBAAqkB,kBAAkB,wY;;;;;;;;;;;;ACA3zL;AAAe,mQAAoM,kCAAkC,kBAAkB,gDAAgD,2JAA2J,yBAAyB,oHAAoH,2BAA2B,4C;;;;;;;;;;;;ACA1nB;AAAe,iL;;;;;;;;;;;;ACAf;AAAe,4K;;;;;;;;;;;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A2B,MAAM,eAAe,EAAE,YAAY,oBAAoB,EAAE;AACpF,sBAAsB,oGAAoG;AAC1H,6BAA6B,uBAAuB;AACpD,4BAA4B,wBAAwB;AACpD,2BAA2B,yDAAyD;AACpF;;AAEO;AACP;AACA,iBAAiB,4CAA4C,SAAS,EAAE,qDAAqD,aAAa,EAAE;AAC5I,yBAAyB,6BAA6B,oBAAoB,gDAAgD,gBAAgB,EAAE,KAAK;AACjJ;;AAEO;AACP;AACA;AACA,2GAA2G,sFAAsF,aAAa,EAAE;AAChN,sBAAsB,8BAA8B,gDAAgD,uDAAuD,EAAE,EAAE,GAAG;AAClK,4CAA4C,sCAAsC,UAAU,oBAAoB,EAAE,EAAE,UAAU;AAC9H;;AAEO;AACP,gCAAgC,uCAAuC,aAAa,EAAE,EAAE,OAAO,kBAAkB;AACjH;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,4CAA4C;AAC5C;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;;;;;;;;ACxEyC;AACiC;AAE1E,IAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,2CAA2C;KAC1D;IACD;QACE,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,qDAAqD;KACpE;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,YAAY,EACV,kFAAkF;KACrF;IACD;QACE,IAAI,EAAE,SAAS;Q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","file":"main.js","sourcesContent":["var map = {\n\t\"./ion-action-sheet-controller_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-action-sheet-controller_8.entry.js\",\n\t\t\"common\",\n\t\t2\n\t],\n\t\"./ion-action-sheet-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-action-sheet-ios.entry.js\",\n\t\t\"common\",\n\t\t3\n\t],\n\t\"./ion-action-sheet-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-action-sheet-md.entry.js\",\n\t\t\"common\",\n\t\t4\n\t],\n\t\"./ion-alert-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-alert-ios.entry.js\",\n\t\t\"common\",\n\t\t5\n\t],\n\t\"./ion-alert-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-alert-md.entry.js\",\n\t\t\"common\",\n\t\t6\n\t],\n\t\"./ion-app_8-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-app_8-ios.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t7\n\t],\n\t\"./ion-app_8-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-app_8-md.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t8\n\t],\n\t\"./ion-avatar_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-avatar_3-ios.entry.js\",\n\t\t\"common\",\n\t\t9\n\t],\n\t\"./ion-avatar_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-avatar_3-md.entry.js\",\n\t\t\"common\",\n\t\t10\n\t],\n\t\"./ion-back-button-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-back-button-ios.entry.js\",\n\t\t\"common\",\n\t\t11\n\t],\n\t\"./ion-back-button-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-back-button-md.entry.js\",\n\t\t\"common\",\n\t\t12\n\t],\n\t\"./ion-backdrop-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-backdrop-ios.entry.js\",\n\t\t13\n\t],\n\t\"./ion-backdrop-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-backdrop-md.entry.js\",\n\t\t14\n\t],\n\t\"./ion-button_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-button_2-ios.entry.js\",\n\t\t\"common\",\n\t\t15\n\t],\n\t\"./ion-button_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-button_2-md.entry.js\",\n\t\t\"common\",\n\t\t16\n\t],\n\t\"./ion-card_5-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-card_5-ios.entry.js\",\n\t\t\"common\",\n\t\t17\n\t],\n\t\"./ion-card_5-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-card_5-md.entry.js\",\n\t\t\"common\",\n\t\t18\n\t],\n\t\"./ion-checkbox-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-checkbox-ios.entry.js\",\n\t\t\"common\",\n\t\t19\n\t],\n\t\"./ion-checkbox-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-checkbox-md.entry.js\",\n\t\t\"common\",\n\t\t20\n\t],\n\t\"./ion-chip-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-chip-ios.entry.js\",\n\t\t\"common\",\n\t\t21\n\t],\n\t\"./ion-chip-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-chip-md.entry.js\",\n\t\t\"common\",\n\t\t22\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-col_3.entry.js\",\n\t\t23\n\t],\n\t\"./ion-datetime_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-datetime_3-ios.entry.js\",\n\t\t\"common\",\n\t\t24\n\t],\n\t\"./ion-datetime_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-datetime_3-md.entry.js\",\n\t\t\"common\",\n\t\t25\n\t],\n\t\"./ion-fab_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-fab_3-ios.entry.js\",\n\t\t\"common\",\n\t\t26\n\t],\n\t\"./ion-fab_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-fab_3-md.entry.js\",\n\t\t\"common\",\n\t\t27\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-img.entry.js\",\n\t\t28\n\t],\n\t\"./ion-infinite-scroll_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-infinite-scroll_2-ios.entry.js\",\n\t\t\"common\",\n\t\t29\n\t],\n\t\"./ion-infinite-scroll_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-infinite-scroll_2-md.entry.js\",\n\t\t\"common\",\n\t\t30\n\t],\n\t\"./ion-input-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-input-ios.entry.js\",\n\t\t\"common\",\n\t\t31\n\t],\n\t\"./ion-input-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-input-md.entry.js\",\n\t\t\"common\",\n\t\t32\n\t],\n\t\"./ion-item-option_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-item-option_3-ios.entry.js\",\n\t\t\"common\",\n\t\t33\n\t],\n\t\"./ion-item-option_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-item-option_3-md.entry.js\",\n\t\t\"common\",\n\t\t34\n\t],\n\t\"./ion-item_8-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-item_8-ios.entry.js\",\n\t\t\"common\",\n\t\t35\n\t],\n\t\"./ion-item_8-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-item_8-md.entry.js\",\n\t\t\"common\",\n\t\t36\n\t],\n\t\"./ion-loading-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-loading-ios.entry.js\",\n\t\t\"common\",\n\t\t37\n\t],\n\t\"./ion-loading-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-loading-md.entry.js\",\n\t\t\"common\",\n\t\t38\n\t],\n\t\"./ion-menu_4-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-menu_4-ios.entry.js\",\n\t\t\"common\",\n\t\t39\n\t],\n\t\"./ion-menu_4-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-menu_4-md.entry.js\",\n\t\t\"common\",\n\t\t40\n\t],\n\t\"./ion-modal-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-modal-ios.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t41\n\t],\n\t\"./ion-modal-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-modal-md.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t42\n\t],\n\t\"./ion-nav_5.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-nav_5.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t43\n\t],\n\t\"./ion-popover-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-popover-ios.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t44\n\t],\n\t\"./ion-popover-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-popover-md.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t45\n\t],\n\t\"./ion-progress-bar-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-progress-bar-ios.entry.js\",\n\t\t\"common\",\n\t\t46\n\t],\n\t\"./ion-progress-bar-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-progress-bar-md.entry.js\",\n\t\t\"common\",\n\t\t47\n\t],\n\t\"./ion-radio_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-radio_2-ios.entry.js\",\n\t\t\"common\",\n\t\t48\n\t],\n\t\"./ion-radio_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-radio_2-md.entry.js\",\n\t\t\"common\",\n\t\t49\n\t],\n\t\"./ion-range-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-range-ios.entry.js\",\n\t\t\"common\",\n\t\t50\n\t],\n\t\"./ion-range-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-range-md.entry.js\",\n\t\t\"common\",\n\t\t51\n\t],\n\t\"./ion-refresher_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-refresher_2-ios.entry.js\",\n\t\t\"common\",\n\t\t52\n\t],\n\t\"./ion-refresher_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-refresher_2-md.entry.js\",\n\t\t\"common\",\n\t\t53\n\t],\n\t\"./ion-reorder_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-reorder_2-ios.entry.js\",\n\t\t\"common\",\n\t\t54\n\t],\n\t\"./ion-reorder_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-reorder_2-md.entry.js\",\n\t\t\"common\",\n\t\t55\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-ripple-effect.entry.js\",\n\t\t56\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-route_4.entry.js\",\n\t\t\"common\",\n\t\t57\n\t],\n\t\"./ion-searchbar-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-searchbar-ios.entry.js\",\n\t\t\"common\",\n\t\t58\n\t],\n\t\"./ion-searchbar-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-searchbar-md.entry.js\",\n\t\t\"common\",\n\t\t59\n\t],\n\t\"./ion-segment_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-segment_2-ios.entry.js\",\n\t\t\"common\",\n\t\t60\n\t],\n\t\"./ion-segment_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-segment_2-md.entry.js\",\n\t\t\"common\",\n\t\t61\n\t],\n\t\"./ion-select_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-select_3-ios.entry.js\",\n\t\t\"common\",\n\t\t62\n\t],\n\t\"./ion-select_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-select_3-md.entry.js\",\n\t\t\"common\",\n\t\t63\n\t],\n\t\"./ion-slide_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-slide_2-ios.entry.js\",\n\t\t64\n\t],\n\t\"./ion-slide_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-slide_2-md.entry.js\",\n\t\t65\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-spinner.entry.js\",\n\t\t\"common\",\n\t\t66\n\t],\n\t\"./ion-split-pane-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-split-pane-ios.entry.js\",\n\t\t67\n\t],\n\t\"./ion-split-pane-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-split-pane-md.entry.js\",\n\t\t68\n\t],\n\t\"./ion-tab-bar_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-tab-bar_2-ios.entry.js\",\n\t\t\"common\",\n\t\t69\n\t],\n\t\"./ion-tab-bar_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-tab-bar_2-md.entry.js\",\n\t\t\"common\",\n\t\t70\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-tab_2.entry.js\",\n\t\t1\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-text.entry.js\",\n\t\t\"common\",\n\t\t71\n\t],\n\t\"./ion-textarea-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-textarea-ios.entry.js\",\n\t\t\"common\",\n\t\t72\n\t],\n\t\"./ion-textarea-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-textarea-md.entry.js\",\n\t\t\"common\",\n\t\t73\n\t],\n\t\"./ion-toast-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-toast-ios.entry.js\",\n\t\t\"common\",\n\t\t74\n\t],\n\t\"./ion-toast-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-toast-md.entry.js\",\n\t\t\"common\",\n\t\t75\n\t],\n\t\"./ion-toggle-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-toggle-ios.entry.js\",\n\t\t\"common\",\n\t\t76\n\t],\n\t\"./ion-toggle-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-toggle-md.entry.js\",\n\t\t\"common\",\n\t\t77\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-virtual-scroll.entry.js\",\n\t\t78\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./node_modules/@ionic/core/dist/esm-es5 lazy recursive ^\\\\.\\\\/.*\\\\.entry\\\\.js$ include: \\\\.entry\\\\.js$ exclude: \\\\.system\\\\.entry\\\\.js$\";\nmodule.exports = webpackAsyncContext;","export default \"
\\n \\\"Splashscreen\\\"\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n {{ 'german' | translate }}\\n \\n \\n \\n \\n \\n \\n {{ 'english' | translate }}\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n \\n {{ 'home' | translate }}\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n {{ appVersion }}\\n \\n\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n\"","export default \"
\\n
\\n \\n \\n \\n Admin Einstellungen\\n \\n \\n\\n \\n \\n\\n \\n Kiosk Modus\\n \\n\\n \\n \\n\\n \\n \\n\\n \\n Launcher\\n \\n\\n \\n \\n\\n \\n \\n\\n \\n Launcher wählen\\n \\n \\n\\n \\n \\n\\n \\n Einstellungen verbergen\\n \\n\\n \\n \\n\\n \\n \\n Environment\\n\\n \\n \\n Production\\n \\n\\n \\n Development\\n \\n \\n \\n\\n \\n \\n\\n \\n Neu starten\\n \\n \\n \\n\\n \\n \\n \\n Features\\n \\n \\n\\n \\n \\n\\n \\n Stelen Feature\\n \\n\\n \\n \\n\\n
\\n \\n \\n Erlebnisraum\\n \\n \\n {{ space.name }}\\n \\n \\n \\n\\n \\n \\n Route\\n \\n \\n {{ route.name }}\\n \\n \\n \\n\\n \\n \\n Standort\\n \\n \\n {{ location.name }}\\n \\n \\n \\n\\n \\n \\n Bei Inaktivität zurücknavigieren\\n \\n \\n
\\n
\\n\\n \\n \\n \\n Status\\n \\n \\n\\n \\n \\n\\n App Version\\n\\n \\n {{ appVersion }}\\n \\n \\n\\n \\n \\n\\n API\\n\\n \\n {{ apiUrl }}\\n \\n \\n \\n\\n 0\\\">\\n \\n \\n App Versionen\\n \\n \\n\\n \\n \\n\\n \\n {{ app.name || '' }}\\n \\n \\n \\n
\\n\\n
\\n \\n Schließen\\n \\n
\\n\\n \\n
\\n\"","export default \"
\\n
\\n \\n
\\n

{{ 'we_can_do_better' | translate }}!

\\n

{{ 'install_the_app_on_your_device' | translate }}

\\n
\\n
\\n\\n
\\n \\n {{ 'use_app' | translate }}\\n \\n\\n \\n {{ 'no_thanks' | translate }}\\n \\n
\\n
\\n\"","export default \"\\n \\n\"","export default \"\\n perspektivwechsel\\n\"","export default \"\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n\\n \\n {{ title }}\\n \\n
\\n
\\n
\\n
\\n\\n\\n \\n \\n \\n\\n\"","export default \"
\\n \\n\\n \\n {{ 'skip_loading' | translate }}\\n \\n
\"","export default \"
\\n \\n \\n \\n {{ (i + 1).toString().padStart(2, '0') }}\\n \\n\\n \\n {{ location.name }}\\n \\n \\n \\n
\\n\"","export default \"
\\n
\\n

An diesem Ort lohnt es sich kurz anzuhalten!

\\n

Starten Sie die Audiodatei und Sie hören warum.

\\n
\\n\\n
\\n

It is worth stopping at this place!

\\n

Start the audio file and you will hear why.

\\n
\\n\\n
\\n\\n
\\n \\n {{ 'close' | translate }}\\n \\n
\\n\\n\"","export default \"
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n
\\n\"","export default \"
\\n \\n \\n \\n\\n \\n \\n \\n\\n
\\n
1\\\" id=\\\"route-chooser\\\">\\n \\n \\n {{ route.shortname }}\\n \\n
\\n
\\n
\\n \\n\\n
\\n \\n
\\n
\\n \\n
\\n\\n \\n {{ item.protagonist?.forename }}\\n {{ item.protagonist?.surname }}\\n \\n \\n {{ item.protagonist?.job }}\\n \\n
\\n\\n \\n
\\n
\\n
\\n \\n\\n\"","export default \"
\\n
\\n \\n \\n \\n \\n \\n\\n
\\n \\n
\\n\\n \\n
\\n\\n \\n
\\n\"","export default \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\"","export default \"
\\n
\\n \\n \\n \\n \\n \\n
\\n\\n
\\n \\n Entsperren\\n \\n
\\n
\\n\"","export default \"
\\n
\\n \\n
\\n \\n\\n \\n
\\n\\n
\\n

\\n {{ protagonist.forename.toUpperCase()}} {{protagonist.surname.toUpperCase()}}\\n

\\n\\n

{{ protagonist.job }}

\\n\\n \\n {{ 'profile' | translate | uppercase }}\\n \\n
\\n\\n \\n
\\n \\n
\\n\"","export default \"
\\n
\\n
\\n \\n
\\n\\n
\\n
\\n

\\n {{ s.name }}\\n

\\n\\n

\\n {{ s.short_description }}\\n

\\n
\\n\\n \\n {{ 'more_label' | translate }}\\n \\n
\\n
\\n
\\n\"","export default \"
\\n
\\n \\n \\n \\n
\\n\\n \\n
\\n
\\n {{ item.space.city }}\\n
\\n\\n
\\n {{ item.space.name }}\\n
\\n\\n
\\n {{ item.space.short_description }}\\n
\\n\\n \\n
\\n \\n\\n
\\n \\n
\\n
\\n
\\n\\n
\\n \\n {{ 'learn_more' | translate }}\\n \\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n \\n \\n\\n\"","export default \"
\\n \\n \\n \\n {{ story.name }}\\n \\n \\n \\n
\\n\"","export default \"
\\n
\\n\\n
\\n \\n {{ 'go_to_story' | translate }}\\n \\n
\\n\\n \\n\\n\"","export default \"\\n \\n \\n \\n \\n \\n \\n \\n \\n {{ term.name }}\\n \\n \\n \\n\\n\\n\\n \\n\\n
\\n ' + term.definition + '' | safeHtml: 'html,glossary' : term.name | async\\\"\\n >\\n
\\n\\n \\n
\\n\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","var map = {\n\t\"./pages/glossary/glossary.module\": [\n\t\t\"./src/app/pages/glossary/glossary.module.ts\",\n\t\t\"pages-glossary-glossary-module\"\n\t],\n\t\"./pages/map/map.module\": [\n\t\t\"./src/app/pages/map/map.module.ts\",\n\t\t\"pages-map-map-module\"\n\t],\n\t\"./pages/settings/settings.module\": [\n\t\t\"./src/app/pages/settings/settings.module.ts\",\n\t\t\"pages-settings-settings-module\"\n\t],\n\t\"./pages/singel-protagonist/singel-protagonist.module\": [\n\t\t\"./src/app/pages/singel-protagonist/singel-protagonist.module.ts\",\n\t\t\"pages-singel-protagonist-singel-protagonist-module\"\n\t],\n\t\"./pages/single-location/single-location.module\": [\n\t\t\"./src/app/pages/single-location/single-location.module.ts\",\n\t\t\"pages-single-location-single-location-module\"\n\t],\n\t\"./pages/single-page/single-page.module\": [\n\t\t\"./src/app/pages/single-page/single-page.module.ts\",\n\t\t\"pages-single-page-single-page-module\"\n\t],\n\t\"./pages/single-route/single-route.module\": [\n\t\t\"./src/app/pages/single-route/single-route.module.ts\",\n\t\t\"pages-single-route-single-route-module\"\n\t],\n\t\"./pages/single-space/single-space.module\": [\n\t\t\"./src/app/pages/single-space/single-space.module.ts\",\n\t\t\"pages-single-space-single-space-module\"\n\t],\n\t\"./pages/stele-home/stele-home.module\": [\n\t\t\"./src/app/pages/stele-home/stele-home.module.ts\",\n\t\t\"pages-stele-home-stele-home-module\"\n\t],\n\t\"./pages/stele-home/stele-page/stele-page.module\": [\n\t\t\"./src/app/pages/stele-home/stele-page/stele-page.module.ts\",\n\t\t\"pages-stele-home-stele-page-stele-page-module\"\n\t],\n\t\"./pages/stories/stories.module\": [\n\t\t\"./src/app/pages/stories/stories.module.ts\",\n\t\t\"pages-stories-stories-module\"\n\t],\n\t\"./pages/story/story.module\": [\n\t\t\"./src/app/pages/story/story.module.ts\",\n\t\t\"pages-story-story-module\"\n\t],\n\t\"app/pages/home/home.module\": [\n\t\t\"./src/app/pages/home/home.module.ts\",\n\t\t\"app-pages-home-home-module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","import { NgModule } from '@angular/core';\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\n\nconst routes: Routes = [\n {\n path: '',\n loadChildren: 'app/pages/home/home.module#HomePageModule',\n },\n {\n path: 'glossary',\n loadChildren: './pages/glossary/glossary.module#GlossaryPageModule',\n },\n {\n path: 'protagonist/:slug',\n loadChildren:\n './pages/singel-protagonist/singel-protagonist.module#SingelProtagonistPageModule',\n },\n {\n path: 'stories',\n loadChildren: './pages/stories/stories.module#StoriesPageModule',\n },\n {\n path: 'story/:slug/:quickOpen',\n loadChildren: './pages/story/story.module#StoryPageModule',\n },\n {\n path: 'story/:slug',\n loadChildren: './pages/story/story.module#StoryPageModule',\n },\n {\n path: 'map',\n loadChildren: './pages/map/map.module#MapPageModule',\n },\n {\n path: 'p/:slug',\n loadChildren: './pages/single-page/single-page.module#SinglePagePageModule',\n },\n {\n path: 'space/:slug',\n loadChildren: './pages/single-space/single-space.module#SingleSpacePageModule',\n },\n {\n path: 'settings',\n loadChildren: './pages/settings/settings.module#SettingsPageModule'\n },\n {\n path: 'location/:slug',\n loadChildren: './pages/single-location/single-location.module#SingleLocationPageModule'\n },\n {\n path: 'route/:slug',\n loadChildren: './pages/single-route/single-route.module#SingleRoutePageModule'\n },\n {\n path: 'home',\n loadChildren: './pages/stele-home/stele-home.module#SteleHomePageModule'\n },\n {\n path: 'home/:slug',\n loadChildren: './pages/stele-home/stele-page/stele-page.module#StelePagePageModule'\n },\n {\n path: '**',\n redirectTo: '',\n pathMatch: 'full',\n }\n];\n\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }),\n ],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","export default \"ion-title {\\n opacity: 0.3;\\n}\\n\\nion-item {\\n --padding-start: 0;\\n}\\n\\nion-list {\\n background: var(--ion-color-menucolor);\\n}\\n\\nion-menu {\\n --min-width: 100%;\\n}\\n\\nion-label {\\n padding-bottom: 4px;\\n margin-bottom: 5px;\\n margin-top: 5px;\\n}\\n\\nion-icon {\\n font-size: 25px;\\n margin-bottom: -8px;\\n margin-right: 5px;\\n}\\n\\nion-icon[class*=flag-] {\\n background: var(--ion-color-menucolor);\\n background-size: 100%;\\n background-position: center;\\n background-repeat: no-repeat;\\n width: 1em;\\n height: 1em;\\n}\\n\\nion-icon[class*=flag-] span {\\n margin-right: 6px;\\n}\\n\\nion-icon[class*=flag-de] {\\n background-image: url('flag-de.svg');\\n}\\n\\nion-icon[class*=flag-en] {\\n background-image: url('flag-en.svg');\\n}\\n\\nion-list.sidemenu-list {\\n display: flex;\\n flex-flow: column;\\n overflow: auto;\\n height: 100%;\\n padding-bottom: 0;\\n}\\n\\nion-list.sidemenu-list div.menu-spaceholder {\\n flex-grow: 1;\\n}\\n\\n.header-md:after {\\n height: 0;\\n left: 5%;\\n width: 90%;\\n border: 0.5px solid var(--ion-color-hauptcolor);\\n text-align: center;\\n bottom: -2px;\\n}\\n\\nion-item.separator {\\n height: 1px;\\n --background: var(--ion-color-menucolor);\\n margin: 10px 0;\\n}\\n\\n.separator:after {\\n height: 0;\\n left: 5%;\\n width: 90%;\\n border: 0.5px solid var(--ion-color-hauptcolor);\\n text-align: center;\\n bottom: 0px;\\n position: absolute;\\n content: \\\"\\\";\\n}\\n\\nion-label.version {\\n font-size: 12px;\\n float: right;\\n padding-right: 16px;\\n color: var(--ion-color-hauptcolor);\\n text-align: right;\\n width: 100%;\\n}\\n\\nion-label.clickable {\\n cursor: pointer;\\n}\\n\\n#loading-progress-indicator {\\n position: absolute;\\n bottom: 10%;\\n width: 200px;\\n height: 10px;\\n background: #80882b;\\n border-radius: 5px;\\n}\\n\\n#loading-progress-indicator div {\\n position: absolute;\\n left: 0;\\n bottom: 0;\\n top: 0;\\n background: var(--ion-color-menucolor);\\n transition: all 0.4s;\\n border-radius: 5px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQUE7QUNDRjs7QURFQTtFQUNFLGtCQUFBO0FDQ0Y7O0FERUE7RUFDRSxzQ0FBQTtBQ0NGOztBREVBO0VBQ0UsaUJBQUE7QUNDRjs7QURDQTtFQUNFLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0FDRUY7O0FEQ0E7RUFDRSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtBQ0VGOztBREVFO0VBQ0Usc0NBQUE7RUFDQSxxQkFBQTtFQUNBLDJCQUFBO0VBQ0EsNEJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtBQ0NKOztBRENJO0VBQ0UsaUJBQUE7QUNDTjs7QURHRTtFQUNFLG9DQUFBO0FDREo7O0FER0U7RUFDRSxvQ0FBQTtBQ0RKOztBREtBO0VBQ0UsYUFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtBQ0ZGOztBRHdCRTtFQUNFLFlBQUE7QUN0Qko7O0FEMEJBO0VBQ0UsU0FBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsK0NBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUN2QkY7O0FEMEJBO0VBQ0UsV0FBQTtFQUNBLHdDQUFBO0VBQ0EsY0FBQTtBQ3ZCRjs7QUR5QkE7RUFDRSxTQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSwrQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtBQ3RCRjs7QUR5QkE7RUFDRSxlQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VBQ0Esa0NBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7QUN0QkY7O0FEeUJBO0VBQ0UsZUFBQTtBQ3RCRjs7QUR5QkE7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUN0QkY7O0FEd0JFO0VBQ0Usa0JBQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLE1BQUE7RUFDQSxzQ0FBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7QUN0QkoiLCJmaWxlIjoic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpb24tdGl0bGUge1xuICBvcGFjaXR5OiAwLjM7XG59XG5cbmlvbi1pdGVtIHtcbiAgLS1wYWRkaW5nLXN0YXJ0OiAwO1xufVxuXG5pb24tbGlzdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xufVxuXG5pb24tbWVudSB7XG4gIC0tbWluLXdpZHRoOiAxMDAlO1xufVxuaW9uLWxhYmVsIHtcbiAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbmlvbi1pY29uIHtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBtYXJnaW4tYm90dG9tOiAtOHB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuaW9uLWljb24ge1xuICAmW2NsYXNzKj0nZmxhZy0nXSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLW1lbnVjb2xvcik7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHdpZHRoOiAxZW07XG4gICAgaGVpZ2h0OiAxZW07XG5cbiAgICBzcGFuIHtcbiAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPSdmbGFnLWRlJ10ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChhc3NldHMvaWNvbi9mbGFnLWRlLnN2Zyk7XG4gIH1cbiAgJltjbGFzcyo9J2ZsYWctZW4nXSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGFzc2V0cy9pY29uL2ZsYWctZW4uc3ZnKTtcbiAgfVxufVxuXG5pb24tbGlzdC5zaWRlbWVudS1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW47XG4gIG92ZXJmbG93OiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gIC8vIGRpdi5tZW51LWZvb3RlciB7XG4gIC8vICAgZGl2Lm1lbnUtZm9vdGVyLWl0ZW0ge1xuICAvLyAgICAgZGlzcGxheTogZmxleDtcbiAgLy8gICAgIHBhZGRpbmc6IDEwcHg7XG4gIC8vICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBkaXYgPiBpbWcge1xuICAvLyAgICAgbWFyZ2luOiAwIGF1dG87XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIGRpdi5yZGktbG9nbyB7XG4gIC8vICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBkaXYuc3BvbnNvci1sb2dvcyB7XG4gIC8vICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIGRpdi5tZW51LXNwYWNlaG9sZGVyIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cbn1cblxuLmhlYWRlci1tZDphZnRlciB7XG4gIGhlaWdodDogMDtcbiAgbGVmdDogNSU7XG4gIHdpZHRoOiA5MCU7XG4gIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvdHRvbTogLTJweDtcbn1cblxuaW9uLWl0ZW0uc2VwYXJhdG9yIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIC0tYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLW1lbnVjb2xvcik7XG4gIG1hcmdpbjogMTBweCAwO1xufVxuLnNlcGFyYXRvcjphZnRlciB7XG4gIGhlaWdodDogMDtcbiAgbGVmdDogNSU7XG4gIHdpZHRoOiA5MCU7XG4gIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvdHRvbTogMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG5pb24tbGFiZWwudmVyc2lvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmlvbi1sYWJlbC5jbGlja2FibGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiNsb2FkaW5nLXByb2dyZXNzLWluZGljYXRvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMCU7XG4gIHdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjODA4ODJiO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG5cbiAgZGl2IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgdG9wOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjRzO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgfVxufVxuIiwiaW9uLXRpdGxlIHtcbiAgb3BhY2l0eTogMC4zO1xufVxuXG5pb24taXRlbSB7XG4gIC0tcGFkZGluZy1zdGFydDogMDtcbn1cblxuaW9uLWxpc3Qge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbWVudWNvbG9yKTtcbn1cblxuaW9uLW1lbnUge1xuICAtLW1pbi13aWR0aDogMTAwJTtcbn1cblxuaW9uLWxhYmVsIHtcbiAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbmlvbi1pY29uIHtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBtYXJnaW4tYm90dG9tOiAtOHB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuaW9uLWljb25bY2xhc3MqPWZsYWctXSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgd2lkdGg6IDFlbTtcbiAgaGVpZ2h0OiAxZW07XG59XG5pb24taWNvbltjbGFzcyo9ZmxhZy1dIHNwYW4ge1xuICBtYXJnaW4tcmlnaHQ6IDZweDtcbn1cbmlvbi1pY29uW2NsYXNzKj1mbGFnLWRlXSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChhc3NldHMvaWNvbi9mbGFnLWRlLnN2Zyk7XG59XG5pb24taWNvbltjbGFzcyo9ZmxhZy1lbl0ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoYXNzZXRzL2ljb24vZmxhZy1lbi5zdmcpO1xufVxuXG5pb24tbGlzdC5zaWRlbWVudS1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW47XG4gIG92ZXJmbG93OiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuaW9uLWxpc3Quc2lkZW1lbnUtbGlzdCBkaXYubWVudS1zcGFjZWhvbGRlciB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cblxuLmhlYWRlci1tZDphZnRlciB7XG4gIGhlaWdodDogMDtcbiAgbGVmdDogNSU7XG4gIHdpZHRoOiA5MCU7XG4gIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvdHRvbTogLTJweDtcbn1cblxuaW9uLWl0ZW0uc2VwYXJhdG9yIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIC0tYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLW1lbnVjb2xvcik7XG4gIG1hcmdpbjogMTBweCAwO1xufVxuXG4uc2VwYXJhdG9yOmFmdGVyIHtcbiAgaGVpZ2h0OiAwO1xuICBsZWZ0OiA1JTtcbiAgd2lkdGg6IDkwJTtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItaGF1cHRjb2xvcik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm90dG9tOiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogXCJcIjtcbn1cblxuaW9uLWxhYmVsLnZlcnNpb24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5pb24tbGFiZWwuY2xpY2thYmxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jbG9hZGluZy1wcm9ncmVzcy1pbmRpY2F0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTAlO1xuICB3aWR0aDogMjAwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYmFja2dyb3VuZDogIzgwODgyYjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuI2xvYWRpbmctcHJvZ3Jlc3MtaW5kaWNhdG9yIGRpdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB0b3A6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufSJdfQ== */\"","import { Component } from '@angular/core';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\nimport { NavController, MenuController, Platform, ModalController, AlertController, IonicModule } from '@ionic/angular';\nimport { Facebook } from '@ionic-native/facebook/ngx';\nimport { Router } from '@angular/router';\nimport { Menu, MenuItem, Page } from 'app/interfaces/api/types';\n\nimport { PassLockComponent } from 'app/components/pass-lock/pass-lock.component';\nimport { AdminConfigComponent } from 'app/components/admin-config/admin-config.component';\nimport { AppBannerComponent } from 'app/components/app-banner/app-banner.component';\n\nimport { Progress } from 'app/utils';\n\nimport {\n MenuService,\n SettingsService,\n StorageService,\n ActivityService,\n TranslatorService,\n HistoryService\n} from 'app/services';\n\nimport {\n GlossaryLinkListener,\n AccordionListener,\n NavLinkListener,\n ImageViewerListener,\n FirebaseAnalyticsListener,\n ImageComparisonSliderListener,\n WavesurferListener,\n SvgExtractorListener,\n ImageSlidesListener,\n InterfererListener,\n VideoListener,\n DocumentStyleListener\n} from 'app/utils/listeners';\n\nimport { Environment } from 'environments/environment'\n\nimport * as jQuery from 'jquery';\nimport { RdiWindow } from './interfaces/rdi';\n\ntype AppPage = {\n title: string;\n url: string;\n class: string;\n};\n\ndeclare var window: RdiWindow;\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss'],\n})\n\nexport class AppComponent {\n public pages: Array = [];\n public appPages: Array = [];\n public appVersion: string = Environment.getAppVersion();\n public showSplash: boolean = true;\n public loadingProgress = 0.0;\n public hideSettings: boolean;\n public stelenActive: boolean = false;\n\n private time: number;\n\n constructor(\n private readonly platform: Platform,\n private readonly splashScreen: SplashScreen,\n private readonly statusBar: StatusBar,\n private readonly menuController: MenuController,\n private readonly menuService: MenuService,\n private readonly modalCtrl: ModalController,\n private readonly alertCtrl: AlertController,\n private readonly navController: NavController,\n private readonly router: Router,\n private readonly storageService: StorageService,\n private readonly activityService: ActivityService,\n private readonly settings: SettingsService,\n private readonly translator: TranslatorService,\n private readonly historyService: HistoryService,\n private readonly facebook: Facebook,\n ) {\n this.initializeApp();\n }\n\n async initializeApp(): Promise {\n this.initRedirect();\n this.initLanguage();\n\n await this.platform.ready();\n await this.storageService.ready();\n await this.initFacebook();\n await this.prepareKioskMode();\n await this.prepareStelenFeature();\n\n this.historyService.init();\n this.splashScreen.hide();\n this.statusBar.styleDefault();\n this.statusBar.backgroundColorByHexString('#002c42');\n this.statusBar.overlaysWebView(false);\n this.translator.languageChange.subscribe(() => window.location.reload());\n\n if (this.settings.getOfflineContentActive()) {\n this.loadingProgress = 100;\n } else {\n await this.storageService.withoutCache(async (): Promise => {\n const language: string = this.translator.getLanguage();\n const onProgress: Function = (p: Progress) => this.loadingProgress = p.progress / p.total * 100;\n\n await this.storageService.downloadPosts(language, onProgress);\n });\n }\n\n await this.prepareMenu();\n await this.prepareListeners();\n\n await this.hideCustomSplashScreen();\n\n if (this.settings.getShowOfflineUsage()) {\n await this.showOfflineUsage();\n }\n\n if (this.shouldShowAppBanner()) {\n await this.showAppBanner();\n }\n\n window.rdi.appReady = true;\n }\n\n private async initFacebook(): Promise {\n await this.facebook.setAdvertiserTrackingEnabled(true).catch(() => { });\n await this.facebook.setAdvertiserIDCollectionEnabled(true).catch(() => { });\n await this.facebook.setAutoLogAppEventsEnabled(true).catch(() => { });\n }\n\n public toggleMenu(): void {\n this.menuController.toggle();\n }\n\n public hideCustomSplashScreen(): Promise {\n return new Promise((resolve) => {\n jQuery('.splash').fadeOut(600, 'swing', () => {\n this.showSplash = false;\n resolve();\n });\n });\n }\n\n private async prepareMenu(): Promise {\n const menu: Menu = await this.menuService.getAppMenu();\n const routePrefixMap: object = {\n custom: '/',\n page: '/p/',\n space: '/space/',\n };\n\n menu.forEach((item: MenuItem) => {\n const item_class: string = item.classes.length ? item.classes.join(' ') : '';\n const prefix: string = routePrefixMap[item.type];\n const url: string = `${prefix}${item.slug}`;\n\n this.appPages.push({\n title: item.name,\n url: url,\n class: item_class,\n });\n });\n }\n\n private prepareKioskMode(): void {\n this.settings.setKioskModeActive(this.settings.getKioskModeActive());\n\n this.hideSettings = this.settings.getHideSettings();\n\n this.settings.hideSettingsChange.subscribe((hide: boolean) => this.hideSettings = hide);\n }\n\n private async prepareStelenFeature(): Promise {\n this.stelenActive = this.settings.getStelenActive();\n\n this.activityService.onInactive.subscribe(() => {\n const shouldRedirect: boolean = (\n this.stelenActive &&\n this.router.url != '/home' &&\n this.settings.getStelenInactivityRedirect()\n );\n\n if (shouldRedirect) {\n this.router.navigateByUrl('/home');\n }\n });\n\n if (this.settings.getStelenActive()) {\n await this.navController.navigateRoot('/home');\n }\n }\n\n public touchStart(): void {\n this.time = Date.now();\n }\n\n public touchEnd(): void {\n const seconds: number = (new Date(Date.now() - this.time)).getUTCSeconds();\n\n if (seconds >= 5) {\n this.openPassLock();\n }\n }\n\n public changeLanguage(language: string): void {\n this.translator.setLanguage(language);\n }\n\n public async openAdminConfig(): Promise {\n const modal: HTMLIonModalElement = await this.modalCtrl.create({\n component: AdminConfigComponent,\n backdropDismiss: false,\n cssClass: 'admin-config-modal modal-rounded'\n });\n\n await modal.present();\n }\n\n public async openPassLock(): Promise {\n const modal: HTMLIonModalElement = await this.modalCtrl.create({\n component: PassLockComponent,\n backdropDismiss: true,\n cssClass: 'pass-lock-modal modal-rounded'\n });\n\n modal.onDidDismiss().then((res: any) => {\n if (res.data && res.data.unlocked) {\n this.openAdminConfig();\n }\n });\n\n await modal.present();\n }\n\n private async showOfflineUsage(): Promise {\n const alert: any = await this.alertCtrl.create({\n header: this.translator.translate('offline_usage'),\n message: this.translator.translate('offline_usage_text'),\n cssClass: 'offline-usage-alert',\n backdropDismiss: false,\n buttons: [\n {\n text: this.translator.translate('no_thanks')\n },\n {\n text: this.translator.translate('settings'),\n handler: () => this.router.navigateByUrl('/settings')\n }\n ]\n });\n\n alert.onDidDismiss().then(() => this.settings.setShowOfflineUsage(false));\n\n await alert.present();\n }\n\n public async showAppBanner(): Promise {\n const modal: HTMLIonModalElement = await this.modalCtrl.create({\n component: AppBannerComponent,\n backdropDismiss: false,\n cssClass: 'app-banner-modal'\n });\n\n modal.onDidDismiss().then(() => this.settings.setAppBannerLastShown(Date.now()));\n\n await modal.present();\n }\n\n private async prepareListeners(): Promise {\n await Promise.all([\n new GlossaryLinkListener().start(),\n new AccordionListener().start(),\n new NavLinkListener().start(),\n new ImageViewerListener().start(),\n new FirebaseAnalyticsListener().start(),\n new ImageComparisonSliderListener().start(),\n new WavesurferListener().start(),\n /**\n * Disabling SvgExtractor. Also partly disabled by previous changes in the following files:\n * @see svg-extractor.listener.ts:92-93\n * @see single-protagonist-page.scss:9-13\n */\n // new SvgExtractorListener().start(),\n new ImageSlidesListener().start(),\n new InterfererListener().start(),\n new VideoListener().start(),\n new DocumentStyleListener().start(),\n ]);\n }\n\n /**\n * Check if language must be changed.\n * App equivalent is found in \"index.html\" (handleOpenURL).\n */\n private initLanguage(): void {\n const url: URL = new URL(window.location.href);\n\n if (url.searchParams.has('lang')) {\n const language: string = url.searchParams.get('lang');\n const valid: boolean = this.translator.isValidLanguage(language);\n\n if (valid && language != this.translator.getLanguage()) {\n this.translator.setLanguage(language);\n }\n\n window.location.href = window.location.pathname;\n }\n }\n\n private initRedirect(): void {\n /* See index.html -> handleOpenURL */\n window.addEventListener('rdi::urlRedirect', (e: any) => {\n localStorage.removeItem('rdi::urlRedirect');\n\n window.location = e.detail;\n });\n\n const redirect: string = localStorage.getItem('rdi::urlRedirect');\n\n if (redirect) {\n window.dispatchEvent(new CustomEvent('rdi::urlRedirect', { detail: redirect }));\n }\n }\n\n private shouldShowAppBanner(): boolean {\n const supportedPlatforms: any = ['android', 'iphone', 'ipad']\n const supported: boolean = supportedPlatforms.some((p: any) => this.platform.is(p));\n\n if (window.rdi.browserBuild && supported) {\n const lastShown: number = this.settings.getAppBannerLastShown() || 0;\n const maxHours: number = 1000 * 60 * 60 * 24; // 24 hours\n\n return (Date.now() - lastShown) >= maxHours;\n } else {\n return false;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { RouteReuseStrategy } from '@angular/router';\nimport { File } from '@ionic-native/file/ngx';\nimport { HTTP } from '@ionic-native/http/ngx';\nimport { HttpClientModule } from '@angular/common/http';\nimport { WebView } from '@ionic-native/ionic-webview/ngx';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\nimport { Zip } from '@ionic-native/zip/ngx';\nimport { FirebaseAnalytics } from '@ionic-native/firebase-analytics/ngx';\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\nimport { IonicStorageModule } from '@ionic/storage';\nimport { ScreenOrientation } from '@ionic-native/screen-orientation/ngx';\nimport { AppRoutingModule } from 'app/app-routing.module';\nimport { AppComponent } from 'app/app.component';\nimport { ComponentsModule } from 'app/components/components.module';\nimport { SingleTermPageModule } from 'app/pages/single-term/single-term.module';\nimport { PipesModule } from './pipes.module';\nimport { Facebook } from '@ionic-native/facebook/ngx';\nimport { InAppBrowser } from '@ionic-native/in-app-browser/ngx';\n\n@NgModule({\n declarations: [AppComponent],\n entryComponents: [],\n imports: [\n BrowserModule,\n IonicModule.forRoot(),\n IonicStorageModule.forRoot({\n name: '__rdi_db',\n driverOrder: ['indexeddb', 'websql', 'sqlite', 'localstorage'],\n }),\n AppRoutingModule,\n PipesModule,\n ComponentsModule,\n SingleTermPageModule,\n HttpClientModule,\n ],\n providers: [\n StatusBar,\n SplashScreen,\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },\n File,\n HTTP,\n WebView,\n Zip,\n ScreenOrientation,\n FirebaseAnalytics,\n Facebook,\n InAppBrowser\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Injector } from '@angular/core';\n\nlet appInjectorRef: Injector;\n\nexport class AppInjector {\n public static prepare(injector = null) {\n return (injector) ? (appInjectorRef = injector) : appInjectorRef;\n }\n}\n","import * as jQuery from 'jquery';\n\n\nexport class AudioHelper {\n private static $: JQueryStatic = jQuery;\n\n public static stopAllAudios() {\n this.$('audio').trigger('pause');\n this.$('div.waveform')\n .find('button > .audio-control')\n .removeClass('pause')\n .addClass('play');\n }\n}","import { arrayFlat } from 'app/utils';\nimport { RdiWindow } from 'app/interfaces/rdi';\n\ndeclare var window: RdiWindow;\nexport class DomHelper {\n public static readonly MAX_INTERVAL: number = 10; // 500ms interval -> 5 seconds\n\n public static async whenReady(root: HTMLElement): Promise {\n await window.rdi.ready();\n\n await Promise.all([\n this.waitForElements(root),\n this.waitForImages(root),\n this.waitForVideos(root)\n ]);\n\n await this.waitForListeners(root);\n }\n\n /**\n * Run all listeners and wait for them to say they're\n * done by listening to a unique event name.\n * If this is confusing to you, ask me about it.\n */\n public static async waitForListeners(element: HTMLElement): Promise {\n await Promise.all(window.rdi.listeners.map((l) => l(element)));\n }\n\n public static waitForVideos(root: HTMLElement): Promise {\n return new Promise((resolve) => {\n const videos: HTMLElement[] = this.getVideoElements(root);\n let intervalCount: number = 0;\n\n const interval = setInterval(() => {\n const completed: boolean = videos.every((v: HTMLVideoElement) => v.getAttribute('data-ready') === 'true');\n\n if (completed || ++intervalCount > this.MAX_INTERVAL) {\n clearInterval(interval);\n\n resolve();\n }\n }, 500);\n });\n }\n\n public static waitForImages(root: HTMLElement): Promise {\n return new Promise((resolve) => {\n const images: HTMLElement[] = this.getImageElements(root);\n let intervalCount: number = 0;\n\n const interval = setInterval(() => {\n const completed: boolean = images.every((img: HTMLImageElement) => img.complete);\n\n if (completed || ++intervalCount > this.MAX_INTERVAL) {\n clearInterval(interval);\n\n resolve();\n }\n }, 500);\n });\n }\n\n public static waitForElements(root: HTMLElement): Promise {\n return new Promise((resolve) => {\n let intervalCount: number = 0;\n let count: number = -1;\n\n const interval = setInterval(() => {\n const elements: HTMLElement[] = this.getLoadingElements(root);\n\n if (count === elements.length || ++intervalCount > this.MAX_INTERVAL) {\n clearInterval(interval);\n\n resolve();\n } else {\n count = elements.length;\n }\n }, 500);\n });\n }\n\n public static getLoadingElements(root: HTMLElement): HTMLElement[] {\n return arrayFlat([\n this.getImageElements(root),\n this.getIonImageElements(root),\n this.getAudioElements(root),\n this.getVideoElements(root)\n ]);\n }\n\n public static getVideoElements(root: HTMLElement): HTMLElement[] {\n return Array.from(root.querySelectorAll('video'));\n }\n\n public static getImageElements(root: HTMLElement): HTMLElement[] {\n return Array.from(root.querySelectorAll('img'));\n }\n\n public static getIonImageElements(root: HTMLElement): HTMLElement[] {\n return Array.from(root.querySelectorAll('ion-img'));\n }\n\n public static getAudioElements(root: HTMLElement): HTMLElement[] {\n return Array.from(root.querySelectorAll('audio'));\n }\n}\n","import { ModalController } from \"@ionic/angular\";\nimport { AppInjector } from \"../app-injector/app-injector\";\n\nexport class ModalHelper {\n private static _modalController: ModalController;\n\n private static get modalController(): ModalController {\n return (this._modalController)\n ? this._modalController\n : (this._modalController = AppInjector.prepare().get(ModalController));\n }\n\n public static async closeAll(): Promise {\n let modal: HTMLIonModalElement;\n\n while ((modal = await this.modalController.getTop())) {\n await modal.dismiss();\n }\n }\n}\n","export default \"div.admin-config-container {\\n overflow: auto;\\n height: 100%;\\n width: 100%;\\n background: var(--ion-color-hauptcolor);\\n}\\ndiv.admin-config-container div.admin-config-content ion-list.admin-config-settings {\\n width: 100%;\\n background: var(--ion-color-hauptcolor);\\n}\\ndiv.admin-config-container div.admin-config-content ion-list.admin-config-settings ion-list-header {\\n font-size: 1em;\\n color: var(--ion-color-menucolor);\\n}\\ndiv.admin-config-container div.admin-config-content ion-list.admin-config-settings ion-item.admin-config-setting {\\n --background: var(--ion-color-hauptcolor);\\n --color: #fff;\\n}\\ndiv.admin-config-container div.admin-config-content ion-list.admin-config-settings ion-item.admin-config-setting ion-icon {\\n margin-right: 15px;\\n color: #fff;\\n}\\ndiv.admin-config-container div.admin-config-content ion-list.admin-config-settings ion-item.admin-config-setting ion-label:nth-of-type(2) {\\n text-align: end;\\n margin-right: 20px;\\n}\\ndiv.admin-config-container div.admin-config-actions {\\n height: 50px;\\n width: 100%;\\n bottom: 0;\\n padding-bottom: 8px;\\n text-align: center;\\n}\\ndiv.admin-config-container div.admin-config-actions ion-button.admin-config-action-back {\\n margin: 0;\\n height: 100%;\\n --border-radius: 10px;\\n}\\nion-select {\\n color: #fff;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL2FkbWluLWNvbmZpZy9hZG1pbi1jb25maWcuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvYWRtaW4tY29uZmlnL2FkbWluLWNvbmZpZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUVBLHVDQUFBO0FDQUY7QURHSTtFQUNFLFdBQUE7RUFDQSx1Q0FBQTtBQ0ROO0FER007RUFDRSxjQUFBO0VBQ0EsaUNBQUE7QUNEUjtBRElNO0VBQ0UseUNBQUE7RUFDQSxhQUFBO0FDRlI7QURJUTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtBQ0ZWO0FES1E7RUFDRSxlQUFBO0VBQ0Esa0JBQUE7QUNIVjtBRFNFO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxTQUFBO0VBRUEsbUJBQUE7RUFDQSxrQkFBQTtBQ1JKO0FEVUk7RUFDRSxTQUFBO0VBQ0EsWUFBQTtFQUNBLHFCQUFBO0FDUk47QURhQTtFQUNFLFdBQUE7QUNWRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYWRtaW4tY29uZmlnL2FkbWluLWNvbmZpZy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImRpdi5hZG1pbi1jb25maWctY29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuXG4gIGRpdi5hZG1pbi1jb25maWctY29udGVudCB7XG4gICAgaW9uLWxpc3QuYWRtaW4tY29uZmlnLXNldHRpbmdzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuXG4gICAgICBpb24tbGlzdC1oZWFkZXIge1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xuICAgICAgfVxuXG4gICAgICBpb24taXRlbS5hZG1pbi1jb25maWctc2V0dGluZyB7XG4gICAgICAgIC0tYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuICAgICAgICAtLWNvbG9yOiAjZmZmO1xuXG4gICAgICAgIGlvbi1pY29uIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cblxuICAgICAgICBpb24tbGFiZWw6bnRoLW9mLXR5cGUoMikge1xuICAgICAgICAgIHRleHQtYWxpZ246IGVuZDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaXYuYWRtaW4tY29uZmlnLWFjdGlvbnMge1xuICAgIGhlaWdodDogNTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3R0b206IDA7XG5cbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGlvbi1idXR0b24uYWRtaW4tY29uZmlnLWFjdGlvbi1iYWNrIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIC0tYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG4gIH1cbn1cblxuaW9uLXNlbGVjdCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuIiwiZGl2LmFkbWluLWNvbmZpZy1jb250YWluZXIge1xuICBvdmVyZmxvdzogYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xufVxuZGl2LmFkbWluLWNvbmZpZy1jb250YWluZXIgZGl2LmFkbWluLWNvbmZpZy1jb250ZW50IGlvbi1saXN0LmFkbWluLWNvbmZpZy1zZXR0aW5ncyB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItaGF1cHRjb2xvcik7XG59XG5kaXYuYWRtaW4tY29uZmlnLWNvbnRhaW5lciBkaXYuYWRtaW4tY29uZmlnLWNvbnRlbnQgaW9uLWxpc3QuYWRtaW4tY29uZmlnLXNldHRpbmdzIGlvbi1saXN0LWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lbnVjb2xvcik7XG59XG5kaXYuYWRtaW4tY29uZmlnLWNvbnRhaW5lciBkaXYuYWRtaW4tY29uZmlnLWNvbnRlbnQgaW9uLWxpc3QuYWRtaW4tY29uZmlnLXNldHRpbmdzIGlvbi1pdGVtLmFkbWluLWNvbmZpZy1zZXR0aW5nIHtcbiAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItaGF1cHRjb2xvcik7XG4gIC0tY29sb3I6ICNmZmY7XG59XG5kaXYuYWRtaW4tY29uZmlnLWNvbnRhaW5lciBkaXYuYWRtaW4tY29uZmlnLWNvbnRlbnQgaW9uLWxpc3QuYWRtaW4tY29uZmlnLXNldHRpbmdzIGlvbi1pdGVtLmFkbWluLWNvbmZpZy1zZXR0aW5nIGlvbi1pY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICBjb2xvcjogI2ZmZjtcbn1cbmRpdi5hZG1pbi1jb25maWctY29udGFpbmVyIGRpdi5hZG1pbi1jb25maWctY29udGVudCBpb24tbGlzdC5hZG1pbi1jb25maWctc2V0dGluZ3MgaW9uLWl0ZW0uYWRtaW4tY29uZmlnLXNldHRpbmcgaW9uLWxhYmVsOm50aC1vZi10eXBlKDIpIHtcbiAgdGV4dC1hbGlnbjogZW5kO1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5kaXYuYWRtaW4tY29uZmlnLWNvbnRhaW5lciBkaXYuYWRtaW4tY29uZmlnLWFjdGlvbnMge1xuICBoZWlnaHQ6IDUwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBib3R0b206IDA7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbmRpdi5hZG1pbi1jb25maWctY29udGFpbmVyIGRpdi5hZG1pbi1jb25maWctYWN0aW9ucyBpb24tYnV0dG9uLmFkbWluLWNvbmZpZy1hY3Rpb24tYmFjayB7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICAtLWJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG5cbmlvbi1zZWxlY3Qge1xuICBjb2xvcjogI2ZmZjtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { ModalController, NavController } from '@ionic/angular';\n\nimport {\n SettingsService,\n StorageService,\n ContextService,\n AppService,\n SpaceService,\n RouteService,\n LocationService\n} from 'app/services';\n\nimport { KioskModeMock } from 'app/utils/kiosk';\n\nimport { Space, Route, Location, App } from 'app/interfaces/api/types';\n\nimport { Environment } from 'environments/environment';\nimport { RdiWindow } from 'app/interfaces/rdi';\n\ndeclare var window: RdiWindow;\n\n@Component({\n selector: 'admin-config',\n templateUrl: './admin-config.component.html',\n styleUrls: ['./admin-config.component.scss'],\n})\n\nexport class AdminConfigComponent implements OnInit {\n public kioskModeActive: boolean;\n public hideSettings: boolean;\n public stelenActive: boolean;\n public stelenInactivityRedirect: boolean;\n\n public appVersion: string = Environment.getAppVersion();\n public apiUrl: string = Environment.getServerUrl();\n public environment: string = (Environment.isProduction()) ? 'prod' : 'dev';\n public isLauncher: boolean = false;\n public didLoad: boolean = false;\n\n public spaces: Space[] = [];\n public routes: Route[] = [];\n public locations: Location[] = [];\n public apps: App[] = [];\n\n public stelenSpace: Space;\n public stelenRoute: Route;\n public stelenLocation: Location;\n\n public isBrowser: boolean = window.rdi.browserBuild;\n\n constructor(\n private readonly modalCtrl: ModalController,\n private readonly settings: SettingsService,\n private readonly storage: StorageService,\n private readonly context: ContextService,\n private readonly spaceService: SpaceService,\n private readonly routeService: RouteService,\n private readonly locationService: LocationService,\n private readonly navController: NavController,\n private readonly appService: AppService\n ) { }\n\n private get kioskMode(): any {\n return window.KioskMode || KioskModeMock;\n }\n\n async ngOnInit(): Promise {\n this.didLoad = false;\n\n this.hideSettings = this.settings.getHideSettings();\n this.stelenActive = this.settings.getStelenActive();\n this.stelenInactivityRedirect = this.settings.getStelenInactivityRedirect();\n this.kioskModeActive = await this.kioskMode.isEnabled().catch(() => false);\n this.isLauncher = await this.kioskMode.isLauncher().catch(() => false);\n this.apps = (await this.appService.getAll()).sort((a: App, b: App) => b.id - a.id);\n\n await this.initStelen();\n\n this.didLoad = true;\n }\n\n public toggleKioskMode(enabled: any): void {\n this.settings.setKioskModeActive(enabled);\n }\n\n public switchLauncher(): void {\n this.kioskMode.switchLauncher().catch(console.warn);\n }\n\n public toggleHideSettings(enabled: any): void {\n this.settings.setHideSettings(enabled);\n }\n\n public toggleStelen(enabled: any): void {\n this.settings.setStelenActive(enabled);\n this.navController.navigateRoot((enabled) ? '/home' : '/');\n }\n\n private saveStelenState(): void {\n const stelenActive: boolean = (\n this.stelenActive &&\n !!this.stelenSpace &&\n !!this.stelenRoute &&\n !!this.stelenLocation\n );\n\n if (stelenActive) {\n this.context.setStelenSpace(this.stelenSpace);\n this.context.setStelenRoute(this.stelenRoute);\n this.context.setStelenLocation(this.stelenLocation);\n }\n\n const stelenInactivityRedirect: boolean = (stelenActive && this.stelenInactivityRedirect);\n\n this.settings.setStelenActive(stelenActive);\n this.settings.setStelenInactivityRedirect(stelenInactivityRedirect);\n }\n\n public dismiss(): void {\n this.saveStelenState();\n\n this.modalCtrl.dismiss();\n }\n\n public reload(): void {\n this.saveStelenState();\n\n window.location.reload();\n }\n\n public getStelenRoutes(): Route[] {\n if (this.stelenSpace) {\n return this.routes.filter((r: Route) => this.stelenSpace.routes.includes(r.id));\n } else {\n return [];\n }\n }\n\n public getStelenLocations(): Location[] {\n if (this.stelenRoute) {\n return this.locations.filter((l: Location) => this.stelenRoute.locations.includes(l.id));\n } else {\n return [];\n }\n }\n\n public stelenSpaceChange(): void {\n const routes: Route[] = this.getStelenRoutes();\n\n if (routes.length) {\n this.stelenRoute = routes[0];\n }\n }\n\n public stelenRouteChange(): void {\n const locations: Location[] = this.getStelenLocations();\n\n if (locations.length) {\n this.stelenLocation = locations[0];\n }\n }\n\n public compareFn(a: any, b: any): boolean {\n return (a && b && a.id == b.id);\n }\n\n public async setEnvironment(event: CustomEvent): Promise {\n const { value } = event.detail;\n\n if (value !== this.environment) {\n if (value === 'prod') {\n Environment.initProduction();\n } else {\n this.storage.clear().then(() => Environment.initDevelopment());\n }\n }\n }\n\n private async initStelen(): Promise {\n this.spaces = await this.spaceService.getAll();\n this.routes = await this.routeService.getAll();\n this.locations = await this.locationService.getAll();\n\n this.stelenSpace = await this.context.getStelenSpace();\n this.stelenRoute = await this.context.getStelenRoute();\n this.stelenLocation = await this.context.getStelenLocation();\n\n if (!this.stelenSpace && this.spaces) {\n this.stelenSpace = this.spaces[0];\n\n this.stelenSpaceChange();\n this.stelenRouteChange();\n }\n }\n}\n","export default \".app-banner-container {\\n padding: 0 25px;\\n}\\n@media (max-width: 345px) {\\n .app-banner-container {\\n padding: 0 5px;\\n }\\n}\\n.app-banner-container .app-banner-content {\\n height: 100px;\\n}\\n.app-banner-container .app-banner-content img.app-banner-logo {\\n height: 64px;\\n width: 64px;\\n margin-top: 20px;\\n float: left;\\n border-radius: 5px;\\n}\\n.app-banner-container .app-banner-content div.app-banner-text {\\n float: left;\\n width: calc(100% - 64px);\\n padding-left: 25px;\\n position: relative;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.app-banner-container .app-banner-content div.app-banner-text p {\\n margin: 0;\\n}\\n.app-banner-container .app-banner-action {\\n display: flex;\\n justify-content: space-evenly;\\n height: calc(100% - 100px);\\n width: 100%;\\n}\\n.app-banner-container .app-banner-action ion-button {\\n width: 50%;\\n max-width: 160px;\\n}\\n@media (max-width: 380px) {\\n .app-banner-container .app-banner-action ion-button {\\n max-width: 130px;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL2FwcC1iYW5uZXIvYXBwLWJhbm5lci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9hcHAtYmFubmVyL2FwcC1iYW5uZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxlQUFBO0FDQ0Y7QURDRTtFQUhGO0lBSUksY0FBQTtFQ0VGO0FBQ0Y7QURBRTtFQUNFLGFBQUE7QUNFSjtBREFJO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFFQSxnQkFBQTtFQUNBLFdBQUE7RUFFQSxrQkFBQTtBQ0FOO0FER0k7RUFDRSxXQUFBO0VBQ0Esd0JBQUE7RUFDQSxrQkFBQTtFQUVBLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLDJCQUFBO0FDRk47QURJTTtFQUNFLFNBQUE7QUNGUjtBRE9FO0VBQ0UsYUFBQTtFQUNBLDZCQUFBO0VBQ0EsMEJBQUE7RUFDQSxXQUFBO0FDTEo7QURPSTtFQUNFLFVBQUE7RUFDQSxnQkFBQTtBQ0xOO0FET007RUFKRjtJQUtJLGdCQUFBO0VDSk47QUFDRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXBwLWJhbm5lci9hcHAtYmFubmVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFwcC1iYW5uZXItY29udGFpbmVyIHtcbiAgcGFkZGluZzogMCAyNXB4O1xuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAzNDVweCkge1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICB9XG5cbiAgLmFwcC1iYW5uZXItY29udGVudCB7XG4gICAgaGVpZ2h0OiAxMDBweDtcblxuICAgIGltZy5hcHAtYmFubmVyLWxvZ28ge1xuICAgICAgaGVpZ2h0OiA2NHB4O1xuICAgICAgd2lkdGg6IDY0cHg7XG5cbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIH1cblxuICAgIGRpdi5hcHAtYmFubmVyLXRleHQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gNjRweCk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hcHAtYmFubmVyLWFjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGlvbi1idXR0b24ge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1heC13aWR0aDogMTYwcHg7XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzODBweCkge1xuICAgICAgICBtYXgtd2lkdGg6IDEzMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFwcC1iYW5uZXItY29udGFpbmVyIHtcbiAgcGFkZGluZzogMCAyNXB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDM0NXB4KSB7XG4gIC5hcHAtYmFubmVyLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gIH1cbn1cbi5hcHAtYmFubmVyLWNvbnRhaW5lciAuYXBwLWJhbm5lci1jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDBweDtcbn1cbi5hcHAtYmFubmVyLWNvbnRhaW5lciAuYXBwLWJhbm5lci1jb250ZW50IGltZy5hcHAtYmFubmVyLWxvZ28ge1xuICBoZWlnaHQ6IDY0cHg7XG4gIHdpZHRoOiA2NHB4O1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBmbG9hdDogbGVmdDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuLmFwcC1iYW5uZXItY29udGFpbmVyIC5hcHAtYmFubmVyLWNvbnRlbnQgZGl2LmFwcC1iYW5uZXItdGV4dCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogY2FsYygxMDAlIC0gNjRweCk7XG4gIHBhZGRpbmctbGVmdDogMjVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuLmFwcC1iYW5uZXItY29udGFpbmVyIC5hcHAtYmFubmVyLWNvbnRlbnQgZGl2LmFwcC1iYW5uZXItdGV4dCBwIHtcbiAgbWFyZ2luOiAwO1xufVxuLmFwcC1iYW5uZXItY29udGFpbmVyIC5hcHAtYmFubmVyLWFjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYXBwLWJhbm5lci1jb250YWluZXIgLmFwcC1iYW5uZXItYWN0aW9uIGlvbi1idXR0b24ge1xuICB3aWR0aDogNTAlO1xuICBtYXgtd2lkdGg6IDE2MHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDM4MHB4KSB7XG4gIC5hcHAtYmFubmVyLWNvbnRhaW5lciAuYXBwLWJhbm5lci1hY3Rpb24gaW9uLWJ1dHRvbiB7XG4gICAgbWF4LXdpZHRoOiAxMzBweDtcbiAgfVxufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\n\nimport { Environment } from 'environments/environment';\n\n@Component({\n selector: 'app-app-banner',\n templateUrl: './app-banner.component.html',\n styleUrls: ['./app-banner.component.scss'],\n})\n\nexport class AppBannerComponent implements OnInit {\n private openAppLink: string = Environment.getServerUrl() + '/wp-json/rdi/v1/app/open';\n\n constructor(private modalCtrl: ModalController) { }\n\n ngOnInit(): void {}\n\n public useApp(): void {\n window.open(this.openAppLink, '_system');\n }\n\n public dismiss(): void {\n this.modalCtrl.dismiss();\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYmFjay1idXR0b24vYmFjay1idXR0b24uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { NavController } from '@ionic/angular';\n\n@Component({\n selector: 'app-back-button',\n templateUrl: './back-button.component.html',\n styleUrls: ['./back-button.component.scss'],\n})\nexport class BackButtonComponent implements OnInit {\n\n constructor(private navController: NavController) { }\n\n ngOnInit(): void {}\n\n public goBack(): void {\n this.navController.back();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\n\nimport { MapComponent } from 'app/components/map/map.component';\nimport { StoriesComponent } from 'app/components/stories/stories.component';\nimport { ProtagonistsListComponent } from 'app/components/protagonists-list/protagonists-list.component';\nimport { NavbuttonComponent } from 'app/components/navbutton/navbutton.component';\nimport { SpaceListComponent } from 'app/components/space-list/space-list.component';\nimport { StorytellerOverlayComponent } from 'app/components/storyteller-overlay/storyteller-overlay.component';\nimport { ImageViewerComponent } from 'app/components/image-viewer/image-viewer.component';\nimport { PassLockComponent } from 'app/components/pass-lock/pass-lock.component';\nimport { AdminConfigComponent } from 'app/components/admin-config/admin-config.component';\nimport { SpaceMapMenuComponent } from 'app/components/space-map-menu/space-map-menu.component';\nimport { AppBannerComponent } from 'app/components/app-banner/app-banner.component';\nimport { LocationNotificationComponent } from 'app/components/location-notification/location-notification.component';\nimport { LogoFooterComponent } from 'app/components/logo-footer/logo-footer.component';\nimport { HeaderTitleComponent } from 'app/components/header-title/header-title.component';\nimport { LocationListComponent } from 'app/components/location-list/location-list.component';\nimport { BackButtonComponent } from 'app/components/back-button/back-button.component';\nimport { LoadingIndicatorComponent } from 'app/components/loading-indicator/loading-indicator.component';\nimport { SingleVideoComponent } from 'app/components/modals/single-video/single-video.component';\n\nimport { PipesModule } from 'app/pipes.module';\n\nconst components: any[] = [\n SpaceMapMenuComponent,\n MapComponent,\n StoriesComponent,\n ProtagonistsListComponent,\n NavbuttonComponent,\n SpaceListComponent,\n StorytellerOverlayComponent,\n ImageViewerComponent,\n PassLockComponent,\n AdminConfigComponent,\n AppBannerComponent,\n LocationNotificationComponent,\n LogoFooterComponent,\n HeaderTitleComponent,\n LocationListComponent,\n BackButtonComponent,\n LoadingIndicatorComponent,\n SingleVideoComponent,\n];\n\n@NgModule({\n imports: [CommonModule, FormsModule, IonicModule, PipesModule],\n declarations: components,\n exports: components,\n entryComponents: components,\n})\nexport class ComponentsModule {}\n","export default \"ion-title {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL2hlYWRlci10aXRsZS9oZWFkZXItdGl0bGUuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvaGVhZGVyLXRpdGxlL2hlYWRlci10aXRsZS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGVBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvaGVhZGVyLXRpdGxlL2hlYWRlci10aXRsZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImlvbi10aXRsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn0iLCJpb24tdGl0bGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { NavController, MenuController } from '@ionic/angular';\n\n@Component({\n selector: 'app-header-title',\n templateUrl: './header-title.component.html',\n styleUrls: ['./header-title.component.scss'],\n})\nexport class HeaderTitleComponent implements OnInit {\n constructor(\n private navController: NavController,\n private menuController: MenuController\n ) { }\n\n ngOnInit(): void { }\n\n public goToHome(): void {\n this.menuController.close();\n this.navController.navigateRoot('/');\n }\n}\n","export default \"ion-content {\\n --background: transparent;\\n}\\nion-content ion-slides {\\n height: 100%;\\n}\\nion-content ion-slides ion-slide {\\n padding: 20px;\\n}\\nion-content ion-slides ion-slide div.swiper-zoom-container {\\n flex-direction: column;\\n justify-content: center;\\n}\\nion-content ion-slides ion-slide div.swiper-zoom-container span.image-outer {\\n display: flex;\\n justify-content: center;\\n overflow: hidden;\\n}\\nion-content ion-slides ion-slide div.swiper-zoom-container span.image-outer ion-fab {\\n margin: 1rem;\\n}\\nion-content ion-slides ion-slide div.swiper-zoom-container span.image-outer img {\\n width: 100%;\\n}\\nion-content ion-slides ion-slide div.swiper-zoom-container ion-text {\\n color: #fff;\\n display: block;\\n margin-top: 16px;\\n max-width: 85%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL2ltYWdlLXZpZXdlci9pbWFnZS12aWV3ZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvaW1hZ2Utdmlld2VyL2ltYWdlLXZpZXdlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlCQUFBO0FDQ0Y7QURDRTtFQUNFLFlBQUE7QUNDSjtBRENJO0VBQ0UsYUFBQTtBQ0NOO0FEQ007RUFDRSxzQkFBQTtFQUNBLHVCQUFBO0FDQ1I7QURDUTtFQUNFLGFBQUE7RUFDQSx1QkFBQTtFQUNBLGdCQUFBO0FDQ1Y7QURDVTtFQUNFLFlBQUE7QUNDWjtBREVVO0VBQ0UsV0FBQTtBQ0FaO0FESVE7RUFDRSxXQUFBO0VBQ0EsY0FBQTtFQUVBLGdCQUFBO0VBRUEsY0FBQTtBQ0pWIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9pbWFnZS12aWV3ZXIvaW1hZ2Utdmlld2VyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW9uLWNvbnRlbnQge1xuICAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gIGlvbi1zbGlkZXMge1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIGlvbi1zbGlkZSB7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuXG4gICAgICBkaXYuc3dpcGVyLXpvb20tY29udGFpbmVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgc3Bhbi5pbWFnZS1vdXRlciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgaW9uLWZhYiB7XG4gICAgICAgICAgICBtYXJnaW46IDFyZW07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlvbi10ZXh0IHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG5cbiAgICAgICAgICBtYXgtd2lkdGg6IDg1JTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsImlvbi1jb250ZW50IHtcbiAgLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbmlvbi1jb250ZW50IGlvbi1zbGlkZXMge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5pb24tY29udGVudCBpb24tc2xpZGVzIGlvbi1zbGlkZSB7XG4gIHBhZGRpbmc6IDIwcHg7XG59XG5pb24tY29udGVudCBpb24tc2xpZGVzIGlvbi1zbGlkZSBkaXYuc3dpcGVyLXpvb20tY29udGFpbmVyIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5pb24tY29udGVudCBpb24tc2xpZGVzIGlvbi1zbGlkZSBkaXYuc3dpcGVyLXpvb20tY29udGFpbmVyIHNwYW4uaW1hZ2Utb3V0ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbmlvbi1jb250ZW50IGlvbi1zbGlkZXMgaW9uLXNsaWRlIGRpdi5zd2lwZXItem9vbS1jb250YWluZXIgc3Bhbi5pbWFnZS1vdXRlciBpb24tZmFiIHtcbiAgbWFyZ2luOiAxcmVtO1xufVxuaW9uLWNvbnRlbnQgaW9uLXNsaWRlcyBpb24tc2xpZGUgZGl2LnN3aXBlci16b29tLWNvbnRhaW5lciBzcGFuLmltYWdlLW91dGVyIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuaW9uLWNvbnRlbnQgaW9uLXNsaWRlcyBpb24tc2xpZGUgZGl2LnN3aXBlci16b29tLWNvbnRhaW5lciBpb24tdGV4dCB7XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMTZweDtcbiAgbWF4LXdpZHRoOiA4NSU7XG59Il19 */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\n\nimport { Attachment } from 'app/interfaces/api/types';\n\n@Component({\n selector: 'app-image-viewer',\n templateUrl: './image-viewer.component.html',\n styleUrls: ['./image-viewer.component.scss']\n})\nexport class ImageViewerComponent implements OnInit {\n @Input() attachments: Attachment[] = [];\n\n public title: string = '';\n\n slideOpts = {\n centeredSlides: 'true'\n };\n\n constructor(private modalController: ModalController) {}\n\n ngOnInit(): void {\n if (this.attachments.length) {\n this.title = this.attachments[0].subtext;\n }\n }\n\n closeModal(): void {\n this.modalController.dismiss();\n }\n\n public async handleSlideChange(e: any): Promise {\n const index: number = await e.target.getActiveIndex();\n\n this.title = this.attachments[index].subtext;\n }\n}\n","export default \"div.loading-indicator {\\n height: 100%;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 99999999999;\\n display: flex;\\n flex-direction: row;\\n justify-content: center;\\n align-items: center;\\n background: var(--ion-color-hauptcolor);\\n color: var(--ion-color-menucolor);\\n transition: opacity 0.25s ease;\\n}\\ndiv.loading-indicator.hidden, div.loading-indicator ion-button.hidden {\\n opacity: 0;\\n pointer-events: none;\\n}\\ndiv.loading-indicator ion-spinner {\\n height: 48px;\\n width: 48px;\\n}\\ndiv.loading-indicator ion-button {\\n position: absolute;\\n bottom: 50px;\\n left: 50%;\\n transform: translateX(-50%);\\n transition: opacity 0.25s ease;\\n --border-radius: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL2xvYWRpbmctaW5kaWNhdG9yL2xvYWRpbmctaW5kaWNhdG9yLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2xvYWRpbmctaW5kaWNhdG9yL2xvYWRpbmctaW5kaWNhdG9yLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0Esb0JBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsdUNBQUE7RUFDQSxpQ0FBQTtFQUVBLDhCQUFBO0FDQUY7QURFRTtFQUNFLFVBQUE7RUFDQSxvQkFBQTtBQ0FKO0FER0U7RUFDRSxZQUFBO0VBQ0EsV0FBQTtBQ0RKO0FESUU7RUFDRSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsMkJBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBO0FDRkoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2xvYWRpbmctaW5kaWNhdG9yL2xvYWRpbmctaW5kaWNhdG9yLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiZGl2LmxvYWRpbmctaW5kaWNhdG9yIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDk5OTk5OTk5OTk5O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lbnVjb2xvcik7XG5cbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xuXG4gICYuaGlkZGVuLCBpb24tYnV0dG9uLmhpZGRlbiB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIGlvbi1zcGlubmVyIHtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgd2lkdGg6IDQ4cHg7XG4gIH1cblxuICBpb24tYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiA1MHB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xuICAgIC0tYm9yZGVyLXJhZGl1czogMTBweDtcbiAgfVxufSIsImRpdi5sb2FkaW5nLWluZGljYXRvciB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiA5OTk5OTk5OTk5OTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG59XG5kaXYubG9hZGluZy1pbmRpY2F0b3IuaGlkZGVuLCBkaXYubG9hZGluZy1pbmRpY2F0b3IgaW9uLWJ1dHRvbi5oaWRkZW4ge1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbmRpdi5sb2FkaW5nLWluZGljYXRvciBpb24tc3Bpbm5lciB7XG4gIGhlaWdodDogNDhweDtcbiAgd2lkdGg6IDQ4cHg7XG59XG5kaXYubG9hZGluZy1pbmRpY2F0b3IgaW9uLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA1MHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xuICAtLWJvcmRlci1yYWRpdXM6IDEwcHg7XG59Il19 */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\n\n@Component({\n selector: 'app-loading-indicator',\n templateUrl: './loading-indicator.component.html',\n styleUrls: ['./loading-indicator.component.scss'],\n})\nexport class LoadingIndicatorComponent implements OnInit {\n private _visible: boolean = false;\n\n public showCancelButton: boolean = false;\n\n constructor(private readonly statusBar: StatusBar) { }\n\n @Input()\n public autoStyleStatusBar: boolean = true;\n\n @Input()\n public set visible(visible: boolean) {\n this._visible = visible;\n this.showCancelButton = false;\n\n if (visible) {\n setTimeout(() => this.showCancelButton = this._visible, 1000 * 5);\n }\n\n this.styleStatusBar();\n }\n\n public get visible(): boolean {\n return this._visible;\n }\n\n ngOnInit(): void { }\n\n public cancel(): void {\n this._visible = false;\n\n this.styleStatusBar();\n }\n\n private styleStatusBar(): void {\n if (this.autoStyleStatusBar) {\n const statusBarColor: string = this._visible ? '#002c42' : '#ffe500';\n\n this.statusBar.backgroundColorByHexString(statusBarColor);\n }\n }\n}\n","export default \"section.locations-list-component {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n background-color: var(--ion-color-hauptcolor);\\n}\\nsection.locations-list-component ion-list {\\n background-color: var(--ion-color-hauptcolor);\\n}\\nsection.locations-list-component ion-list ion-item {\\n --background: var(--ion-color-hauptcolor);\\n --color: #fff;\\n --min-height: 40px;\\n font-weight: bold;\\n}\\nsection.locations-list-component ion-list ion-item ion-text.location-index {\\n background: #fff;\\n color: var(--ion-color-hauptcolor);\\n text-align: center;\\n letter-spacing: 0px;\\n width: 32px;\\n height: 32px;\\n line-height: 32px;\\n}\\nsection.locations-list-component ion-list ion-item.current-location {\\n --color: var(--ion-color-menucolor);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL2xvY2F0aW9uLWxpc3QvbG9jYXRpb24tbGlzdC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9sb2NhdGlvbi1saXN0L2xvY2F0aW9uLWxpc3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsNkNBQUE7QUNDRjtBRENFO0VBQ0UsNkNBQUE7QUNDSjtBRENJO0VBQ0UseUNBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0NOO0FEQ007RUFDRSxnQkFBQTtFQUNBLGtDQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7QUNDUjtBREdJO0VBQ0UsbUNBQUE7QUNETiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbG9jYXRpb24tbGlzdC9sb2NhdGlvbi1saXN0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsic2VjdGlvbi5sb2NhdGlvbnMtbGlzdC1jb21wb25lbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcblxuICBpb24tbGlzdHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItaGF1cHRjb2xvcik7XG5cbiAgICBpb24taXRlbSB7XG4gICAgICAtLWJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcbiAgICAgIC0tY29sb3I6ICNmZmY7XG4gICAgICAtLW1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgaW9uLXRleHQubG9jYXRpb24taW5kZXgge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlvbi1pdGVtLmN1cnJlbnQtbG9jYXRpb24ge1xuICAgICAgLS1jb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lbnVjb2xvcik7XG4gICAgfVxuICB9XG59Iiwic2VjdGlvbi5sb2NhdGlvbnMtbGlzdC1jb21wb25lbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcbn1cbnNlY3Rpb24ubG9jYXRpb25zLWxpc3QtY29tcG9uZW50IGlvbi1saXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xufVxuc2VjdGlvbi5sb2NhdGlvbnMtbGlzdC1jb21wb25lbnQgaW9uLWxpc3QgaW9uLWl0ZW0ge1xuICAtLWJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcbiAgLS1jb2xvcjogI2ZmZjtcbiAgLS1taW4taGVpZ2h0OiA0MHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbnNlY3Rpb24ubG9jYXRpb25zLWxpc3QtY29tcG9uZW50IGlvbi1saXN0IGlvbi1pdGVtIGlvbi10ZXh0LmxvY2F0aW9uLWluZGV4IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBsaW5lLWhlaWdodDogMzJweDtcbn1cbnNlY3Rpb24ubG9jYXRpb25zLWxpc3QtY29tcG9uZW50IGlvbi1saXN0IGlvbi1pdGVtLmN1cnJlbnQtbG9jYXRpb24ge1xuICAtLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVudWNvbG9yKTtcbn0iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\n\nimport { Location } from 'app/interfaces/api/types';\n\n@Component({\n selector: 'app-location-list',\n templateUrl: './location-list.component.html',\n styleUrls: ['./location-list.component.scss'],\n})\nexport class LocationListComponent implements OnInit {\n @Input() locations: Location[] = [];\n @Input() currentLocation: Location;\n @Input() onOpenLocation: Function;\n\n constructor() { }\n\n ngOnInit(): void {}\n\n public openLocation(location: Location): void {\n this.onOpenLocation && this.onOpenLocation(location);\n }\n}\n","export default \"div.location-notification-container {\\n height: 100%;\\n width: 100%;\\n padding: 15px;\\n display: flex;\\n flex-direction: column;\\n}\\ndiv.location-notification-container div.location-notification-header {\\n text-align: center;\\n color: var(--ion-color-menucolor);\\n}\\ndiv.location-notification-container div.location-notification-header h1 {\\n font-size: 1.3em;\\n margin: 0 0 5px 0;\\n}\\ndiv.location-notification-container div.location-notification-header h2 {\\n font-size: 1.1em;\\n margin: 0;\\n}\\ndiv.location-notification-container div.location-notification-content {\\n display: flex;\\n flex-grow: 1;\\n}\\ndiv.location-notification-container div.location-notification-content div {\\n align-self: center;\\n}\\ndiv.location-notification-container div.location-notification-footer {\\n text-align: center;\\n}\\ndiv.location-notification-container div.location-notification-footer ion-button {\\n --border-radius: 5px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL2xvY2F0aW9uLW5vdGlmaWNhdGlvbi9sb2NhdGlvbi1ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvbG9jYXRpb24tbm90aWZpY2F0aW9uL2xvY2F0aW9uLW5vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLGFBQUE7RUFDQSxzQkFBQTtBQ0NGO0FEQ0U7RUFDRSxrQkFBQTtFQUNBLGlDQUFBO0FDQ0o7QURDSTtFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7QUNDTjtBREVJO0VBQ0UsZ0JBQUE7RUFDQSxTQUFBO0FDQU47QURJRTtFQUNFLGFBQUE7RUFDQSxZQUFBO0FDRko7QURJSTtFQUNFLGtCQUFBO0FDRk47QURNRTtFQUNFLGtCQUFBO0FDSko7QURNSTtFQUNFLG9CQUFBO0FDSk4iLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2xvY2F0aW9uLW5vdGlmaWNhdGlvbi9sb2NhdGlvbi1ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJkaXYubG9jYXRpb24tbm90aWZpY2F0aW9uLWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgZGl2LmxvY2F0aW9uLW5vdGlmaWNhdGlvbi1oZWFkZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lbnVjb2xvcik7XG5cbiAgICBoMSB7XG4gICAgICBmb250LXNpemU6IDEuM2VtO1xuICAgICAgbWFyZ2luOiAwIDAgNXB4IDA7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiAxLjFlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cblxuICBkaXYubG9jYXRpb24tbm90aWZpY2F0aW9uLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuXG4gICAgZGl2IHtcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICBkaXYubG9jYXRpb24tbm90aWZpY2F0aW9uLWZvb3RlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaW9uLWJ1dHRvbiB7XG4gICAgICAtLWJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG4gIH1cbn1cbiIsImRpdi5sb2NhdGlvbi1ub3RpZmljYXRpb24tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTVweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbmRpdi5sb2NhdGlvbi1ub3RpZmljYXRpb24tY29udGFpbmVyIGRpdi5sb2NhdGlvbi1ub3RpZmljYXRpb24taGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lbnVjb2xvcik7XG59XG5kaXYubG9jYXRpb24tbm90aWZpY2F0aW9uLWNvbnRhaW5lciBkaXYubG9jYXRpb24tbm90aWZpY2F0aW9uLWhlYWRlciBoMSB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG4gIG1hcmdpbjogMCAwIDVweCAwO1xufVxuZGl2LmxvY2F0aW9uLW5vdGlmaWNhdGlvbi1jb250YWluZXIgZGl2LmxvY2F0aW9uLW5vdGlmaWNhdGlvbi1oZWFkZXIgaDIge1xuICBmb250LXNpemU6IDEuMWVtO1xuICBtYXJnaW46IDA7XG59XG5kaXYubG9jYXRpb24tbm90aWZpY2F0aW9uLWNvbnRhaW5lciBkaXYubG9jYXRpb24tbm90aWZpY2F0aW9uLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG59XG5kaXYubG9jYXRpb24tbm90aWZpY2F0aW9uLWNvbnRhaW5lciBkaXYubG9jYXRpb24tbm90aWZpY2F0aW9uLWNvbnRlbnQgZGl2IHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuZGl2LmxvY2F0aW9uLW5vdGlmaWNhdGlvbi1jb250YWluZXIgZGl2LmxvY2F0aW9uLW5vdGlmaWNhdGlvbi1mb290ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5kaXYubG9jYXRpb24tbm90aWZpY2F0aW9uLWNvbnRhaW5lciBkaXYubG9jYXRpb24tbm90aWZpY2F0aW9uLWZvb3RlciBpb24tYnV0dG9uIHtcbiAgLS1ib3JkZXItcmFkaXVzOiA1cHg7XG59Il19 */\"","import { Component, OnInit, Input, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\n\nimport { TranslatorService } from 'app/services';\n\nimport { Location } from 'app/interfaces/api/types';\n\n@Component({\n selector: 'app-location-notification',\n templateUrl: './location-notification.component.html',\n styleUrls: ['./location-notification.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\n\nexport class LocationNotificationComponent implements OnInit, OnDestroy {\n @Input() location: Location;\n\n public language: string;\n\n constructor(\n private translator: TranslatorService,\n private modalCtrl: ModalController\n ) {\n }\n\n ngOnInit(): void {\n this.language = this.translator.getLanguage();\n }\n\n ngOnDestroy(): void { }\n\n public dismiss(): void {\n this.modalCtrl.dismiss();\n }\n}\n","export default \".logo-footer {\\n background: #fff;\\n height: var(--rdi-footer-height);\\n}\\n.logo-footer section:nth-child(1) {\\n text-align: center;\\n background-color: #000000;\\n color: #fff;\\n}\\n.logo-footer section:nth-child(1) div {\\n max-width: 40%;\\n padding: 20px 0;\\n margin: 0 auto;\\n}\\n@media (max-width: 550px) {\\n .logo-footer section:nth-child(1) div {\\n padding: 15px 0;\\n max-width: 50%;\\n }\\n}\\n.logo-footer section:nth-child(1) div img {\\n height: 26px;\\n}\\n.logo-footer section:nth-child(2) {\\n text-align: center;\\n background-color: #fff;\\n}\\n.logo-footer section:nth-child(2) div {\\n padding: 12px 8px;\\n margin: 0 auto;\\n}\\n.logo-footer section:nth-child(2) div img {\\n height: 64px;\\n}\\n@media (max-width: 603px) {\\n .logo-footer section:nth-child(2) div img {\\n height: auto;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL2xvZ28tZm9vdGVyL2xvZ28tZm9vdGVyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2xvZ28tZm9vdGVyL2xvZ28tZm9vdGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQUE7RUFDQSxnQ0FBQTtBQ0NGO0FEQ0U7RUFDRSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsV0FBQTtBQ0NKO0FEQ0k7RUFDRSxjQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7QUNDTjtBRENNO0VBTEY7SUFNSSxlQUFBO0lBQ0EsY0FBQTtFQ0VOO0FBQ0Y7QURBTTtFQUNFLFlBQUE7QUNFUjtBREdFO0VBQ0Usa0JBQUE7RUFDQSxzQkFBQTtBQ0RKO0FER0k7RUFDRSxpQkFBQTtFQUNBLGNBQUE7QUNETjtBREdNO0VBQ0UsWUFBQTtBQ0RSO0FER1E7RUFIRjtJQUlJLFlBQUE7RUNBUjtBQUNGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9sb2dvLWZvb3Rlci9sb2dvLWZvb3Rlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5sb2dvLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGhlaWdodDogdmFyKC0tcmRpLWZvb3Rlci1oZWlnaHQpO1xuXG4gIHNlY3Rpb246bnRoLWNoaWxkKDEpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwO1xuICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgZGl2IHtcbiAgICAgIG1heC13aWR0aDogNDAlO1xuICAgICAgcGFkZGluZzogMjBweCAwO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1NTBweCkge1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgICAgIG1heC13aWR0aDogNTAlO1xuICAgICAgfVxuXG4gICAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2VjdGlvbjpudGgtY2hpbGQoMikge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7XG5cbiAgICBkaXYge1xuICAgICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiA2NHB4O1xuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDNweCkge1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmxvZ28tZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgaGVpZ2h0OiB2YXIoLS1yZGktZm9vdGVyLWhlaWdodCk7XG59XG4ubG9nby1mb290ZXIgc2VjdGlvbjpudGgtY2hpbGQoMSkge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmxvZ28tZm9vdGVyIHNlY3Rpb246bnRoLWNoaWxkKDEpIGRpdiB7XG4gIG1heC13aWR0aDogNDAlO1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU1MHB4KSB7XG4gIC5sb2dvLWZvb3RlciBzZWN0aW9uOm50aC1jaGlsZCgxKSBkaXYge1xuICAgIHBhZGRpbmc6IDE1cHggMDtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxufVxuLmxvZ28tZm9vdGVyIHNlY3Rpb246bnRoLWNoaWxkKDEpIGRpdiBpbWcge1xuICBoZWlnaHQ6IDI2cHg7XG59XG4ubG9nby1mb290ZXIgc2VjdGlvbjpudGgtY2hpbGQoMikge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ubG9nby1mb290ZXIgc2VjdGlvbjpudGgtY2hpbGQoMikgZGl2IHtcbiAgcGFkZGluZzogMTJweCA4cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuLmxvZ28tZm9vdGVyIHNlY3Rpb246bnRoLWNoaWxkKDIpIGRpdiBpbWcge1xuICBoZWlnaHQ6IDY0cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjAzcHgpIHtcbiAgLmxvZ28tZm9vdGVyIHNlY3Rpb246bnRoLWNoaWxkKDIpIGRpdiBpbWcge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { PassLockComponent } from 'app/components/pass-lock/pass-lock.component';\nimport { AdminConfigComponent } from 'app/components/admin-config/admin-config.component';\n\n@Component({\n selector: 'app-logo-footer',\n templateUrl: './logo-footer.component.html',\n styleUrls: ['./logo-footer.component.scss'],\n})\nexport class LogoFooterComponent implements OnInit {\n private clicks: number = 0;\n private timeout: number;\n\n constructor(private modalController: ModalController) { }\n\n ngOnInit(): void {}\n\n public onClick(): void {\n if (++this.clicks >= 5) {\n this.reset();\n this.openPassLock();\n } else {\n this.setTimeout(() => this.reset(), 500);\n }\n }\n\n private reset(): void {\n this.clearTimeout();\n this.clicks = 0;\n }\n\n private clearTimeout(): void {\n if (this.timeout) clearTimeout(this.timeout);\n\n this.timeout = null;\n }\n\n private setTimeout(f: Function, ms: number): void {\n this.clearTimeout();\n\n this.timeout = setTimeout(f, ms);\n }\n\n private async openPassLock(): Promise {\n const modal: HTMLIonModalElement = await this.modalController.create({\n component: PassLockComponent,\n backdropDismiss: true,\n cssClass: 'pass-lock-modal modal-rounded'\n });\n\n modal.onDidDismiss().then((res: any) => {\n if (res.data && res.data.unlocked) {\n this.openAdminConfig();\n }\n });\n\n await modal.present();\n }\n\n private async openAdminConfig(): Promise {\n const modal: HTMLIonModalElement = await this.modalController.create({\n component: AdminConfigComponent,\n backdropDismiss: false,\n cssClass: 'admin-config-modal modal-rounded'\n });\n\n await modal.present();\n }\n}\n","const colorStreets = '#002C42';\nconst colorWater = '#003E59';\nconst colorEverythingElse = '#003E56';\nconst colorTextLabels = '#ffffff';\nexport const yellow = '#ffe500';\nexport const darkYellow = '#BBAF44';\n\nexport const browserStyles = [\n {\n featureType: 'all',\n\n stylers: [\n {\n color: colorEverythingElse,\n },\n ],\n },\n {\n featureType: 'water',\n elementType: 'geometry',\n stylers: [\n {\n color: colorWater,\n },\n ],\n },\n {\n featureType: 'all',\n elementType: 'labels.text.fill',\n stylers: [{ color: colorTextLabels }],\n },\n {\n featureType: 'road',\n stylers: [{ color: colorStreets }],\n },\n {\n featureType: 'road',\n elementType: 'labels.text',\n stylers: [{ visibility: 'off' }],\n },\n {\n featureType: 'poi.business',\n stylers: [{ visibility: 'off' }],\n },\n];\n// Used to hide the google tiles (if they have been downloaded)\nexport const mobileStyles = [\n {\n featureType: 'all',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'landscape',\n elementType: 'geometry',\n stylers: [\n {\n visibility: 'on',\n },\n {\n color: colorWater,\n },\n ],\n },\n /*\n {\n featureType: 'geometry',\n\n stylers: [\n {\n visibility: 'on',\n },\n {\n color: colorWater,\n },\n ],\n },\n */\n];\n\nexport const infoWindowStyle = {\n 'text-align': 'center',\n padding: '20px',\n width: '200px',\n 'border-color': yellow,\n};\n","export default \".map_canvas {\\n /** Preventing Google Maps error \\\"Error: DIV is too small. Must be bigger than 100x100\\\" */\\n min-height: 101px;\\n min-width: 101px;\\n width: 100%;\\n height: var(--rdi-full-height);\\n}\\n.map_canvas.static {\\n height: 50vh;\\n}\\n.map_canvas ion-button {\\n width: 160px;\\n}\\n.map_canvas .navbutton {\\n position: absolute;\\n bottom: 80px;\\n right: 15px;\\n width: auto;\\n}\\n.map_canvas .relocate {\\n position: absolute;\\n bottom: 125px;\\n right: 15px;\\n width: auto;\\n}\\n.map_canvas .gmaps-navigate {\\n position: absolute;\\n bottom: 170px;\\n right: 15px;\\n width: auto;\\n}\\n.pgm-html-info-content-frame,\\n.pgm-html-info-frame {\\n height: auto !important;\\n}\\n.pgm-html-info-content-box .title {\\n color: #283952;\\n font-family: \\\"the_mix_bold\\\";\\n font-style: normal;\\n font-weight: normal;\\n}\\n.pgm-html-info-content-box .subline {\\n color: #283952;\\n padding: 0 25px;\\n}\\n.pgm-html-info-content-box .location-index {\\n padding: 0 1px;\\n min-width: 16px;\\n display: inline-block;\\n background: #283952;\\n color: #ffe500;\\n margin-right: 0.5em;\\n}\\n.pgm-html-info-content-frame {\\n border: none !important;\\n}\\n/*\\n\\n\\n.pgm-html-info-tail-erase-border {\\n background-color: #ffe500 !important;\\n}\\n.pgm-html-info-tail-right {\\n border-top-color: #ffe500 !important;\\n}\\n*/\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL21hcC9tYXAuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvbWFwL21hcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlGQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUVBLFdBQUE7RUFDQSw4QkFBQTtBQ0FGO0FERUU7RUFDRSxZQUFBO0FDQUo7QURHRTtFQUNFLFlBQUE7QUNESjtBRElFO0VBQ0Usa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7QUNGSjtBREtFO0VBQ0Usa0JBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7QUNISjtBRE1FO0VBQ0Usa0JBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7QUNKSjtBRFFBOztFQUVFLHVCQUFBO0FDTEY7QURTRTtFQUNFLGNBQUE7RUFDQSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7QUNOSjtBRFFFO0VBQ0UsY0FBQTtFQUNBLGVBQUE7QUNOSjtBRFFFO0VBQ0UsY0FBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBO0FDTko7QURTQTtFQUNFLHVCQUFBO0FDTkY7QURTQTs7Ozs7Ozs7O0NBQUEiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21hcC9tYXAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWFwX2NhbnZhcyB7XG4gIC8qKiBQcmV2ZW50aW5nIEdvb2dsZSBNYXBzIGVycm9yIFwiRXJyb3I6IERJViBpcyB0b28gc21hbGwuIE11c3QgYmUgYmlnZ2VyIHRoYW4gMTAweDEwMFwiICovXG4gIG1pbi1oZWlnaHQ6IDEwMXB4O1xuICBtaW4td2lkdGg6IDEwMXB4O1xuXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IHZhcigtLXJkaS1mdWxsLWhlaWdodCk7XG5cbiAgJi5zdGF0aWMge1xuICAgIGhlaWdodDogNTB2aDtcbiAgfVxuXG4gIGlvbi1idXR0b24ge1xuICAgIHdpZHRoOiAxNjBweDtcbiAgfVxuXG4gIC5uYXZidXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDgwcHg7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAucmVsb2NhdGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDEyNXB4O1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgLmdtYXBzLW5hdmlnYXRlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxNzBweDtcbiAgICByaWdodDogMTVweDtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4ucGdtLWh0bWwtaW5mby1jb250ZW50LWZyYW1lLFxuLnBnbS1odG1sLWluZm8tZnJhbWUge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgLy8gZml4IGJ1ZzogaW5jcmVhc2luZyBwb3B1cCBoZWlnaHRcbn1cblxuLnBnbS1odG1sLWluZm8tY29udGVudC1ib3gge1xuICAudGl0bGUge1xuICAgIGNvbG9yOiAjMjgzOTUyO1xuICAgIGZvbnQtZmFtaWx5OiAndGhlX21peF9ib2xkJztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxuICAuc3VibGluZSB7XG4gICAgY29sb3I6ICMyODM5NTI7XG4gICAgcGFkZGluZzogMCAyNXB4O1xuICB9XG4gIC5sb2NhdGlvbi1pbmRleCB7XG4gICAgcGFkZGluZzogMCAxcHg7XG4gICAgbWluLXdpZHRoOiAxNnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAjMjgzOTUyO1xuICAgIGNvbG9yOiAjZmZlNTAwO1xuICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gIH1cbn1cbi5wZ20taHRtbC1pbmZvLWNvbnRlbnQtZnJhbWUge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLypcblxuXG4ucGdtLWh0bWwtaW5mby10YWlsLWVyYXNlLWJvcmRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU1MDAgIWltcG9ydGFudDtcbn1cbi5wZ20taHRtbC1pbmZvLXRhaWwtcmlnaHQge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZmZlNTAwICFpbXBvcnRhbnQ7XG59XG4qLyIsIi5tYXBfY2FudmFzIHtcbiAgLyoqIFByZXZlbnRpbmcgR29vZ2xlIE1hcHMgZXJyb3IgXCJFcnJvcjogRElWIGlzIHRvbyBzbWFsbC4gTXVzdCBiZSBiaWdnZXIgdGhhbiAxMDB4MTAwXCIgKi9cbiAgbWluLWhlaWdodDogMTAxcHg7XG4gIG1pbi13aWR0aDogMTAxcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IHZhcigtLXJkaS1mdWxsLWhlaWdodCk7XG59XG4ubWFwX2NhbnZhcy5zdGF0aWMge1xuICBoZWlnaHQ6IDUwdmg7XG59XG4ubWFwX2NhbnZhcyBpb24tYnV0dG9uIHtcbiAgd2lkdGg6IDE2MHB4O1xufVxuLm1hcF9jYW52YXMgLm5hdmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA4MHB4O1xuICByaWdodDogMTVweDtcbiAgd2lkdGg6IGF1dG87XG59XG4ubWFwX2NhbnZhcyAucmVsb2NhdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTI1cHg7XG4gIHJpZ2h0OiAxNXB4O1xuICB3aWR0aDogYXV0bztcbn1cbi5tYXBfY2FudmFzIC5nbWFwcy1uYXZpZ2F0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNzBweDtcbiAgcmlnaHQ6IDE1cHg7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4ucGdtLWh0bWwtaW5mby1jb250ZW50LWZyYW1lLFxuLnBnbS1odG1sLWluZm8tZnJhbWUge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLnBnbS1odG1sLWluZm8tY29udGVudC1ib3ggLnRpdGxlIHtcbiAgY29sb3I6ICMyODM5NTI7XG4gIGZvbnQtZmFtaWx5OiBcInRoZV9taXhfYm9sZFwiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4ucGdtLWh0bWwtaW5mby1jb250ZW50LWJveCAuc3VibGluZSB7XG4gIGNvbG9yOiAjMjgzOTUyO1xuICBwYWRkaW5nOiAwIDI1cHg7XG59XG4ucGdtLWh0bWwtaW5mby1jb250ZW50LWJveCAubG9jYXRpb24taW5kZXgge1xuICBwYWRkaW5nOiAwIDFweDtcbiAgbWluLXdpZHRoOiAxNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6ICMyODM5NTI7XG4gIGNvbG9yOiAjZmZlNTAwO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuXG4ucGdtLWh0bWwtaW5mby1jb250ZW50LWZyYW1lIHtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qXG5cblxuLnBnbS1odG1sLWluZm8tdGFpbC1lcmFzZS1ib3JkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTAwICFpbXBvcnRhbnQ7XG59XG4ucGdtLWh0bWwtaW5mby10YWlsLXJpZ2h0IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZTUwMCAhaW1wb3J0YW50O1xufVxuKi8iXX0= */\"","import { AfterViewInit, Component, ElementRef, Input, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { File } from '@ionic-native/file/ngx';\nimport { Environment, GoogleMap, GoogleMapOptions, GoogleMaps, GoogleMapsEvent, GoogleMapsMapTypeId, ILatLng, LatLng, LatLngBounds } from '@ionic-native/google-maps';\nimport { NavController, Platform, ModalController } from '@ionic/angular';\nimport { LocationType, rdiBounds } from 'app/constants';\nimport { Location, Route, Story, Space} from 'app/interfaces/api/types';\nimport { HiddenPlace, SpaceWithCenter } from 'app/interfaces/map';\nimport { getCenter, getCenterOfBounds, getDistance, HIDDEN_PLACE_DEBOUNCE_RATE, HIDDEN_PLACE_THRESHOLD } from 'app/utils/map';\nimport { Environment as RdiEnvironment } from 'environments/environment';\nimport { browserStyles, mobileStyles } from './map-style';\nimport { addRouteArrows, hideAllInfoWindows, initialMapZoom, initUserLocator, initZoomElements, maxZoom, minZoom, registerLocationMarker, registerRoutePath, registerSpaceMarker, showElementsBasedOnZoom, stopUserLocator, updateRoutes, updateUserLocator, zoomAndTargetLocation, clearMapSubscriptions, initMap } from './map.drawhelper';\nimport { StoryChooser } from './storychooser';\nimport { LocationNotificationComponent } from 'app/components/location-notification/location-notification.component';\nimport { Subscription } from 'rxjs';\n\nimport * as jQuery from 'jquery';\n\nimport {\n ContextService,\n LocationService,\n ProtagonistService,\n RouteService,\n SettingsService,\n SpaceService,\n StoryService,\n StorageService\n} from 'app/services';\nimport { MapTilehelper } from './map.tilehelper';\n\n@Component({\n selector: 'map',\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MapComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild('storyChooserElement', { read: ElementRef, static: false })\n private storyChooserElement: ElementRef;\n\n @ViewChild('mapElement', { read: ElementRef, static: false })\n private mapElement: ElementRef;\n\n @Input() currentLocation: Location;\n @Input() currentStory: Story;\n @Input() onShowMore: Function;\n @Input() onShouldDismiss: Function;\n\n public contextRoute: Route;\n public storyChooser: StoryChooser;\n public currentUserLocation: ILatLng;\n public mapViewportIsOutsideConstraints: boolean;\n public defaultProtagonistAvatar: string = RdiEnvironment.getDefaultProtagonistAvatar();\n\n private map: GoogleMap;\n private geolocationWatchId: number;\n private spacesWithCenters: SpaceWithCenter[];\n\n private rdiBounds: LatLngBounds;\n private hiddenPlaces: HiddenPlace[] = [];\n\n private subscription: Subscription = new Subscription();\n\n constructor(\n private platform: Platform,\n private storageService: StorageService,\n private navCtrl: NavController,\n private modalCtrl: ModalController,\n private spaceService: SpaceService,\n private routeService: RouteService,\n private locationService: LocationService,\n private storyService: StoryService,\n private contextService: ContextService,\n private settingsService: SettingsService,\n ) {\n this.storyChooser = new StoryChooser();\n }\n\n async ngOnInit(): Promise {\n await this.platform.ready();\n\n initMap();\n initZoomElements();\n\n this.storyChooser = new StoryChooser();\n }\n\n async ngAfterViewInit(): Promise {\n await this.platform.ready();\n\n this.rdiBounds = new LatLngBounds([\n rdiBounds.southwest,\n rdiBounds.northeast,\n ]);\n\n initMap();\n initZoomElements();\n\n this.subscription.add(\n this.contextService.routeContextChange\n .subscribe((r: Route) => this.contextRoute = r)\n );\n\n // wait until all native google maps functions are available\n await this.initMap();\n\n this.storyChooser.setElement(this.storyChooserElement);\n }\n\n async ngOnDestroy(): Promise {\n navigator.geolocation.clearWatch(this.geolocationWatchId);\n stopUserLocator();\n this.subscription.unsubscribe();\n\n clearMapSubscriptions();\n\n this.map && await this.map.clear();\n this.map && await this.map.destroy();\n }\n\n private async initMap(): Promise {\n Environment.setEnv({\n API_KEY_FOR_BROWSER_RELEASE: 'AIzaSyAwjBxHCGhtodr-RjOPYbsVuVCGyq_G6D0',\n API_KEY_FOR_BROWSER_DEBUG: 'AIzaSyAwjBxHCGhtodr-RjOPYbsVuVCGyq_G6D0', // empty to run in development mode\n });\n\n await this.loadMapResources();\n\n const mapOptions: GoogleMapOptions = {\n styles: this.settingsService.getOfflineMapActive()\n ? mobileStyles\n : browserStyles,\n mapType: this.settingsService.getOfflineMapActive()\n ? GoogleMapsMapTypeId.NONE\n : GoogleMapsMapTypeId.NORMAL,\n controls: {\n zoom: false,\n myLocation: true,\n myLocationButton: false,\n },\n gestures: {\n scroll: true,\n tilt: false,\n rotate: false,\n zoom: true,\n },\n camera: {\n target: getCenter(\n this.spacesWithCenters.filter(c => c[1]).map(c => c[1]),\n ),\n zoom: initialMapZoom,\n },\n\n preferences: {\n disableDefaultUi: true,\n\n zoom: {\n minZoom: minZoom,\n maxZoom: maxZoom,\n },\n },\n };\n\n this.map = GoogleMaps.create(this.mapElement.nativeElement, mapOptions);\n\n if (this.settingsService.getOfflineMapActive()) {\n const tilehelper: MapTilehelper = new MapTilehelper(this.map);\n const prefix: string = this.storageService.tilesLocation;\n\n const getTile = (x, y, z) => tilehelper.getTile(x, y, z, prefix);\n\n /** @debug */\n // const getTile = (x, y, z) => tilehelper.collectTile(x, y, z, prefix);\n // (window as any).tilehelper = tilehelper;\n\n this.map.addTileOverlay({ getTile });\n }\n\n const mapSubscription = this.map.on(GoogleMapsEvent.MAP_READY)\n .subscribe(async () => {\n try {\n this.geolocationWatchId = navigator.geolocation.watchPosition(\n pos => {\n this.currentUserLocation = {\n lat: pos.coords.latitude,\n lng: pos.coords.longitude,\n };\n updateUserLocator(this.currentUserLocation);\n this.checkForHiddenPlace();\n },\n error => {\n if (\n error.code === error.PERMISSION_DENIED ||\n error.code === error.POSITION_UNAVAILABLE\n ) {\n stopUserLocator();\n }\n //console.log(error);\n },\n {\n timeout: 5000,\n enableHighAccuracy: true,\n },\n );\n\n await this.addMapInteractors();\n\n this.bindMapSubscribers();\n showElementsBasedOnZoom(this.map.getCameraZoom());\n\n const route = await this.contextService.getActiveRoute();\n\n if (route) {\n updateRoutes(route, route.locations[0], this.map);\n }\n } catch (e) {\n console.log(e);\n }\n\n this.contextRoute = await this.contextService.getActiveRoute();\n\n if (!this.contextRoute) {\n const contextRouteId: number = this.spacesWithCenters[0][0].routes[0];\n const contextRoute: Route = await this.routeService.getByID(contextRouteId);\n\n this.contextService.setActiveRoute(contextRoute);\n }\n });\n\n const mapClickSubscription = this.map.on(GoogleMapsEvent.MAP_CLICK)\n .subscribe(() => {\n this.storyChooser.hide();\n hideAllInfoWindows();\n });\n\n this.subscription.add(mapSubscription);\n this.subscription.add(mapClickSubscription);\n }\n\n private async loadMapResources(): Promise {\n const spaces: Space[] = await this.spaceService.getAll();\n const locations: Location[] = await this.locationService.getAll();\n\n this.spacesWithCenters = spaces.map((s) => [s, s.geolocations[0]]);\n\n this.hiddenPlaces = locations\n .filter(l => l.type_slug === LocationType.HIDDEN_PLACE && l.geolocations.length > 0)\n .map(l => ({ location: l, lastVisited: null }));\n }\n\n private async onShowMoreClicked(location: Location): Promise {\n if (this.onShowMore) {\n this.onShowMore(this.currentLocation, location);\n } else {\n if (location.stories) {\n const story = await this.storyService.getByID(location.stories[0]);\n\n this.goToStory(story, true);\n } else {\n console.warn(`No story found for location ${location.id}`);\n }\n }\n }\n\n private async addMapInteractors(): Promise {\n const routes: Route[] = await this.routeService.getAll();\n\n // iterate over spaces\n for (const spaceWithCenter of this.spacesWithCenters) {\n if (spaceWithCenter[1]) {\n if (spaceWithCenter[0].routes.length) {\n // register space marker\n await registerSpaceMarker(\n spaceWithCenter,\n this.map,\n this.storyChooser,\n () => this.goToSpace(spaceWithCenter[0].slug)\n );\n\n // iterate over routes\n for (const routeId of spaceWithCenter[0].routes) {\n const r = await this.routeService.getByID(routeId);\n // register route line\n const routeSegments = await registerRoutePath(r, this.map);\n\n await Promise.all(\n r.locations.map(async locationId => {\n const location = await this.locationService.getByID(locationId);\n\n /**\n * @description\n * Find the correct route to draw.\n * Problem: A location can have multiple routes and thus multiple indices.\n * Solution: We either look for the context Route or the route with the maximum amount of locations.\n */\n let maxLocations: number = -1;\n\n location.primaryRouteIndex = undefined;\n\n Object.entries(location.indexByRoute || {}).forEach(([routeId, index]) => {\n const route: Route = routes.find(({ id }) => id === Number(routeId));\n\n if (this.contextRoute && this.contextRoute.id === Number(routeId)) {\n location.primaryRouteIndex = index;\n } else if (route && route.locations && route.locations.length > maxLocations) {\n maxLocations = route.locations.length;\n location.primaryRouteIndex = index;\n }\n });\n\n return registerLocationMarker(\n location,\n this.map,\n this.storyChooser,\n () => this.onShowMoreClicked(location)\n );\n }),\n );\n\n if (!this.platform.is('desktop')) {\n addRouteArrows(r, this.map, routeSegments);\n }\n }\n }\n }\n }\n\n this.onAfterAddMapInteractors();\n }\n\n private async onAfterAddMapInteractors(): Promise {\n await initUserLocator(this.map);\n\n if (this.currentLocation) {\n zoomAndTargetLocation(\n this.currentLocation,\n this.map,\n this.storyChooser,\n () => this.onShowMoreClicked(this.currentLocation)\n );\n } else {\n showElementsBasedOnZoom(this.map.getCameraZoom());\n\n if (this.contextRoute) {\n updateRoutes(this.contextRoute, this.contextRoute.locations[0], this.map);\n }\n }\n }\n\n private bindMapSubscribers(): void {\n this.map.on(GoogleMapsEvent.CAMERA_MOVE_END)\n .subscribe(() => showElementsBasedOnZoom(this.map.getCameraZoom()));\n\n this.map.on(GoogleMapsEvent.MAP_DRAG_END).subscribe(() => {\n const cameraTarget: ILatLng = this.map.getCameraTarget();\n\n this.mapViewportIsOutsideConstraints = !this.rdiBounds.contains(cameraTarget);\n });\n }\n\n public goToSpace(slug: number | string): void {\n this.navCtrl.navigateRoot(`/space/${slug}`);\n }\n\n public setRoute(route: Route): void {\n this.contextService.setActiveRoute(route);\n\n updateRoutes(route, this.currentLocation ? this.currentLocation.id : undefined, this.map);\n }\n\n public goToStory(story: Story, showStoryteller: boolean = false): void {\n this.storyChooser.hide();\n\n const postfix: string = showStoryteller ? '/storyteller' : '';\n\n if (this.currentStory && this.currentStory.id === story.id) {\n this.onShouldDismiss();\n } else {\n this.navCtrl.navigateRoot(`/story/${story.slug}${postfix}`);\n }\n }\n\n public centerMapToUserLocation(): void {\n if (this.currentUserLocation) {\n this.map.animateCamera({\n target: this.currentUserLocation,\n duration: 500,\n });\n this.mapViewportIsOutsideConstraints = !this.rdiBounds.contains(\n this.currentUserLocation,\n );\n }\n }\n\n public centerMapToCenterOfContraints(): void {\n this.map.animateCamera({\n target: getCenterOfBounds(this.rdiBounds),\n duration: 500,\n zoom: initialMapZoom,\n });\n\n this.mapViewportIsOutsideConstraints = false;\n }\n\n public scrollStoryList(operator: string): void {\n const width: number = jQuery('.story-list-item').width() + 20;\n\n jQuery('.story-list-slider').animate({\n scrollLeft: `${operator}=${width}px`,\n });\n }\n\n private async enterHiddenPlace(place: HiddenPlace): Promise {\n const modal: HTMLIonModalElement = await this.modalCtrl.create({\n component: LocationNotificationComponent,\n backdropDismiss: false,\n cssClass: 'location-notification-modal',\n componentProps: {\n location: place.location\n }\n });\n\n await modal.present();\n }\n\n private checkForHiddenPlace(): void {\n const now = new Date();\n\n for (let i = 0; i < this.hiddenPlaces.length; i++) {\n const place = this.hiddenPlaces[i];\n const d = getDistance(place.location.geolocations[0], this.currentUserLocation);\n if (\n d <= HIDDEN_PLACE_THRESHOLD\n && (\n place.lastVisited === null\n || place.lastVisited.getTime() < (now.getTime() - HIDDEN_PLACE_DEBOUNCE_RATE)\n )\n ) {\n this.enterHiddenPlace(place);\n place.lastVisited = now;\n }\n }\n }\n}\n","import { GoogleMap, GoogleMapsEvent, HtmlInfoWindow, ILatLng, ILatLngBounds, Marker, Polyline } from '@ionic-native/google-maps';\nimport { LocationType } from 'app/constants';\nimport { Location, Post, Route, Space } from 'app/interfaces/api/types';\nimport { ElementType, SpaceWithCenter } from 'app/interfaces/map';\nimport { getAngleFromPointToPoint, getDistance, getTrackCoordinates } from 'app/utils/map';\nimport { darkYellow, infoWindowStyle, yellow } from './map-style';\nimport { Subscription } from 'rxjs';\nimport { StoryChooser } from './storychooser';\nimport { InAppBrowser } from '@ionic-native/in-app-browser/ngx';\nimport UserLocator from './userlocator';\n\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\n\nimport {\n ContextService,\n RouteService,\n SpaceService,\n StoryService,\n TranslatorService,\n LocationService,\n StorageService,\n LocationService as RdiLocationService\n} from 'app/services';\n\n// Keep track of all elements in order to show/hide them based on zoom levels\ninterface PostObjectWithElementAndInfoWindow {\n element: any;\n postObject: Post;\n auxKey?: string | number;\n infoWindow: HtmlInfoWindow | undefined;\n}\n\nlet contextService: ContextService;\nlet routeService: RouteService;\nlet spaceService: SpaceService;\nlet storyService: StoryService;\nlet translatorService: TranslatorService;\nlet locationService: LocationService;\nlet storageService: StorageService;\nlet inAppBrowser: InAppBrowser;\n\nexport const initialMapZoom = 11;\nexport const minZoom = 9;\nexport const maxZoom = 17;\nconst selectedRoutePathWidth = 10;\nconst routePathWidth = 5;\nconst minDistanceBetweenArrows = 200\n\nlet subscription;\nlet zoomElements;\nlet visibleRouteSegment: any;\n\nexport function initMap() {\n subscription = new Subscription();\n\n contextService = AppInjector.prepare().get(ContextService);\n routeService = AppInjector.prepare().get(RouteService);\n spaceService = AppInjector.prepare().get(SpaceService);\n storyService = AppInjector.prepare().get(StoryService);\n translatorService = AppInjector.prepare().get(TranslatorService);\n locationService = AppInjector.prepare().get(LocationService);\n storageService = AppInjector.prepare().get(StorageService);\n inAppBrowser = AppInjector.prepare().get(InAppBrowser);\n}\n\nexport function initZoomElements() {\n zoomElements = {\n [ElementType.NAVIGATION]: {\n min: minZoom,\n max: 18,\n elements: [],\n },\n [ElementType.GROUND_OVERLAY]: {\n min: minZoom,\n max: 18,\n elements: [],\n },\n [ElementType.SPACE]: {\n min: minZoom,\n max: 13,\n elements: [],\n },\n [ElementType.LOCATION]: {\n min: 13.01,\n max: 18,\n elements: [],\n },\n [ElementType.ROUTE_PATH]: {\n min: 13.01,\n max: 18,\n elements: [],\n },\n [ElementType.HIGHLIGHT_ROUTE_SEGMENT]: {\n min: 13.01,\n max: 18,\n elements: [],\n },\n [ElementType.ROUTE_ARROW]: {\n min: 13.01,\n max: 18,\n elements: [],\n },\n };\n}\n\nexport function getElementsAndPostObjectsByType(\n type: ElementType,\n): PostObjectWithElementAndInfoWindow[] {\n if (!zoomElements[type]) {\n throw new Error('element type not registered.');\n }\n return zoomElements[type].elements;\n}\n\nexport function getElementsByType(type: ElementType) {\n if (!zoomElements[type]) {\n throw new Error('element type not registered.');\n }\n return zoomElements[type].elements.map(({ element }) => element);\n}\n\nexport function getPostObjectsByType(type: ElementType) {\n if (!zoomElements[type]) {\n throw new Error('element type not registered.');\n }\n return zoomElements[type].elements.map(({ postObject }) => postObject);\n}\n\nfunction registerElement(type: ElementType, element: any, postObject?: Post, auxKey?: string | number): {element: any, postObject: Post | undefined, auxKey?: string | number} {\n const elementAndPostObject = { element, postObject, auxKey };\n zoomElements[type].elements.push(elementAndPostObject);\n return elementAndPostObject;\n}\n\nexport function showElementsBasedOnZoom(zoom: number) {\n for (const type of Object.keys(zoomElements)) {\n if (type !== ElementType.HIGHLIGHT_ROUTE_SEGMENT) {\n for (const { element } of zoomElements[type].elements) {\n element.setVisible(\n zoom >= zoomElements[type].min && zoom <= zoomElements[type].max,\n );\n }\n } else {\n if (zoom >= zoomElements[type].min && zoom <= zoomElements[type].max) {\n for (const { element } of zoomElements[type].elements) {\n if (element === visibleRouteSegment) {\n element.setVisible(true);\n } else {\n element.setVisible(false);\n }\n }\n\n } else {\n for (const { element } of zoomElements[type].elements) {\n if (element === visibleRouteSegment) {\n visibleRouteSegment = element;\n }\n element.setVisible(false);\n }\n }\n }\n }\n}\n\nexport async function registerRoutePath(route: Route, map: GoogleMap) {\n const points: ILatLng[] = getTrackCoordinates(route);\n const locationPoints: { point: ILatLng, location: Location }[] = [];\n\n if (points.length === 0) {\n return;\n }\n // Draw the whole route (yellow line)\n const line = await map.addPolyline({\n visible: false,\n points: points,\n color: darkYellow,\n width: routePathWidth,\n geodesic: false,\n });\n line.setZIndex(10);\n registerElement(ElementType.ROUTE_PATH, line, route);\n\n // Find closest points (on gpx routes) to locations and stack\n // them together with the following points (until the next location)\n // on the locationPoints stack. This produce tuples of\n // Location <-> Route Segments (containing the next points)\n //\n // Location A (contains the next 3 points until Location B)\n // *\n // *\n // *\n // Location B (contains the next 2 Points until Location C)\n // *\n // *\n // Location C .....\n\n // First: search for closest points to locations on gpx track\n const locations: Location[] = [];\n for (const lId of route.locations) {\n locations.push(await locationService.getByID(lId));\n }\n const stationLocations = locations.filter(l => l.type_slug === LocationType.STATION);\n for (let i = 0; i < stationLocations.length - 1; i++) {\n const location = stationLocations[i];\n const nextLocation = stationLocations[i + 1];\n\n let shortestDistance = null;\n let shortestDistancePoint = null;\n\n for (let j = 0; j < points.length; j++) {\n const point = points[j];\n const distance = getDistance(point, nextLocation.geolocations[0]);\n if (shortestDistance === null || (distance < shortestDistance)) {\n shortestDistance = distance;\n shortestDistancePoint = point;\n }\n }\n locationPoints.push({ point: shortestDistancePoint, location });\n }\n\n // Second: put them into route segments\n const routeSegments: { points: ILatLng[], location: Location }[] = [];\n let lastIndex = 0;\n for (let i = 0; i < locationPoints.length; i++) {\n const locationPoint = locationPoints[i];\n const routePoints: ILatLng[] = [];\n for (let j = lastIndex; j < points.length; j++) {\n const p = points[j];\n routePoints.push({ lat: p.lat, lng: p.lng });\n if (p.lat === locationPoint.point.lat && p.lng === locationPoint.point.lng) {\n routeSegments.push({ points: routePoints, location: locationPoint.location })\n lastIndex = j;\n break;\n }\n }\n }\n\n // Finally: draw the segments\n for (const segment of routeSegments) {\n const lineSegment = await map.addPolyline({\n visible: false,\n points: segment.points,\n color: '#ffffff',\n width: 12,\n geodesic: false,\n });\n lineSegment.setZIndex(10);\n registerElement(ElementType.HIGHLIGHT_ROUTE_SEGMENT, lineSegment, route, segment.location.id);\n }\n\n return routeSegments;\n}\n\nexport async function registerSpaceMarker(\n spaceWithCenter: SpaceWithCenter,\n map: GoogleMap,\n storyChooser: StoryChooser,\n clickHandler: Function\n) {\n const marker = await map.addMarker({\n visible: false,\n disableAutoPan: true,\n position: spaceWithCenter[1],\n icon: {\n url: await storageService.loadAsset('/assets/img/map/icon-circle.png'),\n size: { width: 40, height: 40 },\n anchor: [20, 20],\n },\n });\n const sub = marker.on(GoogleMapsEvent.MARKER_CLICK).subscribe(async () => {\n showInfoWindowForSpace(\n spaceWithCenter[0],\n clickHandler,\n map,\n storyChooser,\n );\n const route = await routeService.getByID(spaceWithCenter[0].routes[0]);\n contextService.setActiveRoute(route);\n updateRoutes(route, route.locations[0], map);\n });\n\n subscription.add(sub);\n\n registerElement(ElementType.SPACE, marker, spaceWithCenter[0]);\n}\n\nexport async function registerLocationMarker(\n location: Location,\n map: GoogleMap,\n storyChooser: StoryChooser,\n clickHandler: Function\n) {\n const index: number = (location.primaryRouteIndex !== undefined)\n ? location.primaryRouteIndex + 1\n : undefined;\n const iconUrl: string = (index === undefined)\n ? await storageService.loadAsset('/assets/img/map/icon-circle-fill-blue.png')\n : await storageService.loadAsset(`/assets/img/map/locations/Standortkreis_${index}.png`);\n\n const marker = await map.addMarker({\n visible: false,\n disableAutoPan: true,\n position: location.geolocations[0],\n opacity: 0.8,\n icon: {\n url:\n location.type_slug === LocationType.SIDE_KICK\n ? await storageService.loadAsset('/assets/img/map/icon-circle-white-fill-blue.png')\n : iconUrl,\n size: { width: 40, height: 40 },\n anchor: [20, 20],\n },\n });\n const sub = marker.on(GoogleMapsEvent.MARKER_CLICK).subscribe(async () => {\n showInfoWindowForLocation(\n location,\n storyChooser,\n clickHandler,\n map,\n );\n const route = await contextService.getActiveRoute();\n if (route) {\n updateRoutes(route, location.id, map);\n }\n });\n\n subscription.add(sub);\n\n registerElement(ElementType.LOCATION, marker, location);\n}\n\nexport async function addRouteArrows(\n route: Route,\n map: GoogleMap,\n routeSegments: { points: ILatLng[], location: Location }[]\n) {\n return;\n for (let i = 0; i < routeSegments.length -1; i++) {\n const routeSegment = routeSegments[i];\n // calculate an average angle from the first to all other segment-points\n let angle = 0;\n for (let j = 1; j < routeSegment.points.length; j++) {\n angle += getAngleFromPointToPoint(routeSegment.points[0], routeSegment.points[j]);\n }\n angle = angle / (routeSegment.points.length - 1);\n const marker = await map.addMarker({\n position: routeSegment.points[0],\n visible: false,\n opacity: 1,\n icon: {\n url: await storageService.loadAsset('/assets/img/map/icon-arrow-yellow.png'),\n size: { width: 20, height: 20 },\n anchor: [10, 10],\n }\n });\n marker.setRotation(angle);\n marker.setDisableAutoPan(true);\n registerElement(ElementType.ROUTE_ARROW, marker);\n }\n}\n\nexport async function registerGroundOverlay(\n imageUrl: string,\n bounds: ILatLngBounds,\n map: GoogleMap,\n) {\n const overlay = await map.addGroundOverlay({\n url: imageUrl,\n bounds: [bounds.northeast, bounds.southwest],\n opacity: 1,\n clickable: true,\n });\n registerElement(ElementType.GROUND_OVERLAY, overlay);\n}\n\nexport function updateUserLocator(position: ILatLng) {\n const userLocator: UserLocator | null = zoomElements[ElementType.NAVIGATION]\n .elements.length\n ? zoomElements[ElementType.NAVIGATION].elements[0].element\n : null;\n if (userLocator) {\n userLocator.setPosition({ ...position });\n }\n}\n\nexport async function initUserLocator(map: GoogleMap) {\n const userLocator = new UserLocator(map);\n await userLocator.init();\n registerElement(ElementType.NAVIGATION, userLocator);\n}\n\nexport function stopUserLocator() {\n const userLocator: UserLocator | null = zoomElements[ElementType.NAVIGATION]\n .elements.length\n ? zoomElements[ElementType.NAVIGATION].elements[0].element\n : null;\n if (userLocator) {\n userLocator.setVisible(false);\n }\n}\n\nexport function hideAllInfoWindows() {\n for (const element of [\n ...getElementsAndPostObjectsByType(ElementType.LOCATION),\n ...getElementsAndPostObjectsByType(ElementType.SPACE),\n ]) {\n if (element.infoWindow) {\n element.infoWindow.close();\n }\n }\n}\n\nasync function showInfoWindowForSpace(\n space: Space,\n clickHandler: Function,\n map: GoogleMap,\n storyChooser: StoryChooser\n) {\n const elementAndPostObject = getElementsAndPostObjectsByType(\n ElementType.SPACE,\n ).find(pair => pair.postObject.id === space.id);\n if (!elementAndPostObject) {\n throw new Error(`Element has not been registered for Space ${space.id}`);\n }\n const marker = elementAndPostObject.element;\n\n if (!marker) {\n throw new Error(`Marker has not been set for Space ${space.id}`);\n }\n\n const htmlInfoWindow = new HtmlInfoWindow();\n elementAndPostObject.infoWindow = htmlInfoWindow;\n htmlInfoWindow.setBackgroundColor(yellow);\n const htmlDiv = document.createElement('div');\n htmlDiv.innerHTML = `
${space.name}
${space.short_description}
`;\n const gotoSpaceButton = document.createElement('ion-button');\n gotoSpaceButton.innerText = translatorService.translate('learn_more');\n gotoSpaceButton.setAttribute('color', 'hauptcolor');\n gotoSpaceButton.setAttribute('fill', 'outline');\n\n htmlDiv.appendChild(gotoSpaceButton);\n\n const targetButton = document.createElement('ion-button');\n targetButton.innerHTML = '\\n';\n targetButton.setAttribute('color', 'hauptcolor');\n targetButton.setAttribute('fill', 'outline');\n htmlDiv.appendChild(targetButton);\n targetButton.addEventListener('click', async () => {\n const route = await routeService.getByID(space.routes[0]);\n let locationId: number;\n for (const lId of route.locations) {\n const location = await locationService.getByID(lId);\n if (location.type_slug === LocationType.STATION) {\n locationId = location.id;\n break;\n }\n }\n htmlInfoWindow.close();\n if (locationId) {\n const location = await locationService.getByID(locationId);\n zoomAndTargetLocation(\n location,\n map,\n storyChooser,\n clickHandler\n );\n }\n });\n\n htmlInfoWindow.setContent(htmlDiv, infoWindowStyle);\n\n gotoSpaceButton.addEventListener('click', () => {\n if (space.routes.length) {\n clickHandler();\n }\n });\n\n hideAllInfoWindows();\n\n htmlInfoWindow.open(marker);\n\n map.animateCamera({\n target: marker.getPosition(),\n duration: 500,\n });\n}\n\nexport async function showInfoWindowForLocation(\n location: Location,\n storyChooser: StoryChooser,\n clickHandler: Function,\n map: GoogleMap\n) {\n const elementAndPostObject = getElementsAndPostObjectsByType(\n ElementType.LOCATION,\n ).find(pair => pair.postObject.id === location.id);\n if (!elementAndPostObject) {\n throw new Error(\n `Element has not been registered for Location ${location.id}`,\n );\n }\n\n const marker = elementAndPostObject.element as Marker;\n\n if (!marker) {\n throw new Error(`Marker has not been set for Location ${location.id}`);\n }\n const htmlInfoWindow = new HtmlInfoWindow();\n elementAndPostObject.infoWindow = htmlInfoWindow;\n\n htmlInfoWindow.setBackgroundColor(yellow);\n const htmlDiv = document.createElement('div');\n const indizes = location.indexByRoute\n ? Object.values(location.indexByRoute).map(i => i + 1)\n : [];\n\n /* const joinedIndizes =\n location.type_slug === LocationType.STATION ? indizes.join('/') : null; */\n const highestIndex = location.type_slug === LocationType.STATION ? Math.max.apply(Math, indizes) : null;\n htmlDiv.innerHTML = `\n
${\n highestIndex !== null\n ? `${highestIndex}`\n : ''\n }${location.name}
\n
${location.short_description}
\n `;\n\n if (location.type_slug === LocationType.STATION) {\n const mapButton: any = document.createElement('ion-button');\n mapButton.innerText = translatorService.translate('navigate');\n mapButton.setAttribute('color', 'hauptcolor');\n mapButton.setAttribute('fill', 'outline');\n mapButton.setAttribute('mode', 'md');\n mapButton.addEventListener('click', openGoogleMaps);\n htmlDiv.appendChild(mapButton);\n\n const button = document.createElement('ion-button');\n button.innerText = translatorService.translate('learn_more');\n button.setAttribute('color', 'hauptcolor');\n button.setAttribute('fill', 'outline');\n button.setAttribute('mode', 'md');\n button.addEventListener('click', () => clickHandler());\n htmlDiv.appendChild(button);\n\n const route = await routeService.getByID(location.routes[0]);\n const space = await spaceService.getByID(route.space);\n\n storyChooser.setSpace(space);\n await storyChooser.setLocation(location);\n\n const stories = [];\n for (const storyId of location.stories) {\n stories.push(await storyService.getByID(storyId));\n }\n await storyChooser.setStories(stories);\n\n storyChooser.show();\n\n window.dispatchEvent(new Event('resize'));\n }\n\n htmlInfoWindow.setContent(htmlDiv, infoWindowStyle);\n\n hideAllInfoWindows();\n\n htmlInfoWindow.open(marker);\n\n map.animateCamera({\n target: marker.getPosition(),\n duration: 500,\n });\n}\n\nexport function minimizeAllLocationMarkers() {\n getElementsByType(ElementType.LOCATION).forEach(async (element: Marker) => {\n element.setIcon({\n url: await storageService.loadAsset('/assets/img/map/icon-circle.png'),\n size: { width: 20, height: 20 },\n });\n\n element.setIconAnchor(10, 10);\n });\n}\n\nexport function updateRoutes(currentRoute: Route, locationId: number | undefined, map: GoogleMap) {\n getElementsAndPostObjectsByType(ElementType.ROUTE_PATH).forEach(\n ({ element, postObject }) => {\n const routeLine = element as Polyline;\n if (postObject.id === currentRoute.id) {\n routeLine.setStrokeWidth(selectedRoutePathWidth);\n routeLine.setStrokeColor(yellow);\n routeLine.setZIndex(10);\n } else {\n routeLine.setStrokeWidth(routePathWidth);\n routeLine.setStrokeColor(darkYellow);\n routeLine.setZIndex(10);\n }\n },\n );\n const zoom = map.getCameraZoom();\n\n getElementsAndPostObjectsByType(ElementType.HIGHLIGHT_ROUTE_SEGMENT)\n .forEach(({ element, postObject, auxKey }) => {\n const routeLine = element as Polyline;\n if (auxKey && auxKey === locationId) {\n if (\n zoom >= zoomElements[ElementType.HIGHLIGHT_ROUTE_SEGMENT].min &&\n zoom <= zoomElements[ElementType.HIGHLIGHT_ROUTE_SEGMENT].max\n ) {\n routeLine.setVisible(true);\n visibleRouteSegment = routeLine;\n routeLine.setZIndex(100);\n }\n } else {\n routeLine.setVisible(false);\n routeLine.setZIndex(10);\n }\n });\n}\n\nexport function zoomAndTargetLocation(\n location: Location,\n map: GoogleMap,\n storyChooser: StoryChooser,\n clickHandler: Function\n) {\n map.setCameraTarget(location.geolocations[0]);\n const zoom = zoomElements[ElementType.LOCATION].min + 3;\n\n map.one(GoogleMapsEvent.CAMERA_MOVE_END).then(async () => {\n showInfoWindowForLocation(\n location,\n storyChooser,\n clickHandler,\n map\n );\n\n showElementsBasedOnZoom(zoom);\n const route = await routeService.getByID(location.routes[0]);\n updateRoutes(route, location.id, map);\n });\n\n map.setCameraZoom(zoom);\n}\n\nfunction openGoogleMaps() {\n const points: any[] = visibleRouteSegment\n .getPoints()\n .getArray();\n\n const url: URL = new URL('https://www.google.com');\n const dest: any = points.pop();\n const origin: any = points.shift();\n const step: number = Math.floor(points.length / 8) || 1;\n const waypoints: any[] = [];\n\n /* You can only use a total of 8 waypoints in Google Maps */\n for (let i: number = 0; i < points.length; i += step) {\n waypoints.push(points[i]);\n }\n\n url.pathname = '/maps/dir/';\n url.searchParams.set('api', '1');\n url.searchParams.set('travelmode', 'walking');\n url.searchParams.set('origin', `${origin.lat},${origin.lng}`);\n url.searchParams.set('destination', `${dest.lat},${dest.lng}`);\n url.searchParams.set(\n 'waypoints',\n waypoints\n .map((p) => `${p.lat},${p.lng}`)\n .join('|')\n );\n\n inAppBrowser.create(url.toString(), '_system').show();\n}\n\nexport function clearMapSubscriptions() {\n subscription.unsubscribe();\n}","import { GoogleMap } from '@ionic-native/google-maps';\n\nexport class MapTilehelper {\n private tiles: Set = new Set();\n\n constructor(private map: GoogleMap) { }\n\n public getTile(x: number, y: number, z: number, prefix: string = ''): string {\n return `${prefix}${z}/${x}/${y}.png`;\n }\n\n /**\n * Zoom helpers\n */\n public getZoom(): number {\n return this.map.getCameraZoom();\n }\n\n public setZoom(zoom: number): void {\n this.map.setCameraZoom(zoom);\n }\n\n public zoomIn(): void {\n this.setZoom(this.getZoom() + 1);\n }\n\n public zoomOut(): void {\n this.setZoom(this.getZoom() - 1);\n }\n\n /**\n * Just collect tiles, don't return anything\n */\n public collectTile(x: number, y: number, z: number, prefix: string = ''): null {\n this.tiles.add(this.getTile(x, y, z, prefix));\n\n return null;\n }\n\n public dumpTiles(): string[] {\n return Array.from(this.tiles);\n }\n\n public clearTiles(): void {\n this.tiles.clear();\n }\n}","import { ElementRef } from '@angular/core';\nimport { Location, Protagonist, Route, Space, Story } from 'app/interfaces/api/types';\nimport { ProtagonistService, RouteService } from 'app/services';\n\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\n\nimport * as jQuery from 'jquery';\n\nexport class StoryChooser {\n private element: ElementRef;\n private $: JQueryStatic = jQuery;\n private location: Location;\n private stories: Story[] = [];\n private space: Space;\n private items: { story: Story; protagonist: Protagonist }[] = [];\n private protagonistService: ProtagonistService;\n private routeService: RouteService;\n\n public routes: Route[] = [];\n\n constructor() {\n this.protagonistService = AppInjector.prepare().get(ProtagonistService);\n this.routeService = AppInjector.prepare().get(RouteService);\n }\n\n public setElement(element: ElementRef) {\n this.element = element;\n\n this.updateSlider();\n }\n\n public async setLocation(location: Location): Promise {\n this.location = location;\n this.routes = await this.routeService.getByIDs(this.location.routes);\n }\n\n setSpace(space: Space) {\n this.space = space;\n }\n\n getSpace(): Space {\n return this.space;\n }\n\n async setStories(stories: Story[]): Promise {\n this.stories = stories;\n this.items = [];\n\n for (const s of this.stories) {\n if (s.protagonist) {\n this.items.push({\n story: s,\n protagonist: await this.protagonistService.getByID(s.protagonist)\n });\n }\n }\n\n this.updateSlider();\n }\n\n private updateSlider(): void {\n if (this.element) {\n const slider: HTMLDivElement|null = this.element.nativeElement.querySelector('div.story-list-slider');\n\n if (slider) {\n /** @see src/assets/css/_story-chooser.scss:62 */\n slider.setAttribute('data-total-protagonists', String(this.items.length));\n }\n }\n }\n\n public getItems() {\n return this.items;\n }\n\n public show() {\n this.$(this.element.nativeElement)\n .stop()\n .clearQueue()\n .fadeIn();\n }\n\n public hide() {\n this.$(this.element.nativeElement)\n .stop()\n .clearQueue()\n .fadeOut();\n }\n}\n","import { GoogleMap, ILatLng, Marker } from '@ionic-native/google-maps';\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { StorageService } from 'app/services';\n\nexport default class UserLocator {\n private storageService: StorageService;\n private marker: Marker;\n private opacity = 0;\n private pulsateVelocity = 0.05;\n private interval: any;\n private running = false;\n private position: ILatLng = { lat: 51.5137, lng: 7.470967 };\n\n constructor(private map: GoogleMap) {\n this.storageService = AppInjector.prepare().get(StorageService);\n }\n\n setPosition(position: ILatLng) {\n if (!this.running) {\n this.start();\n }\n this.position = position;\n\n if (this.marker) {\n this.marker.setVisible(true);\n this.marker.setPosition(this.position);\n }\n }\n\n async init() {\n this.marker = await this.map.addMarker({\n position: this.position,\n icon: {\n url: await this.storageService.loadAsset('/assets/img/map/icon-circle-user-location.png'),\n size: { width: 20, height: 20 },\n anchor: [10, 10],\n },\n visible: false,\n });\n }\n\n start() {\n if (!this.marker) {\n return;\n }\n this.running = true;\n this.marker.setVisible(true);\n clearInterval(this.interval);\n this.interval = setInterval(() => {\n if (this.marker) {\n if (this.opacity >= 0.75) {\n this.opacity = 0.75;\n this.pulsateVelocity *= -1;\n } else if (this.opacity <= 0.25) {\n this.opacity = 0.25;\n this.pulsateVelocity *= -1;\n }\n this.opacity += this.pulsateVelocity;\n this.marker.setOpacity(this.opacity);\n }\n }, 60);\n }\n\n stop() {\n this.running = false;\n clearInterval(this.interval);\n this.opacity = 0;\n if (this.marker) {\n this.marker.setOpacity(this.opacity);\n }\n }\n\n setVisible(visible: boolean) {\n if (this.marker) {\n this.marker.setVisible(visible);\n this.marker.setOpacity(this.opacity);\n }\n }\n}\n","export default \"div.video-outer {\\n display: contents;\\n}\\ndiv.video-outer video {\\n width: auto;\\n height: auto;\\n max-height: 100%;\\n max-width: 100%;\\n}\\ndiv.video-outer div.paused-overlay {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL21vZGFscy9zaW5nbGUtdmlkZW8vc2luZ2xlLXZpZGVvLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL21vZGFscy9zaW5nbGUtdmlkZW8vc2luZ2xlLXZpZGVvLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQUE7QUNDRjtBRENFO0VBQ0UsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUNDSjtBREVFO0VBQ0UsU0FBQTtFQUNBLFFBQUE7RUFDQSxnQ0FBQTtBQ0FKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tb2RhbHMvc2luZ2xlLXZpZGVvL3NpbmdsZS12aWRlby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImRpdi52aWRlby1vdXRlciB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gIHZpZGVvIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICBkaXYucGF1c2VkLW92ZXJsYXkge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgfVxufSIsImRpdi52aWRlby1vdXRlciB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuZGl2LnZpZGVvLW91dGVyIHZpZGVvIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuZGl2LnZpZGVvLW91dGVyIGRpdi5wYXVzZWQtb3ZlcmxheSB7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufSJdfQ== */\"","import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { Attachment } from 'app/interfaces/api/types';\n\n@Component({\n selector: 'app-single-video',\n templateUrl: './single-video.component.html',\n styleUrls: ['./single-video.component.scss'],\n})\nexport class SingleVideoComponent implements OnInit, AfterViewInit {\n @ViewChild('containerElement', { read: ElementRef, static: false })\n private containerElement: ElementRef;\n\n @ViewChild('videoElement', { read: ElementRef, static: false })\n private videoElement: ElementRef;\n\n @Input() public video: Attachment;\n\n public height: number;\n public width: number;\n\n public didLoad: boolean = false;\n\n constructor() { }\n\n ngOnInit(): void { }\n\n ngAfterViewInit(): void {\n this.videoElement.nativeElement.onloadedmetadata = () => {\n const { offsetHeight, offsetWidth } = this.videoElement.nativeElement;\n\n this.containerElement.nativeElement.parentElement.style.height = `${offsetHeight}px`;\n this.containerElement.nativeElement.parentElement.style.width = `${offsetWidth}px`;\n this.containerElement.nativeElement.parentElement.style.margin = 'auto';\n };\n\n this.videoElement.nativeElement.oncanplay = () => this.didLoad = true;\n }\n}\n","export default \"ion-menu-button.navbutton-component .navicon {\\n height: 100%;\\n width: auto;\\n}\\n@media (max-width: 768px) {\\n ion-menu-button.navbutton-component #circle {\\n display: none;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL25hdmJ1dHRvbi9uYXZidXR0b24uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvbmF2YnV0dG9uL25hdmJ1dHRvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDRTtFQUNFLFlBQUE7RUFDQSxXQUFBO0FDQUo7QURHRTtFQUNFO0lBQ0UsYUFBQTtFQ0RKO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL25hdmJ1dHRvbi9uYXZidXR0b24uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpb24tbWVudS1idXR0b24ubmF2YnV0dG9uLWNvbXBvbmVudCB7XG4gIC5uYXZpY29uIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAjY2lyY2xlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCJpb24tbWVudS1idXR0b24ubmF2YnV0dG9uLWNvbXBvbmVudCAubmF2aWNvbiB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgaW9uLW1lbnUtYnV0dG9uLm5hdmJ1dHRvbi1jb21wb25lbnQgI2NpcmNsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'navbutton',\n templateUrl: './navbutton.component.html',\n styleUrls: ['./navbutton.component.scss'],\n})\n\nexport class NavbuttonComponent implements OnInit {\n constructor() {\n }\n\n ngOnInit(): void {\n }\n}\n","export default \"div.pass-lock-container {\\n display: grid;\\n grid-template-rows: 1fr 75px;\\n height: 100%;\\n width: 100%;\\n padding: 40px 10px 0 10px;\\n}\\ndiv.pass-lock-container div.pass-lock-action {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\ndiv.pass-lock-container div.pass-lock-action ion-button.pass-lock-action-button {\\n width: 40%;\\n --border-radius: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL3Bhc3MtbG9jay9wYXNzLWxvY2suY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvcGFzcy1sb2NrL3Bhc3MtbG9jay5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQUE7RUFDQSw0QkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EseUJBQUE7QUNDRjtBRENFO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7QUNDSjtBRENJO0VBQ0UsVUFBQTtFQUNBLHFCQUFBO0FDQ04iLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3Bhc3MtbG9jay9wYXNzLWxvY2suY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJkaXYucGFzcy1sb2NrLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDc1cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDQwcHggMTBweCAwIDEwcHg7XG5cbiAgZGl2LnBhc3MtbG9jay1hY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIGlvbi1idXR0b24ucGFzcy1sb2NrLWFjdGlvbi1idXR0b24ge1xuICAgICAgd2lkdGg6IDQwJTtcbiAgICAgIC0tYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG4gIH1cbn1cbiIsImRpdi5wYXNzLWxvY2stY29udGFpbmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgNzVweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNDBweCAxMHB4IDAgMTBweDtcbn1cbmRpdi5wYXNzLWxvY2stY29udGFpbmVyIGRpdi5wYXNzLWxvY2stYWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5kaXYucGFzcy1sb2NrLWNvbnRhaW5lciBkaXYucGFzcy1sb2NrLWFjdGlvbiBpb24tYnV0dG9uLnBhc3MtbG9jay1hY3Rpb24tYnV0dG9uIHtcbiAgd2lkdGg6IDQwJTtcbiAgLS1ib3JkZXItcmFkaXVzOiAxMHB4O1xufSJdfQ== */\"","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { Environment } from 'environments/environment';\n\n@Component({\n selector: 'pass-lock',\n templateUrl: './pass-lock.component.html',\n styleUrls: ['./pass-lock.component.scss'],\n})\n\nexport class PassLockComponent implements OnInit {\n @ViewChild('passInput', { read: ElementRef, static: false }) passInput: ElementRef;\n\n constructor(private modalCtrl: ModalController) { }\n\n ngOnInit(): void { }\n\n public dismiss(password?: string): void {\n this.modalCtrl.dismiss({\n unlocked: (password === Environment.getAppPassword())\n });\n }\n}\n","export default \"section.protagonists-list-component {\\n position: absolute;\\n background: var(--ion-color-hauptcolor);\\n width: 100%;\\n height: 100%;\\n}\\nsection.protagonists-list-component div.protagonists-list {\\n display: flex;\\n flex-direction: column;\\n background: var(--ion-color-hauptcolor);\\n}\\nsection.protagonists-list-component div.protagonists-list div.protagonist-item {\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n padding: 20px;\\n position: relative;\\n cursor: pointer;\\n}\\nsection.protagonists-list-component div.protagonists-list div.protagonist-item div.avatar {\\n position: relative;\\n width: -webkit-fit-content;\\n width: -moz-fit-content;\\n width: fit-content;\\n height: -webkit-fit-content;\\n height: -moz-fit-content;\\n height: fit-content;\\n}\\nsection.protagonists-list-component div.protagonists-list div.protagonist-item div.avatar img {\\n height: 200px;\\n width: 200px;\\n min-width: 200px;\\n min-height: 200px;\\n}\\n@media (max-width: 600px) {\\n section.protagonists-list-component div.protagonists-list div.protagonist-item div.avatar img {\\n height: 125px;\\n width: 125px;\\n min-width: 125px;\\n min-height: 125px;\\n }\\n}\\n@media (max-width: 475px) {\\n section.protagonists-list-component div.protagonists-list div.protagonist-item div.avatar img {\\n height: 96px;\\n width: 96px;\\n min-width: 96px;\\n min-height: 96px;\\n }\\n}\\nsection.protagonists-list-component div.protagonists-list div.protagonist-item div.avatar ion-icon {\\n position: absolute;\\n top: 0;\\n left: 80% !important;\\n border-radius: 100%;\\n}\\nsection.protagonists-list-component div.protagonists-list div.protagonist-item div.details {\\n flex: 1;\\n padding: 0 5px 0 30px;\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n}\\nsection.protagonists-list-component div.protagonists-list div.protagonist-item div.details h2 {\\n margin: 0;\\n font-weight: bold;\\n}\\nsection.protagonists-list-component div.protagonists-list div.protagonist-item div.details p {\\n margin: 0;\\n font-weight: normal;\\n padding-top: 5px;\\n}\\nsection.protagonists-list-component div.protagonists-list div.protagonist-item div.details ion-button {\\n margin-top: 20px;\\n border: 2px solid;\\n border-radius: 2px;\\n --color-focused: unset;\\n --color-activated: unset;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL3Byb3RhZ29uaXN0cy1saXN0L3Byb3RhZ29uaXN0cy1saXN0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3Byb3RhZ29uaXN0cy1saXN0L3Byb3RhZ29uaXN0cy1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQUE7RUFDQSx1Q0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FDQ0Y7QURDRTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtFQUNBLHVDQUFBO0FDQ0o7QURDSTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQ0NOO0FEQ007RUFDRSxrQkFBQTtFQUNBLDBCQUFBO0VBQUEsdUJBQUE7RUFBQSxrQkFBQTtFQUNBLDJCQUFBO0VBQUEsd0JBQUE7RUFBQSxtQkFBQTtBQ0NSO0FEQ1E7RUFDRSxhQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUNDVjtBRENVO0VBTkY7SUFPSSxhQUFBO0lBQ0EsWUFBQTtJQUNBLGdCQUFBO0lBQ0EsaUJBQUE7RUNFVjtBQUNGO0FEQVU7RUFiRjtJQWNJLFlBQUE7SUFDQSxXQUFBO0lBQ0EsZUFBQTtJQUNBLGdCQUFBO0VDR1Y7QUFDRjtBREFRO0VBQ0Usa0JBQUE7RUFDQSxNQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtBQ0VWO0FERU07RUFDRSxPQUFBO0VBQ0EscUJBQUE7RUFDQSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSx1QkFBQTtBQ0FSO0FERVE7RUFDRSxTQUFBO0VBQ0EsaUJBQUE7QUNBVjtBREdRO0VBQ0UsU0FBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QUNEVjtBRElRO0VBQ0UsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7RUFDQSx3QkFBQTtBQ0ZWIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wcm90YWdvbmlzdHMtbGlzdC9wcm90YWdvbmlzdHMtbGlzdC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbInNlY3Rpb24ucHJvdGFnb25pc3RzLWxpc3QtY29tcG9uZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItaGF1cHRjb2xvcik7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgZGl2LnByb3RhZ29uaXN0cy1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuXG4gICAgZGl2LnByb3RhZ29uaXN0LWl0ZW0ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgZGl2LmF2YXRhciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDtcblxuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMjVweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMjVweDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTI1cHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMjVweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDc1cHgpIHtcbiAgICAgICAgICAgIGhlaWdodDogOTZweDtcbiAgICAgICAgICAgIHdpZHRoOiA5NnB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiA5NnB4O1xuICAgICAgICAgICAgbWluLWhlaWdodDogOTZweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpb24taWNvbiB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBsZWZ0OiA4MCUgIWltcG9ydGFudDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRpdi5kZXRhaWxzIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgcGFkZGluZzogMCA1cHggMCAzMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlvbi1idXR0b24ge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQ7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgIC0tY29sb3ItZm9jdXNlZDogdW5zZXQ7XG4gICAgICAgICAgLS1jb2xvci1hY3RpdmF0ZWQ6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJzZWN0aW9uLnByb3RhZ29uaXN0cy1saXN0LWNvbXBvbmVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuc2VjdGlvbi5wcm90YWdvbmlzdHMtbGlzdC1jb21wb25lbnQgZGl2LnByb3RhZ29uaXN0cy1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xufVxuc2VjdGlvbi5wcm90YWdvbmlzdHMtbGlzdC1jb21wb25lbnQgZGl2LnByb3RhZ29uaXN0cy1saXN0IGRpdi5wcm90YWdvbmlzdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5zZWN0aW9uLnByb3RhZ29uaXN0cy1saXN0LWNvbXBvbmVudCBkaXYucHJvdGFnb25pc3RzLWxpc3QgZGl2LnByb3RhZ29uaXN0LWl0ZW0gZGl2LmF2YXRhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xufVxuc2VjdGlvbi5wcm90YWdvbmlzdHMtbGlzdC1jb21wb25lbnQgZGl2LnByb3RhZ29uaXN0cy1saXN0IGRpdi5wcm90YWdvbmlzdC1pdGVtIGRpdi5hdmF0YXIgaW1nIHtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgd2lkdGg6IDIwMHB4O1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICBzZWN0aW9uLnByb3RhZ29uaXN0cy1saXN0LWNvbXBvbmVudCBkaXYucHJvdGFnb25pc3RzLWxpc3QgZGl2LnByb3RhZ29uaXN0LWl0ZW0gZGl2LmF2YXRhciBpbWcge1xuICAgIGhlaWdodDogMTI1cHg7XG4gICAgd2lkdGg6IDEyNXB4O1xuICAgIG1pbi13aWR0aDogMTI1cHg7XG4gICAgbWluLWhlaWdodDogMTI1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0NzVweCkge1xuICBzZWN0aW9uLnByb3RhZ29uaXN0cy1saXN0LWNvbXBvbmVudCBkaXYucHJvdGFnb25pc3RzLWxpc3QgZGl2LnByb3RhZ29uaXN0LWl0ZW0gZGl2LmF2YXRhciBpbWcge1xuICAgIGhlaWdodDogOTZweDtcbiAgICB3aWR0aDogOTZweDtcbiAgICBtaW4td2lkdGg6IDk2cHg7XG4gICAgbWluLWhlaWdodDogOTZweDtcbiAgfVxufVxuc2VjdGlvbi5wcm90YWdvbmlzdHMtbGlzdC1jb21wb25lbnQgZGl2LnByb3RhZ29uaXN0cy1saXN0IGRpdi5wcm90YWdvbmlzdC1pdGVtIGRpdi5hdmF0YXIgaW9uLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogODAlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG5zZWN0aW9uLnByb3RhZ29uaXN0cy1saXN0LWNvbXBvbmVudCBkaXYucHJvdGFnb25pc3RzLWxpc3QgZGl2LnByb3RhZ29uaXN0LWl0ZW0gZGl2LmRldGFpbHMge1xuICBmbGV4OiAxO1xuICBwYWRkaW5nOiAwIDVweCAwIDMwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuc2VjdGlvbi5wcm90YWdvbmlzdHMtbGlzdC1jb21wb25lbnQgZGl2LnByb3RhZ29uaXN0cy1saXN0IGRpdi5wcm90YWdvbmlzdC1pdGVtIGRpdi5kZXRhaWxzIGgyIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbnNlY3Rpb24ucHJvdGFnb25pc3RzLWxpc3QtY29tcG9uZW50IGRpdi5wcm90YWdvbmlzdHMtbGlzdCBkaXYucHJvdGFnb25pc3QtaXRlbSBkaXYuZGV0YWlscyBwIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuc2VjdGlvbi5wcm90YWdvbmlzdHMtbGlzdC1jb21wb25lbnQgZGl2LnByb3RhZ29uaXN0cy1saXN0IGRpdi5wcm90YWdvbmlzdC1pdGVtIGRpdi5kZXRhaWxzIGlvbi1idXR0b24ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAtLWNvbG9yLWZvY3VzZWQ6IHVuc2V0O1xuICAtLWNvbG9yLWFjdGl2YXRlZDogdW5zZXQ7XG59Il19 */\"","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { PopoverController } from '@ionic/angular';\n\nimport { ContextService } from 'app/services';\n\nimport { Protagonist } from 'app/interfaces/api/types';\n\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'protagonists-list',\n templateUrl: './protagonists-list.component.html',\n styleUrls: ['./protagonists-list.component.scss'],\n})\n\nexport class ProtagonistsListComponent implements OnInit, OnDestroy {\n @Input() protagonists: Protagonist[] = [];\n\n public contextProtagonist: Protagonist;\n\n private subscription: Subscription = new Subscription();\n\n constructor(\n private popoverCtrl: PopoverController,\n private router: Router,\n private context: ContextService\n ) { }\n\n ngOnInit(): void {\n this.subscription.add(\n this.context.protagonistContextChange\n .subscribe((p: Protagonist) => this.contextProtagonist = p)\n );\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n public displaySingleProtagonist(protagonist: Protagonist): void {\n this.router.navigateByUrl(`/protagonist/${protagonist.slug}`);\n\n this.popoverCtrl.dismiss();\n }\n\n public selectProtagonist(event: any, protagonist: Protagonist): void {\n if (event.target.nodeName != 'ION-BUTTON') {\n this.context.setActiveProtagonist(protagonist);\n }\n }\n}\n","export default \"div.space-list-container {\\n display: flex;\\n flex-direction: row;\\n width: 100%;\\n height: auto;\\n background: var(--ion-color-hauptcolor);\\n}\\ndiv.space-list-container div.space-list-item {\\n display: grid;\\n grid-template-rows: minmax(0, 250px) 1fr;\\n width: 100%;\\n}\\ndiv.space-list-container div.space-list-item div.space-image-container {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\ndiv.space-list-container div.space-list-item div.space-image-container img.space-image {\\n max-height: 300px;\\n padding: 25px;\\n max-width: 100%;\\n}\\ndiv.space-list-container div.space-list-item div.space-content {\\n display: grid;\\n place-items: center;\\n grid-template-rows: 1fr 100px;\\n}\\ndiv.space-list-container div.space-list-item div.space-content h2.space-description {\\n color: var(--ion-color-menucolor);\\n font-size: 1.1em;\\n font-weight: bold;\\n margin: 10px 0;\\n text-align: center;\\n}\\ndiv.space-list-container div.space-list-item div.space-content h3.space-title {\\n color: var(--ion-color-menucolor);\\n font-size: 1em;\\n font-style: italic;\\n margin: 0;\\n text-align: center;\\n}\\ndiv.space-list-container div.space-list-item div.space-content > div {\\n height: 100%;\\n}\\ndiv.space-list-container div.space-list-item div.space-content ion-button {\\n border: 2px solid var(--ion-color-menucolor);\\n color: var(--ion-color-menucolor);\\n max-width: 100px;\\n margin: auto 0;\\n font-weight: bold;\\n font-size: 1em;\\n}\\n@media (max-width: 768px) {\\n div.space-list-container div.space-list-item div.space-content {\\n padding: 60px 10px 20px 20px;\\n place-items: start;\\n }\\n div.space-list-container div.space-list-item div.space-content h2.space-description {\\n text-align: start;\\n padding: 0;\\n }\\n div.space-list-container div.space-list-item div.space-content h3.space-title {\\n text-align: start;\\n }\\n}\\n@media (max-width: 500px) {\\n div.space-list-container div.space-list-item div.space-content h2.space-description {\\n text-align: center;\\n }\\n div.space-list-container div.space-list-item div.space-content h3.space-title {\\n text-align: center;\\n }\\n}\\n@media (max-width: 768px) {\\n div.space-list-container {\\n flex-direction: column;\\n }\\n div.space-list-container div.space-list-item {\\n grid-template-columns: 275px 1fr;\\n }\\n}\\n@media (max-width: 768px) {\\n div.space-list-container {\\n grid-gap: 50px;\\n }\\n div.space-list-container div.space-list-item div.space-image-container {\\n margin: auto 0;\\n max-width: 350px;\\n }\\n div.space-list-container div.space-list-item div.space-content {\\n padding: 20px !important;\\n }\\n}\\n@media (max-width: 500px) {\\n div.space-list-container div.space-list-item {\\n grid-template-columns: none;\\n grid-template-rows: minmax(0, 300px) 1fr;\\n place-items: center;\\n }\\n div.space-list-container div.space-list-item div.space-content {\\n padding-top: 0px;\\n text-align: center;\\n }\\n div.space-list-container div.space-list-item div.space-content ion-button {\\n margin: auto;\\n }\\n div.space-list-container div.space-list-item div.space-image-container .space-image {\\n padding: 25px 25px 0px !important;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL3NwYWNlLWxpc3Qvc3BhY2UtbGlzdC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9zcGFjZS1saXN0L3NwYWNlLWxpc3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUVBLHVDQUFBO0FDQUY7QURFRTtFQUNFLGFBQUE7RUFDQSx3Q0FBQTtFQUNBLFdBQUE7QUNBSjtBREVJO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7QUNBTjtBREVNO0VBQ0UsaUJBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtBQ0FSO0FESUk7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSw2QkFBQTtBQ0ZOO0FESU07RUFDRSxpQ0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7QUNGUjtBREtNO0VBQ0UsaUNBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0Esa0JBQUE7QUNIUjtBRE1NO0VBQ0UsWUFBQTtBQ0pSO0FET007RUFDRSw0Q0FBQTtFQUNBLGlDQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0FDTFI7QURRTTtFQWxDRjtJQW1DSSw0QkFBQTtJQUNBLGtCQUFBO0VDTE47RURPTTtJQUNFLGlCQUFBO0lBQ0EsVUFBQTtFQ0xSO0VEUU07SUFDRSxpQkFBQTtFQ05SO0FBQ0Y7QURTTTtFQUNFO0lBQ0Usa0JBQUE7RUNQUjtFRFVNO0lBQ0Usa0JBQUE7RUNSUjtBQUNGO0FEYUU7RUFyRkY7SUFzRkksc0JBQUE7RUNWRjtFRFlFO0lBQ0UsZ0NBQUE7RUNWSjtBQUNGO0FEY0E7RUFDRTtJQUNFLGNBQUE7RUNYRjtFRGNJO0lBQ0UsY0FBQTtJQUNBLGdCQUFBO0VDWk47RURlSTtJQUNFLHdCQUFBO0VDYk47QUFDRjtBRGtCQTtFQUVJO0lBQ0UsMkJBQUE7SUFDQSx3Q0FBQTtJQUNBLG1CQUFBO0VDakJKO0VEbUJJO0lBQ0UsZ0JBQUE7SUFDQSxrQkFBQTtFQ2pCTjtFRG1CTTtJQUNFLFlBQUE7RUNqQlI7RURxQk07SUFDRSxpQ0FBQTtFQ25CUjtBQUNGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zcGFjZS1saXN0L3NwYWNlLWxpc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJkaXYuc3BhY2UtbGlzdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuXG4gIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcblxuICBkaXYuc3BhY2UtbGlzdC1pdGVtIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDAsIDI1MHB4KSAxZnI7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBkaXYuc3BhY2UtaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgIGltZy5zcGFjZS1pbWFnZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBwYWRkaW5nOiAyNXB4O1xuICAgICAgICBtYXgtd2lkdGg6MTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkaXYuc3BhY2UtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDEwMHB4O1xuXG4gICAgICBoMi5zcGFjZS1kZXNjcmlwdGlvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVudWNvbG9yKTtcbiAgICAgICAgZm9udC1zaXplOiAxLjFlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGgzLnNwYWNlLXRpdGxlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgJiA+IGRpdiB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgaW9uLWJ1dHRvbiB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lbnVjb2xvcik7XG4gICAgICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBwYWRkaW5nOiA2MHB4IDEwcHggMjBweCAyMHB4O1xuICAgICAgICBwbGFjZS1pdGVtczogc3RhcnQ7XG5cbiAgICAgICAgaDIuc3BhY2UtZGVzY3JpcHRpb24ge1xuICAgICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBoMy5zcGFjZS10aXRsZSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgICAgIGgyLnNwYWNlLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBoMy5zcGFjZS10aXRsZSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIGRpdi5zcGFjZS1saXN0LWl0ZW0ge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNzVweCAxZnI7XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICBkaXYuc3BhY2UtbGlzdC1jb250YWluZXIge1xuICAgIGdyaWQtZ2FwOiA1MHB4O1xuXG4gICAgZGl2LnNwYWNlLWxpc3QtaXRlbSB7XG4gICAgICBkaXYuc3BhY2UtaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgICAgIG1heC13aWR0aDogMzUwcHg7XG4gICAgICB9XG5cbiAgICAgIGRpdi5zcGFjZS1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMjBweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgZGl2LnNwYWNlLWxpc3QtY29udGFpbmVyIHtcbiAgICBkaXYuc3BhY2UtbGlzdC1pdGVtIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbm9uZTtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDAsIDMwMHB4KSAxZnI7XG4gICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuXG4gICAgICBkaXYuc3BhY2UtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBpb24tYnV0dG9uIHtcbiAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRpdi5zcGFjZS1pbWFnZS1jb250YWluZXIge1xuICAgICAgICAuc3BhY2UtaW1hZ2Uge1xuICAgICAgICAgIHBhZGRpbmc6IDI1cHggMjVweCAwcHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiZGl2LnNwYWNlLWxpc3QtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xufVxuZGl2LnNwYWNlLWxpc3QtY29udGFpbmVyIGRpdi5zcGFjZS1saXN0LWl0ZW0ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgwLCAyNTBweCkgMWZyO1xuICB3aWR0aDogMTAwJTtcbn1cbmRpdi5zcGFjZS1saXN0LWNvbnRhaW5lciBkaXYuc3BhY2UtbGlzdC1pdGVtIGRpdi5zcGFjZS1pbWFnZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbmRpdi5zcGFjZS1saXN0LWNvbnRhaW5lciBkaXYuc3BhY2UtbGlzdC1pdGVtIGRpdi5zcGFjZS1pbWFnZS1jb250YWluZXIgaW1nLnNwYWNlLWltYWdlIHtcbiAgbWF4LWhlaWdodDogMzAwcHg7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbmRpdi5zcGFjZS1saXN0LWNvbnRhaW5lciBkaXYuc3BhY2UtbGlzdC1pdGVtIGRpdi5zcGFjZS1jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgMTAwcHg7XG59XG5kaXYuc3BhY2UtbGlzdC1jb250YWluZXIgZGl2LnNwYWNlLWxpc3QtaXRlbSBkaXYuc3BhY2UtY29udGVudCBoMi5zcGFjZS1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVudWNvbG9yKTtcbiAgZm9udC1zaXplOiAxLjFlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbjogMTBweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5kaXYuc3BhY2UtbGlzdC1jb250YWluZXIgZGl2LnNwYWNlLWxpc3QtaXRlbSBkaXYuc3BhY2UtY29udGVudCBoMy5zcGFjZS10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVudWNvbG9yKTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5kaXYuc3BhY2UtbGlzdC1jb250YWluZXIgZGl2LnNwYWNlLWxpc3QtaXRlbSBkaXYuc3BhY2UtY29udGVudCA+IGRpdiB7XG4gIGhlaWdodDogMTAwJTtcbn1cbmRpdi5zcGFjZS1saXN0LWNvbnRhaW5lciBkaXYuc3BhY2UtbGlzdC1pdGVtIGRpdi5zcGFjZS1jb250ZW50IGlvbi1idXR0b24ge1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItbWVudWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xuICBtYXgtd2lkdGg6IDEwMHB4O1xuICBtYXJnaW46IGF1dG8gMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIGRpdi5zcGFjZS1saXN0LWNvbnRhaW5lciBkaXYuc3BhY2UtbGlzdC1pdGVtIGRpdi5zcGFjZS1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA2MHB4IDEwcHggMjBweCAyMHB4O1xuICAgIHBsYWNlLWl0ZW1zOiBzdGFydDtcbiAgfVxuICBkaXYuc3BhY2UtbGlzdC1jb250YWluZXIgZGl2LnNwYWNlLWxpc3QtaXRlbSBkaXYuc3BhY2UtY29udGVudCBoMi5zcGFjZS1kZXNjcmlwdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICBkaXYuc3BhY2UtbGlzdC1jb250YWluZXIgZGl2LnNwYWNlLWxpc3QtaXRlbSBkaXYuc3BhY2UtY29udGVudCBoMy5zcGFjZS10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkge1xuICBkaXYuc3BhY2UtbGlzdC1jb250YWluZXIgZGl2LnNwYWNlLWxpc3QtaXRlbSBkaXYuc3BhY2UtY29udGVudCBoMi5zcGFjZS1kZXNjcmlwdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIGRpdi5zcGFjZS1saXN0LWNvbnRhaW5lciBkaXYuc3BhY2UtbGlzdC1pdGVtIGRpdi5zcGFjZS1jb250ZW50IGgzLnNwYWNlLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICBkaXYuc3BhY2UtbGlzdC1jb250YWluZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgZGl2LnNwYWNlLWxpc3QtY29udGFpbmVyIGRpdi5zcGFjZS1saXN0LWl0ZW0ge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjc1cHggMWZyO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICBkaXYuc3BhY2UtbGlzdC1jb250YWluZXIge1xuICAgIGdyaWQtZ2FwOiA1MHB4O1xuICB9XG4gIGRpdi5zcGFjZS1saXN0LWNvbnRhaW5lciBkaXYuc3BhY2UtbGlzdC1pdGVtIGRpdi5zcGFjZS1pbWFnZS1jb250YWluZXIge1xuICAgIG1hcmdpbjogYXV0byAwO1xuICAgIG1heC13aWR0aDogMzUwcHg7XG4gIH1cbiAgZGl2LnNwYWNlLWxpc3QtY29udGFpbmVyIGRpdi5zcGFjZS1saXN0LWl0ZW0gZGl2LnNwYWNlLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDIwcHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gIGRpdi5zcGFjZS1saXN0LWNvbnRhaW5lciBkaXYuc3BhY2UtbGlzdC1pdGVtIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG5vbmU7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoMCwgMzAwcHgpIDFmcjtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICB9XG4gIGRpdi5zcGFjZS1saXN0LWNvbnRhaW5lciBkaXYuc3BhY2UtbGlzdC1pdGVtIGRpdi5zcGFjZS1jb250ZW50IHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBkaXYuc3BhY2UtbGlzdC1jb250YWluZXIgZGl2LnNwYWNlLWxpc3QtaXRlbSBkaXYuc3BhY2UtY29udGVudCBpb24tYnV0dG9uIHtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbiAgZGl2LnNwYWNlLWxpc3QtY29udGFpbmVyIGRpdi5zcGFjZS1saXN0LWl0ZW0gZGl2LnNwYWNlLWltYWdlLWNvbnRhaW5lciAuc3BhY2UtaW1hZ2Uge1xuICAgIHBhZGRpbmc6IDI1cHggMjVweCAwcHggIWltcG9ydGFudDtcbiAgfVxufSJdfQ== */\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\nimport { Space } from 'app/interfaces/api/types';\n\n@Component({\n selector: 'space-list',\n templateUrl: './space-list.component.html',\n styleUrls: ['./space-list.component.scss'],\n})\n\nexport class SpaceListComponent implements OnInit {\n @Input() spaces: Space[] = [];\n @Output() spaceClick: EventEmitter = new EventEmitter();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n}\n","export default \"@charset \\\"UTF-8\\\";\\n#space-map-menu {\\n width: 100%;\\n background: var(--ion-color-hauptcolor);\\n}\\n#space-map-menu .inner {\\n position: relative;\\n height: auto;\\n padding: 40px 20px;\\n}\\n#space-map-menu .inner div.space-map-item {\\n position: absolute;\\n transition: opacity 0.4s ease;\\n}\\n#space-map-menu .inner div.space-map-item::after {\\n content: attr(data-country-abbr);\\n top: 0;\\n left: 0;\\n position: absolute;\\n transform: translate(-50%, -50%);\\n color: var(--ion-color-menucolor);\\n font-weight: 100;\\n font-size: 14px;\\n pointer-events: none;\\n}\\n#space-map-menu .inner div.space-map-item.dimmed {\\n opacity: 0.4;\\n}\\n#space-map-menu .inner div.space-map-item img.space-marker {\\n position: absolute;\\n width: 40px;\\n height: 40px;\\n margin-left: -20px;\\n margin-top: -20px;\\n cursor: pointer;\\n min-height: 40px;\\n min-width: 40px;\\n}\\n#space-map-menu .inner .space-popup {\\n position: absolute;\\n display: block;\\n visibility: hidden;\\n background: #ffe500;\\n text-align: center;\\n padding: 15px;\\n width: 290px;\\n margin-left: -145px;\\n margin-bottom: 40px;\\n pointer-events: unset;\\n}\\n#space-map-menu .inner .space-popup.active {\\n visibility: visible;\\n pointer-events: unset;\\n}\\n#space-map-menu .inner .space-popup::before {\\n background-color: #ffe500;\\n content: \\\" \\\";\\n display: block;\\n height: 16px;\\n width: 16px;\\n position: absolute;\\n bottom: -7.5px;\\n left: 137px;\\n transform: rotate(47deg) skew(5deg);\\n -moz-transform: rotate(47deg) skew(5deg);\\n -ms-transform: rotate(47deg) skew(5deg);\\n -o-transform: rotate(47deg) skew(5deg);\\n -webkit-transform: rotate(47deg) skew(5deg);\\n}\\n#space-map-menu .inner .space-popup div.space-popup-content {\\n position: relative;\\n}\\n#space-map-menu .inner .space-popup div.space-popup-content div.city {\\n font-size: 0.8em;\\n color: var(--ion-color-hauptcolor);\\n font-weight: 100;\\n text-transform: uppercase;\\n}\\n#space-map-menu .inner .space-popup div.space-popup-content div.title {\\n color: #283952;\\n font-family: \\\"the_mix_bold\\\";\\n font-style: normal;\\n font-weight: normal;\\n}\\n#space-map-menu .inner .space-popup div.space-popup-content div.subline {\\n color: #283952;\\n padding: 0 25px;\\n}\\n#space-map-menu .inner .space-popup div.space-popup-content div.waveform {\\n margin: 10px auto !important;\\n}\\n#space-map-menu .inner .space-popup div.space-popup-content div.avatar {\\n position: absolute;\\n height: 96px;\\n width: 96px;\\n left: 0;\\n bottom: 0;\\n margin: -50px;\\n}\\n#space-map-menu .inner .space-popup div.space-popup-content div.avatar img {\\n height: 100%;\\n width: 100%;\\n}\\n#space-map-menu .inner .space-popup div.space-popup-content ion-button {\\n height: 32px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zcGFjZS1tYXAtbWVudS9zcGFjZS1tYXAtbWVudS5jb21wb25lbnQuc2NzcyIsIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL3NwYWNlLW1hcC1tZW51L3NwYWNlLW1hcC1tZW51LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ0FoQjtFQUNFLFdBQUE7RUFDQSx1Q0FBQTtBREVGO0FDQUU7RUFDRSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBREVKO0FDQUk7RUFDRSxrQkFBQTtFQUNBLDZCQUFBO0FERU47QUNBTTtFQUNFLGdDQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxrQkFBQTtFQUNBLGdDQUFBO0VBQ0EsaUNBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQTtBREVSO0FDQ007RUFDRSxZQUFBO0FEQ1I7QUNFTTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBREFSO0FDSUk7RUFDRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQkFBQTtBREZOO0FDSU07RUFDRSxtQkFBQTtFQUNBLHFCQUFBO0FERlI7QUNLTTtFQUNFLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLFdBQUE7RUFDQSxtQ0FBQTtFQUNBLHdDQUFBO0VBQ0EsdUNBQUE7RUFDQSxzQ0FBQTtFQUNBLDJDQUFBO0FESFI7QUNNTTtFQUNFLGtCQUFBO0FESlI7QUNNUTtFQUNFLGdCQUFBO0VBQ0Esa0NBQUE7RUFDQSxnQkFBQTtFQUNBLHlCQUFBO0FESlY7QUNPUTtFQUNFLGNBQUE7RUFDQSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7QURMVjtBQ1FRO0VBQ0UsY0FBQTtFQUNBLGVBQUE7QUROVjtBQ1NRO0VBQ0UsNEJBQUE7QURQVjtBQ1VRO0VBQ0Usa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsYUFBQTtBRFJWO0FDVVU7RUFDRSxZQUFBO0VBQ0EsV0FBQTtBRFJaO0FDWVE7RUFDRSxZQUFBO0FEVlYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NwYWNlLW1hcC1tZW51L3NwYWNlLW1hcC1tZW51LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuI3NwYWNlLW1hcC1tZW51IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcbn1cbiNzcGFjZS1tYXAtbWVudSAuaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogNDBweCAyMHB4O1xufVxuI3NwYWNlLW1hcC1tZW51IC5pbm5lciBkaXYuc3BhY2UtbWFwLWl0ZW0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlO1xufVxuI3NwYWNlLW1hcC1tZW51IC5pbm5lciBkaXYuc3BhY2UtbWFwLWl0ZW06OmFmdGVyIHtcbiAgY29udGVudDogYXR0cihkYXRhLWNvdW50cnktYWJicik7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuI3NwYWNlLW1hcC1tZW51IC5pbm5lciBkaXYuc3BhY2UtbWFwLWl0ZW0uZGltbWVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuI3NwYWNlLW1hcC1tZW51IC5pbm5lciBkaXYuc3BhY2UtbWFwLWl0ZW0gaW1nLnNwYWNlLW1hcmtlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBtaW4td2lkdGg6IDQwcHg7XG59XG4jc3BhY2UtbWFwLW1lbnUgLmlubmVyIC5zcGFjZS1wb3B1cCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI2ZmZTUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxNXB4O1xuICB3aWR0aDogMjkwcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTQ1cHg7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHBvaW50ZXItZXZlbnRzOiB1bnNldDtcbn1cbiNzcGFjZS1tYXAtbWVudSAuaW5uZXIgLnNwYWNlLXBvcHVwLmFjdGl2ZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHBvaW50ZXItZXZlbnRzOiB1bnNldDtcbn1cbiNzcGFjZS1tYXAtbWVudSAuaW5uZXIgLnNwYWNlLXBvcHVwOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTAwO1xuICBjb250ZW50OiBcIsKgXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDE2cHg7XG4gIHdpZHRoOiAxNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTcuNXB4O1xuICBsZWZ0OiAxMzdweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDdkZWcpIHNrZXcoNWRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNDdkZWcpIHNrZXcoNWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0N2RlZykgc2tldyg1ZGVnKTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNDdkZWcpIHNrZXcoNWRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDdkZWcpIHNrZXcoNWRlZyk7XG59XG4jc3BhY2UtbWFwLW1lbnUgLmlubmVyIC5zcGFjZS1wb3B1cCBkaXYuc3BhY2UtcG9wdXAtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiNzcGFjZS1tYXAtbWVudSAuaW5uZXIgLnNwYWNlLXBvcHVwIGRpdi5zcGFjZS1wb3B1cC1jb250ZW50IGRpdi5jaXR5IHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbiNzcGFjZS1tYXAtbWVudSAuaW5uZXIgLnNwYWNlLXBvcHVwIGRpdi5zcGFjZS1wb3B1cC1jb250ZW50IGRpdi50aXRsZSB7XG4gIGNvbG9yOiAjMjgzOTUyO1xuICBmb250LWZhbWlseTogXCJ0aGVfbWl4X2JvbGRcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuI3NwYWNlLW1hcC1tZW51IC5pbm5lciAuc3BhY2UtcG9wdXAgZGl2LnNwYWNlLXBvcHVwLWNvbnRlbnQgZGl2LnN1YmxpbmUge1xuICBjb2xvcjogIzI4Mzk1MjtcbiAgcGFkZGluZzogMCAyNXB4O1xufVxuI3NwYWNlLW1hcC1tZW51IC5pbm5lciAuc3BhY2UtcG9wdXAgZGl2LnNwYWNlLXBvcHVwLWNvbnRlbnQgZGl2LndhdmVmb3JtIHtcbiAgbWFyZ2luOiAxMHB4IGF1dG8gIWltcG9ydGFudDtcbn1cbiNzcGFjZS1tYXAtbWVudSAuaW5uZXIgLnNwYWNlLXBvcHVwIGRpdi5zcGFjZS1wb3B1cC1jb250ZW50IGRpdi5hdmF0YXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogOTZweDtcbiAgd2lkdGg6IDk2cHg7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiAtNTBweDtcbn1cbiNzcGFjZS1tYXAtbWVudSAuaW5uZXIgLnNwYWNlLXBvcHVwIGRpdi5zcGFjZS1wb3B1cC1jb250ZW50IGRpdi5hdmF0YXIgaW1nIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cbiNzcGFjZS1tYXAtbWVudSAuaW5uZXIgLnNwYWNlLXBvcHVwIGRpdi5zcGFjZS1wb3B1cC1jb250ZW50IGlvbi1idXR0b24ge1xuICBoZWlnaHQ6IDMycHg7XG59IiwiI3NwYWNlLW1hcC1tZW51IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcblxuICAuaW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogNDBweCAyMHB4O1xuXG4gICAgZGl2LnNwYWNlLW1hcC1pdGVtIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1jb3VudHJ5LWFiYnIpO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVudWNvbG9yKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJi5kaW1tZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICB9XG5cbiAgICAgIGltZy5zcGFjZS1tYXJrZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTIwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zcGFjZS1wb3B1cCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmU1MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgd2lkdGg6IDI5MHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xNDVweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICBwb2ludGVyLWV2ZW50czogdW5zZXQ7XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IHVuc2V0O1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTAwO1xuICAgICAgICBjb250ZW50OiAnXFwwMGEwJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtNy41cHg7XG4gICAgICAgIGxlZnQ6IDEzN3B4O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0N2RlZykgc2tldyg1ZGVnKTtcbiAgICAgICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg0N2RlZykgc2tldyg1ZGVnKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ3ZGVnKSBza2V3KDVkZWcpO1xuICAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSg0N2RlZykgc2tldyg1ZGVnKTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0N2RlZykgc2tldyg1ZGVnKTtcbiAgICAgIH1cblxuICAgICAgZGl2LnNwYWNlLXBvcHVwLWNvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgZGl2LmNpdHkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcbiAgICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYudGl0bGUge1xuICAgICAgICAgIGNvbG9yOiAjMjgzOTUyO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAndGhlX21peF9ib2xkJztcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpdi5zdWJsaW5lIHtcbiAgICAgICAgICBjb2xvcjogIzI4Mzk1MjtcbiAgICAgICAgICBwYWRkaW5nOiAwIDI1cHg7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYud2F2ZWZvcm0ge1xuICAgICAgICAgIG1hcmdpbjogMTBweCBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYuYXZhdGFyIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgaGVpZ2h0OiA5NnB4O1xuICAgICAgICAgIHdpZHRoOiA5NnB4O1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIG1hcmdpbjogLTUwcHg7XG5cbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW9uLWJ1dHRvbiB7XG4gICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Space } from 'app/interfaces/api/types';\nimport { SpaceService } from 'app/services';\nimport { AudioHelper } from 'app/classes/audio-helper/audio-helper';\n\nimport spacePositions from './spacePositions';\n\ninterface MapMenuItem {\n space: Space;\n active: boolean;\n dimmed: boolean;\n position: { x: number; y: number }; // relative values, between 0.0 and 1.0\n}\n\n@Component({\n selector: 'space-map-menu',\n templateUrl: './space-map-menu.component.html',\n styleUrls: ['./space-map-menu.component.scss'],\n})\nexport class SpaceMapMenuComponent implements OnInit {\n private selectedSpace: Space | null;\n public items: MapMenuItem[] = [];\n\n constructor(private spaceService: SpaceService, private router: Router) {}\n\n async ngOnInit(): Promise {\n const spaces: Space[] = await this.spaceService.getAll();\n\n for (const space of spaces) {\n const position = this.getPositionBySpace(space);\n this.items.push({\n space,\n active: false,\n dimmed: false,\n position,\n });\n }\n }\n\n public openPopup(event: any | null, space: Space | null): void {\n if (event) event.stopPropagation();\n\n if (!space || !this.selectedSpace || (space.id !== this.selectedSpace.id)) {\n AudioHelper.stopAllAudios();\n }\n\n this.selectedSpace = space;\n\n this.items.forEach(item => {\n item.active = space !== null && item.space.id === space.id;\n item.dimmed = space !== null && item.space.id !== space.id;\n });\n }\n\n public goToSpace(space: Space): void {\n this.router.navigateByUrl(`/space/${space.slug}`);\n }\n\n private getPositionBySpace(space: Space): { x: number; y: number } {\n return spacePositions[space.id] || { x: 0, y: 0 };\n }\n}\n","export default {\n 754: { x: 61, y: 65 }, // Muttental\n 1125: { x: 53, y: 55 }, // Erzbahntrasse\n 859: { x: 45, y: 54 }, // Zollverein\n 1772: { x: 61, y: 65 }, // Muttental\n 2202: { x: 53, y: 55 }, // Erzbahntrasse\n 1508: { x: 45, y: 54 }, // Zollverein,\n 4872: { x: 30, y: 57 }, // Ruhrort DE\n 4968: { x: 30, y: 57 }, // Ruhrort EN\n};\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc3Rvcmllcy9zdG9yaWVzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { StoryService } from 'app/services';\n\nimport { Story } from 'app/interfaces/api/types';\n\n@Component({\n selector: 'stories',\n templateUrl: './stories.component.html',\n styleUrls: ['./stories.component.scss'],\n})\nexport class StoriesComponent implements OnInit {\n public stories: Story[] = [];\n\n constructor(\n private storyService: StoryService,\n private router: Router\n ) { }\n\n async ngOnInit(): Promise {\n this.stories = await this.storyService.getAll();\n }\n\n goToStory(story: Story): void {\n this.router.navigateByUrl(`/story/${story.slug}`);\n }\n}\n","export default \"div.storyteller-overlay-container div.storyteller-overlay-content {\\n min-height: calc(var(--rdi-full-height) - 80px);\\n display: flex;\\n}\\ndiv.storyteller-overlay-container div.storyteller-overlay-footer {\\n height: 80px;\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n line-height: 70px;\\n text-align: center;\\n background-color: var(--ion-color-menucolor);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9jb21wb25lbnRzL3N0b3J5dGVsbGVyLW92ZXJsYXkvc3Rvcnl0ZWxsZXItb3ZlcmxheS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9zdG9yeXRlbGxlci1vdmVybGF5L3N0b3J5dGVsbGVyLW92ZXJsYXkuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0U7RUFDRSwrQ0FBQTtFQUNBLGFBQUE7QUNBSjtBREdFO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUVBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSw0Q0FBQTtBQ0ZKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zdG9yeXRlbGxlci1vdmVybGF5L3N0b3J5dGVsbGVyLW92ZXJsYXkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJkaXYuc3Rvcnl0ZWxsZXItb3ZlcmxheS1jb250YWluZXIge1xuICBkaXYuc3Rvcnl0ZWxsZXItb3ZlcmxheS1jb250ZW50IHtcbiAgICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXJkaS1mdWxsLWhlaWdodCkgLSA4MHB4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgZGl2LnN0b3J5dGVsbGVyLW92ZXJsYXktZm9vdGVyIHtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgbGluZS1oZWlnaHQ6IDcwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xuICB9XG59XG4iLCJkaXYuc3Rvcnl0ZWxsZXItb3ZlcmxheS1jb250YWluZXIgZGl2LnN0b3J5dGVsbGVyLW92ZXJsYXktY29udGVudCB7XG4gIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tcmRpLWZ1bGwtaGVpZ2h0KSAtIDgwcHgpO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuZGl2LnN0b3J5dGVsbGVyLW92ZXJsYXktY29udGFpbmVyIGRpdi5zdG9yeXRlbGxlci1vdmVybGF5LWZvb3RlciB7XG4gIGhlaWdodDogODBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBsaW5lLWhlaWdodDogNzBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVudWNvbG9yKTtcbn0iXX0= */\"","import { Component, OnInit, Input, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { DomHelper } from 'app/classes/dom-helper/dom-helper';\n\nimport { Location } from 'app/interfaces/api/types';\n\n@Component({\n selector: 'storyteller-overlay',\n templateUrl: './storyteller-overlay.component.html',\n styleUrls: ['./storyteller-overlay.component.scss'],\n})\nexport class StorytellerOverlayComponent implements OnInit, AfterViewInit {\n @ViewChild('content', { static: false, read: ElementRef })\n private content: ElementRef;\n\n @Input() location: Location;\n @Input() onProceed: Function;\n\n public didLoad: boolean = false;\n\n constructor() { }\n\n ngOnInit(): void {}\n\n ngAfterViewInit(): void {\n DomHelper.whenReady(this.content.nativeElement).then(() => this.didLoad = true);\n }\n\n public proceed(): void {\n this.onProceed && this.onProceed();\n }\n}\n","export const rdiBounds = {\n northeast: {\n lat: 51.68452351492408,\n lng: 7.786994406199142,\n },\n southwest: {\n lat: 51.311800687271464,\n lng: 6.549022369384829,\n },\n};\n\nexport enum LocationType {\n STATION = 'station',\n SIDE_KICK = 'abstecher',\n HIDDEN_PLACE = 'hidden-place',\n}\n\nexport const alphabeth = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];\n","import { ILatLng } from '@ionic-native/google-maps';\nimport { Location, Space } from './api/types';\n\nexport enum ElementType {\n SPACE = 'space',\n LOCATION = 'location',\n STORY = 'story',\n GROUND_OVERLAY = 'ground_overlay',\n ROUTE_PATH = 'route_path',\n HIGHLIGHT_ROUTE_SEGMENT = 'highlight_route_segment',\n ROUTE_ARROW = 'route_arrow',\n NAVIGATION = 'navigation', // User locator etc.\n}\nexport type SpaceWithCenter = [Space, ILatLng];\n\nexport interface MapInteractors {\n rdiOverlay: any;\n markers: {}[];\n}\n\nexport interface GPXDocument {\n gpx: {\n trk: {\n trkseg: {\n trkpt: { _lat: number; _lon: number }[];\n };\n };\n };\n}\n\nexport interface HiddenPlace {\n location: Location;\n lastVisited: Date | null;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { SingleTermPage } from './single-term.page';\n\nimport { PipesModule } from 'app/pipes.module';\nimport { ComponentsModule } from 'app/components/components.module';\n\nconst routes: Routes = [\n {\n path: '',\n component: SingleTermPage\n }\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n RouterModule.forChild(routes),\n PipesModule,\n ComponentsModule\n ],\n declarations: [SingleTermPage]\n})\nexport class SingleTermPageModule {}\n","export default \"ion-content.single-term-page {\\n --background: #1a4155;\\n}\\nion-content.single-term-page ion-icon {\\n font-size: 5em;\\n width: calc(100% - 40px);\\n padding: 50px 20px;\\n background: var(--ion-color-hauptcolor);\\n color: var(--ion-color-menucolor);\\n}\\nion-content.single-term-page blockquote {\\n color: #fff;\\n font-size: 18px;\\n text-align: center;\\n}\\nion-content.single-term-page div.image-container {\\n display: block !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL2FwcC9wYWdlcy9zaW5nbGUtdGVybS9zaW5nbGUtdGVybS5wYWdlLnNjc3MiLCJzcmMvYXBwL3BhZ2VzL3NpbmdsZS10ZXJtL3NpbmdsZS10ZXJtLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLHFCQUFBO0FDQ0o7QURDSTtFQUNJLGNBQUE7RUFDQSx3QkFBQTtFQUNBLGtCQUFBO0VBQ0EsdUNBQUE7RUFDQSxpQ0FBQTtBQ0NSO0FERUk7RUFDRSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0FDQU47QURHSTtFQUNFLHlCQUFBO0FDRE4iLCJmaWxlIjoic3JjL2FwcC9wYWdlcy9zaW5nbGUtdGVybS9zaW5nbGUtdGVybS5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpb24tY29udGVudC5zaW5nbGUtdGVybS1wYWdlIHtcbiAgICAtLWJhY2tncm91bmQ6ICMxYTQxNTU7XG5cbiAgICBpb24taWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogNWVtO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgICAgIHBhZGRpbmc6IDUwcHggMjBweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWhhdXB0Y29sb3IpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lbnVjb2xvcik7XG4gICAgfVxuXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBkaXYuaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiaW9uLWNvbnRlbnQuc2luZ2xlLXRlcm0tcGFnZSB7XG4gIC0tYmFja2dyb3VuZDogIzFhNDE1NTtcbn1cbmlvbi1jb250ZW50LnNpbmdsZS10ZXJtLXBhZ2UgaW9uLWljb24ge1xuICBmb250LXNpemU6IDVlbTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICBwYWRkaW5nOiA1MHB4IDIwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1oYXVwdGNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZW51Y29sb3IpO1xufVxuaW9uLWNvbnRlbnQuc2luZ2xlLXRlcm0tcGFnZSBibG9ja3F1b3RlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuaW9uLWNvbnRlbnQuc2luZ2xlLXRlcm0tcGFnZSBkaXYuaW1hZ2UtY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn0iXX0= */\"","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ModalController, NavParams } from '@ionic/angular';\nimport { DomHelper } from 'app/classes/dom-helper/dom-helper';\n\nimport { Term } from 'app/interfaces/api/types';\n\n@Component({\n selector: 'app-single-term',\n templateUrl: './single-term.page.html',\n styleUrls: ['./single-term.page.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class SingleTermPage implements OnInit {\n @ViewChild('content', { static: false, read: ElementRef })\n private content: ElementRef;\n\n public term: Term;\n public didLoad: boolean = false;\n\n constructor(\n private readonly modalCtrl: ModalController,\n private readonly navParams: NavParams\n ) { }\n\n ngOnInit(): void { }\n\n ionViewWillEnter(): void {\n this.reset();\n }\n\n ionViewDidEnter(): void {\n this.term = this.navParams.data.term;\n\n DomHelper.whenReady(this.content.nativeElement).then(() => this.didLoad = true);\n }\n\n public goBack(): void {\n this.modalCtrl.dismiss();\n }\n\n private reset(): void {\n this.didLoad = false;\n this.term = null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SafeHtmlPipe } from 'app/pipes/safe-html.pipe';\nimport { TranslatePipe } from './services/translator/TranslatePipe';\n\n@NgModule({\n declarations: [SafeHtmlPipe, TranslatePipe],\n imports: [],\n exports: [SafeHtmlPipe, TranslatePipe],\n})\nexport class PipesModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Term } from 'app/interfaces/api/types';\nimport { StorageService, TermService } from 'app/services';\n\nimport { Environment } from 'environments/environment';\n\nimport * as jQuery from 'jquery';\n\n@Pipe({\n name: 'safeHtml',\n})\nexport class SafeHtmlPipe implements PipeTransform {\n private readonly API_UPLOADS: string = Environment.getServerUploadUrl();\n\n constructor(\n private readonly sanitizer: DomSanitizer,\n private readonly termService: TermService,\n private readonly storage: StorageService,\n ) {}\n\n async transform(html, args: string = '', exclude: string = '') {\n if (!html) return html;\n\n const options: string[] = args.split(',');\n\n if (options.includes('glossary')) {\n html = await this.glossaryLink(html, exclude);\n }\n\n if (options.includes('url') || options.includes('html')) {\n html = await this.attachmentUrls(html);\n }\n\n if (options.includes('html')) {\n html = this.sanitizer.bypassSecurityTrustHtml(html);\n }\n\n if (this.isUrl(html)) {\n html = this.sanitizer.bypassSecurityTrustUrl(html);\n }\n\n return html;\n }\n\n private async attachmentUrls(input: string): Promise {\n await this.storage.loadOfflineMedia();\n\n if (this.isUrl(input)) {\n return this.storage.convertMediaSrc(input);\n } else {\n const $html = jQuery(`
${input}
`);\n\n $html.find(`img[src*=\"${this.API_UPLOADS}\"]`).each((_, e) => {\n const src: string = e.getAttribute('src');\n\n e.setAttribute('src', this.storage.convertMediaSrc(src));\n });\n\n return $html.html();\n }\n }\n\n private async glossaryLink(html: string, exclude: string = ''): Promise {\n const $elements = jQuery(`
${html}
`);\n\n (await this.termService.getAll()).forEach((term: Term) => {\n if (exclude && term.name == exclude) {\n return;\n }\n\n const value: string = `${term.name}`;\n const regexp: RegExp = new RegExp(`\\\\b${term.name}\\\\b(?=([^\"\\\\\\\\]*(\\\\\\\\.|\"([^\"\\\\\\\\]*\\\\\\\\.)*[^\"\\\\\\\\]*\"))*[^\"]*$)`, 'g');\n\n $elements.find('p, blockquote, span').each((_, e) => {\n const $this = jQuery(e);\n\n $this.html($this.html().replace(regexp, value));\n\n return !$this.html().match(regexp) as any;\n });\n });\n\n $elements.find('.glossary-term').each(function(i) {\n const $parents: JQuery = jQuery(this).parents('[data-ignore-glossary]');\n const ignore: boolean = jQuery(this).is('[data-ignore-glossary]');\n\n if ($parents.length || ignore) {\n jQuery(this).replaceWith(jQuery(this).html());\n }\n });\n\n return $elements.html();\n }\n\n private isUrl(url: string): boolean {\n try {\n new URL(url);\n\n return true;\n } catch(err) {\n return false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport * as jQuery from 'jquery';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class ActivityService {\n public readonly onInactive: Subject = new Subject();\n\n private lastInteraction: number;\n private maxTimeout: number = 300000; // Timeout in milliseconds\n private events: string[] = [\n 'click',\n 'keydown',\n 'keyup',\n 'scroll',\n 'tap',\n 'touchstart',\n 'touchend'\n ];\n\n constructor() {\n this.lastInteraction = Date.now();\n\n jQuery(document)\n .on(this.events.join(' '), () => this.lastInteraction = Date.now());\n\n setInterval(() => {\n const timePassed: number = Date.now() - this.lastInteraction;\n\n if (timePassed >= this.maxTimeout) {\n this.onInactive.next();\n\n this.lastInteraction = Date.now();\n }\n }, 1000);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { StorageService } from 'app/services/storage/storage.service';\n\nimport { App } from 'app/interfaces/api/types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppService {\n constructor(private storage: StorageService) { }\n\n public getAll(): Promise {\n return this.storage.getApps();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { StorageService } from 'app/services/storage/storage.service';\n\nimport { Attachment } from 'app/interfaces/api/types';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class AttachmentService {\n constructor(private storage: StorageService) { }\n\n public getAll(): Promise {\n return this.storage.getAttachments();\n }\n\n public async getByID(id: number | string): Promise {\n return (await this.getAll()).find((a: Attachment) => a.id == id);\n }\n\n public async getBySlug(slug: string): Promise {\n return (await this.getAll()).find((a: Attachment) => a.slug == slug);\n }\n\n /**\n * Helper functions\n */\n public async getByURL(url: string): Promise {\n return (await this.getAll()).find((a: Attachment) => a.url == url);\n }\n\n public async getByFilename(filename: string): Promise {\n return (await this.getAll())\n .find((a: Attachment) => a.url.split('/').pop() == filename);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Environment } from 'environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private readonly API_TOKEN: string = Environment.getApiToken();\n\n constructor() {}\n\n public getToken(): string {\n return this.API_TOKEN;\n }\n}\n","import { Injectable, Output, EventEmitter } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nimport { ProtagonistService } from 'app/services/protagonist/protagonist.service';\nimport { RouteService } from 'app/services/route/route.service';\n\nimport { SpaceService } from 'app/services/space/space.service';\nimport { LocationService } from 'app/services/location/location.service';\n\nimport { Protagonist, Route, Space, Location } from 'app/interfaces/api/types';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class ContextService {\n public readonly protagonistContextChange: BehaviorSubject = new BehaviorSubject(undefined);\n public readonly routeContextChange: BehaviorSubject = new BehaviorSubject(undefined);\n public readonly stelenSpaceContextChange: Subject = new Subject();\n public readonly stelenRouteContextChange: Subject = new Subject();\n public readonly stelenLocationContextChange: Subject = new Subject();\n\n constructor(\n private readonly protagonistService: ProtagonistService,\n private readonly routeService: RouteService,\n private readonly spaceService: SpaceService,\n private readonly locationService: LocationService\n ) { }\n\n public getActiveProtagonist(): Promise {\n const id: string = localStorage.getItem('context_manager_active_protagonist_id');\n\n return this.protagonistService.getByID(id);\n }\n\n public setActiveProtagonist(protagonist: Protagonist): void {\n localStorage.setItem('context_manager_active_protagonist_id', String(protagonist.id));\n\n this.protagonistContextChange.next(protagonist);\n }\n\n public getActiveRoute(): Promise {\n const id: string = localStorage.getItem('context_manager_active_route_id');\n\n return this.routeService.getByID(id);\n }\n\n public setActiveRoute(route: Route): void {\n localStorage.setItem('context_manager_active_route_id', String(route.id));\n\n this.routeContextChange.next(route);\n }\n\n /**\n * Stelen feature\n */\n public getStelenSpace(): Promise {\n const slug: string = localStorage.getItem('context_manager_stelen_space_slug');\n\n return this.spaceService.getBySlug(slug);\n }\n\n public setStelenSpace(space: Space): void {\n localStorage.setItem('context_manager_stelen_space_slug', String(space.slug));\n\n this.stelenSpaceContextChange.next(space);\n }\n\n public getStelenRoute(): Promise {\n const slug: string = localStorage.getItem('context_manager_stelen_route_slug');\n\n return this.routeService.getBySlug(slug);\n }\n\n public setStelenRoute(route: Route): void {\n localStorage.setItem('context_manager_stelen_route_slug', String(route.slug));\n\n this.stelenRouteContextChange.next(route);\n }\n\n public getStelenLocation(): Promise {\n const slug: string = localStorage.getItem('context_manager_stelen_location_slug');\n\n return this.locationService.getBySlug(slug);\n }\n\n public setStelenLocation(location: Location) {\n localStorage.setItem('context_manager_stelen_location_slug', String(location.slug));\n\n this.stelenLocationContextChange.next(location);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NavController } from '@ionic/angular';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HistoryService {\n private readonly MAX_HISTORY_LENGTH: number = 50;\n private readonly history: string[] = [];\n\n private index: number = -1;\n\n private didInit: boolean = false;\n\n constructor(\n private readonly router: Router,\n private readonly navController: NavController\n ) { }\n\n public init(): void {\n if (!this.didInit) {\n this.router.events\n .pipe(filter((e: any) => e instanceof NavigationEnd))\n .subscribe((e: any) => this.addToHistory(e.urlAfterRedirects));\n\n this.didInit = true;\n }\n }\n\n public canGoForward(): boolean {\n return this.index < this.history.length - 1;\n }\n\n public async goForward(): Promise {\n if (this.canGoForward()) {\n return await this.navController.navigateRoot(this.getNextUrl());\n }\n }\n\n public canGoBack(): boolean {\n return this.index > 0 && this.history.length > 1;\n }\n\n public goBack(): void {\n if (this.canGoBack()) {\n this.navController.navigateRoot(this.getPreviousUrl());\n }\n }\n\n private addToHistory(url: string): void {\n if (this.getPreviousUrl() === url) {\n this.index--;\n } else if (this.getNextUrl() === url) {\n this.index++;\n } else {\n this.history.push(url);\n\n this.sanitizeHistory();\n\n this.index = this.history.length - 1;\n }\n }\n\n private sanitizeHistory(): void {\n while (this.history.length > this.MAX_HISTORY_LENGTH) {\n this.history.shift();\n }\n }\n\n public getCurrentUrl(): string {\n return this.getByIndex(this.index);\n }\n\n public getPreviousUrl(): string {\n return this.getByIndex(this.index - 1);\n }\n\n public getNextUrl(): string {\n return this.getByIndex(this.index + 1);\n }\n\n private getByIndex(index: number): string {\n return (this.history.length > index) ? this.history[index] : null;\n }\n}\n","export * from './activity/activity.service';\nexport * from './app/app.service';\nexport * from './attachment/attachment.service';\nexport * from './auth/auth.service';\nexport * from './context/context.service';\nexport * from './location/location.service' ;\nexport * from './menu/menu.service';\nexport * from './page/page.service';\nexport * from './protagonist/protagonist.service';\nexport * from './route/route.service';\nexport * from './settings/settings.service';\nexport * from './space/space.service';\nexport * from './storage/storage.service';\nexport * from './story/story.service';\nexport * from './term/term.service';\nexport * from './translator/translator.service';\nexport * from './history/history.service';","import { Injectable } from '@angular/core';\nimport { Location, Protagonist } from 'app/interfaces/api/types';\nimport { StorageService } from 'app/services/storage/storage.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocationService {\n constructor(private storage: StorageService) {}\n\n public getAll(): Promise {\n return this.storage.getLocations();\n }\n\n public async getByID(id: number | string): Promise {\n return (await this.getAll()).find((l: Location) => l.id == id);\n }\n\n public async getByIDs(ids: number[]): Promise {\n return await Promise.all(ids.map((id: number) => this.getByID(id)));\n }\n\n public async getBySlug(slug: string): Promise {\n return (await this.getAll()).find((l: Location) => l.slug == slug);\n }\n\n /**\n * Helper functions\n */\n public async getProtagonists(location: Location): Promise {\n const protagonistIds = [];\n for (const sId of location.stories) {\n const story = (await this.storage.getStories()).find(s => s.id === sId);\n protagonistIds.push(story.protagonist);\n }\n\n return (await this.storage.getProtagonists()).filter((p: Protagonist) =>\n protagonistIds.includes(p.id),\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Menu, MenuItem } from 'app/interfaces/api/types';\n\nimport { StorageService } from 'app/services/storage/storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class MenuService {\n constructor(private storage: StorageService) { }\n\n public getAppMenu(): Promise {\n return this.storage.getAppMenu();\n }\n\n public getStelenMenu(): Promise {\n return this.storage.getStelenMenu();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { StorageService } from 'app/services/storage/storage.service';\n\nimport { Page } from 'app/interfaces/api/types';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class PageService {\n constructor(private storage: StorageService) { }\n\n public getAll(): Promise {\n return this.storage.getPages();\n }\n\n public getHomepage(): Promise {\n return this.storage.getHomePage();\n }\n\n public async getByID(id: number | string): Promise {\n return (await this.getAll()).find((p: Page) => p.id == id);\n }\n\n public async getBySlug(slug: string): Promise {\n return (await this.getAll()).find((p: Page) => p.slug == slug);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { StorageService } from 'app/services/storage/storage.service';\n\nimport { Protagonist } from 'app/interfaces/api/types';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class ProtagonistService {\n constructor(private storage: StorageService) { }\n\n public getAll(): Promise {\n return this.storage.getProtagonists();\n }\n\n public async getByID(id: number | string): Promise {\n return (await this.getAll()).find((p: Protagonist) => p.id == id);\n }\n\n public async getBySlug(slug: string): Promise {\n return (await this.getAll()).find((p: Protagonist) => p.slug == slug);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { StorageService } from 'app/services/storage/storage.service';\n\nimport { Route } from 'app/interfaces/api/types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RouteService {\n constructor(private storage: StorageService) {}\n\n public getAll(): Promise {\n return this.storage.getRoutes();\n }\n\n public async getByID(id: number | string): Promise {\n return (await this.getAll()).find((r: Route) => r.id == id);\n }\n\n public async getByIDs(ids: number[]): Promise {\n return await Promise.all(ids.map((id: number) => this.getByID(id)));\n }\n\n public async getBySlug(slug: string): Promise {\n return (await this.getAll()).find((r: Route) => r.slug == slug);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { RdiWindow } from 'app/interfaces/rdi';\n\nimport { KioskModeMock } from 'app/utils/kiosk';\n\nimport { BehaviorSubject } from 'rxjs';\n\ndeclare var window: RdiWindow;\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class SettingsService {\n public readonly offlineContentChange: BehaviorSubject;\n public readonly offlineMapChange: BehaviorSubject;\n public readonly kioskModeChange: BehaviorSubject;\n public readonly hideSettingsChange: BehaviorSubject;\n public readonly stelenChange: BehaviorSubject;\n public readonly stelenInactivityRedirect: BehaviorSubject;\n\n private tooltipShown: boolean = false;\n\n constructor() {\n this.offlineContentChange = new BehaviorSubject(this.getOfflineContentActive());\n this.offlineMapChange = new BehaviorSubject(this.getOfflineMapActive());\n this.kioskModeChange = new BehaviorSubject(this.getKioskModeActive());\n this.hideSettingsChange = new BehaviorSubject(this.getHideSettings());\n this.stelenChange = new BehaviorSubject(this.getStelenActive());\n this.stelenInactivityRedirect = new BehaviorSubject(this.getStelenInactivityRedirect());\n }\n\n private get kioskMode(): any {\n return window.KioskMode || KioskModeMock;\n }\n\n public setOfflineContentActive(active: boolean): void {\n localStorage.setItem('settings::offlineContent', String(active));\n\n this.offlineContentChange.next(active);\n }\n\n public getOfflineContentActive(): boolean {\n return (localStorage.getItem('settings::offlineContent') == 'true');\n }\n\n public setOfflineMapActive(active: boolean): void {\n localStorage.setItem('settings::offlineMap', String(active));\n\n this.offlineMapChange.next(active);\n }\n\n public getOfflineMapActive(): boolean {\n return (localStorage.getItem('settings::offlineMap') == 'true');\n }\n\n public setKioskModeActive(active: boolean): void {\n localStorage.setItem('settings::kioskMode', String(active));\n\n if (active) {\n this.kioskMode.enable().catch(console.warn);\n } else {\n this.kioskMode.disable().catch(console.warn);\n }\n\n this.kioskModeChange.next(active);\n }\n\n public getKioskModeActive(): boolean {\n return (localStorage.getItem('settings::kioskMode') == 'true');\n }\n\n public setHideSettings(hide: boolean): void {\n localStorage.setItem('settings::hideSettings', String(hide));\n\n this.hideSettingsChange.next(hide);\n }\n\n public getHideSettings(): boolean {\n return (localStorage.getItem('settings::hideSettings') == 'true') || window.rdi.browserBuild;\n }\n\n public setStelenActive(active: boolean): void {\n localStorage.setItem('settings::stelenActive', String(active));\n\n this.stelenChange.next(active);\n }\n\n public getStelenActive(): boolean {\n return (localStorage.getItem('settings::stelenActive') == 'true');\n }\n\n public setStelenInactivityRedirect(active: boolean): void {\n localStorage.setItem('settings::stelenInactivityRedirect', String(active));\n\n this.stelenInactivityRedirect.next(active);\n }\n\n public getStelenInactivityRedirect(): boolean {\n return (localStorage.getItem('settings::stelenInactivityRedirect') == 'true');\n }\n\n public setShowOfflineUsage(show: boolean): void {\n localStorage.setItem('settings::showOfflineUsage', String(show));\n }\n\n public getShowOfflineUsage(): boolean {\n return !window.rdi.browserBuild && localStorage.getItem('settings::showOfflineUsage') != 'false';\n }\n\n public setAppBannerLastShown(timestamp: number): void {\n localStorage.setItem('settings::appBannerLastShown', String(timestamp));\n }\n\n public getAppBannerLastShown(): number | undefined {\n const timestamp: number = parseInt(localStorage.getItem('settings::appBannerLastShown'));\n\n return (isNaN(timestamp)) ? undefined : timestamp;\n }\n\n public setTooltipShown(): void {\n this.tooltipShown = true;\n }\n\n public getTooltipShown(): boolean {\n return this.tooltipShown;\n }\n\n public setLastUpdatedAt(timestamp: number): void {\n localStorage.setItem('settings::lastUpdatedAt', String(timestamp));\n }\n\n public getLastUpdatedAt(): number | undefined {\n const timestamp: number = parseInt(localStorage.getItem('settings::lastUpdatedAt'));\n\n return (isNaN(timestamp)) ? undefined : timestamp;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n Location,\n Protagonist,\n Route,\n Space,\n Story,\n} from 'app/interfaces/api/types';\nimport { StorageService } from 'app/services/storage/storage.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SpaceService {\n constructor(private storage: StorageService) {}\n\n public getAll(): Promise {\n return this.storage.getSpaces();\n }\n\n public async getByID(id: number | string): Promise {\n return (await this.getAll()).find((s: Space) => s.id == id);\n }\n\n public async getBySlug(slug: string): Promise {\n return (await this.getAll()).find((s: Space) => s.slug == slug);\n }\n\n /**\n * Helper functions\n */\n public async getProtagonists(space: Space): Promise {\n const location_ids: number[] = [];\n const protagonist_ids: number[] = [];\n\n (await this.storage.getRoutes())\n .filter((r: Route) => r.space === space.id)\n .forEach((r: Route) =>\n r.locations.forEach((lId: number) => location_ids.push(lId)),\n );\n\n\n const locations: Location[] = (await this.storage.getLocations())\n .filter((l: Location) => location_ids.includes(l.id));\n\n for (const l of locations) {\n if (l.stories) {\n for (const story_id of l.stories) {\n const story = (await this.storage.getStories())\n .find((story: Story) => story.id === story_id);\n\n if (story && story.protagonist) {\n protagonist_ids.push(story.protagonist);\n }\n }\n }\n }\n\n return (await this.storage.getProtagonists())\n .filter((p: Protagonist) => protagonist_ids.includes(p.id));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { File, Entry } from '@ionic-native/file/ngx';\nimport { Storage } from '@ionic/storage';\nimport { Attachment, Location, LocationType, Menu, Page, Protagonist, Route, Space, Story, Term, App } from 'app/interfaces/api/types';\nimport { AuthService } from 'app/services/auth/auth.service';\nimport { TranslatorService } from 'app/services/translator/translator.service';\nimport { Environment } from 'environments/environment';\n\nimport { arrayUnique, downloadFile, fetchUrl, unzipFile, Progress } from 'app/utils';\nimport { WebView } from '@ionic-native/ionic-webview/ngx';\n\nexport type FetchOptions = {\n endpoint: string;\n language: string;\n storage_key: string;\n};\nexport type MediaDownloadResult = {\n downloads: number;\n failed: number\n};\n@Injectable({\n providedIn: 'root',\n})\n\nexport class StorageService {\n private readonly LANGUAGES: string[] = Environment.getLanguages();\n private readonly API_BASE: string = Environment.getServerUrl() + '/wp-json/rdi/v2/';\n private readonly API_UPLOADS: string = Environment.getServerUploadUrl();\n private readonly DIRECTORIES: string[] = ['tiles', 'media', 'downloads'];\n private readonly httpHeaders = {\n 'Authorization': `Bearer ${this.auth.getToken()}`,\n 'Content-Type': 'application/json',\n };\n private isCaching: boolean = true;\n private offlineMediaFiles: Map = new Map();\n private offlineMediaNeedsRefresh: boolean = true;\n private cachedAssets: Map = new Map();\n\n constructor(\n private readonly auth: AuthService,\n private readonly storage: Storage,\n private readonly file: File,\n private readonly translator: TranslatorService,\n private readonly webView: WebView,\n ) { }\n\n private async fetchApi(opts: FetchOptions, fallback: any = []): Promise {\n try {\n const { endpoint, language, storage_key } = opts;\n const url: string = `${this.API_BASE}${language}${endpoint}`;\n const data: any = await fetchUrl(url, { }, this.httpHeaders);\n\n return (storage_key) ? await this.setCacheItem(opts, data) : data;\n } catch (err) {\n console.log(err);\n console.warn(`Failed to call API endpoint: ${opts.endpoint}`);\n\n return fallback;\n }\n }\n\n public async getCacheItem(opts: FetchOptions): Promise {\n const { language, storage_key } = opts;\n const key: string = `${language}-${storage_key}`;\n\n return (this.isCaching) ? await this.storage.get(key) : null;\n }\n\n public async setCacheItem(opts: FetchOptions, data: T): Promise {\n const { language, storage_key } = opts;\n const key: string = `${language}-${storage_key}`;\n\n await this.storage.set(key, data);\n\n return data;\n }\n\n public get mediaLocation(): string {\n return this.maybeEncodeURI(this.file.dataDirectory + 'media/');\n }\n\n public get tilesLocation(): string {\n return this.maybeEncodeURI(this.file.dataDirectory + 'tiles/');\n }\n\n public get downloadsLocation(): string {\n return this.maybeEncodeURI(this.file.dataDirectory + 'downloads/');\n }\n\n private async listDir(dir: string): Promise {\n try {\n const entries: Entry[] = await this.file.listDir(this.file.dataDirectory, dir) || [];\n\n for (const entry of entries) {\n entry.name = this.maybeEncodeURI(entry.name);\n }\n\n return entries;\n } catch(err) {\n console.log(err);\n\n return [];\n }\n }\n\n public listMedia(): Promise {\n return this.listDir('media');\n }\n\n public listTiles(): Promise {\n return this.listDir('tiles');\n }\n\n public listDownloads(): Promise {\n return this.listDir('downloads');\n }\n\n public async getProtagonists(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'protagonists',\n endpoint: '/posts/protagonist',\n language: language || this.translator.getLanguage(),\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getLocations(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'locations',\n endpoint: '/posts/location',\n language: language || this.translator.getLanguage(),\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getLocationTypes(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'location-types',\n endpoint: '/posts/location-type',\n language: language || this.translator.getLanguage(),\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getSpaces(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'spaces',\n endpoint: '/posts/space',\n language: language || this.translator.getLanguage(),\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getRoutes(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'routes',\n endpoint: '/posts/route',\n language: language || this.translator.getLanguage(),\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getStories(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'stories',\n endpoint: '/posts/story',\n language: language || this.translator.getLanguage(),\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getTerms(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'terms',\n endpoint: '/posts/term',\n language: language || this.translator.getLanguage(),\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getPages(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'pages',\n endpoint: '/pages',\n language: language || this.translator.getLanguage(),\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getHomePage(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'homepage',\n endpoint: '/config/homepage',\n language: language || this.translator.getLanguage(),\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getAttachments(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'attachments',\n endpoint: '/posts/attachment',\n language: language || this.translator.getLanguage(),\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getApps(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'apps',\n endpoint: '/posts/app',\n language: language || this.translator.getLanguage()\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getAppMenu(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'app-menu',\n endpoint: '/menu/app-menu',\n language: language || this.translator.getLanguage()\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async getStelenMenu(language?: string): Promise {\n const opts: FetchOptions = {\n storage_key: 'stelen-menu',\n endpoint: '/menu/stelen-menu',\n language: language || this.translator.getLanguage()\n };\n\n return await this.getCacheItem(opts) || await this.fetchApi(opts);\n }\n\n public async downloadPosts(language: string, onProgress?: Function): Promise {\n try {\n const promises: Promise[] = [\n this.getProtagonists(language),\n this.getLocations(language),\n this.getLocationTypes(language),\n this.getSpaces(language),\n this.getRoutes(language),\n this.getStories(language),\n this.getTerms(language),\n this.getPages(language),\n this.getHomePage(language),\n this.getAttachments(language),\n this.getApps(language),\n this.getAppMenu(language),\n this.getStelenMenu(language)\n ];\n\n if (onProgress) {\n const progress: Progress = new Progress(promises.length);\n\n onProgress(progress);\n\n promises.forEach((p: Promise) => p.finally(() => onProgress(progress.increase())));\n }\n\n await Promise.all(promises);\n\n return true;\n } catch (err) {\n console.error(err);\n console.warn('Could not prepare offline posts');\n\n return false;\n }\n }\n\n public async getSpaceMedia(space: Space, onProgress?: Function): Promise {\n const progress: Progress = new Progress(this.LANGUAGES.length);\n let media: string[] = [];\n\n onProgress && onProgress(progress);\n\n /** Collect all media from all spaces's languages */\n for (const language of this.LANGUAGES) {\n const s: Space = (await this.getSpaces(language)).find(({ slug }) => slug === space.slug);\n\n if (s && Array.isArray(s.media_package)) {\n media = media.concat(s.media_package);\n }\n\n onProgress && onProgress(progress.increase());\n }\n\n return arrayUnique(media);\n }\n\n public async getPageMedia(page: Page, onProgress?: Function): Promise {\n const progress: Progress = new Progress(this.LANGUAGES.length);\n let media: string[] = [];\n\n onProgress && onProgress(progress);\n\n /** Collect all media from all pages's languages */\n for (const language of this.LANGUAGES) {\n const p: Page = (await this.getPages(language)).find(({ slug }) => slug === page.slug);\n\n if (p && Array.isArray(p.media_package)) {\n media = media.concat(p.media_package);\n }\n\n onProgress && onProgress(progress.increase());\n }\n\n return arrayUnique(media);\n }\n\n private async downloadSingleMedia(url: string): Promise {\n const filename: string = this.maybeEncodeURI(url.split('/').pop());\n\n try {\n const exists: boolean = await this.file.checkFile(this.mediaLocation, filename);\n\n if (exists) {\n return true;\n } else {\n throw new Error(`File does not exist: ${filename}`);\n }\n } catch(err) {\n return await downloadFile(url, this.mediaLocation + filename)\n .then(() => true)\n .catch(async (err) => {\n console.log(err);\n\n await this.deleteSingleMedia(filename);\n\n return false;\n });\n }\n }\n\n private async deleteSingleMedia(filename: string): Promise {\n try {\n await this.file.removeFile(this.mediaLocation, filename);\n\n return true;\n } catch(err) {\n return false;\n }\n }\n\n public async downloadMedia(media: string[], onProgress?: Function): Promise {\n const progress: Progress = new Progress(media.length);\n const results: MediaDownloadResult = {\n failed: 0,\n downloads: 0\n };\n\n onProgress && onProgress(progress);\n\n for (const url of media) {\n const downloaded: boolean = await this.downloadSingleMedia(url);\n\n if (downloaded) {\n results.downloads++;\n } else {\n results.failed++;\n }\n\n onProgress && onProgress(progress.increase());\n }\n\n this.offlineMediaNeedsRefresh = true;\n\n await this.loadOfflineMedia();\n\n return results;\n }\n\n public async downloadSpaceMap(space: Space): Promise {\n const filename: string = this.maybeEncodeURI(`${space.slug}.zip`);\n const url: string = this.maybeEncodeURI(this.API_UPLOADS + `tiles/spaces/${filename}`);\n\n await downloadFile(url, this.downloadsLocation + filename);\n\n /**\n * Tiles are unzipped directory into the data directory\n * because the extracted directory will be \"tiles\".\n * This avoids the path \"tiles/tiles/z/x/y.png\".\n */\n const unzipped: boolean = await unzipFile(this.downloadsLocation + filename, this.file.dataDirectory);\n\n await this.setSpaceMapOffline(space, unzipped);\n\n if (!unzipped) {\n throw new Error('Failed to download')\n }\n }\n\n public async getSpaceMapOffline(space: Space): Promise {\n return await this.storage.get(`SpaceMap::${space.slug}`);\n }\n\n public async setSpaceMapOffline(space: Space, isOffline: boolean): Promise {\n await this.storage.set(`SpaceMap::${space.slug}`, isOffline);\n }\n\n public async getPageMediaOffline(page: Page): Promise {\n return await this.storage.get(`PageMedia::${page.slug}`);\n }\n\n public async setPageMediaOffline(page: Page, isOffline: boolean): Promise {\n await this.storage.set(`PageMedia::${page.slug}`, isOffline);\n }\n\n public async getSpaceMediaOffline(space: Space): Promise {\n return await this.storage.get(`SpaceMedia::${space.slug}`);\n }\n\n public async setSpaceMediaOffline(space: Space, isOffline: boolean): Promise {\n await this.storage.set(`SpaceMedia::${space.slug}`, isOffline);\n }\n\n public async clear(): Promise {\n localStorage.clear();\n\n await this.storage.clear();\n }\n\n public async ready(): Promise {\n await this.storage.ready();\n await this.initDirectories();\n await this.loadOfflineMedia();\n }\n\n private async initDirectories(): Promise {\n for (const dir of this.DIRECTORIES) {\n try {\n await this.file.createDir(this.file.dataDirectory, dir, false);\n } catch(err) { }\n }\n }\n\n public async loadOfflineMedia(): Promise {\n if (this.offlineMediaNeedsRefresh) {\n this.offlineMediaFiles.clear();\n\n for (const entry of await this.listMedia()) {\n this.offlineMediaFiles.set(entry.name, entry);\n }\n\n this.offlineMediaNeedsRefresh = false;\n }\n }\n\n /**\n * Converts a Remote URL to a local URL if the file is downloaded.\n */\n public convertMediaSrc(src: string): string {\n const filename: string = this.maybeEncodeURI(src.split('/').pop());\n\n if (this.offlineMediaFiles.has(filename)) {\n const url: string = this.offlineMediaFiles.get(filename).toURL();\n\n return this.webView.convertFileSrc(url);\n } else {\n return src;\n }\n }\n\n /**\n * Converts a Remote URL to a data URL if the file is downloaded.\n */\n public async loadMediaSrc(src: string): Promise {\n const filename: string = this.maybeEncodeURI(src.split('/').pop());\n\n if (this.offlineMediaFiles.has(filename)) {\n return await this.file\n .readAsDataURL(this.mediaLocation, filename)\n .catch(() => src);\n } else {\n return src;\n }\n }\n\n private convertImageToBase64(src: string): Promise {\n return new Promise((resolve, reject) => {\n const image = document.createElement('img');\n const ext = src.split('.').pop();\n\n image.onload = () => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n canvas.height = image.naturalHeight;\n canvas.width = image.naturalWidth;\n\n ctx.drawImage(image, 0, 0);\n\n resolve(canvas.toDataURL(`image/${ext}`));\n };\n\n image.onerror = reject;\n image.src = src;\n });\n }\n\n public async loadAsset(src: string): Promise {\n if (!this.cachedAssets.has(src)) {\n const base64: string = await this.convertImageToBase64(src);\n\n this.cachedAssets.set(src, base64);\n }\n\n return this.cachedAssets.get(src);\n }\n\n /**\n * Deletes all directories and recreates them afterwards\n */\n public async renewDirectories(): Promise {\n for (const dir of this.DIRECTORIES) {\n try {\n await this.file.removeRecursively(this.file.dataDirectory, dir);\n } catch(err) { }\n }\n\n await this.initDirectories();\n }\n\n public async withoutCache(f: Function): Promise {\n let res: any;\n\n this.isCaching = false;\n\n try {\n res = await f();\n } catch(err) {\n console.log(err);\n }\n\n this.isCaching = true;\n\n return res;\n }\n\n public maybeEncodeURI(s: string): string {\n return (decodeURI(s) === s && encodeURI(s) !== s) ? encodeURI(s) : s;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { StorageService } from 'app/services/storage/storage.service';\n\nimport { Story } from 'app/interfaces/api/types';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class StoryService {\n constructor(private storage: StorageService) { }\n\n public getAll(): Promise {\n return this.storage.getStories();\n }\n\n public async getByID(id: number | string): Promise {\n return (await this.getAll()).find((s: Story) => s.id == id);\n }\n\n public async getBySlug(slug: string): Promise {\n return (await this.getAll()).find((s: Story) => s.slug == slug);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { StorageService } from 'app/services/storage/storage.service';\n\nimport { Term } from 'app/interfaces/api/types';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class TermService {\n constructor(private storage: StorageService) { }\n\n public getAll(): Promise {\n return this.storage.getTerms();\n }\n\n public async getByID(id: number | string): Promise {\n return (await this.getAll()).find((t: Term) => t.id == id);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslatorService } from './translator.service';\n\n@Pipe({\n name: 'translate'\n})\nexport class TranslatePipe implements PipeTransform {\n constructor(private translator: TranslatorService) {}\n transform(value: string, args: any[]): any {\n return (value) ? this.translator.translate(value) : '';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Environment } from 'environments/environment';\nimport { Subject } from 'rxjs';\nimport translations from 'app/translations';\n\ntype Dictionary = {\n [key: string]: {\n [key: string]: string\n }\n};\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class TranslatorService {\n public readonly languageChange: Subject = new Subject();\n private readonly availableLanguages: string[] = Environment.getLanguages();\n private readonly translations: Dictionary = translations;\n private readonly defaultLanguage: string = 'de';\n private currentLanguage: string;\n\n constructor() {\n this.loadLanguage();\n }\n\n private loadLanguage(): void {\n const language: string = localStorage.getItem('translator::language');\n\n if (this.isValidLanguage(language)) {\n this.setLanguage(language);\n } else {\n this.setLanguage(this.defaultLanguage);\n }\n }\n\n public isValidLanguage(language: string): boolean {\n return this.availableLanguages.includes(language);\n }\n\n public setLanguage(language: string): void {\n if (this.isValidLanguage(language)) {\n if (language !== this.currentLanguage) {\n localStorage.setItem('translator::language', language);\n\n this.currentLanguage = language;\n\n this.languageChange.next();\n }\n } else {\n console.warn(`Tried to set invalid language: ${language}`);\n }\n }\n\n public getLanguage(): string {\n return this.currentLanguage;\n }\n\n public translate(key: string): string {\n if (\n this.translations &&\n this.translations[this.currentLanguage] &&\n this.translations[this.currentLanguage][key]\n ) {\n return this.translations[this.currentLanguage][key];\n }\n\n return key;\n }\n}\n","export default {\n de: {\n start: 'Start',\n home: 'Home',\n start_route: 'Route starten',\n go_to_story: 'Zur Geschichte',\n more_label: 'Weiter',\n learn_more: 'Mehr erfahren',\n next: 'Weiter',\n previous: 'Zurück',\n content: 'Inhalt',\n media: 'Medien',\n navigate: 'Navigieren',\n\n route: 'Route',\n location: 'Standort',\n\n /* Languages */\n language: 'Sprache',\n\n german: 'Deutsch',\n english: 'Englisch',\n\n de: 'Deutsch',\n en: 'Englisch',\n\n /* Settings related */\n settings: 'Einstellungen',\n offline_content: 'Offline Inhalte',\n enable_offline_content: 'Inhalt offline verfügbar machen',\n clear_local_data: 'Lokale Daten löschen',\n local_data_cleared: 'Lokale Daten wurden gelöscht',\n map_cleared: 'Karte wurde gelöscht',\n failed_to_clear_local_data: 'Lokale Daten konnte nicht gelöscht werden',\n failed_to_clear_map: 'Karte konnte nicht gelöscht werden',\n download_content: 'Inhalte herunterladen',\n download_media: 'Medien herunterladen',\n update_media: 'Medien aktualisieren',\n download_map: 'Karte herunterladen',\n update_content: 'Inhalte aktualisieren',\n downloading_media: 'Medien werden heruntergeladen',\n downloading_map: 'Karte wird heruntergeladen',\n downloading_content: 'Inhalte werden heruntergeladen',\n updating_content: 'Inhalte werden aktualisiert',\n failed_to_download_map: 'Fehler beim Herunterladen der Karte',\n failed_to_download_media: 'Fehler beim Herunterladen der Medien',\n failed_to_download_content: 'Fehler beim Herunterladen der Inhalte',\n failed_to_update_content: 'Fehler beim Aktualisieren der Inhalte',\n unzipping_map_tiles: 'Karte wird entpackt',\n failed_downloads: 'Fehlerhafte Downloads',\n successful_downloads: 'Erfolgreiche Downloads',\n something_went_wrong: 'Es ist ein Fehler aufgetreten',\n clearing_map: 'Lösche Karte',\n clearing_content: 'Lösche Inhalte',\n\n map: 'Karte',\n enable_offline_map: 'Karte offline verfügbar machen',\n use_offline_map: 'Offline Karte benutzen',\n __use_offline_map_note: 'Heruntergeladene Kartenkacheln werden genutzt',\n use_offline_content: 'Offline Inhalte benutzen',\n __use_offline_content_note: 'Die neusten Inhalte werden heruntergeladen und offline genutzt',\n content_successfully_downloaded: 'Inhalte wurden erfolgreich heruntergeladen',\n preparing_offline_content: 'Offline Inhalte werden vorbereitet',\n clear_map_data: 'Lokale Karte löschen',\n downloaded: 'Heruntergeladen',\n unzipped: 'Entpackt',\n cancel: 'Abbrechen',\n skip_loading: 'Laden überspringen',\n saving: 'Speichern...',\n hint: 'Hinweis',\n settings_hint_download_size: 'Aufgrund der hohen Datenmenge kann es zu langen Wartezeiten kommen. Wir empfehlen eine stabile Verbindung in einem WLAN.',\n offline_usage: 'Offline-Nutzung',\n offline_usage_text: 'Wenn Sie die App im Offline-Modus nutzen wollen, müssen Sie unter den App-Einstellungen jeweils die Inhalte und Karte offline verfügbar machen.',\n no_thanks: 'Nein Danke',\n close: 'Schließen',\n\n switch_protagonist: 'Wechseln Sie hier den Protagonisten',\n back_to_the_selection: 'Zurück zur Auswahl',\n back: 'Zurück',\n profile: 'Profil',\n born: 'geb.',\n enter_pin: 'PIN eingeben',\n\n we_can_do_better: 'Das geht noch besser',\n install_the_app_on_your_device: 'Mit der Perspektivwechsel App können Sie unser Angebot noch besser nutzen.',\n use_app: 'App benutzen',\n part: 'Teil',\n this_may_take_a_while: 'Das kann eine Weile dauern',\n could_not_download_map_part: 'Kartenteil konnte nicht heruntergeladen werden',\n map_sections: 'Kartenbereiche',\n spaces: 'Erlebnisräume',\n pages: 'Seiten',\n marginal_areas: 'Randbereiche',\n this_will_delete_all_local_data: 'Dies wird alle lokalen Daten löschen',\n are_you_sure: 'Sind Sie sicher',\n yes: 'Ja',\n download_successful: 'Download erfolgreich',\n video_not_ready: 'Video ist noch nicht bereit',\n audio_not_ready: 'Audio ist noch nicht bereit',\n audio_could_not_be_loaded: 'Audio konnte nicht geladen werden',\n },\n en: {\n start: 'Start',\n home: 'Home',\n start_route: 'Start route',\n go_to_story: 'To the story',\n more_label: 'More',\n learn_more: 'Learn more',\n next: 'Next',\n previous: 'Previous',\n content: 'Content',\n media: 'Media',\n navigate: 'Navigate',\n\n route: 'Route',\n location: 'Location',\n\n /* Languages */\n language: 'Language',\n\n german: 'German',\n english: 'English',\n\n de: 'German',\n en: 'English',\n\n /* Settings related */\n settings: 'Settings',\n offline_content: 'Offline content',\n enable_offline_content: 'Make content available offline',\n clear_local_data: 'Clear local data',\n local_data_cleared: 'Local data was cleared',\n map_cleared: 'Map was cleared',\n failed_to_clear_local_data: 'Failed to clear local data',\n failed_to_clear_map: 'Failed to clear map data',\n download_content: 'Download content',\n download_media: 'Download media',\n update_media: 'Update media',\n download_map: 'Download map',\n update_content: 'Update content',\n downloading_media: 'Downloading media',\n downloading_map: 'Downloading map',\n downloading_content: 'Downloading content',\n updating_content: 'Updating content',\n failed_to_download_map: 'Failed to download map',\n failed_to_download_media: 'Failed to download media',\n failed_to_download_content: 'Failed to download content',\n failed_to_update_content: 'Failed to update content',\n unzipping_map_tiles: 'Unzipping map tiles',\n failed_downloads: 'Failed downloads',\n successful_downloads: 'Successful downloads',\n something_went_wrong: 'Something went wrong',\n clearing_map: 'Clearing map',\n clearing_content: 'Clearing content',\n\n map: 'Map',\n enable_offline_map: 'Make map available offline',\n use_offline_map: 'Use offline map',\n __use_offline_map_note: 'Downloaded map tiles will be used',\n use_offline_content: 'Use offline content',\n __use_offline_content_note: 'Content will be downloaded und used offline',\n content_successfully_downloaded: 'Content was successfully downloaded',\n preparing_offline_content: 'Preparing offline content',\n clear_map_data: 'Clear map data',\n downloaded: 'Downloaded',\n unzipped: 'Unzipped',\n cancel: 'Cancel',\n skip_loading: 'Skip loading',\n saving: 'Saving...',\n hint: 'Hint',\n settings_hint_download_size: 'Due to the high amount of data, long waiting times can occur. We recommend a stable WLAN connection.',\n offline_usage: 'Offline Usage',\n offline_usage_text: 'If you want to use the app offline, you need to enable \"Make content available offline\" and \"Make map available offline\" in the app menu under settings.',\n no_thanks: 'No thanks',\n close: 'Close',\n\n switch_protagonist: 'Change the protagonist',\n back_to_the_selection: 'Back to the selection',\n back: 'Back',\n profile: 'Profile',\n born: 'DOB',\n enter_pin: 'Enter PIN',\n\n we_can_do_better: 'We can do better',\n install_the_app_on_your_device: 'Install the Perspektivwechsel app on your device to get the best out of our services.',\n use_app: 'Use the app',\n part: 'Part',\n this_may_take_a_while: 'This may take a while',\n could_not_download_map_part: 'Could not download map part',\n map_sections: 'Map sections',\n spaces: 'Spaces',\n pages: 'Pages',\n marginal_areas: 'Marginal areas',\n this_will_delete_all_local_data: 'This will delete all local data',\n are_you_sure: 'Are you sure',\n yes: 'Yes',\n download_successful: 'Download successful',\n video_not_ready: 'Video is not yet ready',\n audio_not_ready: 'Audio is not yet ready',\n audio_could_not_be_loaded: 'Audio could not be loaded',\n },\n};\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.BeerSlider=t():e.BeerSlider=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=0)}([function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),n(1);var r=n(3);t.default=r.BeerSlider},function(e,t,n){},,function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=n.start,i=void 0===r?\"50\":r,a=n.prefix,o=void 0===a?\"beer\":a;!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.start=parseInt(i)?Math.min(100,Math.max(0,parseInt(i))):50,this.prefix=o,t&&2===t.children.length&&(this.element=t,this.revealContainer=this.element.children[1],this.revealContainer.children.length<1||(this.revealElement=this.revealContainer.children[0],this.range=this.addElement(\"input\",{type:\"range\",class:this.prefix+\"-range\",\"aria-label\":\"Percent of revealed content\",\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\",\"aria-valuenow\":this.start,value:this.start,min:\"0\",max:\"100\"}),this.handle=this.addElement(\"span\",{class:this.prefix+\"-handle\"}),this.onImagesLoad()))}return r(e,[{key:\"init\",value:function(){this.element.classList.add(this.prefix+\"-ready\"),this.setImgWidth(),this.move(),this.addListeners()}},{key:\"loadingImg\",value:function(e){return new Promise(function(t,n){e||t();var r=new Image;r.onload=function(){return t()},r.onerror=function(){return n()},r.src=e})}},{key:\"loadedBoth\",value:function(){var e=this.element.children[0].src||this.element.children[0].getAttribute(\"data-\"+this.prefix+\"-src\"),t=this.revealElement.src||this.revealElement.getAttribute(\"data-\"+this.prefix+\"-src\");return Promise.all([this.loadingImg(e),this.loadingImg(t)])}},{key:\"onImagesLoad\",value:function(){var e=this;this.revealElement&&this.loadedBoth().then(function(){e.init()},function(){console.error(\"Some errors occurred and images are not loaded.\")})}},{key:\"addElement\",value:function(e,t){var n=document.createElement(e);return Object.keys(t).forEach(function(e){n.setAttribute(e,t[e])}),this.element.appendChild(n),n}},{key:\"setImgWidth\",value:function(){this.revealElement.style.width=getComputedStyle(this.element).width}},{key:\"addListeners\",value:function(){var e=this;[\"input\",\"change\"].forEach(function(t){e.range.addEventListener(t,function(){e.move()})}),window.addEventListener(\"resize\",function(){e.setImgWidth()})}},{key:\"move\",value:function(){this.revealContainer.style.width=this.range.value+\"%\",this.handle.style.left=this.range.value+\"%\",this.range.setAttribute(\"aria-valuenow\",this.range.value)}}]),e}()}]).default});","export const arrayFlat = (arrays: T[][]) => [].concat.apply([], arrays);","export const arrayUnique = (array: T[]) => array.filter((v: T, i: number, a: T[]) => a.indexOf(v) === i);","import { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { HTTP } from '@ionic-native/http/ngx';\nimport { FileEntry } from '@ionic-native/file/ngx';\n\nlet http: HTTP;\n\nconst needsUriEncoding = (s: string) => decodeURI(s) === s && encodeURI(s) !== s;\n\nexport const downloadFile = (url: string, destination: string): Promise => {\n http = http || AppInjector.prepare().get(HTTP);\n url = needsUriEncoding(url) ? encodeURI(url) : url;\n destination = needsUriEncoding(destination) ? encodeURI(destination) : destination;\n\n http.setRequestTimeout(30);\n http.setFollowRedirect(true);\n\n return http.downloadFile(url, { }, { }, destination);\n};","import { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { HTTP } from '@ionic-native/http/ngx';\n\nlet http: HTTP;\n\nexport const fetchUrl = (url: string, parameters = { }, headers = { }): Promise => {\n http = http || AppInjector.prepare().get(HTTP);\n\n return http.get(encodeURI(url), parameters, headers).then(({ data }) => JSON.parse(data));\n};","export const generateId = (): string => [\n Date.now().toString(36),\n Math.random().toString(36).slice(2)\n].join('');","export * from './unzip-file';\nexport * from './download-file';\nexport * from './timeout';\nexport * from './map';\nexport * from './kiosk';\nexport * from './fetch-url';\nexport * from './array-unique';\nexport * from './array-flat';\nexport * from './progress';\nexport * from './generate-id';","/**\n * Mock class if the kiosk mode plugin is not installed.\n * Rejects on any method call.\n */\n\nexport const KioskModeMock = (() => {\n const enable = () => Promise.reject('Plugin not installed');\n const disable = () => Promise.reject('Plugin not installed');\n const isEnabled = () => Promise.reject('Plugin not installed');\n const isLauncher = () => Promise.reject('Plugin not installed');\n const switchLauncher = () => Promise.reject('Plugin not installed');\n const enableAdb = () => Promise.reject('Plugin not installed');\n const disableAdb = () => Promise.reject('Plugin not installed');\n const isAdbEnabled = () => Promise.reject('Plugin not installed');\n\n return {\n enable,\n disable,\n isEnabled,\n isLauncher,\n switchLauncher,\n enableAdb,\n disableAdb,\n isAdbEnabled\n };\n})();\n","import * as jQuery from 'jquery';\n\nimport { Listener } from './listener';\n\nexport class AccordionListener implements Listener {\n private $: JQueryStatic = jQuery;\n\n public start(): void {\n this.$(document.body).on('click', '.accordion .abutton', (e: any) => {\n const $accordion: JQuery = this.$(e.currentTarget).parent('.accordion');\n\n this.toggleAccordion($accordion);\n });\n }\n\n private toggleAccordion($accordion: JQuery): void {\n if ($accordion.is('[data-active]')) {\n this.closeAccordion($accordion);\n } else {\n this.openAccordion($accordion);\n }\n }\n\n private closeAccordion($accordion: JQuery): void {\n const $title: JQuery = $accordion.find('.atitle');\n const $content: JQuery = $accordion.find('.acontent');\n const $button: JQuery = $accordion.find('.abutton');\n\n $content.slideUp(400, () => {\n $button.insertAfter($title);\n $button.find('ion-icon').attr('name', 'arrow-down');\n $accordion.removeAttr('data-active');\n });\n }\n\n private openAccordion($accordion: JQuery): void {\n const $content: JQuery = $accordion.find('.acontent');\n const $button: JQuery = $accordion.find('.abutton');\n\n $button.insertAfter($content);\n\n $content.css({ display: 'block' }).hide().slideDown(400, () => {\n $button.find('ion-icon').attr('name', 'arrow-up');\n $accordion.attr('data-active', '');\n });\n }\n}","import { Listener } from './listener';\nimport { Platform } from '@ionic/angular';\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\n\nexport class DocumentStyleListener implements Listener {\n private readonly STYLE_PROP_FULL_HEIGHT: string = '--rdi-full-height';\n private readonly STYLE_PROP_FULL_WIDTH: string = '--rdi-full-width';\n private readonly STYLE_PROP_HEADER_HEIGHT: string = '--rdi-header-height';\n private readonly STYLE_PROP_FOOTER_HEIGHT: string = '--rdi-footer-height';\n\n private readonly defaultHeaderHeight: number = 56;\n private readonly defaultFooterHeight: number = 164;\n\n private platform: Platform;\n\n constructor() {\n this.platform = AppInjector.prepare().get(Platform);\n }\n\n public start(): void {\n this.platform.resize.subscribe(() => this.updateStyleProperties());\n\n this.updateStyleProperties();\n }\n\n private updateStyleProperties(): void {\n this.setHeaderHeight(this.defaultHeaderHeight);\n this.setFooterHeight(this.defaultFooterHeight);\n this.setFullHeight(this.platform.height() - this.getHeaderHeight());\n this.setFullWidth(this.platform.width());\n }\n\n private setFullHeight(px: number): void {\n this.setDocumentProperty(this.STYLE_PROP_FULL_HEIGHT, `${px}px`);\n }\n\n private setFullWidth(px: number): void {\n this.setDocumentProperty(this.STYLE_PROP_FULL_WIDTH, `${px}px`);\n }\n\n private setHeaderHeight(px: number): void {\n this.setDocumentProperty(this.STYLE_PROP_HEADER_HEIGHT, `${px}px`);\n }\n\n private getHeaderHeight(): number {\n const height: number = parseInt(this.getDocumentProperty(this.STYLE_PROP_HEADER_HEIGHT));\n\n return (isNaN(height)) ? this.defaultHeaderHeight : height;\n }\n\n private setFooterHeight(px: number): void {\n this.setDocumentProperty(this.STYLE_PROP_FOOTER_HEIGHT, `${px}px`);\n }\n\n private setDocumentProperty(key: string, value: string): void {\n document.documentElement.style.setProperty(key, value);\n }\n\n private getDocumentProperty(key: string): string {\n return document.documentElement.style.getPropertyValue(key);\n }\n}","import { Router, NavigationStart } from '@angular/router';\nimport { SettingsService, TranslatorService } from 'app/services';\nimport { FirebaseAnalytics } from '@ionic-native/firebase-analytics/ngx';\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { filter, skip } from 'rxjs/operators';\n\nimport { Listener } from './listener';\n\nimport * as jQuery from 'jquery';\n\n\nexport class FirebaseAnalyticsListener implements Listener {\n private $: JQueryStatic = jQuery;\n\n private router: Router;\n private settingsService: SettingsService;\n private translatorService: TranslatorService;\n private firebaseAnalytics: FirebaseAnalytics;\n\n constructor() {\n this.router = AppInjector.prepare().get(Router);\n this.settingsService = AppInjector.prepare().get(SettingsService);\n this.translatorService = AppInjector.prepare().get(TranslatorService);\n this.firebaseAnalytics = AppInjector.prepare().get(FirebaseAnalytics);\n }\n\n public async start(): Promise {\n this.router.events\n .pipe(filter((e: any) => e instanceof NavigationStart))\n .subscribe((e: NavigationStart) => this.logRouterNavigation(e));\n\n this.settingsService.offlineContentChange\n .pipe(skip(1))\n .subscribe((enabled: boolean) => this.logOfflineContent(enabled));\n\n this.settingsService.offlineMapChange\n .pipe(skip(1))\n .subscribe((enabled: boolean) => this.logOfflineMap(enabled));\n\n this.translatorService.languageChange\n .subscribe(() => this.logLanguage(this.translatorService.getLanguage()));\n\n jQuery(document).on('rdi::startRoute', (e: any) => this.logRouteStart(e.detail.slug));\n jQuery(document).on('rdi::openStory', (e: any) => this.logStoryOpen(e.detail.slug));\n jQuery(document).on('rdi::playAudio', (e: any) => this.logAudioPlay(e.detail.url));\n jQuery(document).on('rdi::openLightbox', (e: any) => this.logLightboxOpen(e.detail.url));\n jQuery(document).on('rdi::downloadMedia', (e: any) => this.logMediaDownload(e.detail.slug));\n jQuery(document).on('rdi::downloadMap', (e: any) => this.logMapDownload(e.detail.slug));\n }\n\n private logRouterNavigation(e: NavigationStart): void {\n const { url } = e;\n\n this.log('router_navigate', { url }).catch(console.warn);\n }\n\n private logAudioPlay(url: string): void {\n this.log('audio_play', { url }).catch(console.warn);\n }\n\n private logOfflineContent(enabled: boolean): void {\n if (enabled) {\n this.log('offline_content_enabled', { }).catch(console.warn);\n }\n }\n\n private logOfflineMap(enabled: boolean): void {\n if (enabled) {\n this.log('offline_map_enabled', { }).catch(console.warn);\n }\n }\n\n private logLanguage(lang: string): void {\n this.log('language_change', { lang }).catch(console.warn);\n }\n\n private logRouteStart(slug: string): void {\n this.log('start_route', { slug }).catch(console.warn);\n }\n\n private logStoryOpen(slug: string): void {\n this.log('open_story', { slug }).catch(console.warn);\n }\n\n private logLightboxOpen(url: string): void {\n this.log('open_lightbox', { url }).catch(console.warn);\n }\n\n private logMediaDownload(slug: string): void {\n this.log('download_media', { slug }).catch(console.warn);\n }\n\n private logMapDownload(slug: string): void {\n this.log('download_map', { slug }).catch(console.warn);\n }\n\n private async log(name: string, data: any): Promise {\n try {\n await this.firebaseAnalytics.logEvent(name, data);\n } catch(err) {\n console.log(err);\n }\n }\n}","import * as jQuery from 'jquery';\n\nimport { SingleTermPage } from 'app/pages/single-term/single-term.page';\nimport { ModalController } from '@ionic/angular';\nimport { TermService } from 'app/services';\n\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\n\nimport { Term } from 'app/interfaces/api/types';\n\nimport { Listener } from './listener';\nimport { ModalHelper } from 'app/classes/modal-helper/modal-helper';\n\nexport class GlossaryLinkListener implements Listener {\n private $: JQueryStatic = jQuery;\n\n private modalController: ModalController;\n private termService: TermService;\n\n constructor() {\n this.modalController = AppInjector.prepare().get(ModalController);\n this.termService = AppInjector.prepare().get(TermService);\n }\n\n public start(): void {\n this.$(document.body).on('click', '[data-term-id]', async ({ currentTarget }) => {\n const $element: JQuery = this.$(currentTarget);\n const id: string = $element.data('term-id');\n const term: Term = await this.termService.getByID(id);\n\n if (term) {\n await this.openTerm(term);\n }\n });\n }\n\n private async openTerm(term: Term): Promise {\n await ModalHelper.closeAll();\n\n const modal: HTMLIonModalElement = await this.modalController.create({\n component: SingleTermPage,\n componentProps: { term },\n // cssClass: 'image-full-screen transparent-modal',\n });\n\n await modal.present();\n }\n}","import * as jQuery from 'jquery';\nimport * as BeerSlider from 'app/utils/BeerSlider';\n\nimport { Listener } from './listener';\n\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { Router, NavigationEnd, Event } from '@angular/router';\nimport { generateId } from 'app/utils';\nimport { filter } from 'rxjs/operators';\nimport { RdiWindow } from 'app/interfaces/rdi';\n\ndeclare var window: RdiWindow;\nexport class ImageComparisonSliderListener implements Listener {\n private $: JQueryStatic = jQuery;\n private sliders: Map = new Map();\n private router: Router;\n\n constructor() {\n this.router = AppInjector.prepare().get(Router);\n }\n\n public start(): void {\n window.rdi.listeners.push(async (element: HTMLElement) => {\n try {\n await this.createSliders(element);\n await this.createSliders(document.body);\n } catch(err) {\n console.log(err);\n }\n });\n\n this.createSliders(document.body);\n\n this.router.events\n .pipe(filter((e: Event) => e instanceof NavigationEnd))\n .subscribe(() => this.clearSliders());\n }\n\n private clearSliders(): void {\n Array.from(this.sliders.values())\n .map(({ element }) => element)\n .filter((element: HTMLElement) => element)\n .forEach((element: HTMLElement) => element.remove());\n\n this.sliders.clear();\n }\n\n private createSliders(root: HTMLElement): void {\n const $beerSliders = this.$(root).find('.beer-slider:not([data-ready]):not(.beer-ready');\n\n $beerSliders.attr('data-ready', 'true');\n\n $beerSliders.each((_, e: HTMLElement) => {\n const id: string = generateId();\n\n this.$(e).css({ display: 'block' }).attr({ id });\n\n this.sliders.set(id, new BeerSlider(e));\n });\n }\n}","import { Router, NavigationStart } from '@angular/router';\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { Listener } from './listener';\nimport { filter } from 'rxjs/operators';\nimport { IonContent } from '@ionic/angular';\n\nimport * as jQuery from 'jquery';\nimport 'jquery-touchswipe';\nimport { RdiWindow } from 'app/interfaces/rdi';\n\ntype JQuerySwipable = JQuery & { swipe: any };\n\ndeclare var window: RdiWindow;\n\nclass ImageSlider {\n constructor(private $root: JQuerySwipable) {\n this.$root.addClass('active');\n\n this.$root.find('.dot').on('click', (e) => {\n const index: number = Number(jQuery(e.currentTarget).attr('data-index'));\n\n this.activateIndex(index);\n });\n\n this.$root.find('ion-button.next-slide').on('click', () => this.next());\n this.$root.find('ion-button.previous-slide').on('click', () => this.previous());\n this.$root.swipe({\n swipeLeft: () => this.next(),\n swipeRight: () => this.previous()\n });\n }\n\n private next(): void {\n if (this.hasNext) {\n this.activateIndex(this.activeIndex + 1);\n }\n }\n\n private previous(): void {\n if (this.hasPrevious) {\n this.activateIndex(this.activeIndex - 1);\n }\n }\n\n private activateIndex(index: number): void {\n if (index !== this.activeIndex) {\n this.$root.find('.rdi-slide').removeClass('active');\n this.$root.find('.rdi-slide').eq(index).addClass('active');\n\n this.$root.find('.dot').removeClass('active');\n this.$root.find('.dot').eq(index).addClass('active');\n\n this.$root.find('ion-button.next-slide').attr('disabled', () => this.hasNext ? null : '');\n this.$root.find('ion-button.previous-slide').attr('disabled', () => this.hasPrevious ? null : '');\n }\n }\n\n private get activeIndex(): number {\n return this.$root.find('.rdi-slide').toArray().findIndex((e) => e.classList.contains('active'));\n }\n\n private get hasNext(): boolean {\n return this.hasIndex(this.activeIndex + 1);\n }\n\n private get hasPrevious(): boolean {\n return this.hasIndex(this.activeIndex - 1);\n }\n\n private hasIndex(index: number): boolean {\n return this.$root.find('.rdi-slide').length > index && index >= 0;\n }\n}\n\nexport class ImageSlidesListener implements Listener {\n private $: JQueryStatic = jQuery;\n private router: Router;\n private slider: ImageSlider[] = [];\n\n constructor() {\n this.router = AppInjector.prepare().get(Router);\n }\n\n public start(): void {\n window.rdi.listeners.push(async (element: HTMLElement) => {\n try {\n await this.createImageSlider(element);\n await this.createImageSlider(document.body);\n } catch(err) {\n console.log(err);\n }\n });\n\n this.createImageSlider(document.body);\n\n this.router.events\n .pipe(filter((e: any) => e instanceof NavigationStart))\n .subscribe(() => this.clearImageSlider());\n }\n\n private async createImageSlider(root: HTMLElement): Promise {\n const ionContents: unknown[] = this.$('ion-content').toArray();\n\n for (const ionContent of ionContents) {\n const id: string = 'image-slider-scroll-snap-style';\n const root: ShadowRoot = (ionContent as HTMLElement).shadowRoot;\n const exists: boolean = !!root.getElementById(id);\n const scrollElement: HTMLElement = await (ionContent as IonContent).getScrollElement();\n\n if (!exists && scrollElement) {\n const style: HTMLStyleElement = document.createElement('style');\n\n style.id = id;\n style.innerHTML = `\n .scroll-snap-type-y {\n scroll-snap-type: y proximity;\n }\n `;\n\n root.prepend(style);\n scrollElement.classList.add('scroll-snap-type-y');\n }\n }\n\n this.$(root)\n .find('.rdi-slides-container:not(.active)')\n .map((_, e: HTMLElement) => this.$(e))\n .each((_, $e: JQuery) => {\n this.slider.push(new ImageSlider($e as JQuerySwipable));\n });\n }\n\n private clearImageSlider(): void {\n this.slider.length = 0;\n }\n}\n","import { ModalController } from '@ionic/angular';\nimport { ImageViewerComponent } from 'app/components/image-viewer/image-viewer.component';\nimport { Attachment } from 'app/interfaces/api/types';\nimport { AttachmentService } from 'app/services';\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { Listener } from './listener';\n\nimport * as jQuery from 'jquery';\nimport { RdiWindow } from 'app/interfaces/rdi';\n\ndeclare var window: RdiWindow;\n\nexport class ImageViewerListener implements Listener {\n private $: JQueryStatic = jQuery;\n private attachmentService: AttachmentService;\n private modalController: ModalController;\n\n constructor() {\n this.attachmentService = AppInjector.prepare().get(AttachmentService);\n this.modalController = AppInjector.prepare().get(ModalController);\n }\n\n public start(): void {\n this.$(document.body).on('click', 'img:not([data-disable-lightbox])', ({ currentTarget }) => {\n const $image: JQuery = this.$(currentTarget);\n\n this.openLightbox($image);\n });\n\n this.$(document.body).on('click', 'ion-fab-button.image-viewer-trigger', ({ currentTarget }) => {\n const $image: JQuery = this.$(currentTarget)\n .parents('div.image-container')\n .find('img');\n\n this.openLightbox($image);\n });\n\n window.rdi.listeners.push(async (element: HTMLElement) => {\n try {\n await this.createLightboxButton(element);\n await this.createLightboxButton(document.body);\n } catch(err) {\n console.log(err);\n }\n });\n }\n\n private async openLightbox($image: JQuery): Promise {\n const src: string = $image.attr('src');\n const alt: string = $image.data('alternative-lightbox');\n const sub: string = $image.data('subtext');\n const url: string = (alt) ? alt : src;\n const filename: string = url.split('/').pop();\n const attachment: Attachment = await this.attachmentService.getByFilename(filename);\n\n if (attachment) {\n attachment.subtext = sub || '';\n\n const modal: HTMLIonModalElement = await this.modalController.create({\n component: ImageViewerComponent,\n componentProps: {\n attachments: [attachment]\n },\n cssClass: 'image-full-screen transparent-modal'\n });\n\n await modal.present();\n\n document.dispatchEvent(new CustomEvent('rdi::openLightbox', {\n detail: { url }\n }));\n }\n }\n\n private async createLightboxButton(root: HTMLElement): Promise {\n this.$(root)\n .find('div.image-container > img:not([data-disable-lightbox])')\n .map((_, element: HTMLElement) => this.$(element).parent())\n .filter((_, $parent: JQuery) => $parent.find('ion-fab').length === 0)\n .each((_, $parent: JQuery) => {\n this.$(`\n \n \n \n \n \n `).appendTo($parent);\n });\n }\n}\n","export { GlossaryLinkListener } from 'app/utils/listeners/glossary-link.listener';\nexport { AccordionListener } from 'app/utils/listeners/accordion.listener';\nexport { NavLinkListener } from 'app/utils/listeners/nav-link.listener';\nexport { ImageViewerListener } from 'app/utils/listeners/image-viewer.listener';\nexport { FirebaseAnalyticsListener } from 'app/utils/listeners/firebase-analytics.listener';\nexport { ImageComparisonSliderListener } from 'app/utils/listeners/image-comparison-slider.listener';\nexport { WavesurferListener } from 'app/utils/listeners/wavesurfer.listener';\nexport { SvgExtractorListener } from 'app/utils/listeners/svg-extractor.listener';\nexport { ImageSlidesListener } from 'app/utils/listeners/image-slides.listener';\nexport { InterfererListener } from 'app/utils/listeners/interferer.listener';\nexport { VideoListener } from 'app/utils/listeners/video.listener';\nexport { DocumentStyleListener } from 'app/utils/listeners/document-style.listener';","import { Listener } from './listener';\nimport { Attachment } from 'app/interfaces/api/types';\nimport { Platform, ModalController } from '@ionic/angular';\nimport { AttachmentService } from 'app/services';\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { SingleVideoComponent } from 'app/components/modals/single-video/single-video.component';\n\nimport * as jQuery from 'jquery';\nimport { ModalHelper } from 'app/classes/modal-helper/modal-helper';\nimport { RdiWindow } from 'app/interfaces/rdi';\n\ndeclare var window: RdiWindow;\n\nexport class InterfererListener implements Listener {\n private $: JQueryStatic = jQuery;\n\n private modalController: ModalController;\n private attachmentService: AttachmentService;\n private platform: Platform;\n\n constructor() {\n this.modalController = AppInjector.prepare().get(ModalController);\n this.attachmentService = AppInjector.prepare().get(AttachmentService);\n this.platform = AppInjector.prepare().get(Platform);\n }\n\n public start(): void {\n window.rdi.listeners.push(async (element: HTMLElement) => {\n try {\n await this.handleInterferers(element);\n await this.handleInterferers(document.body);\n } catch(err) {\n console.log(err);\n }\n });\n\n this.handleInterferers(document.body);\n\n this.$(document.body)\n .on('click', '.interferer-container > ion-button', async (e: any) => {\n const $ionButton: JQuery = this.$(e.currentTarget);\n const $container: JQuery = $ionButton.parent();\n const videoId: string = $container.attr('data-video-id');\n const attachment: Attachment = await this.attachmentService.getByID(videoId);\n\n if (attachment) {\n await this.openVideo(attachment);\n }\n });\n\n this.$(document.body)\n .on('click', '.interferer-container', async (e: any) => {\n if (this.platform.width() <= 480) {\n const $container = this.$(e.currentTarget);\n const videoId = $container.attr('data-video-id');\n const attachment = await this.attachmentService.getByID(videoId);\n\n if (attachment) {\n await this.openVideo(attachment);\n }\n }\n });\n }\n\n private async openVideo(video: Attachment): Promise {\n await ModalHelper.closeAll();\n\n const modal: HTMLIonModalElement = await this.modalController.create({\n component: SingleVideoComponent,\n componentProps: { video },\n cssClass: 'modal-full-transparent'\n });\n\n await modal.present();\n }\n\n private handleInterferers(root: HTMLElement): void {\n this.$(root)\n .find('.interferer-container:not([data-ready])')\n .map((_, container: HTMLElement) => this.$(container))\n .each((_, $container: JQuery) => {\n const $ionContent: JQuery = $container.closest('ion-content');\n const $clone = $container.clone();\n\n $container\n .addClass('interferer-mobile')\n .attr('data-ready', 'true');\n\n $clone\n .addClass('interferer-desktop')\n .attr('data-ready', 'true')\n .prependTo($ionContent);\n });\n }\n}","import { Router } from '@angular/router';\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { Listener } from './listener';\n\nimport * as jQuery from 'jquery';\nimport { SettingsService } from 'app/services';\n\nexport class NavLinkListener implements Listener {\n private $: JQueryStatic = jQuery;\n\n private router: Router;\n private settingsService: SettingsService;\n\n constructor() {\n this.router = AppInjector.prepare().get(Router);\n this.settingsService = AppInjector.prepare().get(SettingsService);\n }\n\n public start(): void {\n this.$(document.body).on('click', '[data-href]', (e) => this.onDataHrefClick(e));\n this.$(document.body).on('click', '[href]', (e) => this.onHrefClick(e));\n }\n\n private onDataHrefClick(e: any): void {\n const href: string = this.$(e.currentTarget).data('href');\n\n this.router.navigateByUrl(href);\n }\n\n private onHrefClick(e: any): void {\n if (this.settingsService.getKioskModeActive()) {\n e.preventDefault();\n }\n }\n}\n","import { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { StorageService } from 'app/services';\nimport * as jQuery from 'jquery';\n\nimport { Listener } from './listener';\n\nimport { timeoutAsync } from 'app/utils/timeout';\nimport { RdiWindow } from 'app/interfaces/rdi';\n\ndeclare var window: RdiWindow;\n\nlet storageService: StorageService;\n\nexport class SvgExtractorListener implements Listener {\n private $: JQueryStatic = jQuery;\n\n constructor() {\n storageService = AppInjector.prepare().get(StorageService);\n }\n\n public start(): void {\n window.rdi.listeners.push(async (element: HTMLElement) => {\n try {\n await timeoutAsync(250);\n await createSvgs(element);\n await createSvgs(document.body);\n } catch(err) {\n console.log(err);\n }\n });\n\n createSvgs(document.body);\n }\n}\n\nasync function createSvgs(e: any): Promise {\n const $elements: JQuery = jQuery(e).find('img.svg:not([data-svg-fixed])');\n const promises = $elements.toArray().map((element) => createSingleSvg(element));\n\n await Promise.all(promises);\n}\n\nasync function createSingleSvg(element: HTMLElement, count: number = 0): Promise {\n const $element: JQuery = jQuery(element);\n const url: string = $element.attr('src') || '';\n\n if (url.startsWith('/') || url.startsWith('assets')) {\n return;\n }\n\n /**\n * If the async safe-html pipe is not yet finished,\n * the src of the element is \"null\". We try it again\n * after 100ms with a maximum of 10 attempts.\n */\n if ((!url || url == 'null') && count <= 10) {\n await timeoutAsync(100);\n\n await createSingleSvg(element, ++count);\n } else {\n if ($element.parents('.story-page').length || $element.parents('.single-term-page').length) {\n await fixRemoteUrlWithCircle(element, url);\n } else {\n await fixRemoteUrl(element, url);\n }\n\n $element.attr('data-svg-fixed', '');\n $element.show();\n }\n}\n\nfunction fixRemoteUrl(element: HTMLElement, url: string): Promise {\n return new Promise((resolve) => {\n url = storageService.convertMediaSrc(url);\n\n jQuery.get(url, (res) => {\n // Get the SVG tag, ignore the rest\n const $svg = jQuery(res).find('svg');\n let data = $svg.html();\n\n /**\n * to display circle reference is made by #SVGID_2 so\n * we need unique ID because we can have multiple per document...\n *\n */\n data = data.replace(new RegExp('SVGID_1_', 'g'), 'svgid1' + Date.now());\n data = data.replace(new RegExp('SVGID_2_', 'g'), 'svgid2' + Date.now());\n data = data.replace(new RegExp('SVGID_3_', 'g'), 'svgid3' + Date.now());\n data = data.replace(new RegExp('SVGID_4_', 'g'), 'svgid4' + Date.now());\n\n $svg.html(data);\n // $svg.find('circle:first').attr('r', 500);\n // $svg.find('g:nth-of-type(2)').remove();\n\n if ($svg.length > 0) jQuery(element).attr('src', 'data:image/svg+xml;base64,' + window.btoa($svg.get(0).outerHTML));\n\n jQuery(element).attr('data-svg-ready', '');\n\n resolve();\n }, 'xml').fail(() => resolve());\n });\n}\n\nfunction fixRemoteUrlWithCircle(element: HTMLElement, url: string): Promise {\n return new Promise((resolve) => {\n url = storageService.convertMediaSrc(url);\n\n jQuery.get(url, (res) => {\n // Get the SVG tag, ignore the rest\n const $svg = jQuery(res).find('svg');\n let data = $svg.html();\n\n data = data.replace(\n new RegExp('.st0{', 'g'),\n '.st0{-webkit-clip-path:url(#SVGID_2_);',\n );\n\n data = data.replace(\n new RegExp('.st5{', 'g'),\n '.st5{-webkit-clip-path:url(#SVGID_4_);',\n );\n\n /**\n * to display circle reference is made by #SVGID_2 so\n * we need unique ID because we can have multiple per document...\n *\n */\n data = data.replace(new RegExp('SVGID_1_', 'g'), 'svgid1' + Date.now());\n data = data.replace(new RegExp('SVGID_2_', 'g'), 'svgid2' + Date.now());\n data = data.replace(new RegExp('SVGID_3_', 'g'), 'svgid3' + Date.now());\n data = data.replace(new RegExp('SVGID_4_', 'g'), 'svgid4' + Date.now());\n\n $svg.html(data);\n\n $svg.find('circle:first').attr({\n cx: 150,\n cy: 200,\n r: 200\n });\n\n if ($svg.length > 0) jQuery(element).attr('src', 'data:image/svg+xml;base64,' + window.btoa($svg.get(0).outerHTML));\n\n jQuery(element).attr('data-svg-ready', '');\n\n resolve();\n }, 'xml').fail(() => resolve());\n });\n}\n","import { Listener } from './listener';\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { ToastController } from '@ionic/angular';\nimport { TranslatorService, StorageService } from 'app/services';\n\nimport * as jQuery from 'jquery';\nimport { ModalHelper } from 'app/classes/modal-helper/modal-helper';\nimport { RdiWindow } from 'app/interfaces/rdi';\n\ndeclare var window: RdiWindow;\n\nexport class VideoListener implements Listener {\n private $: JQueryStatic = jQuery;\n private toastController: ToastController;\n private translator: TranslatorService;\n private storageService: StorageService;\n\n constructor() {\n this.toastController = AppInjector.prepare().get(ToastController);\n this.translator = AppInjector.prepare().get(TranslatorService);\n this.storageService = AppInjector.prepare().get(StorageService);\n }\n\n public start(): void {\n this.$(document.body).on('click', '.video-outer', ({ currentTarget }) => {\n const $outer: JQuery = this.$(currentTarget);\n const video: HTMLVideoElement = $outer.find('video').get(0) as HTMLVideoElement;\n\n if (video) {\n video.onended = () => this.onVideoEnded(video);\n\n if (this.canPlayVideo(video)) {\n video.paused ? this.playVideo(video) : this.pauseVideo(video);\n } else {\n this.showToast('video_not_ready');\n }\n }\n });\n\n this.$(document.body).on('click', '.video-close-button', () => ModalHelper.closeAll());\n\n window.rdi.listeners.push(async (element: HTMLElement) => {\n try {\n const $elementVideos = this.$(element).find('video:not([data-fixed-video])');\n const $videos = this.$(document.body)\n .find('video:not([data-fixed-video])')\n .add($elementVideos);\n\n $videos.attr('data-fixed-video', '');\n\n for (const video of $videos.toArray()) {\n await this.fixVideo(video as HTMLVideoElement);\n }\n } catch(err) {\n console.log(err);\n }\n });\n }\n\n private async fixVideo(video: HTMLVideoElement): Promise {\n try {\n const $video: JQuery = this.$(video);\n const src: string = $video.attr('src') || '';\n const url: string = await this.storageService.loadMediaSrc(src);\n\n $video.attr('src', url);\n } catch(err) {\n console.log(err);\n }\n\n video.oncanplay = () => video.setAttribute('data-ready', 'true');\n video.onerror = () => video.setAttribute('data-ready', 'true');\n }\n\n private onVideoEnded(video: HTMLVideoElement): void {\n const overlay: HTMLElement = this.getVideoOverlay(video);\n\n video.currentTime = 0;\n video.pause();\n\n if (overlay) {\n overlay.classList.add('visible');\n }\n }\n\n private playVideo(video: HTMLVideoElement): void {\n const overlay: HTMLElement = this.getVideoOverlay(video);\n\n if (overlay) {\n overlay.classList.remove('visible');\n }\n\n video.play();\n }\n\n private pauseVideo(video: HTMLVideoElement): void {\n const overlay: HTMLElement = this.getVideoOverlay(video);\n\n if (overlay) {\n overlay.classList.add('visible');\n }\n\n video.pause();\n }\n\n private canPlayVideo(video: HTMLVideoElement): boolean {\n return video.readyState === 4;\n }\n\n private getVideoOverlay(video: HTMLElement): HTMLElement {\n return video.parentElement.querySelector('.paused-overlay');\n }\n\n private async showToast(message: string, color: string = 'menucolor'): Promise {\n const toast = await this.toastController.create({\n message: this.translator.translate(message),\n showCloseButton: true,\n closeButtonText: this.translator.translate('close'),\n duration: 2000,\n color\n });\n\n await toast.present();\n\n return toast;\n }\n}","import { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { Router, NavigationEnd, Event } from '@angular/router';\nimport { StorageService, TranslatorService } from 'app/services';\n\nimport * as WaveSurfer from 'wavesurfer.js';\nimport * as jQuery from 'jquery';\n\nimport { generateId } from 'app/utils';\nimport { filter } from 'rxjs/operators';\n\nimport { Listener } from './listener';\nimport { AudioHelper } from 'app/classes/audio-helper/audio-helper';\nimport { ToastController } from '@ionic/angular';\nimport { RdiWindow } from 'app/interfaces/rdi';\n\ntype WavesurferItem = {\n $range: JQuery;\n wavesurfer: any;\n};\n\ndeclare var window: RdiWindow;\n\nexport class WavesurferListener implements Listener {\n private $: JQueryStatic = jQuery;\n private router: Router;\n private storageService: StorageService;\n private toastController: ToastController;\n private translator: TranslatorService;\n private readonly wavesurfers: Map = new Map();\n\n constructor() {\n this.router = AppInjector.prepare().get(Router);\n this.storageService = AppInjector.prepare().get(StorageService);\n this.toastController = AppInjector.prepare().get(ToastController);\n this.translator = AppInjector.prepare().get(TranslatorService);\n }\n\n public async start(): Promise {\n this.router.events\n .pipe(filter((e: Event) => e instanceof NavigationEnd))\n .subscribe(() => this.clearWavesurfers());\n\n window.rdi.listeners.push(async (element: HTMLElement) => {\n try {\n await this.createWavesurfers(element);\n await this.createWavesurfers(document.body);\n } catch(err) {\n console.log(err);\n }\n });\n\n this.createWavesurfers();\n }\n\n private clearWavesurfers(): void {\n AudioHelper.stopAllAudios();\n\n Array.from(this.wavesurfers.values()).forEach(({ $range, wavesurfer }) => {\n wavesurfer.unAll();\n wavesurfer.destroy();\n\n $range.off().remove();\n });\n\n this.wavesurfers.clear();\n }\n\n private async createWavesurfers(root: HTMLElement = document.body): Promise {\n const $audioElements = this.$(root).find('audio source[data-id]:not([data-ws-id])');\n\n $audioElements.attr('data-ws-id', '');\n\n for (const audio of $audioElements.toArray()) {\n const $audio = this.$(audio);\n const $parent = $audio.parents('[data-ws-color]');\n const color: string = $parent.attr('data-ws-color') || '#ffe500';\n\n await this.createWaveSurferAsync(audio, color);\n }\n }\n\n private createWaveSurferAsync(audio: HTMLElement, color: string): Promise {\n return new Promise(async (resolve) => {\n try {\n await this.createWaveSurfer(audio, color);\n } catch(err) {\n console.log(err);\n }\n\n resolve();\n });\n }\n\n private async createWaveSurfer(audio: HTMLElement, color: string): Promise {\n const id: string = generateId();\n const $source: JQuery = this.$(audio);\n const $audio: JQuery = $source.parent('audio');\n const $container: JQuery = this.$(audio).closest('.wavesurfer-container');\n const $pButton: JQuery = $container.find('.pButton');\n const $waveform: JQuery = $container.find('.waveform');\n const $control: JQuery = this.$('
');\n\n $waveform.attr({ id: `waveform-${id}` });\n\n const wavesurfer = (() => {\n const otone: boolean = $container.parent().hasClass('otone-overlay');\n const progressColor: string = $audio.parents('[data-ws-progress-color]').attr('data-ws-progress-color') || '#ffffff';\n\n return WaveSurfer.create({\n container: $waveform.get(0),\n waveColor: (otone) ? '#ffe500' : color,\n progressColor: progressColor,\n scrollParent: true,\n barWidth: (otone) ? 3 : 2,\n height: 50,\n barGap: (otone) ? 3: null,\n barRadius: (otone) ? 1 : 0,\n backend: 'MediaElement',\n xhr: {\n cache: 'default',\n mode: 'cors',\n method: 'GET',\n redirect: 'follow',\n headers: [\n { key: 'range', value: 'bytes=0-' }\n ]\n }\n });\n })();\n\n if (!$waveform.is('[data-no-border]')) {\n $waveform.css('border-color', color);\n }\n\n $pButton.css('border-color', color).append($control);\n $control.css('border-color', 'transparent transparent transparent ' + color );\n\n // Additional element RDI-268\n const $rangeItem: JQuery = this.$('');\n const $range: JQuery = this.$('');\n const $labelStart: JQuery = this.$('');\n const $labelEnd: JQuery = this.$('');\n\n $rangeItem.append($range);\n $rangeItem.attr({ 'color': 'default' }).css({ marginTop: '10px', display: 'none' });\n $labelStart.css({ color: '#fff' });\n $labelEnd.css({ color: '#fff' });\n $range.append([$labelStart, $labelEnd]);\n $range.css({\n 'padding': '0',\n '--pin-background': color,\n '--bar-background-active': color\n });\n\n if ($container.parent().hasClass('otone-overlay')) {\n const $overlay: JQuery = $container.parent();\n\n $overlay.on('click', () => {\n if (wavesurfer.isPlaying()) {\n $overlay.animate({ opacity: 0 }, 400, () => wavesurfer.seekAndCenter(0));\n } else {\n $overlay.animate({ opacity: 1 });\n }\n\n wavesurfer.playPause();\n });\n } else if ($container.parent().is('[data-no-range]')) {\n } else {\n $waveform.append($rangeItem);\n }\n\n let rangeTouched: boolean = false;\n let wasPlayed: boolean = false;\n\n const updateRange = (time: number) => {\n $labelStart.text(this.formatTime(time));\n $range.attr({ value: time });\n };\n\n const updateWavesurfer = (time: number) => {\n wavesurfer.seekAndCenter(time / wavesurfer.getDuration());\n };\n\n const onRangeLeave = () => {\n rangeTouched = false;\n\n if (wasPlayed) {\n wavesurfer.play();\n }\n };\n\n const onRangeEnter = () => {\n rangeTouched = true;\n\n wavesurfer.pause();\n };\n\n let firstTimePlayed: boolean = true;\n\n const onTogglePlay = () => {\n wasPlayed = wavesurfer.isPlaying() || rangeTouched;\n\n if (firstTimePlayed) {\n firstTimePlayed = false;\n\n document.dispatchEvent(new CustomEvent('rdi::playAudio', {\n detail: {\n url: this.$(audio).attr('src')\n }\n }));\n }\n\n if (wavesurfer.isPlaying()) {\n $control.removeClass('play');\n $control.addClass('pause');\n } else {\n $control.removeClass('pause');\n $control.addClass('play');\n }\n };\n\n const onRangeChange = (e: any) => {\n if (rangeTouched) {\n const { value: time } = e.detail;\n\n updateRange(time);\n updateWavesurfer(time)\n }\n };\n\n const onAudioProcess = () => {\n if (!rangeTouched) updateRange(wavesurfer.getCurrentTime());\n };\n\n const onSeek = (time: number) => {\n updateRange(time * wavesurfer.getDuration())\n };\n\n const onPlayPause = (e) => {\n e.preventDefault();\n\n if (!wavesurfer.isPlaying()) AudioHelper.stopAllAudios();\n\n wavesurfer.playPause();\n }\n\n wavesurfer.on('ready', () => {\n $range.on('touchstart', onRangeEnter);\n $range.on('mousedown', onRangeEnter);\n $range.on('touchend', onRangeLeave);\n $range.on('mouseup', onRangeLeave);\n $range.on('mouseout', onRangeLeave);\n $range.on('ionChange', onRangeChange);\n wavesurfer.on('play', onTogglePlay);\n wavesurfer.on('pause', onTogglePlay);\n wavesurfer.on('audioprocess', onAudioProcess);\n wavesurfer.on('seek', onSeek);\n $pButton.on('click', onPlayPause);\n\n $range.attr({ max: wavesurfer.getDuration() });\n $labelEnd.text(this.formatTime(wavesurfer.getDuration()));\n\n updateRange(wavesurfer.getCurrentTime());\n\n $rangeItem.fadeIn();\n });\n\n\n wavesurfer.on('error', () => {\n $pButton.on('click', () => this.showToast('audio_could_not_be_loaded'));\n $range.on('touchstart', () => this.showToast('audio_could_not_be_loaded'));\n });\n\n const src: string = this.$(audio).attr('src');\n const url: string = await this.storageService.loadMediaSrc(src);\n\n wavesurfer.load(url);\n\n this.wavesurfers.set(id, { $range, wavesurfer });\n }\n\n private formatTime(time: number): string {\n const minutes: number = Math.floor(time / 60);\n const seconds: number = Math.floor(time - 60 * minutes);\n\n const minutesAsString: string = minutes.toString().padStart(2, '0');\n const secondsAsString: string = seconds.toString().padStart(2, '0');\n\n return `${minutesAsString}:${secondsAsString}`;\n }\n\n private async showToast(message: string, color: string = 'menucolor'): Promise {\n const toast = await this.toastController.create({\n message: this.translator.translate(message),\n showCloseButton: true,\n closeButtonText: this.translator.translate('close'),\n duration: 2000,\n color\n });\n\n await toast.present();\n\n return toast;\n }\n}","import { ILatLng, ILatLngBounds } from '@ionic-native/google-maps';\nimport { Route } from 'app/interfaces/api/types';\n\nconst EARTH_RADIUS = 6378137; // Earth’s mean radius in meter\nexport const HIDDEN_PLACE_THRESHOLD = 50; // Max. distance to trigger a hidden place notification\nexport const HIDDEN_PLACE_DEBOUNCE_RATE = 1000 * 60 * 5; // Minimum time to re-trigger an already entered hidden place notification\n\nexport function getCenter(coordinates: ILatLng[]): ILatLng | null {\n if (!coordinates.length) {\n return null;\n }\n let minLat: number;\n let maxLat: number;\n let minLng: number;\n let maxLng: number;\n for (const c of coordinates) {\n if (c !== null) {\n if (minLat === undefined || c.lat < minLat) {\n minLat = c.lat;\n }\n if (maxLat === undefined || c.lat > maxLat) {\n maxLat = c.lat;\n }\n if (minLng === undefined || c.lng < minLng) {\n minLng = c.lng;\n }\n if (maxLng === undefined || c.lng > maxLng) {\n maxLng = c.lng;\n }\n }\n }\n return {\n lat: (minLat + maxLat) / 2,\n lng: (minLng + maxLng) / 2,\n };\n}\n\nexport function getCenterOfBounds(bounds: ILatLngBounds): ILatLng {\n const width = bounds.northeast.lat - bounds.southwest.lat;\n const height = bounds.northeast.lng - bounds.southwest.lng;\n return {\n lat: bounds.southwest.lat + width / 2,\n lng: bounds.southwest.lng + height / 2,\n };\n}\n\nexport function constrainPosition(\n position: ILatLng,\n visibleArea: ILatLngBounds,\n bounds: ILatLngBounds,\n): ILatLng {\n const constrainedPosition = { ...position };\n const extendedBounds: ILatLngBounds = {\n northeast: {\n lat: bounds.northeast.lat + 0.05,\n lng: bounds.northeast.lng + 0.05,\n },\n southwest: {\n lat: bounds.southwest.lat - 0.05,\n lng: bounds.southwest.lng - 0.05,\n },\n };\n\n let northExceeded = false;\n let southExceeded = false;\n let eastExceeded = false;\n let westExceeded = false;\n\n if (visibleArea.northeast.lat > extendedBounds.northeast.lat) {\n northExceeded = true;\n constrainedPosition.lat =\n position.lat - (visibleArea.northeast.lat - extendedBounds.northeast.lat);\n }\n\n if (visibleArea.southwest.lat < extendedBounds.southwest.lat) {\n southExceeded = true;\n constrainedPosition.lat =\n position.lat - (visibleArea.southwest.lat - extendedBounds.southwest.lat);\n }\n\n if (visibleArea.northeast.lng > extendedBounds.northeast.lng) {\n eastExceeded = true;\n constrainedPosition.lng =\n position.lng - (visibleArea.northeast.lng - extendedBounds.northeast.lng);\n }\n\n if (visibleArea.southwest.lng < extendedBounds.southwest.lng) {\n westExceeded = true;\n constrainedPosition.lng =\n position.lng - (visibleArea.southwest.lng - extendedBounds.southwest.lng);\n }\n\n if (westExceeded && eastExceeded) {\n constrainedPosition.lng =\n bounds.northeast.lng + (bounds.southwest.lng - bounds.northeast.lng) / 2;\n }\n\n if (northExceeded && southExceeded) {\n constrainedPosition.lat =\n bounds.southwest.lat + (bounds.northeast.lat - bounds.southwest.lat) / 2;\n }\n\n return constrainedPosition;\n}\n\nexport function getTrackCoordinates(route: Route = null): ILatLng[] {\n // Check for tracks\n if (route && route.gpx && route.gpx.trkseg && route.gpx.trkseg.length) {\n return route.gpx.trkseg[0].points.map(point => ({\n lat: point.lat,\n lng: point.lon,\n }));\n }\n\n // Check for waypoints\n if (route && route.gpx && Array.isArray(route.gpx)) {\n return route.gpx.map((point) => ({\n lat: point.lat,\n lng: point.lon\n }));\n }\n\n return [];\n}\n\nfunction rad(x) {\n return x * Math.PI / 180;\n};\n\nfunction deg(x) {\n return x * 180 / Math.PI;\n}\n\nexport function getDistance(p1: ILatLng, p2: ILatLng) {\n const deltaLat = rad(p2.lat - p1.lat);\n const deltaLng = rad(p2.lng - p1.lng);\n const a = Math.sin(deltaLat / 2) * Math.sin(deltaLat / 2) +\n Math.cos(rad(p1.lat)) * Math.cos(rad(p2.lat)) *\n Math.sin(deltaLng / 2) * Math.sin(deltaLng / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return EARTH_RADIUS * c;\n};\n\nexport function getAngleFromPointToPoint(p1: ILatLng, p2: ILatLng) {\n const deltaLng = p2.lng - p1.lng;\n const y = Math.sin(deltaLng) * Math.cos(p2.lat);\n const x = Math.cos(p1.lat) * Math.sin(p2.lat) - Math.sin(p1.lat) * Math.cos(p2.lat) * Math.cos(deltaLng);\n let angle = Math.atan2(y, x);\n angle = deg(angle);\n angle = (angle + 360) % 360;\n return angle;\n};\n","export class Progress {\n constructor(public total: number, public progress: number = 0) { }\n\n public increase(by: number = 1): Progress {\n this.progress += by;\n\n return this;\n }\n\n public decrease(by: number = 1): Progress {\n this.progress -= by;\n\n return this;\n }\n}\n","export const timeoutAsync = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));","import { AppInjector } from 'app/classes/app-injector/app-injector';\nimport { Zip } from '@ionic-native/zip/ngx';\n\nlet zip: Zip;\n\nexport const unzipFile = async (path: string, destination: string): Promise => {\n zip = zip || AppInjector.prepare().get(Zip);\n\n try {\n const result: number = await zip.unzip(path, destination);\n\n return (result === 0);\n } catch(err) {\n console.log(err);\n\n return false;\n }\n};","export class Environment {\n public static getServerUrl(): string {\n return (Environment.isProduction())\n ? 'https://api.industriekultur.guide'\n : 'https://rdi.amicaldo.net';\n }\n\n public static getServerUploadUrl(): string {\n return Environment.getServerUrl() + '/wp-content/uploads/';\n }\n\n public static getAppPassword(): string {\n return '11332113';\n }\n\n public static getApiToken(): string {\n return [\n 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9',\n 'eyJpZCI6MCwic3ViIjowLCJpYXQiOjE1NjIwNTg1NDUsIm5iZiI6MTU2MjA1ODU0NX0',\n 'CJYDVTvqehiA_S8b9zAldKu19dtk9R8_tpFMVJ78UUE'\n ].join('.');\n }\n\n public static getDefaultProtagonistAvatar(): string {\n return '/assets/img/default_protagonist_avatar.svg';\n }\n\n public static getStorytellerAvatarDefault(): string {\n return '/assets/img/storyteller_avatar.svg';\n }\n\n public static getStorytellerAvatarRuhrort(): string {\n return '/assets/img/storyteller_avatar_ruhrort.svg';\n }\n\n public static isProduction(): boolean {\n return localStorage.getItem('rdi_environment') !== 'development';\n }\n\n public static isDevelopment(): boolean {\n return localStorage.getItem('rdi_environment') === 'development';\n }\n\n public static initProduction(): void {\n localStorage.removeItem('rdi_environment');\n\n window.location.reload();\n }\n\n public static initDevelopment(): void {\n localStorage.setItem('rdi_environment', 'development');\n\n window.location.reload();\n }\n\n public static getLanguages(): string[] {\n return ['de', 'en'];\n }\n\n public static getAppVersion(): string {\n return 'v1.4.2';\n }\n}\n","import { enableProdMode, Injector } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { Environment } from './environments/environment';\n\nimport { AppInjector } from 'app/classes/app-injector/app-injector';\n\nif (Environment.isProduction()) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .then((appRef: { injector: Injector }) => AppInjector.prepare(appRef.injector))\n .catch(err => console.log(err));\n"],"sourceRoot":"webpack:///"}