{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/@ionic/core/dist/esm lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app.component.html","./src/app/components/cart-ordertotal/cart-ordertotal.component.html","./src/app/components/cart-total/cart-total.component.html","./src/app/components/empty-view/empty-view.html","./src/app/components/pbmcart-ordertotal/pbmcart-ordertotal.component.html","./src/app/components/pbmcart-total/pbmcart-total.component.html","./src/app/components/pbmpoints/pbmpoints.component.html","./src/app/components/settings/settings.component.html","./src/app/components/upload-box/upload-box.component.html","./src/app/pages/modal/modal.page.html","./src/app/pages/variantmodal/variantmodal.page.html","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/cart-ordertotal/cart-ordertotal.component.scss","./src/app/components/cart-ordertotal/cart-ordertotal.component.ts","./src/app/components/cart-total/cart-total.component.scss","./src/app/components/cart-total/cart-total.component.ts","./src/app/components/components.module.ts","./src/app/components/empty-view/empty-view.module.ts","./src/app/components/empty-view/empty-view.scss","./src/app/components/empty-view/empty-view.ts","./src/app/components/pbmcart-ordertotal/pbmcart-ordertotal.component.scss","./src/app/components/pbmcart-ordertotal/pbmcart-ordertotal.component.ts","./src/app/components/pbmcart-total/pbmcart-total.component.scss","./src/app/components/pbmcart-total/pbmcart-total.component.ts","./src/app/components/pbmpoints/pbmpoints.component.scss","./src/app/components/pbmpoints/pbmpoints.component.ts","./src/app/components/settings/settings.component.scss","./src/app/components/settings/settings.component.ts","./src/app/components/upload-box/upload-box.component.scss","./src/app/components/upload-box/upload-box.component.ts","./src/app/pages/base-page/base-page.ts","./src/app/pages/modal/modal.module.ts","./src/app/pages/modal/modal.page.scss","./src/app/pages/modal/modal.page.ts","./src/app/pages/variantmodal/variantmodal.module.ts","./src/app/pages/variantmodal/variantmodal.page.scss","./src/app/pages/variantmodal/variantmodal.page.ts","./src/app/pipes/excerpt-filter.ts","./src/app/pipes/filter.ts","./src/app/pipes/pipes.module.ts","./src/app/providers/api/api.ts","./src/app/providers/auth/auth.ts","./src/app/providers/cart/cart.ts","./src/app/providers/category/category.ts","./src/app/providers/compare/compare.ts","./src/app/providers/datafinder.ts","./src/app/providers/lastsee/lastsee.ts","./src/app/providers/order/order.ts","./src/app/providers/products/products.ts","./src/app/providers/search/search.ts","./src/app/services/auth.service.ts","./src/app/services/cart.service.ts","./src/app/services/category.service.ts","./src/app/services/local-storage.ts","./src/app/services/network.service.ts","./src/app/services/offline-manager.service.ts","./src/app/services/preference.ts","./src/app/services/product.service.ts","./src/app/shared.module.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;;;AChZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E;;;;;;;;;;;ACnRA,kZAAkZ,yMAAyM,uBAAuB,gPAAgP,uBAAuB,sVAAsV,wDAAwD,oKAAoK,wDAAwD,oKAAoK,wDAAwD,oK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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./ion-action-sheet-controller_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-action-sheet-controller_8.entry.js\",\n\t\t\"common\",\n\t\t0\n\t],\n\t\"./ion-action-sheet-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-action-sheet-ios.entry.js\",\n\t\t\"common\",\n\t\t1\n\t],\n\t\"./ion-action-sheet-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-action-sheet-md.entry.js\",\n\t\t\"common\",\n\t\t2\n\t],\n\t\"./ion-alert-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-alert-ios.entry.js\",\n\t\t\"common\",\n\t\t3\n\t],\n\t\"./ion-alert-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-alert-md.entry.js\",\n\t\t\"common\",\n\t\t4\n\t],\n\t\"./ion-app_8-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-app_8-ios.entry.js\",\n\t\t\"common\",\n\t\t5\n\t],\n\t\"./ion-app_8-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-app_8-md.entry.js\",\n\t\t\"common\",\n\t\t6\n\t],\n\t\"./ion-avatar_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-avatar_3-ios.entry.js\",\n\t\t\"common\",\n\t\t7\n\t],\n\t\"./ion-avatar_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-avatar_3-md.entry.js\",\n\t\t\"common\",\n\t\t8\n\t],\n\t\"./ion-back-button-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-back-button-ios.entry.js\",\n\t\t\"common\",\n\t\t9\n\t],\n\t\"./ion-back-button-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-back-button-md.entry.js\",\n\t\t\"common\",\n\t\t10\n\t],\n\t\"./ion-backdrop-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-backdrop-ios.entry.js\",\n\t\t11\n\t],\n\t\"./ion-backdrop-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-backdrop-md.entry.js\",\n\t\t12\n\t],\n\t\"./ion-button_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-button_2-ios.entry.js\",\n\t\t\"common\",\n\t\t13\n\t],\n\t\"./ion-button_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-button_2-md.entry.js\",\n\t\t\"common\",\n\t\t14\n\t],\n\t\"./ion-card_5-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-card_5-ios.entry.js\",\n\t\t\"common\",\n\t\t15\n\t],\n\t\"./ion-card_5-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-card_5-md.entry.js\",\n\t\t\"common\",\n\t\t16\n\t],\n\t\"./ion-checkbox-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-checkbox-ios.entry.js\",\n\t\t\"common\",\n\t\t17\n\t],\n\t\"./ion-checkbox-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-checkbox-md.entry.js\",\n\t\t\"common\",\n\t\t18\n\t],\n\t\"./ion-chip-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-chip-ios.entry.js\",\n\t\t\"common\",\n\t\t19\n\t],\n\t\"./ion-chip-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-chip-md.entry.js\",\n\t\t\"common\",\n\t\t20\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-col_3.entry.js\",\n\t\t21\n\t],\n\t\"./ion-datetime_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-datetime_3-ios.entry.js\",\n\t\t\"common\",\n\t\t22\n\t],\n\t\"./ion-datetime_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-datetime_3-md.entry.js\",\n\t\t\"common\",\n\t\t23\n\t],\n\t\"./ion-fab_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-fab_3-ios.entry.js\",\n\t\t\"common\",\n\t\t24\n\t],\n\t\"./ion-fab_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-fab_3-md.entry.js\",\n\t\t\"common\",\n\t\t25\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-img.entry.js\",\n\t\t26\n\t],\n\t\"./ion-infinite-scroll_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2-ios.entry.js\",\n\t\t\"common\",\n\t\t27\n\t],\n\t\"./ion-infinite-scroll_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2-md.entry.js\",\n\t\t\"common\",\n\t\t28\n\t],\n\t\"./ion-input-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-input-ios.entry.js\",\n\t\t\"common\",\n\t\t29\n\t],\n\t\"./ion-input-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-input-md.entry.js\",\n\t\t\"common\",\n\t\t30\n\t],\n\t\"./ion-item-option_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item-option_3-ios.entry.js\",\n\t\t\"common\",\n\t\t31\n\t],\n\t\"./ion-item-option_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item-option_3-md.entry.js\",\n\t\t\"common\",\n\t\t32\n\t],\n\t\"./ion-item_8-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item_8-ios.entry.js\",\n\t\t\"common\",\n\t\t33\n\t],\n\t\"./ion-item_8-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item_8-md.entry.js\",\n\t\t\"common\",\n\t\t34\n\t],\n\t\"./ion-loading-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-loading-ios.entry.js\",\n\t\t\"common\",\n\t\t35\n\t],\n\t\"./ion-loading-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-loading-md.entry.js\",\n\t\t\"common\",\n\t\t36\n\t],\n\t\"./ion-menu_4-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-menu_4-ios.entry.js\",\n\t\t\"common\",\n\t\t37\n\t],\n\t\"./ion-menu_4-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-menu_4-md.entry.js\",\n\t\t\"common\",\n\t\t38\n\t],\n\t\"./ion-modal-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-modal-ios.entry.js\",\n\t\t\"common\",\n\t\t39\n\t],\n\t\"./ion-modal-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-modal-md.entry.js\",\n\t\t\"common\",\n\t\t40\n\t],\n\t\"./ion-nav_5.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-nav_5.entry.js\",\n\t\t\"common\",\n\t\t41\n\t],\n\t\"./ion-popover-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-popover-ios.entry.js\",\n\t\t\"common\",\n\t\t42\n\t],\n\t\"./ion-popover-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-popover-md.entry.js\",\n\t\t\"common\",\n\t\t43\n\t],\n\t\"./ion-progress-bar-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-progress-bar-ios.entry.js\",\n\t\t\"common\",\n\t\t44\n\t],\n\t\"./ion-progress-bar-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-progress-bar-md.entry.js\",\n\t\t\"common\",\n\t\t45\n\t],\n\t\"./ion-radio_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-radio_2-ios.entry.js\",\n\t\t\"common\",\n\t\t46\n\t],\n\t\"./ion-radio_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-radio_2-md.entry.js\",\n\t\t\"common\",\n\t\t47\n\t],\n\t\"./ion-range-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-range-ios.entry.js\",\n\t\t\"common\",\n\t\t48\n\t],\n\t\"./ion-range-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-range-md.entry.js\",\n\t\t\"common\",\n\t\t49\n\t],\n\t\"./ion-refresher_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-refresher_2-ios.entry.js\",\n\t\t\"common\",\n\t\t50\n\t],\n\t\"./ion-refresher_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-refresher_2-md.entry.js\",\n\t\t\"common\",\n\t\t51\n\t],\n\t\"./ion-reorder_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-reorder_2-ios.entry.js\",\n\t\t\"common\",\n\t\t52\n\t],\n\t\"./ion-reorder_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-reorder_2-md.entry.js\",\n\t\t\"common\",\n\t\t53\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-ripple-effect.entry.js\",\n\t\t54\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-route_4.entry.js\",\n\t\t\"common\",\n\t\t55\n\t],\n\t\"./ion-searchbar-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-searchbar-ios.entry.js\",\n\t\t\"common\",\n\t\t56\n\t],\n\t\"./ion-searchbar-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-searchbar-md.entry.js\",\n\t\t\"common\",\n\t\t57\n\t],\n\t\"./ion-segment_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-segment_2-ios.entry.js\",\n\t\t\"common\",\n\t\t58\n\t],\n\t\"./ion-segment_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-segment_2-md.entry.js\",\n\t\t\"common\",\n\t\t59\n\t],\n\t\"./ion-select_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-select_3-ios.entry.js\",\n\t\t\"common\",\n\t\t60\n\t],\n\t\"./ion-select_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-select_3-md.entry.js\",\n\t\t\"common\",\n\t\t61\n\t],\n\t\"./ion-slide_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-slide_2-ios.entry.js\",\n\t\t62\n\t],\n\t\"./ion-slide_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-slide_2-md.entry.js\",\n\t\t63\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-spinner.entry.js\",\n\t\t\"common\",\n\t\t64\n\t],\n\t\"./ion-split-pane-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-split-pane-ios.entry.js\",\n\t\t65\n\t],\n\t\"./ion-split-pane-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-split-pane-md.entry.js\",\n\t\t66\n\t],\n\t\"./ion-tab-bar_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab-bar_2-ios.entry.js\",\n\t\t\"common\",\n\t\t67\n\t],\n\t\"./ion-tab-bar_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab-bar_2-md.entry.js\",\n\t\t\"common\",\n\t\t68\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab_2.entry.js\",\n\t\t\"common\",\n\t\t69\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-text.entry.js\",\n\t\t\"common\",\n\t\t70\n\t],\n\t\"./ion-textarea-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-textarea-ios.entry.js\",\n\t\t\"common\",\n\t\t71\n\t],\n\t\"./ion-textarea-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-textarea-md.entry.js\",\n\t\t\"common\",\n\t\t72\n\t],\n\t\"./ion-toast-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toast-ios.entry.js\",\n\t\t\"common\",\n\t\t73\n\t],\n\t\"./ion-toast-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toast-md.entry.js\",\n\t\t\"common\",\n\t\t74\n\t],\n\t\"./ion-toggle-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toggle-ios.entry.js\",\n\t\t\"common\",\n\t\t75\n\t],\n\t\"./ion-toggle-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toggle-md.entry.js\",\n\t\t\"common\",\n\t\t76\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-virtual-scroll.entry.js\",\n\t\t77\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 lazy recursive ^\\\\.\\\\/.*\\\\.entry\\\\.js$ include: \\\\.entry\\\\.js$ exclude: \\\\.system\\\\.entry\\\\.js$\";\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-SG\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-SG.js\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\"","module.exports = \"
\\n
Order Overzicht
\\n \\n \\n

SubTotaal

\\n \\n

Totaal

\\n
\\n \\n

{{totalAmount | currency:'EUR':true}}

\\n \\n

{{totalAmount | currency:'EUR':true}}

\\n
\\n
\\n
\\n \\n \\n Bestelling afronden\\n \\n \\n
\\n
\"","module.exports = \"\\r\\n

Totaal: {{totalAmount | currency:'EUR':true}}

\\r\\n \\r\\n \\r\\n Ga verder met bestellen\\r\\n \\r\\n
\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n

{{ text }}

\\r\\n
\\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\n
Order Overzicht
\\n \\n \\n

Totaal Punten

\\n \\n

Resterende Punten

\\n
\\n \\n

{{PBMtotalAmount}}

\\n \\n

{{PBMtotalAmount2}}

\\n
\\n
\\n
\\n \\n \\n Naar Betaalmethode\\n \\n \\n
\\n
\"","module.exports = \"
\\r\\n Uw saldo: {{points[0].iPointSaldo}} punten.\\r\\n
\\r\\n

Totaal Punten: {{PBMtotalAmount}}

\\r\\n

Resterende Punten: {{PBMtotalAmount2}}

\\r\\n\\r\\n\\r\\nGa verder met bestellen\\r\\n\"","module.exports = \"\\n\\n \\n \\n \\n \\n
\\n Uw saldo: {{points[0].iPointSaldo}} punten.\\n
\\n
\\n
\\n
\"","module.exports = \"\\n \\n \\n Scan\\n \\n \\n MultiScan\\n \\n \\n Sluit\\n\"","module.exports = \"\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
{{ text }}
\\r\\n
\"","module.exports = \"\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Categorieen\\r\\n \\r\\n \\r\\n {{item.sPropValue}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Filters\\r\\n \\r\\n \\r\\n \\r\\n {{item}}\\r\\n \\r\\n {{item.sPropValue}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Reset\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Toon\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","module.exports = \"\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Varianten\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Artikel\\r\\n \\r\\n \\r\\n\\r\\n {{row.sArticleCode}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n breedte\\r\\n \\r\\n \\r\\n {{row.stBaseProp.arrProp[0].sPropValue}} {{row.stBaseProp.arrProp[0].sPropUnit}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n oppervlakte\\r\\n \\r\\n \\r\\n {{row.stBaseProp.arrProp[1]?.sPropValue}} {{row.stBaseProp.arrProp[1]?.sPropUnit}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Prijs per\\r\\n \\r\\n \\r\\n {{row.curNetPrice}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\"","import { NgModule } from '@angular/core';\r\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\r\n\r\nconst routes: Routes = [\r\n\r\n {\r\n path: '1',\r\n loadChildren: () =>\r\n import('./tabs/tabs.module').then(m => m.TabsPageModule)\r\n },\r\n {\r\n path: '',\r\n loadChildren: () =>\r\n import('./tabs/tabs.module').then(m => m.TabsPageModule)\r\n }\r\n];\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component, Injector, OnInit, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport { Platform, ToastController, AlertController, LoadingController, Events, Config} from '@ionic/angular';\r\n// import { SplashScreen } from '@ionic-native/splash-screen/ngx';\r\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\r\n// import { User } from './services/user';\r\nimport { environment } from 'src/environments/environment';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport nl from '@angular/common/locales/nl';\r\n// import { Category } from './services/category';\r\n// import { Item } from './services/item';\r\n// import { Card } from './services/card';\r\nimport { Subject, Observable, merge } from 'rxjs';\r\nimport { Preference } from './services/preference';\r\nimport { CartService } from './services/cart.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { LocalStorage } from './services/local-storage';\r\nimport { OfflineManagerService } from './services/offline-manager.service';\r\nimport { NetworkService, ConnectionStatus } from './services/network.service';\r\nimport { CategoryService } from './services/category.service';\r\nimport { AppVersion } from '@ionic-native/app-version/ngx';\r\nimport { AuthService } from './services/auth.service';\r\n// import { Installation } from './services/installation';\r\n// import { WindowRef } from './services/window-ref';\r\n// import { HeaderColor } from '@ionic-native/header-color/ngx';\r\n// import * as Parse from 'parse';\r\n// import { Slide } from './services/slide';\r\nimport { Router } from '@angular/router';\r\n// import { StripeService } from 'ngx-stripe';\r\n// import { Stripe } from '@ionic-native/stripe/ngx';\r\nimport { Plugins } from '@capacitor/core';\r\nconst { SplashScreen } = Plugins;\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: 'app.component.html'\r\n})\r\nexport class AppComponent implements OnInit {\r\n\r\n // public user: User;\r\n\r\n private loader = null;\r\n private objWindow = null;\r\n public cartCount:any;\r\n public skeletonArray = Array(4);\r\n number:any;\r\n list_ = true;\r\n grid_ = false;\r\n isLoaded = false;\r\n cartItems: any;\r\n categories: any;\r\n subcategories:any;\r\n totalAmount: number = 0;\r\n isCartItemLoaded: boolean = false;\r\n protected contentLoaded: Subject;\r\n constructor(\r\n injector: Injector,\r\n private platform: Platform,\r\n private router: Router,\r\n private toastCtrl: ToastController,\r\n private alertCtrl: AlertController,\r\n private preference: Preference,\r\n private loadingCtrl: LoadingController,\r\n private cartService: CartService,\r\n private statusBar: StatusBar,\r\n private changeDetector: ChangeDetectorRef,\r\n public api2: CategoryService,\r\n private offlineManager: OfflineManagerService,\r\n private networkService: NetworkService,\r\n // private headerColor: HeaderColor,\r\n private translate: TranslateService,\r\n private events: Events,\r\n private localStorage: LocalStorage,\r\n private plt: Platform,\r\n private appversion : AppVersion,\r\n public authService : AuthService,\r\n // public splashscreen : SplashScreen\r\n // private userService: User,\r\n // private windowRef: WindowRef,\r\n // private installationService: Installation,\r\n // private stripeService: StripeService,\r\n // private stripe: Stripe,\r\n ) {\r\n console.log('App version MSG', this.appversion.getVersionNumber());\r\n this.initializeApp();\r\n this.contentLoaded = new Subject();\r\n }\r\n\r\n async initializeApp() {\r\n // this.objWindow = this.windowRef.nativeWindow;\r\n\r\n // this.setupParse();\r\n\r\n this.setupFacebookSdk();\r\n\r\n // this.user = User.getCurrent();\r\n\r\n this.setupLanguage();\r\n this.setupEvents();\r\n this.setupDesktopAnimations();\r\n this.Guestlogin();\r\n\r\n this.platform.ready().then(() => {\r\n setTimeout(() => {\r\n SplashScreen.hide();\r\n }, 1000);\r\n this.networkService.onNetworkChange().subscribe((status: ConnectionStatus) => {\r\n if (status == ConnectionStatus.Online) {\r\n this.offlineManager.checkForEvents().subscribe();\r\n }\r\n });\r\n });\r\n \r\n this.setupStatusBar();\r\n setTimeout(() => {\r\n this.isLoaded = true;\r\n }, 2000);\r\n this.loadData();\r\n this.getCategories();\r\n // this.setupPush();\r\n this.setupStripe();\r\n if (this.platform.is('android')) this.setupHeaderColor();\r\n }\r\n\r\n ngOnInit() {\r\n registerLocaleData( nl );\r\n this.setupObservable();\r\n }\r\n setupObservable() {\r\n\r\n this.contentLoaded\r\n \r\n }\r\n\r\n Guestlogin() {\r\n\r\n // let loader = this.loadingCtrl.create({\r\n // content: 'Authenticating..'\r\n // });\r\n // loader.present();\r\n let me=this;\r\n let loginParams = null\r\n // console.log(this.email);\r\n console.log('empty2', loginParams);\r\n if (this.plt.is('cordova')) {\r\n this.authService.guestNative(loginParams).then(res => {\r\n \r\n console.log('test login page', JSON.stringify(res));\r\n // this.navigateTo('/1//home');\r\n this.authService.guestlogin(JSON.stringify(res));\r\n console.log\r\n // this.authService.guestlogin(JSON.parse(res.data));\r\n \r\n });\r\n \r\n }else{\r\n this.authService.Guestlogin().then(res => {\r\n console.log(res)\r\n // this.navigateTo('/1//home');\r\n });\r\n }\r\n console.log(this.authService.iPbmMode);\r\n \r\n // }\r\n \r\n }\r\n\r\n\r\n loadData(event: any = {}) {\r\n\r\n try {\r\n\r\n\r\n this.loadCart();\r\n // this.showContentView();\r\n this.getCategories();\r\n this.getSubCategories(this.subcategories);\r\n this.onContentLoaded();\r\n // this.onRefreshComplete(this.cartItems);\r\n \r\n } catch (error) {\r\n // this.showContentView();\r\n this.translate.get('ERROR_NETWORK').subscribe(str => this.showToast(str));\r\n }\r\n }\r\n\r\n onContentLoaded() {\r\n setTimeout(() => {\r\n this.contentLoaded.next();\r\n }, 400);\r\n }\r\n\r\n // setupParse() {\r\n // (Parse as any).serverURL = environment.serverUrl;\r\n // Parse.initialize(environment.appId);\r\n\r\n // Slide.getInstance();\r\n // Category.getInstance();\r\n // Item.getInstance();\r\n // Card.getInstance();\r\n\r\n // this.loadCart();\r\n // }\r\n\r\n setupFacebookSdk() {\r\n if (!this.platform.is('hybrid')) {\r\n // Load the Facebook API asynchronous when the window starts loading\r\n\r\n // this.objWindow.fbAsyncInit = function() {\r\n // Parse.FacebookUtils.init({\r\n // // appId: environment.fbId,\r\n // cookie: true,\r\n // xfbml: true, \r\n // version: 'v1.0'\r\n // });\r\n // };\r\n\r\n (function (d, s, id) {\r\n var js, fjs = d.getElementsByTagName(s)[0];\r\n if (d.getElementById(id)) {return;}\r\n js = d.createElement(s); js.id = id;\r\n js.src = \"//connect.facebook.net/en_US/all.js\";\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }(document, 'script', 'facebook-jssdk'));\r\n }\r\n }\r\n\r\n// onRightClick() {\r\n// return false;\r\n// }\r\n\r\n setupStripe() {\r\n // if (this.platform.is('hybrid')) {\r\n // this.stripe.setPublishableKey(environment.stripePublicKey);\r\n // } else {\r\n // this.stripeService.setKey(environment.stripePublicKey);\r\n // }\r\n\r\n }\r\n\r\n setupHeaderColor() {\r\n // this.headerColor.tint(environment.androidHeaderColor);\r\n }\r\n\r\n setupDesktopAnimations() {\r\n if (this.platform.is('desktop')) {\r\n const config = new Config;\r\n config.set('rippleEffect', false);\r\n config.set('animated', false);\r\n }\r\n }\r\n\r\n async setupLanguage() {\r\n this.translate.setDefaultLang(environment.defaultLang);\r\n\r\n try {\r\n\r\n let lang = await this.localStorage.getLang();\r\n\r\n if (lang === 'ar') {\r\n document.dir = 'rtl';\r\n } else {\r\n document.dir = 'ltr';\r\n }\r\n\r\n this.localStorage.setLang(lang);\r\n this.translate.use(lang);\r\n this.preference.lang = lang; \r\n\r\n } catch (error) {\r\n console.warn(error);\r\n }\r\n }\r\n\r\n setupEvents() {\r\n let cart = this.cartService.getCartItems();\r\n this.events.subscribe('cart:updated', () => {\r\n this.updateCartCount(cart);\r\n });\r\n }\r\n\r\n // this.events.subscribe('user:login', user => {\r\n // this.user = user;\r\n // this.updateInstallation();\r\n // this.loadCart();\r\n // });\r\n\r\n // this.events.subscribe('user:logout', (ev) => {\r\n // this.logout(ev);\r\n // });\r\n // }\r\n\r\n setupStatusBar() {\r\n if (this.platform.is('ios')) {\r\n this.statusBar.overlaysWebView(true);\r\n this.statusBar.styleDefault();\r\n } else {\r\n // this.statusBar.backgroundColorByHexString(environment.androidHeaderColor);\r\n }\r\n }\r\n\r\n async loadCart() {\r\n\r\n \r\n\r\n this.cartService.getCartItems()\r\n .then(val => {\r\n this.cartItems = val;\r\n console.log('app cart', this.cartItems)\r\n if (this.cartItems.length > 0) {\r\n this.cartItems.forEach((v, indx) => {\r\n this.totalAmount += parseFloat(v.totalPrice);\r\n });\r\n // this.isEmptyCart = false;\r\n // loader.present();\r\n }\r\n\r\n this.isCartItemLoaded = true;\r\n // loader.dismiss();\r\n })\r\n\r\n let cart = await this.cartService.getCartItems();\r\n cart = cart\r\n\r\n this.changeDetector.detectChanges();\r\n // this.updateCartCount(cart);\r\n\r\n\r\n }\r\n\r\n async getCategories() {\r\n // const loading = await this.loadingController.create({\r\n // message: 'Please wait...',\r\n // });\r\n // await loading.present();\r\n if (this.plt.is('cordova')) {\r\n this.api2.getCategoriesNative()\r\n .then(data => {\r\n let parsed = JSON.parse(data.data);\r\n this.categories = parsed.stNavMenu.arrMenuGroup;\r\n console.log('categories', data);\r\n // this.categories = res['stResult']['stNavMenu']['arrMenuGroup'];\r\n // loading.dismiss();\r\n }, err => {\r\n console.log(err);\r\n // loading.dismiss();\r\n });\r\n } else {\r\n this.api2.getCategories()\r\n .subscribe(res => {\r\n console.log('categories', res);\r\n this.categories = res['stNavMenu']['arrMenuGroup'];\r\n // loading.dismiss();\r\n }, err => {\r\n console.log(err);\r\n // loading.dismiss();\r\n });\r\n }\r\n }\r\n\r\n async getSubCategories(category:any) {\r\n if (this.plt.is('cordova')) {\r\n this.api2.getSubCategoriesNative(category)\r\n .then(data => {\r\n let parsed = JSON.parse(data.data);\r\n this.subcategories = parsed.stNavMenu.arrMenuGroup;\r\n console.log('categories', data);\r\n // this.categories = res['stResult']['stNavMenu']['arrMenuGroup'];\r\n // loading.dismiss();\r\n }, err => {\r\n console.log(err);\r\n // loading.dismiss();\r\n });\r\n } else {\r\n this.api2.getSubCategories(category)\r\n .subscribe(res => {\r\n this.list_ = true;\r\n this.grid_ = false;\r\n console.log('categories', res);\r\n this.subcategories = res['stNavMenu']['arrMenuGroup'];\r\n // loading.dismiss();\r\n }, err => {\r\n console.log(err);\r\n // loading.dismiss();\r\n });\r\n }\r\n }\r\n\r\n updateCartCount(cart:any) {\r\n cart = this.cartService.getCartItems();\r\n this.cartCount = cart.length\r\n this.cartCount = this.cartCount\r\n console.log('cart',\r\n\r\nthis.cartCount\r\n \r\n ) \r\n\r\n }\r\n\r\n // async setupPush() {\r\n\r\n // if (this.objWindow.ParsePushPlugin) {\r\n\r\n // this.objWindow.ParsePushPlugin.resetBadge();\r\n\r\n // this.platform.resume.subscribe(() => { \r\n // this.objWindow.ParsePushPlugin.resetBadge();\r\n // });\r\n\r\n // this.objWindow.ParsePushPlugin.on('receivePN', (pn) => {\r\n // console.log('Push notification:' + JSON.stringify(pn));\r\n // this.objWindow.ParsePushPlugin.resetBadge();\r\n // });\r\n\r\n // this.objWindow.ParsePushPlugin.on('receivePN:news', (pn) => {\r\n // console.log('News Notification:' + JSON.stringify(pn));\r\n // this.showNotification(pn);\r\n // this.objWindow.ParsePushPlugin.resetBadge();\r\n // });\r\n\r\n // this.objWindow.ParsePushPlugin.on('receivePN:order', (pn) => {\r\n // console.log('Order Notification:' + JSON.stringify(pn));\r\n // this.showNotification(pn);\r\n // this.objWindow.ParsePushPlugin.resetBadge();\r\n // });\r\n\r\n // this.objWindow.ParsePushPlugin.on('openPN', (pn) => {\r\n // console.log('Notification:' + JSON.stringify(pn));\r\n\r\n // this.objWindow.ParsePushPlugin.resetBadge();\r\n\r\n // if (pn.event === 'order') {\r\n // this.showNotification(pn);\r\n // }\r\n\r\n // if (pn.event === 'post') {\r\n // this.showNotification(pn);\r\n // }\r\n\r\n // });\r\n\r\n // this.updateInstallation();\r\n // }\r\n // }\r\n\r\n async updateInstallation() {\r\n\r\n try {\r\n\r\n if (this.objWindow.ParsePushPlugin) {\r\n\r\n let payload: any = {\r\n user: null\r\n };\r\n\r\n // const id = await this.installationService.getId();\r\n\r\n // const obj = await this.installationService.getOne(id);\r\n\r\n // if (obj) {\r\n // payload.isPushEnabled = obj.isPushEnabled;\r\n // this.localStorage.setIsPushEnabled(obj.isPushEnabled);\r\n // this.preference.isPushEnabled = obj.isPushEnabled; \r\n // }\r\n\r\n // if (this.user) {\r\n // payload.user = this.user.toPointer();\r\n // }\r\n\r\n // const res = await this.installationService.save(id, payload);\r\n // console.log('Installation updated', res);\r\n }\r\n\r\n } catch (error) {\r\n console.warn(error);\r\n }\r\n }\r\n\r\n async showNotification(notification: any) {\r\n const str = await this.translate.get(['NOTIFICATION', 'OK']).toPromise();\r\n this.showAlert(str.NOTIFICATION, notification.alert, str.OK);\r\n }\r\n\r\n async showAlert(title: string = '', message: string = '', okText: string = 'OK') {\r\n \r\n const alert = await this.alertCtrl.create({\r\n header: title,\r\n message: message,\r\n buttons: [okText],\r\n });\r\n\r\n return await alert.present();\r\n }\r\n\r\n showConfirm(message: string): Promise {\r\n\r\n return new Promise(async (resolve, reject) => {\r\n\r\n const str = await this.translate.get(['OK', 'CANCEL']).toPromise();\r\n\r\n const confirm = await this.alertCtrl.create({\r\n header: '',\r\n message: message,\r\n buttons: [{\r\n text: str.CANCEL,\r\n role: 'cancel',\r\n handler: () => reject(false),\r\n }, {\r\n text: str.OK,\r\n handler: () => resolve(true)\r\n }]\r\n });\r\n\r\n confirm.present();\r\n \r\n });\r\n }\r\n\r\n async showLoadingView() {\r\n\r\n const str = await this.translate.get('LOADING').toPromise();\r\n\r\n this.loader = await this.loadingCtrl.create({\r\n message: str\r\n });\r\n \r\n return await this.loader.present();\r\n }\r\n\r\n dismissLoadingView() {\r\n if (this.loader) {\r\n this.loader.dismiss().catch((e: any) => console.log('ERROR CATCH: LoadingController dismiss', e));\r\n }\r\n }\r\n\r\n async showToast(message: string) {\r\n const toast = await this.toastCtrl.create({\r\n message: message,\r\n duration: 3000,\r\n position: 'bottom'\r\n });\r\n\r\n return await toast.present();\r\n }\r\n\r\n goTo(page: string) {\r\n this.router.navigate([page]);\r\n }\r\n\r\n async logout(ev: any = {}) {\r\n\r\n try {\r\n\r\n if (!ev.silent) {\r\n let str = await this.translate.get('LOGOUT_CONFIRMATION').toPromise();\r\n await this.showConfirm(str);\r\n }\r\n\r\n await this.showLoadingView();\r\n // await this.userService.logout();\r\n this.events.publish('user:loggedOut');\r\n // this.user = null;\r\n this.goTo('/');\r\n // this.updateCartCount(new Cart);\r\n this.dismissLoadingView();\r\n this.updateInstallation();\r\n this.translate.get('LOGGED_OUT').subscribe(str => this.showToast(str));\r\n\r\n } catch (err) {\r\n this.dismissLoadingView();\r\n }\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouteReuseStrategy } from '@angular/router';\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\n\r\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\r\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\r\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\r\n\r\nimport { ProductsProvider } from '../app/providers/products/products';\r\nimport { CategoryProvider } from '../app/providers/category/category';\r\nimport { CartProvider } from '../app/providers/cart/cart';\r\nimport { AuthProvider } from '../app/providers/auth/auth';\r\nimport { OrderProvider } from '../app/providers/order/order';\r\nimport { LastseeProvider } from '../app/providers/lastsee/lastsee';\r\nimport { SearchProvider } from '../app/providers/search/search';\r\nimport { ApiProvider } from '../app/providers/api/api';\r\nimport { CompareProvider } from '../app/providers/compare/compare';\r\nimport { DataFinder } from '../app/providers/datafinder';\r\nimport { SocialSharing } from '@ionic-native/social-sharing/ngx';\r\nimport { ModalPageModule } from './pages/modal/modal.module';\r\nimport { VariantmodalPageModule } from './pages/variantmodal/variantmodal.module';\r\nimport { SettingsComponent } from './components/settings/settings.component';\r\nimport { PbmpointsComponent } from './components/pbmpoints/pbmpoints.component';\r\nimport { CartTotalComponent } from './components/cart-total/cart-total.component';\r\nimport 'hammerjs';\r\nimport { HttpModule } from '@angular/http';\r\n// import { HttpClientModule } from '@angular/common/http';\r\nimport { Network } from '@ionic-native/network/ngx';\r\nimport { HTTP } from '@ionic-native/http/ngx';\r\nimport { File } from '@ionic-native/file/ngx';\r\nimport { CacheModule } from 'ionic-cache/dist';\r\nimport { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';\r\nimport { IonicStorageModule } from '@ionic/storage';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\nimport { environment } from '../environments/environment';\r\nimport { FormsModule } from '@angular/forms';\r\n// import { OneSignal } from '@ionic-native/onesignal/ngx';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { ImgFallbackModule } from 'ngx-img-fallback';\r\nimport { MomentModule } from 'angular2-moment';\r\nimport { InAppBrowser } from '@ionic-native/in-app-browser/ngx';\r\nimport { ThemeableBrowser } from '@ionic-native/themeable-browser/ngx';\r\nimport { CallNumber } from '@ionic-native/call-number/ngx';\r\nimport { EmailComposer } from '@ionic-native/email-composer/ngx';\r\nimport { AppVersion } from '@ionic-native/app-version/ngx';\r\n\r\n// import { LoginPage } from './pages/login/login';\r\n\r\nimport { LazyLoadImageModule } from 'ng-lazyload-image';\r\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\r\n\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\r\n}\r\nlibrary.add();\r\n@NgModule({\r\n declarations: [AppComponent, SettingsComponent, PbmpointsComponent],\r\n entryComponents: [SettingsComponent, PbmpointsComponent],\r\n imports: [BrowserModule, HttpModule,CacheModule.forRoot(),IonicModule.forRoot(), AppRoutingModule,IonicStorageModule.forRoot(),\r\n HttpClientModule,\r\n FontAwesomeModule,\r\n ModalPageModule,\r\n VariantmodalPageModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n LazyLoadImageModule,\r\n ImgFallbackModule,\r\n NgxSkeletonLoaderModule,\r\n MomentModule,\r\n ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })],\r\n schemas: [ NO_ERRORS_SCHEMA ],\r\n providers: [\r\n HTTP,\r\n File,\r\n StatusBar,\r\n BarcodeScanner,\r\n Network,\r\n InAppBrowser,\r\n ThemeableBrowser,\r\n CallNumber,\r\n AppVersion,\r\n EmailComposer,\r\n // FingerprintAIO,\r\n SplashScreen,\r\n // ScreenOrientation,\r\n ProductsProvider,\r\n CategoryProvider,\r\n // NativePageTransitions,\r\n CartProvider,\r\n AuthProvider,\r\n OrderProvider,\r\n // Push,\r\n // GoogleMaps,\r\n SearchProvider,\r\n ApiProvider,\r\n SocialSharing,\r\n CompareProvider,\r\n // File,\r\n // Network,\r\n // OneSignal,\r\n DataFinder,\r\n LastseeProvider,\r\n StatusBar,\r\n SplashScreen,\r\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY2FydC1vcmRlcnRvdGFsL2NhcnQtb3JkZXJ0b3RhbC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Input, OnChanges, SimpleChange, SimpleChanges, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { Item } from '../../services/item';\nimport { Router, NavigationExtras } from '@angular/router';\nimport { ProductService } from '../../services/product.service';\nimport { AuthService } from '../../services/auth.service';\nimport {\n Platform\n} from \"@ionic/angular\";\nimport { registerLocaleData } from '@angular/common';\nimport nl from '@angular/common/locales/nl';\n\n@Component({\n selector: 'app-cart-ordertotal',\n templateUrl: './cart-ordertotal.component.html',\n styleUrls: ['./cart-ordertotal.component.scss'],\n})\nexport class CartOrdertotalComponent implements OnInit, OnChanges {\n\t@Input() cartItems: Item[];\n\n\ttotalAmount = 0;\n\tconstructor(private plt: Platform,public router: Router,public api: ProductService,private authService: AuthService,) {}\n\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tconst dataChanges: SimpleChange = changes.cartItems;\n\n\t\tconst cartItems: Item[] = dataChanges.currentValue;\n\t\tthis.totalAmount = 0;\n cartItems.forEach((v, indx) => {\n this.totalAmount += parseFloat(v.totalPrice);\n console.log('ngchanges', this.totalAmount)\n });\n\t}\n\n\tngOnInit() { registerLocaleData( nl );}\n\n\tasync goToCheckout() {\n\n\t\ttry {\n\t\t \n\t\t // this.isSavingCart = true;\n\t\t // await this.cart.save();\n\t\t // this.isSavingCart = false;\n\t\n\t\t this.router.navigateByUrl('/1/cart/checkout/thanks');\n\t\t \n\t\t} catch (error) {\n\t\t // this.isSavingCart = false;\n\t\t // this.translate.get('ERROR_NETWORK').subscribe(str => this.showToast(str));\n\t\t}\n\t\n\t }\n\t\n\t goToSubCategoryPage() {\n\t\tthis.router.navigateByUrl('/1/cart/checkout/thanks');\n\t }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY2FydC10b3RhbC9jYXJ0LXRvdGFsLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Input, OnChanges, SimpleChange, SimpleChanges, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { Item } from '../../services/item';\nimport { Router, NavigationExtras } from '@angular/router';\nimport { ProductService } from '../../services/product.service';\nimport { AuthService } from '../../services/auth.service';\nimport {\n Platform\n} from \"@ionic/angular\";\n\n@Component({\n selector: 'app-cart-total',\n templateUrl: './cart-total.component.html',\n styleUrls: ['./cart-total.component.scss'],\n})\nexport class CartTotalComponent implements OnInit, OnChanges {\n\t@Input() cartItems: Item[];\n\n\ttotalAmount = 0;\n\tconstructor(private plt: Platform,public router: Router,public api: ProductService,private authService: AuthService,) {}\n\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tconst dataChanges: SimpleChange = changes.cartItems;\n\n\t\tconst cartItems: Item[] = dataChanges.currentValue;\n\t\tthis.totalAmount = 0;\n cartItems.forEach((v, indx) => {\n this.totalAmount += parseFloat(v.totalPrice);\n console.log('ngchanges', this.totalAmount)\n });\n\t}\n\n\tngOnInit() {}\n\n\tasync goToCheckout() {\n\t\tthis.router.navigateByUrl('1/cart/checkout');\n\n\t\ttry {\n\t\t \n\t\t // this.isSavingCart = true;\n\t\t // await this.cart.save();\n\t\t // this.isSavingCart = false;\n\t\n\t\t// this.router.navigateByUrl('/1/cart/checkout');\n\t\t \n\t\t} catch (error) {\n\t\t // this.isSavingCart = false;\n\t\t // this.translate.get('ERROR_NETWORK').subscribe(str => this.showToast(str));\n\t\t}\n\t\n\t }\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { UploadBoxComponent } from './upload-box/upload-box.component';\r\nimport { CartTotalComponent } from './cart-total/cart-total.component';\r\nimport { PbmcartTotalComponent } from './pbmcart-total/pbmcart-total.component';\r\nimport{ PbmcartOrdertotalComponent} from './pbmcart-ordertotal/pbmcart-ordertotal.component'\r\nimport{ CartOrdertotalComponent} from './cart-ordertotal/cart-ordertotal.component'\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tUploadBoxComponent, CartTotalComponent, PbmcartTotalComponent, CartOrdertotalComponent, PbmcartOrdertotalComponent\r\n\t],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tIonicModule,\r\n\t],\r\n\texports: [\r\n\t\tUploadBoxComponent, CartTotalComponent, PbmcartTotalComponent, CartOrdertotalComponent, PbmcartOrdertotalComponent\r\n\t]\r\n})\r\nexport class ComponentsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common'; \r\nimport { IonicModule } from '@ionic/angular';\r\nimport { EmptyView } from './empty-view';\r\n\r\n@NgModule({\r\n declarations: [\r\n EmptyView,\r\n ],\r\n imports: [\r\n CommonModule,\r\n IonicModule\r\n ],\r\n exports: [\r\n EmptyView\r\n ]\r\n})\r\nexport class EmptyViewModule {}\r\n","module.exports = \":host {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n justify-content: center;\\n text-align: center;\\n height: 100%;\\n}\\n:host .container ion-icon {\\n font-size: 64px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9taXRjaG1zZy9Qcm9qZWN0ZW4vbXNnL3NyYy9hcHAvY29tcG9uZW50cy9lbXB0eS12aWV3L2VtcHR5LXZpZXcuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9lbXB0eS12aWV3L2VtcHR5LXZpZXcuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUVFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLHlCQUFBO1VBQUEsbUJBQUE7RUFDQSx3QkFBQTtVQUFBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0FDQUY7QURJSTtFQUNFLGVBQUE7QUNGTiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZW1wdHktdmlldy9lbXB0eS12aWV3LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcblxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG5cclxuICAuY29udGFpbmVyIHtcclxuXHJcbiAgICBpb24taWNvbiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogNjRweDtcclxuICAgIH1cclxuICB9XHJcbn0iLCI6aG9zdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbn1cbjpob3N0IC5jb250YWluZXIgaW9uLWljb24ge1xuICBmb250LXNpemU6IDY0cHg7XG59Il19 */\"","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'empty-view',\r\n templateUrl: 'empty-view.html',\r\n styleUrls: ['empty-view.scss']\r\n})\r\nexport class EmptyView {\r\n\r\n @Input() text: string = '';\r\n @Input() icon: string = 'alert';\r\n @Input() image: string = '';\r\n\r\n constructor() {}\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcGJtY2FydC1vcmRlcnRvdGFsL3BibWNhcnQtb3JkZXJ0b3RhbC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Input, OnChanges, SimpleChange, SimpleChanges, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { Item } from '../../services/item';\nimport { Router, NavigationExtras } from '@angular/router';\nimport { ProductService } from '../../services/product.service';\nimport { AuthService } from '../../services/auth.service';\nimport {\n Platform\n} from \"@ionic/angular\";\n\n@Component({\n selector: 'app-pbmcart-ordertotal',\n templateUrl: './pbmcart-ordertotal.component.html',\n styleUrls: ['./pbmcart-ordertotal.component.scss'],\n})\nexport class PbmcartOrdertotalComponent implements OnInit {\n @Input() PBMcartItems: Item[];\n\n PBMtotalAmount = 0;\n PBMtotalAmount2 = 0;\n points: any;\n\tconstructor(private plt: Platform,public router: Router,public api: ProductService,private authService: AuthService,) {}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tconst dataChanges: SimpleChange = changes.PBMcartItems;\n\n\t\tconst PBMcartItems: Item[] = dataChanges.currentValue;\n\t\tthis.PBMtotalAmount = 0;\n PBMcartItems.forEach((v, indx) => {\n this.PBMtotalAmount += parseInt(v.iNbPoints);\n console.log('ngchanges', this.PBMtotalAmount);\n this.PBMtotalAmount2 = this.points[0].iPointSaldo\n console.log('restpoints', this.PBMtotalAmount2)\n });\n this.getPBMPoints(this.authService.iUserId);\n\n\t}\n\n ngOnInit() {\n\n }\n \n async goToCheckout() {\n\n try {\n \n // this.isSavingCart = true;\n // await this.cart.save();\n // this.isSavingCart = false;\n\n this.router.navigateByUrl('/1/cart/checkout');\n \n } catch (error) {\n // this.isSavingCart = false;\n // this.translate.get('ERROR_NETWORK').subscribe(str => this.showToast(str));\n }\n\n }\n\n async getPBMPoints(orderlist) {\n // const loading = await this.loadingController.create({\n // message: 'Please wait...',\n // });\n // await loading.present();\n if (this.plt.is('cordova')) {\n this.api.getPBMPointsnative(orderlist)\n .then(data => {\n let parsed = JSON.parse(data.data);\n this.points = parsed.stPointList.arrPoints;\n console.log('punten', data);\n // this.categories = res['stResult']['stNavMenu']['arrMenuGroup'];\n // loading.dismiss();\n\n }, err => {\n console.log(err);\n // loading.dismiss();\n\n });\n } else {\n this.api.getPBMPoints(orderlist)\n .subscribe(res => {\n console.log('punten', res);\n this.points = res['stPointList']['arrPoints'];\n \n // loading.dismiss();\n }, err => {\n console.log(err);\n \n // loading.dismiss();\n });\n }\n }\n\n goToSubCategoryPage() {\n this.router.navigateByUrl('/1/cart/checkout/' + 113);\n }\n\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcGJtY2FydC10b3RhbC9wYm1jYXJ0LXRvdGFsLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Input, OnChanges, SimpleChange, SimpleChanges, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { Item } from '../../services/item';\r\nimport { Router, NavigationExtras } from '@angular/router';\r\nimport { ProductService } from '../../services/product.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport {\r\n Platform\r\n} from \"@ionic/angular\";\r\n\r\n@Component({\r\n selector: 'app-pbmcart-total',\r\n templateUrl: './pbmcart-total.component.html',\r\n styleUrls: ['./pbmcart-total.component.scss'],\r\n})\r\nexport class PbmcartTotalComponent implements OnInit {\r\n\t@Input() PBMcartItems: Item[];\r\n\r\n PBMtotalAmount = 0;\r\n PBMtotalAmount2 = 0;\r\n points: any;\r\n\tconstructor(private plt: Platform,public router: Router,public api: ProductService,private authService: AuthService,) {}\r\n\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tconst dataChanges: SimpleChange = changes.PBMcartItems;\r\n\r\n\t\tconst PBMcartItems: Item[] = dataChanges.currentValue;\r\n this.PBMtotalAmount = 0;\r\n this.PBMtotalAmount2 = 0;\r\n PBMcartItems.forEach((v, indx) => {\r\n this.PBMtotalAmount += parseInt(v.iNbPoints);\r\n console.log('ngchanges', this.PBMtotalAmount)\r\n let points = this.points[0].iPointSaldo -= this.PBMtotalAmount;\r\n this.PBMtotalAmount2 = points\r\n });\r\n\r\n\t}\r\n\r\n ngOnInit() {\r\n this.getPBMPoints(this.authService.iUserId);\r\n let points = this.points[0].iPointSaldo -= this.PBMtotalAmount;\r\n console.log(points)\r\n this.PBMtotalAmount2 = points\r\n }\r\n \r\n async goToCheckout() {\r\n\r\n try {\r\n \r\n // this.isSavingCart = true;\r\n // await this.cart.save();\r\n // this.isSavingCart = false;\r\n\r\n this.router.navigateByUrl('/1/cart/checkout');\r\n \r\n } catch (error) {\r\n // this.isSavingCart = false;\r\n // this.translate.get('ERROR_NETWORK').subscribe(str => this.showToast(str));\r\n }\r\n\r\n }\r\n\r\n async getPBMPoints(orderlist) {\r\n // const loading = await this.loadingController.create({\r\n // message: 'Please wait...',\r\n // });\r\n // await loading.present();\r\n if (this.plt.is('cordova')) {\r\n this.api.getPBMPointsnative(orderlist)\r\n .then(data => {\r\n let parsed = JSON.parse(data.data);\r\n this.points = parsed.stPointList.arrPoints;\r\n console.log('punten', data);\r\n // this.categories = res['stResult']['stNavMenu']['arrMenuGroup'];\r\n // loading.dismiss();\r\n\r\n }, err => {\r\n console.log(err);\r\n // loading.dismiss();\r\n\r\n });\r\n } else {\r\n this.api.getPBMPoints(orderlist)\r\n .subscribe(res => {\r\n console.log('punten', res);\r\n this.points = res['stPointList']['arrPoints'];\r\n \r\n // loading.dismiss();\r\n }, err => {\r\n console.log(err);\r\n \r\n // loading.dismiss();\r\n });\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"ion-spinner * {\\n stroke: #ff0000;\\n fill: #8b0000;\\n position: fixed;\\n z-index: 999;\\n height: 5em;\\n width: em;\\n overflow: show;\\n margin: auto;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n right: 0;\\n}\\n\\n.points {\\n font-size: 15px;\\n color: var(--ion-color-primary);\\n font-weight: bold;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9taXRjaG1zZy9Qcm9qZWN0ZW4vbXNnL3NyYy9hcHAvY29tcG9uZW50cy9wYm1wb2ludHMvcGJtcG9pbnRzLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3BibXBvaW50cy9wYm1wb2ludHMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxlQUFBO0VBQ0EsYUFBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7QUNDSjs7QURFQTtFQUNFLGVBQUE7RUFDQSwrQkFBQTtFQUNBLGlCQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3BibXBvaW50cy9wYm1wb2ludHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpb24tc3Bpbm5lciAqIHtcclxuICAgIHN0cm9rZTogI2ZmMDAwMDtcclxuICAgIGZpbGw6ICM4YjAwMDA7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiA5OTk7XHJcbiAgICBoZWlnaHQ6IDVlbTtcclxuICAgIHdpZHRoOiBlbTtcclxuICAgIG92ZXJmbG93OiBzaG93O1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbi5wb2ludHN7XHJcbiAgZm9udC1zaXplOjE1cHg7XHJcbiAgY29sb3I6dmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59IiwiaW9uLXNwaW5uZXIgKiB7XG4gIHN0cm9rZTogI2ZmMDAwMDtcbiAgZmlsbDogIzhiMDAwMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk7XG4gIGhlaWdodDogNWVtO1xuICB3aWR0aDogZW07XG4gIG92ZXJmbG93OiBzaG93O1xuICBtYXJnaW46IGF1dG87XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbn1cblxuLnBvaW50cyB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59Il19 */\"","import { Component, OnInit, Injector } from '@angular/core';\nimport { PopoverController, NavParams, Events, Platform } from '@ionic/angular';\n// import { OpenNativeSettings } from '@ionic-native/open-native-settings/ngx';\nimport { ProductService } from '../../services/product.service';\nimport { CartProvider } from '../../providers/cart/cart';\nimport { BarcodeScanner, BarcodeScannerOptions, BarcodeScanResult } from '@ionic-native/barcode-scanner/ngx';\nimport { BasePage } from '../../pages/base-page/base-page';\nimport { CategoryService } from '../../services/category.service';\nimport { AuthService } from '../../services/auth.service';\n\n@Component({\n selector: 'app-pbmpoints',\n templateUrl: './pbmpoints.component.html',\n styleUrls: ['./pbmpoints.component.scss'],\n})\nexport class PbmpointsComponent extends BasePage {\n page;\n options: BarcodeScannerOptions;\n scannedData:any={};\n item:any;\n points: any;\n orderlist:any;\n\n constructor(\n public events: Events,\n private navParams: NavParams,\n public scanner: BarcodeScanner,\n public api: ProductService,\n private authService: AuthService,\n private plt: Platform,\n private cartService: CartProvider,\n injector: Injector,\n private popoverController: PopoverController) {\n super(injector);\n\n }\n\n ngOnInit() {\n //Get data from popover page\n this.page = this.navParams.get('data');\n }\n\n ionViewDidEnter(categories) {\n // this.itemService.getDataEverywhere();\n // this.categories = this.itemService.categories;\n // if (!this.item .length) {\n this.showLoadingView({ showOverlay: false });\n\n this.getPBMPoints(this.authService.iUserId);\n // }\n // const title = await this.getTrans('APP_NAME');\n // this.setPageTitle(title);\n\n // this.setMetaTags({\n // title: title\n // });\n }\n\n scan(){\n this.options= { \n prompt: 'Scan Barcode',\n showFlipCameraButton : true, // iOS and Android\n showTorchButton : true, // iOS and Android\n torchOn: true,\n resultDisplayDuration: 500,\n };\n this.popoverController.dismiss();\n this.scanner.scan(this.options).then((data) => {\n this.scannedData = data;\n // this.navigateTo(this.currentPath + '/' + data);\n // let scanproduct = this.getSingleProduct('?Code='+this.scannedData.text);\n // if (scanproduct) {\n // this.addToCart(this.item);\n // } else {\n // this.scan();\n // }\n this.navigateTo('/1/home/items/?Code='+this.scannedData.text);\n\n console.log('scanned', this.scannedData.text);\n }, (err) => {\n console.log('Error : ', err);\n })\n }\n\n multiscan(){\n this.options= { \n prompt: 'Scan Barcode',\n showFlipCameraButton : true, // iOS and Android\n showTorchButton : true, // iOS and Android\n torchOn: true,\n resultDisplayDuration: 500,\n };\n this.scanner.scan(this.options).then((data) => {\n this.scannedData = data;\n // this.navigateTo(this.currentPath + '/' + data);\n let scanproduct = this.getSingleProduct('?Code='+this.scannedData.text);\n\n // this.navigateTo(this.currentPath + '/items/?Code='+this.scannedData.text);\n console.log('scanned', this.scannedData.text);\n }, (err) => {\n console.log('Error : ', err);\n })\n }\n\n async getPBMlist() {\n // const loading = await this.loadingController.create({\n // message: 'Please wait...',\n // });\n // await loading.present();\n if (this.plt.is('cordova')) {\n this.api.getPBMlistnative()\n .then(data => {\n let parsed = JSON.parse(data.data);\n this.orderlist = parsed.stListNames.arrListName;\n console.log('orderlist', data);\n // this.categories = res['stResult']['stNavMenu']['arrMenuGroup'];\n // loading.dismiss();\n \n }, err => {\n console.log(err);\n // loading.dismiss();\n\n });\n } else {\n this.api.getPBMlist()\n .subscribe(res => {\n console.log('orderlist', res);\n this.orderlist = res['stListNames']['arrListName'];\n\n // loading.dismiss();\n }, err => {\n console.log(err);\n \n // loading.dismiss();\n });\n }\n }\n\n async getSingleProduct(item:any) {\n // const loading = await this.loadingController.create({\n // message: 'Please wait...',\n // });\n // await loading.present();\n let code = item.substr(6, 7)\n let key = item.substr(13, 6)\n console.log(code)\n console.log(key)\n if (this.plt.is('cordova')) {\n this.api.getProductsByDetailNative(code, key)\n .then(data => {\n let parsed = JSON.parse(data.data);\n this.item = parsed.stArticle;\n // this.items = parsed.stRelated.arrArticleInList;\n console.log('item', data);\n // this.categories = res['stResult']['stNavMenu']['arrMenuGroup'];\n // loading.dismiss();\n }, err => {\n console.log(err);\n // loading.dismiss();\n });\n } else {\n this.api.getProductsByDetail(code, key)\n .subscribe(res => {\n console.log('item', res);\n this.item = res['stArticle'];\n console.log('must be in the cart', this.item)\n // this.items = res['stRelated']['arrArticleInList'];\n // console.log('related', this.items)\n // loading.dismiss();\n }, err => {\n console.log(err);\n // loading.dismiss();\n });\n }\n }\n\n async getPBMPoints(orderlist) {\n // const loading = await this.loadingController.create({\n // message: 'Please wait...',\n // });\n // await loading.present();\n if (this.plt.is('cordova')) {\n this.api.getPBMPointsnative(orderlist)\n .then(data => {\n let parsed = JSON.parse(data.data);\n this.points = parsed.stPointList.arrPoints;\n console.log('punten', data);\n // this.categories = res['stResult']['stNavMenu']['arrMenuGroup'];\n // loading.dismiss();\n\n }, err => {\n console.log(err);\n // loading.dismiss();\n\n });\n } else {\n this.api.getPBMPoints(orderlist)\n .subscribe(res => {\n console.log('punten', res);\n this.points = res['stPointList']['arrPoints'];\n \n // loading.dismiss();\n }, err => {\n console.log(err);\n \n // loading.dismiss();\n });\n }\n }\n\n addToCart(item) {\n console.log(item);\n var productPrice = this.item.nQuantity * parseFloat(item.stPrice.curNetPriceInc);\n let cartProduct = {\n product_id: item.sArticleCode,\n sDescription1: item.sDescription1,\n sArticleBrand: item.sArticleBrand,\n sImageName: item.sImageName,\n sPromoImage: item.sPromoImage,\n count: this.item.nQuantity,\n iNbPoints: item.iNbPoints,\n totalPrice: productPrice\n };\n this.cartService.addToCart(cartProduct).then((val) => {\n\n });\n}\n\n eventFromPopover() {\n this.events.publish('fromPopoverEvent');\n this.popoverController.dismiss();\n }\n\n close(){\n this.popoverController.dismiss();\n }\n\n}","module.exports = \".box {\\n -webkit-box-align: center;\\n align-items: center;\\n background-size: cover;\\n background-position: center;\\n border: 1px dashed var(--ion-color-medium);\\n cursor: pointer;\\n display: -webkit-inline-box;\\n display: inline-flex;\\n height: 110px;\\n -webkit-box-pack: center;\\n justify-content: center;\\n position: relative;\\n width: 110px;\\n}\\n.box ion-icon {\\n font-size: 48px;\\n}\\n.box > div {\\n background-color: rgba(0, 0, 0, 0.2);\\n color: var(--ion-color-dark-contrast);\\n bottom: 0;\\n font-size: 11px;\\n font-weight: bold;\\n padding: 3px 0;\\n position: absolute;\\n text-align: center;\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9taXRjaG1zZy9Qcm9qZWN0ZW4vbXNnL3NyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLHlCQUFBO1VBQUEsbUJBQUE7RUFDQSxzQkFBQTtFQUNBLDJCQUFBO0VBQ0EsMENBQUE7RUFDQSxlQUFBO0VBQ0EsMkJBQUE7RUFBQSxvQkFBQTtFQUNBLGFBQUE7RUFDQSx3QkFBQTtVQUFBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0FDQ0o7QURDSTtFQUNJLGVBQUE7QUNDUjtBREVJO0VBQ0ksb0NBQUE7RUFDQSxxQ0FBQTtFQUNBLFNBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7QUNBUiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYm94IHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBoZWlnaHQ6IDExMHB4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTEwcHg7XHJcblxyXG4gICAgaW9uLWljb24ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNDhweDtcclxuICAgIH1cclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMik7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLWNvbnRyYXN0KTtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIHBhZGRpbmc6IDNweCAwO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbn0iLCIuYm94IHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGhlaWdodDogMTEwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMTBweDtcbn1cbi5ib3ggaW9uLWljb24ge1xuICBmb250LXNpemU6IDQ4cHg7XG59XG4uYm94ID4gZGl2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmstY29udHJhc3QpO1xuICBib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDNweCAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG59Il19 */\"","import { Component, OnInit, Injector } from '@angular/core';\nimport { PopoverController, NavParams, Events, Platform } from '@ionic/angular';\n// import { OpenNativeSettings } from '@ionic-native/open-native-settings/ngx';\nimport { ProductService } from '../../services/product.service';\nimport { CartProvider } from '../../providers/cart/cart';\nimport { BarcodeScanner, BarcodeScannerOptions, BarcodeScanResult } from '@ionic-native/barcode-scanner/ngx';\nimport { BasePage } from '../../pages/base-page/base-page';\n\n@Component({\n selector: 'app-settings',\n templateUrl: './settings.component.html',\n styleUrls: ['./settings.component.scss']\n})\nexport class SettingsComponent extends BasePage {\n page;\n options: BarcodeScannerOptions;\n scannedData:any={};\n item:any\n\n constructor(\n public events: Events,\n private navParams: NavParams,\n public scanner: BarcodeScanner,\n public api: ProductService,\n private plt: Platform,\n private cartService: CartProvider,\n injector: Injector,\n private popoverController: PopoverController) {\n super(injector);\n\n }\n\n ngOnInit() {\n //Get data from popover page\n this.page = this.navParams.get('data');\n }\n\n scan(){\n this.options= { \n prompt: 'Scan Barcode',\n showFlipCameraButton : true, // iOS and Android\n showTorchButton : true, // iOS and Android\n torchOn: true,\n resultDisplayDuration: 500,\n };\n this.popoverController.dismiss();\n this.scanner.scan(this.options).then((data) => {\n this.scannedData = data;\n // this.navigateTo(this.currentPath + '/' + data);\n // let scanproduct = this.getSingleProduct('?Code='+this.scannedData.text);\n // if (scanproduct) {\n // this.addToCart(this.item);\n // } else {\n // this.scan();\n // }\n this.navigateTo('/1/home/items/?Code='+this.scannedData.text);\n\n console.log('scanned', this.scannedData.text);\n }, (err) => {\n console.log('Error : ', err);\n })\n }\n\n multiscan(){\n this.options= { \n prompt: 'Scan Barcode',\n showFlipCameraButton : true, // iOS and Android\n showTorchButton : true, // iOS and Android\n torchOn: true,\n resultDisplayDuration: 500,\n };\n this.scanner.scan(this.options).then((data) => {\n this.scannedData = data;\n // this.navigateTo(this.currentPath + '/' + data);\n let scanproduct = this.getSingleProduct('?Code='+this.scannedData.text);\n\n // this.navigateTo(this.currentPath + '/items/?Code='+this.scannedData.text);\n console.log('scanned', this.scannedData.text);\n }, (err) => {\n console.log('Error : ', err);\n })\n }\n\n async getSingleProduct(item:any) {\n // const loading = await this.loadingController.create({\n // message: 'Please wait...',\n // });\n // await loading.present();\n let code = item.substr(6, 7)\n let key = item.substr(13, 6)\n console.log(code)\n console.log(key)\n if (this.plt.is('cordova')) {\n this.api.getProductsByDetailNative(code, key)\n .then(data => {\n let parsed = JSON.parse(data.data);\n this.item = parsed.stArticle;\n // this.items = parsed.stRelated.arrArticleInList;\n console.log('item', data);\n // this.categories = res['stResult']['stNavMenu']['arrMenuGroup'];\n // loading.dismiss();\n }, err => {\n console.log(err);\n // loading.dismiss();\n });\n } else {\n this.api.getProductsByDetail(code, key)\n .subscribe(res => {\n console.log('item', res);\n this.item = res['stArticle'];\n console.log('must be in the cart', this.item)\n // this.items = res['stRelated']['arrArticleInList'];\n // console.log('related', this.items)\n // loading.dismiss();\n }, err => {\n console.log(err);\n // loading.dismiss();\n });\n }\n }\n\n addToCart(item) {\n console.log(item);\n var productPrice = this.item.nQuantity * parseFloat(item.stPrice.curNetPriceInc);\n let cartProduct = {\n product_id: item.sArticleCode,\n sDescription1: item.sDescription1,\n sArticleBrand: item.sArticleBrand,\n sImageName: item.sImageName,\n sPromoImage: item.sPromoImage,\n count: this.item.nQuantity,\n iNbPoints: item.iNbPoints,\n totalPrice: productPrice\n };\n this.cartService.addToCart(cartProduct).then((val) => {\n\n });\n}\n\n eventFromPopover() {\n this.events.publish('fromPopoverEvent');\n this.popoverController.dismiss();\n }\n\n close(){\n this.popoverController.dismiss();\n }\n\n}","module.exports = \".box {\\n -webkit-box-align: center;\\n align-items: center;\\n background-size: cover;\\n background-position: center;\\n border: 1px dashed var(--ion-color-medium);\\n cursor: pointer;\\n display: -webkit-inline-box;\\n display: inline-flex;\\n height: 110px;\\n -webkit-box-pack: center;\\n justify-content: center;\\n position: relative;\\n width: 110px;\\n}\\n.box ion-icon {\\n font-size: 48px;\\n}\\n.box > div {\\n background-color: rgba(0, 0, 0, 0.2);\\n color: var(--ion-color-dark-contrast);\\n bottom: 0;\\n font-size: 11px;\\n font-weight: bold;\\n padding: 3px 0;\\n position: absolute;\\n text-align: center;\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9taXRjaG1zZy9Qcm9qZWN0ZW4vbXNnL3NyYy9hcHAvY29tcG9uZW50cy91cGxvYWQtYm94L3VwbG9hZC1ib3guY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvdXBsb2FkLWJveC91cGxvYWQtYm94LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0kseUJBQUE7VUFBQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsMkJBQUE7RUFDQSwwQ0FBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtFQUFBLG9CQUFBO0VBQ0EsYUFBQTtFQUNBLHdCQUFBO1VBQUEsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUNDSjtBRENJO0VBQ0ksZUFBQTtBQ0NSO0FERUk7RUFDSSxvQ0FBQTtFQUNBLHFDQUFBO0VBQ0EsU0FBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtBQ0FSIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy91cGxvYWQtYm94L3VwbG9hZC1ib3guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYm94IHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBoZWlnaHQ6IDExMHB4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTEwcHg7XHJcblxyXG4gICAgaW9uLWljb24ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNDhweDtcclxuICAgIH1cclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMik7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLWNvbnRyYXN0KTtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIHBhZGRpbmc6IDNweCAwO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbn0iLCIuYm94IHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGhlaWdodDogMTEwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMTBweDtcbn1cbi5ib3ggaW9uLWljb24ge1xuICBmb250LXNpemU6IDQ4cHg7XG59XG4uYm94ID4gZGl2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmstY29udHJhc3QpO1xuICBib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDNweCAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG59Il19 */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, ElementRef, Input } from '@angular/core';\r\nimport { Platform, ActionSheetController } from '@ionic/angular';\r\nimport { CameraOptions, Camera } from '@ionic-native/camera/ngx';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n// import { ParseFile } from 'src/app/services/parse-file';\r\n\r\n@Component({\r\n selector: 'app-upload-box',\r\n templateUrl: './upload-box.component.html',\r\n styleUrls: ['./upload-box.component.scss']\r\n})\r\nexport class UploadBoxComponent implements OnInit {\r\n\r\n @ViewChild('fileInput', {static:true}) fileInput: ElementRef;\r\n\r\n @Input() text: string;\r\n\r\n @Output('onFileUploaded')\r\n\r\n // private eventFileUpload: EventEmitter = new EventEmitter();\r\n \r\n public parseFile: any;\r\n public isUploading: boolean = false;\r\n\r\n constructor(private platform: Platform,\r\n // private parseFileService: ParseFile,\r\n private camera: Camera,\r\n private actionSheetCtrl: ActionSheetController,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onBoxTouched() {\r\n if (this.platform.is('cordova')) {\r\n this.presentActionSheet();\r\n } else {\r\n this.fileInput.nativeElement.click();\r\n }\r\n }\r\n\r\n onFileChanged(event: any = null) {\r\n // this.doUpload(event.target.files[0], false);\r\n }\r\n\r\n async chooseImage(sourceType: number) {\r\n\r\n try {\r\n\r\n const options: CameraOptions = {\r\n sourceType: sourceType,\r\n destinationType: this.camera.DestinationType.DATA_URL,\r\n targetWidth: 1000,\r\n targetHeight: 1000,\r\n quality: 80,\r\n }\r\n\r\n const imageData = await this.camera.getPicture(options);\r\n\r\n // this.doUpload(imageData);\r\n\r\n } catch (error) {\r\n console.warn(error);\r\n }\r\n\r\n }\r\n\r\n async presentActionSheet() {\r\n\r\n const trans = await this.translate.get([\r\n 'PHOTO_LIBRARY',\r\n 'CAMERA',\r\n 'CANCEL',\r\n 'CHOOSE_AN_OPTION']\r\n ).toPromise();\r\n\r\n const actionSheet = await this.actionSheetCtrl.create({\r\n header: trans.CHOOSE_AN_OPTION,\r\n buttons: [{\r\n text: trans.PHOTO_LIBRARY,\r\n handler: () => {\r\n this.chooseImage(this.camera.PictureSourceType.PHOTOLIBRARY);\r\n }\r\n }, {\r\n text: trans.CAMERA,\r\n handler: () => {\r\n this.chooseImage(this.camera.PictureSourceType.CAMERA);\r\n }\r\n },{\r\n text: trans.CANCEL,\r\n role: 'cancel'\r\n }]\r\n });\r\n\r\n return await actionSheet.present();\r\n\r\n }\r\n\r\n // async doUpload(fileOrBase64: string, isBase64: boolean = true) {\r\n\r\n // try {\r\n // this.isUploading = true;\r\n // this.parseFile = await this.parseFileService.upload(fileOrBase64, isBase64);\r\n // this.isUploading = false;\r\n // this.eventFileUpload.emit(this.parseFile);\r\n // } catch (error) {\r\n // this.isUploading = false;\r\n // console.warn(error.message);\r\n // }\r\n \r\n // }\r\n\r\n\r\n}\r\n","import { Injector } from '@angular/core';\r\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { LoadingController, NavController, ToastController, ModalController, Events, AlertController, IonRefresher, IonInfiniteScroll, Platform,\r\n} from '@ionic/angular';\r\nimport { DomSanitizer, Meta, Title } from '@angular/platform-browser';\r\nimport { Preference } from '../../services/preference';\r\n// import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nexport abstract class BasePage {\r\n\r\n public isErrorViewVisible: boolean;\r\n public isEmptyViewVisible: boolean;\r\n public isContentViewVisible: boolean;\r\n public isLoadingViewVisible: boolean;\r\n public isAuthViewVisible: boolean;\r\n\r\n public preference: Preference;\r\n\r\n private activatedRoute: ActivatedRoute;\r\n protected router: Router;\r\n private meta: Meta;\r\n private title: Title;\r\n\r\n protected refresher: IonRefresher;\r\n protected infiniteScroll: IonInfiniteScroll;\r\n protected translate: TranslateService;\r\n protected sanitizer: DomSanitizer;\r\n protected modalCtrl: ModalController;\r\n protected events: Events;\r\n private offline: boolean;\r\n\r\n private loader: any;\r\n public navCtrl: NavController;\r\n public toastCtrl: ToastController;\r\n private loadingCtrl: LoadingController;\r\n private alertCtrl: AlertController;\r\n // private inAppBrowser: InAppBrowser;\r\n public platform: Platform;\r\n\r\n private mCurrentPath: string;\r\n\r\n constructor(injector: Injector) {\r\n this.router = injector.get(Router);\r\n this.activatedRoute = injector.get(ActivatedRoute);\r\n this.navCtrl = injector.get(NavController);\r\n this.loadingCtrl = injector.get(LoadingController);\r\n this.toastCtrl = injector.get(ToastController);\r\n this.alertCtrl = injector.get(AlertController);\r\n this.translate = injector.get(TranslateService);\r\n this.sanitizer = injector.get(DomSanitizer);\r\n this.preference = injector.get(Preference);\r\n this.events = injector.get(Events);\r\n this.modalCtrl = injector.get(ModalController);\r\n // this.inAppBrowser = injector.get(InAppBrowser);\r\n this.platform = injector.get(Platform);\r\n\r\n this.meta = injector.get(Meta);\r\n this.title = injector.get(Title);\r\n\r\n this.router.events.subscribe((event) => {\r\n // if (event instanceof NavigationEnd) {\r\n this.mCurrentPath = this.router.url.split('?')[0];\r\n // }\r\n })\r\n this.offline;\r\n }\r\n\r\n // abstract enableMenuSwipe(): boolean;\r\n\r\n public get currentPath(): string {\r\n return this.mCurrentPath;\r\n }\r\n\r\n // public get serverUrl(): string {\r\n // return environment.serverUrl;\r\n // }\r\n\r\n public get appUrl(): string {\r\n return environment.appUrl;\r\n }\r\n\r\n // public get appId(): string {\r\n // return environment.appId;\r\n // }\r\n\r\n // public get stripePublicKey(): string {\r\n // return environment.serverUrl;\r\n // }\r\n\r\n // public get appImageUrl(): string {\r\n // return environment.appImageUrl;\r\n // }\r\n\r\n public setPageTitle(title: string): void {\r\n this.title.setTitle(title);\r\n }\r\n\r\n public async setMetaTags(config1: {\r\n title?: string,\r\n description?: string,\r\n image?: string,\r\n slug?: string }) {\r\n\r\n const str = await this.getTrans(['APP_NAME', 'APP_DESCRIPTION']);\r\n\r\n const config = {\r\n title : str.APP_NAME,\r\n description: str.APP_DESCRIPTION,\r\n // image: this.appImageUrl,\r\n ...config1\r\n };\r\n\r\n let url = null;\r\n\r\n // if (config.slug) {\r\n // url = this.appUrl + '/' + config.slug\r\n // } else {\r\n // url = this.appUrl + this.currentPath;\r\n // }\r\n\r\n this.meta.updateTag({\r\n property: 'og:title',\r\n content: config.title\r\n });\r\n this.meta.updateTag({\r\n property: 'og:description',\r\n content: config.description\r\n });\r\n \r\n this.meta.updateTag({\r\n property: 'og:image',\r\n content: config.image\r\n });\r\n\r\n this.meta.updateTag({\r\n property: 'og:image:alt',\r\n content: config.title\r\n });\r\n\r\n this.meta.updateTag({\r\n property: 'og:url',\r\n content: url\r\n });\r\n\r\n this.meta.updateTag({\r\n name: 'twitter:card',\r\n content: 'summary_large_image'\r\n });\r\n\r\n this.meta.updateTag({\r\n name: 'twitter:title',\r\n content: config.title\r\n });\r\n\r\n this.meta.updateTag({\r\n name: 'twitter:text:title',\r\n content: config.title\r\n });\r\n\r\n this.meta.updateTag({\r\n name: 'twitter:description',\r\n content: config.description\r\n });\r\n\r\n this.meta.updateTag({\r\n name: 'twitter:image',\r\n content: config.image\r\n });\r\n\r\n this.meta.updateTag({\r\n name: 'twitter:image:alt',\r\n content: config.title\r\n });\r\n }\r\n\r\n async showLoadingView(params: { showOverlay: boolean }) {\r\n\r\n this.isAuthViewVisible = false;\r\n this.isErrorViewVisible = false;\r\n this.isEmptyViewVisible = false;\r\n this.isContentViewVisible = false;\r\n this.isLoadingViewVisible = true;\r\n\r\n if (params.showOverlay) {\r\n const loadingText = await this.getTrans('LOADING');\r\n\r\n this.loader = await this.loadingCtrl.create({\r\n message: loadingText\r\n });\r\n \r\n return await this.loader.present();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n async dismissLoadingView() {\r\n if (!this.loader) return;\r\n\r\n try {\r\n return await this.loader.dismiss()\r\n } catch (error) {\r\n console.log('ERROR: LoadingController dismiss', error);\r\n }\r\n }\r\n\r\n showContentView() {\r\n\r\n this.isAuthViewVisible = false;\r\n this.isErrorViewVisible = false;\r\n this.isEmptyViewVisible = false;\r\n this.isLoadingViewVisible = false;\r\n this.isContentViewVisible = true;\r\n\r\n this.dismissLoadingView();\r\n }\r\n\r\n showEmptyView() {\r\n\r\n this.isAuthViewVisible = false;\r\n this.isErrorViewVisible = false;\r\n this.isLoadingViewVisible = false;\r\n this.isContentViewVisible = false;\r\n this.isEmptyViewVisible = true;\r\n\r\n this.dismissLoadingView();\r\n }\r\n\r\n showErrorView() {\r\n\r\n this.isAuthViewVisible = false;\r\n this.isLoadingViewVisible = false;\r\n this.isContentViewVisible = false;\r\n this.isEmptyViewVisible = false;\r\n this.isErrorViewVisible = true;\r\n\r\n this.dismissLoadingView();\r\n }\r\n\r\n showAuthView() {\r\n \r\n this.isLoadingViewVisible = false;\r\n this.isContentViewVisible = false;\r\n this.isEmptyViewVisible = false;\r\n this.isErrorViewVisible = false;\r\n this.isAuthViewVisible = true;\r\n\r\n this.dismissLoadingView();\r\n }\r\n\r\n onRefreshComplete(data = null) {\r\n\r\n if (this.refresher) {\r\n this.refresher.complete();\r\n }\r\n\r\n if (this.infiniteScroll) {\r\n this.infiniteScroll.complete();\r\n\r\n if (data && data.length === 0) {\r\n this.infiniteScroll.disabled = true;\r\n } else {\r\n this.infiniteScroll.disabled = false;\r\n }\r\n }\r\n }\r\n\r\n async showToast(message: string) {\r\n const toast = await this.toastCtrl.create({\r\n message: message,\r\n duration: 3000,\r\n position: 'bottom'\r\n });\r\n\r\n return await toast.present();\r\n }\r\n\r\n async showAlert(message: string) {\r\n \r\n const okText = await this.getTrans('OK');\r\n\r\n const alert = await this.alertCtrl.create({\r\n header: '',\r\n message: message,\r\n buttons: [okText]\r\n });\r\n\r\n return await alert.present();\r\n }\r\n\r\n showConfirm(message: string): Promise {\r\n\r\n return new Promise(async (resolve) => {\r\n\r\n const str = await this.getTrans(['OK', 'CANCEL']);\r\n\r\n const confirm = await this.alertCtrl.create({\r\n header: '',\r\n message: message,\r\n buttons: [{\r\n text: str.CANCEL,\r\n role: 'cancel',\r\n handler: () => resolve(false),\r\n }, {\r\n text: str.OK,\r\n handler: () => resolve(true)\r\n }]\r\n });\r\n\r\n confirm.present();\r\n \r\n });\r\n\r\n }\r\n\r\n public getShareUrl(slug: string) {\r\n return this.appUrl + '/1/home/items/' + slug;\r\n }\r\n\r\n isDesktop(): boolean {\r\n return this.platform.is('desktop');\r\n }\r\n\r\n isIos(): boolean {\r\n return this.platform.is('ios');\r\n }\r\n\r\n isAndroid(): boolean {\r\n return this.platform.is('android');\r\n }\r\n\r\n isHybrid(): boolean {\r\n return this.platform.is('hybrid');\r\n }\r\n\r\n isPwa(): boolean {\r\n return this.platform.is('pwa');\r\n }\r\n\r\n isMobile(): boolean {\r\n return this.platform.is('mobile');\r\n }\r\n\r\n setRoot(url: string) {\r\n this.navCtrl.setDirection('root', false);\r\n this.router.navigateByUrl(url);\r\n }\r\n\r\n navigateTo(page: any, queryParams: any = []) {\r\n return this.router.navigate([page], { queryParams: queryParams });\r\n }\r\n\r\n navigateForward(page: any, queryParams: any = []) {\r\n return this.navCtrl.navigateForward([page], { queryParams: queryParams });\r\n }\r\n\r\n getParams() {\r\n return this.activatedRoute.snapshot.params;\r\n }\r\n\r\n getQueryParams() {\r\n return this.activatedRoute.snapshot.queryParams;\r\n }\r\n\r\n getTrans(key: string | string[]) {\r\n return this.translate.get(key).toPromise();\r\n }\r\n\r\n goToCartPage() {\r\n this.navigateTo('/1/cart');\r\n }\r\n\r\n // async openUrl(url: string) {\r\n // this.inAppBrowser.create(url, '_system');\r\n // }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { ModalPage } from './modal.page';\r\nimport { SharedModule } from '../../shared.module';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ModalPage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n RouterModule.forChild(routes),\r\n SharedModule\r\n ],\r\n declarations: [ModalPage],\r\n entryComponents: [ModalPage]\r\n})\r\nexport class ModalPageModule {}\r\n","module.exports = \".header .toolbar-title span {\\n left: 0;\\n position: absolute;\\n right: 0;\\n width: 100px;\\n margin: auto;\\n text-align: center;\\n}\\n.header .toolbar-title ion-icon {\\n color: white;\\n}\\nion-content::before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 66.66667%;\\n height: 100%;\\n display: block;\\n background: white;\\n}\\nion-row {\\n margin-top: 4px;\\n}\\nion-row .col {\\n padding: 0;\\n}\\nion-row .col ion-segment {\\n display: block;\\n}\\nion-row .col ion-segment ion-segment-button {\\n margin-top: 10px;\\n width: 100% !important;\\n background: none !important;\\n border: none !important;\\n text-transform: none !important;\\n color: black !important;\\n font-size: 1.6rem !important;\\n font-weight: 500 !important;\\n text-align: justify !important;\\n height: auto !important;\\n padding: 7px 15px !important;\\n padding-left: 22px !important;\\n opacity: 1 !important;\\n}\\nion-row .col ion-segment ion-segment-button span {\\n font-size: 1rem;\\n background: black;\\n padding: 2px 3px;\\n border-radius: 50%;\\n height: 12px;\\n display: block;\\n line-height: 7px;\\n color: white;\\n}\\nion-row .col ion-segment ion-segment-button.segment-activated {\\n background: white !important;\\n color: black !important;\\n}\\nion-row .col ion-segment ion-segment-button.segment-activated span {\\n background: lichtblue;\\n}\\nion-row .col ion-list {\\n margin-bottom: 0;\\n}\\nion-row .col ion-list.tab_container {\\n background: white !important;\\n width: 100%;\\n padding: 15px;\\n}\\nion-row .col ion-list.tab_container .search-box {\\n margin-bottom: 12px;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar {\\n background: lightgrey;\\n border: none !important;\\n padding: 0px !important;\\n border-radius: 5px;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-input {\\n border-radius: 5px;\\n padding: 8px 10px !important;\\n padding-left: 40px !important;\\n box-shadow: none;\\n border: none;\\n font-size: 1.4rem;\\n font-weight: 400;\\n letter-spacing: 0;\\n height: auto;\\n background: #F9F9F9;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-input::-webkit-input-placeholder {\\n color: #b3b3b3;\\n font-weight: 400;\\n font-size: 1.3rem;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-input::-moz-placeholder {\\n color: #b3b3b3;\\n font-weight: 400;\\n font-size: 1.3rem;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-input:-ms-input-placeholder {\\n color: #b3b3b3;\\n font-weight: 400;\\n font-size: 1.3rem;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-input:-moz-placeholder {\\n color: #b3b3b3;\\n font-weight: 400;\\n font-size: 1.3rem;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-search-icon {\\n background-size: 24px !important;\\n width: 33px;\\n opacity: 0.3;\\n height: 30px;\\n left: 8px;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar.searchbar-ios .searchbar-input {\\n padding: 14px 55px !important;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar.searchbar-ios .searchbar-search-icon {\\n left: 20px;\\n top: 11px;\\n}\\nion-row .col ion-list.tab_container ion-item {\\n padding: 0;\\n min-height: 40px;\\n}\\nion-row .col ion-list.tab_container ion-item .item-inner {\\n padding: 0;\\n}\\nion-row .col ion-list.tab_container ion-item ion-checkbox[item-end] {\\n margin: 0 !important;\\n}\\nion-row .col ion-list.tab_container ion-item ion-checkbox .checkbox-icon.checkbox-checked {\\n border-color: white;\\n background-color: #00203F;\\n}\\nion-row .col ion-list.tab_container ion-item ion-label {\\n margin: 0;\\n font-size: 1.6rem;\\n font-weight: 500;\\n}\\nion-row .col ion-list.tab_container ion-item.item-checkbox-checked ion-label {\\n color: #00203F;\\n}\\nh2 {\\n margin: 0;\\n position: absolute;\\n bottom: 18px;\\n left: 0;\\n width: 33.33%;\\n text-align: center;\\n font-size: 1.6rem;\\n}\\nion-footer::before, ion-footer::after {\\n display: none;\\n}\\nion-footer .button.btn {\\n font-size: 1.7rem !important;\\n margin: 0;\\n height: 60px;\\n text-transform: uppercase;\\n}\\nion-footer .btn.shadow.reset {\\n background-color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9taXRjaG1zZy9Qcm9qZWN0ZW4vbXNnL3NyYy9hcHAvcGFnZXMvbW9kYWwvbW9kYWwucGFnZS5zY3NzIiwic3JjL2FwcC9wYWdlcy9tb2RhbC9tb2RhbC5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRVE7RUFDSSxPQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBQ0RaO0FER1E7RUFDSSxZQUFBO0FDRFo7QURNSTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDSFI7QURNQTtFQUNJLGVBQUE7QUNISjtBRElJO0VBQ0ksVUFBQTtBQ0ZSO0FER1E7RUFDSSxjQUFBO0FDRFo7QURFWTtFQUNJLGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSwyQkFBQTtFQUNBLHVCQUFBO0VBQ0EsK0JBQUE7RUFDQSx1QkFBQTtFQUNBLDRCQUFBO0VBQ0EsMkJBQUE7RUFDQSw4QkFBQTtFQUNBLHVCQUFBO0VBQ0EsNEJBQUE7RUFDQSw2QkFBQTtFQUNBLHFCQUFBO0FDQWhCO0FEQ2dCO0VBQ0ksZUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0FDQ3BCO0FEQ2dCO0VBQ0ksNEJBQUE7RUFDQSx1QkFBQTtBQ0NwQjtBREFvQjtFQUNJLHFCQUFBO0FDRXhCO0FER1E7RUFDSSxnQkFBQTtBQ0RaO0FERVk7RUFDSSw0QkFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0FDQWhCO0FEQ2dCO0VBQ0ksbUJBQUE7QUNDcEI7QURBb0I7RUFDSSxxQkFBQTtFQUNBLHVCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtBQ0V4QjtBRER3QjtFQUNJLGtCQUFBO0VBQ0EsNEJBQUE7RUFDQSw2QkFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtBQ0c1QjtBREY0QjtFQUNJLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0FDSWhDO0FERjRCO0VBQ0ksY0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUNJaEM7QURGNEI7RUFDSSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0loQztBREY0QjtFQUNJLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0FDSWhDO0FERHdCO0VBQ0ksZ0NBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0FDRzVCO0FEQTRCO0VBQ0ksNkJBQUE7QUNFaEM7QURBNEI7RUFDSSxVQUFBO0VBQ0EsU0FBQTtBQ0VoQztBREdnQjtFQUNJLFVBQUE7RUFDQSxnQkFBQTtBQ0RwQjtBREVvQjtFQUNJLFVBQUE7QUNBeEI7QURHd0I7RUFDSSxvQkFBQTtBQ0Q1QjtBREk0QjtFQUNJLG1CQUFBO0VBQ0EseUJBQUE7QUNGaEM7QURNb0I7RUFDSSxTQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtBQ0p4QjtBRE93QjtFQUNJLGNBQUE7QUNMNUI7QURhQTtFQUNJLFNBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxPQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7QUNWSjtBRGFJO0VBRUksYUFBQTtBQ1hSO0FEYUk7RUFDSSw0QkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7QUNYUjtBRGFJO0VBQ0ksdUJBQUE7QUNYUiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFsL21vZGFsLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWFkZXIge1xyXG4gICAgLnRvb2xiYXItdGl0bGUge1xyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpb24taWNvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKHdoaXRlLCAxMCUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5pb24tY29udGVudCB7XHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgd2lkdGg6IDY2LjY2NjY3JTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB9XHJcbn1cclxuaW9uLXJvdyB7XHJcbiAgICBtYXJnaW4tdG9wOiA0cHg7XHJcbiAgICAuY29sIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIGlvbi1zZWdtZW50IHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIGlvbi1zZWdtZW50LWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmUhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBibGFjayFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeSFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCAxNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIycHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweCAzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTJweDtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogN3B4O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYuc2VnbWVudC1hY3RpdmF0ZWQge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxhY2shaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaWNodGJsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlvbi1saXN0IHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgJi50YWJfY29udGFpbmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTVweDtcclxuICAgICAgICAgICAgICAgIC5zZWFyY2gtYm94IHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGlvbi1zZWFyY2hiYXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaWdodGdyZXk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2VhcmNoYmFyLWlucHV0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHghaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0Y5RjlGOTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKGdyYXksIDIwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKGdyYXksIDIwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogbGlnaHRlbihncmF5LCAyMCUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOi1tb3otcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKGdyYXksIDIwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2VhcmNoYmFyLXNlYXJjaC1pY29uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjRweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuMztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDhweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmLnNlYXJjaGJhci1pb3Mge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNlYXJjaGJhci1pbnB1dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTRweCA1NXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2VhcmNoYmFyLXNlYXJjaC1pY29uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTFweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlvbi1pdGVtIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgLml0ZW0taW5uZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpb24tY2hlY2tib3gge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmW2l0ZW0tZW5kXSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2hlY2tib3gtaWNvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmNoZWNrYm94LWNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMjAzRjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpb24tbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLml0ZW0tY2hlY2tib3gtY2hlY2tlZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlvbi1sYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzAwMjAzRjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5oMiB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDE4cHg7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDMzLjMzJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG59XHJcbmlvbi1mb290ZXIge1xyXG4gICAgJjo6YmVmb3JlLFxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAuYnV0dG9uLmJ0biB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjdyZW0gIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICB9XHJcbiAgICAuYnRuLnNoYWRvdy5yZXNldHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xyXG4gICAgfVxyXG59IiwiLmhlYWRlciAudG9vbGJhci10aXRsZSBzcGFuIHtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMHB4O1xuICBtYXJnaW46IGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5oZWFkZXIgLnRvb2xiYXItdGl0bGUgaW9uLWljb24ge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbmlvbi1jb250ZW50OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG5pb24tcm93IHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuaW9uLXJvdyAuY29sIHtcbiAgcGFkZGluZzogMDtcbn1cbmlvbi1yb3cgLmNvbCBpb24tc2VnbWVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuaW9uLXJvdyAuY29sIGlvbi1zZWdtZW50IGlvbi1zZWdtZW50LWJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuNnJlbSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDdweCAxNXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMjJweCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5pb24tcm93IC5jb2wgaW9uLXNlZ21lbnQgaW9uLXNlZ21lbnQtYnV0dG9uIHNwYW4ge1xuICBmb250LXNpemU6IDFyZW07XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xuICBwYWRkaW5nOiAycHggM3B4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGhlaWdodDogMTJweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiA3cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbmlvbi1yb3cgLmNvbCBpb24tc2VnbWVudCBpb24tc2VnbWVudC1idXR0b24uc2VnbWVudC1hY3RpdmF0ZWQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbn1cbmlvbi1yb3cgLmNvbCBpb24tc2VnbWVudCBpb24tc2VnbWVudC1idXR0b24uc2VnbWVudC1hY3RpdmF0ZWQgc3BhbiB7XG4gIGJhY2tncm91bmQ6IGxpY2h0Ymx1ZTtcbn1cbmlvbi1yb3cgLmNvbCBpb24tbGlzdCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5pb24tcm93IC5jb2wgaW9uLWxpc3QudGFiX2NvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxNXB4O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3gge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhciB7XG4gIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5pb24tcm93IC5jb2wgaW9uLWxpc3QudGFiX2NvbnRhaW5lciAuc2VhcmNoLWJveCBpb24tc2VhcmNoYmFyIC5zZWFyY2hiYXItaW5wdXQge1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNDBweCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhciAuc2VhcmNoYmFyLWlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNiM2IzYjM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhciAuc2VhcmNoYmFyLWlucHV0OjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNiM2IzYjM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhciAuc2VhcmNoYmFyLWlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYjNiM2IzO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbmlvbi1yb3cgLmNvbCBpb24tbGlzdC50YWJfY29udGFpbmVyIC5zZWFyY2gtYm94IGlvbi1zZWFyY2hiYXIgLnNlYXJjaGJhci1pbnB1dDotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNiM2IzYjM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhciAuc2VhcmNoYmFyLXNlYXJjaC1pY29uIHtcbiAgYmFja2dyb3VuZC1zaXplOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAzM3B4O1xuICBvcGFjaXR5OiAwLjM7XG4gIGhlaWdodDogMzBweDtcbiAgbGVmdDogOHB4O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhci5zZWFyY2hiYXItaW9zIC5zZWFyY2hiYXItaW5wdXQge1xuICBwYWRkaW5nOiAxNHB4IDU1cHggIWltcG9ydGFudDtcbn1cbmlvbi1yb3cgLmNvbCBpb24tbGlzdC50YWJfY29udGFpbmVyIC5zZWFyY2gtYm94IGlvbi1zZWFyY2hiYXIuc2VhcmNoYmFyLWlvcyAuc2VhcmNoYmFyLXNlYXJjaC1pY29uIHtcbiAgbGVmdDogMjBweDtcbiAgdG9wOiAxMXB4O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgaW9uLWl0ZW0ge1xuICBwYWRkaW5nOiAwO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgaW9uLWl0ZW0gLml0ZW0taW5uZXIge1xuICBwYWRkaW5nOiAwO1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgaW9uLWl0ZW0gaW9uLWNoZWNrYm94W2l0ZW0tZW5kXSB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgaW9uLWl0ZW0gaW9uLWNoZWNrYm94IC5jaGVja2JveC1pY29uLmNoZWNrYm94LWNoZWNrZWQge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAyMDNGO1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgaW9uLWl0ZW0gaW9uLWxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbmlvbi1yb3cgLmNvbCBpb24tbGlzdC50YWJfY29udGFpbmVyIGlvbi1pdGVtLml0ZW0tY2hlY2tib3gtY2hlY2tlZCBpb24tbGFiZWwge1xuICBjb2xvcjogIzAwMjAzRjtcbn1cblxuaDIge1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxOHB4O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMzMuMzMlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xufVxuXG5pb24tZm9vdGVyOjpiZWZvcmUsIGlvbi1mb290ZXI6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmlvbi1mb290ZXIgLmJ1dHRvbi5idG4ge1xuICBmb250LXNpemU6IDEuN3JlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogNjBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbmlvbi1mb290ZXIgLmJ0bi5zaGFkb3cucmVzZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn0iXX0= */\"","import { Component, ViewChild, OnInit, Injector } from '@angular/core';\r\nimport { NavController ,Platform, Events, ModalController } from '@ionic/angular';\r\nimport { ProductsProvider } from '../../providers/products/products';\r\nimport { CategoryProvider } from '../../providers/category/category';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { ProductService } from '../../services/product.service';\r\nimport { BasePage } from '../base-page/base-page';\r\nimport { Storage } from '@ionic/storage';\r\n@Component({\r\n selector: 'page-modal',\r\n templateUrl: 'modal.page.html',\r\n styleUrls: ['modal.page.scss'],\r\n})\r\nexport class ModalPage extends BasePage {\r\n // @ViewChild(Nav) nav: Nav;\r\n countries:any[];\r\n productRows:any;\r\n filterdata:any; \r\n item:any;\r\n Object = Object;\r\n category: Observable;\r\n products: Observable;\r\n // filters: Observable;\r\n filterows: Observable;\r\n objectKeys: any = Object.keys;\r\n groups:Observable;\r\n show = 1;\r\n iPropGrpID: any;\r\n filters;\r\n filtercategory;\r\n msg:any;\r\n customActionSheetOptions: any = {\r\n header: '#005FA9',\r\n subHeader: '#005FA9'\r\n };\r\n customAlertOptions: any = {\r\n header: 'Pizza Toppings',\r\n subHeader: 'Select your toppings',\r\n message: '$1.00 per topping',\r\n translucent: true\r\n };\r\n customPopoverOptions: any = {\r\n header: 'Hair Color',\r\n subHeader: 'Select your hair color',\r\n message: 'Only select your dominant hair color'\r\n };\r\n nCnt: number = 0;\r\n constructor(injector: Injector,public storage: Storage, private plt: Platform, private api2:ProductService, private modal:ModalController, private productService:ProductsProvider, public navCtrl: NavController, private categoryService:CategoryProvider, public events:Events) {\r\n // this.getCountries();\r\n // this.loadFilters();\r\n super(injector);\r\n }\r\n ngOnInit(){\r\n console.log('test', `${this.filters}`)\r\n }\r\n clickMe(event:Event) :void {\r\n this.nCnt = this.nCnt + 1;\r\n this.msg = this.nCnt;\r\n console.log('msg', this.msg)\r\n}\r\n compareWithFn = (o1, o2) => {\r\n return o1 && o2 ? o1.id === o2.id : o1 === o2;\r\n };\r\n\r\n ionViewDidEnter(category: any){\r\n console.log(\"ionViewDidEnter homepage\");\r\n this.products = this.productService.products;\r\n this.loadFilters();\r\n this.loadProductsfilters(this.filters)\r\n // console.log(this.navParams.get('category').iGroupId);\r\n }\r\n initializeItems(): void {\r\n this.filters; \r\n this.filtercategory;\r\n this.filterows;\r\n this.products = this.productService.products;\r\n this.countries = this.categoryService.countries;\r\n }\r\n closeModal(){\r\n // this.viewCtrl.dismiss();\r\n this.modal.dismiss();\r\n\r\n }\r\n\r\n trackById(index, item) {\r\n return item.iPropGrpID;\r\n }\r\n\r\n objectKey(obj) {\r\n return Object.keys(obj);\r\n }\r\n formatedCerts() {\r\n return this.filters.reduce((prev, now) => {\r\n if (!prev[now.sPropDesc]) {\r\n prev[now.sPropDesc] = [];\r\n }\r\n\r\n prev[now.sPropDesc].push(now);\r\n return prev;\r\n }, {});\r\n\r\n /*\r\n Now your data : { \"1050 AJ\": [ .... ], \"X332.0 AC\": [...], ... }\r\n */\r\n\r\n}\r\n selectRad(data){\r\n console.log(\"Radio data\",data);\r\n this.filters = data;\r\n }\r\n\r\n onSubCategoryTouched(subcategory) {\r\n let id = subcategory['iPropGrpID'];\r\n console.log(id)\r\n this.modal.dismiss(id);\r\n }\r\n\r\n loadProducts() {\r\n this.productService.getProducts();\r\n this.products = this.productService.products;\r\n }\r\n\r\n checkIfExist(iPropGrpID: number) {\r\n return this.filters.find( item => item['iPropGrpID'] === iPropGrpID ) \r\n }\r\n\r\n loadFilters(){\r\n this.filters;\r\n console.log(this.filters);\r\n console.log(this.filterdata = {})\r\n }\r\n\r\n dismiss() {\r\n console.log(\"dismissing filtermodal with data\",this.filterdata);\r\n this.modal.dismiss(this.filterdata);\r\n }\r\n\r\n async loadProductsfilters(item:any) {\r\n // const loading = await this.loadingController.create({\r\n // message: 'Please wait...',\r\n // });\r\n // await loading.present();\r\n if (this.plt.is('cordova')) {\r\n this.api2.getProductsByNative(item)\r\n .then(data => {\r\n let parsed = JSON.parse(data.data);\r\n // this.items = parsed.stArticles.arrArticleInList;\r\n let filters = parsed.stPropFilter.arrProp\r\n this.filtercategory = filters.filter(i => i.sPropUnit === \"CAT\");\r\n this.filters = filters.filter(i => i.sPropUnit !== \"CAT\");\r\n console.log('categories', data);\r\n // this.categories = res['stResult']['stNavMenu']['arrMenuGroup'];\r\n // loading.dismiss();\r\n }, err => {\r\n console.log(err);\r\n // loading.dismiss();\r\n });\r\n } else {\r\n this.api2.getProductsByCategory(item)\r\n .subscribe(res => {\r\n console.log('products', res);\r\n // this.items = res['stArticles']['arrArticleInList'];\r\n let filters = res['stPropFilter']['arrProp'];\r\n this.filtercategory = filters.filter(i => i.sPropUnit === \"CAT\");\r\n this.filters = filters.filter(i => i.sPropUnit !== \"CAT\" && i.iSequence === i.iSequence );\r\n // loading.dismiss();\r\n }, err => {\r\n console.log(err);\r\n // loading.dismiss();\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { VariantmodalPage } from './variantmodal.page';\r\nimport { SharedModule } from '../../shared.module';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: VariantmodalPage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n RouterModule.forChild(routes),\r\n SharedModule,\r\n NgxDatatableModule\r\n ],\r\n declarations: [VariantmodalPage]\r\n})\r\nexport class VariantmodalPageModule {}\r\n","module.exports = \".header .toolbar-title span {\\n left: 0;\\n position: absolute;\\n right: 0;\\n width: 100px;\\n margin: auto;\\n text-align: center;\\n}\\n.header .toolbar-title ion-icon {\\n color: white;\\n}\\nion-content::before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 66.66667%;\\n height: 100%;\\n display: block;\\n background: white;\\n}\\nion-row {\\n margin-top: 4px;\\n}\\nion-row .col {\\n padding: 0;\\n}\\nion-row .col ion-segment {\\n display: block;\\n}\\nion-row .col ion-segment ion-segment-button {\\n margin-top: 10px;\\n width: 100% !important;\\n background: none !important;\\n border: none !important;\\n text-transform: none !important;\\n color: black !important;\\n font-size: 1.6rem !important;\\n font-weight: 500 !important;\\n text-align: justify !important;\\n height: auto !important;\\n padding: 7px 15px !important;\\n padding-left: 22px !important;\\n opacity: 1 !important;\\n}\\nion-row .col ion-segment ion-segment-button span {\\n font-size: 1rem;\\n background: black;\\n padding: 2px 3px;\\n border-radius: 50%;\\n height: 12px;\\n display: block;\\n line-height: 7px;\\n color: white;\\n}\\nion-row .col ion-segment ion-segment-button.segment-activated {\\n background: white !important;\\n color: black !important;\\n}\\nion-row .col ion-segment ion-segment-button.segment-activated span {\\n background: lichtblue;\\n}\\nion-row .col ion-list {\\n margin-bottom: 0;\\n}\\nion-row .col ion-list.tab_container {\\n background: white !important;\\n width: 100%;\\n padding: 15px;\\n}\\nion-row .col ion-list.tab_container .search-box {\\n margin-bottom: 12px;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar {\\n background: lightgrey;\\n border: none !important;\\n padding: 0px !important;\\n border-radius: 5px;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-input {\\n border-radius: 5px;\\n padding: 8px 10px !important;\\n padding-left: 40px !important;\\n box-shadow: none;\\n border: none;\\n font-size: 1.4rem;\\n font-weight: 400;\\n letter-spacing: 0;\\n height: auto;\\n background: #F9F9F9;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-input::-webkit-input-placeholder {\\n color: #b3b3b3;\\n font-weight: 400;\\n font-size: 1.3rem;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-input::-moz-placeholder {\\n color: #b3b3b3;\\n font-weight: 400;\\n font-size: 1.3rem;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-input:-ms-input-placeholder {\\n color: #b3b3b3;\\n font-weight: 400;\\n font-size: 1.3rem;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-input:-moz-placeholder {\\n color: #b3b3b3;\\n font-weight: 400;\\n font-size: 1.3rem;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar .searchbar-search-icon {\\n background-size: 24px !important;\\n width: 33px;\\n opacity: 0.3;\\n height: 30px;\\n left: 8px;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar.searchbar-ios .searchbar-input {\\n padding: 14px 55px !important;\\n}\\nion-row .col ion-list.tab_container .search-box ion-searchbar.searchbar-ios .searchbar-search-icon {\\n left: 20px;\\n top: 11px;\\n}\\nion-row .col ion-list.tab_container ion-item {\\n padding: 0;\\n min-height: 40px;\\n}\\nion-row .col ion-list.tab_container ion-item .item-inner {\\n padding: 0;\\n}\\nion-row .col ion-list.tab_container ion-item ion-checkbox[item-end] {\\n margin: 0 !important;\\n}\\nion-row .col ion-list.tab_container ion-item ion-checkbox .checkbox-icon.checkbox-checked {\\n border-color: white;\\n background-color: #00203F;\\n}\\nion-row .col ion-list.tab_container ion-item ion-label {\\n margin: 0;\\n font-size: 1.6rem;\\n font-weight: 500;\\n}\\nion-row .col ion-list.tab_container ion-item.item-checkbox-checked ion-label {\\n color: #00203F;\\n}\\nh2 {\\n margin: 0;\\n position: absolute;\\n bottom: 18px;\\n left: 0;\\n width: 33.33%;\\n text-align: center;\\n font-size: 1.6rem;\\n}\\nion-footer::before, ion-footer::after {\\n display: none;\\n}\\nion-footer .button.btn {\\n font-size: 1.7rem !important;\\n margin: 0;\\n height: 60px;\\n text-transform: uppercase;\\n}\\nion-footer .btn.shadow.reset {\\n background-color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9taXRjaG1zZy9Qcm9qZWN0ZW4vbXNnL3NyYy9hcHAvcGFnZXMvdmFyaWFudG1vZGFsL3ZhcmlhbnRtb2RhbC5wYWdlLnNjc3MiLCJzcmMvYXBwL3BhZ2VzL3ZhcmlhbnRtb2RhbC92YXJpYW50bW9kYWwucGFnZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVRO0VBQ0ksT0FBQTtFQUNBLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUNEWjtBREdRO0VBQ0ksWUFBQTtBQ0RaO0FETUk7RUFDSSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtBQ0hSO0FETUE7RUFDSSxlQUFBO0FDSEo7QURJSTtFQUNJLFVBQUE7QUNGUjtBREdRO0VBQ0ksY0FBQTtBQ0RaO0FERVk7RUFDSSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0EsMkJBQUE7RUFDQSx1QkFBQTtFQUNBLCtCQUFBO0VBQ0EsdUJBQUE7RUFDQSw0QkFBQTtFQUNBLDJCQUFBO0VBQ0EsOEJBQUE7RUFDQSx1QkFBQTtFQUNBLDRCQUFBO0VBQ0EsNkJBQUE7RUFDQSxxQkFBQTtBQ0FoQjtBRENnQjtFQUNJLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtBQ0NwQjtBRENnQjtFQUNJLDRCQUFBO0VBQ0EsdUJBQUE7QUNDcEI7QURBb0I7RUFDSSxxQkFBQTtBQ0V4QjtBREdRO0VBQ0ksZ0JBQUE7QUNEWjtBREVZO0VBQ0ksNEJBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtBQ0FoQjtBRENnQjtFQUNJLG1CQUFBO0FDQ3BCO0FEQW9CO0VBQ0kscUJBQUE7RUFDQSx1QkFBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7QUNFeEI7QUREd0I7RUFDSSxrQkFBQTtFQUNBLDRCQUFBO0VBQ0EsNkJBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBO0VBQ0EsbUJBQUE7QUNHNUI7QURGNEI7RUFDSSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0loQztBREY0QjtFQUNJLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0FDSWhDO0FERjRCO0VBQ0ksY0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUNJaEM7QURGNEI7RUFDSSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0loQztBRER3QjtFQUNJLGdDQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtBQ0c1QjtBREE0QjtFQUNJLDZCQUFBO0FDRWhDO0FEQTRCO0VBQ0ksVUFBQTtFQUNBLFNBQUE7QUNFaEM7QURHZ0I7RUFDSSxVQUFBO0VBQ0EsZ0JBQUE7QUNEcEI7QURFb0I7RUFDSSxVQUFBO0FDQXhCO0FER3dCO0VBQ0ksb0JBQUE7QUNENUI7QURJNEI7RUFDSSxtQkFBQTtFQUNBLHlCQUFBO0FDRmhDO0FETW9CO0VBQ0ksU0FBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7QUNKeEI7QURPd0I7RUFDSSxjQUFBO0FDTDVCO0FEYUE7RUFDSSxTQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsT0FBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0FDVko7QURhSTtFQUVJLGFBQUE7QUNYUjtBRGFJO0VBQ0ksNEJBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLHlCQUFBO0FDWFI7QURhSTtFQUNJLHVCQUFBO0FDWFIiLCJmaWxlIjoic3JjL2FwcC9wYWdlcy92YXJpYW50bW9kYWwvdmFyaWFudG1vZGFsLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWFkZXIge1xyXG4gICAgLnRvb2xiYXItdGl0bGUge1xyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpb24taWNvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKHdoaXRlLCAxMCUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5pb24tY29udGVudCB7XHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgd2lkdGg6IDY2LjY2NjY3JTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB9XHJcbn1cclxuaW9uLXJvdyB7XHJcbiAgICBtYXJnaW4tdG9wOiA0cHg7XHJcbiAgICAuY29sIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIGlvbi1zZWdtZW50IHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIGlvbi1zZWdtZW50LWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmUhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBibGFjayFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeSFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCAxNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIycHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweCAzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTJweDtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogN3B4O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYuc2VnbWVudC1hY3RpdmF0ZWQge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxhY2shaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaWNodGJsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlvbi1saXN0IHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgJi50YWJfY29udGFpbmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTVweDtcclxuICAgICAgICAgICAgICAgIC5zZWFyY2gtYm94IHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGlvbi1zZWFyY2hiYXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaWdodGdyZXk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2VhcmNoYmFyLWlucHV0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHghaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0Y5RjlGOTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKGdyYXksIDIwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKGdyYXksIDIwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogbGlnaHRlbihncmF5LCAyMCUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOi1tb3otcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKGdyYXksIDIwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2VhcmNoYmFyLXNlYXJjaC1pY29uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjRweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuMztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDhweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmLnNlYXJjaGJhci1pb3Mge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNlYXJjaGJhci1pbnB1dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTRweCA1NXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2VhcmNoYmFyLXNlYXJjaC1pY29uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTFweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlvbi1pdGVtIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgLml0ZW0taW5uZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpb24tY2hlY2tib3gge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmW2l0ZW0tZW5kXSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2hlY2tib3gtaWNvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmNoZWNrYm94LWNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMjAzRjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpb24tbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLml0ZW0tY2hlY2tib3gtY2hlY2tlZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlvbi1sYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzAwMjAzRjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5oMiB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDE4cHg7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDMzLjMzJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG59XHJcbmlvbi1mb290ZXIge1xyXG4gICAgJjo6YmVmb3JlLFxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAuYnV0dG9uLmJ0biB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjdyZW0gIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICB9XHJcbiAgICAuYnRuLnNoYWRvdy5yZXNldHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xyXG4gICAgfVxyXG59IiwiLmhlYWRlciAudG9vbGJhci10aXRsZSBzcGFuIHtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMHB4O1xuICBtYXJnaW46IGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5oZWFkZXIgLnRvb2xiYXItdGl0bGUgaW9uLWljb24ge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbmlvbi1jb250ZW50OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG5pb24tcm93IHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuaW9uLXJvdyAuY29sIHtcbiAgcGFkZGluZzogMDtcbn1cbmlvbi1yb3cgLmNvbCBpb24tc2VnbWVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuaW9uLXJvdyAuY29sIGlvbi1zZWdtZW50IGlvbi1zZWdtZW50LWJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuNnJlbSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDdweCAxNXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMjJweCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5pb24tcm93IC5jb2wgaW9uLXNlZ21lbnQgaW9uLXNlZ21lbnQtYnV0dG9uIHNwYW4ge1xuICBmb250LXNpemU6IDFyZW07XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xuICBwYWRkaW5nOiAycHggM3B4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGhlaWdodDogMTJweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiA3cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbmlvbi1yb3cgLmNvbCBpb24tc2VnbWVudCBpb24tc2VnbWVudC1idXR0b24uc2VnbWVudC1hY3RpdmF0ZWQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbn1cbmlvbi1yb3cgLmNvbCBpb24tc2VnbWVudCBpb24tc2VnbWVudC1idXR0b24uc2VnbWVudC1hY3RpdmF0ZWQgc3BhbiB7XG4gIGJhY2tncm91bmQ6IGxpY2h0Ymx1ZTtcbn1cbmlvbi1yb3cgLmNvbCBpb24tbGlzdCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5pb24tcm93IC5jb2wgaW9uLWxpc3QudGFiX2NvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxNXB4O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3gge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhciB7XG4gIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5pb24tcm93IC5jb2wgaW9uLWxpc3QudGFiX2NvbnRhaW5lciAuc2VhcmNoLWJveCBpb24tc2VhcmNoYmFyIC5zZWFyY2hiYXItaW5wdXQge1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNDBweCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjRjlGOUY5O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhciAuc2VhcmNoYmFyLWlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNiM2IzYjM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhciAuc2VhcmNoYmFyLWlucHV0OjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNiM2IzYjM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhciAuc2VhcmNoYmFyLWlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYjNiM2IzO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbmlvbi1yb3cgLmNvbCBpb24tbGlzdC50YWJfY29udGFpbmVyIC5zZWFyY2gtYm94IGlvbi1zZWFyY2hiYXIgLnNlYXJjaGJhci1pbnB1dDotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNiM2IzYjM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhciAuc2VhcmNoYmFyLXNlYXJjaC1pY29uIHtcbiAgYmFja2dyb3VuZC1zaXplOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAzM3B4O1xuICBvcGFjaXR5OiAwLjM7XG4gIGhlaWdodDogMzBweDtcbiAgbGVmdDogOHB4O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgLnNlYXJjaC1ib3ggaW9uLXNlYXJjaGJhci5zZWFyY2hiYXItaW9zIC5zZWFyY2hiYXItaW5wdXQge1xuICBwYWRkaW5nOiAxNHB4IDU1cHggIWltcG9ydGFudDtcbn1cbmlvbi1yb3cgLmNvbCBpb24tbGlzdC50YWJfY29udGFpbmVyIC5zZWFyY2gtYm94IGlvbi1zZWFyY2hiYXIuc2VhcmNoYmFyLWlvcyAuc2VhcmNoYmFyLXNlYXJjaC1pY29uIHtcbiAgbGVmdDogMjBweDtcbiAgdG9wOiAxMXB4O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgaW9uLWl0ZW0ge1xuICBwYWRkaW5nOiAwO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgaW9uLWl0ZW0gLml0ZW0taW5uZXIge1xuICBwYWRkaW5nOiAwO1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgaW9uLWl0ZW0gaW9uLWNoZWNrYm94W2l0ZW0tZW5kXSB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgaW9uLWl0ZW0gaW9uLWNoZWNrYm94IC5jaGVja2JveC1pY29uLmNoZWNrYm94LWNoZWNrZWQge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAyMDNGO1xufVxuaW9uLXJvdyAuY29sIGlvbi1saXN0LnRhYl9jb250YWluZXIgaW9uLWl0ZW0gaW9uLWxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbmlvbi1yb3cgLmNvbCBpb24tbGlzdC50YWJfY29udGFpbmVyIGlvbi1pdGVtLml0ZW0tY2hlY2tib3gtY2hlY2tlZCBpb24tbGFiZWwge1xuICBjb2xvcjogIzAwMjAzRjtcbn1cblxuaDIge1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxOHB4O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMzMuMzMlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xufVxuXG5pb24tZm9vdGVyOjpiZWZvcmUsIGlvbi1mb290ZXI6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmlvbi1mb290ZXIgLmJ1dHRvbi5idG4ge1xuICBmb250LXNpemU6IDEuN3JlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogNjBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbmlvbi1mb290ZXIgLmJ0bi5zaGFkb3cucmVzZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn0iXX0= */\"","import { Component, ViewChild, OnInit, Injector } from '@angular/core';\r\nimport { NavController ,Platform, Events, ModalController } from '@ionic/angular';\r\nimport { ProductsProvider } from '../../providers/products/products';\r\nimport { CategoryProvider } from '../../providers/category/category';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { ProductService } from '../../services/product.service';\r\nimport { BasePage } from '../base-page/base-page';\r\n\r\n@Component({\r\n selector: 'app-variantmodal',\r\n templateUrl: './variantmodal.page.html',\r\n styleUrls: ['./variantmodal.page.scss'],\r\n})\r\nexport class VariantmodalPage extends BasePage {\r\n\r\n countries:any[];\r\n productRows:any;\r\n filterdata:any; \r\n item:any;\r\n Object = Object;\r\n category: Observable;\r\n products: Observable;\r\n // filters: Observable;\r\n filterows: Observable;\r\n objectKeys: any = Object.keys;\r\n groups:Observable;\r\n show = 1;\r\n iPropGrpID: any;\r\n filters;\r\n unit:any;\r\n filtercategory;\r\n msg:any;\r\n variants: any;\r\n customActionSheetOptions: any = {\r\n header: '#005FA9',\r\n subHeader: '#005FA9'\r\n };\r\n customAlertOptions: any = {\r\n header: 'Pizza Toppings',\r\n subHeader: 'Select your toppings',\r\n message: '$1.00 per topping',\r\n translucent: true\r\n };\r\n customPopoverOptions: any = {\r\n header: 'Hair Color',\r\n subHeader: 'Select your hair color',\r\n message: 'Only select your dominant hair color'\r\n };\r\n nCnt: number = 0;\r\n constructor(injector: Injector, private plt: Platform, private api2:ProductService, private modal:ModalController, private productService:ProductsProvider, public navCtrl: NavController, private categoryService:CategoryProvider, public events:Events) {\r\n // this.getCountries();\r\n // this.loadFilters();\r\n super(injector);\r\n }\r\n ngOnInit(){\r\n console.log('test', `${this.filters}`)\r\n }\r\n clickMe(event:Event) :void {\r\n this.nCnt = this.nCnt + 1;\r\n this.msg = this.nCnt;\r\n console.log('msg', this.msg)\r\n}\r\n compareWithFn = (o1, o2) => {\r\n return o1 && o2 ? o1.id === o2.id : o1 === o2;\r\n };\r\n\r\n ionViewDidEnter(category: any){\r\n console.log(\"ionViewDidEnter homepage\");\r\n this.products = this.productService.products;\r\n this.loadFilters();\r\n this.loadProductsfilters(this.filters)\r\n // console.log(this.navParams.get('category').iGroupId);\r\n }\r\n initializeItems(): void {\r\n this.filters; \r\n this.filtercategory;\r\n this.filterows;\r\n this.products = this.productService.products;\r\n this.countries = this.categoryService.countries;\r\n }\r\n closeModal(){\r\n // this.viewCtrl.dismiss();\r\n this.modal.dismiss();\r\n\r\n }\r\n\r\n trackById(index, item) {\r\n return item.iPropGrpID;\r\n }\r\n\r\n objectKey(obj) {\r\n return Object.keys(obj);\r\n }\r\n formatedCerts() {\r\n return this.filters.reduce((prev, now) => {\r\n if (!prev[now.sPropDesc]) {\r\n prev[now.sPropDesc] = [];\r\n }\r\n\r\n prev[now.sPropDesc].push(now);\r\n return prev;\r\n }, {});\r\n\r\n /*\r\n Now your data : { \"1050 AJ\": [ .... ], \"X332.0 AC\": [...], ... }\r\n */\r\n\r\n}\r\n selectRad(data){\r\n console.log(\"Radio data\",data);\r\n this.filters = data;\r\n }\r\n\r\n onSubCategoryTouched(subcategory) {\r\n let id = subcategory['iPropGrpID'];\r\n console.log(id)\r\n this.modal.dismiss(id);\r\n }\r\n\r\n async goToItemPage(item:any) {\r\n this.modal.dismiss(item);\r\n \r\n }\r\n\r\n loadProducts() {\r\n this.productService.getProducts();\r\n this.products = this.productService.products;\r\n }\r\n\r\n checkIfExist(iPropGrpID: number) {\r\n return this.filters.find( item => item['iPropGrpID'] === iPropGrpID ) \r\n }\r\n\r\n loadFilters(){\r\n this.filters;\r\n console.log('variants',this.filters);\r\n console.log(this.filterdata = {})\r\n }\r\n\r\n dismiss() {\r\n console.log(\"dismissing filtermodal with data\",this.filterdata);\r\n this.modal.dismiss(this.filterdata);\r\n }\r\n\r\n async loadProductsfilters(item:any) {\r\n // const loading = await this.loadingController.create({\r\n // message: 'Please wait...',\r\n // });\r\n // await loading.present();\r\n if (this.plt.is('cordova')) {\r\n this.api2.getProductsByNative(item)\r\n .then(data => {\r\n let parsed = JSON.parse(data.data);\r\n // this.items = parsed.stArticles.arrArticleInList;\r\n\r\n let filters = parsed.stPropFilter.arrProp\r\n this.filtercategory = filters.filter(i => i.sPropUnit === \"CAT\");\r\n this.filters = filters;\r\n console.log('categories', data);\r\n // this.categories = res['stResult']['stNavMenu']['arrMenuGroup'];\r\n // loading.dismiss();\r\n }, err => {\r\n console.log(err);\r\n // loading.dismiss();\r\n });\r\n } else {\r\n this.api2.getProductsByCategory(item)\r\n .subscribe(res => {\r\n console.log('products', res);\r\n this.unit = res\r\n console.log(this.unit)\r\n let filters = res['stPropFilter']['arrProp'];\r\n this.filtercategory = filters.filter(i => i.sPropUnit === \"CAT\");\r\n this.filters = filters;\r\n // loading.dismiss();\r\n }, err => {\r\n console.log(err);\r\n // loading.dismiss();\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'excerpt',\r\n pure: false\r\n})\r\nexport class ExcerptFilter implements PipeTransform {\r\n\r\n transform(text: String, length: any ): any {\r\n \r\n if (!text || !length) {\r\n return text;\r\n }\r\n if (text.length > length) {\r\n return text.substr(0, length) + '...';\r\n }\r\n return text;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filter',\r\n pure: true\r\n})\r\nexport class Filter implements PipeTransform {\r\n \r\n transform(list: any[], searchTerm: string): any[] {\r\n if (searchTerm) {\r\n searchTerm = searchTerm.toUpperCase();\r\n return list.filter(item => {\r\n let prop = item.name || item.title;\r\n return prop.toUpperCase().indexOf(searchTerm) !== -1 \r\n });\r\n } else {\r\n return list;\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Filter } from './filter';\r\nimport { ExcerptFilter } from './excerpt-filter';\r\n@NgModule({\r\n\tdeclarations: [\r\n\t Filter,\r\n\t\tExcerptFilter\r\n\t],\r\n\timports: [],\r\n\texports: [\r\n\t Filter,\r\n\t\tExcerptFilter,\r\n\t]\r\n})\r\nexport class PipesModule {}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n/*\r\n Generated class for the ApiProvider provider.\r\n\r\n See https://angular.io/guide/dependency-injection for more info on providers\r\n and Angular DI.\r\n*/\r\n@Injectable()\r\nexport class ApiProvider {\r\n\r\n constructor(public http: HttpClient) {\r\n console.log('Hello ApiProvider Provider');\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { CacheService } from 'ionic-cache';\r\nimport { Events, LoadingController, Platform } from \"@ionic/angular\";\r\nimport { Storage } from '@ionic/storage';\r\nimport { Observable} from 'rxjs';\r\nimport { Http, Headers, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport 'rxjs/add/operator/map';\r\nimport { File } from '@ionic-native/file/ngx';\r\nimport { from } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { HTTP } from '@ionic-native/http/ngx';\r\n\r\n@Injectable()\r\nexport class AuthProvider {\r\n userKey = 'my-user-group';\r\n user: any;\r\n userid: any;\r\n PBMuserKey = 'my-user-group';\r\n PBMuser: any;\r\n isLoggedIn = false;\r\n AuthToken: string;\r\n PBMAuthToken: string;\r\n UserID: any;\r\n iPbmMode: any;\r\n fullname: string;\r\n constructor(private nativeHttp: HTTP, public plt: Platform, private loadingCtrl: LoadingController, public events: Events,private http: Http, private cache: CacheService,public storage: Storage,) {\r\n this.isLoggedIn = false;\r\n this.AuthToken = null;\r\n }\r\n\r\n async login(loginParams){\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let url = 'https://demorest.msgsoftware.nl/Authorisation'; \r\n console.log(JSON.stringify(loginParams));\r\n let user = this.http.post(url, JSON.stringify(loginParams), options)\r\n .subscribe( data => {\r\n if(data.json().stAuthResp){\r\n this.storeUserCredentials(data.json().stAuthResp.sSessionID);\r\n this.storeUserID(data.json().stAuthResp.iUserId);\r\n this.storage.set('userToken', this.AuthToken);\r\n this.storePBM(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json());\r\n this.userFullname(data.json().stAuthResp.sFullName);\r\n resolve(true);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n async PBMlogin(loginParams){\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let url = 'https://demorest.msgsoftware.nl/Authorisation'; \r\n console.log(JSON.stringify(loginParams));\r\n let user = this.http.post(url, JSON.stringify(loginParams), options)\r\n .subscribe( data => {\r\n if(data.json().stAuthResp){\r\n this.storeUserCredentials(data.json().stAuthResp.sSessionID);\r\n this.storeUserID(data.json().stAuthResp.iUserId);\r\n this.storage.set('userToken', this.AuthToken);\r\n this.storePBM(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json());\r\n this.userFullname(data.json().stAuthResp.sFullName);\r\n resolve(true);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n \r\n async loginNative(loginParams) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let nativeCall = this.nativeHttp.post('https://demorest.msgsoftware.nl/Authentication', JSON.stringify(loginParams), headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n\r\n let parsed = JSON.parse(data.data);\r\n console.log(data);\r\n if(parsed.stAuthResp){\r\n this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n this.storeUserID(parsed.stAuthResp.iUserId);\r\n this.storePBM(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n this.userFullname(parsed.stAuthResp.sFullName);\r\n }\r\n },\r\n err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n\r\n async loginSwitch(loginParams) {\r\n if (this.plt.is('cordova')) {\r\n this.loginNative(loginParams);\r\n } else {\r\n this.login(loginParams);\r\n }\r\n }\r\n\r\n // PBMlogin(loginParams){\r\n // return new Promise((resolve, reject) => {\r\n // var headers = new Headers();\r\n // let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n // headers.append('Access-Control-Allow-Origin' , '*');\r\n // headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n // headers.append('Accept','application/json');\r\n // headers.append('content-type','application/json');\r\n // let url = 'https://demorest.msgsoftware.nl/Authorisation'; \r\n // console.log(JSON.stringify(loginParams));\r\n // let PBMuser = this.http.post(url, JSON.stringify(loginParams), options)\r\n // .subscribe( data => {\r\n // if(data.json().stAuthResp){\r\n // this.storePBMUserCredentials(data.json().stAuthResp.sSessionID);\r\n // this.storeUserID(data.json().stAuthResp.iUserId);\r\n // this.storePBM(data.json().stAuthResp.iPbmMode);\r\n // // console.log(data.json().stAuthResp);\r\n // // console.log(data.json().stAuthResp.sSessionID);\r\n // this.userFullname(data.json().stAuthResp.sFullName);\r\n // resolve(true);\r\n // }\r\n // else\r\n // resolve(false);\r\n // });\r\n // });\r\n // }\r\n storeUserCredentials(token) {\r\n window.localStorage.setItem('token', token);\r\n this.storage.set('token', token);\r\n this.useCredentials(token);\r\n }\r\n\r\n storePBMUserCredentials(token) {\r\n window.localStorage.setItem('token', token);\r\n this.storage.set('token', token);\r\n this.useCredentials(token);\r\n }\r\n\r\n storeUserID(UserID) {\r\n window.localStorage.setItem('token', UserID);\r\n this.storage.set('token', UserID);\r\n this.useUserID(UserID);\r\n }\r\n\r\n storePBM(iPbmMode) {\r\n window.localStorage.setItem('token', iPbmMode);\r\n this.storage.set('token', iPbmMode);\r\n this.usePBMmodeID(iPbmMode);\r\n }\r\n \r\n useCredentials(token) {\r\n this.isLoggedIn = true;\r\n this.AuthToken = token;\r\n }\r\n\r\n useUserID(UserID) {\r\n this.isLoggedIn = true;\r\n this.UserID = UserID;\r\n }\r\n\r\n usePBMmodeID(iPbmMode) {\r\n this.isLoggedIn = true;\r\n this.iPbmMode = iPbmMode;\r\n }\r\n\r\n userFullname(fullname){\r\n this.isLoggedIn = true;\r\n this.fullname = fullname;\r\n console.log(fullname)\r\n }\r\n \r\n loadUserCredentials() {\r\n let token = window.localStorage.getItem('token') || this.storage.get('token');\r\n this.useCredentials(token);\r\n }\r\n\r\n destroyUserCredentials() {\r\n this.isLoggedIn = false;\r\n this.AuthToken = null;\r\n window.localStorage.clear();\r\n }\r\n \r\n createAuthorization(headers: Headers) {\r\n headers.append('UserToken', window.localStorage.getItem('token'));\r\n }\r\n\r\n // login(loginParams){\r\n // var promise = new Promise((resolve, reject) => {\r\n // let headers = new Headers();\r\n // headers.append('Access-Control-Allow-Origin' , '*');\r\n // headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n // headers.append('Accept','application/json');\r\n // headers.append('content-type','application/json');\r\n // let url = 'https://demorest.msgsoftware.nl/Authorisation'; \r\n // this.http.post(url, JSON.stringify(loginParams), {headers: headers}).then(() => {\r\n // resolve(true);\r\n // }).catch((err) => {\r\n // reject(err);\r\n // })\r\n // })\r\n \r\n // return promise;\r\n\r\n // });\r\n // }\r\n\r\n // userdetails(userid){\r\n // return new Promise((resolve, reject) => {\r\n // var headers = new Headers();\r\n // let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n // headers.append('Access-Control-Allow-Origin' , '*');\r\n // headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n // headers.append('Accept','application/json');\r\n // headers.append('content-type','application/json');\r\n // let url = 'https://demorest.msgsoftware.nl/Authorisation'; \r\n // console.log(JSON.stringify(userid));\r\n // let user = this.http.post(url, JSON.stringify(userid), options)\r\n // .subscribe( data => {\r\n // if(data.json().stAuthResp){\r\n // this.storeUserCredentials(data.json().stAuthResp.sSessionID);\r\n // console.log(data.json().stAuthResp)\r\n // this.userFullname(data.json().stAuthResp.sFullName);\r\n // resolve(true);\r\n // }\r\n // else\r\n // resolve(false);\r\n // });\r\n // });\r\n // }\r\n\r\n // registerUser(userObj: any) {\r\n // var promise = new Promise((resolve, reject) => {\r\n // firebase .auth().createUserWithEmailAndPassword(userObj.email, userObj.password)\r\n // .then(() => {\r\n // this.firedata.child(firebase.auth().currentUser.uid).set({\r\n // name:userObj.name,\r\n // address:userObj.address,\r\n // email:userObj.email\r\n // }).then(()=>{\r\n // resolve({ success: true });\r\n // }).catch((err)=>{\r\n // reject(err);\r\n // })\r\n // // resolve(true);\r\n // })\r\n // .catch(err => {\r\n // reject(err);\r\n // });\r\n // })\r\n // return promise;\r\n // }\r\n\r\n // getuserdetails() {\r\n // var promise = new Promise((resolve, reject) => {\r\n // this.firedata.child(firebase.auth().currentUser.uid).once('value', (snapshot) => {\r\n // resolve(snapshot.val());\r\n // }).catch((err) => {\r\n // reject(err);\r\n // })\r\n // })\r\n // return promise;\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Storage } from '@ionic/storage';\r\n\r\nconst CART_KEY = 'cartItems';\r\nconst PBMCART_KEY = 'PBMcartItems';\r\n\r\n@Injectable()\r\nexport class CartProvider {\r\n\r\n constructor(public storage: Storage) {\r\n\r\n }\r\n\r\n addToCart(product) {\r\n return this.getCartItems().then(result => {\r\n if (result) {\r\n if (!this.containsObject(product, result)) {\r\n result.push(product);\r\n return this.storage.set(CART_KEY, result);\r\n } else {\r\n let index = result.findIndex(x => x.product_id == product.product_id);\r\n let prevQuantity = parseInt(result[index].count);\r\n product.count = (prevQuantity + product.count);\r\n let currentPrice = (parseFloat(product.totalPrice) * product.count);\r\n product.totalPrice =currentPrice;\r\n result.splice(index, 1);\r\n result.push(product);\r\n return this.storage.set(CART_KEY, result);\r\n }\r\n\r\n } else {\r\n return this.storage.set(CART_KEY, [product]);\r\n }\r\n })\r\n }\r\n\r\n removeFromCart(product) {\r\n return this.getCartItems().then(result => {\r\n if (result) {\r\n var productIndex = result.indexOf(product);\r\n result.splice(productIndex, 1);\r\n return this.storage.set(CART_KEY, result);\r\n }\r\n })\r\n }\r\n\r\n removeAllCartItems(product) {\r\n return this.getCartItems().then(result => {\r\n if (result) {\r\n var productIndex = result.indexOf(product);\r\n result.splice(productIndex, 1);\r\n return this.storage.remove(CART_KEY);\r\n }\r\n })\r\n }\r\n\r\n\r\n containsObject(obj, list): boolean {\r\n if (!list.length) {\r\n return false;\r\n }\r\n\r\n if (obj == null) {\r\n return false;\r\n }\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n if (list[i].product_id == obj.product_id) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n getCartItems() {\r\n return this.storage.get(CART_KEY);\r\n }\r\n\r\n PBMaddToCart(product) {\r\n return this.getPBMCartItems().then(result => {\r\n if (result) {\r\n if (!this.containsObject(product, result)) {\r\n result.push(product);\r\n return this.storage.set(PBMCART_KEY, result);\r\n } else {\r\n let index = result.findIndex(x => x.product_id == product.product_id);\r\n let prevQuantity = parseInt(result[index].count);\r\n product.count = (prevQuantity + product.count);\r\n let currentPrice = (parseFloat(product.iNbPoints) * product.count);\r\n product.iNbPoints =currentPrice;\r\n result.splice(index, 1);\r\n result.push(product);\r\n return this.storage.set(PBMCART_KEY, result);\r\n }\r\n\r\n } else {\r\n return this.storage.set(PBMCART_KEY, [product]);\r\n }\r\n })\r\n }\r\n\r\n PBMremoveFromCart(product) {\r\n return this.getCartItems().then(result => {\r\n if (result) {\r\n var productIndex = result.indexOf(product);\r\n result.splice(productIndex, 1);\r\n return this.storage.set(PBMCART_KEY, result);\r\n }\r\n })\r\n }\r\n\r\n PBMremoveAllCartItems(product) {\r\n return this.getCartItems().then(result => {\r\n if (result) {\r\n var productIndex = result.indexOf(product);\r\n result.splice(productIndex, 1);\r\n return this.storage.remove(PBMCART_KEY);\r\n }\r\n })\r\n }\r\n\r\n\r\n PBMcontainsObject(obj, list): boolean {\r\n if (!list.length) {\r\n return false;\r\n }\r\n\r\n if (obj == null) {\r\n return false;\r\n }\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n if (list[i].product_id == obj.product_sArticleCode) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n getPBMCartItems() {\r\n return this.storage.get(PBMCART_KEY);\r\n }\r\n}\r\n","import { CacheService } from 'ionic-cache';\r\nimport { Injectable } from '@angular/core';\r\nimport { Platform, Events, ToastController, LoadingController } from '@ionic/angular';\r\n// import firebase from 'firebase';\r\nimport { Storage } from '@ionic/storage';\r\nimport { Observable} from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { NetworkService, ConnectionStatus } from '../../services/network.service';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { HTTP } from '@ionic-native/http/ngx';\r\nimport 'rxjs/add/operator/map';\r\nimport { from } from 'rxjs';\r\nimport { tap, map, catchError } from \"rxjs/operators\";\r\nconst categories_KEY = 'categories';\r\nconst subcategories_KEY = 'subcategories'\r\n\r\n@Injectable()\r\nexport class CategoryProvider {\r\n\r\n // categoriesRef = firebase.database().ref(\"searchlevelinitial\");\r\n // countryRef = firebase.database().ref(\"countries\");\r\n // grapeRef = firebase.database().ref(\"grapevariety\");\r\n // price1Ref = firebase.database().ref(\"price1\");\r\n categories: any;\r\n data: [];\r\n subcategories: Observable;\r\n categoriesKey = 'my-categories-group';\r\n subcategoriesKey = 'my-subcategories-group';\r\n countries: Array = [];\r\n price1: Array = [];\r\n grapevariety: Array = [];\r\n constructor(private networkService: NetworkService, private plt: Platform, private nativeHttp: HTTP, public loadingCtrl: LoadingController, private toastCtrl:ToastController, private http: HttpClient, private cache: CacheService,public events: Events, public storage: Storage) {\r\n\r\n }\r\n\r\n \r\n // ionViewDidLoad() {\r\n // this.dataFinder.getJSONDataAsync(\"./assets/data/data.json\").then(data => {\r\n // this.SetQueryOptionsData(data);\r\n // });\r\n // }\r\n \r\n // /* Sets data with returned JSON array */\r\n // SetQueryOptionsData(data : any) {\r\n // this.articleinitial = data.articleinitial;\r\n // }\r\n\r\n getCategories(): Observable {\r\n // let loading = await this.loadingCtrl.create();\r\n // await loading.present();\r\n if (this.networkService.getCurrentNetworkStatus() == ConnectionStatus.Offline) {\r\n // Return the cached data from Storage\r\n return from(this.getLocalData('categories'));\r\n } else {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let url = '/Category';\r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('oke'))\r\n )\r\n .subscribe(data => {\r\n this.categories = data['stNavMenu']['arrMenuGroup'];\r\n console.log(data['stNavMenu']['arrMenuGroup']);\r\n console.log(this.categories);\r\n let ttl = 10;\r\n // Load with Group key and custom TTL\r\n this.categories = this.cache.loadFromObservable(url, req, this.categoriesKey, ttl);\r\n \r\n // Or just load without additional settings\r\n this.categories = this.cache.loadFromObservable(url, req, this.categoriesKey);\r\n this.setLocalData('categories', data); \r\n return this.categories\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n })\r\n }\r\n }\r\n\r\n // getUsers(forceRefresh: boolean = false): Observable {\r\n // if (this.networkService.getCurrentNetworkStatus() == ConnectionStatus.Offline || !forceRefresh) {\r\n // // Return the cached data from Storage\r\n // return from(this.getLocalData('users'));\r\n // } else {\r\n // // Just to get some \"random\" data\r\n // let page = Math.floor(Math.random() * Math.floor(6));\r\n \r\n // // Return real API data and store it locally\r\n // return this.http.get(`/Category`).pipe(\r\n // map(res => res['data']),\r\n // tap(res => {\r\n // this.setLocalData('users', res);\r\n // })\r\n // )\r\n // }\r\n // }\r\n \r\n getDataNativeHttp() {\r\n // let loading = await this.loadingCtrl.create();\r\n // await loading.present();\r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n if (this.networkService.getCurrentNetworkStatus() == ConnectionStatus.Offline) {\r\n // Return the cached data from Storage\r\n return from(this.getLocalData('categories'));\r\n } else {\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Category', {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('oke'))\r\n )\r\n .subscribe(data => {\r\n\r\n let parsed = JSON.parse(data.data);\r\n this.categories = parsed.stNavMenu.arrMenuGroup;\r\n console.log(this.categories);\r\n console.log(data);\r\n this.setLocalData('categories', data); \r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n }\r\n \r\n getDataEverywhere() {\r\n if (this.plt.is('cordova')) {\r\n this.getDataNativeHttp();\r\n } else {\r\n this.getCategories();\r\n }\r\n }\r\n\r\n getSubCategories(category) {\r\n // let loading = await this.loadingCtrl.create();\r\n // await loading.present();\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n if (this.networkService.getCurrentNetworkStatus() == ConnectionStatus.Offline) {\r\n // Return the cached data from Storage\r\n return from(this.getLocalData('subcategories'));\r\n } else {\r\n let url = '/Category?ParentId='+category;\r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('oke'))\r\n )\r\n .subscribe(data => {\r\n this.subcategories = data['stNavMenu']['arrMenuGroup'];\r\n console.log(data['stNavMenu']['arrMenuGroup']);\r\n console.log(this.subcategories);\r\n // let ttl = 10;\r\n // // Load with Group key and custom TTL\r\n // this.subcategories = this.cache.loadFromObservable(url, req, this.subcategoriesKey, ttl);\r\n \r\n // // Or just load without additional settings\r\n this.setLocalData('subcategories', data); \r\n // this.subcategories = this.cache.loadFromObservable(url, req, this.subcategoriesKey);\r\n return this.subcategories\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n// let ttl = 10;\r\n// console.log(url);\r\n// console.log(req);\r\n// // Specify custom TTL if you want\r\n \r\n \r\n// if (refresher) {\r\n// // Reload data even if it is cached\r\n// let delayType = 'all';\r\n// this.categories = this.cache.loadFromDelayedObservable(url, req, this.categoriesKey, ttl, delayType);\r\n \r\n// // Hide the refresher once loading is done\r\n// this.categories.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// // Load with Group key and custom TTL\r\n// this.categories = this.cache.loadFromObservable(url, req, this.categoriesKey, ttl);\r\n \r\n// // Or just load without additional settings\r\n// this.categories = this.cache.loadFromObservable(url, req, this.categoriesKey);\r\n }\r\n \r\n getSubcategiesNative(category) {\r\n // let loading = await this.loadingCtrl.create();\r\n // await loading.present();\r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n if (this.networkService.getCurrentNetworkStatus() == ConnectionStatus.Offline) {\r\n // Return the cached data from Storage\r\n return from(this.getLocalData('subcategories'));\r\n } else {\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Category?ParentId='+category, {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('oke'))\r\n )\r\n .subscribe(data => {\r\n\r\n let parsed = JSON.parse(data.data);\r\n this.setLocalData('subcategories', data); \r\n this.subcategories = parsed.stNavMenu.arrMenuGroup;\r\n console.log(this.subcategories);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n }\r\n \r\n getSubcategiesswitch(category) {\r\n if (this.plt.is('cordova')) {\r\n this.getSubcategiesNative(category);\r\n } else {\r\n this.getSubCategories(category);\r\n }\r\n }\r\n\r\n private setLocalData(key, data) {\r\n this.storage.set(`${categories_KEY}-${key}`, data);\r\n this.storage.set(`${subcategories_KEY}-${key}`, data);\r\n\r\n }\r\n\r\n // Get cached API result\r\n private getLocalData(key) {\r\n return this.storage.get(`${categories_KEY}-${key}`),\r\n this.storage.get(`${subcategories_KEY}-${key}`);\r\n }\r\n\r\n// getCategories(refresher?){\r\n// let body = '{ \"ProcedureName\":\"GPR_DOWNLOAD\", \"DB\":\"Web_EO2\", \"BV\":0 }';\r\n// let headers = new Headers();\r\n// let postData = JSON.stringify({ \"Type\":\"ARTICLEIMAGE\", \"ID\":\"01101.20153N\", \"Part\":\"1\" });\r\n// // let content = '600';\r\n// // headers.set('Checksum' , '_\\u2022\\u00f7\\u00f4m\\u0012\\u00d0z\\u0160?7\\u001c00\\u00a3>\\u00c7Vm\\u00e5;\\u00a1D\\u00ca\\u203a\\u2020b\\u00b5\\u00aa\\u017dB\\u00f4');\r\n// // headers.set('Accept' , '*/*');\r\n// // headers.set('User-Agent' , 'MSG');\r\n// // headers.set('Host' , 'onerest.msgnl.com');\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n// headers.append('Accept','application/json');\r\n// headers.append('content-type','application/json');\r\n// // headers.set('X-Forwarded-Proto', 'https');\r\n// // headers.set('X-Forwarded-For', '5.102.140.34');\r\n// // headers.set('X-Forwarded-Host', 'onerest.msgnl.com');\r\n// // headers.set('Connection', 'Keep-Alive');\r\n// // headers.set('Content-Lenght', postData);\r\n// let url = '/Category';\r\n// // var requestoptions = new RequestOptions({\r\n// // headers: headers,\r\n// // body: postData\r\n// // })\r\n// console.log(postData); \r\n// let req = this.http.get(url, {headers:headers})\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stNavMenu.arrMenuGroup );\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// return json1 || [];\r\n// });\r\n \r\n// let ttl = 10;\r\n// console.log(url);\r\n// console.log(req);\r\n// // Specify custom TTL if you want\r\n \r\n \r\n// if (refresher) {\r\n// // Reload data even if it is cached\r\n// let delayType = 'all';\r\n// this.categories = this.cache.loadFromDelayedObservable(url, req, this.categoriesKey, ttl, delayType);\r\n \r\n// // Hide the refresher once loading is done\r\n// this.categories.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// // Load with Group key and custom TTL\r\n// this.categories = this.cache.loadFromObservable(url, req, this.categoriesKey, ttl);\r\n \r\n// // Or just load without additional settings\r\n// this.categories = this.cache.loadFromObservable(url, req, this.categoriesKey);\r\n// }\r\n// }\r\n\r\n// getSubCategories(category, refresher?){\r\n// let body = '{ \"ProcedureName\":\"GPR_DOWNLOAD\", \"DB\":\"Web_EO2\", \"BV\":0 }';\r\n// let headers = new Headers();\r\n// let postData = JSON.stringify({ \"Type\":\"ARTICLEIMAGE\", \"ID\":\"01101.20153N\", \"Part\":\"1\" });\r\n// // let content = '600';\r\n// // headers.set('Checksum' , '_\\u2022\\u00f7\\u00f4m\\u0012\\u00d0z\\u0160?7\\u001c00\\u00a3>\\u00c7Vm\\u00e5;\\u00a1D\\u00ca\\u203a\\u2020b\\u00b5\\u00aa\\u017dB\\u00f4');\r\n// // headers.set('Accept' , '*/*');\r\n// // headers.set('User-Agent' , 'MSG');\r\n// // headers.set('Host' , 'onerest.msgnl.com');\r\n// // headers.append(\"Accept\", 'application/json');\r\n// headers.append('Content-Type', 'application/json' );\r\n// // headers.set('X-Forwarded-Proto', 'https');\r\n// // headers.set('X-Forwarded-For', '5.102.140.34');\r\n// // headers.set('X-Forwarded-Host', 'onerest.msgnl.com');\r\n// // headers.set('Connection', 'Keep-Alive');\r\n// // headers.set('Content-Lenght', postData);\r\n// let url = '/Category?ParentId='+category;\r\n// // var requestoptions = new RequestOptions({\r\n// // headers: headers,\r\n// // body: postData\r\n// // })\r\n// console.log(postData); \r\n// let req = this.http.get(url, {headers:headers})\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stNavMenu.arrMenuGroup );\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// return json1 || [];\r\n// });\r\n\r\n// let ttl = 10;\r\n// console.log(url);\r\n// console.log(req);\r\n// // Specify custom TTL if you want\r\n\r\n\r\n// if (refresher) {\r\n// // Reload data even if it is cached\r\n// let delayType = 'all';\r\n// this.subcategories = this.cache.loadFromDelayedObservable(url, req, this.subcategoriesKey, ttl, delayType);\r\n\r\n// // Hide the refresher once loading is done\r\n// this.subcategories.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// // Load with Group key and custom TTL\r\n// this.subcategories = this.cache.loadFromObservable(url, req, this.subcategoriesKey, ttl);\r\n\r\n// // Or just load without additional settings\r\n// this.subcategories = this.cache.loadFromObservable(url, req, this.subcategoriesKey);\r\n// }\r\n// }\r\n\r\n\r\n\r\n\r\n// getCountries(){\r\n// this.countryRef.once('value', (snap) => {\r\n// this.countries = [];\r\n// if (snap.val()) {\r\n// var tempCountry = snap.val();\r\n// for (var key in tempCountry) {\r\n// let singleCategory = {\r\n// id:key,\r\n// CRITERETEC:tempCountry[key].CRITERETEC,\r\n// LIBLONG: tempCountry[key].LIBLONG,\r\n// SmallName:tempCountry[key].SmallName\r\n// };\r\n \r\n// this.countries.push(singleCategory);\r\n// }\r\n// }\r\n// this.events.publish('countryLoaded');\r\n// });\r\n// }\r\n\r\n// getPrice1(){\r\n// this.price1Ref.once('value', (snap) => {\r\n// this.price1 = [];\r\n// if (snap.val()) {\r\n// var tempPrice1 = snap.val();\r\n// for (var key in tempPrice1) {\r\n// let singleCategory = {\r\n// id:key,\r\n// CRITERETEC:tempPrice1[key].CRITERETEC,\r\n// LIBLONG: tempPrice1[key].LIBLONG,\r\n// SmallName:tempPrice1[key].SmallName\r\n// };\r\n\r\n// this.price1.push(singleCategory);\r\n// }\r\n// }\r\n// this.events.publish('price1Loaded');\r\n// });\r\n// }\r\n\r\n// getGrapeVariety(){\r\n// this.grapeRef.once('value', (snap) => {\r\n// this.grapevariety = [];\r\n// if (snap.val()) {\r\n// var tempGrapeVariety = snap.val();\r\n// for (var key in tempGrapeVariety) {\r\n// let singleCategory = {\r\n// id:key,\r\n// CRITERETEC:tempGrapeVariety[key].CRITERETEC,\r\n// LIBLONG: tempGrapeVariety[key].LIBLONG,\r\n// SmallName:tempGrapeVariety[key].SmallName\r\n// };\r\n\r\n// this.grapevariety.push(singleCategory);\r\n// }\r\n// }\r\n// this.events.publish('grapeLoaded');\r\n// });\r\n// }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Storage } from '@ionic/storage';\r\n\r\nconst COMPARE_KEY = 'compareItems';\r\n\r\n@Injectable()\r\nexport class CompareProvider {\r\n\r\n constructor(public storage: Storage) {\r\n\r\n }\r\n\r\n addToCompare(product) {\r\n return this.getCompareItems().then(result => {\r\n if (result) {\r\n if (!this.containsObject(product, result)) {\r\n result.push(product);\r\n return this.storage.set(COMPARE_KEY, result);\r\n } else {\r\n let index = result.findIndex(x => x.product_id == product.product_id);\r\n let prevQuantity = parseInt(result[index].count);\r\n product.count = (prevQuantity + product.count);\r\n let currentPrice = (parseInt(product.totalPrice) * product.count);\r\n product.totalPrice =currentPrice;\r\n result.splice(index, 1);\r\n result.push(product);\r\n return this.storage.set(COMPARE_KEY, result);\r\n }\r\n\r\n } else {\r\n return this.storage.set(COMPARE_KEY, [product]);\r\n }\r\n })\r\n }\r\n\r\n removeFromCompare(product) {\r\n return this.getCompareItems().then(result => {\r\n if (result) {\r\n var productIndex = result.indexOf(product);\r\n result.splice(productIndex, 1);\r\n return this.storage.set(COMPARE_KEY, result);\r\n }\r\n })\r\n }\r\n\r\n removeAllCompareItems() {\r\n return this.storage.remove(COMPARE_KEY).then(res => {\r\n return res;\r\n });\r\n }\r\n\r\n\r\n containsObject(obj, list): boolean {\r\n if (!list.length) {\r\n return false;\r\n }\r\n\r\n if (obj == null) {\r\n return false;\r\n }\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n if (list[i].product_id == obj.product_id) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n getCompareItems() {\r\n return this.storage.get(COMPARE_KEY);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\n@Injectable()\r\n/*\r\n* Uses Injected HTTP service in order to find files and return them as usable data objects\r\n*/\r\nexport class DataFinder {\r\n\r\n constructor(private http: Http) {\r\n }\r\n\r\n fetchData(){\r\n return this.http.get('assets/data/data.json').map(\r\n (response) => response.json()\r\n )\r\n }\r\n}","// import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Storage } from '@ionic/storage';\r\n\r\nconst LASTSEE_KEY = 'lastseeItems';\r\n\r\n@Injectable()\r\nexport class LastseeProvider {\r\n\r\n constructor(public storage: Storage) {\r\n console.log('Hello LastseeProvider Provider');\r\n }\r\n\r\n addToLastsee(product) {\r\n return this.getLastseeItems().then(result => {\r\n if (result) {\r\n if (!this.containsObject(product, result)) {\r\n result.push(product);\r\n return this.storage.set(LASTSEE_KEY, result);\r\n } else {\r\n let index = result.findIndex(x => x.product_id == product.product_id);\r\n let prevQuantity = parseInt(result[index].count);\r\n product.count = (prevQuantity + product.count);\r\n let currentPrice = (parseFloat(product.totalPrice) * product.count);\r\n product.totalPrice =currentPrice;\r\n result.splice(index, 1);\r\n result.push(product);\r\n return this.storage.set(LASTSEE_KEY, result);\r\n }\r\n\r\n } else {\r\n return this.storage.set(LASTSEE_KEY, [product]);\r\n }\r\n })\r\n }\r\n\r\n removeFromLastsee(product) {\r\n return this.getLastseeItems().then(result => {\r\n if (result) {\r\n var productIndex = result.indexOf(product);\r\n result.splice(productIndex, 1);\r\n return this.storage.set(LASTSEE_KEY, result);\r\n }\r\n })\r\n }\r\n\r\n removeAllLastseeItems() {\r\n return this.storage.remove(LASTSEE_KEY).then(res => {\r\n return res;\r\n });\r\n }\r\n\r\n\r\n containsObject(obj, list): boolean {\r\n if (!list.length) {\r\n return false;\r\n }\r\n\r\n if (obj == null) {\r\n return false;\r\n }\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n if (list[i].product_id == obj.product_id) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n getLastseeItems() {\r\n return this.storage.get(LASTSEE_KEY);\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n// import firebase from \"firebase\";\r\nimport { Events } from '@ionic/angular';\r\n\r\n@Injectable()\r\nexport class OrderProvider {\r\n // firedata = firebase.database().ref(\"/orders\");\r\n // orderDetails = firebase.database().ref(\"/ordersdetails\");\r\n orders:Array =[];\r\n constructor(public events: Events) {}\r\n\r\n// placeOrder(orderObj: any) {\r\n// var promise = new Promise((resolve, reject) => {\r\n// let orderRef = this.makeid(10)\r\n// let orderObject = {\r\n// orderRef: orderRef,\r\n// customerName:orderObj.name || '',\r\n// ShippingAmt:orderObj.shipping,\r\n// OrderAmt:orderObj.orderAmount,\r\n// totalAmount: orderObj.amount\r\n// };\r\n// //console.log('orderObject',orderObject);\r\n// this.firedata.push(orderObject).then(()=>{\r\n// orderObj.orders.forEach((v, indx) => {\r\n// //console.log(v);\r\n// this.orderDetails.push({\r\n// orderRef: orderRef,\r\n// productName: v.name,\r\n// Qty: v.count,\r\n// amount: v.totalPrice\r\n// }).then(()=>{\r\n// resolve(true);\r\n// })\r\n// });\r\n// })\r\n \r\n// });\r\n// return promise;\r\n// }\r\n\r\n // getOrders() {\r\n // this.firedata.once('value', (snap) => {\r\n // this.orders = [];\r\n // if (snap.val()) {\r\n // var tempProducts = snap.val();\r\n // for (var key in tempProducts) {\r\n // let singleProduct = {\r\n // id:key,\r\n // orderRef: tempProducts[key].orderRef,\r\n // customerName:tempProducts[key].customerName,\r\n // ShippingAmt:tempProducts[key].ShippingAmt,\r\n // OrderAmt:tempProducts[key].OrderAmt,\r\n // totalAmount: tempProducts[key].totalAmount\r\n // };\r\n // this.orders.push(singleProduct);\r\n // }\r\n // }\r\n // this.events.publish('productsLoaded');\r\n // });\r\n // }\r\n\r\n makeid(lenght:number) {\r\n var text = \"\";\r\n var possible =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\r\n\r\n for (var i = 0; i < lenght; i++)\r\n text += possible.charAt(Math.floor(Math.random() * possible.length));\r\n\r\n return text;\r\n }\r\n}\r\n","import { CacheService } from 'ionic-cache';\r\nimport { Injectable } from '@angular/core';\r\nimport { Events, ToastController, Platform, LoadingController } from '@ionic/angular';\r\nimport { Storage } from '@ionic/storage';\r\n// import firebase from 'firebase';\r\n// import { AngularFireDatabaseModule } from \"@angular/fire/database\";\r\nimport { DataFinder } from '../../providers/datafinder';\r\n// const products_KEY = 'products';\r\n// import { DataFinder } from '../../providers/datafinder';\r\nimport { NetworkService, ConnectionStatus } from '../../services/network.service';\r\nimport { HTTP } from '@ionic-native/http/ngx';\r\nimport { Observable} from 'rxjs/Observable';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Http, Headers, RequestOptions } from '@angular/http';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { AuthProvider } from '../../providers/auth/auth';\r\nimport 'rxjs/add/operator/map';\r\nimport { File } from '@ionic-native/file/ngx';\r\nimport { from } from 'rxjs';\r\nconst API_STORAGE_KEY = 'specialkey';\r\n@Injectable()\r\nexport class ProductsProvider {\r\n // promoRef = firebase.database().ref(\"promotions\");\r\n // productRef = firebase.database().ref(\"articleinitial\");\r\n products: any;\r\n orders: Observable;\r\n pbms: Observable;\r\n order: Observable;\r\n pbm: Observable;\r\n promo: any;\r\n filters: any;\r\n sale: any;\r\n search: any;\r\n suggestion: Observable;\r\n res: any;\r\n object: any;\r\n keys:any;\r\n suggestionKey = 'my-suggestion-group';\r\n searchKey = 'my-search-group';\r\n productsKey = 'my-products-group';\r\n promoKey = 'my-promo-group';\r\n saleKey = 'my-sale-group';\r\n filtersKey = 'my-filters-group';\r\n ordersKey = 'my-orders-group';\r\n orderKey = 'my-order-group';\r\n pbmsKey = 'my-pbms-group';\r\n pbmKey = 'my-pbm-group';\r\n // articleinitial = [];\r\n // promos: Array = [];\r\n // searchTerm:Array =[]; \r\n constructor(private networkService: NetworkService, private http1: Http, private loadingCtrl: LoadingController, private nativeHttp: HTTP, private file: File,public plt: Platform, private auth:AuthProvider,private toastCtrl:ToastController, private http: HttpClient, private cache: CacheService, public events: Events, public storage: Storage, private dataFinder : DataFinder, ) {\r\n }\r\n\r\n getPromoSlider() {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let req = this.http.get('https://demorest.msgsoftware.nl/Promotion', {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.promo = data['stActions']['arrAction'];\r\n console.log(data['stActions']['arrAction']);\r\n console.log(this.promo);\r\n return this.promo\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getPromoSliderNative() {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Promotion', {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n\r\n let parsed = JSON.parse(data.data);\r\n this.promo = parsed.stActions.arrAction;\r\n console.log(this.promo);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n\r\n getPromoSwitch() {\r\n if (this.plt.is('cordova')) {\r\n this.getPromoSliderNative();\r\n } else {\r\n this.getPromoSlider();\r\n }\r\n }\r\n\r\n getSale() {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let req = this.http.get('https://demorest.msgsoftware.nl/Promotion', {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.sale = data['stActions']['arrAction'];\r\n console.log(data['stActions']['arrAction']);\r\n console.log(this.sale);\r\n return this.sale\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getSaleNative() {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Promotion', {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n\r\n let parsed = JSON.parse(data.data);\r\n this.sale = parsed.stActions.arrAction;\r\n console.log(this.sale);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getSaleSwitch() {\r\n if (this.plt.is('cordova')) {\r\n this.getSaleNative()\r\n } else {\r\n this.getSale();\r\n }\r\n }\r\n\r\n getProductsByCategoryFilters(categoryfilter) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let url = '/Article?Category='+categoryfilter;\r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.products = data['stArticles']['arrArticleInList'];\r\n console.log(data['stArticles']['arrArticleInList']);\r\n console.log(this.products);\r\n return this.products\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getProductsCategoryFiltersNative(categoryfilter) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let url = 'https://demorest.msgsoftware.nl/Article?Category='+categoryfilter;\r\n let nativeCall = this.nativeHttp.get(url, {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n\r\n let parsed = JSON.parse(data.data);\r\n this.products = parsed.stArticles.arrArticleInList;\r\n console.log(this.products);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getProductCategoryFiltersNativeSwitch(categoryfilter) {\r\n if (this.plt.is('cordova')) {\r\n this.getProductsCategoryFiltersNative(categoryfilter)\r\n } else {\r\n this.getProductsByCategoryFilters(categoryfilter);\r\n }\r\n }\r\n\r\n getOrderlist(refresher?){\r\n let headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Content-Type', 'application/json' );\r\n headers.append('UserToken', this.auth.AuthToken)\r\n console.log('orderlist-token', this.auth.AuthToken)\r\n let url = '/Orderlist'; \r\n let req = this.http1.get(url, options)\r\n .map(res => {\r\n let toast = this.toastCtrl.create({\r\n message: 'Artikelen Laden',\r\n duration: 2000\r\n });\r\n // toast.present();\r\n const array = JSON.stringify(res.json().stListNames.arrListName );\r\n console.log(array);\r\n const object = JSON.parse(array)\r\n console.log(object);\r\n let json2 = JSON.stringify(object);\r\n let json1 = JSON.parse(json2);\r\n const array1 = JSON.stringify(res.json());\r\n console.log(array);\r\n const object2 = JSON.parse(array1)\r\n console.log(object);\r\n let json4 = JSON.stringify(object2);\r\n let json3 = JSON.parse(json4);\r\n return json1 || [] && json3 || [];\r\n });\r\n let ttl = 10;\r\n if (refresher) {\r\n let delayType = 'all';\r\n this.orders = this.cache.loadFromDelayedObservable(url, req, this.ordersKey, ttl, delayType);\r\n this.orders.subscribe(data => {\r\n refresher.complete();\r\n });\r\n } else {\r\n this.orders = this.cache.loadFromObservable(url, req, this.ordersKey, ttl);\r\n this.orders = this.cache.loadFromObservable(url, req, this.ordersKey);\r\n }\r\n }\r\n \r\n getOrderlistNative() {\r\n let loading = this.loadingCtrl.create();\r\n console.log('token', this.auth.AuthToken);\r\n this.storage.get('token').then((val) => {\r\n console.log('Your age is', val);\r\n val = this.auth.AuthToken\r\n });\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n 'UserToken': 'this.auth.AuthToken'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Orderlist',this.auth.AuthToken, headers)\r\n console.log('this is native');\r\n console.log(this.auth.AuthToken)\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n\r\n let parsed = JSON.parse(data.data);\r\n this.orders = parsed.stListNames.arrListName;\r\n console.log(this.orders);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getOrderlistSwitch() {\r\n if (this.plt.is('cordova')) {\r\n this.getOrderlistNative()\r\n } else {\r\n this.getOrderlist();\r\n }\r\n }\r\n\r\n\r\n getOrderlistItems(order) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let url = '/Orderlist/'+order;\r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.order = data['stArticles']['arrArticleInList'];\r\n console.log(data['stArticles']['arrArticleInList']);\r\n console.log(this.order);\r\n return this.order\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getOrderlistItemsNative(order) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Orderlist'+order, {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n \r\n let parsed = JSON.parse(data.data);\r\n this.order = parsed.stArticles.arrArticleInList;\r\n console.log(this.order);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getOrderlistItemsSwitch(order) {\r\n if (this.plt.is('cordova')) {\r\n this.getOrderlistItemsNative(order)\r\n } else {\r\n this.getOrderlistItems(order);\r\n }\r\n }\r\n\r\n getPBMList() {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', 'demopbm');\r\n let url = '/Orderlist';\r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.pbms = data['stListNames']['arrListName'];\r\n console.log(data['stListNames']['arrListName']);\r\n console.log(this.pbms);\r\n return this.pbms\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getPBMListNative() {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n 'UserToken': 'demopbm'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Orderlist', {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n \r\n let parsed = JSON.parse(data.data);\r\n this.pbms = parsed.stListNames.arrListName;\r\n console.log(this.pbms);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getPBMListSwitch() {\r\n if (this.plt.is('cordova')) {\r\n this.getPBMListNative()\r\n } else {\r\n this.getPBMList();\r\n }\r\n }\r\n\r\n\r\n getPBMListItems(pbm) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', 'demopbm');\r\n let url = '/Orderlist/'+pbm; \r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.pbm = data['stArticles']['arrArticleInList'];\r\n console.log(data['stArticles']['arrArticleInList']);\r\n console.log(this.pbm);\r\n return this.pbm\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getPBMListItemsNative(pbm) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n 'UserToken': 'demopbm'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Orderlist'+pbm, {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n \r\n let parsed = JSON.parse(data.data);\r\n this.pbm = parsed.stArticles.arrArticleInList;\r\n console.log(this.pbm);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getPBMListItemsSwitch(pbm) {\r\n if (this.plt.is('cordova')) {\r\n this.getPBMListItemsNative(pbm)\r\n } else {\r\n this.getPBMListItems(pbm);\r\n }\r\n }\r\n\r\n getProductsByCategory(category) {\r\n let loading = this.loadingCtrl.create();\r\n if (this.networkService.getCurrentNetworkStatus() == ConnectionStatus.Offline) {\r\n // Return the cached data from Storage\r\n return from(this.getLocalData('users'));\r\n } else {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.auth.AuthToken);\r\n console.log(this.auth.AuthToken);\r\n let url = '/Article?Category='+category; \r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.products = data['stArticles']['arrArticleInList'];\r\n console.log(data['stArticles']['arrArticleInList']);\r\n console.log(this.products);\r\n let ttl = 10;\r\n this.products = this.cache.loadFromObservable(url, req, this.productsKey, ttl);\r\n this.products = this.cache.loadFromObservable(url, req, this.productsKey);\r\n // console.log('ok');\r\n this.setLocalData('category', data);\r\n return this.products\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n }\r\n \r\n\r\n// getProductsByCategory(category,refresher?){\r\n// let headers = new Headers();\r\n// let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Content-Type', 'application/json' );\r\n// headers.append('UserToken', this.auth.AuthToken)\r\n// console.log(this.auth.AuthToken)\r\n// let url = '/Article?Category='+category; \r\n// console.log(url);\r\n// let loading = this.loadingCtrl.create();\r\n// // \r\n// let req = this.http.get(url, options)\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stArticles.arrArticleInList );\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// const array1 = JSON.stringify(res.json().stPropFilter.arrProp );\r\n// console.log(array);\r\n// const object2 = JSON.parse(array1)\r\n// console.log(object);\r\n// let json4 = JSON.stringify(object2);\r\n// let json3 = JSON.parse(json4);\r\n// return json1 || [] && json3 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.products = this.cache.loadFromDelayedObservable(url, req, this.productsKey, ttl, delayType);\r\n// this.products.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey, ttl);\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey);\r\n// // console.log('ok');\r\n// }\r\n// }\r\n \r\n getProductsByCategoryNative(category) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Article?Category='+category, {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n \r\n let parsed = JSON.parse(data.data);\r\n this.products = parsed.stArticles.arrArticleInList;\r\n console.log(this.products);\r\n console.log(data);\r\n }, err => {\r\n console.log('native Call error: ', err);\r\n });\r\n }\r\n \r\n getProductsByCategorySwitch(category) {\r\n if (this.plt.is('cordova')) {\r\n this.getProductsByCategoryNative(category);\r\n } else {\r\n this.getProductsByCategory(category);\r\n }\r\n }\r\n\r\n getProductsByFilters(category) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.auth.AuthToken)\r\n let url = '/Article?Category='+category; \r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.filters = data['stPropFilter']['arrProp'];\r\n console.log(data['stPropFilter']['arrProp']);\r\n console.log(this.filters);\r\n return this.filters\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getProductsByFiltersNative(category) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Article?Category='+category, {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n \r\n let parsed = JSON.parse(data.data);\r\n this.filters = parsed.stPropFilter.arrProp;\r\n console.log(this.filters);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getProductsByFilterSwitch(category) {\r\n if (this.plt.is('cordova')) {\r\n this.getProductsByFiltersNative(category);\r\n } else {\r\n this.getProductsByFilters(category);\r\n }\r\n }\r\n\r\n getProductsByFilterID(category,filter1) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.auth.AuthToken)\r\n let url = '/Article?Category='+category+filter1; \r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.products = data['stArticles']['arrArticleInList'];\r\n console.log(data['stArticles']['arrArticleInList']);\r\n console.log(this.products);\r\n return this.products\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getProductsByFilterIDNative(category,filter1) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Article?Category='+category+filter1, {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n \r\n let parsed = JSON.parse(data.data);\r\n this.products = parsed.stArticles.arrArticleInList;\r\n console.log(this.products);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n\r\n });\r\n }\r\n \r\n getProductsByFilterIDSwitch(category,filter1) {\r\n if (this.plt.is('cordova')) {\r\n this.getProductsByFilterIDNative(category,filter1);\r\n } else {\r\n this.getProductsByFilterID(category,filter1);\r\n }\r\n }\r\n\r\n getSearchProducts(item) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.auth.AuthToken)\r\n let url = '/Article?SearchValue='+item; \r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.search = data['stArticles']['arrArticleInList'];\r\n console.log(data['stArticles']['arrArticleInList']);\r\n console.log(this.search);\r\n return this.search\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getSearchProductsNative(item) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Article?SearchValue='+item, {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n \r\n let parsed = JSON.parse(data.data);\r\n this.search = parsed.stArticles.arrArticleInList;\r\n console.log(this.search);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n \r\n });\r\n }\r\n \r\n getSearchProductsNativeSwitch(item) {\r\n if (this.plt.is('cordova')) {\r\n this.getSearchProductsNative(item);\r\n } else {\r\n this.getSearchProducts(item);\r\n }\r\n }\r\n\r\n\r\n getSearchSuggestions(sWord) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.auth.AuthToken)\r\n let url = '/Searchword/Suggestion/'+sWord; \r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.suggestion = data['stSearchwords'];\r\n console.log(data['stSearchwords']);\r\n console.log(this.suggestion);\r\n return this.suggestion\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getSearchSuggestionNative(sWord) {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Searchword/Suggestion/'+sWord, {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n \r\n let parsed = JSON.parse(data.data);\r\n this.suggestion = parsed.stSearchwords;\r\n console.log(this.search);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n \r\n });\r\n }\r\n \r\n getSearchSuggestionsNativeSwitch(sWord) {\r\n if (this.plt.is('cordova')) {\r\n this.getSearchSuggestionNative(sWord);\r\n } else {\r\n this.getSearchSuggestions(sWord);\r\n }\r\n }\r\n\r\n getProducts() {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.auth.AuthToken)\r\n let url = '/Category'; \r\n let req = this.http.get(url, {headers:headers}).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n this.products = data['Result'];\r\n console.log(data['Result']);\r\n console.log(this.products);\r\n return this.products\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n });\r\n }\r\n \r\n getProductsNative() {\r\n let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let nativeCall = this.nativeHttp.get('https://demorest.msgsoftware.nl/Category', {}, headers)\r\n console.log('this is native');\r\n from(nativeCall).pipe(\r\n finalize(() => console.log('ok'))\r\n )\r\n .subscribe(data => {\r\n \r\n let parsed = JSON.parse(data.data);\r\n this.suggestion = parsed.stSearchwords;\r\n console.log(this.search);\r\n console.log(data);\r\n }, err => {\r\n console.log('JS Call error: ', err);\r\n \r\n });\r\n }\r\n \r\n getProductsNativeSwitch() {\r\n if (this.plt.is('cordova')) {\r\n this.getProducts();\r\n } else {\r\n this.getProductsNative();\r\n }\r\n }\r\n\r\n\r\n // Save result of API requests\r\n private setLocalData(key, data) {\r\n this.storage.set(`${API_STORAGE_KEY}-${key}`, data);\r\n }\r\n \r\n // Get cached API result\r\n private getLocalData(key) {\r\n return this.storage.get(`${API_STORAGE_KEY}-${key}`);\r\n }\r\n\r\n\r\n \r\n\r\n// getPromoSlider(refresher?) {\r\n// if (this.plt.is('android')) {\r\n\r\n// // const httpHeader = {\r\n// // 'Content-Type': 'application/json',\r\n// // };\r\n// this.nativehttp.get('https://demorest.msgsoftware.nl/Promotion', {}, {})\r\n// .then(res => {\r\n \r\n// // JSON.parse(res.json());\r\n// console.log(res); // data received by server\r\n// this.promo = res\r\n// })\r\n// .catch(error => {\r\n \r\n// console.log(error.status);\r\n// console.log(error.error); // error message as string\r\n// console.log(error.headers);\r\n \r\n// });\r\n// }\r\n// let headers = new Headers();\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n// headers.append('Accept','application/json');\r\n// headers.append('content-type','application/json');\r\n// let url = '/Promotion';\r\n// let req = this.http.get(url, {headers:headers})\r\n// .map(res => {\r\n// const array = JSON.stringify(res.json().stActions.arrAction );\r\n// const object = JSON.parse(array)\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// return json1 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.promo = this.cache.loadFromDelayedObservable(url, req, this.promoKey, ttl, delayType);\r\n// this.promo.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.promo = this.cache.loadFromObservable(url, req, this.promoKey, ttl);\r\n// this.promo = this.cache.loadFromObservable(url, req, this.promoKey);\r\n// }\r\n// }\r\n\r\n// getSale(refresher?) {\r\n// let headers = new Headers();\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n// headers.append('Accept','application/json');\r\n// headers.append('content-type','application/json');\r\n// let url = '/Promotion';\r\n// let req = this.http.get(url, {headers:headers})\r\n// .map(res => {\r\n// const array = JSON.stringify(res.json().stActions.arrAction );\r\n// const object = JSON.parse(array)\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// return json1 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.sale = this.cache.loadFromDelayedObservable(url, req, this.saleKey, ttl, delayType);\r\n// this.sale.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.sale = this.cache.loadFromObservable(url, req, this.saleKey, ttl);\r\n// this.sale = this.cache.loadFromObservable(url, req, this.saleKey);\r\n// }\r\n// }\r\n\r\n// getProductsByCategoryFilters(categoryfilter,refresher?){\r\n// let headers = new Headers();\r\n// let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Content-Type', 'application/json' );\r\n// headers.append('UserToken', this.auth.AuthToken)\r\n// console.log(this.auth.AuthToken)\r\n// let url = '/Article?Category='+categoryfilter; \r\n// let req = this.http.get(url, options)\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stArticles.arrArticleInList );\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// this.file.copyFile(this.file.applicationDirectory + '/www/assets/data', 'data.json', this.file.applicationStorageDirectory, 'data.json').then(_ => console.log('Directory exists')).catch(err => console.log('Directory doesnt exist'));\r\n\r\n// const array1 = JSON.stringify(res.json().stPropFilter.arrProp );\r\n// console.log(array);\r\n// const object2 = JSON.parse(array1)\r\n// console.log(object);\r\n// let json4 = JSON.stringify(object2);\r\n// let json3 = JSON.parse(json4);\r\n// return json1 || [] && json3 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.products = this.cache.loadFromDelayedObservable(url, req, this.productsKey, ttl, delayType);\r\n// this.products.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey, ttl);\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey);\r\n// }\r\n// }\r\n\r\n// getOrderlist(refresher?){\r\n// let headers = new Headers();\r\n// let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Content-Type', 'application/json' );\r\n// headers.append('UserToken', this.auth.AuthToken)\r\n// console.log(this.auth.AuthToken)\r\n// let url = '/Orderlist'; \r\n// let req = this.http.get(url, options)\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stListNames.arrListName );\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// const array1 = JSON.stringify(res.json());\r\n// console.log(array);\r\n// const object2 = JSON.parse(array1)\r\n// console.log(object);\r\n// let json4 = JSON.stringify(object2);\r\n// let json3 = JSON.parse(json4);\r\n// return json1 || [] && json3 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.orders = this.cache.loadFromDelayedObservable(url, req, this.ordersKey, ttl, delayType);\r\n// this.orders.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.orders = this.cache.loadFromObservable(url, req, this.ordersKey, ttl);\r\n// this.orders = this.cache.loadFromObservable(url, req, this.ordersKey);\r\n// }\r\n// }\r\n\r\n// getOrderlistItems(order, refresher?){\r\n// let headers = new Headers();\r\n// let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Content-Type', 'application/json' );\r\n// headers.append('UserToken', this.auth.AuthToken)\r\n// console.log(this.auth.AuthToken)\r\n// let url = '/Orderlist/'+order; \r\n// let req = this.http.get(url, options)\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stArticles.arrArticleInList);\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// const array1 = JSON.stringify(res.json().stArticles.arrArticleInList);\r\n// console.log(array);\r\n// const object2 = JSON.parse(array1)\r\n// console.log(object);\r\n// let json4 = JSON.stringify(object2);\r\n// let json3 = JSON.parse(json4);\r\n// return json1 || [] && json3 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.order = this.cache.loadFromDelayedObservable(url, req, this.orderKey, ttl, delayType);\r\n// this.order.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.order = this.cache.loadFromObservable(url, req, this.orderKey, ttl);\r\n// this.order = this.cache.loadFromObservable(url, req, this.orderKey);\r\n// }\r\n// }\r\n\r\n// getPBMlist(refresher?){\r\n// let headers = new Headers();\r\n// let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Content-Type', 'application/json' );\r\n// headers.append('UserToken', 'demopbm')\r\n// console.log(this.auth.AuthToken)\r\n// console.log(this.auth.UserID)\r\n// let url = '/Orderlist'; \r\n// let req = this.http.get(url, options)\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stListNames.arrListName );\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// const array1 = JSON.stringify(res.json());\r\n// console.log(array);\r\n// const object2 = JSON.parse(array1)\r\n// console.log(object);\r\n// let json4 = JSON.stringify(object2);\r\n// let json3 = JSON.parse(json4);\r\n// return json1 || [] && json3 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.pbms = this.cache.loadFromDelayedObservable(url, req, this.pbmsKey, ttl, delayType);\r\n// this.pbms.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.pbms = this.cache.loadFromObservable(url, req, this.pbmsKey, ttl);\r\n// this.pbms = this.cache.loadFromObservable(url, req, this.pbmsKey);\r\n// }\r\n// }\r\n\r\n// getPBMlistItems(pbm, refresher?){\r\n// let headers = new Headers();\r\n// let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Content-Type', 'application/json' );\r\n// headers.append('UserToken', 'demopbm')\r\n// console.log(this.auth.AuthToken)\r\n// let url = '/Orderlist/'+pbm; \r\n// let req = this.http.get(url, options)\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stArticles.arrArticleInList);\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// const array1 = JSON.stringify(res.json().stArticles.arrArticleInList);\r\n// console.log(array);\r\n// const object2 = JSON.parse(array1)\r\n// console.log(object);\r\n// let json4 = JSON.stringify(object2);\r\n// let json3 = JSON.parse(json4);\r\n// return json1 || [] && json3 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.pbm = this.cache.loadFromDelayedObservable(url, req, this.pbmKey, ttl, delayType);\r\n// this.pbm.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.pbm = this.cache.loadFromObservable(url, req, this.pbmKey, ttl);\r\n// this.pbm = this.cache.loadFromObservable(url, req, this.pbmKey);\r\n// }\r\n// }\r\n\r\n// getProductsByCategory(category,refresher?){\r\n// let headers = new Headers();\r\n// let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Content-Type', 'application/json' );\r\n// headers.append('UserToken', this.auth.AuthToken)\r\n// console.log(this.auth.AuthToken)\r\n// let url = '/Article?Category='+category; \r\n// console.log(url);\r\n// let loading = this.loadingCtrl.create();\r\n// // \r\n// let req = this.http.get(url, options)\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stArticles.arrArticleInList );\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// const array1 = JSON.stringify(res.json().stPropFilter.arrProp );\r\n// console.log(array);\r\n// const object2 = JSON.parse(array1)\r\n// console.log(object);\r\n// let json4 = JSON.stringify(object2);\r\n// let json3 = JSON.parse(json4);\r\n// return json1 || [] && json3 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.products = this.cache.loadFromDelayedObservable(url, req, this.productsKey, ttl, delayType);\r\n// this.products.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey, ttl);\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey);\r\n// // console.log('ok');\r\n// }\r\n// }\r\n\r\n// getProductsByCategoryNative(category,refresher?){\r\n// // let headers = new Headers();\r\n// // let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n// // headers.append('Access-Control-Allow-Origin' , '*');\r\n// // headers.append('Content-Type', 'application/json' );\r\n// // headers.append('UserToken', this.auth.AuthToken)\r\n// console.log(this.auth.AuthToken)\r\n// let url = 'http://testrestservicesdyk.msgnl.com/Article?Category='+category; \r\n// console.log(url);\r\n// // let loading = this.loadingCtrl.create();\r\n// // \r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'native artikelen ophalen',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// let data = {\r\n// 'Action': 'Login',\r\n// 'UserName': 'bla',\r\n// 'Password': 'blabla'\r\n// };\r\n// let headers = {\r\n// 'Content-Type': 'application/json'\r\n// };\r\n// // let req = this.http.get(url, options)\r\n// // .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'native artikelen ophalen',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// // const array = JSON.stringify(res.json().stArticles.arrArticleInList );\r\n// // console.log(array);\r\n// // const object = JSON.parse(array)\r\n// // console.log(object);\r\n// // let json2 = JSON.stringify(object);\r\n// // let json1 = JSON.parse(json2);\r\n// // const array1 = JSON.stringify(res.json().stPropFilter.arrProp );\r\n// // console.log(array);\r\n// // const object2 = JSON.parse(array1)\r\n// // console.log(object);\r\n// // let json4 = JSON.stringify(object2);\r\n// // let json3 = JSON.parse(json4);\r\n// // return json1 || [] && json3 || [];\r\n// // });\r\n// let req = this.nativeHttp.get(url, {}, headers)\r\n// .then((data) => {\r\n// console.log(data);\r\n// })\r\n// .catch((error) => {\r\n// console.log(error);\r\n// });\r\n// let ttl = 10;\r\n// // if (refresher) {\r\n// // let delayType = 'all';\r\n// // this.products = this.cache.loadFromDelayedObservable(url, req, this.productsKey, ttl, delayType);\r\n// // this.products.subscribe(data => {\r\n// // refresher.complete();\r\n// // });\r\n// // } else {\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey, ttl);\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey);\r\n// // console.log('ok');\r\n// // }\r\n// }\r\n\r\n// getProductsByFilters(category,refresher?){\r\n// let headers = new Headers();\r\n// headers.append('Content-Type', 'application/json' );\r\n// let url = '/Article?CategoryID='+category; \r\n// let req = this.http.get(url, {headers:headers})\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stPropFilter.arrProp );\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// return json1 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.filters = this.cache.loadFromDelayedObservable(url, req, this.filtersKey, ttl, delayType);\r\n// this.filters.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.filters = this.cache.loadFromObservable(url, req, this.filtersKey, ttl);\r\n// this.filters = this.cache.loadFromObservable(url, req, this.filtersKey);\r\n// }\r\n// }\r\n\r\n// getProductsfilterID(category,refresher?){\r\n// let headers = new Headers();\r\n// headers.append('Content-Type', 'application/json' );\r\n// let url = '/Article?CategoryID='+category+'&Filter[1]=oppervlakte|75+m²'; \r\n// let req = this.http.get(url, {headers:headers})\r\n// .map(res => {\r\n// let toast = this.toastCtrl.create({\r\n// message: 'Artikelen Laden',\r\n// duration: 2000\r\n// });\r\n// toast.present();\r\n// const array = JSON.stringify(res.json().stArticles.arrArticleInList);\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// return json1 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.filters = this.cache.loadFromDelayedObservable(url, req, this.filtersKey, ttl, delayType);\r\n// this.filters.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.filters = this.cache.loadFromObservable(url, req, this.filtersKey, ttl);\r\n// this.filters = this.cache.loadFromObservable(url, req, this.filtersKey);\r\n// }\r\n// }\r\n\r\n// getProductsByFilterID(category,filter1,refresher?){\r\n// let headers = new Headers();\r\n// let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Content-Type', 'application/json' );\r\n// headers.append('UserToken', this.auth.AuthToken)\r\n// console.log(this.auth.AuthToken)\r\n// let url = '/Article?Category='+category+filter1; \r\n// console.log(url);\r\n// let req = this.http.get(url, options)\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stArticles.arrArticleInList );\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// const array1 = JSON.stringify(res.json().stPropFilter.arrProp );\r\n// console.log(array);\r\n// const object2 = JSON.parse(array1)\r\n// console.log(object);\r\n// let json4 = JSON.stringify(object2);\r\n// let json3 = JSON.parse(json4);\r\n// return json1 || [] && json3 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.products = this.cache.loadFromDelayedObservable(url, req, this.productsKey, ttl, delayType);\r\n// this.products.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey, ttl);\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey);\r\n// }\r\n// }\r\n\r\n// getSearchProducts(item,refresher?){\r\n// let headers = new Headers();\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Content-Type', 'application/json' );\r\n// headers.append('UserToken', this.auth.AuthToken)\r\n// let url = '/Article?SearchValue='+item; \r\n// let req = this.http.get(url, {headers:headers})\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stArticles.arrArticleInList );\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// return json1 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.search = this.cache.loadFromDelayedObservable(url, req, this.searchKey, ttl, delayType);\r\n// this.search.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.search = this.cache.loadFromObservable(url, req, this.searchKey, ttl);\r\n// this.search = this.cache.loadFromObservable(url, req, this.searchKey);\r\n// }\r\n// }\r\n\r\n\r\n// getSearchSuggestions(sWord,refresher?){\r\n// let headers = new Headers();\r\n// headers.append('Content-Type', 'application/json' );\r\n// let url = '/Searchword/Suggestion/Moer'+sWord; \r\n// let req = this.http.get(url, {headers:headers})\r\n// .map(res => {\r\n// // let toast = this.toastCtrl.create({\r\n// // message: 'Artikelen Laden',\r\n// // duration: 2000\r\n// // });\r\n// // toast.present();\r\n// const array = JSON.stringify(res.json().stSearchwords );\r\n// console.log(array);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json2 = JSON.stringify(object);\r\n// let json1 = JSON.parse(json2);\r\n// return json1 || [];\r\n// });\r\n// let ttl = 10;\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.suggestion = this.cache.loadFromDelayedObservable(url, req, this.suggestionKey, ttl, delayType);\r\n// this.suggestion.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.suggestion = this.cache.loadFromObservable(url, req, this.suggestionKey, ttl);\r\n// this.suggestion = this.cache.loadFromObservable(url, req, this.suggestionKey);\r\n// }\r\n// }\r\n\r\n// getProducts(refresher?){\r\n// let body = '{ \"ProcedureName\":\"ARTICLEINITIAL\", \"DB\":\"Web_EO2\", \"BV\":0 }';\r\n// let headers = new Headers();\r\n// let url = '/Category';\r\n// let req = this.http.post(url, {headers:headers})\r\n// .map(res => {\r\n// const array = JSON.stringify(res.json().Result);\r\n// const object = JSON.parse(array)\r\n// console.log(object);\r\n// let json = JSON.parse(object);\r\n// console.log(json);\r\n// return json || [];\r\n// });\r\n// let ttl = 10;\r\n// console.log(url);\r\n// console.log(req);\r\n// if (refresher) {\r\n// let delayType = 'all';\r\n// this.products = this.cache.loadFromDelayedObservable(url, req, this.productsKey, ttl, delayType);\r\n// this.products.subscribe(data => {\r\n// refresher.complete();\r\n// });\r\n// } else {\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey, ttl);\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey);\r\n// }\r\n// }\r\n\r\n// forceReload(refresher){\r\n// this.getProductsByCategory(refresher);\r\n// }\r\n\r\n initializeItems(): void {\r\n this.products = this.products;\r\n }\r\n\r\n query(params?: any) {\r\n let products=this.products;\r\n if (!params) {\r\n return products;\r\n }\r\n console.log(\"filtering with this\",params);\r\n\r\n // if(params['sPropDesc']!==\"\"){\r\n // products = this.products.filter((products) => {\r\n // if(params['sPropDesc']==products['sPropDesc']){\r\n // return products;\r\n // }\r\n // });\r\n // }\r\n\r\n // if(params['sPropValue']!==\"\"){\r\n // products = this.products.filter((products) => {\r\n // if(params['sPropDesc']==products['sPropDesc']){\r\n // return products;\r\n // }\r\n // });\r\n // }\r\n\r\n // if(params['sPropUnit']!==\"\"){\r\n // products = this.products.filter((products) => {\r\n // if(params['sPropUnit']==products['sPropUnit']){\r\n // return products;\r\n // }\r\n // });\r\n // }\r\n // if(params['gender']!==\"\"){\r\n // products = this.products.filter((item) => {\r\n // if(params['gender']==item['gender']){\r\n // return item;\r\n // }\r\n // });\r\n // }\r\n\r\n // if(params['first_name']!==\"\"){\r\n // products = this.products.filter((item) => {\r\n // let itemValue = item['first_name'];\r\n\r\n // if (typeof itemValue == 'string' && (itemValue.toLowerCase().indexOf(params['first_name'].toLowerCase()) >= 0)) {\r\n // return item;\r\n // } else if (itemValue == params['first_name']) {\r\n // return item;\r\n // }\r\n // });\r\n // }\r\n return products\r\n}\r\n\r\n // CountryFilter(CRITERETEC2: any) : void\r\n // {\r\n // this.initializeItems();\r\n // // if (CRITERETEC2.trim() !== \" \")\r\n // // {\r\n // this.products = this.products.filter((products) =>{\r\n // if(products.CRITERETEC2) {\r\n // if (products.CRITERETEC2.toLowerCase().indexOf(CRITERETEC2.toLowerCase()) > -1) {\r\n // return true;\r\n // }\r\n // return false;\r\n // }\r\n // });\r\n // // }\r\n\r\n // }\r\n\r\n // getProducts() {\r\n // this.productRef.once('value', (snap) => {\r\n // this.products = [];\r\n // if (snap.val()) {\r\n // var tempProducts = snap.val();\r\n // for (var key in tempProducts) {\r\n // let singleProduct = {\r\n // id:key,\r\n // ArticleID: tempProducts[key].ArticleID,\r\n // ProdDesc: tempProducts[key].ProdDesc,\r\n // Reference: tempProducts[key].Reference,\r\n // NETPRICE: tempProducts[key].NETPRICE,\r\n // VATPRICE: tempProducts[key].VATPRICE,\r\n // // name: tempProducts[key].name,\r\n // // images:tempProducts[key].images,\r\n // // price:tempProducts[key].price,\r\n // // rating:tempProducts[key].rating,\r\n // // sale_price:tempProducts[key].sale_price,\r\n // // short_description:tempProducts[key].short_description,\r\n // // thumb:tempProducts[key].thumb\r\n // };\r\n\r\n // this.products.push(singleProduct);\r\n // }\r\n // }\r\n // this.events.publish('productsLoaded');\r\n // });\r\n // }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Http } from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\n \r\n\r\n/*\r\n Generated class for the SearchProvider provider.\r\n\r\n See https://angular.io/guide/dependency-injection for more info on providers\r\n and Angular DI.\r\n*/\r\n@Injectable()\r\nexport class SearchProvider {\r\n\r\n items: any;\r\n \r\n constructor(public http: Http) {\r\n\r\n this.items = [\r\n {title: 'one'},\r\n {title: 'two'},\r\n {title: 'three'},\r\n {title: 'four'},\r\n {title: 'five'},\r\n {title: 'six'}\r\n ]\r\n\r\n }\r\n\r\n filterItems(searchTerm){\r\n\r\n return this.items.filter((item) => {\r\n return item.title.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;\r\n }); \r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { of, throwError } from 'rxjs';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { forkJoin } from 'rxjs';\r\nimport { Platform } from '@ionic/angular';\r\nimport { HTTP, HTTPResponse } from '@ionic-native/http/ngx';\r\nimport { map } from 'rxjs/operators';\r\nimport { Storage } from '@ionic/storage';\r\nimport { Http, Headers, RequestOptions } from '@angular/http';\r\nimport { from } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\n// import * as sha512 from 'js-sha512';\r\nimport * as sha512 from 'sha512';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport 'rxjs/add/operator/toPromise';\r\nimport base64url from \"base64url\";\r\nimport {Observable} from 'rxjs/Observable';\r\nimport 'rxjs/add/observable/fromPromise';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n userKey = 'my-user-group';\r\n user: any;\r\n userid: any;\r\n PBMuserKey = 'my-user-group';\r\n PBMuser: any;\r\n isLoggedIn = false;\r\n AuthToken: string;\r\n bAllowPbm: any;\r\n bAllowShop: any;\r\n PBMAuthToken: string;\r\n iUserId: any;\r\n iClient: any;\r\n iPbmMode: any;\r\n login2:any\r\n iUserType: any;\r\n bLoggedIn:any;\r\n fullname: string;\r\n item:any;\r\n OrderNumber:any;\r\n constructor(public platform: Platform,private http: Http, private nativeHttp: HTTP, public storage: Storage) { }\r\n\r\n // async login(loginParams){\r\n // return new Promise((resolve, reject) => {\r\n // var headers = new Headers();\r\n // let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n // headers.append('Access-Control-Allow-Origin' , '*');\r\n // headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n // headers.append('Accept','application/json');\r\n // headers.append('content-type','application/json');\r\n // let url = 'https://demorest.msgsoftware.nl/Authorisation'; \r\n // console.log(JSON.stringify(loginParams));\r\n // let user = this.http.post(url, JSON.stringify(loginParams), options)\r\n // .subscribe( data => {\r\n // if(data.json().stAuthResp){\r\n // this.storeUserCredentials(data.json().stAuthResp.sSessionID);\r\n // this.storeUserID(data.json().stAuthResp.iUserId);\r\n // this.storage.set('userToken', this.AuthToken);\r\n // this.storePBM(data.json().stAuthResp.iPbmMode);\r\n // console.log(data.json().stAuthResp.iPbmMode);\r\n // console.log(data.json());\r\n // this.userFullname(data.json().stAuthResp.sFullName);\r\n // resolve(true);\r\n // }\r\n // else\r\n // resolve(false);\r\n // });\r\n // });\r\n // }\r\n\r\n async login(loginParams){\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let url = 'https://demorest.msgsoftware.nl/Authorisation'; \r\n console.log(JSON.stringify('test',loginParams));\r\n let user = this.http.post(url, JSON.stringify(loginParams), options)\r\n .subscribe( data => {\r\n if(data.json().stAuthResp){\r\n this.storeUserCredentials(data.json().stAuthResp.sSessionID);\r\n this.storeUserID(data.json().stAuthResp.iUserId);\r\n this.storeClientID(data.json().stAuthResp.iClient);\r\n this.storeUserType(data.json().stAuthResp.iUserType);\r\n this.storage.set('userToken', this.AuthToken);\r\n console.log(this.AuthToken);\r\n this.storePBM(data.json().stAuthResp.iPbmMode);\r\n this.storeallowPBM(data.json().stAuthResp.bAllowPbm);\r\n console.log(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json());\r\n this.userFullname(data.json().stAuthResp.sFullName);\r\n resolve(true);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n async passwordReset(sUser, sMail){\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let url = 'https://demorest.msgsoftware.nl/User/'+sUser+'/'+sMail; \r\n console.log(JSON.stringify('test',sUser+sMail));\r\n let user = this.http.post(url, '', options)\r\n .subscribe( data => {\r\n if(data.json()){\r\n console.log(data.json())\r\n resolve(true);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n async Guestlogin(){\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers});\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let url = 'https://demorest.msgsoftware.nl/Authorisation'; \r\n let user = this.http.post(url,'',options)\r\n .subscribe( data => {\r\n console.log(data);\r\n if(data.json().stAuthResp){\r\n this.storeUserCredentials(data.json().stAuthResp.sSessionID);\r\n this.storeUserID(data.json().stAuthResp.iUserId);\r\n this.storeClientID(data.json().stAuthResp.iClient);\r\n this.storeUserType(data.json().stAuthResp.iUserType);\r\n this.storage.set('userToken', this.AuthToken);\r\n this.storeallowPBM(data.json().stAuthResp.bAllowPbm);\r\n console.log(this.AuthToken);\r\n this.storePBM(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json());\r\n this.userFullname(data.json().stAuthResp.sFullName);\r\n resolve(true);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n console.log(user);\r\n });\r\n }\r\n\r\n async logoff(){\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.AuthToken)\r\n let url = 'https://demorest.msgsoftware.nl/Authorisation'; \r\n // console.log(JSON.stringify(loginParams));\r\n let user = this.http.delete(url, options)\r\n .subscribe( data => {\r\n console.log(data);\r\n if(data.json().stAuthResp){\r\n this.storeUserCredentials(data.json().stAuthResp.sSessionID);\r\n this.storeUserID(data.json().stAuthResp.iUserId);\r\n this.storeClientID(data.json().stAuthResp.iClient);\r\n this.storeUserType(data.json().stAuthResp.iUserType);\r\n this.storage.set('userToken', this.AuthToken);\r\n console.log(this.AuthToken);\r\n this.storePBM(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json());\r\n this.userFullname(data.json().stAuthResp.sFullName);\r\n resolve(true);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n async loginoffNative() {\r\n // let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n \"Content-Type\": \"application/json\"\r\n };\r\n this.nativeHttp.setDataSerializer(\"json\");\r\n // console.log('native', loginParams)\r\n // let params = loginParams;\r\n\r\nthis.nativeHttp.delete('https://demorest.msgsoftware.nl/Authorisation',{}, headers)\r\n .then((data) => {\r\n let parsed = JSON.parse(data.data);\r\n this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n this.storeUserID(parsed.stAuthResp.iUserId);\r\n this.storeClientID(parsed.stAuthResp.iClient);\r\n this.storeUserType(parsed.stAuthResp.iUserType);\r\n this.storePBM(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n this.userFullname(parsed.stAuthResp.sFullName);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n async PBMlogin(){\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.AuthToken)\r\n console.log('pbmlogin', this.AuthToken)\r\n // var b64 = CryptoJS.AES.encrypt(plainText, SECRET).toString();\r\n let sha = CryptoJS.SHA512(this.AuthToken).toString(CryptoJS.enc.Base64);\r\n // let encode = CryptoJS.enc.Base64.stringify(sha)\r\n let encodedSource1 = sha.replace(/=+$/, '');\r\n let encodedSource2 = encodedSource1.replace(/\\+/g, '-');\r\n let encodedSource3 = encodedSource2.replace(/\\//g, '_');\r\n let part = encodedSource3.slice(4, 25);\r\n console.log('hash', sha);\r\n console.log('hash', encodedSource3);\r\n // console.log('hash', encode);\r\n let url = 'https://demorest.msgsoftware.nl/Authorisation/'+part+'?SetPBM=On'; \r\n console.log(url)\r\n \r\n let user = this.http.get(url, options)\r\n .subscribe( data => {\r\n if(data.json().stAuthResp){\r\n this.storePBMUserCredentials(data.json().stAuthResp.sSessionID);\r\n this.storeUserID(data.json().stAuthResp.iUserId);\r\n this.storeClientID(data.json().stAuthResp.iClient);\r\n this.storeUserType(data.json().stAuthResp.iUserType);\r\n // this.storage.set('userToken', this.PBMAuthToken);\r\n // console.log(this.AuthToken);\r\n this.storePBM(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json());\r\n this.userFullname(data.json().stAuthResp.sFullName);\r\n resolve(true);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n async loginswitch(){\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.PBMAuthToken)\r\n console.log('pbmlogin', this.PBMAuthToken)\r\n // var b64 = CryptoJS.AES.encrypt(plainText, SECRET).toString();\r\n let sha = CryptoJS.SHA512(this.PBMAuthToken).toString(CryptoJS.enc.Base64);\r\n // let encode = CryptoJS.enc.Base64.stringify(sha)\r\n let encodedSource1 = sha.replace(/=+$/, '');\r\n let encodedSource2 = encodedSource1.replace(/\\+/g, '-');\r\n let encodedSource3 = encodedSource2.replace(/\\//g, '_');\r\n let part = encodedSource3.slice(4, 25);\r\n console.log('hash', sha);\r\n console.log('hash', encodedSource3);\r\n // console.log('hash', encode);\r\n let url = 'https://demorest.msgsoftware.nl/Authorisation/'+part; \r\n console.log(url)\r\n \r\n let user = this.http.put(url, options)\r\n .subscribe( data => {\r\n if(data.json().stAuthResp){\r\n this.storeUserCredentials(data.json().stAuthResp.sSessionID);\r\n this.storeUserID(data.json().stAuthResp.iUserId);\r\n this.storeClientID(data.json().stAuthResp.iClient);\r\n this.storeUserType(data.json().stAuthResp.iUserType);\r\n this.storage.set('userToken', this.AuthToken);\r\n console.log(this.AuthToken);\r\n this.storePBM(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json());\r\n this.userFullname(data.json().stAuthResp.sFullName);\r\n resolve(true);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n \r\n async loginNative(loginParams) {\r\n // let loading = this.loadingCtrl.create();\r\n \r\n let headers = {\r\n \"Content-Type\": \"application/json\"\r\n };\r\n this.nativeHttp.setDataSerializer(\"json\");\r\n console.log('native', loginParams)\r\n let params = loginParams;\r\n\r\nthis.nativeHttp.post('https://demorest.msgsoftware.nl/Authorisation', params, headers)\r\n .then((data) => {\r\n let parsed = JSON.parse(data.data);\r\n this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n this.storeUserID(parsed.stAuthResp.iUserId);\r\n this.storeClientID(parsed.stAuthResp.iClient);\r\n this.storeUserType(parsed.stAuthResp.iUserType);\r\n this.storePBM(parsed.stAuthResp.iPbmMode);\r\n this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n this.userFullname(parsed.stAuthResp.sFullName);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n async guestNative(loginParams): Promise {\r\n // let loading = this.loadingCtrl.create();\r\n let headers = {\r\n \"Content-Type\": \"application/json\"\r\n };\r\n let sale = this.nativeHttp.post('https://demorest.msgsoftware.nl/Authorisation', {}, headers)\r\n .then(\r\n res => {let parsed = JSON.parse(res.data);\r\n this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n console.log(parsed.stAuthResp.sSessionID)\r\n this.storeUserID(parsed.stAuthResp.iUserId);\r\n this.storeClientID(parsed.stAuthResp.iClient);\r\n this.storeUserType(parsed.stAuthResp.iUserType);\r\n this.storePBM(parsed.stAuthResp.iPbmMode);\r\n this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n this.userFullname(parsed.stAuthResp.sFullName);\r\n },\r\n error => error);\r\n console.log(sale)\r\n return sale\r\n \r\n }\r\n\r\n async GuestloginNative(loginParams) {\r\n // let loading = this.loadingCtrl.create();\r\n return new Promise((resolve, reject) => {\r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n this.nativeHttp.post('https://demorest.msgsoftware.nl/Authorisation', loginParams, headers)\r\n .then(\r\n res => resolve(res),\r\n error => reject(error));\r\n });\r\n\r\n\r\n \r\n// let headers = {\r\n// 'Content-Type': 'application/json'\r\n// };\r\n// this.nativeHttp.setDataSerializer(\"json\");\r\n// console.log('native', loginParams)\r\n// let params = loginParams;\r\n// console.log(headers)\r\n// console.log( this.nativeHttp.post('https://demorest.msgsoftware.nl/Authorisation', loginParams, headers))\r\n// this.nativeHttp.post('https://demorest.msgsoftware.nl/Authorisation', loginParams, headers)\r\n// .then((data) => {\r\n// let parsed = JSON.parse(data.data);\r\n// this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n// this.storeUserID(parsed.stAuthResp.iUserId);\r\n// this.storeClientID(parsed.stAuthResp.iClient);\r\n// this.storeUserType(parsed.stAuthResp.iUserType);\r\n// this.storePBM(parsed.stAuthResp.iPbmMode);\r\n// this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n// console.log(parsed.stAuthResp.iPbmMode);\r\n// console.log(parsed);\r\n// this.userFullname(parsed.stAuthResp.sFullName);\r\n// })\r\n// .catch((error) => {\r\n// console.log(error);\r\n// });\r\n }\r\n\r\n guestlogin(data){\r\n let parsed = JSON.parse(data.data);\r\n this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n \r\n this.storeUserID(parsed.stAuthResp.iUserId);\r\n this.storeClientID(parsed.stAuthResp.iClient);\r\n this.storeUserType(parsed.stAuthResp.iUserType);\r\n this.storePBM(parsed.stAuthResp.iPbmMode);\r\n this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n this.userFullname(parsed.stAuthResp.sFullName);\r\n }\r\n\r\n storeUserCredentials(token) {\r\n window.localStorage.setItem('Authtoken', token);\r\n this.storage.set('Authtoken', token);\r\n console.log('test',token)\r\n this.useCredentials(token);\r\n }\r\n\r\n storePBMUserCredentials(token) {\r\n window.localStorage.setItem('PBMtoken', token);\r\n this.storage.set('PBMtoken', token);\r\n this.usePBMCredentials(token);\r\n }\r\n\r\n storeUserID(iUserId) {\r\n window.localStorage.setItem('iUserId', iUserId);\r\n this.storage.set('iUserId', iUserId);\r\n this.useUserID(iUserId);\r\n }\r\n\r\n storeUserType(iUserType) {\r\n window.localStorage.setItem('iUserType', iUserType);\r\n this.storage.set('iUserType', iUserType);\r\n this.useUserID(iUserType);\r\n }\r\n\r\n storeClientID(iClient) {\r\n window.localStorage.setItem('iClient', iClient);\r\n this.storage.set('iClient', iClient);\r\n this.useClientID(iClient);\r\n }\r\n\r\n storePBM(iPbmMode) {\r\n window.localStorage.setItem('iPbmMode', iPbmMode);\r\n this.storage.set('iPbmMode', iPbmMode);\r\n this.usePBMmodeID(iPbmMode);\r\n }\r\n\r\n storeOrderNumber(OrderNumber) {\r\n window.localStorage.setItem('OrderNumber', OrderNumber);\r\n this.storage.set('OrderNumber', OrderNumber);\r\n this.useOrderNumber(OrderNumber);\r\n }\r\n\r\n storeallowPBM(bAllowPbm) {\r\n window.localStorage.setItem('bAllowPbm', bAllowPbm);\r\n this.storage.set('bAllowPbm', bAllowPbm);\r\n console.log(bAllowPbm)\r\n this.useallowPBM(bAllowPbm);\r\n }\r\n\r\n storelogedIn(bLoggedIn) {\r\n window.localStorage.setItem('bLoggedIn', bLoggedIn);\r\n this.storage.set('bLoggedIn', bLoggedIn);\r\n console.log(bLoggedIn)\r\n this.useLogedIn(bLoggedIn);\r\n }\r\n\r\n storeallowSHOP(bAllowSHOP) {\r\n window.localStorage.setItem('bAllowSHOP', bAllowSHOP);\r\n this.storage.set('bAllowSHOP', bAllowSHOP);\r\n console.log(bAllowSHOP)\r\n this.useallowSHOP(bAllowSHOP);\r\n }\r\n\r\n useCredentials(token) {\r\n this.isLoggedIn = true;\r\n this.AuthToken = token || window.localStorage.setItem('Authtoken', token);\r\n }\r\n\r\n usePBMCredentials(token) {\r\n this.isLoggedIn = true;\r\n this.PBMAuthToken = token || window.localStorage.setItem('PBMAuthtoken', token);\r\n }\r\n\r\n useOrderNumber(token) {\r\n this.isLoggedIn = true;\r\n this.OrderNumber = token;\r\n }\r\n\r\n useUserID(iUserId) {\r\n this.isLoggedIn = true;\r\n this.iUserId = iUserId;\r\n }\r\n\r\n useUserType(iUserType) {\r\n this.isLoggedIn = true;\r\n this.iUserType = iUserType;\r\n }\r\n\r\n useClientID(iClient) {\r\n this.isLoggedIn = true;\r\n this.iClient = iClient;\r\n }\r\n\r\n usePBMmodeID(iPbmMode) {\r\n this.isLoggedIn = true;\r\n this.iPbmMode = iPbmMode;\r\n }\r\n\r\n useallowPBM(bAllowPbm) {\r\n this.isLoggedIn = true;\r\n this.bAllowPbm= bAllowPbm;\r\n }\r\n\r\n useallowSHOP(bAllowSHOP) {\r\n this.isLoggedIn = true;\r\n this.bAllowShop= bAllowSHOP;\r\n }\r\n\r\n useLogedIn(bLoggedIn) {\r\n this.isLoggedIn = true;\r\n this.bLoggedIn= bLoggedIn;\r\n }\r\n\r\n userFullname(fullname){\r\n this.isLoggedIn = true;\r\n this.fullname = fullname;\r\n console.log(fullname)\r\n }\r\n\r\n loadUserCredentials() {\r\n let token = window.localStorage.getItem('Authtoken') || this.storage.get('Authtoken');\r\n this.useCredentials(token);\r\n }\r\n\r\n destroyUserCredentials() {\r\n this.isLoggedIn = false;\r\n this.AuthToken = null;\r\n window.localStorage.clear();\r\n }\r\n\r\n createAuthorization(headers: Headers) {\r\n headers.append('UserToken', window.localStorage.getItem('Authtoken'));\r\n }\r\n\r\n async PBMloginNative() {\r\n // let loading = this.loadingCtrl.create();\r\n let sha = CryptoJS.SHA512(this.AuthToken).toString(CryptoJS.enc.Base64);\r\n // let encode = CryptoJS.enc.Base64.stringify(sha)\r\n let encodedSource1 = sha.replace(/=+$/, '');\r\n let encodedSource2 = encodedSource1.replace(/\\+/g, '-');\r\n let encodedSource3 = encodedSource2.replace(/\\//g, '_');\r\n let part = encodedSource3.slice(4, 25);\r\n console.log('hash', sha);\r\n console.log('hash', encodedSource3);\r\n let string = JSON.stringify(this.AuthToken)\r\n \r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.AuthToken}`\r\n };\r\n console.log(headers);\r\n console.log(string)\r\n console.log('pbmlogin', this.AuthToken)\r\n this.nativeHttp.get('https://demorest.msgsoftware.nl/Authorisation/'+part+'?SetPBM=On', {}, headers)\r\n .then((data) => {\r\n let parsed = JSON.parse(data.data);\r\n this.storePBMUserCredentials(parsed.stAuthResp.sSessionID);\r\n this.storeUserID(parsed.stAuthResp.iUserId);\r\n this.storeClientID(parsed.stAuthResp.iClient);\r\n this.storePBM(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n this.userFullname(parsed.stAuthResp.sFullName);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n // let nativeCall = this.nativeHttp.post('https://demorest.msgsoftware.nl/Authentication/'+part+'?SetPBM=On',{}, headers)\r\n // console.log('this is native');\r\n // from(nativeCall).pipe(\r\n // finalize(() => console.log('ok'))\r\n // )\r\n // .subscribe(data => {\r\n\r\n // let parsed = JSON.parse(data.data);\r\n // // this.auth = parsed.stAuthResp;\r\n // // console.log(this.promo);\r\n // console.log(data);\r\n // if(parsed.stAuthResp){\r\n // this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n // this.storeUserID(parsed.stAuthResp.iUserId);\r\n // this.storePBM(parsed.stAuthResp.iPbmMode);\r\n // console.log(parsed.stAuthResp.iPbmMode);\r\n // console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n // // resolve(true);\r\n // }\r\n // },\r\n // err => {\r\n // console.log('native error : ', err);\r\n // });\r\n }\r\n async Clientlogin(loginparams){\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.AuthToken)\r\n console.log('pbmlogin', this.AuthToken)\r\n // var b64 = CryptoJS.AES.encrypt(plainText, SECRET).toString();\r\n let sha = CryptoJS.SHA512(this.AuthToken).toString(CryptoJS.enc.Base64);\r\n // let encode = CryptoJS.enc.Base64.stringify(sha)\r\n let encodedSource1 = sha.replace(/=+$/, '');\r\n let encodedSource2 = encodedSource1.replace(/\\+/g, '-');\r\n let encodedSource3 = encodedSource2.replace(/\\//g, '_');\r\n let part = encodedSource3.slice(4, 25);\r\n console.log('hash', sha);\r\n console.log('hash', encodedSource3);\r\n // console.log('hash', encode);\r\n let url = 'https://demorest.msgsoftware.nl/Authorisation/'+part; \r\n console.log(url)\r\n console.log('clientservice', JSON.stringify(loginparams))\r\n let user = this.http.put(url, JSON.stringify(loginparams), options)\r\n .subscribe( data => {\r\n console.log(data);\r\n if(data.json().stAuthResp){\r\n this.storePBMUserCredentials(data.json().stAuthResp.sSessionID);\r\n this.storeUserID(data.json().stAuthResp.iUserId);\r\n this.storeClientID(data.json().stAuthResp.iClient);\r\n this.storeUserType(data.json().stAuthResp.iUserType);\r\n this.storage.set('userToken', this.AuthToken);\r\n console.log(this.AuthToken);\r\n this.storePBM(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json().stAuthResp.iPbmMode);\r\n console.log(data.json().stAuthResp.iClient);\r\n this.userFullname(data.json().stAuthResp.sFullName);\r\n resolve(true);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n async ClientloginNative(loginparams) {\r\n // let loading = this.loadingCtrl.create();\r\n let sha = CryptoJS.SHA512(this.AuthToken).toString(CryptoJS.enc.Base64);\r\n // let encode = CryptoJS.enc.Base64.stringify(sha)\r\n let encodedSource1 = sha.replace(/=+$/, '');\r\n let encodedSource2 = encodedSource1.replace(/\\+/g, '-');\r\n let encodedSource3 = encodedSource2.replace(/\\//g, '_');\r\n let part = encodedSource3.slice(4, 25);\r\n console.log('hash', sha);\r\n console.log('hash', encodedSource3);\r\n let string = JSON.stringify(this.AuthToken)\r\n \r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.AuthToken}`\r\n };\r\n console.log(headers);\r\n console.log(string)\r\n console.log('pbmlogin', this.AuthToken)\r\n this.nativeHttp.put('https://demorest.msgsoftware.nl/Authorisation/'+part, loginparams, headers)\r\n .then((data) => {\r\n let parsed = JSON.parse(data.data);\r\n this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n this.storeUserID(parsed.stAuthResp.iUserId);\r\n this.storeClientID(parsed.stAuthResp.iClient);\r\n this.storePBM(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n this.userFullname(parsed.stAuthResp.sFullName);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n // let nativeCall = this.nativeHttp.post('https://demorest.msgsoftware.nl/Authentication/'+part+'?SetPBM=On',{}, headers)\r\n // console.log('this is native');\r\n // from(nativeCall).pipe(\r\n // finalize(() => console.log('ok'))\r\n // )\r\n // .subscribe(data => {\r\n\r\n // let parsed = JSON.parse(data.data);\r\n // // this.auth = parsed.stAuthResp;\r\n // // console.log(this.promo);\r\n // console.log(data);\r\n // if(parsed.stAuthResp){\r\n // this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n // this.storeUserID(parsed.stAuthResp.iUserId);\r\n // this.storePBM(parsed.stAuthResp.iPbmMode);\r\n // console.log(parsed.stAuthResp.iPbmMode);\r\n // console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n // // resolve(true);\r\n // }\r\n // },\r\n // err => {\r\n // console.log('native error : ', err);\r\n // });\r\n }\r\n\r\n}","import { Injectable, ChangeDetectorRef, Injector } from '@angular/core';\r\nimport { Storage } from '@ionic/storage';\r\nimport { Item } from '../services/item';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { Http, Headers, RequestOptions } from '@angular/http';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { HTTP, HTTPResponse } from '@ionic-native/http/ngx';\r\nimport { AuthService } from '.././services/auth.service';\r\nimport { BasePage } from '../pages/base-page/base-page';\r\n\r\nconst CART_KEY = 'cartItems';\r\nconst PBMCART_KEY = 'PBMcartItems';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CartService extends BasePage {\r\n currentprice: number = 0;\r\n navbarCartCount = 0;\r\n navbarPBMCartCount = 0;\r\n OrderNumber: any;\r\n order: any;\r\n orderchange: any;\r\n constructor(injector: Injector,private http: Http, private commonhttp: HttpClient, private nativeHttp: HTTP, private auth: AuthService, public storage: Storage) {\r\n super(injector);\r\n this.calculateLocalCartProdCounts();\r\n this.calculateLocalPBMCartProdCounts();\r\n\r\n }\r\n // addToCart(product) {\r\n // return this.getCartItems().then(result => {\r\n // if (result) {\r\n // if (!this.containsObject(product, result)) {\r\n // result.push(product);\r\n // return this.storage.set(CART_KEY, result);\r\n // } else {\r\n // let index = result.findIndex(x => x.product_id == product.product_id);\r\n // let prevQuantity = parseInt(result[index].count);\r\n // product.count = (prevQuantity + product.count);\r\n // let currentPrice = (parseFloat(product.totalPrice));\r\n // product.totalPrice =currentPrice;\r\n // this.currentprice = currentPrice\r\n // result.splice(index, 1);\r\n // result.push(product);\r\n // return this.storage.set(CART_KEY, result);\r\n // }\r\n\r\n // } else {\r\n // return this.storage.set(CART_KEY, [product]);\r\n // }\r\n // })\r\n // }\r\n\r\n // Adding new Product to cart db if logged in else localStorage\r\n addToCart(data: any): void {\r\n let a: Item[];\r\n\r\n a = JSON.parse(localStorage.getItem('avct_item')) || [];\r\n\r\n a.push(data);\r\n // this.toastrService.wait('Adding Product to Cart', 'Product Adding to the cart');\r\n setTimeout(() => {\r\n localStorage.setItem('avct_item', JSON.stringify(a));\r\n this.calculateLocalCartProdCounts();\r\n }, 500);\r\n }\r\n\r\n // returning LocalCarts Product Count\r\n calculateLocalCartProdCounts() {\r\n this.navbarCartCount = this.getLocalCartProducts().length;\r\n }\r\n\r\n getLocalCartProducts(): Item[] {\r\n const products: Item[] = JSON.parse(localStorage.getItem('avct_item')) || [];\r\n\r\n return products;\r\n }\r\n\r\n removeLocalCartProduct(product: Item) {\r\n const products: Item[] = JSON.parse(localStorage.getItem('avct_item'));\r\n\r\n for (let i = 0; i < products.length; i++) {\r\n if (products[i].sArticleCode === product.product_id) {\r\n products.splice(i, 1);\r\n break;\r\n }\r\n }\r\n // ReAdding the products after remove\r\n localStorage.setItem('avct_item', JSON.stringify(products));\r\n\r\n this.calculateLocalCartProdCounts();\r\n }\r\n\r\n removeFromCart(product) {\r\n return this.getCartItems().then(result => {\r\n if (result) {\r\n var productIndex = result.indexOf(product);\r\n result.splice(productIndex, 1);\r\n return this.storage.set(CART_KEY, result);\r\n }\r\n })\r\n }\r\n\r\n // postOrder(): Observable {\r\n // let headers = new HttpHeaders().set('UserToken', this.auth.AuthToken);;\r\n // headers.append('Access-Control-Allow-Origin' , '*');\r\n // headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n // headers.append('Accept','application/json');\r\n // headers.append('content-type','application/json');\r\n // headers.append('content-type','application/json');\r\n // console.log('UserToken', this.auth.AuthToken)\r\n // let sale = this.http.post('/Order', {headers:headers});\r\n // console.log('order', sale);\r\n // return sale;\r\n // }\r\n\r\n postOrder() {\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n headers.append('UserToken', this.auth.AuthToken);\r\n console.log(this.auth.AuthToken)\r\n let url = 'https://demorest.msgsoftware.nl/Order';\r\n let user = this.http.post(url, '', options)\r\n .subscribe(data => {\r\n if (data.json().sResponse) {\r\n console.log('carserviceordernumber', data.json().sResponse)\r\n this.storeOrdernumber(data.json().sResponse);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n async postOrderNative(): Promise {\r\n\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.post('https://demorest.msgsoftware.nl/Order', {}, headers)\r\n .then(\r\n res => {let parsed = JSON.parse(res.data);\r\n // this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n // this.storeUserID(parsed.stAuthResp.iUserId);\r\n // this.storeClientID(parsed.stAuthResp.iClient);\r\n // this.storeUserType(parsed.stAuthResp.iUserType);\r\n // this.storePBM(parsed.stAuthResp.iPbmMode);\r\n // this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n this.storeOrdernumber(parsed.sResponse);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n },\r\n error => error);\r\n \r\n return sale\r\n }\r\n\r\n postOrderListName(name) {\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n headers.append('UserToken', this.auth.AuthToken);\r\n console.log(this.auth.AuthToken)\r\n let url = 'https://demorest.msgsoftware.nl/Orderlist?'+name;\r\n let user = this.http.post(url, name, options)\r\n .subscribe(data => {\r\n if (data.json().sResponse) {\r\n console.log('carserviceordernumber', data.json().sResponse)\r\n this.storeOrdernumber(data.json().sResponse);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n async postOrderListNameNative(name): Promise {\r\n\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.post('https://testrestservicesraa.msgnl.com/Orderlist', name, headers)\r\n .then(\r\n res => {let parsed = JSON.parse(res.data);\r\n // this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n // this.storeUserID(parsed.stAuthResp.iUserId);\r\n // this.storeClientID(parsed.stAuthResp.iClient);\r\n // this.storeUserType(parsed.stAuthResp.iUserType);\r\n // this.storePBM(parsed.stAuthResp.iPbmMode);\r\n // this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n this.storeOrdernumber(parsed.sResponse);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n },\r\n error => error);\r\n \r\n return sale\r\n }\r\n\r\n postOrderListItem(id, name) {\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n headers.append('UserToken', this.auth.AuthToken);\r\n console.log(this.auth.AuthToken)\r\n let url = 'https://demorest.msgsoftware.nl/Orderlist/'+id;\r\n let user = this.http.post(url, name, options)\r\n .subscribe(data => {\r\n if (data.json().sResponse) {\r\n console.log('carserviceordernumber', data.json().sResponse)\r\n this.storeOrdernumber(data.json().sResponse);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n async postOrderListItemNative(id, name): Promise {\r\n\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.post('https://demorest.msgsoftware.nl/Orderlist/'+id, name, headers)\r\n .then(\r\n res => {let parsed = JSON.parse(res.data);\r\n // this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n // this.storeUserID(parsed.stAuthResp.iUserId);\r\n // this.storeClientID(parsed.stAuthResp.iClient);\r\n // this.storeUserType(parsed.stAuthResp.iUserType);\r\n // this.storePBM(parsed.stAuthResp.iPbmMode);\r\n // this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n this.storeOrdernumber(parsed.sResponse);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n },\r\n error => error);\r\n \r\n return sale\r\n }\r\n\r\n\r\n postOrderNativeNumber(data) {\r\n let parsed = JSON.parse(data.data);\r\n this.storeOrdernumber(parsed.sResponse);\r\n }\r\n\r\n postPBMOrder() {\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n headers.append('UserToken', this.auth.PBMAuthToken);\r\n console.log(this.auth.AuthToken)\r\n let url = '/Order';\r\n let user = this.http.post(url, '', options)\r\n .subscribe(data => {\r\n if (data.json().sResponse) {\r\n console.log('carserviceordernumber', data.json().sResponse)\r\n this.storeOrdernumber(data.json().sResponse);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n async postPBMOrderNative(): Promise {\r\n\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.PBMAuthToken}`\r\n };\r\n let sale = this.nativeHttp.post('https://demorest.msgsoftware.nl/Order', {}, headers)\r\n .then(\r\n res => {let parsed = JSON.parse(res.data);\r\n // this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n // this.storeUserID(parsed.stAuthResp.iUserId);\r\n // this.storeClientID(parsed.stAuthResp.iClient);\r\n // this.storeUserType(parsed.stAuthResp.iUserType);\r\n // this.storePBM(parsed.stAuthResp.iPbmMode);\r\n // this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n this.storeOrdernumber(parsed.sResponse);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n },\r\n error => error);\r\n \r\n return sale\r\n }\r\n\r\n postPBMOrderListName(name) {\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n headers.append('UserToken', this.auth.PBMAuthToken);\r\n console.log(this.auth.PBMAuthToken)\r\n let url = '/Orderlist?'+name;\r\n let user = this.http.post(url, name, options)\r\n .subscribe(data => {\r\n if (data.json().sResponse) {\r\n console.log('carserviceordernumber', data.json().sResponse)\r\n this.storeOrdernumber(data.json().sResponse);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n async postPBMOrderListNameNative(name): Promise {\r\n\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.PBMAuthToken}`\r\n };\r\n let sale = this.nativeHttp.post('https://demorest.msgsoftware.nl/Orderlist', name, headers)\r\n .then(\r\n res => {let parsed = JSON.parse(res.data);\r\n // this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n // this.storeUserID(parsed.stAuthResp.iUserId);\r\n // this.storeClientID(parsed.stAuthResp.iClient);\r\n // this.storeUserType(parsed.stAuthResp.iUserType);\r\n // this.storePBM(parsed.stAuthResp.iPbmMode);\r\n // this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n this.storeOrdernumber(parsed.sResponse);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n },\r\n error => error);\r\n \r\n return sale\r\n }\r\n\r\n postPBMOrderListItem(id, name) {\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n headers.append('UserToken', this.auth.PBMAuthToken);\r\n console.log(this.auth.PBMAuthToken)\r\n let url = '/Orderlist/'+id;\r\n let user = this.http.post(url, name, options)\r\n .subscribe(data => {\r\n if (data.json().sResponse) {\r\n console.log('carserviceordernumber', data.json().sResponse)\r\n this.storeOrdernumber(data.json().sResponse);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n async postPBMOrderListItemNative(id, name): Promise {\r\n\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.PBMAuthToken}`\r\n };\r\n let sale = this.nativeHttp.post('https://demorest.msgsoftware.nl/Orderlist/'+id, name, headers)\r\n .then(\r\n res => {let parsed = JSON.parse(res.data);\r\n // this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n // this.storeUserID(parsed.stAuthResp.iUserId);\r\n // this.storeClientID(parsed.stAuthResp.iClient);\r\n // this.storeUserType(parsed.stAuthResp.iUserType);\r\n // this.storePBM(parsed.stAuthResp.iPbmMode);\r\n // this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n this.storeOrdernumber(parsed.sResponse);\r\n console.log(parsed.stAuthResp.iPbmMode);\r\n console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n },\r\n error => error);\r\n \r\n return sale\r\n }\r\n\r\n\r\n postPBMOrderNativeNumber(data) {\r\n let parsed = JSON.parse(data.data);\r\n this.storeOrdernumber(parsed.sResponse);\r\n }\r\n\r\n // getOrder(){\r\n // return new Promise((resolve, reject) => {\r\n // var headers = new Headers();\r\n // let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n // headers.append('Access-Control-Allow-Origin' , '*');\r\n // headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n // headers.append('Accept','application/json');\r\n // headers.append('content-type','application/json');\r\n // headers.append('UserToken', this.auth.AuthToken);\r\n // console.log(this.auth.AuthToken)\r\n // let url = '/Order/'+this.OrderNumber; \r\n // console.log(url)\r\n // let user = this.http.get(url,options)\r\n // .subscribe( data => {\r\n // console.log(data.json())\r\n // this.order = data.json();\r\n // if(data.json().sResponse){\r\n // console.log('carserviceordernumber', data.json().sResponse)\r\n // this.storeOrdernumber(data.json().sResponse);\r\n // }\r\n // else\r\n // resolve(false);\r\n // });\r\n // });\r\n // }\r\n\r\n // async getOrderNative() {\r\n // let headers = {\r\n // \"Content-Type\": \"application/json\",\r\n // \"UserToken\": `${this.auth.AuthToken}`\r\n // };\r\n // this.nativeHttp.setDataSerializer(\"json\");\r\n // this.nativeHttp.get('https://demorest.msgsoftware.nl/Order/'+this.OrderNumber, {}, headers)\r\n // .then((data) => {\r\n // let parsed = JSON.parse(data.data);\r\n // this.storeOrdernumber(parsed.sResponse);\r\n // })\r\n // .catch((error) => {\r\n // console.log(error);\r\n // });\r\n // }\r\n\r\n getOrder(): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.AuthToken);\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n console.log('tokenproduct', this.auth.AuthToken)\r\n // headers.append('UserToken', this.auth.AuthToken);\r\n let items = this.commonhttp.get('/Order/'+this.OrderNumber, { headers: headers });\r\n console.log('order', items);\r\n return items;\r\n }\r\n\r\n getOrderNative(): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n console.log(headers)\r\n this.nativeHttp.setDataSerializer(\"json\");\r\n console.log(headers);\r\n let items = this.nativeHttp.get('https://demorest.msgsoftware.nl/Order/'+this.OrderNumber, {}, headers);\r\n console.log('order', items);\r\n console.log('this is native');\r\n return items;\r\n }\r\n\r\n getOrderLine(): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.AuthToken);\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n console.log('tokenproduct', this.auth.AuthToken)\r\n // headers.append('UserToken', this.auth.AuthToken);\r\n let items = this.commonhttp.get('https://demorest.msgsoftware.nl/Orderline/'+this.OrderNumber, { headers: headers });\r\n console.log('orderlines', items);\r\n return items;\r\n }\r\n\r\n getOrderLineNative(): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n console.log(headers)\r\n this.nativeHttp.setDataSerializer(\"json\");\r\n console.log(headers);\r\n let items = this.nativeHttp.get('https://demorest.msgsoftware.nl/OrderLine/'+this.OrderNumber, {}, headers);\r\n console.log('orderlines', items);\r\n console.log('this is native');\r\n return items;\r\n }\r\n\r\n getPBMOrder(): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.PBMAuthToken);\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n console.log('tokenproduct', this.auth.PBMAuthToken)\r\n // headers.append('UserToken', this.auth.AuthToken);\r\n let items = this.commonhttp.get('https://demorest.msgsoftware.nl/Order/'+this.OrderNumber, { headers: headers });\r\n console.log('order', items);\r\n return items;\r\n }\r\n\r\n getPBMOrderNative(): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.PBMAuthToken}`\r\n };\r\n console.log(headers)\r\n this.nativeHttp.setDataSerializer(\"json\");\r\n console.log(headers);\r\n let items = this.nativeHttp.get('https://demorest.msgsoftware.nl/Order/'+this.OrderNumber, {}, headers);\r\n console.log('order', items);\r\n console.log('this is native');\r\n return items;\r\n }\r\n\r\n getPBMOrderLine(): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.PBMAuthToken);\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n console.log('tokenproduct', this.auth.PBMAuthToken)\r\n // headers.append('UserToken', this.auth.AuthToken);\r\n let items = this.commonhttp.get('https://demorest.msgsoftware.nl/Orderline/'+this.OrderNumber, { headers: headers });\r\n console.log('orderlines', items);\r\n return items;\r\n }\r\n\r\n getPBMOrderLineNative(): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.PBMAuthToken}`\r\n };\r\n console.log(headers)\r\n this.nativeHttp.setDataSerializer(\"json\");\r\n console.log(headers);\r\n let items = this.nativeHttp.get('https://demorest.msgsoftware.nl/OrderLine/'+this.OrderNumber, {}, headers);\r\n console.log('orderlines', items);\r\n console.log('this is native');\r\n return items;\r\n }\r\n\r\n putOrder(orderlines, stAddrDelivery) {\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n console.log(this.currentPath+'/thanks/'+this.OrderNumber)\r\n let json = {\r\n \"stOrder\": {\r\n \"bComplete\": false,\r\n \"bInform\": false,\r\n \"bUseNews\": false,\r\n \"bUrgentOrder\": false,\r\n \"iAccClient\": 0,\r\n \"sAccAdres\": \"\",\r\n \"sContactMail\": \"testmail@msgnl.com\",\r\n \"sContactTel\": \"0612345678\",\r\n \"sContactGsm\": \"\",\r\n \"sOrderCompTyp\": \"\",\r\n \"sOrderCorr\": \"DEMO\",\r\n \"sOrderKvkNr\": \"\",\r\n \"sOrderMemo\": \"mijn opmerking\",\r\n \"sOrderName\": \"DEMO MODEL WEBSHOP\",\r\n \"sOrderSexe\": \"1\",\r\n \"sOrderUser\": \"test\",\r\n \"sOrderValuta\": \"EUR\",\r\n \"sOrderVatNr\": \"\",\r\n \"sOrderWork\": \"\",\r\n \"sOrderYourRef\": \"mijn ref\",\r\n \"sOrderXML\": \"\",\r\n \"stAddrDelivery\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"INV\",\r\n \"sCity\": \"DEMOWOUD\",\r\n \"sCountry\": \"NEDERLAND\",\r\n \"sCountryCode\": \"NL\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"01\",\r\n \"sStreet1\": \"DEMOSTRAAT 11\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"DEMO\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n },\r\n \"stAddrInvoice\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"INV\",\r\n \"sCity\": \"DEMOWOUD\",\r\n \"sCountry\": \"NEDERLAND\",\r\n \"sCountryCode\": \"NL\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"01\",\r\n \"sStreet1\": \"DEMOSTRAAT 11\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"DEMO\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n },\r\n \"stAddrWork\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"WRK\",\r\n \"sCity\": \"\",\r\n \"sCountry\": \"\",\r\n \"sCountryCode\": \"\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"\",\r\n \"sStreet1\": \"\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n }\r\n },\r\n \"stOrderFiles\": {\r\n \"arrArtURL\": [\r\n\r\n ]\r\n },\r\n \"stOrderLines\": {\r\n \"curTotExcl\": 24.9,\r\n \"curTotGross\": 24.9,\r\n \"curTotIncl\": 30.13,\r\n \"curTotVAT\": 5.23,\r\n \"iNbOfLines\": 1,\r\n \"iTotPoints\": 0,\r\n \"arrOrderLine\": [\r\n orderlines\r\n ]\r\n },\r\n \"stOrderPayment\": {\r\n \"sAccBic\": \"\",\r\n \"sAccCity\": \"\",\r\n \"sAccIban\": \"\",\r\n \"sAccName\": \"\",\r\n \"sAccNr\": \"\",\r\n \"sCardType\": \"\",\r\n \"sCardOwner\": \"\",\r\n \"sCardNr\": \"\",\r\n \"sCardSafety\": \"\",\r\n \"sCardMonth\": \"\",\r\n \"sCardYear\": \"\",\r\n \"sIdealStat\": \"\",\r\n \"sIdealParam\": \"\",\r\n \"sIdealError\": \"\",\r\n \"sIdealPayID\": \"\",\r\n \"sIdealPM\": \"\",\r\n \"sIdealLink\": \"https://webshop.vandijk.com/DIJK_WEB/nl/PaymentCompleteReturn.awp?OrderNr=\"+`${this.OrderNumber}`+\"%26Project=DYK\"\r\n },\r\n \"stOrderState\": {\r\n \"bEMaintenance\": false,\r\n \"bKopAccJN\": false,\r\n \"bKopOCI\": false,\r\n \"dDeliveryDate\": \"0000-00-00\",\r\n \"dtOrderStamp\": \"0000-00-00T00:00:00.000\",\r\n \"iDeliveryType\": 1,\r\n \"iOrderLang\": 3,\r\n \"iOrderNumber\": this.OrderNumber,\r\n \"iOrderState\": 7,\r\n \"iOrderType\": 100,\r\n \"iOrderPayment\": 21,\r\n \"sOrderIPAddr\": \"::1\",\r\n \"sOrderValuta\": \"EUR\"\r\n }\r\n }\r\n console.log(json);\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n headers.append('UserToken', this.auth.AuthToken);\r\n console.log(this.auth.AuthToken)\r\n let url = '/Order/'+this.OrderNumber;\r\n console.log(url)\r\n console.log(this.orderchange)\r\n let user = this.http.put(url, json, options)\r\n .subscribe(data => {\r\n console.log(data.json())\r\n if (data.json().sResponse) {\r\n console.log('carserviceordernumber', data.json().sResponse)\r\n this.storeOrdernumber(data.json().sResponse);\r\n this.OrderNumber = data.json().sResponse\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n putOrderNative(orderlines, stAddrDelivery): Promise {\r\n\r\n // return new Promise((resolve, reject) => {\r\n let json = {\r\n \"stOrder\": {\r\n \"bComplete\": false,\r\n \"bInform\": false,\r\n \"bUseNews\": false,\r\n \"bUrgentOrder\": false,\r\n \"iAccClient\": 0,\r\n \"sAccAdres\": \"\",\r\n \"sContactMail\": \"testmail@msgnl.com\",\r\n \"sContactTel\": \"0612345678\",\r\n \"sContactGsm\": \"\",\r\n \"sOrderCompTyp\": \"\",\r\n \"sOrderCorr\": \"DEMO\",\r\n \"sOrderKvkNr\": \"\",\r\n \"sOrderMemo\": \"mijn opmerking\",\r\n \"sOrderName\": \"DEMO MODEL WEBSHOP\",\r\n \"sOrderSexe\": \"1\",\r\n \"sOrderUser\": \"test\",\r\n \"sOrderValuta\": \"EUR\",\r\n \"sOrderVatNr\": \"\",\r\n \"sOrderWork\": \"\",\r\n \"sOrderYourRef\": \"mijn ref\",\r\n \"sOrderXML\": \"\",\r\n \"stAddrDelivery\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"INV\",\r\n \"sCity\": \"DEMOWOUD\",\r\n \"sCountry\": \"NEDERLAND\",\r\n \"sCountryCode\": \"NL\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"01\",\r\n \"sStreet1\": \"DEMOSTRAAT 11\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"DEMO\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n },\r\n \"stAddrInvoice\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"INV\",\r\n \"sCity\": \"DEMOWOUD\",\r\n \"sCountry\": \"NEDERLAND\",\r\n \"sCountryCode\": \"NL\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"01\",\r\n \"sStreet1\": \"DEMOSTRAAT 11\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"DEMO\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n },\r\n \"stAddrWork\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"WRK\",\r\n \"sCity\": \"\",\r\n \"sCountry\": \"\",\r\n \"sCountryCode\": \"\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"\",\r\n \"sStreet1\": \"\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n }\r\n },\r\n \"stOrderFiles\": {\r\n \"arrArtURL\": [\r\n\r\n ]\r\n },\r\n \"stOrderLines\": {\r\n \"curTotExcl\": 24.9,\r\n \"curTotGross\": 24.9,\r\n \"curTotIncl\": 30.13,\r\n \"curTotVAT\": 5.23,\r\n \"iNbOfLines\": 1,\r\n \"iTotPoints\": 0,\r\n \"arrOrderLine\": [\r\n orderlines\r\n ]\r\n },\r\n \"stOrderPayment\": {\r\n \"sAccBic\": \"\",\r\n \"sAccCity\": \"\",\r\n \"sAccIban\": \"\",\r\n \"sAccName\": \"\",\r\n \"sAccNr\": \"\",\r\n \"sCardType\": \"\",\r\n \"sCardOwner\": \"\",\r\n \"sCardNr\": \"\",\r\n \"sCardSafety\": \"\",\r\n \"sCardMonth\": \"\",\r\n \"sCardYear\": \"\",\r\n \"sIdealStat\": \"\",\r\n \"sIdealParam\": \"\",\r\n \"sIdealError\": \"\",\r\n \"sIdealPayID\": \"\",\r\n \"sIdealPM\": \"\",\r\n \"sIdealLink\": \"https://webshop.vandijk.com/DIJK_WEB/nl/PaymentCompleteReturn.awp?OrderNr=\"+`${this.OrderNumber}`+\"%26Project=DYK\"\r\n },\r\n \"stOrderState\": {\r\n \"bEMaintenance\": false,\r\n \"bKopAccJN\": false,\r\n \"bKopOCI\": false,\r\n \"dDeliveryDate\": \"0000-00-00\",\r\n \"dtOrderStamp\": \"0000-00-00T00:00:00.000\",\r\n \"iDeliveryType\": 1,\r\n \"iOrderLang\": 3,\r\n \"iOrderNumber\": this.OrderNumber,\r\n \"iOrderState\": 7,\r\n \"iOrderType\": 100,\r\n \"iOrderPayment\": 21,\r\n \"sOrderIPAddr\": \"::1\",\r\n \"sOrderValuta\": \"EUR\"\r\n }\r\n }\r\n console.log(json);\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n\r\n console.log(this.auth.AuthToken)\r\n // this.nativeHttp.put('https://demorest.msgsoftware.nl/Order/'+this.OrderNumber, json, headers)\r\n // .then(\r\n // res => resolve(res),\r\n // error => reject(error));\r\n\r\n let sale = this.nativeHttp.put('https://demorest.msgsoftware.nl/Order/'+this.OrderNumber, json, headers)\r\n .then(\r\n res => {let parsed = JSON.parse(res.data);\r\n console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n },\r\n error => error);\r\n \r\n return sale\r\n // });\r\n\r\n }\r\n\r\n\r\n putPBMOrder(orderlines, stAddrDelivery) {\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n console.log(this.currentPath+'/thanks/'+this.OrderNumber)\r\n let json = {\r\n \"stOrder\": {\r\n \"bComplete\": false,\r\n \"bInform\": false,\r\n \"bUseNews\": false,\r\n \"bUrgentOrder\": false,\r\n \"iAccClient\": 0,\r\n \"sAccAdres\": \"\",\r\n \"sContactMail\": \"testmail@msgnl.com\",\r\n \"sContactTel\": \"0612345678\",\r\n \"sContactGsm\": \"\",\r\n \"sOrderCompTyp\": \"\",\r\n \"sOrderCorr\": \"DEMO\",\r\n \"sOrderKvkNr\": \"\",\r\n \"sOrderMemo\": \"mijn opmerking\",\r\n \"sOrderName\": \"DEMO MODEL WEBSHOP\",\r\n \"sOrderSexe\": \"1\",\r\n \"sOrderUser\": \"test\",\r\n \"sOrderValuta\": \"EUR\",\r\n \"sOrderVatNr\": \"\",\r\n \"sOrderWork\": \"\",\r\n \"sOrderYourRef\": \"mijn ref\",\r\n \"sOrderXML\": \"\",\r\n \"stAddrDelivery\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"INV\",\r\n \"sCity\": \"DEMOWOUD\",\r\n \"sCountry\": \"NEDERLAND\",\r\n \"sCountryCode\": \"NL\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"01\",\r\n \"sStreet1\": \"DEMOSTRAAT 11\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"DEMO\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n },\r\n \"stAddrInvoice\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"INV\",\r\n \"sCity\": \"DEMOWOUD\",\r\n \"sCountry\": \"NEDERLAND\",\r\n \"sCountryCode\": \"NL\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"01\",\r\n \"sStreet1\": \"DEMOSTRAAT 11\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"DEMO\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n },\r\n \"stAddrWork\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"WRK\",\r\n \"sCity\": \"\",\r\n \"sCountry\": \"\",\r\n \"sCountryCode\": \"\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"\",\r\n \"sStreet1\": \"\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n }\r\n },\r\n \"stOrderFiles\": {\r\n \"arrArtURL\": [\r\n\r\n ]\r\n },\r\n \"stOrderLines\": {\r\n \"curTotExcl\": 24.9,\r\n \"curTotGross\": 24.9,\r\n \"curTotIncl\": 30.13,\r\n \"curTotVAT\": 5.23,\r\n \"iNbOfLines\": 1,\r\n \"iTotPoints\": 0,\r\n \"arrOrderLine\": [\r\n orderlines\r\n ]\r\n },\r\n \"stOrderPayment\": {\r\n \"sAccBic\": \"\",\r\n \"sAccCity\": \"\",\r\n \"sAccIban\": \"\",\r\n \"sAccName\": \"\",\r\n \"sAccNr\": \"\",\r\n \"sCardType\": \"\",\r\n \"sCardOwner\": \"\",\r\n \"sCardNr\": \"\",\r\n \"sCardSafety\": \"\",\r\n \"sCardMonth\": \"\",\r\n \"sCardYear\": \"\",\r\n \"sIdealStat\": \"\",\r\n \"sIdealParam\": \"\",\r\n \"sIdealError\": \"\",\r\n \"sIdealPayID\": \"\",\r\n \"sIdealPM\": \"\",\r\n \"sIdealLink\": \"https://webshop.vandijk.com/DIJK_WEB/nl/PaymentCompleteReturn.awp?OrderNr=\"+`${this.OrderNumber}`+\"%26Project=DYK\"\r\n },\r\n \"stOrderState\": {\r\n \"bEMaintenance\": false,\r\n \"bKopAccJN\": false,\r\n \"bKopOCI\": false,\r\n \"dDeliveryDate\": \"0000-00-00\",\r\n \"dtOrderStamp\": \"0000-00-00T00:00:00.000\",\r\n \"iDeliveryType\": 1,\r\n \"iOrderLang\": 3,\r\n \"iOrderNumber\": this.OrderNumber,\r\n \"iOrderState\": 7,\r\n \"iOrderType\": 100,\r\n \"iOrderPayment\": 21,\r\n \"sOrderIPAddr\": \"::1\",\r\n \"sOrderValuta\": \"EUR\"\r\n }\r\n }\r\n console.log(json);\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n headers.append('UserToken', this.auth.PBMAuthToken);\r\n console.log(this.auth.PBMAuthToken)\r\n let url = 'https://demorest.msgsoftware.nl/Order/'+this.OrderNumber;\r\n console.log(url)\r\n console.log(this.orderchange)\r\n let user = this.http.put(url, json, options)\r\n .subscribe(data => {\r\n console.log(data.json())\r\n if (data.json().sResponse) {\r\n console.log('carserviceordernumber', data.json().sResponse)\r\n this.storeOrdernumber(data.json().sResponse);\r\n this.OrderNumber = data.json().sResponse\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n putPBMOrderNative(orderlines, stAddrDelivery): Promise {\r\n\r\n // return new Promise((resolve, reject) => {\r\n let json = {\r\n \"stOrder\": {\r\n \"bComplete\": false,\r\n \"bInform\": false,\r\n \"bUseNews\": false,\r\n \"bUrgentOrder\": false,\r\n \"iAccClient\": 0,\r\n \"sAccAdres\": \"\",\r\n \"sContactMail\": \"testmail@msgnl.com\",\r\n \"sContactTel\": \"0612345678\",\r\n \"sContactGsm\": \"\",\r\n \"sOrderCompTyp\": \"\",\r\n \"sOrderCorr\": \"DEMO\",\r\n \"sOrderKvkNr\": \"\",\r\n \"sOrderMemo\": \"mijn opmerking\",\r\n \"sOrderName\": \"DEMO MODEL WEBSHOP\",\r\n \"sOrderSexe\": \"1\",\r\n \"sOrderUser\": \"test\",\r\n \"sOrderValuta\": \"EUR\",\r\n \"sOrderVatNr\": \"\",\r\n \"sOrderWork\": \"\",\r\n \"sOrderYourRef\": \"mijn ref\",\r\n \"sOrderXML\": \"\",\r\n \"stAddrDelivery\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"INV\",\r\n \"sCity\": \"DEMOWOUD\",\r\n \"sCountry\": \"NEDERLAND\",\r\n \"sCountryCode\": \"NL\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"01\",\r\n \"sStreet1\": \"DEMOSTRAAT 11\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"DEMO\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n },\r\n \"stAddrInvoice\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"INV\",\r\n \"sCity\": \"DEMOWOUD\",\r\n \"sCountry\": \"NEDERLAND\",\r\n \"sCountryCode\": \"NL\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"01\",\r\n \"sStreet1\": \"DEMOSTRAAT 11\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"DEMO\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n },\r\n \"stAddrWork\": {\r\n \"iAddressNr\": 0,\r\n \"sAddressName\": \"\",\r\n \"sAddressType\": \"WRK\",\r\n \"sCity\": \"\",\r\n \"sCountry\": \"\",\r\n \"sCountryCode\": \"\",\r\n \"sHouseNumber\": \"\",\r\n \"sSociete\": \"\",\r\n \"sStreet1\": \"\",\r\n \"sStreet2\": \"\",\r\n \"sZipCode\": \"\",\r\n \"sLongitude\": \"\",\r\n \"sLatitude\": \"\"\r\n }\r\n },\r\n \"stOrderFiles\": {\r\n \"arrArtURL\": [\r\n\r\n ]\r\n },\r\n \"stOrderLines\": {\r\n \"curTotExcl\": 24.9,\r\n \"curTotGross\": 24.9,\r\n \"curTotIncl\": 30.13,\r\n \"curTotVAT\": 5.23,\r\n \"iNbOfLines\": 1,\r\n \"iTotPoints\": 0,\r\n \"arrOrderLine\": [\r\n orderlines\r\n ]\r\n },\r\n \"stOrderPayment\": {\r\n \"sAccBic\": \"\",\r\n \"sAccCity\": \"\",\r\n \"sAccIban\": \"\",\r\n \"sAccName\": \"\",\r\n \"sAccNr\": \"\",\r\n \"sCardType\": \"\",\r\n \"sCardOwner\": \"\",\r\n \"sCardNr\": \"\",\r\n \"sCardSafety\": \"\",\r\n \"sCardMonth\": \"\",\r\n \"sCardYear\": \"\",\r\n \"sIdealStat\": \"\",\r\n \"sIdealParam\": \"\",\r\n \"sIdealError\": \"\",\r\n \"sIdealPayID\": \"\",\r\n \"sIdealPM\": \"\",\r\n \"sIdealLink\": \"https://webshop.vandijk.com/DIJK_WEB/nl/PaymentCompleteReturn.awp?OrderNr=\"+`${this.OrderNumber}`+\"%26Project=DYK\"\r\n },\r\n \"stOrderState\": {\r\n \"bEMaintenance\": false,\r\n \"bKopAccJN\": false,\r\n \"bKopOCI\": false,\r\n \"dDeliveryDate\": \"0000-00-00\",\r\n \"dtOrderStamp\": \"0000-00-00T00:00:00.000\",\r\n \"iDeliveryType\": 1,\r\n \"iOrderLang\": 3,\r\n \"iOrderNumber\": this.OrderNumber,\r\n \"iOrderState\": 7,\r\n \"iOrderType\": 100,\r\n \"iOrderPayment\": 21,\r\n \"sOrderIPAddr\": \"::1\",\r\n \"sOrderValuta\": \"EUR\"\r\n }\r\n }\r\n console.log(json);\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.PBMAuthToken}`\r\n };\r\n\r\n console.log(this.auth.PBMAuthToken)\r\n // this.nativeHttp.put('https://demorest.msgsoftware.nl/Order/'+this.OrderNumber, json, headers)\r\n // .then(\r\n // res => resolve(res),\r\n // error => reject(error));\r\n\r\n let sale = this.nativeHttp.put('https://demorest.msgsoftware.nl/Order/'+this.OrderNumber, json, headers)\r\n .then(\r\n res => {let parsed = JSON.parse(res.data);\r\n console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n },\r\n error => error);\r\n \r\n return sale\r\n // });\r\n\r\n }\r\n\r\n storeOrdernumber(OrderNumber) {\r\n window.localStorage.setItem('OrderNumber', OrderNumber);\r\n this.storage.set('OrderNumber', OrderNumber);\r\n this.useOrdernumber(OrderNumber);\r\n }\r\n\r\n useOrdernumber(token) {\r\n this.OrderNumber = token;\r\n }\r\n\r\n\r\n postOrderLine(item: any) {\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n headers.append('UserToken', this.auth.AuthToken);\r\n console.log(this.auth.AuthToken)\r\n console.log('test', item);\r\n let url = 'https://demorest.msgsoftware.nl/OrderLine/' + this.OrderNumber;\r\n let user = this.http.post(url, JSON.stringify(item), options)\r\n .subscribe(data => {\r\n if (data.json().sResponse) {\r\n console.log('carserviceordernumber', data.json().sResponse)\r\n this.storeOrdernumber(data.json().sResponse);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n postPBMOrderLine(item: any) {\r\n return new Promise((resolve, reject) => {\r\n var headers = new Headers();\r\n let options = new RequestOptions({ headers: headers, withCredentials: true });\r\n headers.append('Access-Control-Allow-Origin', '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept', 'application/json');\r\n headers.append('content-type', 'application/json');\r\n headers.append('UserToken', this.auth.PBMAuthToken);\r\n console.log(this.auth.AuthToken)\r\n console.log('test', item);\r\n let url = 'https://demorest.msgsoftware.nl/OrderLine/' + this.OrderNumber;\r\n let user = this.http.post(url, JSON.stringify(item), options)\r\n .subscribe(data => {\r\n if (data.json().sResponse) {\r\n console.log('carserviceordernumber', data.json().sResponse)\r\n this.storeOrdernumber(data.json().sResponse);\r\n }\r\n else\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\r\n // postOrderLineNative(item) {\r\n // return new Promise((resolve, reject) => {\r\n // let headers = {\r\n // 'Content-Type': 'application/json',\r\n // \"UserToken\": `${this.auth.AuthToken}`\r\n // };\r\n // this.nativeHttp.post('https://demorest.msgsoftware.nl/OrderLine/'+this.OrderNumber, item, headers)\r\n // .then(\r\n // res => resolve(res),\r\n // error => reject(error));\r\n // });\r\n // }\r\n\r\n async postOrderLineNative(item): Promise {\r\n // let loading = this.loadingCtrl.create();\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.post('https://demorest.msgsoftware.nl/OrderLine/'+this.OrderNumber, item, headers)\r\n .then(\r\n res => {let parsed = JSON.parse(res.data);\r\n // this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n // this.storeUserID(parsed.stAuthResp.iUserId);\r\n // this.storeClientID(parsed.stAuthResp.iClient);\r\n // this.storeUserType(parsed.stAuthResp.iUserType);\r\n // this.storePBM(parsed.stAuthResp.iPbmMode);\r\n // this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n // console.log(parsed.stAuthResp.iPbmMode);\r\n console.log('carserviceordernumber', parsed.sResponse)\r\n this.storeOrdernumber(parsed.sResponse);\r\n console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n },\r\n error => error);\r\n \r\n return sale\r\n \r\n }\r\n\r\n async postPBmOrderLineNative(item): Promise {\r\n // let loading = this.loadingCtrl.create();\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.PBMAuthToken}`\r\n };\r\n let sale = this.nativeHttp.post('https://demorest.msgsoftware.nl/OrderLine/'+this.OrderNumber, item, headers)\r\n .then(\r\n res => {let parsed = JSON.parse(res.data);\r\n // this.storeUserCredentials(parsed.stAuthResp.sSessionID);\r\n // this.storeUserID(parsed.stAuthResp.iUserId);\r\n // this.storeClientID(parsed.stAuthResp.iClient);\r\n // this.storeUserType(parsed.stAuthResp.iUserType);\r\n // this.storePBM(parsed.stAuthResp.iPbmMode);\r\n // this.storeallowPBM(parsed.stAuthResp.bAllowPbm);\r\n // console.log(parsed.stAuthResp.iPbmMode);\r\n console.log('carserviceordernumber', parsed.sResponse)\r\n this.storeOrdernumber(parsed.sResponse);\r\n console.log(parsed);\r\n // this.userFullname(parsed.stAuthResp.sFullName);\r\n },\r\n error => error);\r\n \r\n return sale\r\n \r\n }\r\n\r\n\r\n // removeAllCartItems(product) {\r\n // return this.getCartItems().then(result => {\r\n // if (result) {\r\n // var productIndex = result.indexOf(product);\r\n // result.splice(productIndex, 1);\r\n // return this.storage.remove(CART_KEY);\r\n // }\r\n // })\r\n // }\r\n\r\n\r\n // containsObject(obj, list): boolean {\r\n // if (!list.length) {\r\n // return false;\r\n // }\r\n\r\n // if (obj == null) {\r\n // return false;\r\n // }\r\n // var i;\r\n // for (i = 0; i < list.length; i++) {\r\n // if (list[i].product_id == obj.product_id) {\r\n // return true;\r\n // }\r\n // }\r\n // return false;\r\n // }\r\n\r\n\r\n\r\n getCartItems() {\r\n return this.storage.get(CART_KEY);\r\n }\r\n\r\n // PBMaddToCart(product) {\r\n // return this.getPBMCartItems().then(result => {\r\n // if (result) {\r\n // if (!this.containsObject(product, result)) {\r\n // result.push(product);\r\n // return this.storage.set(PBMCART_KEY, result);\r\n // } else {\r\n // let index = result.findIndex(x => x.product_id == product.product_id);\r\n // let prevQuantity = parseInt(result[index].count);\r\n // product.count = (prevQuantity + product.count);\r\n // let currentPrice = (parseInt(product.iNbPoints) * product.count);\r\n // product.iNbPoints =currentPrice;\r\n // result.splice(index, 1);\r\n // result.push(product);\r\n // return this.storage.set(PBMCART_KEY, result);\r\n // }\r\n\r\n // } else {\r\n // return this.storage.set(PBMCART_KEY, [product]);\r\n // }\r\n // })\r\n // }\r\n\r\n PBMaddToCart(data: any): void {\r\n let a: Item[];\r\n\r\n a = JSON.parse(localStorage.getItem('pbm-cart')) || [];\r\n\r\n a.push(data);\r\n // this.toastrService.wait('Adding Product to Cart', 'Product Adding to the cart');\r\n setTimeout(() => {\r\n localStorage.setItem('pbm-cart', JSON.stringify(a));\r\n this.calculateLocalPBMCartProdCounts();\r\n }, 500);\r\n }\r\n\r\n // returning LocalCarts Product Count\r\n calculateLocalPBMCartProdCounts() {\r\n this.navbarPBMCartCount = this.getLocalPBMCartProducts().length;\r\n }\r\n\r\n getLocalPBMCartProducts(): Item[] {\r\n const products: Item[] = JSON.parse(localStorage.getItem('pbm-cart')) || [];\r\n\r\n return products;\r\n }\r\n\r\n removeLocalPBMCartProduct(product: Item) {\r\n const products: Item[] = JSON.parse(localStorage.getItem('pbm-cart'));\r\n\r\n for (let i = 0; i < products.length; i++) {\r\n if (products[i].sArticleCode === product.product_id) {\r\n products.splice(i, 1);\r\n break;\r\n }\r\n }\r\n // ReAdding the products after remove\r\n localStorage.setItem('pbm-cart', JSON.stringify(products));\r\n\r\n this.calculateLocalPBMCartProdCounts();\r\n }\r\n\r\n // PBMremoveFromCart(product) {\r\n // return this.getCartItems().then(result => {\r\n // if (result) {\r\n // var productIndex = result.indexOf(product);\r\n // result.splice(productIndex, 1);\r\n // return this.storage.set(PBMCART_KEY, result);\r\n // }\r\n // })\r\n // }\r\n\r\n // PBMremoveAllCartItems(product) {\r\n // return this.getCartItems().then(result => {\r\n // if (result) {\r\n // var productIndex = result.indexOf(product);\r\n // result.splice(productIndex, 1);\r\n // return this.storage.remove(PBMCART_KEY);\r\n // }\r\n // })\r\n // }\r\n\r\n\r\n // PBMcontainsObject(obj, list): boolean {\r\n // if (!list.length) {\r\n // return false;\r\n // }\r\n\r\n // if (obj == null) {\r\n // return false;\r\n // }\r\n // var i;\r\n // for (i = 0; i < list.length; i++) {\r\n // if (list[i].product_id == obj.product_sArticleCode) {\r\n // return true;\r\n // }\r\n // }\r\n // return false;\r\n // }\r\n\r\n\r\n getPBMCartItems() {\r\n return this.storage.get(PBMCART_KEY);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { OfflineManagerService } from './offline-manager.service';\r\nimport { Observable, of, throwError, from } from 'rxjs';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { HTTP, HTTPResponse } from '@ionic-native/http/ngx';\r\nimport { Platform, Events, ToastController, LoadingController } from '@ionic/angular';\r\nimport { NetworkService, ConnectionStatus } from './network.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { Storage } from '@ionic/storage';\r\n\r\nconst API_STORAGE_KEY = 'specialkey';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CategoryService {\r\n\r\n constructor(private http: HttpClient, private plt: Platform, private nativeHttp: HTTP, private networkService: NetworkService, private storage: Storage, private offlineManager: OfflineManagerService) { }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Something bad happened; please try again later.');\r\n }\r\n\r\n getCategories(forceRefresh: boolean = false): Observable {\r\n // if (this.networkService.getCurrentNetworkStatus() == ConnectionStatus.Offline) {\r\n // // Return the cached data from Storage\r\n // console.log('network', this.networkService.getCurrentNetworkStatus() == ConnectionStatus.Online)\r\n // return from(this.getLocalData('categories'));\r\n // } else {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let categories = this.http.get('https://demorest.msgsoftware.nl/Category', {headers:headers});\r\n console.log('category', categories);\r\n console.log('this is browser');\r\n this.setLocalData('categories', categories);\r\n console.log('set', this.setLocalData('categories', categories))\r\n console.log('get', this.getLocalData('categories'))\r\n return categories;\r\n // }\r\n }\r\n\r\n getCategoriesNative(): Promise {\r\n // if (this.networkService.getCurrentNetworkStatus() == ConnectionStatus.Offline) {\r\n // // Return the cached data from Storage\r\n // console.log('network', this.networkService.getCurrentNetworkStatus() == ConnectionStatus.Online)\r\n // return this.getLocalData('categories');\r\n // } else {\r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let categories = this.nativeHttp.get('https://demorest.msgsoftware.nl/Category',{},headers);\r\n console.log('category', categories);\r\n console.log('this is native');\r\n return categories;\r\n // }\r\n }\r\n\r\n getSubCategories(category): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let subcategoies = this.http.get('https://demorest.msgsoftware.nl/Category?ParentId='+category, {headers:headers});\r\n console.log('search', subcategoies);\r\n return subcategoies;\r\n }\r\n\r\n getSubCategoriesNative(category): Promise {\r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let subcategories = this.nativeHttp.get('https://demorest.msgsoftware.nl/Category?ParentId='+category,{},headers);\r\n console.log('category', subcategories);\r\n console.log('this is native');\r\n return subcategories;\r\n }\r\n\r\n private setLocalData(key, data) {\r\n this.storage.set(`${API_STORAGE_KEY}-${key}`, data);\r\n }\r\n \r\n // Get cached API result\r\n private getLocalData(key) {\r\n return this.storage.get(`${API_STORAGE_KEY}-${key}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Storage } from '@ionic/storage';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStorage {\r\n\r\n constructor(private storage: Storage) {\r\n }\r\n\r\n getLang(): Promise {\r\n return this.storage.get('lang');\r\n }\r\n\r\n setLang(val: string) {\r\n return this.storage.set('lang', val);\r\n }\r\n\r\n getIsPushEnabled(): Promise {\r\n return this.storage.get('isPushEnabled');\r\n }\r\n\r\n setIsPushEnabled(val: boolean) {\r\n return this.storage.set('isPushEnabled', val);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Network } from '@ionic-native/network/ngx'\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { ToastController, Platform } from '@ionic/angular';\r\n \r\nexport enum ConnectionStatus {\r\n Online,\r\n Offline\r\n}\r\n \r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NetworkService {\r\n \r\n private status: BehaviorSubject = new BehaviorSubject(ConnectionStatus.Offline);\r\n \r\n constructor(private network: Network, private toastController: ToastController, private plt: Platform) {\r\n this.plt.ready().then(() => {\r\n this.initializeNetworkEvents();\r\n let status = this.network.type !== 'none' ? ConnectionStatus.Online : ConnectionStatus.Offline;\r\n this.status.next(status);\r\n });\r\n }\r\n \r\n public initializeNetworkEvents() {\r\n \r\n this.network.onDisconnect().subscribe(() => {\r\n if (this.status.getValue() === ConnectionStatus.Online) {\r\n console.log('U werkt momenteel Offline');\r\n this.updateNetworkStatus(ConnectionStatus.Offline);\r\n }\r\n });\r\n \r\n this.network.onConnect().subscribe(() => {\r\n if (this.status.getValue() === ConnectionStatus.Offline) {\r\n console.log('U werkt momenteel Online');\r\n this.updateNetworkStatus(ConnectionStatus.Online);\r\n }\r\n });\r\n }\r\n \r\n private async updateNetworkStatus(status: ConnectionStatus) {\r\n this.status.next(status);\r\n \r\n let connection = status == ConnectionStatus.Offline ? 'Offline' : 'Online';\r\n let toast = this.toastController.create({\r\n message: `You are now ${connection}`,\r\n duration: 3000,\r\n position: 'bottom'\r\n });\r\n toast.then(toast => toast.present());\r\n }\r\n \r\n public onNetworkChange(): Observable {\r\n return this.status.asObservable();\r\n }\r\n \r\n public getCurrentNetworkStatus(): ConnectionStatus {\r\n return this.status.getValue();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Storage } from '@ionic/storage';\r\nimport { Observable, from, of, forkJoin } from 'rxjs';\r\nimport { switchMap, finalize } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ToastController } from '@ionic/angular';\r\n \r\nconst STORAGE_REQ_KEY = 'storedreq';\r\n \r\ninterface StoredRequest {\r\n url: string,\r\n type: string,\r\n data: any,\r\n time: number,\r\n id: string\r\n}\r\n \r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OfflineManagerService {\r\n \r\n constructor(private storage: Storage, private http: HttpClient, private toastController: ToastController) { }\r\n \r\n checkForEvents(): Observable {\r\n return from(this.storage.get(STORAGE_REQ_KEY)).pipe(\r\n switchMap(storedOperations => {\r\n let storedObj = JSON.parse(storedOperations);\r\n if (storedObj && storedObj.length > 0) {\r\n return this.sendRequests(storedObj).pipe(\r\n finalize(() => {\r\n let toast = this.toastController.create({\r\n message: `Data is succesvol gesynced`,\r\n duration: 3000,\r\n position: 'bottom'\r\n });\r\n toast.then(toast => toast.present());\r\n \r\n this.storage.remove(STORAGE_REQ_KEY);\r\n })\r\n );\r\n } else {\r\n console.log('no local events to sync');\r\n \r\n return of(false);\r\n }\r\n })\r\n )\r\n }\r\n \r\n storeRequest(url, type, data) {\r\n let toast = this.toastController.create({\r\n message: `Op dit moment bent u offline en maakt u gebruik van lokale data.`,\r\n duration: 3000,\r\n position: 'bottom'\r\n });\r\n toast.then(toast => toast.present());\r\n \r\n let action: StoredRequest = {\r\n url: url,\r\n type: type,\r\n data: data,\r\n time: new Date().getTime(),\r\n id: Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 5)\r\n };\r\n \r\n return this.storage.get(STORAGE_REQ_KEY).then(storedOperations => {\r\n let storedObj = JSON.parse(storedOperations);\r\n \r\n if (storedObj) {\r\n storedObj.push(action);\r\n } else {\r\n storedObj = [action];\r\n }\r\n // Save old & new local transactions back to Storage\r\n return this.storage.set(STORAGE_REQ_KEY, JSON.stringify(storedObj));\r\n });\r\n }\r\n \r\n sendRequests(operations: StoredRequest[]) {\r\n let obs = [];\r\n \r\n for (let op of operations) {\r\n console.log('Make one request: ', op);\r\n let oneObs = this.http.request(op.type, op.url, op.data);\r\n obs.push(oneObs);\r\n }\r\n \r\n // Send out all local events and return once they are finished\r\n return forkJoin(obs);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { CartService } from \".././services/cart.service\";\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Preference {\r\n\r\n private _lang: string;\r\n private _cartCount: any;\r\n private _isPushEnabled: boolean;\r\n\r\n\r\n get lang(): any {\r\n return this._lang;\r\n }\r\n\r\n set lang(val) {\r\n this._lang = val;\r\n }\r\n\r\n get cartCount(): any {\r\n return this._cartCount;\r\n }\r\n\r\n set cartCount(val) {\r\n this._cartCount = val;\r\n }\r\n\r\n get isPushEnabled(): any {\r\n return this._isPushEnabled;\r\n }\r\n\r\n set isPushEnabled(val) {\r\n this._isPushEnabled = val;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { forkJoin } from 'rxjs';\r\nimport { HTTP, HTTPResponse } from '@ionic-native/http/ngx';\r\nimport { map } from 'rxjs/operators';\r\nimport { AuthService } from '.././services/auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductService {\r\n\r\n constructor(private http: HttpClient, private nativeHttp: HTTP, private auth:AuthService) { }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError('Something bad happened; please try again later.');\r\n }\r\n\r\n getPromoSlider(): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let promo = this.http.get('https://demorest.msgsoftware.nl/Promotion', {headers:headers});\r\n console.log('search', promo);\r\n return promo;\r\n }\r\n \r\n getPromoNative(): Promise {\r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let promo = this.nativeHttp.get('https://demorest.msgsoftware.nl/Promotion',{},headers);\r\n console.log('promo', promo);\r\n console.log('this is native');\r\n return promo;\r\n }\r\n\r\n getSale(): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/Promotion', {headers:headers});\r\n console.log('search', sale);\r\n return sale;\r\n }\r\n\r\n getSaleNative(): Promise {\r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/Promotion',{},headers);\r\n console.log('sale', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getProductsByCategory(category): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.auth.AuthToken)\r\n console.log('tokenproduct', this.auth.AuthToken)\r\n // headers.append('UserToken', this.auth.AuthToken);\r\n let items = this.http.get('https://demorest.msgsoftware.nl/Article?Category='+category, {headers:headers});\r\n console.log('products', items);\r\n return items;\r\n }\r\n\r\n getProductsByNative(category): Promise {\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n console.log(headers);\r\n let items = this.nativeHttp.get('https://demorest.msgsoftware.nl/Article?Category='+category,{},headers);\r\n console.log('products category', items);\r\n console.log('this is native');\r\n return items;\r\n }\r\n\r\n getProductsByCategoryFilter(category, filter): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.auth.AuthToken);\r\n let items = this.http.get('https://demorest.msgsoftware.nl/Article?Category='+category+filter, {headers:headers});\r\n console.log(filter)\r\n console.log('products', items);\r\n return items;\r\n }\r\n\r\n getProductsByNativeFilter(category, filter): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let items = this.nativeHttp.get('https://demorest.msgsoftware.nl/Article?Category='+category+filter,{},headers);\r\n console.log('products category', items);\r\n console.log('this is native');\r\n return items;\r\n }\r\n\r\n getProductsByCategorySearch(item): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n // headers.append('UserToken', this.auth.AuthToken);\r\n let items = this.http.get('https://demorest.msgsoftware.nl/Article?SearchValue='+item, {headers:headers});\r\n console.log('products', items);\r\n return items;\r\n }\r\n\r\n getProductsByNativeSearch(item): Promise {\r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let items = this.nativeHttp.get('https://demorest.msgsoftware.nl/Article?SearchValue='+item,{},headers);\r\n console.log('products category', items);\r\n console.log('this is native');\r\n return items;\r\n }\r\n\r\n getProductsByDetail(detail, key): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n // headers.append('UserToken', this.auth.AuthToken);\r\n let items = this.http.get('https://demorest.msgsoftware.nl/Article/'+detail+'?BlKey='+key, {headers:headers});\r\n console.log('products', items);\r\n return items;\r\n }\r\n\r\n getProductsByDetailNative(detail, key): Promise {\r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let items = this.nativeHttp.get('https://demorest.msgsoftware.nl/Article/'+detail+'?BlKey='+key,{},headers);\r\n console.log('detail', items);\r\n console.log('itemcheck', detail, key)\r\n console.log('this is native');\r\n return items;\r\n }\r\n\r\n\r\n searchData(suggestion: any): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n let suggestions = this.http.get(`https://demorest.msgsoftware.nl/Searchword/Suggestion/`+suggestion, {headers:headers});\r\n console.log('suggestion', suggestions);\r\n return suggestions;\r\n }\r\n\r\n searchDataNative(suggestion: any): Promise {\r\n let headers = {\r\n 'Content-Type': 'application/json'\r\n };\r\n let suggestions = this.nativeHttp.get('https://demorest.msgsoftware.nl/Searchword/Suggestion/'+suggestion,{},headers);\r\n console.log('search', suggestions);\r\n console.log('this is native');\r\n return suggestions;\r\n }\r\n\r\n getSearchPBMOrderlistItem(search:any): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.PBMAuthToken);\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log(headers.append('usertoken', this.auth.AuthToken))\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/Orderlist/0?searchvalue='+search, {headers:headers});\r\n console.log('orderlist', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getSearchPBMOrderlistItemnative(search:any): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.PBMAuthToken}`\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/Orderlist/0?searchvalue='+search,{},headers);\r\n console.log('orderlist', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getOrderlist(): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.AuthToken);\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log(headers.append('usertoken', this.auth.AuthToken))\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/Orderlist', {headers:headers});\r\n console.log('orderlist', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getOrderlistnative(): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/Orderlist',{},headers);\r\n console.log('orderlist', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getPBMlist(): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.PBMAuthToken);\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log( this.auth.PBMAuthToken)\r\n console.log(this.auth.AuthToken)\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/Orderlist', {headers:headers});\r\n console.log('orderlist', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getPBMlistnative(): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.PBMAuthToken}`\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/Orderlist', {}, headers);\r\n console.log('orderlist', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getPBMPoints(id:any): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.AuthToken);\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log('getPBMpoints', id)\r\n console.log(headers.append('usertoken', this.auth.PBMAuthToken))\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/PBM/Points/'+id, {headers:headers});\r\n console.log('orderlist', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getPBMPointsnative(id:any): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/PBM/Points/'+id,{},headers);\r\n console.log('orderlist', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getOrderlistItem(item: any): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.AuthToken);\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log(headers.append('usertoken', this.auth.AuthToken))\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/Orderlist/'+item, {headers:headers});\r\n console.log('orderlist', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getOrderlistItemnative(item: any): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/Orderlist/'+item,{},headers);\r\n console.log('orderlist', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getPBMOrderlistItem(item: any): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.PBMAuthToken);\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log(headers.append('usertoken', this.auth.PBMAuthToken))\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/Orderlist/'+item, {headers:headers});\r\n console.log('orderlist', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getPBMOrderlistItemnative(item: any): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/Orderlist/'+item,{},headers);\r\n console.log('orderlist', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getClient(): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.AuthToken);;\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log('UserToken', this.auth.AuthToken)\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/Client', {headers:headers});\r\n console.log('client', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getClientnative(): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/Client',{},headers);\r\n console.log('client', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n postOrder(): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.AuthToken);;\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log('UserToken', this.auth.AuthToken)\r\n let sale = this.http.post('https://demorest.msgsoftware.nl/Order', {headers:headers});\r\n console.log('order', sale);\r\n return sale;\r\n }\r\n\r\n \r\n postOrdernative(): Promise {\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.post('https://demorest.msgsoftware.nl/Order',{},headers);\r\n console.log('order', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n postOrderLines(item:any): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.AuthToken);;\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n headers.append('UserToken', this.auth.AuthToken)\r\n console.log('UserToken', this.auth.AuthToken)\r\n console.log('jsoncart', item)\r\n console.log('ordernumber', this.auth.OrderNumber)\r\n let sale = this.http.post('https://demorest.msgsoftware.nl/OrderLine/'+this.auth.OrderNumber,item, {headers:headers});\r\n console.log('order', sale);\r\n return sale;\r\n }\r\n\r\n \r\n postOrderLinesnative(item:any): Promise {\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.post('https://demorest.msgsoftware.nl/OrderLine/'+this.auth.OrderNumber,item,headers);\r\n console.log('order', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getUser(): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.AuthToken);\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log(headers.append('usertoken', this.auth.AuthToken))\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/User/'+this.auth.iUserId, {headers:headers});\r\n console.log('orderlist', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getUsernative(): Promise {\r\n let headers = {\r\n 'Content-Type': 'application/json',\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/User/'+this.auth.iUserId,{},headers);\r\n console.log('orderlist', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getActionlist(): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log(headers.append('usertoken', this.auth.AuthToken))\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/Action', {headers:headers});\r\n console.log('orderlist', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getActionListnative(): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\"\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/Action',{},headers);\r\n console.log('orderlist', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getActionlistItem(item: any): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log(this.auth.AuthToken)\r\n let action = item\r\n\r\n console.log('encode', action)\r\n console.log('listname', encodeURIComponent('PUR STAFFEL'))\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/Action/'+action, {headers:headers});\r\n console.log('orderlist', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getActionItemnative(item: any): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let action = encodeURI(item)\r\n console.log(action)\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/Action/'+action,{},headers);\r\n console.log('nativeencode', item)\r\n console.log('nativeencode2', encodeURI(item))\r\n console.log('orderlist', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getClientAddresses(item: any): Observable {\r\n let headers = new HttpHeaders().set('UserToken', this.auth.AuthToken);\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log(headers.append('usertoken', this.auth.AuthToken))\r\n console.log('listname', encodeURIComponent(item))\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/Client/'+item+'/Addresses', {headers:headers});\r\n console.log('orderlist', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getClientAddressesnative(item: any): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/Client/'+item+'/Addresses',{},headers);\r\n console.log('orderlist', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getStores(): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log(headers.append('usertoken', this.auth.AuthToken))\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/Store', {headers:headers});\r\n console.log('orderlist', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getStoresnative(): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"UserToken\": `${this.auth.AuthToken}`\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/Store',{},headers);\r\n console.log('orderlist', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n\r\n getBreadCrumb(item:any): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Access-Control-Allow-Origin' , '*');\r\n headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n headers.append('Accept','application/json');\r\n headers.append('content-type','application/json');\r\n console.log(headers.append('usertoken', this.auth.AuthToken))\r\n let sale = this.http.get('https://demorest.msgsoftware.nl/BreadCrumb?Category='+item, {headers:headers});\r\n console.log('breadcrumb', sale);\r\n return sale;\r\n }\r\n\r\n \r\n getBreadCrumbNatie(item:any): Promise {\r\n let headers = {\r\n \"Content-Type\": \"application/json\"\r\n };\r\n let sale = this.nativeHttp.get('https://demorest.msgsoftware.nl/BreadCrumb?Category='+item,{},headers);\r\n console.log('breadcrumb', sale);\r\n console.log('this is native');\r\n return sale;\r\n }\r\n \r\n\r\n// getProductsByCategory(category) {\r\n// let loading = this.loadingCtrl.create();\r\n// if (this.networkService.getCurrentNetworkStatus() == ConnectionStatus.Offline) {\r\n// // Return the cached data from Storage\r\n// return from(this.getLocalData('users'));\r\n// } else {\r\n// let headers = new HttpHeaders();\r\n// headers.append('Access-Control-Allow-Origin' , '*');\r\n// headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');\r\n// headers.append('Accept','application/json');\r\n// headers.append('content-type','application/json');\r\n// headers.append('UserToken', this.auth.AuthToken);\r\n// console.log(this.auth.AuthToken);\r\n// let url = '/Article?Category='+category; \r\n// let req = this.http.get(url, {headers:headers}).pipe(\r\n// finalize(() => console.log('ok'))\r\n// )\r\n// .subscribe(data => {\r\n// this.products = data['stArticles']['arrArticleInList'];\r\n// console.log(data['stArticles']['arrArticleInList']);\r\n// console.log(this.products);\r\n// let ttl = 10;\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey, ttl);\r\n// this.products = this.cache.loadFromObservable(url, req, this.productsKey);\r\n// // console.log('ok');\r\n// this.setLocalData('category', data);\r\n// return this.products\r\n// }, err => {\r\n// console.log('JS Call error: ', err);\r\n// });\r\n// }\r\n// }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common'; \r\nimport { IonicModule } from '@ionic/angular';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ComponentsModule } from './components/components.module';\r\nimport { EmptyViewModule } from './components/empty-view/empty-view.module';\r\nimport { ImgFallbackModule } from 'ngx-img-fallback';\r\nimport { PipesModule } from './pipes/pipes.module';\r\nimport { LazyLoadImageModule } from 'ng-lazyload-image';\r\nimport { MomentModule } from 'angular2-moment';\r\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n CommonModule,\r\n IonicModule,\r\n TranslateModule,\r\n ComponentsModule,\r\n ImgFallbackModule,\r\n LazyLoadImageModule,\r\n EmptyViewModule,\r\n PipesModule,\r\n MomentModule,\r\n NgxSkeletonLoaderModule,\r\n ],\r\n exports: [\r\n CommonModule,\r\n IonicModule,\r\n TranslateModule,\r\n ComponentsModule,\r\n ImgFallbackModule,\r\n LazyLoadImageModule,\r\n EmptyViewModule,\r\n PipesModule,\r\n MomentModule,\r\n NgxSkeletonLoaderModule,\r\n ]\r\n})\r\nexport class SharedModule {}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n defaultLang: 'nl',\r\n appUrl: 'localhost:8100',\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"],"sourceRoot":""}