{"version":3,"sources":["webpack:///./src/app/views/location/containers/location.page.html","webpack:///./src/app/views/location/containers/location.page.scss","webpack:///./src/app/views/location/containers/location.page.ts","webpack:///./src/app/views/location/location-routing.module.ts","webpack:///./src/app/views/location/location.module.ts","webpack:///./src/app/views/location/store/location.actions.ts","webpack:///./src/app/views/location/store/location.effects.ts","webpack:///./src/app/views/location/store/location.reducer.ts","webpack:///./src/app/views/location/store/location.selectors.ts","webpack:///./src/app/views/location/store/location.state.ts"],"names":[],"mappings":"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","file":"views-location-location-module.js","sourcesContent":["module.exports = \"\\n
\\n
\\n \\n
View 360 Location
\\n
\\n
\\n
\\n

THE DISTRICT

\\n

TANJONG PAGAR

\\n

The gateway to the Greater Southern Waterfront, unplug from work, whenever, wherever. Voted as one of the world’s Top 50 coolest neighbourhoods, it is a bustling commercial, retail and lifestyle district home to a host of Michelin‐starred restaurants, bars and lounges galore. This trendy district promises to be a game‐changer in meshing work and life beyond the 9 to 5.

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n WATCH LOCATION VIDEO\\n
\\n
\\n
\\n
\\n

CONNECTING PEOPLE
AND COMMUNITIES

\\n

Situated at the crossroads of Tanjong Pagar, Chinatown and Everton Park, Keppel South Central is a short walk to Tanjong Pagar and Prince Edward Road MRT stations. It is minutes’ drive to the Central Expressway and Ayer Rajah Expressway. Stay connected to an elaborate transport network that brings the key business districts and neighbourhoods to the doorstep.

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

LOCATION MAP

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

Custom Header (with custom toggle button)\\n

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

Custom Header (with custom toggle button)\\n

\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
Tanjong Pagar Plaza
Market & Food Centre
\\n
Korean Food Street
\\n
Duxton Hill Dining
\\n
Maxwell Food Centre
\\n
\\n
\\n
Amoy Street Food Centre
\\n
Chinatown Food Centre
\\n
Lau Pa Sat
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n

Custom Header (with custom toggle button)\\n

\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
North South Line
\\n
East West Line
\\n
North East Line
\\n
\\n
\\n
Circle Line
\\n
Downtown Line
\\n
Thomson East Coast Line
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n Minutes' walk to Tanjong Pagar MRT and Prince Edward Road MRT
\\n
Minutes' drive to Central Expressway and Ayer Rajah Expressway
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n

Custom Header (with custom toggle button)\\n

\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
    \\n
  • 1 M Hotel
  • \\n
  • 2 Amara
  • \\n
  • 3 Carlton City Hotel
  • \\n
  • 4 Oasia Hotel Downtown
  • \\n
  • 5 Sofitel
  • \\n
  • 6 Orchid Hotel
  • \\n
  • 7 Duxton Reserve Singapore, Autograph Collection
  • \\n
  • 8 The Clan Hotel
  • \\n
\\n
\\n
\\n
\\n \\n \\n
\\n

Custom Header (with custom toggle button)\\n

\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
    \\n
  • 1 100 AM
  • \\n
  • 2 Icon Village
  • \\n
  • 3 OUE Downtown
  • \\n
  • 4 Far East Square
  • \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n

Copyright © 2023 Keppel Land Limited (Co. Reg No 189000001G). All rights reserved.

\\n
\\n
\\n
\\n
\"","module.exports = \"ion-content {\\n --overflow: scroll;\\n background: #ffffff;\\n}\\n\\n.border {\\n position: absolute;\\n}\\n\\n.border .leftborder {\\n position: absolute;\\n}\\n\\n.border .bottomborder {\\n position: absolute;\\n}\\n\\n.locationmap {\\n height: 70vw;\\n}\\n\\n.viewpano {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-top: 18vw;\\n height: 70vw;\\n}\\n\\n.viewpano > img {\\n -o-object-fit: cover;\\n object-fit: cover;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.viewpano div {\\n color: #ffffff;\\n position: absolute;\\n font-family: \\\"Gotham\\\";\\n text-transform: uppercase;\\n font-size: 3.2vw;\\n border: 1px solid #ffffff;\\n padding: 3.2vw 4vw;\\n border-radius: 2vw;\\n font-weight: bold;\\n cursor: pointer;\\n letter-spacing: 1px;\\n}\\n\\n.viewpano div img {\\n width: 1.8vw;\\n}\\n\\n.pr-8 {\\n padding-right: 0rem;\\n}\\n\\n.p-4 {\\n padding: 1rem 0rem;\\n}\\n\\np {\\n font-size: 4vw;\\n line-height: 6vw;\\n}\\n\\n.borderlocation {\\n bottom: 0;\\n top: auto;\\n height: auto;\\n}\\n\\n.mobilehight {\\n height: 120vh;\\n}\\n\\n.mobile-justify-start {\\n justify-content: start;\\n padding-top: 14vw;\\n}\\n\\n@media (min-width: 568px) {\\n .locationmap {\\n height: 28vw;\\n }\\n\\n ion-content .innerblock {\\n padding-bottom: 0vw;\\n }\\n\\n .viewpano {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-top: 3vw;\\n height: auto;\\n }\\n\\n .viewpano > img {\\n -o-object-fit: contain;\\n object-fit: contain;\\n width: 100%;\\n height: 100%;\\n }\\n\\n .viewpano div {\\n color: #ffffff;\\n position: absolute;\\n font-family: \\\"Gotham\\\";\\n text-transform: uppercase;\\n font-size: 0.8vw;\\n border: 1px solid #ffffff;\\n padding: 0.6vw 1.4vw;\\n border-radius: 0.5vw;\\n font-weight: bold;\\n cursor: pointer;\\n }\\n\\n .viewpano div img {\\n width: 0.5vw;\\n }\\n\\n p {\\n font-size: 0.8vw;\\n line-height: 1.4vw;\\n }\\n\\n .mobilehight {\\n height: 100vh;\\n }\\n\\n .borderlocation {\\n height: 100%;\\n }\\n\\n .mobile-justify-start {\\n justify-content: center;\\n padding-top: initial;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9ibGFuY3QvRG9jdW1lbnRzL1Byb2plY3RzL0tlcHBlbCBTb3V0aCBDZW50cmFsL1dlYnNpdGUvc3JjL2FwcC92aWV3cy9sb2NhdGlvbi9jb250YWluZXJzL2xvY2F0aW9uLnBhZ2Uuc2NzcyIsInNyYy9hcHAvdmlld3MvbG9jYXRpb24vY29udGFpbmVycy9sb2NhdGlvbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBQTtFQUNBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxrQkFBQTtBQ0NGOztBREVBO0VBQ0Usa0JBQUE7QUNDRjs7QURFQTtFQUNFLGtCQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0FDQ0Y7O0FERUE7RUFDRSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREVBO0VBQ0Usb0JBQUE7S0FBQSxpQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FDQ0Y7O0FERUE7RUFDRSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtFQUNBLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtBQ0NGOztBREVBO0VBQ0UsbUJBQUE7QUNDRjs7QURFQTtFQUNFLGtCQUFBO0FDQ0Y7O0FERUE7RUFDRSxjQUFBO0VBQ0EsZ0JBQUE7QUNDRjs7QURFQTtFQUNFLFNBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREVBO0VBQ0UsYUFBQTtBQ0NGOztBREVBO0VBQ0Usc0JBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBRUU7SUFDRSxZQUFBO0VDQUY7O0VER0E7SUFDRSxtQkFBQTtFQ0FGOztFREdBO0lBQ0UsYUFBQTtJQUNBLHVCQUFBO0lBQ0EsbUJBQUE7SUFDQSxlQUFBO0lBQ0EsWUFBQTtFQ0FGOztFREdBO0lBQ0Usc0JBQUE7T0FBQSxtQkFBQTtJQUNBLFdBQUE7SUFDQSxZQUFBO0VDQUY7O0VER0E7SUFDRSxjQUFBO0lBQ0Esa0JBQUE7SUFDQSxxQkFBQTtJQUNBLHlCQUFBO0lBQ0EsZ0JBQUE7SUFDQSx5QkFBQTtJQUNBLG9CQUFBO0lBQ0Esb0JBQUE7SUFDQSxpQkFBQTtJQUNBLGVBQUE7RUNBRjs7RURHQTtJQUNFLFlBQUE7RUNBRjs7RURHQTtJQUNFLGdCQUFBO0lBQ0Esa0JBQUE7RUNBRjs7RURHQTtJQUNFLGFBQUE7RUNBRjs7RURHQTtJQUNFLFlBQUE7RUNBRjs7RURHQTtJQUNFLHVCQUFBO0lBQ0Esb0JBQUE7RUNBRjtBQUNGIiwiZmlsZSI6InNyYy9hcHAvdmlld3MvbG9jYXRpb24vY29udGFpbmVycy9sb2NhdGlvbi5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpb24tY29udGVudCB7XHJcbiAgLS1vdmVyZmxvdzogc2Nyb2xsO1xyXG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5ib3JkZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG5cclxuLmJvcmRlciAubGVmdGJvcmRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG4uYm9yZGVyIC5ib3R0b21ib3JkZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG5cclxuLmxvY2F0aW9ubWFwIHtcclxuICBoZWlnaHQ6IDcwdnc7XHJcbn1cclxuXHJcbi52aWV3cGFubyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi10b3A6IDE4dnc7XHJcbiAgaGVpZ2h0OiA3MHZ3O1xyXG59XHJcblxyXG4udmlld3Bhbm8gPiBpbWcge1xyXG4gIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLnZpZXdwYW5vIGRpdiB7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGZvbnQtZmFtaWx5OiBcIkdvdGhhbVwiO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgZm9udC1zaXplOiAzLjJ2dztcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmO1xyXG4gIHBhZGRpbmc6IDMuMnZ3IDR2dztcclxuICBib3JkZXItcmFkaXVzOiAydnc7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbn1cclxuXHJcbi52aWV3cGFubyBkaXYgaW1nIHtcclxuICB3aWR0aDogMS44dnc7XHJcbn1cclxuXHJcbi5wci04IHtcclxuICBwYWRkaW5nLXJpZ2h0OiAwcmVtO1xyXG59XHJcblxyXG4ucC00IHtcclxuICBwYWRkaW5nOiAxcmVtIDByZW07XHJcbn1cclxuXHJcbnAge1xyXG4gIGZvbnQtc2l6ZTogNHZ3O1xyXG4gIGxpbmUtaGVpZ2h0OiA2dnc7XHJcbn1cclxuXHJcbi5ib3JkZXJsb2NhdGlvbiB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHRvcDogYXV0bztcclxuICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi5tb2JpbGVoaWdodCB7XHJcbiAgaGVpZ2h0OiAxMjB2aFxyXG59XHJcblxyXG4ubW9iaWxlLWp1c3RpZnktc3RhcnQge1xyXG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7XHJcbiAgcGFkZGluZy10b3A6IDE0dnc7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA1NjhweCkge1xyXG5cclxuICAubG9jYXRpb25tYXAge1xyXG4gICAgaGVpZ2h0OiAyOHZ3O1xyXG4gIH1cclxuXHJcbiAgaW9uLWNvbnRlbnQgLmlubmVyYmxvY2sge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDB2dztcclxuICB9XHJcblxyXG4gIC52aWV3cGFubyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgbWFyZ2luLXRvcDogM3Z3O1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLnZpZXdwYW5vID4gaW1nIHtcclxuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcbiAgXHJcbiAgLnZpZXdwYW5vIGRpdiB7XHJcbiAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkdvdGhhbVwiO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGZvbnQtc2l6ZTogMC44dnc7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmO1xyXG4gICAgcGFkZGluZzogMC42dncgMS40dnc7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwLjV2dztcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuICBcclxuICAudmlld3Bhbm8gZGl2IGltZyB7XHJcbiAgICB3aWR0aDogMC41dnc7XHJcbiAgfVxyXG5cclxuICBwIHtcclxuICAgIGZvbnQtc2l6ZTogMC44dnc7XHJcbiAgICBsaW5lLWhlaWdodDogMS40dnc7XHJcbiAgfVxyXG5cclxuICAubW9iaWxlaGlnaHQge1xyXG4gICAgaGVpZ2h0OiAxMDB2aFxyXG4gIH1cclxuXHJcbiAgLmJvcmRlcmxvY2F0aW9uIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5tb2JpbGUtanVzdGlmeS1zdGFydCB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBhZGRpbmctdG9wOiBpbml0aWFsO1xyXG4gIH1cclxufSIsImlvbi1jb250ZW50IHtcbiAgLS1vdmVyZmxvdzogc2Nyb2xsO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4uYm9yZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uYm9yZGVyIC5sZWZ0Ym9yZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uYm9yZGVyIC5ib3R0b21ib3JkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5sb2NhdGlvbm1hcCB7XG4gIGhlaWdodDogNzB2dztcbn1cblxuLnZpZXdwYW5vIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDE4dnc7XG4gIGhlaWdodDogNzB2dztcbn1cblxuLnZpZXdwYW5vID4gaW1nIHtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52aWV3cGFubyBkaXYge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LWZhbWlseTogXCJHb3RoYW1cIjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAzLjJ2dztcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZmZmZjtcbiAgcGFkZGluZzogMy4ydncgNHZ3O1xuICBib3JkZXItcmFkaXVzOiAydnc7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG59XG5cbi52aWV3cGFubyBkaXYgaW1nIHtcbiAgd2lkdGg6IDEuOHZ3O1xufVxuXG4ucHItOCB7XG4gIHBhZGRpbmctcmlnaHQ6IDByZW07XG59XG5cbi5wLTQge1xuICBwYWRkaW5nOiAxcmVtIDByZW07XG59XG5cbnAge1xuICBmb250LXNpemU6IDR2dztcbiAgbGluZS1oZWlnaHQ6IDZ2dztcbn1cblxuLmJvcmRlcmxvY2F0aW9uIHtcbiAgYm90dG9tOiAwO1xuICB0b3A6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbn1cblxuLm1vYmlsZWhpZ2h0IHtcbiAgaGVpZ2h0OiAxMjB2aDtcbn1cblxuLm1vYmlsZS1qdXN0aWZ5LXN0YXJ0IHtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgcGFkZGluZy10b3A6IDE0dnc7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NjhweCkge1xuICAubG9jYXRpb25tYXAge1xuICAgIGhlaWdodDogMjh2dztcbiAgfVxuXG4gIGlvbi1jb250ZW50IC5pbm5lcmJsb2NrIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHZ3O1xuICB9XG5cbiAgLnZpZXdwYW5vIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogM3Z3O1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC52aWV3cGFubyA+IGltZyB7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAudmlld3Bhbm8gZGl2IHtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZm9udC1mYW1pbHk6IFwiR290aGFtXCI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDAuOHZ3O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7XG4gICAgcGFkZGluZzogMC42dncgMS40dnc7XG4gICAgYm9yZGVyLXJhZGl1czogMC41dnc7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLnZpZXdwYW5vIGRpdiBpbWcge1xuICAgIHdpZHRoOiAwLjV2dztcbiAgfVxuXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMC44dnc7XG4gICAgbGluZS1oZWlnaHQ6IDEuNHZ3O1xuICB9XG5cbiAgLm1vYmlsZWhpZ2h0IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICB9XG5cbiAgLmJvcmRlcmxvY2F0aW9uIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAubW9iaWxlLWp1c3RpZnktc3RhcnQge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiBpbml0aWFsO1xuICB9XG59Il19 */\"","import { Component, ElementRef, HostBinding, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { IonSlides, ModalController } from '@ionic/angular';\nimport { Observable } from 'rxjs';\nimport { Store, select } from '@ngrx/store';\nimport * as fromDesign from '../store/location.actions';\nimport { AppState } from 'src/app/reducers';\nimport { map, concatMap } from 'rxjs/operators';\n\nimport { selectLocation } from '../store/location.selectors';\nimport { ModalComponent } from 'src/app/shared/components/modal/modal.component';\nimport { animate, query, stagger, style, transition, trigger } from '@angular/animations';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\n@Component({\n selector: 'app-pg-location',\n templateUrl: './location.page.html',\n styleUrls: ['./location.page.scss'],\n /* animations: [\n trigger('pageAnimations', [\n transition(':enter', [\n query('.heading *', [\n style({opacity: 0, transform: 'translateY(100px)'}),\n stagger(100, [\n animate('800ms cubic-bezier(0.35, 0, 0.25, 1)', style({ opacity: 1, transform: 'none' }))\n ])\n ])\n ]),\n transition(':leave', [\n query('.heading *', [\n style({opacity: 0, transform: 'translateY(-100px)'}),\n stagger(-100, [\n animate('800ms cubic-bezier(0.35, 0, 0.25, 1)', style({ opacity: 1, transform: 'none' }))\n ])\n ])\n ]),\n ]),\n ] */\n})\n\nexport class LocationPage implements OnInit {\n\n @ViewChild('frameWindow', {static: false}) frameWindow: ElementRef;\n @ViewChild('terms', {static: false, read: ElementRef}) terms: ElementRef;\n @ViewChild('privacy', {static: false, read: ElementRef}) privacy: ElementRef;\n @ViewChild('disclaimer', {static: false, read: ElementRef}) disclaimer: ElementRef;\n\n constructor(\n private store: Store,\n private renderer: Renderer2,\n public modalController: ModalController,\n public http: HttpClient)\n {}\n\n ngAfterViewInit() {\n this.renderer.listen(this.terms.nativeElement, 'click', (event) => {\n window.open(\"https://www.keppelland.com/sg/Terms-and-Conditions\", \"_blank\");\n });\n this.renderer.listen(this.privacy.nativeElement, 'click', (event) => {\n window.open(\"https://www.keppelland.com/sg/Privacy-Policy\", \"_blank\");\n });\n this.renderer.listen(this.disclaimer.nativeElement, 'click', (event) => {\n this.presentModal('', 'disclaimer');\n });\n }\n\n ngOnInit() {\n }\n\n updateMap(e) {\n if(e.target.tagName == 'P'){\n this.frameWindow.nativeElement.contentWindow.postMessage({\n 'layer': e.target.textContent,\n }, \"*\");\n } else {\n this.frameWindow.nativeElement.contentWindow.postMessage({\n 'layer': e.target.querySelector('p').textContent,\n }, \"*\");\n }\n\t}\n\n openVideo(url) {\n this.presentModal(url, 'video');\n\t}\n\n openFrame(url) {\n this.presentModal(url, 'aerial');\n\t}\n\n async presentModal(src, mediatype) {\n const modal = await this.modalController.create({\n component: ModalComponent,\n cssClass: 'modal-fullscreen-'+mediatype,\n componentProps: {\n 'details': src,\n 'mediatype': mediatype,\n }\n });\n return await modal.present();\n }\n}","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LocationPage } from './containers/location.page';\n\nconst routes: Routes = [\n { path: '', component: LocationPage }\n];\n\n@NgModule({\n imports: [\n RouterModule.forChild(routes)\n ],\n exports: [RouterModule]\n})\nexport class LocationRoutingModule {}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { StoreModule } from '@ngrx/store';\nimport { LocationRoutingModule } from './location-routing.module';\nimport { IonicModule } from '@ionic/angular';\n\nimport { LocationPage } from './containers/location.page';\nimport { SharedModule } from '../../shared/shared.module';\nimport * as fromLocation from './store/location.reducer';\nimport { EffectsModule } from '@ngrx/effects';\nimport { LocationEffects } from './store/location.effects';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n LocationRoutingModule,\n IonicModule,\n SharedModule,\n StoreModule.forFeature('location', fromLocation.locationReducer),\n EffectsModule.forFeature([LocationEffects])\n ],\n declarations: [LocationPage],\n exports: [LocationPage],\n})\nexport class LocationPageModule {}","import { Action } from '@ngrx/store';\n\nexport enum LocationActionTypes {\n LocationContentRequested = '[Location] Content Requested',\n LocationContentLoaded = '[Location] Content Loaded',\n LocationFetchError = '[Location] Fetch Error'\n}\n\nexport class LocationContentsRequestedAction implements Action {\n readonly type = LocationActionTypes.LocationContentRequested;\n}\n\nexport class LocationContentsLoadedAction implements Action {\n readonly type = LocationActionTypes.LocationContentLoaded;\n constructor(public payload: { data }) {}\n}\n\nexport class LocationFetchErrorAction implements Action {\n readonly type = LocationActionTypes.LocationFetchError;\n constructor(public payload: { error: any }) {}\n}\n\nexport type LocationActions =\n | LocationContentsRequestedAction\n | LocationContentsLoadedAction\n | LocationFetchErrorAction;","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { DataService } from '../../../shared/services/data.service';\nimport { LocationActionTypes, LocationContentsRequestedAction, LocationContentsLoadedAction, } from './location.actions';\nimport { filter, map, mergeMap, withLatestFrom} from \"rxjs/operators\";\nimport { Store, select } from '@ngrx/store';\nimport { AppState } from '../../../reducers/index';\nimport { locationContentsLoaded } from './location.selectors';\n\n\n@Injectable()\nexport class LocationEffects {\n\n constructor(private actions$: Actions, private locationService: DataService, private store: Store) {}\n\n @Effect()\n selectCoreContents$ = this.actions$\n .pipe(\n ofType(LocationActionTypes.LocationContentRequested),\n withLatestFrom(this.store.pipe(select(locationContentsLoaded))),\n filter(([action, locationContentsLoaded]) => !locationContentsLoaded),\n mergeMap(() => this.locationService.getData('location')),\n map(location => new LocationContentsLoadedAction(location))\n );\n}","import { locationInitialState, LocationState } from './location.state';\nimport { LocationActions, LocationActionTypes } from './location.actions';\n\nexport function locationReducer(state = locationInitialState, action: LocationActions): LocationState {\n switch (action.type) {\n\n case LocationActionTypes.LocationContentRequested:\n return {...state, isLoading:true};\n\n case LocationActionTypes.LocationContentLoaded:\n return {...state, data: action.payload, isLoading:false, locationContentsLoaded:true};\n\n case LocationActionTypes.LocationFetchError:\n return {...state, isLoading:false};\n\n default:{\n return state;\n }\n }\n}","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport { LocationState } from './location.state';\n\nexport const selectLocationState = createFeatureSelector('location');\n\nexport const selectLocation = createSelector(\n selectLocationState,\n LocationState => LocationState.data\n);\n\nexport const locationContentsLoaded = createSelector(\n selectLocationState,\n LocationState => LocationState.locationContentsLoaded\n);\n\nexport const getIsLoading = createSelector(\n selectLocationState,\n LocationState => LocationState.isLoading\n);\n\nexport const getError = createSelector(\n selectLocationState,\n LocationState => LocationState.error\n);","export interface LocationState {\n data: any | null;\n isLoading: boolean;\n locationContentsLoaded:boolean;\n error: any;\n}\n\nexport const locationInitialState: LocationState = {\n data: null,\n isLoading: true,\n locationContentsLoaded: false,\n error: null,\n};"],"sourceRoot":""}