{"version":3,"sources":["webpack:///./src/app/views/specifications/containers/specifications.page.html","webpack:///./src/app/views/specifications/containers/specifications.page.scss","webpack:///./src/app/views/specifications/containers/specifications.page.ts","webpack:///./src/app/views/specifications/specifications-routing.module.ts","webpack:///./src/app/views/specifications/specifications.module.ts","webpack:///./src/app/views/specifications/store/specifications.actions.ts","webpack:///./src/app/views/specifications/store/specifications.effects.ts","webpack:///./src/app/views/specifications/store/specifications.reducer.ts","webpack:///./src/app/views/specifications/store/specifications.selectors.ts","webpack:///./src/app/views/specifications/store/specifications.state.ts"],"names":[],"mappings":";;;;;;;;;AAAA,ixB;;;;;;;;;;;ACAA,+BAA+B,uBAAuB,wBAAwB,GAAG,sBAAsB,aAAa,cAAc,uBAAuB,iBAAiB,qBAAqB,GAAG,0BAA0B,sBAAsB,GAAG,4BAA4B,sBAAsB,GAAG,oBAAoB,uBAAuB,eAAe,cAAc,mBAAmB,eAAe,qBAAqB,8BAA8B,0BAA0B,GAAG,qCAAqC,wBAAwB,qBAAqB,0BAA0B,GAAG,4BAA4B,sBAAsB,qBAAqB,GAAG,+BAA+B,gBAAgB,qBAAqB,8BAA8B,wBAAwB,0BAA0B,uBAAuB,GAAG,8BAA8B,oBAAoB,sBAAsB,GAAG,gCAAgC,uBAAuB,iBAAiB,iBAAiB,eAAe,GAAG,oBAAoB,iBAAiB,GAAG,kBAAkB,iBAAiB,GAAG,iBAAiB,qBAAqB,GAAG,+BAA+B,iBAAiB,sBAAsB,KAAK,GAAG,6CAA6C,umJ;;;;;;;;;;;;;;;;;;;;;ACAlpC;AACrC;AAEhB;AAMqC;AAElB;AA4B/D;IAME,4BAAoB,KAAsB,EAAU,QAAmB,EAAS,eAAgC,EAAS,IAAgB;QAArH,UAAK,GAAL,KAAK,CAAiB;QAAU,aAAQ,GAAR,QAAQ,CAAW;QAAS,oBAAe,GAAf,eAAe,CAAiB;QAAS,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAE7I,4CAAe,GAAf;QAAA,iBAUC;QATC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,UAAC,KAAK;YAC5D,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE,QAAQ,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,UAAC,KAAK;YAC9D,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,QAAQ,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,UAAC,KAAK;YACjE,KAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qCAAQ,GAAR;IAEA,CAAC;IAEK,yCAAY,GAAlB,UAAmB,SAAS;;;;;4BACZ,qBAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;4BAC9C,SAAS,EAAE,8FAAc;4BACzB,QAAQ,EAAE,mBAAmB,GAAC,SAAS;4BACvC,cAAc,EAAE;gCACd,WAAW,EAAE,SAAS;6BACvB;yBACF,CAAC;;wBANI,KAAK,GAAG,SAMZ;wBACK,qBAAM,KAAK,CAAC,OAAO,EAAE;4BAA5B,sBAAO,SAAqB,EAAC;;;;KAC9B;;gBA3B0B,iDAAK;gBAA8B,uDAAS;gBAA0B,8DAAe;gBAAe,+DAAU;;IAJlF;QAAtD,+DAAS,CAAC,OAAO,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wDAAU,EAAC,CAAC;wEAAQ,wDAAU;qDAAC;IAChB;QAAxD,+DAAS,CAAC,SAAS,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wDAAU,EAAC,CAAC;wEAAU,wDAAU;uDAAC;IACjB;QAA3D,+DAAS,CAAC,YAAY,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wDAAU,EAAC,CAAC;wEAAa,wDAAU;0DAAC;IAJxE,kBAAkB;QA1B9B,+DAAS,CAAC;YACT,QAAQ,EAAE,uBAAuB;YACjC,mLAAyC;;SAsB1C,CAAC;+EAQ2B,iDAAK,EAA8B,uDAAS,EAA0B,8DAAe,EAAe,+DAAU;OAN9H,kBAAkB,CAkC9B;IAAD,yBAAC;CAAA;AAlC8B;;;;;;;;;;;;;;;;;;;;ACvCU;AACc;AACe;AAEtE,IAAM,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,kFAAkB,EAAE;CAC5C,CAAC;AAQF;IAAA;IAA0C,CAAC;IAA9B,2BAA2B;QANvC,8DAAQ,CAAC;YACR,OAAO,EAAE;gBACP,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;aAC9B;YACD,OAAO,EAAE,CAAC,4DAAY,CAAC;SACxB,CAAC;OACW,2BAA2B,CAAG;IAAD,kCAAC;CAAA;AAAH;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdC;AACM;AACF;AACH;AACoC;AACjC;AAEyB;AACZ;AACW;AACvB;AACyB;AAevE;IAAA;IAAuC,CAAC;IAA3B,wBAAwB;QAbpC,8DAAQ,CAAC;YACR,OAAO,EAAE;gBACP,4DAAY;gBACZ,0DAAW;gBACX,0FAA2B;gBAC3B,0DAAW;gBACX,kEAAY;gBACZ,uDAAW,CAAC,UAAU,CAAC,gBAAgB,EAAE,mFAAwC,CAAC;gBAClF,4DAAa,CAAC,UAAU,CAAC,CAAC,oFAAqB,CAAC,CAAC;aAClD;YACD,YAAY,EAAE,CAAC,kFAAkB,CAAC;YAClC,OAAO,EAAE,CAAC,kFAAkB,CAAC;SAC9B,CAAC;OACW,wBAAwB,CAAG;IAAD,+BAAC;CAAA;AAAH;;;;;;;;;;;;;ACxBrC;AAAA;AAAA;AAAA;AAAA;AAAA,IAAY,yBAIX;AAJD,WAAY,yBAAyB;IACnC,kGAAqE;IACrE,4FAA+D;IAC/D,sFAAyD;AAC3D,CAAC,EAJW,yBAAyB,KAAzB,yBAAyB,QAIpC;AAED;IAAA;QACW,SAAI,GAAG,yBAAyB,CAAC,8BAA8B,CAAC;IAC3E,CAAC;IAAD,4CAAC;AAAD,CAAC;;AAED;IAEE,4CAAmB,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;QAD3B,SAAI,GAAG,yBAAyB,CAAC,2BAA2B,CAAC;IAC/B,CAAC;;;;IAC1C,yCAAC;CAAA;AAH8C;AAK/C;IAEE,wCAAmB,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;QADjC,SAAI,GAAG,yBAAyB,CAAC,wBAAwB,CAAC;IACtB,CAAC;;;;IAChD,qCAAC;CAAA;AAH0C;;;;;;;;;;;;;;;;;;;;;;;;ACjBA;AACa;AACY;AAC8E;AAC5E;AAC1B;AAE8B;AAI1E;IAEE,+BAAoB,QAAiB,EAAU,qBAAkC,EAAU,KAAsB;QAAjH,iBAAqH;QAAjG,aAAQ,GAAR,QAAQ,CAAS;QAAU,0BAAqB,GAArB,qBAAqB,CAAa;QAAU,UAAK,GAAL,KAAK,CAAiB;QAGjH,wBAAmB,GAAG,IAAI,CAAC,QAAQ;aAChC,IAAI,CACH,4DAAM,CAAwC,iFAAyB,CAAC,8BAA8B,CAAC,EACvG,qEAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,0DAAM,CAAC,sFAA4B,CAAC,CAAC,CAAC,EACrE,6DAAM,CAAC,UAAC,EAAsC;gBAArC,cAAM,EAAE,oCAA4B;YAAM,QAAC,4BAA4B;QAA7B,CAA6B,CAAC,EACjF,+DAAQ,CAAC,cAAM,YAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAApD,CAAoD,CAAC,EACpE,0DAAG,CAAC,wBAAc,IAAI,WAAI,0FAAkC,CAAC,cAAc,CAAC,EAAtD,CAAsD,CAAC,CAChF,CAAC;IAVkH,CAAC;;gBAAvF,qDAAO;gBAAiC,yEAAW;gBAAiB,iDAAK;;IAGvG;QADC,4DAAM,EAAE;;sEAQP;IAZS,qBAAqB;QADjC,gEAAU,EAAE;+EAGmB,qDAAO,EAAiC,yEAAW,EAAiB,iDAAK;OAF5F,qBAAqB,CAajC;IAAD,4BAAC;CAAA;AAbiC;;;;;;;;;;;;;;;;;;;ACXuD;AACG;AAErF,SAAS,qBAAqB,CAAC,KAAkC,EAAE,MAA6B;IAAjE,gCAAQ,gFAA0B;IACtE,QAAQ,MAAM,CAAC,IAAI,EAAE;QAEnB,KAAK,iFAAyB,CAAC,8BAA8B;YAC3D,OAAO,mDAAI,KAAK,IAAE,SAAS,EAAC,IAAI,IAAE;QAEpC,KAAK,iFAAyB,CAAC,2BAA2B;YACxD,OAAO,mDAAI,KAAK,IAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAC,KAAK,EAAE,4BAA4B,EAAC,IAAI,IAAE;QAE9F,KAAK,iFAAyB,CAAC,wBAAwB;YACrD,OAAO,mDAAI,KAAK,IAAE,SAAS,EAAC,KAAK,IAAE;QAErC,OAAO,CAAC;YACN,OAAO,KAAK,CAAC;SACd;KACF;AACH,CAAC;;;;;;;;;;;;;ACnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoE;AAG7D,IAAM,yBAAyB,GAAG,yEAAqB,CAAsB,gBAAgB,CAAC,CAAC;AAE/F,IAAM,oBAAoB,GAAG,kEAAc,CAChD,yBAAyB,EACzB,6BAAmB,IAAI,0BAAmB,CAAC,IAAI,EAAxB,CAAwB,CAChD,CAAC;AAEK,IAAM,4BAA4B,GAAG,kEAAc,CACxD,yBAAyB,EACzB,6BAAmB,IAAI,0BAAmB,CAAC,4BAA4B,EAAhD,CAAgD,CACxE,CAAC;AAEK,IAAM,YAAY,GAAG,kEAAc,CACxC,yBAAyB,EACzB,6BAAmB,IAAI,0BAAmB,CAAC,SAAS,EAA7B,CAA6B,CACrD,CAAC;AAEK,IAAM,QAAQ,GAAG,kEAAc,CACpC,yBAAyB,EACzB,6BAAmB,IAAI,0BAAmB,CAAC,KAAK,EAAzB,CAAyB,CACjD,CAAC;;;;;;;;;;;;;AChBF;AAAA;AAAO,IAAM,0BAA0B,GAAwB;IAC3D,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,IAAI;IACf,4BAA4B,EAAE,KAAK;IACnC,KAAK,EAAE,IAAI;CACd,CAAC","file":"views-specifications-specifications-module.js","sourcesContent":["module.exports = \"\\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: hidden;\\n background: #ffffff;\\n}\\n\\n.content_details {\\n top: 14%;\\n left: 13%;\\n position: absolute;\\n width: 400px;\\n text-align: left;\\n}\\n\\n.content_details > p {\\n line-height: 28px;\\n}\\n\\n.content_details > img {\\n padding-top: 10px;\\n}\\n\\nion-slide span {\\n position: absolute;\\n bottom: 4%;\\n right: 6%;\\n color: #ffffff;\\n z-index: 1;\\n font-size: 0.8em;\\n text-transform: uppercase;\\n letter-spacing: 0.3em;\\n}\\n\\n.swiper-container .swiper-slide {\\n background: #e4e4e4;\\n overflow: hidden;\\n align-items: baseline;\\n}\\n\\n.slider_container_text {\\n padding: 18vh 7vw;\\n text-align: left;\\n}\\n\\n.slider_container_text h3 {\\n width: 100%;\\n font-size: 1.5em;\\n text-transform: uppercase;\\n font-weight: normal;\\n letter-spacing: 0.1em;\\n line-height: 1.3em;\\n}\\n\\n.slider_container_text p {\\n font-size: 14px;\\n line-height: 24px;\\n}\\n\\n.slider_container_text img {\\n position: relative;\\n width: 150px;\\n height: auto;\\n left: 76px;\\n}\\n\\n.specification {\\n height: 34vw;\\n}\\n\\n.locationmap {\\n height: 25vw;\\n}\\n\\n.innerblock {\\n margin-top: 26vw;\\n}\\n\\n@media (min-width: 568px) {\\n .innerblock {\\n margin-top: 8vw;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9ibGFuY3QvRG9jdW1lbnRzL1Byb2plY3RzL0tlcHBlbCBTb3V0aCBDZW50cmFsL1dlYnNpdGUvc3JjL2FwcC92aWV3cy9zcGVjaWZpY2F0aW9ucy9jb250YWluZXJzL3NwZWNpZmljYXRpb25zLnBhZ2Uuc2NzcyIsInNyYy9hcHAvdmlld3Mvc3BlY2lmaWNhdGlvbnMvY29udGFpbmVycy9zcGVjaWZpY2F0aW9ucy5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBQTtFQUNBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsaUJBQUE7QUNDRjs7QURFQTtFQUNJLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTtBQ0NKOztBREVBO0VBQ0UsbUJBQUE7RUFDQSxnQkFBQTtFQUVBLHFCQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtFQUNBLGdCQUFBO0FDQ0Y7O0FEQ0U7RUFDSSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSx5QkFBQTtFQUNBLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQ0NOOztBREVFO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0FDQUo7O0FER0U7RUFDRSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtBQ0RKOztBREtBO0VBQ0UsWUFBQTtBQ0ZGOztBREtBO0VBQ0UsWUFBQTtBQ0ZGOztBREtBO0VBQ0UsZ0JBQUE7QUNGRjs7QURLQTtFQUNFO0lBQ0UsZUFBQTtFQ0ZGO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC92aWV3cy9zcGVjaWZpY2F0aW9ucy9jb250YWluZXJzL3NwZWNpZmljYXRpb25zLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImlvbi1jb250ZW50IHtcclxuICAtLW92ZXJmbG93OiBoaWRkZW47XHJcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcclxufVxyXG5cclxuLmNvbnRlbnRfZGV0YWlscyB7XHJcbiAgdG9wOiAxNCU7XHJcbiAgbGVmdDogMTMlO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDo0MDBweDtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG4uY29udGVudF9kZXRhaWxzID4gcCB7XHJcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XHJcbn1cclxuXHJcbi5jb250ZW50X2RldGFpbHMgPiBpbWcge1xyXG4gIHBhZGRpbmctdG9wOiAxMHB4O1xyXG59XHJcblxyXG5pb24tc2xpZGUgc3BhbiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDQlO1xyXG4gICAgcmlnaHQ6IDYlO1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgZm9udC1zaXplOiAuOGVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAuM2VtO1xyXG59XHJcblxyXG4uc3dpcGVyLWNvbnRhaW5lciAuc3dpcGVyLXNsaWRlIHtcclxuICBiYWNrZ3JvdW5kOiAjZTRlNGU0O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lO1xyXG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxufVxyXG5cclxuLnNsaWRlcl9jb250YWluZXJfdGV4dCB7XHJcbiAgcGFkZGluZzogMTh2aCA3dnc7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgaDMge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgZm9udC1zaXplOiAxLjVlbTtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjNlbTtcclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgfVxyXG5cclxuICBpbWcge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDE1MHB4O1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgbGVmdDogNzZweDtcclxuICB9XHJcbn1cclxuXHJcbi5zcGVjaWZpY2F0aW9uIHtcclxuICBoZWlnaHQ6IDM0dnc7XHJcbn1cclxuXHJcbi5sb2NhdGlvbm1hcCB7XHJcbiAgaGVpZ2h0OiAyNXZ3O1xyXG59XHJcblxyXG4uaW5uZXJibG9jayB7XHJcbiAgbWFyZ2luLXRvcDogMjZ2dztcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDU2OHB4KSB7XHJcbiAgLmlubmVyYmxvY2sge1xyXG4gICAgbWFyZ2luLXRvcDogOHZ3O1xyXG4gIH1cclxufSIsImlvbi1jb250ZW50IHtcbiAgLS1vdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4uY29udGVudF9kZXRhaWxzIHtcbiAgdG9wOiAxNCU7XG4gIGxlZnQ6IDEzJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNDAwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jb250ZW50X2RldGFpbHMgPiBwIHtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG5cbi5jb250ZW50X2RldGFpbHMgPiBpbWcge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbn1cblxuaW9uLXNsaWRlIHNwYW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNCU7XG4gIHJpZ2h0OiA2JTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHotaW5kZXg6IDE7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjNlbTtcbn1cblxuLnN3aXBlci1jb250YWluZXIgLnN3aXBlci1zbGlkZSB7XG4gIGJhY2tncm91bmQ6ICNlNGU0ZTQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZTtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xufVxuXG4uc2xpZGVyX2NvbnRhaW5lcl90ZXh0IHtcbiAgcGFkZGluZzogMTh2aCA3dnc7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uc2xpZGVyX2NvbnRhaW5lcl90ZXh0IGgzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuM2VtO1xufVxuLnNsaWRlcl9jb250YWluZXJfdGV4dCBwIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cbi5zbGlkZXJfY29udGFpbmVyX3RleHQgaW1nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTUwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgbGVmdDogNzZweDtcbn1cblxuLnNwZWNpZmljYXRpb24ge1xuICBoZWlnaHQ6IDM0dnc7XG59XG5cbi5sb2NhdGlvbm1hcCB7XG4gIGhlaWdodDogMjV2dztcbn1cblxuLmlubmVyYmxvY2sge1xuICBtYXJnaW4tdG9wOiAyNnZ3O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTY4cHgpIHtcbiAgLmlubmVyYmxvY2sge1xuICAgIG1hcmdpbi10b3A6IDh2dztcbiAgfVxufSJdfQ== */\"","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/specifications.actions';\nimport { AppState } from 'src/app/reducers';\nimport { map, concatMap } from 'rxjs/operators';\n\nimport { selectSpecifications } from '../store/specifications.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-specifications',\n templateUrl: './specifications.page.html',\n styleUrls: ['./specifications.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 SpecificationsPage implements OnInit {\n\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(private store: Store, private renderer: Renderer2, public modalController: ModalController, public http: HttpClient) {}\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\n async presentModal(mediatype) {\n const modal = await this.modalController.create({\n component: ModalComponent,\n cssClass: 'modal-fullscreen-'+mediatype,\n componentProps: {\n 'mediatype': mediatype,\n }\n });\n return await modal.present();\n }\n}","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { SpecificationsPage } from './containers/specifications.page';\n\nconst routes: Routes = [\n { path: '', component: SpecificationsPage }\n];\n\n@NgModule({\n imports: [\n RouterModule.forChild(routes)\n ],\n exports: [RouterModule]\n})\nexport class SpecificationsRoutingModule {}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { StoreModule } from '@ngrx/store';\nimport { SpecificationsRoutingModule } from './specifications-routing.module';\nimport { IonicModule } from '@ionic/angular';\n\nimport { SpecificationsPage } from './containers/specifications.page';\nimport { SharedModule } from '../../shared/shared.module';\nimport * as fromSpecifications from './store/specifications.reducer';\nimport { EffectsModule } from '@ngrx/effects';\nimport { SpecificationsEffects } from './store/specifications.effects';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SpecificationsRoutingModule,\n IonicModule,\n SharedModule,\n StoreModule.forFeature('specifications', fromSpecifications.specificationsReducer),\n EffectsModule.forFeature([SpecificationsEffects])\n ],\n declarations: [SpecificationsPage],\n exports: [SpecificationsPage],\n})\nexport class SpecificationsPageModule {}","import { Action } from '@ngrx/store';\n\nexport enum SpecificationsActionTypes {\n SpecificationsContentRequested = '[Specifications] Content Requested',\n SpecificationsContentLoaded = '[Specifications] Content Loaded',\n SpecificationsFetchError = '[Specifications] Fetch Error'\n}\n\nexport class SpecificationsContentsRequestedAction implements Action {\n readonly type = SpecificationsActionTypes.SpecificationsContentRequested;\n}\n\nexport class SpecificationsContentsLoadedAction implements Action {\n readonly type = SpecificationsActionTypes.SpecificationsContentLoaded;\n constructor(public payload: { data }) {}\n}\n\nexport class SpecificationsFetchErrorAction implements Action {\n readonly type = SpecificationsActionTypes.SpecificationsFetchError;\n constructor(public payload: { error: any }) {}\n}\n\nexport type SpecificationsActions =\n | SpecificationsContentsRequestedAction\n | SpecificationsContentsLoadedAction\n | SpecificationsFetchErrorAction;","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { DataService } from '../../../shared/services/data.service';\nimport { SpecificationsActionTypes, SpecificationsContentsRequestedAction, SpecificationsContentsLoadedAction, } from './specifications.actions';\nimport { filter, map, mergeMap, withLatestFrom} from \"rxjs/operators\";\nimport { Store, select } from '@ngrx/store';\nimport { AppState } from '../../../reducers/index';\nimport { specificationsContentsLoaded } from './specifications.selectors';\n\n\n@Injectable()\nexport class SpecificationsEffects {\n\n constructor(private actions$: Actions, private specificationsService: DataService, private store: Store) {}\n\n @Effect()\n selectCoreContents$ = this.actions$\n .pipe(\n ofType(SpecificationsActionTypes.SpecificationsContentRequested),\n withLatestFrom(this.store.pipe(select(specificationsContentsLoaded))),\n filter(([action, specificationsContentsLoaded]) => !specificationsContentsLoaded),\n mergeMap(() => this.specificationsService.getData('specifications')),\n map(specifications => new SpecificationsContentsLoadedAction(specifications))\n );\n}","import { specificationsInitialState, SpecificationsState } from './specifications.state';\nimport { SpecificationsActions, SpecificationsActionTypes } from './specifications.actions';\n\nexport function specificationsReducer(state = specificationsInitialState, action: SpecificationsActions): SpecificationsState {\n switch (action.type) {\n\n case SpecificationsActionTypes.SpecificationsContentRequested:\n return {...state, isLoading:true};\n\n case SpecificationsActionTypes.SpecificationsContentLoaded:\n return {...state, data: action.payload, isLoading:false, specificationsContentsLoaded:true};\n\n case SpecificationsActionTypes.SpecificationsFetchError:\n return {...state, isLoading:false};\n\n default:{\n return state;\n }\n }\n}","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport { SpecificationsState } from './specifications.state';\n\nexport const selectSpecificationsState = createFeatureSelector('specifications');\n\nexport const selectSpecifications = createSelector(\n selectSpecificationsState,\n SpecificationsState => SpecificationsState.data\n);\n\nexport const specificationsContentsLoaded = createSelector(\n selectSpecificationsState,\n SpecificationsState => SpecificationsState.specificationsContentsLoaded\n);\n\nexport const getIsLoading = createSelector(\n selectSpecificationsState,\n SpecificationsState => SpecificationsState.isLoading\n);\n\nexport const getError = createSelector(\n selectSpecificationsState,\n SpecificationsState => SpecificationsState.error\n);","export interface SpecificationsState {\n data: any | null;\n isLoading: boolean;\n specificationsContentsLoaded:boolean;\n error: any;\n}\n\nexport const specificationsInitialState: SpecificationsState = {\n data: null,\n isLoading: true,\n specificationsContentsLoaded: false,\n error: null,\n};"],"sourceRoot":""}