{"version":3,"sources":["webpack:///./node_modules/@ionic/core/dist/esm-es5 lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/auth.guard.ts","webpack:///./src/app/components/auto-complete/auto-complete-options.model.ts","webpack:///./src/app/components/auto-complete/auto-complete.component.html","webpack:///./src/app/components/auto-complete/auto-complete.component.scss","webpack:///./src/app/components/auto-complete/auto-complete.component.ts","webpack:///./src/app/components/blade-wizard/break-in/break-in.component.html","webpack:///./src/app/components/blade-wizard/break-in/break-in.component.scss","webpack:///./src/app/components/blade-wizard/break-in/break-in.component.ts","webpack:///./src/app/components/bladewizard-cards/blade-unit-card/blade-unit-card.component.html","webpack:///./src/app/components/bladewizard-cards/blade-unit-card/blade-unit-card.component.scss","webpack:///./src/app/components/bladewizard-cards/blade-unit-card/blade-unit-card.component.ts","webpack:///./src/app/components/customer-search/customer-search.component.html","webpack:///./src/app/components/customer-search/customer-search.component.scss","webpack:///./src/app/components/customer-search/customer-search.component.ts","webpack:///./src/app/components/family/family.component.html","webpack:///./src/app/components/family/family.component.scss","webpack:///./src/app/components/family/family.component.ts","webpack:///./src/app/components/files/files.component.html","webpack:///./src/app/components/files/files.component.scss","webpack:///./src/app/components/files/files.component.ts","webpack:///./src/app/components/group/group.component.html","webpack:///./src/app/components/group/group.component.scss","webpack:///./src/app/components/group/group.component.ts","webpack:///./src/app/components/popover-sales-drill/popover-sales-drill.component.html","webpack:///./src/app/components/popover-sales-drill/popover-sales-drill.component.scss","webpack:///./src/app/components/popover-sales-drill/popover-sales-drill.component.ts","webpack:///./src/app/components/sprc-help/sprc-help.component.html","webpack:///./src/app/components/sprc-help/sprc-help.component.scss","webpack:///./src/app/components/sprc-help/sprc-help.component.ts","webpack:///./src/app/components/update-customer/update-customer.html","webpack:///./src/app/components/update-customer/update-customer.scss","webpack:///./src/app/components/update-customer/update-customer.ts","webpack:///./src/app/global-methods.service.ts","webpack:///./src/app/models/BladeSearchResult.ts","webpack:///./src/app/models/BladeWizardInputsBand.ts","webpack:///./src/app/models/CartPopup.ts","webpack:///./src/app/models/CatalogInfo.ts","webpack:///./src/app/models/CompetitiveXRefSearchResult.ts","webpack:///./src/app/models/Contact.ts","webpack:///./src/app/models/ContactListItem.ts","webpack:///./src/app/models/ContactUsRequest.ts","webpack:///./src/app/models/Country.ts","webpack:///./src/app/models/CountryState.ts","webpack:///./src/app/models/CustomerBasicProperties.ts","webpack:///./src/app/models/CustomerDetails.ts","webpack:///./src/app/models/CustomerListItem.ts","webpack:///./src/app/models/CustomerUpdate.ts","webpack:///./src/app/models/EndUserDistributor.ts","webpack:///./src/app/models/EndUserProfile.ts","webpack:///./src/app/models/Event.ts","webpack:///./src/app/models/Family.ts","webpack:///./src/app/models/Group.ts","webpack:///./src/app/models/PageInfo.ts","webpack:///./src/app/models/PagedResult.ts","webpack:///./src/app/models/ProductInfo.ts","webpack:///./src/app/models/RevolutionWizard/MachineManufacturer.ts","webpack:///./src/app/models/RevolutionWizard/MachineModel.ts","webpack:///./src/app/models/Room.ts","webpack:///./src/app/models/SalesCall.ts","webpack:///./src/app/models/Task.ts","webpack:///./src/app/models/UserSettings.ts","webpack:///./src/app/models/enums/CustomerType.ts","webpack:///./src/app/models/enums/NotificationType.ts","webpack:///./src/app/models/enums/Sensitivity.ts","webpack:///./src/app/models/enums/TaskStatus.ts","webpack:///./src/app/models/enums/UnitType.ts","webpack:///./src/app/pages/bladewizard/bladewizard.page.scss","webpack:///./src/app/pages/filetest/filetest.module.ts","webpack:///./src/app/pages/filetest/filetest.page.html","webpack:///./src/app/pages/filetest/filetest.page.scss","webpack:///./src/app/pages/filetest/filetest.page.ts","webpack:///./src/app/pages/modals/add-call/add-call.module.ts","webpack:///./src/app/pages/modals/add-call/add-call.page.html","webpack:///./src/app/pages/modals/add-call/add-call.page.scss","webpack:///./src/app/pages/modals/add-call/add-call.page.ts","webpack:///./src/app/pages/modals/add-contact/add-contact.module.ts","webpack:///./src/app/pages/modals/add-contact/add-contact.page.html","webpack:///./src/app/pages/modals/add-contact/add-contact.page.scss","webpack:///./src/app/pages/modals/add-contact/add-contact.page.ts","webpack:///./src/app/pages/modals/add-customer-note/add-customer-note.module.ts","webpack:///./src/app/pages/modals/add-customer-note/add-customer-note.page.html","webpack:///./src/app/pages/modals/add-customer-note/add-customer-note.page.scss","webpack:///./src/app/pages/modals/add-customer-note/add-customer-note.page.ts","webpack:///./src/app/pages/modals/add-customer-value-calculator/add-customer-value-calculator.module.ts","webpack:///./src/app/pages/modals/add-customer-value-calculator/add-customer-value-calculator.page.html","webpack:///./src/app/pages/modals/add-customer-value-calculator/add-customer-value-calculator.page.scss","webpack:///./src/app/pages/modals/add-customer-value-calculator/add-customer-value-calculator.page.ts","webpack:///./src/app/pages/modals/add-customer/add-customer.module.ts","webpack:///./src/app/pages/modals/add-customer/add-customer.page.html","webpack:///./src/app/pages/modals/add-customer/add-customer.page.scss","webpack:///./src/app/pages/modals/add-customer/add-customer.page.ts","webpack:///./src/app/pages/modals/add-end-user-machine/add-end-user-machine.module.ts","webpack:///./src/app/pages/modals/add-end-user-machine/add-end-user-machine.page.html","webpack:///./src/app/pages/modals/add-end-user-machine/add-end-user-machine.page.scss","webpack:///./src/app/pages/modals/add-end-user-machine/add-end-user-machine.page.ts","webpack:///./src/app/pages/modals/add-event-modal/add-event-modal.module.ts","webpack:///./src/app/pages/modals/add-event-modal/add-event-modal.page.html","webpack:///./src/app/pages/modals/add-event-modal/add-event-modal.page.scss","webpack:///./src/app/pages/modals/add-event-modal/add-event-modal.page.ts","webpack:///./src/app/pages/modals/add-task/add-task.module.ts","webpack:///./src/app/pages/modals/add-task/add-task.page.html","webpack:///./src/app/pages/modals/add-task/add-task.page.scss","webpack:///./src/app/pages/modals/add-task/add-task.page.ts","webpack:///./src/app/pages/modals/contact-us-modal/contact-us-modal.module.ts","webpack:///./src/app/pages/modals/contact-us-modal/contact-us-modal.page.html","webpack:///./src/app/pages/modals/contact-us-modal/contact-us-modal.page.scss","webpack:///./src/app/pages/modals/contact-us-modal/contact-us-modal.page.ts","webpack:///./src/app/pages/modals/credit-details/credit-details.module.ts","webpack:///./src/app/pages/modals/credit-details/credit-details.page.html","webpack:///./src/app/pages/modals/credit-details/credit-details.page.scss","webpack:///./src/app/pages/modals/credit-details/credit-details.page.ts","webpack:///./src/app/pages/modals/crossover-product-display/crossover-product-display.module.ts","webpack:///./src/app/pages/modals/crossover-product-display/crossover-product-display.page.html","webpack:///./src/app/pages/modals/crossover-product-display/crossover-product-display.page.scss","webpack:///./src/app/pages/modals/crossover-product-display/crossover-product-display.page.ts","webpack:///./src/app/pages/modals/distributor-selector/distributor-selector.module.ts","webpack:///./src/app/pages/modals/distributor-selector/distributor-selector.page.html","webpack:///./src/app/pages/modals/distributor-selector/distributor-selector.page.scss","webpack:///./src/app/pages/modals/distributor-selector/distributor-selector.page.ts","webpack:///./src/app/pages/modals/send-invoice-email/send-invoice-email.module.ts","webpack:///./src/app/pages/modals/send-invoice-email/send-invoice-email.page.html","webpack:///./src/app/pages/modals/send-invoice-email/send-invoice-email.page.scss","webpack:///./src/app/pages/modals/send-invoice-email/send-invoice-email.page.ts","webpack:///./src/app/pages/modals/shopping-cart-end-user/shopping-cart-end-user.module.ts","webpack:///./src/app/pages/modals/shopping-cart-end-user/shopping-cart-end-user.page.html","webpack:///./src/app/pages/modals/shopping-cart-end-user/shopping-cart-end-user.page.scss","webpack:///./src/app/pages/modals/shopping-cart-end-user/shopping-cart-end-user.page.ts","webpack:///./src/app/pages/modals/shopping-cart/shopping-cart.module.ts","webpack:///./src/app/pages/modals/shopping-cart/shopping-cart.page.html","webpack:///./src/app/pages/modals/shopping-cart/shopping-cart.page.scss","webpack:///./src/app/pages/modals/shopping-cart/shopping-cart.page.ts","webpack:///./src/app/pages/modals/tracking-info/tracking-info.module.ts","webpack:///./src/app/pages/modals/tracking-info/tracking-info.page.html","webpack:///./src/app/pages/modals/tracking-info/tracking-info.page.scss","webpack:///./src/app/pages/modals/tracking-info/tracking-info.page.ts","webpack:///./src/app/pages/modals/view-event-customers-modal/view-event-customers-modal.module.ts","webpack:///./src/app/pages/modals/view-event-customers-modal/view-event-customers-modal.page.html","webpack:///./src/app/pages/modals/view-event-customers-modal/view-event-customers-modal.page.scss","webpack:///./src/app/pages/modals/view-event-customers-modal/view-event-customers-modal.page.ts","webpack:///./src/app/pipes/bold-prefix.pipe.ts","webpack:///./src/app/pipes/invoice-amount.pipe.ts","webpack:///./src/app/pipes/porta-blade-lwt.pipe.ts","webpack:///./src/app/secondary-components/cart-dropdown/cart-dropdown.component.html","webpack:///./src/app/secondary-components/cart-dropdown/cart-dropdown.component.scss","webpack:///./src/app/secondary-components/cart-dropdown/cart-dropdown.component.ts","webpack:///./src/app/secondary-components/customer-footer/customer-footer.component.html","webpack:///./src/app/secondary-components/customer-footer/customer-footer.component.scss","webpack:///./src/app/secondary-components/customer-footer/customer-footer.component.ts","webpack:///./src/app/secondary-components/footer/footer.component.html","webpack:///./src/app/secondary-components/footer/footer.component.scss","webpack:///./src/app/secondary-components/footer/footer.component.ts","webpack:///./src/app/secondary-components/header/header.component.html","webpack:///./src/app/secondary-components/header/header.component.scss","webpack:///./src/app/secondary-components/header/header.component.ts","webpack:///./src/app/secondary-components/header/profile-dropdown/profile-dropdown.component.html","webpack:///./src/app/secondary-components/header/profile-dropdown/profile-dropdown.component.scss","webpack:///./src/app/secondary-components/header/profile-dropdown/profile-dropdown.component.ts","webpack:///./src/app/secondary-components/notification/notification.component.html","webpack:///./src/app/secondary-components/notification/notification.component.scss","webpack:///./src/app/secondary-components/notification/notification.component.ts","webpack:///./src/app/secondary-components/ruler-slide/ruler-slide-component.html","webpack:///./src/app/secondary-components/ruler-slide/ruler-slide-component.scss","webpack:///./src/app/secondary-components/ruler-slide/ruler-slide-component.ts","webpack:///./src/app/services/app-config.service.ts","webpack:///./src/app/services/attachment.service.ts","webpack:///./src/app/services/behavior-subject.service.ts","webpack:///./src/app/services/customer.service.ts","webpack:///./src/app/services/distributor.service.ts","webpack:///./src/app/services/end-user-profile.service.ts","webpack:///./src/app/services/end-user-shopping-cart.service.ts","webpack:///./src/app/services/event.service.ts","webpack:///./src/app/services/list.service.ts","webpack:///./src/app/services/menu.service.ts","webpack:///./src/app/services/multi-select.service.ts","webpack:///./src/app/services/odp.service.ts","webpack:///./src/app/services/page.service.ts","webpack:///./src/app/services/pwa-service.service.ts","webpack:///./src/app/services/sales.service.ts","webpack:///./src/app/services/settings.service.ts","webpack:///./src/app/services/shared-data.service.ts","webpack:///./src/app/services/shared.service.ts","webpack:///./src/app/services/task.service.ts","webpack:///./src/app/services/tools.service.ts","webpack:///./src/app/shared/shared.module.ts","webpack:///./src/app/token.interceptor.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts","webpack:///./util.inspect (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;ACvZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;;;;;;;;;ACvQyC;AACiC;AACjC;AAEzC,IAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,MAAM;KAClB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,4EAA4E;QAC1F,WAAW,EAAE,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","file":"main.js","sourcesContent":["var map = {\n\t\"./ion-action-sheet-controller_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-action-sheet-controller_8.entry.js\",\n\t\t\"common\",\n\t\t12\n\t],\n\t\"./ion-action-sheet-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-action-sheet-ios.entry.js\",\n\t\t\"common\",\n\t\t13\n\t],\n\t\"./ion-action-sheet-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-action-sheet-md.entry.js\",\n\t\t\"common\",\n\t\t14\n\t],\n\t\"./ion-alert-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-alert-ios.entry.js\",\n\t\t\"common\",\n\t\t15\n\t],\n\t\"./ion-alert-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-alert-md.entry.js\",\n\t\t\"common\",\n\t\t16\n\t],\n\t\"./ion-app_8-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-app_8-ios.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t17\n\t],\n\t\"./ion-app_8-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-app_8-md.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t18\n\t],\n\t\"./ion-avatar_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-avatar_3-ios.entry.js\",\n\t\t\"common\",\n\t\t19\n\t],\n\t\"./ion-avatar_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-avatar_3-md.entry.js\",\n\t\t\"common\",\n\t\t20\n\t],\n\t\"./ion-back-button-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-back-button-ios.entry.js\",\n\t\t\"common\",\n\t\t21\n\t],\n\t\"./ion-back-button-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-back-button-md.entry.js\",\n\t\t\"common\",\n\t\t22\n\t],\n\t\"./ion-backdrop-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-backdrop-ios.entry.js\",\n\t\t23\n\t],\n\t\"./ion-backdrop-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-backdrop-md.entry.js\",\n\t\t24\n\t],\n\t\"./ion-button_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-button_2-ios.entry.js\",\n\t\t\"common\",\n\t\t25\n\t],\n\t\"./ion-button_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-button_2-md.entry.js\",\n\t\t\"common\",\n\t\t26\n\t],\n\t\"./ion-card_5-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-card_5-ios.entry.js\",\n\t\t\"common\",\n\t\t27\n\t],\n\t\"./ion-card_5-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-card_5-md.entry.js\",\n\t\t\"common\",\n\t\t28\n\t],\n\t\"./ion-checkbox-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-checkbox-ios.entry.js\",\n\t\t\"common\",\n\t\t29\n\t],\n\t\"./ion-checkbox-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-checkbox-md.entry.js\",\n\t\t\"common\",\n\t\t30\n\t],\n\t\"./ion-chip-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-chip-ios.entry.js\",\n\t\t\"common\",\n\t\t31\n\t],\n\t\"./ion-chip-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-chip-md.entry.js\",\n\t\t\"common\",\n\t\t32\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-col_3.entry.js\",\n\t\t33\n\t],\n\t\"./ion-datetime_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-datetime_3-ios.entry.js\",\n\t\t\"common\",\n\t\t34\n\t],\n\t\"./ion-datetime_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-datetime_3-md.entry.js\",\n\t\t\"common\",\n\t\t35\n\t],\n\t\"./ion-fab_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-fab_3-ios.entry.js\",\n\t\t\"common\",\n\t\t36\n\t],\n\t\"./ion-fab_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-fab_3-md.entry.js\",\n\t\t\"common\",\n\t\t37\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-img.entry.js\",\n\t\t38\n\t],\n\t\"./ion-infinite-scroll_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-infinite-scroll_2-ios.entry.js\",\n\t\t\"common\",\n\t\t39\n\t],\n\t\"./ion-infinite-scroll_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-infinite-scroll_2-md.entry.js\",\n\t\t\"common\",\n\t\t40\n\t],\n\t\"./ion-input-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-input-ios.entry.js\",\n\t\t\"common\",\n\t\t41\n\t],\n\t\"./ion-input-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-input-md.entry.js\",\n\t\t\"common\",\n\t\t42\n\t],\n\t\"./ion-item-option_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-item-option_3-ios.entry.js\",\n\t\t\"common\",\n\t\t43\n\t],\n\t\"./ion-item-option_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-item-option_3-md.entry.js\",\n\t\t\"common\",\n\t\t44\n\t],\n\t\"./ion-item_8-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-item_8-ios.entry.js\",\n\t\t\"common\",\n\t\t45\n\t],\n\t\"./ion-item_8-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-item_8-md.entry.js\",\n\t\t\"common\",\n\t\t46\n\t],\n\t\"./ion-loading-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-loading-ios.entry.js\",\n\t\t\"common\",\n\t\t47\n\t],\n\t\"./ion-loading-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-loading-md.entry.js\",\n\t\t\"common\",\n\t\t48\n\t],\n\t\"./ion-menu_4-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-menu_4-ios.entry.js\",\n\t\t\"common\",\n\t\t49\n\t],\n\t\"./ion-menu_4-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-menu_4-md.entry.js\",\n\t\t\"common\",\n\t\t50\n\t],\n\t\"./ion-modal-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-modal-ios.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t51\n\t],\n\t\"./ion-modal-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-modal-md.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t52\n\t],\n\t\"./ion-nav_5.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-nav_5.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t53\n\t],\n\t\"./ion-popover-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-popover-ios.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t54\n\t],\n\t\"./ion-popover-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-popover-md.entry.js\",\n\t\t0,\n\t\t\"common\",\n\t\t55\n\t],\n\t\"./ion-progress-bar-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-progress-bar-ios.entry.js\",\n\t\t\"common\",\n\t\t56\n\t],\n\t\"./ion-progress-bar-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-progress-bar-md.entry.js\",\n\t\t\"common\",\n\t\t57\n\t],\n\t\"./ion-radio_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-radio_2-ios.entry.js\",\n\t\t\"common\",\n\t\t58\n\t],\n\t\"./ion-radio_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-radio_2-md.entry.js\",\n\t\t\"common\",\n\t\t59\n\t],\n\t\"./ion-range-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-range-ios.entry.js\",\n\t\t\"common\",\n\t\t60\n\t],\n\t\"./ion-range-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-range-md.entry.js\",\n\t\t\"common\",\n\t\t61\n\t],\n\t\"./ion-refresher_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-refresher_2-ios.entry.js\",\n\t\t\"common\",\n\t\t62\n\t],\n\t\"./ion-refresher_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-refresher_2-md.entry.js\",\n\t\t\"common\",\n\t\t63\n\t],\n\t\"./ion-reorder_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-reorder_2-ios.entry.js\",\n\t\t\"common\",\n\t\t64\n\t],\n\t\"./ion-reorder_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-reorder_2-md.entry.js\",\n\t\t\"common\",\n\t\t65\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-ripple-effect.entry.js\",\n\t\t66\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-route_4.entry.js\",\n\t\t\"common\",\n\t\t67\n\t],\n\t\"./ion-searchbar-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-searchbar-ios.entry.js\",\n\t\t\"common\",\n\t\t68\n\t],\n\t\"./ion-searchbar-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-searchbar-md.entry.js\",\n\t\t\"common\",\n\t\t69\n\t],\n\t\"./ion-segment_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-segment_2-ios.entry.js\",\n\t\t\"common\",\n\t\t70\n\t],\n\t\"./ion-segment_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-segment_2-md.entry.js\",\n\t\t\"common\",\n\t\t71\n\t],\n\t\"./ion-select_3-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-select_3-ios.entry.js\",\n\t\t\"common\",\n\t\t72\n\t],\n\t\"./ion-select_3-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-select_3-md.entry.js\",\n\t\t\"common\",\n\t\t73\n\t],\n\t\"./ion-slide_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-slide_2-ios.entry.js\",\n\t\t74\n\t],\n\t\"./ion-slide_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-slide_2-md.entry.js\",\n\t\t75\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-spinner.entry.js\",\n\t\t\"common\",\n\t\t76\n\t],\n\t\"./ion-split-pane-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-split-pane-ios.entry.js\",\n\t\t77\n\t],\n\t\"./ion-split-pane-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-split-pane-md.entry.js\",\n\t\t78\n\t],\n\t\"./ion-tab-bar_2-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-tab-bar_2-ios.entry.js\",\n\t\t\"common\",\n\t\t79\n\t],\n\t\"./ion-tab-bar_2-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-tab-bar_2-md.entry.js\",\n\t\t\"common\",\n\t\t80\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-tab_2.entry.js\",\n\t\t\"common\",\n\t\t9\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-text.entry.js\",\n\t\t\"common\",\n\t\t81\n\t],\n\t\"./ion-textarea-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-textarea-ios.entry.js\",\n\t\t\"common\",\n\t\t82\n\t],\n\t\"./ion-textarea-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-textarea-md.entry.js\",\n\t\t\"common\",\n\t\t83\n\t],\n\t\"./ion-toast-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-toast-ios.entry.js\",\n\t\t\"common\",\n\t\t84\n\t],\n\t\"./ion-toast-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-toast-md.entry.js\",\n\t\t\"common\",\n\t\t85\n\t],\n\t\"./ion-toggle-ios.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-toggle-ios.entry.js\",\n\t\t\"common\",\n\t\t86\n\t],\n\t\"./ion-toggle-md.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-toggle-md.entry.js\",\n\t\t\"common\",\n\t\t87\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm-es5/ion-virtual-scroll.entry.js\",\n\t\t88\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\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\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./node_modules/@ionic/core/dist/esm-es5 lazy recursive ^\\\\.\\\\/.*\\\\.entry\\\\.js$ include: \\\\.entry\\\\.js$ exclude: \\\\.system\\\\.entry\\\\.js$\";\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./pages/bladewizard-home/bladewizard-home.module\": [\n\t\t\"./src/app/pages/bladewizard-home/bladewizard-home.module.ts\",\n\t\t\"pages-bladewizard-home-bladewizard-home-module\"\n\t],\n\t\"./pages/buy-again/buy-again.module\": [\n\t\t\"./src/app/pages/buy-again/buy-again.module.ts\",\n\t\t\"pages-buy-again-buy-again-module\"\n\t],\n\t\"./pages/calls/calls.module\": [\n\t\t\"./src/app/pages/calls/calls.module.ts\",\n\t\t\"pages-calls-calls-module\"\n\t],\n\t\"./pages/chipload-calculator/chipload-calculator.module\": [\n\t\t\"./src/app/pages/chipload-calculator/chipload-calculator.module.ts\",\n\t\t\"default~pages-chipload-calculator-chipload-calculator-module~pages-tool-history-tool-history-module\",\n\t\t\"common\",\n\t\t\"pages-chipload-calculator-chipload-calculator-module\"\n\t],\n\t\"./pages/competitive-cross-reference-history/competitive-cross-reference-history.module\": [\n\t\t\"./src/app/pages/competitive-cross-reference-history/competitive-cross-reference-history.module.ts\",\n\t\t\"pages-competitive-cross-reference-history-competitive-cross-reference-history-module\"\n\t],\n\t\"./pages/competitive-cross-reference-product-history/competitive-cross-reference-product-history.module\": [\n\t\t\"./src/app/pages/competitive-cross-reference-product-history/competitive-cross-reference-product-history.module.ts\",\n\t\t\"pages-competitive-cross-reference-product-history-competitive-cross-reference-product-history-module\"\n\t],\n\t\"./pages/competitive-cross-reference-results/competitive-cross-reference-results.module\": [\n\t\t\"./src/app/pages/competitive-cross-reference-results/competitive-cross-reference-results.module.ts\",\n\t\t\"pages-competitive-cross-reference-results-competitive-cross-reference-results-module\"\n\t],\n\t\"./pages/competitive-cross-reference-search-history/competitive-cross-reference-search-history.module\": [\n\t\t\"./src/app/pages/competitive-cross-reference-search-history/competitive-cross-reference-search-history.module.ts\",\n\t\t\"pages-competitive-cross-reference-search-history-competitive-cross-reference-search-history-module\"\n\t],\n\t\"./pages/competitive-cross-reference/competitive-cross-reference.module\": [\n\t\t\"./src/app/pages/competitive-cross-reference/competitive-cross-reference.module.ts\",\n\t\t\"pages-competitive-cross-reference-competitive-cross-reference-module\"\n\t],\n\t\"./pages/complete-user-profile/complete-user-profile.module\": [\n\t\t\"./src/app/pages/complete-user-profile/complete-user-profile.module.ts\",\n\t\t\"pages-complete-user-profile-complete-user-profile-module\"\n\t],\n\t\"./pages/contact/contact.module\": [\n\t\t\"./src/app/pages/contact/contact.module.ts\",\n\t\t\"pages-contact-contact-module\"\n\t],\n\t\"./pages/contacts/contacts.module\": [\n\t\t\"./src/app/pages/contacts/contacts.module.ts\",\n\t\t\"pages-contacts-contacts-module\"\n\t],\n\t\"./pages/customer/customer.module\": [\n\t\t\"./src/app/pages/customer/customer.module.ts\",\n\t\t\"default~pages-customer-customer-module~pages-my-account-my-account-module~pages-promos-promos-module\",\n\t\t\"common\",\n\t\t\"pages-customer-customer-module\"\n\t],\n\t\"./pages/customers/customers.module\": [\n\t\t\"./src/app/pages/customers/customers.module.ts\",\n\t\t\"pages-customers-customers-module\"\n\t],\n\t\"./pages/distributor-home/distributor-home.module\": [\n\t\t\"./src/app/pages/distributor-home/distributor-home.module.ts\",\n\t\t\"pages-distributor-home-distributor-home-module\"\n\t],\n\t\"./pages/distributor-location/distributor-location.module\": [\n\t\t\"./src/app/pages/distributor-location/distributor-location.module.ts\",\n\t\t\"pages-distributor-location-distributor-location-module\"\n\t],\n\t\"./pages/distributor-locator/distributor-locator.module\": [\n\t\t\"./src/app/pages/distributor-locator/distributor-locator.module.ts\",\n\t\t\"pages-distributor-locator-distributor-locator-module\"\n\t],\n\t\"./pages/filetest/filetest.module\": [\n\t\t\"./src/app/pages/filetest/filetest.module.ts\"\n\t],\n\t\"./pages/interactions/interactions.module\": [\n\t\t\"./src/app/pages/interactions/interactions.module.ts\",\n\t\t\"pages-interactions-interactions-module\"\n\t],\n\t\"./pages/marketing/marketing.module\": [\n\t\t\"./src/app/pages/marketing/marketing.module.ts\",\n\t\t\"pages-marketing-marketing-module\"\n\t],\n\t\"./pages/modals/add-call/add-call.module\": [\n\t\t\"./src/app/pages/modals/add-call/add-call.module.ts\"\n\t],\n\t\"./pages/modals/add-contact/add-contact.module\": [\n\t\t\"./src/app/pages/modals/add-contact/add-contact.module.ts\"\n\t],\n\t\"./pages/modals/add-customer-note/add-customer-note.module\": [\n\t\t\"./src/app/pages/modals/add-customer-note/add-customer-note.module.ts\"\n\t],\n\t\"./pages/modals/add-customer/add-customer.module\": [\n\t\t\"./src/app/pages/modals/add-customer/add-customer.module.ts\"\n\t],\n\t\"./pages/modals/crossover-product-display/crossover-product-display.module\": [\n\t\t\"./src/app/pages/modals/crossover-product-display/crossover-product-display.module.ts\"\n\t],\n\t\"./pages/modals/distributor-selector/distributor-selector.module\": [\n\t\t\"./src/app/pages/modals/distributor-selector/distributor-selector.module.ts\"\n\t],\n\t\"./pages/modals/send-invoice-email/send-invoice-email.module\": [\n\t\t\"./src/app/pages/modals/send-invoice-email/send-invoice-email.module.ts\"\n\t],\n\t\"./pages/modals/shopping-cart-end-user/shopping-cart-end-user.module\": [\n\t\t\"./src/app/pages/modals/shopping-cart-end-user/shopping-cart-end-user.module.ts\"\n\t],\n\t\"./pages/modals/tracking-info/tracking-info.module\": [\n\t\t\"./src/app/pages/modals/tracking-info/tracking-info.module.ts\"\n\t],\n\t\"./pages/my-account/my-account.module\": [\n\t\t\"./src/app/pages/my-account/my-account.module.ts\",\n\t\t\"default~pages-customer-customer-module~pages-my-account-my-account-module~pages-promos-promos-module\",\n\t\t\"common\",\n\t\t\"pages-my-account-my-account-module\"\n\t],\n\t\"./pages/notes/notes.module\": [\n\t\t\"./src/app/pages/notes/notes.module.ts\",\n\t\t\"pages-notes-notes-module\"\n\t],\n\t\"./pages/order-details/order-details.module\": [\n\t\t\"./src/app/pages/order-details/order-details.module.ts\",\n\t\t\"common\",\n\t\t\"pages-order-details-order-details-module\"\n\t],\n\t\"./pages/orders/orders.module\": [\n\t\t\"./src/app/pages/orders/orders.module.ts\",\n\t\t\"common\",\n\t\t\"pages-orders-orders-module\"\n\t],\n\t\"./pages/product/product.module\": [\n\t\t\"./src/app/pages/product/product.module.ts\",\n\t\t\"pages-product-product-module\"\n\t],\n\t\"./pages/promos/promos.module\": [\n\t\t\"./src/app/pages/promos/promos.module.ts\",\n\t\t\"default~pages-customer-customer-module~pages-my-account-my-account-module~pages-promos-promos-module\",\n\t\t\"common\",\n\t\t\"pages-promos-promos-module\"\n\t],\n\t\"./pages/rga-request/rga-request.module\": [\n\t\t\"./src/app/pages/rga-request/rga-request.module.ts\",\n\t\t\"common\",\n\t\t\"pages-rga-request-rga-request-module\"\n\t],\n\t\"./pages/rga/rga.module\": [\n\t\t\"./src/app/pages/rga/rga.module.ts\",\n\t\t\"common\",\n\t\t\"pages-rga-rga-module\"\n\t],\n\t\"./pages/rgas/rgas.module\": [\n\t\t\"./src/app/pages/rgas/rgas.module.ts\",\n\t\t\"common\",\n\t\t\"pages-rgas-rgas-module\"\n\t],\n\t\"./pages/sales/sales.module\": [\n\t\t\"./src/app/pages/sales/sales.module.ts\",\n\t\t\"common\",\n\t\t\"pages-sales-sales-module\"\n\t],\n\t\"./pages/saw-files/saw-files.module\": [\n\t\t\"./src/app/pages/saw-files/saw-files.module.ts\",\n\t\t\"default~pages-saw-files-saw-files-module~pages-training-training-module~pages-value-calculator-revie~96efefbf\",\n\t\t\"common\",\n\t\t\"pages-saw-files-saw-files-module\"\n\t],\n\t\"./pages/saw-information/saw-information.module\": [\n\t\t\"./src/app/pages/saw-information/saw-information.module.ts\",\n\t\t\"common\",\n\t\t\"pages-saw-information-saw-information-module\"\n\t],\n\t\"./pages/settings/settings.module\": [\n\t\t\"./src/app/pages/settings/settings.module.ts\",\n\t\t\"pages-settings-settings-module\"\n\t],\n\t\"./pages/support/support.module\": [\n\t\t\"./src/app/pages/support/support.module.ts\",\n\t\t\"pages-support-support-module\"\n\t],\n\t\"./pages/tool-history/tool-history.module\": [\n\t\t\"./src/app/pages/tool-history/tool-history.module.ts\",\n\t\t\"default~pages-chipload-calculator-chipload-calculator-module~pages-tool-history-tool-history-module\",\n\t\t\"common\",\n\t\t\"pages-tool-history-tool-history-module\"\n\t],\n\t\"./pages/tools/tools.module\": [\n\t\t\"./src/app/pages/tools/tools.module.ts\",\n\t\t\"pages-tools-tools-module\"\n\t],\n\t\"./pages/training/training.module\": [\n\t\t\"./src/app/pages/training/training.module.ts\",\n\t\t\"default~pages-saw-files-saw-files-module~pages-training-training-module~pages-value-calculator-revie~96efefbf\",\n\t\t\"common\",\n\t\t\"pages-training-training-module\"\n\t],\n\t\"./pages/value-calculator-blade-competitor/value-calculator-blade-competitor.module\": [\n\t\t\"./src/app/pages/value-calculator-blade-competitor/value-calculator-blade-competitor.module.ts\",\n\t\t\"default~pages-value-calculator-blade-competitor-value-calculator-blade-competitor-module~pages-value~e2525223\",\n\t\t\"common\",\n\t\t\"pages-value-calculator-blade-competitor-value-calculator-blade-competitor-module\"\n\t],\n\t\"./pages/value-calculator-blade-morse/value-calculator-blade-morse.module\": [\n\t\t\"./src/app/pages/value-calculator-blade-morse/value-calculator-blade-morse.module.ts\",\n\t\t\"default~pages-value-calculator-blade-competitor-value-calculator-blade-competitor-module~pages-value~e2525223\",\n\t\t\"common\",\n\t\t\"pages-value-calculator-blade-morse-value-calculator-blade-morse-module\"\n\t],\n\t\"./pages/value-calculator-businessAnalysis/value-calculator-businessAnalysis.module\": [\n\t\t\"./src/app/pages/value-calculator-businessAnalysis/value-calculator-businessAnalysis.module.ts\",\n\t\t\"default~pages-value-calculator-blade-competitor-value-calculator-blade-competitor-module~pages-value~e2525223\",\n\t\t\"common\",\n\t\t\"pages-value-calculator-businessAnalysis-value-calculator-businessAnalysis-module\"\n\t],\n\t\"./pages/value-calculator-history/value-calculator-history.module\": [\n\t\t\"./src/app/pages/value-calculator-history/value-calculator-history.module.ts\",\n\t\t\"common\",\n\t\t\"pages-value-calculator-history-value-calculator-history-module\"\n\t],\n\t\"./pages/value-calculator-job/value-calculator-job.module\": [\n\t\t\"./src/app/pages/value-calculator-job/value-calculator-job.module.ts\",\n\t\t\"default~pages-value-calculator-blade-competitor-value-calculator-blade-competitor-module~pages-value~e2525223\",\n\t\t\"common\",\n\t\t\"pages-value-calculator-job-value-calculator-job-module\"\n\t],\n\t\"./pages/value-calculator-machine/value-calculator-machine.module\": [\n\t\t\"./src/app/pages/value-calculator-machine/value-calculator-machine.module.ts\",\n\t\t\"default~pages-value-calculator-blade-competitor-value-calculator-blade-competitor-module~pages-value~e2525223\",\n\t\t\"common\",\n\t\t\"pages-value-calculator-machine-value-calculator-machine-module\"\n\t],\n\t\"./pages/value-calculator-review/value-calculator-review.module\": [\n\t\t\"./src/app/pages/value-calculator-review/value-calculator-review.module.ts\",\n\t\t\"default~pages-value-calculator-blade-competitor-value-calculator-blade-competitor-module~pages-value~e2525223\",\n\t\t\"default~pages-saw-files-saw-files-module~pages-training-training-module~pages-value-calculator-revie~96efefbf\",\n\t\t\"common\",\n\t\t\"pages-value-calculator-review-value-calculator-review-module\"\n\t],\n\t\"./pages/value-calculator/value-calculator.module\": [\n\t\t\"./src/app/pages/value-calculator/value-calculator.module.ts\",\n\t\t\"default~pages-value-calculator-blade-competitor-value-calculator-blade-competitor-module~pages-value~e2525223\",\n\t\t\"common\",\n\t\t\"pages-value-calculator-value-calculator-module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\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\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","import { NgModule } from '@angular/core';\r\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard } from './auth.guard';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: 'home',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'home',\r\n loadChildren: './pages/distributor-home/distributor-home.module#DistributorHomePageModule',\r\n canActivate: [AuthGuard]\r\n },\r\n // {\r\n // path: 'list',\r\n // loadChildren: './pages/list/list.module#ListPageModule'\r\n // },\r\n // { path: 'tasks', loadChildren: './pages/tasks/tasks.module#TasksPageModule', canActivate: [AuthGuard] },\r\n { path: 'customers', loadChildren: './pages/customers/customers.module#CustomersPageModule', canActivate: [AuthGuard] },\r\n { path: 'sales', loadChildren: './pages/sales/sales.module#SalesPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/sales/:id', loadChildren: './pages/sales/sales.module#SalesPageModule', canActivate: [AuthGuard] },\r\n { path: 'tools', loadChildren: './pages/tools/tools.module#ToolsPageModule', canActivate: [AuthGuard] },\r\n { path: 'tools/restore', loadChildren: './pages/tools/tools.module#ToolsPageModule', canActivate: [AuthGuard] },\r\n { path: 'support', loadChildren: './pages/support/support.module#SupportPageModule', canActivate: [AuthGuard] },\r\n { path: 'settings', loadChildren: './pages/settings/settings.module#SettingsPageModule', canActivate: [AuthGuard] },\r\n // { path: 'contact/:id', loadChildren: './pages/contact/contact.module#ContactPageModule' },\r\n // { path: 'contacts/:id', loadChildren: './pages/contacts/contacts.module#ContactsPageModule' },\r\n // { path: 'calls', loadChildren: './pages/calls/calls.module#CallsPageModule' },\r\n { path: 'marketing', loadChildren: './pages/marketing/marketing.module#MarketingPageModule', canActivate: [AuthGuard] },\r\n { path: 'tool-history', loadChildren: './pages/tool-history/tool-history.module#ToolHistoryPageModule', canActivate: [AuthGuard] },\r\n { path: 'contact/:id', loadChildren: './pages/contact/contact.module#ContactPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/:id', loadChildren: './pages/customer/customer.module#CustomerPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/interactions/:id', loadChildren: './pages/interactions/interactions.module#InteractionsPageModule', canActivate: [AuthGuard] },\r\n { path: 'contacts/:id', loadChildren: './pages/contacts/contacts.module#ContactsPageModule', canActivate: [AuthGuard] },\r\n { path: 'calls', loadChildren: './pages/calls/calls.module#CallsPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/:id/orders', loadChildren: './pages/orders/orders.module#OrdersPageModule', canActivate: [AuthGuard] },\r\n // { path: 'customer/:id/orders/:tab', loadChildren: './pages/orders/orders.module#OrdersPageModule', canActivate: [AuthGuard] },\r\n { path: 'marketing', loadChildren: './pages/marketing/marketing.module#MarketingPageModule', canActivate: [AuthGuard] },\r\n { path: 'tool-history', loadChildren: './pages/tool-history/tool-history.module#ToolHistoryPageModule', canActivate: [AuthGuard] },\r\n //{ path: 'tool-results', loadChildren: './pages/tool-results/tool-results.module#ToolResultsPageModule' },\r\n { path: 'add-customer', loadChildren: './pages/modals/add-customer/add-customer.module#AddCustomerPageModule', canActivate: [AuthGuard] },\r\n { path: 'add-call', loadChildren: './pages/modals/add-call/add-call.module#AddCallPageModule', canActivate: [AuthGuard] },\r\n { path: 'add-contact', loadChildren: './pages/modals/add-contact/add-contact.module#AddContactPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/:id/notes', loadChildren: './pages/notes/notes.module#NotesPageModule', canActivate: [AuthGuard] },\r\n { path: 'add-customer-note', loadChildren: './pages/modals/add-customer-note/add-customer-note.module#AddCustomerNotePageModule', canActivate: [AuthGuard] },\r\n { path: 'bladewizard', loadChildren: './pages/bladewizard-home/bladewizard-home.module#BladewizardHomePageModule' },\r\n { path: 'add-call', loadChildren: './pages/modals/add-call/add-call.module#AddCallPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/:id', loadChildren: './pages/customer/customer.module#CustomerPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/:id/interactions', loadChildren: './pages/interactions/interactions.module#InteractionsPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/:id/rgas/:rgaNumber', loadChildren: './pages/rga/rga.module#RgaPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/:id/rgas', loadChildren: './pages/rgas/rgas.module#RgasPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/:id/rga-request', loadChildren: './pages/rga-request/rga-request.module#RgaRequestPageModule', canActivate: [AuthGuard] },\r\n\r\n // DISTRIBUTOR RGA ROUTES\r\n { path: 'rgas/rga-details/:rgaNumber', loadChildren: './pages/rga/rga.module#RgaPageModule', canActivate: [AuthGuard] },\r\n { path: 'rgas', loadChildren: './pages/rgas/rgas.module#RgasPageModule', canActivate: [AuthGuard] },\r\n { path: 'rgas/rga-request', loadChildren: './pages/rga-request/rga-request.module#RgaRequestPageModule', canActivate: [AuthGuard] },\r\n // END DISTRIBUTOR RGA ROUTES\r\n { path: 'distributor-home', loadChildren: './pages/distributor-home/distributor-home.module#DistributorHomePageModule', canActivate: [AuthGuard] },\r\n { path: 'product-catalog', loadChildren: './pages/distributor-home/distributor-home.module#DistributorHomePageModule', canActivate: [AuthGuard] },\r\n { path: 'promotions', loadChildren: './pages/promos/promos.module#PromosPageModule', canActivate: [AuthGuard] },\r\n { path: 'buy-again', loadChildren: './pages/buy-again/buy-again.module#BuyAgainPageModule', canActivate: [AuthGuard] },\r\n { path: 'my-account', loadChildren: './pages/my-account/my-account.module#MyAccountPageModule', canActivate: [AuthGuard] },\r\n\r\n { path: 'customer/:id/orders', loadChildren: './pages/orders/orders.module#OrdersPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/:id/orders/:orderNumber/:orderType', loadChildren: './pages/order-details/order-details.module#OrderDetailsPageModule', canActivate: [AuthGuard] },\r\n { path: 'customer/:id/sales', loadChildren: './pages/sales/sales.module#SalesPageModule', canActivate: [AuthGuard] },\r\n { path: 'filetest', loadChildren: './pages/filetest/filetest.module#FiletestPageModule', canActivate: [AuthGuard] },\r\n { path: 'saw-information', loadChildren: './pages/saw-information/saw-information.module#SawInformationPageModule', canActivate: [AuthGuard] },\r\n { path: 'saw-information/saw-files/:maker', loadChildren: './pages/saw-files/saw-files.module#SawFilesPageModule', canActivate: [AuthGuard] },\r\n { path: 'competitive-cross-reference', loadChildren: './pages/competitive-cross-reference/competitive-cross-reference.module#CompetitiveCrossReferencePageModule', canActivate: [AuthGuard] },\r\n { path: 'competitive-cross-reference-results', loadChildren: './pages/competitive-cross-reference-results/competitive-cross-reference-results.module#CompetitiveCrossReferenceResultsPageModule', canActivate: [AuthGuard] },\r\n { path: 'crossover-product-display', loadChildren: './pages/modals/crossover-product-display/crossover-product-display.module#CrossoverProductDisplayPageModule', canActivate: [AuthGuard] },\r\n { path: 'value-calculator/:businessAnalysisId', loadChildren: './pages/value-calculator/value-calculator.module#ValueCalculatorPageModule', canActivate: [AuthGuard] },\r\n { path: 'value-calculator/:businessAnalysisId/businessAnalysis', loadChildren: './pages/value-calculator-businessAnalysis/value-calculator-businessAnalysis.module#ValueCalculatorBusinessAnalysisPageModule', canActivate: [AuthGuard] },\r\n { path: 'value-calculator', loadChildren: './pages/value-calculator/value-calculator.module#ValueCalculatorPageModule', canActivate: [AuthGuard] },\r\n { path: 'value-calculator/:businessAnalysisId/job', loadChildren: './pages/value-calculator-job/value-calculator-job.module#ValueCalculatorJobPageModule', canActivate: [AuthGuard] },\r\n { path: 'value-calculator/:businessAnalysisId/job/:jobId/machine', loadChildren: './pages/value-calculator-machine/value-calculator-machine.module#ValueCalculatorMachinePageModule', canActivate: [AuthGuard] },\r\n { path: 'value-calculator/:businessAnalysisId/job/:jobId/machine/:machineId', loadChildren: './pages/value-calculator-machine/value-calculator-machine.module#ValueCalculatorMachinePageModule', canActivate: [AuthGuard] },\r\n { path: 'value-calculator/:businessAnalysisId/job/:jobId/machine/:machineId/morseBlade', loadChildren: './pages/value-calculator-blade-morse/value-calculator-blade-morse.module#ValueCalculatorBladeMorsePageModule', canActivate: [AuthGuard] },\r\n { path: 'value-calculator/:businessAnalysisId/job/:jobId/machine/:machineId/competitorBlade', loadChildren: './pages/value-calculator-blade-competitor/value-calculator-blade-competitor.module#ValueCalculatorBladeCompetitorPageModule', canActivate: [AuthGuard] },\r\n { path: 'value-calculator/:businessAnalysisId/review', loadChildren: './pages/value-calculator-review/value-calculator-review.module#ValueCalculatorReviewPageModule', canActivate: [AuthGuard] },\r\n { path: 'value-calculator-history', loadChildren: './pages/value-calculator-history/value-calculator-history.module#ValueCalculatorHistoryPageModule', canActivate: [AuthGuard] },\r\n { path: 'product/:family/:group/:product', loadChildren: './pages/product/product.module#ProductPageModule', canActivate: [AuthGuard] },\r\n { path: 'product/:part', loadChildren: './pages/product/product.module#ProductPageModule', canActivate: [AuthGuard] },\r\n { path: 'tracking-info', loadChildren: './pages/modals/tracking-info/tracking-info.module#TrackingInfoPageModule', canActivate: [AuthGuard] },\r\n { path: 'send-invoice-email', loadChildren: './pages/modals/send-invoice-email/send-invoice-email.module#SendInvoiceEmailPageModule', canActivate: [AuthGuard] },\r\n { path: 'chipload-calculator', loadChildren: './pages/chipload-calculator/chipload-calculator.module#ChiploadCalculatorPageModule', canActivate: [AuthGuard]},\r\n { path: 'help', loadChildren: './pages/training/training.module#TrainingPageModule', canActivate: [AuthGuard]},\r\n { path: 'complete-user-profile', loadChildren: './pages/complete-user-profile/complete-user-profile.module#CompleteUserProfilePageModule',canActivate: [AuthGuard] },\r\n { path: 'user-profile', loadChildren: './pages/complete-user-profile/complete-user-profile.module#CompleteUserProfilePageModule',canActivate: [AuthGuard] },\r\n { path: 'competitive-cross-reference-history', loadChildren: './pages/competitive-cross-reference-history/competitive-cross-reference-history.module#CompetitiveCrossReferenceHistoryPageModule',canActivate: [AuthGuard] },\r\n { path: 'competitive-cross-reference-search-history', loadChildren: './pages/competitive-cross-reference-search-history/competitive-cross-reference-search-history.module#CompetitiveCrossReferenceSearchHistoryPageModule',canActivate: [AuthGuard] },\r\n { path: 'competitive-cross-reference-product-history', loadChildren: './pages/competitive-cross-reference-product-history/competitive-cross-reference-product-history.module#CompetitiveCrossReferenceProductHistoryPageModule',canActivate: [AuthGuard] },\r\n { path: 'distributor-locator', loadChildren: './pages/distributor-locator/distributor-locator.module#DistributorLocatorPageModule',canActivate: [AuthGuard] },\r\n { path: 'distributor-locator/add', loadChildren: './pages/distributor-locator/distributor-locator.module#DistributorLocatorPageModule',canActivate: [AuthGuard] },\r\n { path: 'distributor-location/:id', loadChildren: './pages/distributor-location/distributor-location.module#DistributorLocationPageModule',canActivate: [AuthGuard] },\r\n { path: 'shopping-cart-end-user', loadChildren: './pages/modals/shopping-cart-end-user/shopping-cart-end-user.module#ShoppingCartEndUserPageModule' },\r\n { path: 'distributor-selector', loadChildren: './pages/modals/distributor-selector/distributor-selector.module#DistributorSelectorPageModule' },\r\n\r\n\r\n\r\n\r\n];\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","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 {{p.title}}\\r\\n \\r\\n 0\\\" [notificationCount]=\\\"p.notifications\\\" [stacked]=\\\"false\\\">\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{childPage.title}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Add to Homepage\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Log Out\\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 \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","import { Component, OnInit, OnDestroy, Renderer2 } from '@angular/core';\r\n\r\nimport { Platform } from '@ionic/angular';\r\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\r\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { OAuthService, JwksValidationHandler } from 'angular-oauth2-oidc';\r\nimport { AuthConfig } from 'angular-oauth2-oidc';\r\nimport { getLocaleDateTimeFormat, Location } from '@angular/common';\r\nimport { LocalStorage } from '@ngx-pwa/local-storage';\r\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\r\nimport { SettingsService, UserView } from './services/settings.service';\r\nimport { NotificationType } from './models/enums/NotificationType';\r\nimport { TaskService } from './services/task.service';\r\nimport { MenuService } from './services/menu.service';\r\nimport { BehaviorSubjectService } from './services/behavior-subject.service';\r\nimport { Observable, of, forkJoin } from 'rxjs';\r\nimport { PwaService } from './services/pwa-service.service';\r\nimport { OdpService } from './services/odp.service';\r\nimport { PageService } from './services/page.service';\r\nimport { SharedDataService, DictKey } from './services/shared-data.service';\r\nimport { PageInfo } from './models/PageInfo';\r\nimport { SharedService } from './services/shared.service';\r\nimport { DistributorService } from './services/distributor.service';\r\nimport { environment } from '../environments/environment';\r\ndeclare let gtag: Function;\r\nimport { CustomerType } from 'src/app/models/enums/CustomerType';\r\nimport { CustomerDetails } from './models/CustomerDetails';\r\nimport { CustomerService } from './services/customer.service';\r\nimport { CustomerListItem } from './models/CustomerListItem';\r\nimport { EndUserShoppingCartService } from './services/end-user-shopping-cart.service';\r\nimport { ToolsPage } from './pages/tools/tools.page';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: 'app.component.html'\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n private notices;\r\n private tasks;\r\n public window = window;\r\n public isLoggedIn = false;\r\n private isOdpUser = false;\r\n private isOdpUserSet = false;\r\n requestedRoute = null;\r\n public notificationTypes = NotificationType;\r\n\r\n public publicURL = false;\r\n googleAnalyticsId: string;\r\n\r\n public appPages: any[];\r\n // public repPages: any[];\r\n\r\n subscription: any;\r\n routerSubscription: any;\r\n gaRouterSubscription: any;\r\n currentCustomerId: number;\r\n customerNumberChangeSubscription: any;\r\n themeChangeSubscription: any;\r\n\r\n bannerHtml: string;\r\n trialResultsURL: string;\r\n showMenu = true;\r\n gtagSet = false;\r\n currentCustomer: CustomerListItem;\r\n pageInfo: PageInfo;\r\n\r\n taskIcon: string = this.settingsService.getTheme(\"menu/tasks.svg\");\r\n customerIcon:string = this.settingsService.getTheme(\"menu/customers.svg\");\r\n ordersIcon: string = this.settingsService.getTheme(\"menu/orders.svg\");\r\n salesIcon: string = this.settingsService.getTheme(\"menu/sales.svg\");\r\n toolsIcon: string = this.settingsService.getTheme(\"menu/tools.svg\");\r\n chipLoad: string = this.settingsService.getTheme(\"menu/chipload2.png\");\r\n supportIcon: string = this.settingsService.getTheme(\"menu/support.svg\");\r\n\r\n constructor(\r\n private platform: Platform,\r\n private splashScreen: SplashScreen,\r\n private statusBar: StatusBar,\r\n private translate: TranslateService,\r\n private oauthService: OAuthService,\r\n private lclStorage: LocalStorage,\r\n private router: Router,\r\n private settingsService: SettingsService,\r\n private location: Location,\r\n private taskService: TaskService,\r\n private route: ActivatedRoute,\r\n private sharedDataService: SharedDataService,\r\n private menuService: MenuService,\r\n private behaviorSubjectService: BehaviorSubjectService,\r\n private pageService: PageService,\r\n private distributorService: DistributorService,\r\n public Pwa: PwaService,\r\n private odpService: OdpService,\r\n private sharedService: SharedService,\r\n private renderer: Renderer2,\r\n private customerService: CustomerService,\r\n private endUserShoppingCartService: EndUserShoppingCartService\r\n ) {\r\n this.setTheme();\r\n this.getTrialResultsUrl();\r\n this.setAppPages();\r\n this.initializeApp();\r\n this.publicURL = this.isPublicURL();\r\n if (!sessionStorage.getItem('postLoginReload') && this.hasTrackingConsent()) {\r\n this.trackGoogleAnalytics();\r\n }\r\n if (!this.publicURL) {\r\n this.configureAuthWithNewConfigApi();\r\n }\r\n this.getNotifications();\r\n\r\n // Listen for periodic notification updates\r\n this.subscription = this.taskService.getTaskNotificationEmitter()\r\n .subscribe(item => this.setTaskNotificationCount(item));\r\n // Listen for route changes to alter menu\r\n this.routerSubscription = router.events.subscribe(navEnd => {\r\n if (navEnd instanceof NavigationEnd) {\r\n this.routeChanged(navEnd as NavigationEnd);\r\n }\r\n\r\n });\r\n\r\n // Listen for customer number changes to alter menu\r\n this.customerNumberChangeSubscription = this.menuService.customerChange.subscribe(customerDetails => {\r\n this.afterCustomerChange(customerDetails);\r\n });\r\n\r\n this.themeChangeSubscription = this.settingsService.themeUpdate.subscribe(() => {\r\n this.taskIcon = this.settingsService.getTheme(\"menu/tasks.svg\");\r\n this.customerIcon = this.settingsService.getTheme(\"menu/customers.svg\");\r\n this.ordersIcon = this.settingsService.getTheme(\"menu/orders.svg\");\r\n this.salesIcon = this.settingsService.getTheme(\"menu/sales.svg\");\r\n this.toolsIcon = this.settingsService.getTheme(\"menu/tools.svg\");\r\n this.chipLoad = this.settingsService.getTheme(\"menu/chipload2.png\");\r\n this.supportIcon = this.settingsService.getTheme(\"menu/support.svg\");\r\n this.setAppPages();\r\n })\r\n }\r\n\r\n private loadCookieYesScript() {\r\n this.behaviorSubjectService.cookieYesUrlSubject.subscribe(cookieYesUrl => { \r\n const script = document.createElement('script');\r\n script.src = cookieYesUrl;\r\n document.head.appendChild(script);\r\n });\r\n }\r\n\r\n hasTrackingConsent(): boolean {\r\n if (this.getCookie('cky-consent') == 'yes' && this.getCookie('cookieyes-analytics') == 'yes') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n getCookie(name) {\r\n var re = new RegExp(name + \"=([^;]+)\");\r\n var value = re.exec(document.cookie);\r\n return (value != null) ? unescape(value[1]) : 'no';\r\n }\r\n\r\n trackGoogleAnalytics() {\r\n this.setupGoogleAnalyticsScripts();\r\n this.gaRouterSubscription = this.router.events.subscribe(navEnd => {\r\n if (navEnd instanceof NavigationEnd) {\r\n gtag('config', this.googleAnalyticsId, \r\n {\r\n 'page_path': this.location.path(false).split('?')[0],\r\n 'custom_map': {'dimension1': 'Role' }\r\n });\r\n this.trackRoleGoogleAnalytics();\r\n }\r\n });\r\n }\r\n\r\n setupGoogleAnalyticsScripts() {\r\n this.googleAnalyticsId = this.behaviorSubjectService.googleAnalyticsIdSubjectManager.getValue();\r\n if (this.googleAnalyticsId) {\r\n // register google tag manager\r\n const gTagManagerScript = document.createElement('script');\r\n gTagManagerScript.async = true;\r\n gTagManagerScript.src = `https://www.googletagmanager.com/gtag/js?id=${this.googleAnalyticsId}`;\r\n document.head.appendChild(gTagManagerScript);\r\n \r\n // register google analytics\r\n const gaScript = document.createElement('script');\r\n gaScript.innerHTML = `\r\n window.dataLayer = window.dataLayer || [];\r\n function gtag() { dataLayer.push(arguments); }\r\n gtag('js', new Date());\r\n `;\r\n document.head.appendChild(gaScript);\r\n }\r\n }\r\n\r\n trackRoleGoogleAnalytics() {\r\n const userRole = this.settingsService.getUserRoleAnalytics();\r\n if (userRole == 'Public' && !this.isPublicURL()) {\r\n // Skip logging role for initial redirect to login page\r\n } else {\r\n gtag('set', 'user_properties', {\r\n Role: userRole\r\n });\r\n gtag('event', 'Role', {'Role': userRole});\r\n console.log('role set');\r\n }\r\n }\r\n\r\n\r\n setTheme(newTheme?: string) {\r\n var settings = this.settingsService.getUserSettings();\r\n let theme = null;\r\n if (settings) {\r\n theme = settings.theme;\r\n } \r\n if (newTheme) {\r\n theme = newTheme;\r\n }\r\n //default theme\r\n if (!theme) {\r\n theme = 'light';\r\n }\r\n this.removeOldThemeClass();\r\n this.renderer.addClass(document.body, theme);\r\n //localStorage.setItem('theme', theme); \r\n }\r\n\r\n removeOldThemeClass() {\r\n this.renderer.removeClass(document.body, 'light');\r\n this.renderer.removeClass(document.body, 'dark');\r\n }\r\n\r\n afterCustomerChange(customerDetails: CustomerListItem) {\r\n const parent = this.appPages.find(x => x.url === '/customers' || (x.url ? x.url.indexOf('/customer/') == 0 : false));\r\n if (customerDetails) {\r\n this.currentCustomer = customerDetails;\r\n this.setCustomerMenuItem(parent, customerDetails.Name, '/customer/' + customerDetails.SalesforceId);\r\n } else {\r\n this.setCustomerMenuItem(parent, 'Customers', '/customers');\r\n }\r\n if (this.allowOrdersQuotesForCurrentCustomer()) {\r\n // this.setChildPagesUrlId(parent);\r\n this.setCustomerMenuItems(+customerDetails.BilltoNumber);\r\n } else {\r\n this.setCustomerMenuItems(null);\r\n }\r\n }\r\n\r\n allowOrdersQuotesForCurrentCustomer(): boolean {\r\n if (this.currentCustomer && this.currentCustomer.CustomerType != CustomerType.EndUser && this.currentCustomer.BilltoNumber) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n const placeholderBanner = '';\r\n this.pageService.getBannerMessage(placeholderBanner).subscribe(bannerHtml => {\r\n this.bannerHtml = bannerHtml;\r\n this.sharedDataService.setValue(DictKey.BannerHTML, bannerHtml);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n this.routerSubscription.unsubscribe();\r\n this.gaRouterSubscription.unsubscribe();\r\n }\r\n\r\n setAppPages() {\r\n if (this.settingsService.isDistributor()) {\r\n this.appPages = this.getDistributorPages()\r\n } else if (this.settingsService.isEndUser()) {\r\n this.appPages = this.getEndUserPages();\r\n } else {\r\n this.appPages = this.getAppPages();\r\n }\r\n }\r\n\r\n initializeApp() {\r\n this.platform.ready().then(() => {\r\n this.statusBar.styleDefault();\r\n this.splashScreen.hide();\r\n this.translate.setDefaultLang('en');\r\n this.translate.addLangs(['en', 'es']);\r\n });\r\n }\r\n\r\n configureAuthWithNewConfigApi() {\r\n // this.oauthService.setStorage(localStorage);\r\n let authConfig: AuthConfig;\r\n if (this.behaviorSubjectService.environmentSubject.getValue() === 'local') {\r\n authConfig = {\r\n issuer: 'https://localhost:44333/core',\r\n // URL of the app to redirect the user to after login\r\n redirectUri: window.location.href,\r\n // The ClientId. The app registerd with this id at the auth-server\r\n clientId: 'morsesalesapplocal.mkmorse.com',\r\n // set the scope for the permissions the client should request\r\n // The first three are defined by OIDC. The 4th is a usecase-specific one\r\n scope: 'openid odpapi roles all_claims', // profile email voucher\r\n silentRefreshRedirectUri: window.location.origin + '/silent-refresh.html',\r\n // postLogoutRedirectUri: 'https://morsesalesappdev.mkmorse.com'\r\n postLogoutRedirectUri: 'https://localhost:8100'\r\n };\r\n } else {\r\n authConfig = {\r\n issuer: this.behaviorSubjectService.authUrlSubject.getValue() + '/core',\r\n redirectUri: this.behaviorSubjectService.mobileUrlSubject.getValue(), // URL of the app to redirect the user to after login\r\n clientId: this.behaviorSubjectService.clientIdSubject.getValue(), // The app registerd with this id at the auth-server\r\n // set the scope for the permissions the client should request\r\n // The first three are defined by OIDC. The 4th is a usecase-specific one\r\n scope: 'openid odpapi roles all_claims', // profile email voucher\r\n silentRefreshRedirectUri: window.location.origin + '/silent-refresh.html',\r\n postLogoutRedirectUri: this.behaviorSubjectService.mobileUrlSubject.getValue()\r\n };\r\n }\r\n this.oauthService.configure(authConfig);\r\n this.oauthService.tokenValidationHandler = new JwksValidationHandler();\r\n this.oauthService.loadDiscoveryDocumentAndTryLogin().then(() => {\r\n if (!this.checkIsLoggedIn()) {\r\n sessionStorage.setItem('postLoginReload', '1');\r\n this.login();\r\n } else {\r\n this.isLoggedIn = true;\r\n // Reset settings based on access token\r\n // const userSettings = this.settingsService.getUserSettings();\r\n // this.lclStorage.setItem('settings', this.settingsService.mapTokenClaimsToUserSettings(userSettings)).subscribe(() => { });\r\n // if user has not set settings previously, redirect\r\n // this.lclStorage.getItem('settings_set').subscribe((settingsSet) => {\r\n // Redirect to settings page if first time\r\n // if (settingsSet == null || (settingsSet as boolean) === false) {\r\n // this.router.navigate(['settings']);\r\n // Redirect to preivously attempted URI\r\n // } else {\r\n // Timing issue with token saved to local storage and page load so reload if needed after login saves token\r\n if (sessionStorage.getItem('postLoginReload')) {\r\n setTimeout(() => { this.window.location.reload(); });\r\n }\r\n // }\r\n sessionStorage.removeItem('postLoginReload');\r\n this.oauthService.setupAutomaticSilentRefresh();\r\n var isEndUser = this.settingsService.isEndUser();\r\n\r\n if (this.settingsService.isLoggedIn()) {\r\n this.loadCookieYesScript();\r\n const isProfileComplete = this.settingsService.isProfileComplete();\r\n const isProfileCompletePage = this.route && this.route.routeConfig && this.route.routeConfig.path ? this.route.routeConfig.path.includes('complete-user-profile') : false;\r\n if (!isProfileComplete && !isProfileCompletePage && isEndUser) {\r\n this.showMenu = false;\r\n this.router.navigate(['/complete-user-profile']);\r\n } else {\r\n this.showMenu = true;\r\n }\r\n }\r\n if (!isEndUser) {\r\n this.getPageInfo();\r\n }\r\n // });\r\n }\r\n });\r\n }\r\n\r\n login() {\r\n this.oauthService.initImplicitFlow();\r\n }\r\n\r\n logout() {\r\n this.oauthService.logOut();\r\n }\r\n\r\n checkIsLoggedIn() {\r\n return this.oauthService.hasValidIdToken();\r\n }\r\n\r\n redirect(route: string) {\r\n this.router.navigate([route]);\r\n }\r\n\r\n redirectExternal(route:string) {\r\n if (route) {\r\n window.open(route);\r\n }\r\n }\r\n\r\n setTaskNotificationCount(count) {\r\n const taskPage = this.appPages.find(x => x.notificationType === this.notificationTypes.Task);\r\n if (taskPage) {\r\n taskPage.notifications = count;\r\n }\r\n }\r\n\r\n getNotifications() {\r\n var isEndUser = this.settingsService.isEndUser();\r\n if (!isEndUser) {\r\n this.getPageInfo();\r\n this.getCartCount();\r\n // 30 sec refresh\r\n setTimeout(() => {\r\n this.getNotifications();\r\n }, 30000);\r\n } else {\r\n const username = this.settingsService.getUserSettings().username;\r\n this.endUserShoppingCartService.getActiveCart(username)\r\n .subscribe(cartId => {\r\n this.sharedDataService.getCartCountEndUser(cartId);\r\n })\r\n // 30 sec refresh\r\n setTimeout(() => {\r\n this.getNotifications();\r\n }, 30000);\r\n }\r\n }\r\n\r\n getPageInfo() {\r\n this.pageService.getPageInfo().subscribe(pageInfo => {\r\n this.pageInfo = pageInfo;\r\n this.sharedDataService.setValue(DictKey.AppPageInfo, pageInfo);\r\n\r\n const accountPage = this.appPages.find(x => x.title === 'My Account');\r\n if (pageInfo && !pageInfo.showAccount && accountPage) {\r\n accountPage.hide = true;\r\n }\r\n\r\n // Initial load pull current customer from page info, rest use customer change event emitter\r\n if (pageInfo && pageInfo.OdpCustomerName && !this.currentCustomer) {\r\n const customerDetails = new CustomerDetails();\r\n customerDetails.Name = this.pageInfo.OdpCustomerName;\r\n customerDetails.Id = this.pageInfo.SalesAccountId;\r\n customerDetails.CustomerNumber = this.pageInfo.OdpCustomerNumber;\r\n customerDetails.BilltoNumber = this.pageInfo.BillToNumber;\r\n customerDetails.SalesforceId = this.pageInfo.SalesforceId;\r\n this.afterCustomerChange(customerDetails);\r\n }\r\n }, er => console.log('ERROR: getPageInfo', er));\r\n }\r\n\r\n getCartCount() {\r\n this.distributorService.getCartCountArray(null).subscribe(cartInfoArr => {\r\n this.sharedDataService.setValue(DictKey.CartCountArray, cartInfoArr);\r\n }, er => console.log('ERROR: getCartCountArray', er));\r\n }\r\n\r\n routeChanged(navEnd: NavigationEnd) {\r\n let activeParentUrl = null;\r\n // if (navEnd.urlAfterRedirects.indexOf('/customer/') >= 0) {\r\n // activeParentUrl = '/customers';\r\n // }\r\n\r\n if (activeParentUrl) {\r\n this.showChildPages(activeParentUrl);\r\n }\r\n this.hideChildPagesExcluding(activeParentUrl);\r\n\r\n this.isPublicURL();\r\n }\r\n\r\n expandCollapseChildPages(activeParentUrl: string) {\r\n let parent = this.appPages.find(x => x.url === activeParentUrl);\r\n if (!parent) {\r\n parent = this.appPages.find(x => x.psuedoUrl === activeParentUrl);\r\n }\r\n setTimeout(() => {\r\n parent.showChildPages = !parent.showChildPages;\r\n });\r\n }\r\n\r\n /* expandCollapseRepChildPages(activeParentUrl: string) {\r\n let parent = this.repPages.find(x => x.url === activeParentUrl);\r\n if (!parent) {\r\n parent = this.repPages.find(x => x.psuedoUrl === activeParentUrl);\r\n }\r\n setTimeout(() => {\r\n parent.showChildPages = !parent.showChildPages;\r\n });\r\n }*/\r\n\r\n showChildPages(activeParentUrl: string) {\r\n const parent = this.appPages.find(x => x.url === activeParentUrl);\r\n if (parent) {\r\n parent.showChildPages = true;\r\n this.setChildPagesUrlId(parent);\r\n }\r\n }\r\n\r\n setCustomerMenuItem(parent, customerName: string, itemUrl: string) {\r\n if (parent) {\r\n parent.title = customerName;\r\n parent.url = itemUrl;\r\n }\r\n }\r\n\r\n \r\n setCustomerMenuItems(customerId: number) {\r\n const menuItems = this.appPages.filter(m => m.title == 'Orders' || m.title == 'Quotes');\r\n if (customerId) {\r\n menuItems.map(m => m.disabled = false);\r\n } else {\r\n menuItems.map(m => m.disabled = true);\r\n }\r\n }\r\n\r\n setChildPagesUrlId(parent) {\r\n parent.showChildPages = false;\r\n let customerNumber = null;\r\n let id = null;\r\n this.route.firstChild.params.subscribe((params) => {\r\n id = params['id'];\r\n if (parent.url.indexOf('customer') >= 0 && this.menuService.customer) {\r\n customerNumber = this.menuService.customer.CustomerNumber;\r\n }\r\n \r\n if (id) {\r\n if (!this.isOdpUserSet) {\r\n this.setIsOdpUser();\r\n }\r\n parent.childPages.map(childPage => {\r\n // Disable these pages if customerNumber is missing\r\n if (childPage.urlSuffix.indexOf('orders') >= 0 || childPage.urlSuffix.indexOf('sales') >= 0\r\n || childPage.urlSuffix.indexOf('rga') >= 0) {\r\n const hasAccess = this.isOdpUser || childPage.urlSuffix.indexOf('orders') < 0;\r\n\r\n if (customerNumber && hasAccess) {\r\n childPage.urlIdPrefix = id;\r\n childPage.disabled = false;\r\n } else {\r\n childPage.urlIdPrefix = null;\r\n childPage.disabled = true;\r\n }\r\n } else {\r\n childPage.urlIdPrefix = id;\r\n childPage.disabled = false;\r\n }\r\n });\r\n }\r\n });\r\n parent.showChildPages = true;\r\n }\r\n\r\n async setIsOdpUser() {\r\n // Determine if user has odp access.\r\n await this.odpService.isOdpUser().toPromise().then(isOdpUser => {\r\n this.isOdpUser = true;\r\n this.isOdpUserSet = true;\r\n });\r\n }\r\n\r\n hideChildPagesExcluding(excludedParentUrl: string) {\r\n // Assumes only 1 parent open at a time\r\n const openParent = this.appPages.find(x => x.showChildPages && x.url !== excludedParentUrl);\r\n if (openParent) {\r\n openParent.showChildPages = false;\r\n }\r\n }\r\n\r\n installPwa() {\r\n this.Pwa.promptEvent.prompt();\r\n }\r\n\r\n isPublicURL(): boolean {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const isBladewizardPage = window.location.pathname.indexOf('bladewizard') >= 0;\r\n console.log('is Bladewizard: ', window.location.pathname.indexOf('bladewizard') >= 0);\r\n return urlParams.has('public') && isBladewizardPage;\r\n }\r\n\r\n getAppPages() {\r\n return [\r\n {\r\n title: 'app.home',\r\n url: '/product-catalog',\r\n icon: 'home',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n // {\r\n // title: 'app.search',\r\n // url: '/search',\r\n // icon: 'search',\r\n // iconType: 'ion',\r\n // childPages: [],\r\n // },\r\n // {\r\n // title: 'app.tasks',\r\n // url: '/tasks',\r\n // icon: this.taskIcon,\r\n // iconType: 'img',\r\n // notifications: null,\r\n // notificationType: this.notificationTypes.Task,\r\n // childPages: [],\r\n // },\r\n {\r\n title: 'app.customers',\r\n url: '/customers',\r\n icon: this.customerIcon,\r\n iconType: 'img',\r\n //childPages: [\r\n // {\r\n // title: 'Interactions',\r\n // urlPrefix: '/customer',\r\n // urlSuffix: '/interactions',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: this.iconFolder + '/interactions.svg',\r\n // iconType: 'img',\r\n // disabled: true\r\n // },\r\n // {\r\n // title: 'Sales',\r\n // urlPrefix: '/customer',\r\n // urlSuffix: '/sales',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: this.iconFolder + '/sales.svg',\r\n // iconType: 'img',\r\n // disabled: true\r\n // },\r\n // {\r\n // title: 'RGA',\r\n // urlPrefix: '/customer',\r\n // urlSuffix: '/rgas',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: this.iconFolder + '/rga.svg',\r\n // iconType: 'img',\r\n // disabled: true\r\n // },\r\n // {\r\n // title: 'Notes',\r\n // urlPrefix: '/customer',\r\n // urlSuffix: '/notes',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: this.iconFolder + '/notes.svg',\r\n // iconType: 'img',\r\n // disabled: true\r\n // }\r\n //],\r\n //showChildPages: false\r\n },\r\n {\r\n title: 'Orders',\r\n click: () => this.goToOrders(),\r\n icon: this.ordersIcon,\r\n iconType: 'img',\r\n disabled: true\r\n },\r\n {\r\n title: 'Quotes',\r\n click: () => this.goToQuotes(),\r\n icon: 'paper',\r\n iconType: 'ion',\r\n childPages: [],\r\n disabled: true\r\n },\r\n {\r\n title: 'Change Customer',\r\n url: '/customers',\r\n icon: 'sync',\r\n iconType: 'ion',\r\n childPages: []\r\n },\r\n {\r\n title: 'app.sales',\r\n url: '/sales',\r\n icon: this.salesIcon,\r\n iconType: 'img',\r\n childPages: [],\r\n },\r\n // {\r\n // title: 'Product Catalog',\r\n // url: '/product-catalog',\r\n // icon: 'cart',\r\n // iconType: 'ion',\r\n // childPages: [],\r\n // },\r\n {\r\n title: 'app.tools',\r\n url: '',\r\n psuedoUrl: '/tools-expandable',\r\n click: ($event) => {\r\n $event.stopPropagation();\r\n return this.expandCollapseChildPages('/tools-expandable');\r\n },\r\n icon: this.toolsIcon,\r\n iconType: 'img',\r\n childPages: [\r\n {\r\n title: 'Bladewizards',\r\n urlPrefix: '/bladewizard',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: this.toolsIcon,\r\n iconType: 'img',\r\n disabled: false\r\n },\r\n // {\r\n // title: 'Trial Results',\r\n // urlPrefix: '/trial-results',\r\n // urlSuffix: '',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: 'flask',\r\n // iconType: 'ion',\r\n // disabled: false\r\n // },\r\n // {\r\n // title: 'Selling Tips',\r\n // urlPrefix: '/selling-tips',\r\n // urlSuffix: '',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: 'bulb',\r\n // iconType: 'ion',\r\n // disabled: false\r\n // },\r\n // {\r\n // title: 'Saw Information',\r\n // urlPrefix: '/saw-info',\r\n // urlSuffix: '',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: 'information-circle-outline',\r\n // iconType: 'ion',\r\n // disabled: false\r\n // },\r\n {\r\n title: 'Competitive Cross Reference',\r\n urlPrefix: '/competitive-cross-reference',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'swap',\r\n iconType: 'ion',\r\n disabled: false\r\n },\r\n {\r\n title: 'Savings Solutions',\r\n urlPrefix: '/value-calculator',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'calculator',\r\n iconType: 'ion',\r\n disabled: false\r\n },\r\n {\r\n title: 'Chipload Calculator',\r\n urlPrefix: '/chipload-calculator',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: this.chipLoad,\r\n iconType: 'img',\r\n disabled: false\r\n },\r\n {\r\n title: 'End User Trial Tests',\r\n urlPrefix: '',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n href: this.trialResultsURL,\r\n icon: 'clipboard',\r\n iconType: 'ion',\r\n disabled: false\r\n },\r\n ],\r\n showChildPages: false\r\n },\r\n {\r\n title: 'app.toolHistory',\r\n url: '',\r\n psuedoUrl: '/toolHistory-expandable',\r\n click: ($event) => {\r\n $event.stopPropagation();\r\n return this.expandCollapseChildPages('/toolHistory-expandable');\r\n },\r\n icon: 'list',\r\n iconType: 'ion',\r\n childPages: [\r\n {\r\n title: 'app.bwHistory',\r\n urlPrefix: '/tool-history',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: this.toolsIcon,\r\n iconType: 'img',\r\n disabled: false\r\n },\r\n {\r\n title: 'app.vcHistory',\r\n urlPrefix: '/value-calculator-history',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'calculator',\r\n iconType: 'ion',\r\n disabled: false\r\n },\r\n {\r\n title: 'app.ccrHistory',\r\n urlPrefix: '/competitive-cross-reference-history',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'swap',\r\n iconType: 'ion',\r\n disabled: false\r\n }\r\n ],\r\n showChildPages: false\r\n // disabled: true\r\n },\r\n {\r\n title: 'Marketing',\r\n // url: '/marketing',\r\n url: '',\r\n psuedoUrl: '/marketing-expandable',\r\n click: ($event) => {\r\n $event.stopPropagation();\r\n return this.expandCollapseChildPages('/marketing-expandable');\r\n },\r\n icon: 'albums',\r\n iconType: 'ion',\r\n childPages: [\r\n {\r\n title: 'Saw Information',\r\n urlPrefix: '/saw-information',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'information-circle-outline',\r\n iconType: 'ion',\r\n disabled: false\r\n },\r\n {\r\n title: 'app.training',\r\n urlPrefix: '/help',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'help-circle-outline',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n ],\r\n },\r\n {\r\n title: 'app.help',\r\n url: '/help',\r\n icon: 'help-circle-outline',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'app.support',\r\n url: '/support',\r\n icon: this.supportIcon,\r\n iconType: 'img',\r\n childPages: [],\r\n },\r\n // {\r\n // title: '(Attachments)',\r\n // url: '/list',\r\n // icon: 'list'\r\n // },\r\n // {\r\n // title: 'app.settings',\r\n // url: '/settings/',\r\n // icon: 'settings',\r\n // iconType: 'ion',\r\n // childPages: [],\r\n // }\r\n ];\r\n }\r\n\r\n getEndUserPages() {\r\n return [\r\n {\r\n title: 'app.home',\r\n url: '/product-catalog',\r\n icon: 'home',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'app.tools',\r\n url: '',\r\n psuedoUrl: '/tools-expandable',\r\n click: ($event) => {\r\n $event.stopPropagation();\r\n return this.expandCollapseChildPages('/tools-expandable');\r\n },\r\n icon: this.toolsIcon,\r\n iconType: 'img',\r\n childPages: [\r\n {\r\n title: 'Bladewizards',\r\n urlPrefix: '/bladewizard',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: this.toolsIcon,\r\n iconType: 'img',\r\n disabled: false\r\n },\r\n {\r\n title: 'Competitive Cross Reference',\r\n urlPrefix: '/competitive-cross-reference',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'swap',\r\n iconType: 'ion',\r\n disabled: false\r\n },\r\n {\r\n title: 'Chipload Calculator',\r\n urlPrefix: '/chipload-calculator',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: this.chipLoad,\r\n iconType: 'img',\r\n disabled: false\r\n }\r\n ],\r\n showChildPages: false\r\n },\r\n {\r\n title: 'app.toolHistory',\r\n url: '',\r\n psuedoUrl: '/toolHistory-expandable',\r\n click: ($event) => {\r\n $event.stopPropagation();\r\n return this.expandCollapseChildPages('/toolHistory-expandable');\r\n },\r\n icon: 'list',\r\n iconType: 'ion',\r\n childPages: [\r\n {\r\n title: 'app.bwHistory',\r\n urlPrefix: '/tool-history',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: this.toolsIcon,\r\n iconType: 'img',\r\n disabled: false\r\n },\r\n {\r\n title: 'app.ccrHistory',\r\n urlPrefix: '/competitive-cross-reference-history',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'swap',\r\n iconType: 'ion',\r\n disabled: false\r\n }\r\n ],\r\n showChildPages: false\r\n // disabled: true\r\n },\r\n {\r\n title: 'Distributor Locator',\r\n url: '/distributor-locator',\r\n icon: 'navigate',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'app.help',\r\n url: '/help',\r\n icon: 'help-circle-outline',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'app.support',\r\n url: '/support',\r\n icon: this.supportIcon,\r\n iconType: 'img',\r\n childPages: [],\r\n },\r\n ];\r\n }\r\n\r\n goToOrders() {\r\n if (this.allowOrdersQuotesForCurrentCustomer()) {\r\n this.sharedDataService.setValue(DictKey.OrderType, 1);\r\n this.router.navigateByUrl(`customer/${this.currentCustomer.SalesforceId}/orders`);\r\n }\r\n }\r\n\r\n goToQuotes() {\r\n if (this.allowOrdersQuotesForCurrentCustomer()) {\r\n this.sharedDataService.setValue(DictKey.OrderType, 0);\r\n this.router.navigateByUrl(`customer/${this.currentCustomer.SalesforceId}/orders`);\r\n }\r\n }\r\n\r\n goToDistQuotes() {\r\n const info: PageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo);\r\n if (info && info.BillToNumber) {\r\n this.sharedDataService.setValue(DictKey.OrderType, 0);\r\n this.router.navigateByUrl(`customer/${info.SalesforceId}/orders`);\r\n }\r\n }\r\n\r\n goToDistOrders() {\r\n const info: PageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo);\r\n if (info && info.BillToNumber) {\r\n this.sharedDataService.setValue(DictKey.OrderType, 1);\r\n this.router.navigateByUrl(`customer/${info.SalesforceId}/orders`);\r\n }\r\n }\r\n\r\n getTrialResultsUrl() {\r\n this.trialResultsURL = this.behaviorSubjectService.trialResultsUrlSubject.getValue();\r\n }\r\n\r\n getDistributorPages() {\r\n return [\r\n {\r\n title: 'app.home',\r\n url: '/distributor-home',\r\n icon: 'home',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'My Account',\r\n url: '/my-account',\r\n icon: 'contact',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'Quotes',\r\n click: () => this.goToDistQuotes(),\r\n icon: 'paper',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'Orders',\r\n click: () => this.goToDistOrders(),\r\n icon: 'list-box',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'Buy Again',\r\n url: '/buy-again',\r\n icon: 'card',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'Promotions',\r\n url: '/promotions',\r\n icon: 'megaphone',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'app.tools',\r\n url: '',\r\n psuedoUrl: '/tools-expandable',\r\n click: ($event) => {\r\n $event.stopPropagation();\r\n return this.expandCollapseChildPages('/tools-expandable');\r\n },\r\n icon: this.toolsIcon,\r\n iconType: 'img',\r\n childPages: [\r\n {\r\n title: 'Bladewizards',\r\n urlPrefix: '/bladewizard',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: this.toolsIcon,\r\n iconType: 'img',\r\n disabled: false\r\n },\r\n {\r\n title: 'Competitive Cross Reference',\r\n urlPrefix: '/competitive-cross-reference',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'swap',\r\n iconType: 'ion',\r\n disabled: false\r\n },\r\n {\r\n title: 'Savings Solutions',\r\n urlPrefix: '/value-calculator',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'calculator',\r\n iconType: 'ion',\r\n disabled: false\r\n },\r\n {\r\n title: 'Chipload Calculator',\r\n urlPrefix: '/chipload-calculator',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: this.chipLoad,\r\n iconType: 'img',\r\n disabled: false\r\n },\r\n ],\r\n showChildPages: false\r\n },\r\n {\r\n title: 'app.toolHistory',\r\n url: '',\r\n psuedoUrl: '/toolHistory-expandable',\r\n click: ($event) => {\r\n $event.stopPropagation();\r\n return this.expandCollapseChildPages('/toolHistory-expandable');\r\n },\r\n icon: 'list',\r\n iconType: 'ion',\r\n childPages: [\r\n {\r\n title: 'app.bwHistory',\r\n urlPrefix: '/tool-history',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: this.toolsIcon,\r\n iconType: 'img',\r\n disabled: false\r\n },\r\n {\r\n title: 'app.vcHistory',\r\n urlPrefix: '/value-calculator-history',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'calculator',\r\n iconType: 'ion',\r\n disabled: false\r\n },\r\n {\r\n title: 'app.ccrHistory',\r\n urlPrefix: '/competitive-cross-reference-history',\r\n urlSuffix: '',\r\n urlIdPrefix: '',\r\n urlIdSuffix: '',\r\n icon: 'swap',\r\n iconType: 'ion',\r\n disabled: false\r\n }\r\n ],\r\n showChildPages: false\r\n // disabled: true\r\n },\r\n {\r\n title: 'RGA',\r\n url: '/rgas',\r\n icon: 'return-left',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'app.help',\r\n url: '/help',\r\n icon: 'help-circle-outline',\r\n iconType: 'ion',\r\n childPages: [],\r\n },\r\n {\r\n title: 'Contact Us/Support',\r\n url: '/support',\r\n icon: this.supportIcon,\r\n iconType: 'img',\r\n childPages: [],\r\n }\r\n ];\r\n }\r\n\r\n redirectHome() {\r\n this.sharedService.redirectHome(this.publicURL);\r\n }\r\n\r\n // getRepPages() {\r\n // return [\r\n // {\r\n // title: 'app.home',\r\n // url: '/home',\r\n // icon: 'home',\r\n // iconType: 'ion',\r\n // childPages: [],\r\n // },\r\n // // {\r\n // // title: 'app.search',\r\n // // url: '/search',\r\n // // icon: 'search',\r\n // // iconType: 'ion',\r\n // // childPages: [],\r\n // // },\r\n // {\r\n // title: 'app.tasks',\r\n // url: '/tasks',\r\n // icon: this.iconFolder + '/tasks.svg',\r\n // iconType: 'img',\r\n // notifications: null,\r\n // notificationType: this.notificationTypes.Task,\r\n // childPages: [],\r\n // },\r\n // {\r\n // title: 'app.customers',\r\n // url: '/customers',\r\n // icon: this.iconFolder + '/customers.svg',\r\n // iconType: 'img',\r\n // childPages: [\r\n // {\r\n // title: 'Interactions',\r\n // urlPrefix: '/customer',\r\n // urlSuffix: '/interactions',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: this.iconFolder + '/interactions.svg',\r\n // iconType: 'img',\r\n // disabled: true\r\n // },\r\n // {\r\n // title: 'Orders',\r\n // urlPrefix: '/customer',\r\n // urlSuffix: '/orders',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: this.iconFolder + '/orders.svg',\r\n // iconType: 'img',\r\n // disabled: true\r\n // },\r\n // // {\r\n // // title: 'Sales',\r\n // // urlPrefix: '/customer',\r\n // // urlSuffix: '/sales',\r\n // // urlIdPrefix: '',\r\n // // urlIdSuffix: '',\r\n // // icon: this.iconFolder + '/sales.svg',\r\n // // iconType: 'img',\r\n // // disabled: true\r\n // // },\r\n // {\r\n // title: 'RGA',\r\n // urlPrefix: '/customer',\r\n // urlSuffix: '/rgas',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: this.iconFolder + '/rga.svg',\r\n // iconType: 'img',\r\n // disabled: true\r\n // },\r\n // {\r\n // title: 'Notes',\r\n // urlPrefix: '/customer',\r\n // urlSuffix: '/notes',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: this.iconFolder + '/notes.svg',\r\n // iconType: 'img',\r\n // disabled: true\r\n // }\r\n // ],\r\n // showChildPages: false\r\n // },\r\n // {\r\n // title: 'app.sales',\r\n // url: '/sales',\r\n // icon: this.iconFolder + '/sales.svg',\r\n // iconType: 'img',\r\n // childPages: [],\r\n // },\r\n // {\r\n // title: 'app.tools',\r\n // url: '',\r\n // psuedoUrl: '/tools-expandable',\r\n // click: ($event) => {\r\n // $event.stopPropagation();\r\n // return this.expandCollapseChildPages('/tools-expandable');\r\n // },\r\n // icon: this.iconFolder + '/tools.svg',\r\n // iconType: 'img',\r\n // childPages: [\r\n // {\r\n // title: 'Bladewizards',\r\n // urlPrefix: '/bladewizard',\r\n // urlSuffix: '',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: this.iconFolder + '/tools.svg',\r\n // iconType: 'img',\r\n // disabled: false\r\n // },\r\n // // {\r\n // // title: 'Trial Results',\r\n // // urlPrefix: '/trial-results',\r\n // // urlSuffix: '',\r\n // // urlIdPrefix: '',\r\n // // urlIdSuffix: '',\r\n // // icon: 'flask',\r\n // // iconType: 'ion',\r\n // // disabled: false\r\n // // },\r\n // // {\r\n // // title: 'Selling Tips',\r\n // // urlPrefix: '/selling-tips',\r\n // // urlSuffix: '',\r\n // // urlIdPrefix: '',\r\n // // urlIdSuffix: '',\r\n // // icon: 'bulb',\r\n // // iconType: 'ion',\r\n // // disabled: false\r\n // // },\r\n // // {\r\n // // title: 'Saw Information',\r\n // // urlPrefix: '/saw-info',\r\n // // urlSuffix: '',\r\n // // urlIdPrefix: '',\r\n // // urlIdSuffix: '',\r\n // // icon: 'information-circle-outline',\r\n // // iconType: 'ion',\r\n // // disabled: false\r\n // // },\r\n // {\r\n // title: 'Competitive Cross Reference',\r\n // urlPrefix: '/competitive-cross-reference',\r\n // urlSuffix: '',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: 'swap',\r\n // iconType: 'ion',\r\n // disabled: false\r\n // },\r\n // {\r\n // title: 'Savings Solutions',\r\n // urlPrefix: '/value-calculator',\r\n // urlSuffix: '',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: 'calculator',\r\n // iconType: 'ion',\r\n // disabled: false\r\n // },\r\n // ],\r\n // showChildPages: false\r\n // },\r\n // {\r\n // title: 'app.toolHistory',\r\n // url: '',\r\n // psuedoUrl: '/toolHistory-expandable',\r\n // click: ($event) => {\r\n // $event.stopPropagation();\r\n // return this.expandCollapseChildPages('/toolHistory-expandable');\r\n // },\r\n // icon: 'list',\r\n // iconType: 'ion',\r\n // childPages: [\r\n // {\r\n // title: 'app.bwHistory',\r\n // urlPrefix: '/tool-history',\r\n // urlSuffix: '',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: this.iconFolder + '/tools.svg',\r\n // iconType: 'img',\r\n // disabled: false\r\n // },\r\n // {\r\n // title: 'app.vcHistory',\r\n // urlPrefix: '/value-calculator-history',\r\n // urlSuffix: '',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: 'calculator',\r\n // iconType: 'ion',\r\n // disabled: false\r\n // },\r\n // ],\r\n // showChildPages: false\r\n // // disabled: true\r\n // },\r\n // {\r\n // title: 'Marketing',\r\n // // url: '/marketing',\r\n // url: '',\r\n // psuedoUrl: '/marketing-expandable',\r\n // click: ($event) => {\r\n // $event.stopPropagation();\r\n // return this.expandCollapseChildPages('/marketing-expandable');\r\n // },\r\n // icon: 'albums',\r\n // iconType: 'ion',\r\n // childPages: [\r\n // {\r\n // title: 'Saw Information',\r\n // urlPrefix: '/saw-information',\r\n // urlSuffix: '',\r\n // urlIdPrefix: '',\r\n // urlIdSuffix: '',\r\n // icon: 'information-circle-outline',\r\n // iconType: 'ion',\r\n // disabled: false\r\n // }\r\n // ],\r\n // },\r\n // {\r\n // title: 'app.support',\r\n // url: '/support',\r\n // icon: this.iconFolder + '/support.svg',\r\n // iconType: 'img',\r\n // childPages: [],\r\n // },\r\n // // {\r\n // // title: '(Attachments)',\r\n // // url: '/list',\r\n // // icon: 'list'\r\n // // },\r\n // {\r\n // title: 'app.settings',\r\n // url: '/settings/',\r\n // icon: 'settings',\r\n // iconType: 'ion',\r\n // childPages: [],\r\n // }\r\n // ];\r\n // }\r\n\r\n}\r\n","import { NgModule, APP_INITIALIZER } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { RouteReuseStrategy } from '@angular/router';\r\nimport { TranslateModule, TranslateLoader} from '@ngx-translate/core';\r\nimport { TranslateHttpLoader} from '@ngx-translate/http-loader';\r\nimport { HttpClientModule, HttpClient, HTTP_INTERCEPTORS, HttpClientJsonpModule } from '@angular/common/http';\r\nimport { DatePipe, TitleCasePipe, CurrencyPipe, DecimalPipe } from '@angular/common';\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\nimport { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { AppConfigService } from './services/app-config.service';\r\nimport { AddEventModalPageModule } from './pages/modals/add-event-modal/add-event-modal.module';\r\nimport { IonicSelectableModule } from 'ionic-selectable';\r\nimport { TokenInterceptor } from './token.interceptor';\r\nimport { AddTaskPageModule } from './pages/modals/add-task/add-task.module';\r\nimport { CreditDetailsPageModule } from './pages/modals/credit-details/credit-details.module';\r\nimport { AddCustomerPageModule } from './pages/modals/add-customer/add-customer.module';\r\nimport { AddCallPageModule } from './pages/modals/add-call/add-call.module';\r\nimport { AddContactPageModule } from './pages/modals/add-contact/add-contact.module';\r\nimport { AddCustomerNotePageModule } from './pages/modals/add-customer-note/add-customer-note.module';\r\nimport { FiletestPageModule } from './pages/filetest/filetest.module';\r\nimport { CrossoverProductDisplayPageModule } from './pages/modals/crossover-product-display/crossover-product-display.module';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\nimport { environment } from '../environments/environment';\r\nimport { PwaService } from './services/pwa-service.service';\r\nimport { ViewEventCustomersModalModule } from './pages/modals/view-event-customers-modal/view-event-customers-modal.module';\r\nimport { GlobalMethodsService } from './global-methods.service';\r\nimport { Calendar } from '@fullcalendar/core';\r\nimport { PageService } from './services/page.service';\r\nimport { AuthGuard } from './auth.guard';\r\nimport { CartDropdownComponent } from './secondary-components/cart-dropdown/cart-dropdown.component';\r\nimport { ShoppingCartPageModule } from './pages/modals/shopping-cart/shopping-cart.module';\r\nimport { ShoppingCartEndUserPageModule } from './pages/modals/shopping-cart-end-user/shopping-cart-end-user.module';\r\nimport { LayoutModule } from '@angular/cdk/layout';\r\nimport { SharedDataService } from './services/shared-data.service';\r\nimport { ContactUsModalPageModule } from './pages/modals/contact-us-modal/contact-us-modal.module';\r\nimport { ProfileDropdownComponent } from './secondary-components/header/profile-dropdown/profile-dropdown.component';\r\nimport { TrackingInfoPageModule } from './pages/modals/tracking-info/tracking-info.module';\r\nimport { SendInvoiceEmailPageModule } from './pages/modals/send-invoice-email/send-invoice-email.module';\r\nimport { AddCustomerValueCalculatorPageModule } from './pages/modals/add-customer-value-calculator/add-customer-value-calculator.module';\r\nimport { AddEndUserMachinePageModule } from './pages/modals/add-end-user-machine/add-end-user-machine.module';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { DistributorSelectorPageModule } from './pages/modals/distributor-selector/distributor-selector.module';\r\n\r\nexport function createTranslateLoader(http: HttpClient) {\r\n // the script will get named with a hash on prod builds.\r\n const scripts = document.getElementsByTagName('script');\r\n const thisOne = scripts[scripts.length - 1].src || 'default.js';\r\n const fileName = thisOne.split('/').pop();\r\n const withoutExtension = fileName.split('.')[0];\r\n return new TranslateHttpLoader(http, './assets/i18n/', `.json?v=${withoutExtension}`);\r\n}\r\n\r\n// We need a factory since localStorage is not available at AOT build time\r\nexport function storageFactory(): OAuthStorage {\r\n return localStorage;\r\n}\r\n\r\nconst appInitializerFn = (appConfig: AppConfigService) => {\r\n return () => {\r\n return appConfig.loadAppConfig();\r\n };\r\n };\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ],\r\n entryComponents: [\r\n ProfileDropdownComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n SharedModule,\r\n IonicModule.forRoot(),\r\n OAuthModule.forRoot(),\r\n AppRoutingModule,\r\n HttpClientModule,\r\n HttpClientJsonpModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (createTranslateLoader),\r\n deps: [HttpClient]\r\n }\r\n }),\r\n TrackingInfoPageModule,\r\n AddEventModalPageModule,\r\n AddEndUserMachinePageModule,\r\n ShoppingCartPageModule,\r\n ShoppingCartEndUserPageModule,\r\n DistributorSelectorPageModule,\r\n ContactUsModalPageModule,\r\n SendInvoiceEmailPageModule,\r\n ViewEventCustomersModalModule,\r\n AddTaskPageModule,\r\n AddCustomerNotePageModule,\r\n CreditDetailsPageModule,\r\n AddCustomerPageModule,\r\n AddCustomerValueCalculatorPageModule,\r\n AddCallPageModule,\r\n IonicSelectableModule,\r\n AddContactPageModule,\r\n FiletestPageModule,\r\n CrossoverProductDisplayPageModule,\r\n LayoutModule,\r\n ServiceWorkerModule.register('ngsw-worker.js', {\r\n enabled: environment.production\r\n }),\r\n GoogleMapsModule,\r\n ],\r\n providers: [\r\n AppConfigService,\r\n AuthGuard,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: appInitializerFn,\r\n multi: true,\r\n deps: [AppConfigService],\r\n },\r\n StatusBar,\r\n SplashScreen,\r\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },\r\n DatePipe,\r\n SharedDataService,\r\n DecimalPipe,\r\n TitleCasePipe,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: TokenInterceptor,\r\n multi: true\r\n },\r\n PwaService,\r\n GlobalMethodsService,\r\n CurrencyPipe,\r\n PageService,\r\n { provide: OAuthStorage, useFactory: storageFactory }\r\n ],\r\n\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { SettingsService } from './services/settings.service';\r\nimport { MenuService } from './services/menu.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private settingsService: SettingsService,\r\n private router: Router,\r\n private menuService: MenuService\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot)\r\n : Observable | Promise | boolean {\r\n // // Extra condition for home page since guard interferes with IS3 redirects\r\n // if (window.location.pathname.includes('home') && this.menuService.isPublicURL()) {\r\n // return false;\r\n // } else {\r\n // if (!this.settingsService.isLoggedIn())\r\n // {\r\n // // Identity server may need to do some redirects on this before it is recognized as the user being logged in\r\n // return false;\r\n // }\r\n \r\n // else if (this.settingsService.isLoggedIn()) {\r\n // const isProfileComplete = this.settingsService.isProfileComplete();\r\n // const isProfileCompletePage = route && route.routeConfig && route.routeConfig.path ? route.routeConfig.path.includes('complete-user-profile') : false;\r\n // if (!isProfileComplete && !isProfileCompletePage) {\r\n // this.router.navigate(['/complete-user-profile']);\r\n // return false;\r\n // }\r\n // } else if (!this.settingsService.isLoggedIn()) {\r\n // // this.router.navigate(['']);\r\n // return false;\r\n // }\r\n // }\r\n\r\n // Check allowed role\r\n // let allowRoles = route.data[\"allowRoles\"] as Array;\r\n // if (allowRoles && !(allowRoles.indexOf(this.settingsService.getUserSettings().) >= 0)) {\r\n // return false;\r\n // }\r\n\r\n\r\n // // Check denied role\r\n // let denyRoles = route.data[\"denyRoles\"] as Array;\r\n // if (denyRoles && denyRoles.indexOf(this.settingsService.getUserSettings().) >= 0) {\r\n // return false;\r\n // }\r\n\r\n return true;\r\n }\r\n}","export class AutoCompleteOptions {\r\n public animated:boolean = false;\r\n public color:string|null = null;\r\n public autocomplete:'on'|'off' = 'off';\r\n public autocorrect:'on'|'off' = 'off';\r\n public cancelButtonIcon:string = 'arrow-round-back';\r\n public cancelButtonText:string = 'Cancel';\r\n public clearIcon:string = 'close';\r\n public clearInput:boolean = false;\r\n public clearOnEdit:boolean = false;\r\n public debounce:number = 250;\r\n public mode:'ios'|'md' = 'md';\r\n public noItems:string = '';\r\n public placeholder:string = 'Search';\r\n public searchIcon:string = 'search';\r\n public showCancelButton:boolean = false;\r\n public spellcheck:'on'|'off' = 'off';\r\n public type:string = 'search';\r\n public value:string = '';\r\n \r\n constructor() {\r\n \r\n }\r\n }\r\n ","module.exports = \"
\\r\\n
\\r\\n \\r\\n {{ getLabel(item) }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
    0 && showList\\\"\\r\\n [ngStyle]=\\\"getStyle()\\\" class=\\\"drop-down-list-pad\\\">\\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n\\r\\n

{{ options.noItems }}

\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5zY3NzIn0= */\"","import {Component, Input, Output, EventEmitter, TemplateRef, ViewChild, HostListener, ElementRef} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\n\r\nimport {Platform} from '@ionic/angular';\r\n\r\nimport {from, noop, Observable, Subject} from 'rxjs';\r\nimport {finalize} from 'rxjs/operators';\r\n\r\nimport {AutoCompleteOptions} from './auto-complete-options.model';\r\n\r\n@Component({\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: AutoCompleteComponent,\r\n multi: true\r\n }\r\n ],\r\n selector: 'app-auto-complete',\r\n templateUrl: './auto-complete.component.html',\r\n styleUrls: ['./auto-complete.component.scss'],\r\n})\r\nexport class AutoCompleteComponent implements ControlValueAccessor {\r\n // I got this from ionic4-auto-complete npm package. There was an open issue with ng build aot\r\n // so I just copied the code into our own build structure so the build would pass.\r\n\r\n @Input() public alwaysShowList: boolean;\r\n @Input() public dataProvider: any;\r\n @Input() public disabled = false;\r\n @Input() public exclude: any[] = [];\r\n @Input() public hideListOnSelection = true;\r\n @Input() public keyword: string;\r\n @Input() public location = 'bottom'; // 'auto';\r\n @Input() public multi = false;\r\n @Input() public options: AutoCompleteOptions = new AutoCompleteOptions();\r\n @Input() public removeButtonClasses = '';\r\n @Input() public removeButtonColor = 'primary';\r\n @Input() public removeButtonIcon = 'close';\r\n @Input() public removeButtonSlot = 'end';\r\n @Input() public removeDuplicateSuggestions = true;\r\n @Input() public showResultsFirst: boolean;\r\n @Input() public template: TemplateRef;\r\n @Input() public useIonInput: boolean;\r\n\r\n @Input()\r\n // @ts-ignore\r\n get model() {\r\n let model = this.selected;\r\n if (!this.multi && typeof this.selected.length !== 'undefined') {\r\n if (this.selected.length === 0) {\r\n model = null;\r\n } else {\r\n model = this.selected[0];\r\n }\r\n }\r\n\r\n return model;\r\n }\r\n\r\n // @ts-ignore\r\n set model(selected) {\r\n if (typeof selected !== 'undefined') {\r\n this.selected = selected;\r\n\r\n this.keyword = this.getLabel(selected);\r\n }\r\n }\r\n\r\n @Output() public modelChanged: EventEmitter;\r\n @Output() public autoFocus: EventEmitter;\r\n @Output() public autoBlur: EventEmitter;\r\n @Output() public ionAutoInput: EventEmitter;\r\n @Output() public itemsChange: EventEmitter;\r\n @Output() public itemsHidden: EventEmitter;\r\n @Output() public itemRemoved: EventEmitter;\r\n @Output() public itemSelected: EventEmitter;\r\n @Output() public itemsShown: EventEmitter;\r\n @Output() public customGetItemsCompleted: EventEmitter;\r\n\r\n @ViewChild(\r\n 'searchbarElem',\r\n {\r\n read: ElementRef\r\n }\r\n )\r\n private searchbarElem: ElementRef;\r\n\r\n @ViewChild(\r\n 'inputElem',\r\n {\r\n read: ElementRef\r\n }\r\n )\r\n private inputElem: ElementRef;\r\n\r\n private onTouchedCallback: () => void = noop;\r\n private onChangeCallback: (_: any) => void = noop;\r\n\r\n public defaultOpts: AutoCompleteOptions;\r\n public isLoading = false;\r\n public formValue: any;\r\n public selected: any[];\r\n public suggestions: any[];\r\n public promise;\r\n\r\n // @ts-ignore\r\n public get showList(): boolean {\r\n return this._showList;\r\n }\r\n\r\n // @ts-ignore\r\n public set showList(value: boolean) {\r\n if (this._showList === value) {\r\n return;\r\n }\r\n\r\n this._showList = value;\r\n this.showListChanged = true;\r\n }\r\n\r\n private _showList: boolean;\r\n\r\n private selection: any;\r\n private showListChanged = false;\r\n\r\n /**\r\n * Create a new instance\r\n *\r\n * @param platform\r\n */\r\n public constructor(\r\n private platform: Platform\r\n ) {\r\n this.keyword = '';\r\n this.suggestions = [];\r\n this._showList = false;\r\n this.modelChanged = new EventEmitter();\r\n this.itemsChange = new EventEmitter();\r\n this.itemRemoved = new EventEmitter();\r\n this.itemSelected = new EventEmitter();\r\n this.itemsShown = new EventEmitter();\r\n this.itemsHidden = new EventEmitter();\r\n this.ionAutoInput = new EventEmitter();\r\n this.autoFocus = new EventEmitter();\r\n this.autoBlur = new EventEmitter();\r\n this.options = new AutoCompleteOptions();\r\n this.customGetItemsCompleted = new EventEmitter();\r\n\r\n this.defaultOpts = new AutoCompleteOptions();\r\n this.defaultOpts.clearIcon = this.platform.is('ios') ? 'close-circle' : 'close';\r\n this.defaultOpts.clearIcon = this.platform.is('ios') ? 'ios' : 'md';\r\n\r\n this.selected = [];\r\n }\r\n\r\n /**\r\n *\r\n */\r\n ngAfterViewChecked(): void {\r\n if (this.showListChanged) {\r\n this.showListChanged = false;\r\n this.showList ? this.itemsShown.emit() : this.itemsHidden.emit();\r\n }\r\n }\r\n\r\n /**\r\n * Handle document click\r\n *\r\n * @param event\r\n *\r\n * @private\r\n */\r\n @HostListener('document:click', ['$event'])\r\n private _documentClickHandler(event: Event): void {\r\n if (\r\n (this.searchbarElem && this.searchbarElem.nativeElement && !this.searchbarElem.nativeElement.contains(event.target))\r\n ||\r\n (!this.inputElem && this.inputElem.nativeElement && this.inputElem.nativeElement.contains(event.target))\r\n ) {\r\n this.hideItemList();\r\n }\r\n }\r\n\r\n /**\r\n * Get value from form\r\n *\r\n * @param selection\r\n *\r\n * @private\r\n */\r\n private _getFormValue(selection: any): any {\r\n if (selection == null) {\r\n return null;\r\n }\r\n const attr = this.dataProvider.formValueAttribute == null ? this.dataProvider.labelAttribute : this.dataProvider.formValueAttribute;\r\n if (typeof selection === 'object' && attr) {\r\n return selection[attr];\r\n }\r\n return selection;\r\n }\r\n\r\n /**\r\n * Get element's position on screen\r\n *\r\n * @param el\r\n *\r\n * @private\r\n */\r\n private _getPosition(el): any {\r\n let xPos = 0;\r\n let yPos = 0;\r\n\r\n while (el) {\r\n if (el.tagName === 'BODY') {\r\n const xScroll = el.scrollLeft || document.documentElement.scrollLeft;\r\n const yScroll = el.scrollTop || document.documentElement.scrollTop;\r\n\r\n xPos += (el.offsetLeft - xScroll + el.clientLeft);\r\n yPos += (el.offsetTop - yScroll + el.clientTop);\r\n } else {\r\n xPos += (el.offsetLeft - el.scrollLeft + el.clientLeft);\r\n yPos += (el.offsetTop - el.scrollTop + el.clientTop);\r\n }\r\n\r\n el = el.offsetParent;\r\n }\r\n return {\r\n x: xPos,\r\n y: yPos\r\n };\r\n }\r\n\r\n /**\r\n * Clear current input value\r\n *\r\n * @param hideItemList\r\n */\r\n public clearValue(hideItemList: boolean = false): void {\r\n this.keyword = '';\r\n this.selection = null;\r\n this.formValue = null;\r\n\r\n if (hideItemList) {\r\n this.hideItemList();\r\n }\r\n\r\n return;\r\n }\r\n\r\n onIonClear(showItemList: boolean) {\r\n this.clearValue(true);\r\n this.selected = null;\r\n this.setValue(null);\r\n setTimeout(() => {\r\n this.modelChanged.emit();\r\n this.getItemsCustom(showItemList)\r\n // this.showItemList();\r\n }, 1000);\r\n }\r\n\r\n /**\r\n * Get items for auto-complete\r\n *\r\n * @param event\r\n */\r\n public getItems(event?): void {\r\n if (this.promise) {\r\n clearTimeout(this.promise);\r\n }\r\n\r\n this.promise = setTimeout(\r\n () => {\r\n if (event) {\r\n this.keyword = event.detail.target.value;\r\n }\r\n\r\n let result;\r\n\r\n if (this.showResultsFirst && this.keyword.trim() === '') {\r\n this.keyword = '';\r\n }\r\n\r\n result = (typeof this.dataProvider === 'function') ?\r\n this.dataProvider(this.keyword) : this.dataProvider.getResults(this.keyword);\r\n\r\n if (result instanceof Subject) {\r\n result = result.asObservable();\r\n }\r\n\r\n if (result instanceof Promise) {\r\n result = from(result);\r\n }\r\n\r\n if (result instanceof Observable) {\r\n this.isLoading = true;\r\n\r\n result.pipe(\r\n finalize(\r\n () => {\r\n this.isLoading = false;\r\n }\r\n )\r\n ).subscribe(\r\n (results: any[]) => {\r\n this.setSuggestions(results, true);\r\n },\r\n (error: any) => console.error(error)\r\n )\r\n ;\r\n } else {\r\n this.setSuggestions(result, true);\r\n }\r\n\r\n this.ionAutoInput.emit(this.keyword);\r\n },\r\n this.options.debounce\r\n );\r\n }\r\n\r\n /**\r\n * Get items for auto-complete\r\n *\r\n * @param event\r\n */\r\n public getItemsCustom(showItemList: boolean, event?): void {\r\n if (this.promise) {\r\n clearTimeout(this.promise);\r\n }\r\n\r\n this.promise = setTimeout(\r\n () => {\r\n if (event) {\r\n this.keyword = event.detail.target.value;\r\n }\r\n\r\n let result;\r\n\r\n if (this.showResultsFirst && this.keyword.trim() === '') {\r\n this.keyword = '';\r\n }\r\n\r\n result = (typeof this.dataProvider === 'function') ?\r\n this.dataProvider(this.keyword) : this.dataProvider.getResults(this.keyword);\r\n\r\n if (result instanceof Subject) {\r\n result = result.asObservable();\r\n }\r\n\r\n if (result instanceof Promise) {\r\n result = from(result);\r\n }\r\n\r\n if (result instanceof Observable) {\r\n this.isLoading = true;\r\n\r\n result.pipe(\r\n finalize(\r\n () => {\r\n this.isLoading = false;\r\n }\r\n )\r\n ).subscribe(\r\n (results: any[]) => {\r\n this.setSuggestions(results, showItemList);\r\n },\r\n (error: any) => console.error(error)\r\n )\r\n ;\r\n } else {\r\n this.setSuggestions(result, showItemList);\r\n }\r\n\r\n this.ionAutoInput.emit(this.keyword);\r\n // Extra render time\r\n setTimeout(() => {\r\n this.customGetItemsCompleted.emit(true);\r\n }, 250);\r\n },\r\n this.options.debounce\r\n );\r\n }\r\n\r\n /**\r\n * Get an item's label\r\n *\r\n * @param selection\r\n */\r\n public getLabel(selection: any): string {\r\n if (selection == null) {\r\n return '';\r\n }\r\n const attr = this.dataProvider.labelAttribute;\r\n let value = selection;\r\n if (this.dataProvider.getItemLabel) {\r\n value = this.dataProvider.getItemLabel(value);\r\n }\r\n if (typeof value === 'object' && attr) {\r\n return value[attr] || '';\r\n }\r\n return value || '';\r\n }\r\n\r\n /**\r\n * Get current selection\r\n */\r\n public getSelection(): any|any[] {\r\n if (this.multi) {\r\n return this.selection;\r\n } else {\r\n return this.selected;\r\n }\r\n }\r\n\r\n /**\r\n * Get menu style\r\n */\r\n public getStyle(): any {\r\n let location = this.location;\r\n if (this.location === 'auto') {\r\n const elementY = this._getPosition(\r\n this.searchbarElem.nativeElement\r\n ).y;\r\n\r\n const windowY = window.innerHeight;\r\n\r\n if (elementY > windowY - elementY) {\r\n location = 'top';\r\n } else {\r\n location = 'bottom';\r\n }\r\n }\r\n\r\n if (location === 'bottom') {\r\n return {};\r\n } else {\r\n return {\r\n 'bottom': '37px'\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Get current input value\r\n */\r\n public getValue(): any {\r\n return this.formValue;\r\n }\r\n\r\n /**\r\n * Handle tap\r\n *\r\n * @param event\r\n */\r\n public handleTap(event): void {\r\n if (this.showResultsFirst || this.keyword.length > 0) {\r\n this.getItems();\r\n }\r\n }\r\n\r\n /**\r\n * Handle tap when selecting an item\r\n *\r\n * @param $event\r\n * @param suggestion\r\n */\r\n public handleSelectTap($event, suggestion: any): boolean {\r\n this.selectItem(suggestion);\r\n\r\n if ($event.srcEvent) {\r\n if ($event.srcEvent.stopPropagation) {\r\n $event.srcEvent.stopPropagation();\r\n }\r\n if ($event.srcEvent.preventDefault) {\r\n $event.srcEvent.preventDefault();\r\n }\r\n } else if ($event.preventDefault) {\r\n $event.preventDefault();\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Hide item list\r\n */\r\n public hideItemList(): void {\r\n this.showList = this.alwaysShowList;\r\n }\r\n\r\n /**\r\n * Fired when the input focused\r\n */\r\n onFocus(): void {\r\n this.getItems();\r\n\r\n this.autoFocus.emit();\r\n }\r\n\r\n /**\r\n * Fired when the input focused\r\n */\r\n onBlur(): void {\r\n this.autoBlur.emit();\r\n }\r\n\r\n /**\r\n * Register onChangeCallback\r\n *\r\n * @param fn\r\n */\r\n public registerOnChange(fn: any): void {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n /**\r\n * Register onTouchedCallback\r\n *\r\n * @param fn\r\n */\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n /**\r\n * Remove already selected suggestions\r\n *\r\n * @param suggestions\r\n */\r\n public removeDuplicates(suggestions: any[]): any[] {\r\n const selectedCount = this.selected ? this.selected.length : 0;\r\n\r\n const suggestionCount = suggestions.length;\r\n\r\n for (let i = 0; i < selectedCount; i++) {\r\n const selectedLabel = this.getLabel(\r\n this.selected[i]\r\n );\r\n\r\n for (let j = 0; j < suggestionCount; j++) {\r\n const suggestedLabel = this.getLabel(\r\n suggestions[j]\r\n );\r\n\r\n if (selectedLabel === suggestedLabel) {\r\n suggestions.splice(j, 1);\r\n }\r\n }\r\n }\r\n\r\n return suggestions;\r\n }\r\n\r\n public removeExcluded(suggestions: any[]): any[] {\r\n const excludedCount = this.exclude.length;\r\n const suggestionCount = this.suggestions.length;\r\n\r\n for (let i = 0; i < excludedCount; i++) {\r\n const exclude = this.exclude[i];\r\n\r\n const excludeLabel = this.getLabel(exclude);\r\n\r\n for (let j = 0; j < suggestionCount; j++) {\r\n const suggestedLabel = this.getLabel(\r\n suggestions[j]\r\n );\r\n\r\n if (excludeLabel === suggestedLabel) {\r\n suggestions.splice(j, 1);\r\n }\r\n }\r\n }\r\n\r\n return suggestions;\r\n }\r\n\r\n /**\r\n * Remove item from selected\r\n *\r\n * @param selection\r\n * @param notify?\r\n */\r\n public removeItem(selection: any, notify?: boolean): void {\r\n const count = this.selected ? this.selected.length : 0;\r\n\r\n for (let i = 0; i < count; i++) {\r\n const item = this.selected[i];\r\n\r\n const selectedLabel = this.getLabel(selection);\r\n const itemLabel = this.getLabel(item);\r\n\r\n if (selectedLabel === itemLabel) {\r\n this.selected.splice(i, 1);\r\n }\r\n }\r\n\r\n notify = typeof notify === 'undefined' ? true : notify;\r\n\r\n if (notify) {\r\n this.itemRemoved.emit(selection);\r\n this.itemsChange.emit(this.selected);\r\n }\r\n }\r\n\r\n /**\r\n * Select item from list\r\n *\r\n * @param selection\r\n **/\r\n public selectItem(selection: any): void {\r\n this.keyword = this.getLabel(selection);\r\n this.formValue = this._getFormValue(selection);\r\n this.hideItemList();\r\n\r\n this.updateModel(this.formValue);\r\n\r\n if (this.hideListOnSelection) {\r\n this.hideItemList();\r\n }\r\n\r\n if (this.multi) {\r\n this.clearValue();\r\n\r\n this.selected.push(selection);\r\n this.itemsChange.emit(this.selected);\r\n } else {\r\n this.selection = selection;\r\n\r\n this.selected = [selection];\r\n this.itemsChange.emit(selection);\r\n }\r\n\r\n this.itemSelected.emit(selection);\r\n }\r\n\r\n /**\r\n * Set focus of searchbar\r\n */\r\n public setFocus(): void {\r\n if (this.searchbarElem) {\r\n this.searchbarElem.nativeElement.setFocus();\r\n }\r\n }\r\n\r\n /**\r\n * Set suggestions\r\n *\r\n * @param suggestions\r\n */\r\n public setSuggestions(suggestions, showList): void {\r\n if (this.removeDuplicateSuggestions) {\r\n suggestions = this.removeDuplicates(suggestions);\r\n suggestions = this.removeExcluded(suggestions);\r\n }\r\n\r\n\r\n this.suggestions = suggestions;\r\n\r\n if (showList) {\r\n this.showItemList();\r\n }\r\n }\r\n\r\n /**\r\n * Set current input value\r\n *\r\n * @param selection\r\n */\r\n public setValue(selection: any): void {\r\n this.formValue = this._getFormValue(selection);\r\n this.keyword = this.getLabel(selection);\r\n return;\r\n }\r\n\r\n /**\r\n * Show item list\r\n */\r\n public showItemList(): void {\r\n this.showList = true;\r\n }\r\n\r\n /**\r\n * Update the model\r\n */\r\n public updateModel(enteredText: string): void {\r\n if (enteredText !== this.formValue) {\r\n this.formValue = enteredText;\r\n\r\n this.selected = this.multi ? [] : null;\r\n }\r\n\r\n this.onChangeCallback(this.formValue);\r\n this.modelChanged.emit(this.selected);\r\n }\r\n\r\n /**\r\n * Write value\r\n *\r\n * @param value\r\n */\r\n public writeValue(value: any): void {\r\n if (value !== this.selection) {\r\n this.selection = value || null;\r\n this.formValue = this._getFormValue(this.selection);\r\n this.keyword = this.getLabel(this.selection);\r\n }\r\n }\r\n}\r\n\r\n\r\n","module.exports = \"\\r\\n{{(selectedResult?.BreakIn)}}\"","module.exports = \"span {\\n font-weight: bold; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ibGFkZS13aXphcmQvYnJlYWstaW4vQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxjb21wb25lbnRzXFxibGFkZS13aXphcmRcXGJyZWFrLWluXFxicmVhay1pbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFnQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9ibGFkZS13aXphcmQvYnJlYWstaW4vYnJlYWstaW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJzcGFuIHtcclxuICAgIGZvbnQtd2VpZ2h0OmJvbGQ7XHJcbn0iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { BladeSearchResult } from 'src/app/models/BladeSearchResult';\r\n\r\n@Component({\r\n selector: 'app-break-in',\r\n templateUrl: './break-in.component.html',\r\n styleUrls: ['./break-in.component.scss'],\r\n})\r\nexport class BreakInComponent implements OnInit {\r\n\r\n @Input() selectedResult: BladeSearchResult;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n tools.units\\r\\n *No units selected\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n shared.imperial\\r\\n \\r\\n \\r\\n \\r\\n shared.metric\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYmxhZGV3aXphcmQtY2FyZHMvYmxhZGUtdW5pdC1jYXJkL2JsYWRlLXVuaXQtY2FyZC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { UnitType } from 'src/app/models/enums/UnitType';\r\n\r\n@Component({\r\n selector: 'app-blade-unit-card',\r\n templateUrl: './blade-unit-card.component.html',\r\n styleUrls: [\r\n './blade-unit-card.component.scss',\r\n '../../../pages/bladewizard/bladewizard.page.scss'\r\n ]\r\n})\r\nexport class BladeUnitCardComponent implements OnInit {\r\n @Input() generalInfo: FormGroup;\r\n @Output() onChangeUnitEmitter = new EventEmitter();\r\n\r\n public UnitType = UnitType;\r\n submitted = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n onChangeUnit() {\r\n this.onChangeUnitEmitter.emit('');\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n End User\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Distributor\\r\\n \\r\\n \\r\\n End User\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
0\\\" style=\\\"width: 100%; text-align:center\\\">\\r\\n
\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n {{customer.Name + ' ' + customerAdditionalInfo(customer)}}\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY3VzdG9tZXItc2VhcmNoL2N1c3RvbWVyLXNlYXJjaC5jb21wb25lbnQuc2NzcyJ9 */\"","import { AfterContentChecked, AfterViewChecked, AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\n\r\nimport { ModalController } from '@ionic/angular';\r\n\r\nimport { AddCustomerPage } from 'src/app/pages/modals/add-customer/add-customer.page';\r\nimport { CustomerListItem } from 'src/app/models/CustomerListItem';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { CustomerType } from 'src/app/models/enums/CustomerType';\r\nimport { DictKey, SharedDataService } from 'src/app/services/shared-data.service';\r\nimport { SettingsService } from 'src/app/services/settings.service';\r\nimport { PageInfo } from 'src/app/models/PageInfo';\r\nimport { CustomerBasicProperties } from 'src/app/models/CustomerBasicProperties';\r\nimport { AddCustomerValueCalculatorPage } from 'src/app/pages/modals/add-customer-value-calculator/add-customer-value-calculator.page';\r\n\r\n@Component({\r\n selector: 'app-customer-search',\r\n templateUrl: './customer-search.component.html',\r\n styleUrls: ['./customer-search.component.scss'],\r\n})\r\n\r\nexport class CustomerSearch implements OnInit, AfterViewInit {\r\n customerType: string = \"2\";\r\n searchText = '';\r\n pendingDataCalls = 0;\r\n isDistributor = false;\r\n isValueCalculator = false;\r\n customerId = null;\r\n isBladewizardPage = false;\r\n\r\n @Output() customerSelectedEvent = new EventEmitter();\r\n @Input() addCustomerEnabled = false;\r\n @Input() allowEndUserSearch = true;\r\n\r\n public customers: CustomerListItem[] = [];\r\n distributorEndUsers: CustomerListItem[];\r\n\r\n constructor(\r\n private router: Router,\r\n private customerService: CustomerService,\r\n private activatedRoute: ActivatedRoute,\r\n private modalController: ModalController,\r\n private settingsService: SettingsService,\r\n private sharedDataService: SharedDataService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.isValueCalculatorPage();\r\n this.isBladewizardPage = this.isBladewizard();\r\n this.isDistributor = this.settingsService.isDistributor();\r\n // if (this.isDistributor && !this.isValueCalculatorPage() && !this.isBladewizardPage) {\r\n // const info: PageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo);\r\n // if (info) {\r\n // this.selectCustomerFromPageInfo(info);\r\n // } else {\r\n // this.sharedDataService.getEmitter(DictKey.AppPageInfo).subscribe((pageInfo: PageInfo) => {\r\n // this.selectCustomerFromPageInfo(pageInfo);\r\n // });\r\n // }\r\n // }\r\n if (this.isDistributor) {\r\n this.customerType = \"1\";\r\n } \r\n \r\n this.getCustomerType();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.allowEndUserSearch && !this.isDistributor) {\r\n this.customerType = \"2\";\r\n }\r\n }\r\n\r\n selectCustomerFromPageInfo(info: PageInfo) {\r\n this.selectCustomer({\r\n Id: info.SalesAccountId,\r\n CustomerNumber: info.OdpCustomerNumber,\r\n Name: info.OdpCustomerName,\r\n BillToNumber: info.BillToNumber\r\n });\r\n }\r\n\r\n isDistributorBladewizard() {\r\n if (this.isBladewizard() && this.isDistributor) {\r\n this.customerType = \"1\";\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n isBladewizard(): boolean {\r\n if (document.URL.includes('bladewizard')) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n isValueCalculatorPage() {\r\n if ( document.URL.includes('value-calculator') ) {\r\n this.isValueCalculator = true;\r\n this.customerType = \"1\";\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n async addCustomer() {\r\n const modal = await this.modalController.create({\r\n component: this.isValueCalculator || (this.isDistributor) ? AddCustomerValueCalculatorPage : AddCustomerPage,\r\n componentProps: {\r\n 'customerType': this.convertCustomerType(this.customerType)\r\n }\r\n });\r\n modal.onDidDismiss().then((result) => {\r\n if (result.data.reload) {\r\n }\r\n if (result && (this.isValueCalculator || this.isBladewizardPage)) {\r\n this.customerId = result.data.Id;\r\n this.getCustomers(result.data.Name, this.convertCustomerType(this.customerType), this.selectCustomerById.bind(this));\r\n }\r\n });\r\n modal.present();\r\n }\r\n\r\n selectCustomerById() {\r\n var customer = this.customers.find(c => c.Id == this.customerId);\r\n this.selectCustomer(customer);\r\n }\r\n\r\n convertCustomerType(id: number | string): CustomerType {\r\n switch (id) {\r\n case 0:\r\n case '0':\r\n return CustomerType.RepAgency;\r\n case 1:\r\n case '1':\r\n return CustomerType.EndUser;\r\n case 2:\r\n case '2':\r\n return CustomerType.Distributor;\r\n default:\r\n throw RangeError(`${id} not known value for CustomerType enumeration.`);\r\n }\r\n }\r\n\r\n customerAdditionalInfo(customer: any): string {\r\n let result = '(';\r\n if (customer.CustomerNumber) {\r\n result = result + customer.CustomerNumber + ' ';\r\n }\r\n if (customer.City) {\r\n result = result + customer.City;\r\n if (customer.State) {\r\n result = result + ', ' + customer.State;\r\n }\r\n }\r\n result = result + ')';\r\n return result;\r\n }\r\n\r\n filterCustomers(ev) {\r\n // set val to the value of the ev target\r\n const val = ev.target.value;\r\n // if the value is an empty string don't filter the items\r\n if (val && val.trim() !== '') {\r\n this.getCustomers(val, this.convertCustomerType(this.customerType));\r\n this.searchText = val;\r\n } else {\r\n this.customers = [];\r\n this.pendingDataCalls = 0;\r\n }\r\n }\r\n\r\n getCustomerType() {\r\n const customerType = this.activatedRoute.snapshot.queryParamMap.get('type');\r\n if (this.isValueCalculator || this.isDistributor) {\r\n this.setCustomerType(1);\r\n } else if (customerType && Number.parseInt(customerType) >= 0) {\r\n this.setCustomerType(Number.parseInt(customerType));\r\n this.customerType = customerType;\r\n } else {\r\n this.setCustomerType(2);\r\n }\r\n }\r\n\r\n getCustomers(term: string, type: CustomerType, callback?) {\r\n this.pendingDataCalls++;\r\n if (this.isDistributor && !this.distributorEndUsers) {\r\n this.customerService.getMyEndUsers()\r\n .subscribe(customers => {\r\n this.afterGetCustomers(term, customers, callback);\r\n })\r\n } else if (this.isDistributor) {\r\n this.afterGetCustomers(term, this.distributorEndUsers, callback);\r\n } else {\r\n this.customerService.searchCustomers(term, type)\r\n .subscribe(customers => {\r\n this.afterGetCustomers(null, customers, callback);\r\n }\r\n );\r\n }\r\n }\r\n\r\n afterGetCustomers(term: string, customers: CustomerListItem[], callback) {\r\n if (this.isDistributor) {\r\n term = term.toLowerCase();\r\n if (!this.distributorEndUsers) {\r\n this.distributorEndUsers = customers;\r\n }\r\n customers = customers.filter(x => x.CustomerNumber.toLowerCase().startsWith(term) || x.Name.toLowerCase().startsWith(term))\r\n }\r\n this.customers = customers;\r\n if (this.pendingDataCalls > 0) {\r\n this.pendingDataCalls--;\r\n }\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n\r\n selectCustomer(customer: CustomerBasicProperties) {\r\n this.customerSelectedEvent.emit(customer);\r\n }\r\n\r\n setCustomerType(customerType: number) {\r\n this.customerType = customerType.toString();\r\n const queryParams: Params = { type: customerType };\r\n this.router.navigate([], {\r\n relativeTo: this.activatedRoute,\r\n queryParams: queryParams,\r\n queryParamsHandling: 'merge',\r\n }).then(() => {\r\n setTimeout(() => {\r\n if (this.searchText && this.searchText.trim() !== '') {\r\n this.getCustomers(this.searchText, this.convertCustomerType(customerType));\r\n } else {\r\n this.customers = [];\r\n }\r\n });\r\n });\r\n }\r\n\r\n showAddCustomer() {\r\n if (!this.isDistributor && this.isValueCalculator) {\r\n return false;\r\n } else {\r\n return true;\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

{{family.Name}}

\\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
\"","module.exports = \".major-cat-img-holder,\\n.minor-cat-img-holder {\\n width: 54px;\\n height: 41px;\\n box-sizing: content-box;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n .major-cat-img-holder img,\\n .minor-cat-img-holder img {\\n max-height: 100%;\\n max-width: 100%;\\n height: auto;\\n width: auto; }\\n .spacer {\\n height: .5em;\\n width: 1px; }\\n @media (min-width: 768px) {\\n .major-cat-img-holder {\\n width: 60px;\\n height: 46px; }\\n .minor-cat-img-holder {\\n width: 60px;\\n height: 46px; } }\\n .minor-cat-img-holder, .major-cat-img-holder {\\n flex-shrink: 0; }\\n .minor-cat-container {\\n cursor: pointer;\\n align-items: center;\\n margin: 0 10px; }\\n .minor-cat-container h2 {\\n font-size: 1.5em; }\\n .minor-cat-container .right-stretch {\\n flex-grow: 100;\\n margin-left: 10px; }\\n @media (min-width: 768px) {\\n .minor-cat-container .right-stretch {\\n padding-left: 20px; } }\\n .minor-cat-container.major-container-ovr {\\n border-bottom: none;\\n display: flex; }\\n .minor-cat-container.major-container-ovr h2 {\\n color: #444;\\n font-size: 1.5em;\\n font-weight: bold; }\\n .minor-cat-img-holder, .major-cat-img-holder {\\n padding-right: 20px;\\n height: 100%;\\n max-width: 100%; }\\n .button-color {\\n background-color: #FFFFFF; }\\n span.ion-text-left {\\n margin-right: auto;\\n color: var(--text-color);\\n margin-left: 10px;\\n font-size: 1.1em; }\\n .contact-button {\\n height: 30px;\\n width: 30px;\\n margin: auto; }\\n .stacked-btn-container-top ion-button {\\n -webkit-clip-path: inset(-5px -5px 0px -5px);\\n clip-path: inset(-5px -5px 0px -5px);\\n margin-bottom: 0px;\\n margin-left: 0px;\\n margin-right: 0px; }\\n .stacked-btn-container-bottom ion-button {\\n -webkit-clip-path: inset(0px -5px -5px -5px);\\n clip-path: inset(0px -5px -5px -5px);\\n margin: 0; }\\n .btn-like {\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding-top: 0;\\n padding-bottom: 0;\\n padding-left: 0.9em;\\n padding-right: 0.9em;\\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), background-color 15ms linear, color 15ms linear;\\n margin: 0;\\n min-height: 36px;\\n font-size: 14px;\\n font-weight: 500;\\n letter-spacing: .06em; }\\n .text-container {\\n max-width: 100%;\\n overflow-wrap: break-word;\\n text-align: left;\\n padding-top: 8px;\\n padding-bottom: 7px;\\n font-size: 12px;\\n min-height: 36px;\\n max-height: none; }\\n .responsive-text {\\n font-size: 16px; }\\n @media (max-width: 991px) {\\n ion-card-content {\\n padding-left: 4px;\\n padding-right: 4px; } }\\n @media (min-width: 992px) {\\n .text-container {\\n font-size: 14px; } }\\n @media (max-width: 767px) {\\n div.avoidwrap {\\n display: inline-block; }\\n .left-container {\\n max-width: 60%; } }\\n .left-container {\\n display: inline-block; }\\n a.disabled {\\n cursor: not-allowed; }\\n a.disabled > img {\\n opacity: 0.5; }\\n .scootUp {\\n margin-top: -5px; }\\n label {\\n font-weight: bold; }\\n .value-col {\\n text-align: right; }\\n @media (max-width: 767px) {\\n .responsive-text {\\n font-size: 14px; } }\\n .ion-div {\\n background-color: var(--base-bg);\\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), background-color 15ms linear, color 15ms linear;\\n min-height: 2em; }\\n .label-col {\\n text-align: right;\\n overflow-wrap: normal;\\n padding-right: 0px; }\\n #coop-grids-container ion-grid ion-col {\\n text-align: right; }\\n .range-label {\\n width: 36px; }\\n @media (min-width: 992px) {\\n .text-center {\\n text-align: center; } }\\n .check-center {\\n display: inline-block;\\n margin: 0px;\\n margin-left: 4px;\\n margin-bottom: -2px; }\\n #scroll-header {\\n width: 100%;\\n text-align: center;\\n display: none;\\n margin-top: -4px; }\\n .premium {\\n background-color: #eee; }\\n @media (min-width: 1200px) {\\n ion-grid.hide-labels-desktop-custom label {\\n display: none; }\\n .text-center {\\n text-align: center; } }\\n @media (max-width: 1199px) {\\n .hide-mobile-custom {\\n display: none !important; } }\\n @media (min-width: 1200px) {\\n .mobile-version {\\n display: none; }\\n .text-center {\\n text-align: center; } }\\n @media (max-width: 1199px) {\\n .desktop-version {\\n display: none; }\\n .block-mobile {\\n display: block; } }\\n .dropdown-label, .dropdown-label + .arrow-container {\\n display: inline-block; }\\n .arrow {\\n position: relative;\\n top: 4px; }\\n .label-container {\\n width: 100%; }\\n h2 {\\n font-weight: bold;\\n color: var(--text-color); }\\n p {\\n color: var(--text-color); }\\n .mobile-version .dropdown-label .arrow {\\n margin-bottom: -5px; }\\n .mobile-version .dropdown-label h2 {\\n display: inline; }\\n div.major-cat-img-holder {\\n width: 80px; }\\n .minor-cat-img-holder {\\n width: 100%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYW1pbHkvQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxjb21wb25lbnRzXFxmYW1pbHlcXGZhbWlseS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7RUFFSSxXQUFXO0VBQ1gsWUFBWTtFQUNaLHVCQUF1QjtFQUN2QixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QixFQUFBO0VBUDNCOztJQVVRLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsWUFBWTtJQUNaLFdBQVcsRUFBQTtFQUluQjtFQUNJLFlBQVk7RUFDWixVQUFVLEVBQUE7RUFFZDtFQUNJO0lBQ0ksV0FBVztJQUNYLFlBQVksRUFBQTtFQUVoQjtJQUNJLFdBQVc7SUFDWCxZQUFZLEVBQUEsRUFDZjtFQUdMO0VBQ0ksY0FBYyxFQUFBO0VBR2xCO0VBQ0ksZUFBZTtFQUNmLG1CQUFtQjtFQUVuQixjQUFjLEVBQUE7RUFKbEI7SUFTUSxnQkFBZ0IsRUFBQTtFQVR4QjtJQWFRLGNBQWM7SUFDZCxpQkFBaUIsRUFBQTtFQU96QjtFQUNJO0lBQ0ksa0JBQWtCLEVBQUEsRUFDckI7RUFFTDtFQUNJLG1CQUFtQjtFQU1uQixhQUFhLEVBQUE7RUFQakI7SUFHUSxXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGlCQUFpQixFQUFBO0VBS3pCO0VBQ0ksbUJBQWtCO0VBQ2xCLFlBQVk7RUFDWixlQUFlLEVBQUE7RUFHbkI7RUFDSSx5QkFBeUIsRUFBQTtFQUc3QjtFQUNJLGtCQUFrQjtFQUNsQix3QkFBd0I7RUFDeEIsaUJBQWlCO0VBQ2pCLGdCQUFnQixFQUFBO0VBSXBCO0VBQ0ksWUFBWTtFQUNaLFdBQVc7RUFDWCxZQUFZLEVBQUE7RUFHaEI7RUFFSSw0Q0FBb0M7VUFBcEMsb0NBQW9DO0VBQ3BDLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsaUJBQWlCLEVBQUE7RUFHckI7RUFFSSw0Q0FBb0M7VUFBcEMsb0NBQW9DO0VBQ3BDLFNBQVMsRUFBQTtFQUdiO0VBQ0ksK0dBQStHO0VBQy9HLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQiwwR0FBd0c7RUFDeEcsU0FBUztFQUNULGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLHFCQUFxQixFQUFBO0VBR3pCO0VBQ0ksZUFBZTtFQUNmLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGdCQUFnQixFQUFBO0VBR3BCO0VBQ0ksZUFBZSxFQUFBO0VBR25CO0VBQ0k7SUFDSSxpQkFBaUI7SUFDakIsa0JBQWtCLEVBQUEsRUFDckI7RUFHTDtFQUNJO0lBQ0ksZUFBZSxFQUFBLEVBQ2xCO0VBR0w7RUFDSTtJQUNJLHFCQUFxQixFQUFBO0VBR3pCO0lBQ0ksY0FBYyxFQUFBLEVBQ2pCO0VBR0w7RUFDSSxxQkFBcUIsRUFBQTtFQUd6QjtFQUNJLG1CQUFtQixFQUFBO0VBR3ZCO0VBQ0ksWUFBWSxFQUFBO0VBR2hCO0VBQ0ksZ0JBQWdCLEVBQUE7RUFHcEI7RUFDSSxpQkFBaUIsRUFBQTtFQUdyQjtFQUNJLGlCQUFpQixFQUFBO0VBR3JCO0VBQ0k7SUFDSSxlQUFlLEVBQUEsRUFDbEI7RUFHTDtFQUNJLGdDQUFnQztFQUNoQywwR0FBd0c7RUFFeEcsZUFBZSxFQUFBO0VBR25CO0VBQ0ksaUJBQWlCO0VBQ2pCLHFCQUFxQjtFQUNyQixrQkFBa0IsRUFBQTtFQUd0QjtFQUNJLGlCQUFpQixFQUFBO0VBR3JCO0VBQ0ksV0FBVyxFQUFBO0VBR2Y7RUFDSTtJQUNJLGtCQUFrQixFQUFBLEVBQ3JCO0VBR0w7RUFDSSxxQkFBcUI7RUFDckIsV0FBVztFQUNYLGdCQUFnQjtFQUNoQixtQkFBbUIsRUFBQTtFQUd2QjtFQUNJLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0VBR3BCO0VBQ0ksc0JBQXNCLEVBQUE7RUFHMUI7RUFDSTtJQUNJLGFBQWEsRUFBQTtFQUdqQjtJQUNJLGtCQUFrQixFQUFBLEVBQ3JCO0VBR0w7RUFDSTtJQUNJLHdCQUF3QixFQUFBLEVBQzNCO0VBR0w7RUFDSTtJQUNJLGFBQWEsRUFBQTtFQUVqQjtJQUNJLGtCQUFrQixFQUFBLEVBQ3JCO0VBR0w7RUFDSTtJQUNJLGFBQWEsRUFBQTtFQUdqQjtJQUNJLGNBQWMsRUFBQSxFQUNqQjtFQUdMO0VBQ0kscUJBQXFCLEVBQUE7RUFHekI7RUFDSSxrQkFBa0I7RUFDbEIsUUFBUSxFQUFBO0VBR1o7RUFDSSxXQUNKLEVBQUE7RUFFQTtFQUNJLGlCQUFnQjtFQUNoQix3QkFBd0IsRUFBQTtFQUc1QjtFQUNJLHdCQUF3QixFQUFBO0VBRzVCO0VBQ0ksbUJBQWtCLEVBQUE7RUFHdEI7RUFDSSxlQUFjLEVBQUE7RUFHbEI7RUFDSSxXQUFXLEVBQUE7RUFHZjtFQUNJLFdBQVcsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFtaWx5L2ZhbWlseS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYWpvci1jYXQtaW1nLWhvbGRlcixcclxuLm1pbm9yLWNhdC1pbWctaG9sZGVyIHtcclxuICAgIHdpZHRoOiA1NHB4O1xyXG4gICAgaGVpZ2h0OiA0MXB4O1xyXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgIGltZyB7XHJcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgfVxyXG59XHJcblxyXG4uc3BhY2VyIHtcclxuICAgIGhlaWdodDogLjVlbTtcclxuICAgIHdpZHRoOiAxcHg7XHJcbn1cclxuQG1lZGlhKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgIC5tYWpvci1jYXQtaW1nLWhvbGRlcntcclxuICAgICAgICB3aWR0aDogNjBweDtcclxuICAgICAgICBoZWlnaHQ6IDQ2cHg7XHJcbiAgICB9XHJcbiAgICAubWlub3ItY2F0LWltZy1ob2xkZXIge1xyXG4gICAgICAgIHdpZHRoOiA2MHB4O1xyXG4gICAgICAgIGhlaWdodDogNDZweDtcclxuICAgIH1cclxufVxyXG5cclxuLm1pbm9yLWNhdC1pbWctaG9sZGVyLCAubWFqb3ItY2F0LWltZy1ob2xkZXIge1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbn1cclxuXHJcbi5taW5vci1jYXQtY29udGFpbmVyIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAvLyBwYWRkaW5nOiA2cHggMTBweDtcclxuICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgLy8gYm9yZGVyLWJvdHRvbTogI2NjYyAxcHggc29saWQ7XHJcblxyXG4gICAgaDIge1xyXG4gICAgICAgIC8vIGNvbG9yOiAjNDQ0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnJpZ2h0LXN0cmV0Y2gge1xyXG4gICAgICAgIGZsZXgtZ3JvdzogMTAwO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIG1pbi1oZWlnaHQ6IDQwMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG5AbWVkaWEobWluLXdpZHRoOiA3NjhweCkge1xyXG4gICAgLm1pbm9yLWNhdC1jb250YWluZXIgLnJpZ2h0LXN0cmV0Y2gge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgIH1cclxufVxyXG4ubWlub3ItY2F0LWNvbnRhaW5lci5tYWpvci1jb250YWluZXItb3ZyIHtcclxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICBoMiB7XHJcbiAgICAgICAgY29sb3I6ICM0NDQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbi5taW5vci1jYXQtaW1nLWhvbGRlciwgLm1ham9yLWNhdC1pbWctaG9sZGVyIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6MjBweDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmJ1dHRvbi1jb2xvciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xyXG59XHJcblxyXG5zcGFuLmlvbi10ZXh0LWxlZnQge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICBmb250LXNpemU6IDEuMWVtO1xyXG59XHJcblxyXG5cclxuLmNvbnRhY3QtYnV0dG9uIHtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG59XHJcblxyXG4uc3RhY2tlZC1idG4tY29udGFpbmVyLXRvcCBpb24tYnV0dG9uIHtcclxuICAgIC8vIFJlbW92ZXMgYm90dG9tIHNoYWRvd1xyXG4gICAgY2xpcC1wYXRoOiBpbnNldCgtNXB4IC01cHggMHB4IC01cHgpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcclxuICAgIG1hcmdpbi1yaWdodDogMHB4O1xyXG59XHJcblxyXG4uc3RhY2tlZC1idG4tY29udGFpbmVyLWJvdHRvbSBpb24tYnV0dG9uIHtcclxuICAgIC8vIFJlbW92ZXMgdG9wIHNoYWRvd1xyXG4gICAgY2xpcC1wYXRoOiBpbnNldCgwcHggLTVweCAtNXB4IC01cHgpO1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYnRuLWxpa2Uge1xyXG4gICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIHBhZGRpbmctbGVmdDogMC45ZW07XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjllbTtcclxuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXIsIGNvbG9yIDE1bXMgbGluZWFyO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbWluLWhlaWdodDogMzZweDtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLjA2ZW07XHJcbn1cclxuXHJcbi50ZXh0LWNvbnRhaW5lciB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHBhZGRpbmctdG9wOiA4cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogN3B4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgbWluLWhlaWdodDogMzZweDtcclxuICAgIG1heC1oZWlnaHQ6IG5vbmU7XHJcbn1cclxuXHJcbi5yZXNwb25zaXZlLXRleHQge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOiA5OTFweCkge1xyXG4gICAgaW9uLWNhcmQtY29udGVudCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogNHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnRleHQtY29udGFpbmVyIHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6IDc2N3B4KSB7XHJcbiAgICBkaXYuYXZvaWR3cmFwIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgLmxlZnQtY29udGFpbmVyIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgIH1cclxufVxyXG5cclxuLmxlZnQtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuYS5kaXNhYmxlZCB7XHJcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG59XHJcblxyXG5hLmRpc2FibGVkPmltZyB7XHJcbiAgICBvcGFjaXR5OiAwLjU7XHJcbn1cclxuXHJcbi5zY29vdFVwIHtcclxuICAgIG1hcmdpbi10b3A6IC01cHg7XHJcbn1cclxuXHJcbmxhYmVsIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4udmFsdWUtY29sIHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjc2N3B4KSB7XHJcbiAgICAucmVzcG9uc2l2ZS10ZXh0IHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5pb24tZGl2IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhc2UtYmcpO1xyXG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhciwgY29sb3IgMTVtcyBsaW5lYXI7XHJcbiAgICAvLyBib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcbiAgICBtaW4taGVpZ2h0OiAyZW07XHJcbn1cclxuXHJcbi5sYWJlbC1jb2wge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBvdmVyZmxvdy13cmFwOiBub3JtYWw7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XHJcbn1cclxuXHJcbiNjb29wLWdyaWRzLWNvbnRhaW5lciBpb24tZ3JpZCBpb24tY29sIHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4ucmFuZ2UtbGFiZWwge1xyXG4gICAgd2lkdGg6IDM2cHg7XHJcbn1cclxuXHJcbkBtZWRpYShtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudGV4dC1jZW50ZXIge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxufVxyXG5cclxuLmNoZWNrLWNlbnRlciB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW46IDBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1xyXG59XHJcblxyXG4jc2Nyb2xsLWhlYWRlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xyXG59XHJcblxyXG4ucHJlbWl1bSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xyXG59XHJcblxyXG5AbWVkaWEobWluLXdpZHRoOiAxMjAwcHgpIHtcclxuICAgIGlvbi1ncmlkLmhpZGUtbGFiZWxzLWRlc2t0b3AtY3VzdG9tIGxhYmVsIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC50ZXh0LWNlbnRlciB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOiAxMTk5cHgpIHtcclxuICAgIC5oaWRlLW1vYmlsZS1jdXN0b20ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhKG1pbi13aWR0aDogMTIwMHB4KSB7XHJcbiAgICAubW9iaWxlLXZlcnNpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAudGV4dC1jZW50ZXIge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDogMTE5OXB4KSB7XHJcbiAgICAuZGVza3RvcC12ZXJzaW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5ibG9jay1tb2JpbGUge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZHJvcGRvd24tbGFiZWwsIC5kcm9wZG93bi1sYWJlbCArIC5hcnJvdy1jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4uYXJyb3cge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiA0cHg7XHJcbn1cclxuXHJcbi5sYWJlbC1jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCVcclxufVxyXG5cclxuaDIge1xyXG4gICAgZm9udC13ZWlnaHQ6Ym9sZDtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcclxufVxyXG5cclxucCB7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XHJcbn1cclxuXHJcbi5tb2JpbGUtdmVyc2lvbiAuZHJvcGRvd24tbGFiZWwgLmFycm93IHtcclxuICAgIG1hcmdpbi1ib3R0b206LTVweDtcclxufVxyXG5cclxuLm1vYmlsZS12ZXJzaW9uIC5kcm9wZG93bi1sYWJlbCBoMiB7XHJcbiAgICBkaXNwbGF5OmlubGluZTtcclxufVxyXG5cclxuZGl2Lm1ham9yLWNhdC1pbWctaG9sZGVyIHtcclxuICAgIHdpZHRoOiA4MHB4O1xyXG59XHJcblxyXG4ubWlub3ItY2F0LWltZy1ob2xkZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn0iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { PageService } from 'src/app/services/page.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FamilyInfo } from 'src/app/models/Family';\r\nimport { GroupInfo } from 'src/app/models/Group';\r\nimport { AlertController } from '@ionic/angular';\r\nimport { OdpService } from 'src/app/services/odp.service';\r\nimport { Location } from '@angular/common';\r\n\r\n\r\n@Component({\r\n selector: 'app-family',\r\n templateUrl: './family.component.html',\r\n styleUrls: ['./family.component.scss'],\r\n })\r\n export class FamilyComponent implements OnInit {\r\n @Input() familyCode = '';\r\n @Input() family: FamilyInfo;\r\n @Input() group: GroupInfo;\r\n\r\n @Input() selected = false;\r\n\r\n groupList: FamilyInfo[];\r\n\r\n groupInfoList: Array\r\n\r\n groupCode: string = null;\r\n\r\n loadingGroups = false;\r\n\r\n familyExpanded = false;\r\n \r\n constructor(\r\n private pageService: PageService,\r\n private route: ActivatedRoute,\r\n private alertController: AlertController,\r\n private odpService: OdpService,\r\n private location: Location\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.familyCode = this.route.snapshot.queryParamMap.get('fam');\r\n if (this.familyCode === this.family.Code) {\r\n this.showHideFamily();\r\n }\r\n }\r\n\r\n\r\n showHideFamily() {\r\n this.familyExpanded = !this.familyExpanded;\r\n if (!this.groupList) {\r\n this.fetchGroups();\r\n }\r\n }\r\n\r\n fetchGroups() {\r\n this.loadingGroups = true;\r\n this.pageService.getGroupList(this.family.Code).subscribe(GroupInfoList => {\r\n this.loadingGroups = false;\r\n this.groupList = GroupInfoList;\r\n if (this.familyCode) {\r\n setTimeout(() => this.scrollToSection(this.familyCode), 10);\r\n }\r\n }, err => {\r\n console.log(err);\r\n })\r\n };\r\n\r\n updateURL(familyCode: string) {\r\n const newPath = 'distributor-home/' + familyCode;\r\n if (this.location.path().indexOf(newPath) < 0) {\r\n this.location.go(newPath);\r\n }\r\n }\r\n\r\n scrollToSection(familyCode: string) {\r\n // this.showHideFamily();\r\n this.updateURL(this.familyCode);\r\n document.getElementById(this.familyCode).scrollIntoView({behavior: 'smooth'});\r\n }\r\n\r\n }","module.exports = \"Attachments\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n Upload new file \\r\\n \\r\\n 0\\\">\\r\\n New Attachments\\r\\n \\r\\n {{f.name}}\\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n Existing Attachments\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ attachment?.FileName }}\\r\\n \\r\\n {{ attachment?.FileName }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \".strikethrough {\\n text-decoration: line-through; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9maWxlcy9DOlxcVXNlcnNcXHNtaXRoZFxcc291cmNlXFxyZXBvc1xcU2FsZXNBcHBcXG1rbW9yc2Uvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGZpbGVzXFxmaWxlcy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLDZCQUE2QixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9maWxlcy9maWxlcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5zdHJpa2V0aHJvdWdoIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xyXG4gIH0iXX0= */\"","import { Component, OnInit, Input, Output } from '@angular/core';\r\nimport { Attachment } from 'src/app/models/Attachment';\r\nimport { AttachmentService } from 'src/app/services/attachment.service';\r\nimport { Observable, of, concat } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-files',\r\n templateUrl: './files.component.html',\r\n styleUrls: ['./files.component.scss']\r\n})\r\nexport class FilesComponent implements OnInit {\r\n attachmentsLoading: boolean;\r\n attachments: Attachment[] = [];\r\n attachmentsToDelete: Attachment[] = [];\r\n attachmentsToAdd: File[] = [];\r\n @Input() itemId: number;\r\n @Input() exchangeId: string;\r\n @Input() itemType: string;\r\n\r\n constructor(private attachmentService: AttachmentService) {}\r\n onGetAttachmentsError = (error: any): Observable => {\r\n this.attachmentsLoading = false;\r\n return of(null);\r\n };\r\n ngOnInit() {\r\n if ((this.itemId || this.exchangeId) && this.itemType)\r\n this.getAttachments();\r\n }\r\n getAttachments() {\r\n this.attachmentsLoading = true;\r\n this.attachmentService\r\n .getAttachments(this.exchangeId, this.itemId, this.itemType)\r\n // this.attachmentService\r\n // .getFileUploadsForItem(this.itemId, this.itemType)\r\n .pipe(catchError(this.onGetAttachmentsError))\r\n .subscribe(attachments => {\r\n this.attachmentsLoading = false;\r\n this.attachments = attachments;\r\n });\r\n }\r\n\r\n downloadAttachment(attachment: Attachment) {\r\n this.attachmentService.getFile(this.itemType, this.itemId, attachment.Id, attachment.FileName);\r\n }\r\n\r\n uploadChange(event) {\r\n if (event.target.files.length > 0) {\r\n for (let i = 0; i < event.target.files.length; i++) {\r\n this.attachmentsToAdd.push(event.target.files[i]);\r\n }\r\n }\r\n }\r\n scheduleDeleteAttachment(attachment: Attachment) {\r\n this.attachmentsToDelete.push(attachment);\r\n }\r\n unscheduleDeleteAttachment(attachment: Attachment) {\r\n this.attachmentsToDelete.splice(\r\n this.attachmentsToDelete.indexOf(attachment),\r\n 1\r\n );\r\n }\r\n syncAllFiles(itemId?: number, exchangeId?: string, itemType?: string) {\r\n if (!itemId) itemId = this.itemId;\r\n if (!exchangeId) exchangeId = this.exchangeId;\r\n if (!itemType) itemType = this.itemType;\r\n let addObservable: Observable = of(null);\r\n let removeObservable = of(true);\r\n \r\n // Fix for null error on concat\r\n if (!this.attachments) {\r\n this.attachments = [];\r\n }\r\n\r\n if (this.attachmentsToAdd) {\r\n let i = itemId ? itemId.toString() : undefined;\r\n addObservable = this.attachmentService\r\n .addAttachments(exchangeId, i, itemType, this.attachmentsToAdd) \r\n .pipe(\r\n map(x => {\r\n this.attachments = this.attachments.concat(x);\r\n this.attachmentsToAdd = [];\r\n return x;\r\n })\r\n );\r\n }\r\n\r\n if (this.attachmentsToDelete) {\r\n {\r\n let i = itemId ? itemId.toString() : undefined;\r\n removeObservable = this.attachmentService\r\n .deleteAttachments(\r\n exchangeId,\r\n i,\r\n itemType,\r\n this.attachmentsToDelete.map(x => x.Id)\r\n )\r\n .pipe(\r\n map(x => {\r\n if (x) {\r\n this.attachments = this.attachments.filter(\r\n v =>\r\n !this.attachmentsToDelete.some(\r\n d => d.Id == v.Id\r\n )\r\n );\r\n this.attachmentsToDelete = [];\r\n return true;\r\n }\r\n return false;\r\n })\r\n );\r\n }\r\n }\r\n return {addObservable,removeObservable}\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{group.Name}}

\\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
\\r\\n
\\r\\n

{{product.Name}}

\\r\\n

{{product.Blurb}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \".major-cat-img-holder,\\n.minor-cat-img-holder {\\n width: 54px;\\n height: 41px;\\n box-sizing: content-box;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n .major-cat-img-holder img,\\n .minor-cat-img-holder img {\\n max-height: 100%;\\n max-width: 100%;\\n height: auto;\\n width: auto; }\\n .spacer {\\n height: .5em;\\n width: 1px; }\\n @media (min-width: 768px) {\\n .major-cat-img-holder {\\n width: 60px;\\n height: 46px; }\\n .minor-cat-img-holder {\\n width: 60px;\\n height: 46px; } }\\n .minor-cat-img-holder, .major-cat-img-holder {\\n flex-shrink: 0; }\\n .minor-cat-container {\\n cursor: pointer;\\n align-items: center;\\n margin: 0 10px; }\\n .minor-cat-container h2 {\\n font-size: 1.5em; }\\n .minor-cat-container .right-stretch {\\n flex-grow: 100;\\n margin-left: 10px; }\\n @media (min-width: 768px) {\\n .minor-cat-container .right-stretch {\\n padding-left: 20px; } }\\n .minor-cat-container.major-container-ovr {\\n border-bottom: none;\\n display: flex; }\\n .minor-cat-container.major-container-ovr h2 {\\n color: #444;\\n font-size: 1.5em;\\n font-weight: bold; }\\n .minor-cat-img-holder, .major-cat-img-holder {\\n padding-right: 20px;\\n height: 100%;\\n max-width: 100%; }\\n .button-color {\\n background-color: #FFFFFF; }\\n span.ion-text-left {\\n margin-right: auto;\\n color: var(--text-color);\\n margin-left: 10px;\\n font-size: 1.1em; }\\n .contact-button {\\n height: 30px;\\n width: 30px;\\n margin: auto; }\\n .stacked-btn-container-top ion-button {\\n -webkit-clip-path: inset(-5px -5px 0px -5px);\\n clip-path: inset(-5px -5px 0px -5px);\\n margin-bottom: 0px;\\n margin-left: 0px;\\n margin-right: 0px; }\\n .stacked-btn-container-bottom ion-button {\\n -webkit-clip-path: inset(0px -5px -5px -5px);\\n clip-path: inset(0px -5px -5px -5px);\\n margin: 0; }\\n .btn-like {\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n padding-top: 0;\\n padding-bottom: 0;\\n padding-left: 0.9em;\\n padding-right: 0.9em;\\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), background-color 15ms linear, color 15ms linear;\\n margin: 0;\\n min-height: 36px;\\n font-size: 14px;\\n font-weight: 500;\\n letter-spacing: .06em; }\\n .text-container {\\n max-width: 100%;\\n overflow-wrap: break-word;\\n text-align: left;\\n padding-top: 8px;\\n padding-bottom: 7px;\\n font-size: 12px;\\n min-height: 36px;\\n max-height: none; }\\n .responsive-text {\\n font-size: 16px; }\\n @media (max-width: 991px) {\\n ion-card-content {\\n padding-left: 4px;\\n padding-right: 4px; } }\\n @media (min-width: 992px) {\\n .text-container {\\n font-size: 14px; } }\\n @media (max-width: 767px) {\\n div.avoidwrap {\\n display: inline-block; }\\n .left-container {\\n max-width: 60%; } }\\n .left-container {\\n display: inline-block; }\\n a.disabled {\\n cursor: not-allowed; }\\n a.disabled > img {\\n opacity: 0.5; }\\n .scootUp {\\n margin-top: -5px; }\\n label {\\n font-weight: bold; }\\n .value-col {\\n text-align: right; }\\n @media (max-width: 767px) {\\n .responsive-text {\\n font-size: 14px; } }\\n .ion-div {\\n background-color: var(--base-bg);\\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), background-color 15ms linear, color 15ms linear;\\n min-height: 2em; }\\n .label-col {\\n text-align: right;\\n overflow-wrap: normal;\\n padding-right: 0px; }\\n #coop-grids-container ion-grid ion-col {\\n text-align: right; }\\n .range-label {\\n width: 36px; }\\n @media (min-width: 992px) {\\n .text-center {\\n text-align: center; } }\\n .check-center {\\n display: inline-block;\\n margin: 0px;\\n margin-left: 4px;\\n margin-bottom: -2px; }\\n #scroll-header {\\n width: 100%;\\n text-align: center;\\n display: none;\\n margin-top: -4px; }\\n .premium {\\n background-color: #eee; }\\n @media (min-width: 1200px) {\\n ion-grid.hide-labels-desktop-custom label {\\n display: none; }\\n .text-center {\\n text-align: center; } }\\n @media (max-width: 1199px) {\\n .hide-mobile-custom {\\n display: none !important; } }\\n @media (min-width: 1200px) {\\n .mobile-version {\\n display: none; }\\n .text-center {\\n text-align: center; } }\\n @media (max-width: 1199px) {\\n .desktop-version {\\n display: none; }\\n .block-mobile {\\n display: block; } }\\n .dropdown-label, .dropdown-label + .arrow-container {\\n display: inline-block; }\\n .arrow {\\n position: relative;\\n top: 4px; }\\n .label-container {\\n width: 100%; }\\n h2 {\\n font-weight: bold;\\n color: var(--text-color); }\\n p {\\n color: var(--text-color); }\\n .mobile-version .dropdown-label .arrow {\\n margin-bottom: -5px; }\\n .mobile-version .dropdown-label h2 {\\n display: inline; }\\n div.major-cat-img-holder {\\n width: 80px; }\\n .minor-cat-img-holder {\\n width: 100%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ncm91cC9DOlxcVXNlcnNcXHNtaXRoZFxcc291cmNlXFxyZXBvc1xcU2FsZXNBcHBcXG1rbW9yc2Uvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGdyb3VwXFxncm91cC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7RUFFSSxXQUFXO0VBQ1gsWUFBWTtFQUNaLHVCQUF1QjtFQUN2QixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QixFQUFBO0VBUDNCOztJQVVRLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsWUFBWTtJQUNaLFdBQVcsRUFBQTtFQUluQjtFQUNJLFlBQVk7RUFDWixVQUFVLEVBQUE7RUFHZDtFQUNJO0lBQ0ksV0FBVztJQUNYLFlBQVksRUFBQTtFQUVoQjtJQUNJLFdBQVc7SUFDWCxZQUFZLEVBQUEsRUFDZjtFQUdMO0VBQ0ksY0FBYyxFQUFBO0VBR2xCO0VBQ0ksZUFBZTtFQUNmLG1CQUFtQjtFQUVuQixjQUFjLEVBQUE7RUFKbEI7SUFTUSxnQkFBZ0IsRUFBQTtFQVR4QjtJQWFRLGNBQWM7SUFDZCxpQkFBaUIsRUFBQTtFQU96QjtFQUNJO0lBQ0ksa0JBQWtCLEVBQUEsRUFDckI7RUFFTDtFQUNJLG1CQUFtQjtFQU1uQixhQUFhLEVBQUE7RUFQakI7SUFHUSxXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGlCQUFpQixFQUFBO0VBS3pCO0VBQ0ksbUJBQWtCO0VBQ2xCLFlBQVk7RUFDWixlQUFlLEVBQUE7RUFHbkI7RUFDSSx5QkFBeUIsRUFBQTtFQUc3QjtFQUNJLGtCQUFrQjtFQUNsQix3QkFBd0I7RUFDeEIsaUJBQWlCO0VBQ2pCLGdCQUFnQixFQUFBO0VBSXBCO0VBQ0ksWUFBWTtFQUNaLFdBQVc7RUFDWCxZQUFZLEVBQUE7RUFHaEI7RUFFSSw0Q0FBb0M7VUFBcEMsb0NBQW9DO0VBQ3BDLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsaUJBQWlCLEVBQUE7RUFHckI7RUFFSSw0Q0FBb0M7VUFBcEMsb0NBQW9DO0VBQ3BDLFNBQVMsRUFBQTtFQUdiO0VBQ0ksK0dBQStHO0VBQy9HLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQiwwR0FBd0c7RUFDeEcsU0FBUztFQUNULGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLHFCQUFxQixFQUFBO0VBR3pCO0VBQ0ksZUFBZTtFQUNmLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGdCQUFnQixFQUFBO0VBR3BCO0VBQ0ksZUFBZSxFQUFBO0VBR25CO0VBQ0k7SUFDSSxpQkFBaUI7SUFDakIsa0JBQWtCLEVBQUEsRUFDckI7RUFHTDtFQUNJO0lBQ0ksZUFBZSxFQUFBLEVBQ2xCO0VBR0w7RUFDSTtJQUNJLHFCQUFxQixFQUFBO0VBR3pCO0lBQ0ksY0FBYyxFQUFBLEVBQ2pCO0VBR0w7RUFDSSxxQkFBcUIsRUFBQTtFQUd6QjtFQUNJLG1CQUFtQixFQUFBO0VBR3ZCO0VBQ0ksWUFBWSxFQUFBO0VBR2hCO0VBQ0ksZ0JBQWdCLEVBQUE7RUFHcEI7RUFDSSxpQkFBaUIsRUFBQTtFQUdyQjtFQUNJLGlCQUFpQixFQUFBO0VBR3JCO0VBQ0k7SUFDSSxlQUFlLEVBQUEsRUFDbEI7RUFHTDtFQUNJLGdDQUFnQztFQUNoQywwR0FBd0c7RUFFeEcsZUFBZSxFQUFBO0VBR25CO0VBQ0ksaUJBQWlCO0VBQ2pCLHFCQUFxQjtFQUNyQixrQkFBa0IsRUFBQTtFQUd0QjtFQUNJLGlCQUFpQixFQUFBO0VBR3JCO0VBQ0ksV0FBVyxFQUFBO0VBR2Y7RUFDSTtJQUNJLGtCQUFrQixFQUFBLEVBQ3JCO0VBR0w7RUFDSSxxQkFBcUI7RUFDckIsV0FBVztFQUNYLGdCQUFnQjtFQUNoQixtQkFBbUIsRUFBQTtFQUd2QjtFQUNJLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLGdCQUFnQixFQUFBO0VBR3BCO0VBQ0ksc0JBQXNCLEVBQUE7RUFHMUI7RUFDSTtJQUNJLGFBQWEsRUFBQTtFQUdqQjtJQUNJLGtCQUFrQixFQUFBLEVBQ3JCO0VBR0w7RUFDSTtJQUNJLHdCQUF3QixFQUFBLEVBQzNCO0VBR0w7RUFDSTtJQUNJLGFBQWEsRUFBQTtFQUVqQjtJQUNJLGtCQUFrQixFQUFBLEVBQ3JCO0VBR0w7RUFDSTtJQUNJLGFBQWEsRUFBQTtFQUdqQjtJQUNJLGNBQWMsRUFBQSxFQUNqQjtFQUdMO0VBQ0kscUJBQXFCLEVBQUE7RUFHekI7RUFDSSxrQkFBa0I7RUFDbEIsUUFBUSxFQUFBO0VBR1o7RUFDSSxXQUNKLEVBQUE7RUFFQTtFQUNJLGlCQUFnQjtFQUNoQix3QkFBd0IsRUFBQTtFQUc1QjtFQUNJLHdCQUF3QixFQUFBO0VBRzVCO0VBQ0ksbUJBQWtCLEVBQUE7RUFHdEI7RUFDSSxlQUFjLEVBQUE7RUFHbEI7RUFDSSxXQUFXLEVBQUE7RUFHZjtFQUNJLFdBQVcsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZ3JvdXAvZ3JvdXAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWFqb3ItY2F0LWltZy1ob2xkZXIsXHJcbi5taW5vci1jYXQtaW1nLWhvbGRlciB7XHJcbiAgICB3aWR0aDogNTRweDtcclxuICAgIGhlaWdodDogNDFweDtcclxuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcbiAgICBpbWcge1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgIH1cclxufVxyXG5cclxuLnNwYWNlciB7XHJcbiAgICBoZWlnaHQ6IC41ZW07XHJcbiAgICB3aWR0aDogMXB4O1xyXG59XHJcblxyXG5AbWVkaWEobWluLXdpZHRoOiA3NjhweCkge1xyXG4gICAgLm1ham9yLWNhdC1pbWctaG9sZGVye1xyXG4gICAgICAgIHdpZHRoOiA2MHB4O1xyXG4gICAgICAgIGhlaWdodDogNDZweDtcclxuICAgIH1cclxuICAgIC5taW5vci1jYXQtaW1nLWhvbGRlciB7XHJcbiAgICAgICAgd2lkdGg6IDYwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA0NnB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubWlub3ItY2F0LWltZy1ob2xkZXIsIC5tYWpvci1jYXQtaW1nLWhvbGRlciB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxufVxyXG5cclxuLm1pbm9yLWNhdC1jb250YWluZXIge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIC8vIHBhZGRpbmc6IDZweCAxMHB4O1xyXG4gICAgbWFyZ2luOiAwIDEwcHg7XHJcbiAgICAvLyBib3JkZXItYm90dG9tOiAjY2NjIDFweCBzb2xpZDtcclxuXHJcbiAgICBoMiB7XHJcbiAgICAgICAgLy8gY29sb3I6ICM0NDQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcclxuICAgIH1cclxuXHJcbiAgICAucmlnaHQtc3RyZXRjaCB7XHJcbiAgICAgICAgZmxleC1ncm93OiAxMDA7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbWluLWhlaWdodDogNDAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbkBtZWRpYShtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgICAubWlub3ItY2F0LWNvbnRhaW5lciAucmlnaHQtc3RyZXRjaCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgfVxyXG59XHJcbi5taW5vci1jYXQtY29udGFpbmVyLm1ham9yLWNvbnRhaW5lci1vdnIge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgIGgyIHtcclxuICAgICAgICBjb2xvcjogIzQ0NDtcclxuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgfVxyXG4gICAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLm1pbm9yLWNhdC1pbWctaG9sZGVyLCAubWFqb3ItY2F0LWltZy1ob2xkZXIge1xyXG4gICAgcGFkZGluZy1yaWdodDoyMHB4O1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uYnV0dG9uLWNvbG9yIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcbn1cclxuXHJcbnNwYW4uaW9uLXRleHQtbGVmdCB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XHJcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICAgIGZvbnQtc2l6ZTogMS4xZW07XHJcbn1cclxuXHJcblxyXG4uY29udGFjdC1idXR0b24ge1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgd2lkdGg6IDMwcHg7XHJcbiAgICBtYXJnaW46IGF1dG87XHJcbn1cclxuXHJcbi5zdGFja2VkLWJ0bi1jb250YWluZXItdG9wIGlvbi1idXR0b24ge1xyXG4gICAgLy8gUmVtb3ZlcyBib3R0b20gc2hhZG93XHJcbiAgICBjbGlwLXBhdGg6IGluc2V0KC01cHggLTVweCAwcHggLTVweCk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XHJcbn1cclxuXHJcbi5zdGFja2VkLWJ0bi1jb250YWluZXItYm90dG9tIGlvbi1idXR0b24ge1xyXG4gICAgLy8gUmVtb3ZlcyB0b3Agc2hhZG93XHJcbiAgICBjbGlwLXBhdGg6IGluc2V0KDBweCAtNXB4IC01cHggLTVweCk7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5idG4tbGlrZSB7XHJcbiAgICBib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcbiAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwLjllbTtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDAuOWVtO1xyXG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhciwgY29sb3IgMTVtcyBsaW5lYXI7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBtaW4taGVpZ2h0OiAzNnB4O1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAuMDZlbTtcclxufVxyXG5cclxuLnRleHQtY29udGFpbmVyIHtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgcGFkZGluZy10b3A6IDhweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBtaW4taGVpZ2h0OiAzNnB4O1xyXG4gICAgbWF4LWhlaWdodDogbm9uZTtcclxufVxyXG5cclxuLnJlc3BvbnNpdmUtdGV4dCB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6IDk5MXB4KSB7XHJcbiAgICBpb24tY2FyZC1jb250ZW50IHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYShtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudGV4dC1jb250YWluZXIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgIGRpdi5hdm9pZHdyYXAge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAubGVmdC1jb250YWluZXIge1xyXG4gICAgICAgIG1heC13aWR0aDogNjAlO1xyXG4gICAgfVxyXG59XHJcblxyXG4ubGVmdC1jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG5hLmRpc2FibGVkIHtcclxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbn1cclxuXHJcbmEuZGlzYWJsZWQ+aW1nIHtcclxuICAgIG9wYWNpdHk6IDAuNTtcclxufVxyXG5cclxuLnNjb290VXAge1xyXG4gICAgbWFyZ2luLXRvcDogLTVweDtcclxufVxyXG5cclxubGFiZWwge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi52YWx1ZS1jb2wge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuICAgIC5yZXNwb25zaXZlLXRleHQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIH1cclxufVxyXG5cclxuLmlvbi1kaXYge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFzZS1iZyk7XHJcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyLCBjb2xvciAxNW1zIGxpbmVhcjtcclxuICAgIC8vIGJveC1zaGFkb3c6IDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuICAgIG1pbi1oZWlnaHQ6IDJlbTtcclxufVxyXG5cclxuLmxhYmVsLWNvbCB7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIG92ZXJmbG93LXdyYXA6IG5vcm1hbDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcclxufVxyXG5cclxuI2Nvb3AtZ3JpZHMtY29udGFpbmVyIGlvbi1ncmlkIGlvbi1jb2wge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuXHJcbi5yYW5nZS1sYWJlbCB7XHJcbiAgICB3aWR0aDogMzZweDtcclxufVxyXG5cclxuQG1lZGlhKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC50ZXh0LWNlbnRlciB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG59XHJcblxyXG4uY2hlY2stY2VudGVyIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbjogMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcclxuICAgIG1hcmdpbi1ib3R0b206IC0ycHg7XHJcbn1cclxuXHJcbiNzY3JvbGwtaGVhZGVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIG1hcmdpbi10b3A6IC00cHg7XHJcbn1cclxuXHJcbi5wcmVtaXVtIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbn1cclxuXHJcbkBtZWRpYShtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gICAgaW9uLWdyaWQuaGlkZS1sYWJlbHMtZGVza3RvcC1jdXN0b20gbGFiZWwge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLnRleHQtY2VudGVyIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6IDExOTlweCkge1xyXG4gICAgLmhpZGUtbW9iaWxlLWN1c3RvbSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEobWluLXdpZHRoOiAxMjAwcHgpIHtcclxuICAgIC5tb2JpbGUtdmVyc2lvbiB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICAgIC50ZXh0LWNlbnRlciB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOiAxMTk5cHgpIHtcclxuICAgIC5kZXNrdG9wLXZlcnNpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLmJsb2NrLW1vYmlsZSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5kcm9wZG93bi1sYWJlbCwgLmRyb3Bkb3duLWxhYmVsICsgLmFycm93LWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi5hcnJvdyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDRweDtcclxufVxyXG5cclxuLmxhYmVsLWNvbnRhaW5lciB7XHJcbiAgICB3aWR0aDogMTAwJVxyXG59XHJcblxyXG5oMiB7XHJcbiAgICBmb250LXdlaWdodDpib2xkO1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xyXG59XHJcblxyXG5wIHtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcclxufVxyXG5cclxuLm1vYmlsZS12ZXJzaW9uIC5kcm9wZG93bi1sYWJlbCAuYXJyb3cge1xyXG4gICAgbWFyZ2luLWJvdHRvbTotNXB4O1xyXG59XHJcblxyXG4ubW9iaWxlLXZlcnNpb24gLmRyb3Bkb3duLWxhYmVsIGgyIHtcclxuICAgIGRpc3BsYXk6aW5saW5lO1xyXG59XHJcblxyXG5kaXYubWFqb3ItY2F0LWltZy1ob2xkZXIge1xyXG4gICAgd2lkdGg6IDgwcHg7XHJcbn1cclxuXHJcbi5taW5vci1jYXQtaW1nLWhvbGRlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufSJdfQ== */\"","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { PageService } from 'src/app/services/page.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { FamilyInfo } from 'src/app/models/Family';\r\nimport { GroupInfo } from 'src/app/models/Group';\r\nimport { NullValidationHandler } from 'angular-oauth2-oidc';\r\nimport { ProductInfo } from 'src/app/models/ProductInfo';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-group',\r\n templateUrl: './group.component.html',\r\n styleUrls: ['./group.component.scss'],\r\n})\r\nexport class GroupComponent implements OnInit {\r\n @Input() familyCode= '';\r\n @Input() groupCode= '';\r\n @Input() group: GroupInfo;\r\n @Input() products: ProductInfo;\r\n @Input() expanded = false;\r\n\r\n\r\n // groupList: GroupInfo[];\r\n productList: GroupInfo[];\r\n\r\n productInfoList: Array\r\n\r\n loadingProducts = false;\r\n\r\n productCode: string = null;\r\n\r\n groupSelected: string;\r\n\r\n sectionExpanded = false;\r\n\r\n constructor(\r\n private pageService: PageService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private location: Location\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n showHideSection() {\r\n this.sectionExpanded = !this.sectionExpanded;\r\n if (!this.productList) {\r\n this.fetchProducts();\r\n }\r\n }\r\n\r\n fetchProducts() {\r\n this.loadingProducts = true;\r\n this.groupCode = this.group.Code;\r\n this.pageService.getProductList(this.familyCode, this.group.Code).subscribe(ProductInfoList => {\r\n this.loadingProducts = false;\r\n this.productList = ProductInfoList;\r\n if (this.expanded) {\r\n setTimeout(() => {\r\n this.scrollToSection();\r\n }, 10);\r\n }\r\n });\r\n //this.updateURL(this.familyCode, this.groupCode);\r\n }\r\n\r\n // updateURL(familyCode: string, groupCode: string) {\r\n // const newPath = 'distributor-home/' + familyCode + '/' + groupCode;\r\n // if (this.location.path().indexOf(newPath) < 0) {\r\n // this.location.go(newPath);\r\n // }\r\n // }\r\n\r\n redirectToMinor(product: string ) {\r\n this.router.navigateByUrl(`product/${this.familyCode}/${this.groupCode}/${[product]}`);\r\n }\r\n\r\n scrollToSection() {\r\n document.getElementById(this.group.Code).scrollIntoView({behavior: 'smooth'});\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Go to customer page\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{groupName}} by {{global.checkPlural(callerRef.getNextLevelBelowName(2),2)}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{groupName}} by Product Types\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{groupName}} by Channels\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{groupName}} by Customers\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n Remove this filter\\r\\n\\r\\n\\r\\n Remove this filter\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n Go back to group by {{previousFilter()}}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{groupName}} by Product Types\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{groupName}} by Channels\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{groupName}} by Customers\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n Go back to {{callerRef.salesAreaPage.CurrentAreaName}} by {{global.checkPlural(callerRef.getNextLevelBelowName(1),2)}}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcG9wb3Zlci1zYWxlcy1kcmlsbC9wb3BvdmVyLXNhbGVzLWRyaWxsLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { PopoverController } from '@ionic/angular';\r\nimport { GlobalMethodsService } from 'src/app/global-methods.service';\r\nimport { ThrowStmt } from '@angular/compiler';\r\n\r\n@Component({\r\n selector: 'app-popover-sales-drill',\r\n templateUrl: './popover-sales-drill.component.html',\r\n styleUrls: ['./popover-sales-drill.component.scss'],\r\n})\r\nexport class PopoverSalesDrillComponent implements OnInit {\r\n \r\n callerRef: any;\r\n //row: any;\r\n groupId: string;\r\n groupName: string;\r\n customerId;\r\n previousFilterGroup: string;\r\n type: string;\r\n\r\n constructor(private popoverCtrl: PopoverController, public global:GlobalMethodsService) {}\r\n\r\n ngOnInit() {}\r\n\r\n // async closePopover(){\r\n // const onClosedData: string = \"Done with this shit\";\r\n // await this.popoverCtrl.dismiss(onClosedData)\r\n // }\r\n // selectUser(selectedOption: any){\r\n // this.popoverCtrl.dismiss(selectedOption);\r\n // }\r\n\r\n // rowId undefined and groupNext undefined - use current area info with no grouping\r\n // rowId defined and groupNext undefined - go to next level on current selected row, no grouping\r\n // rowId defined and groupNext defined - go to next level on current selected row, use grouping\r\n drillIn(areaId:string, groupNext:string) {\r\n this.popoverCtrl.dismiss();\r\n\r\n // how to get arealevel and areaid? \r\n // - call to get next AreaLevel = always go down 1, use given areaId from row\r\n // - call to get a grouping - if there is a current grouping, stay at same level, else go down 1\r\n var arealevel = this.callerRef.salesAreaPage.CurrentAreaType;\r\n var areaid = this.callerRef.salesAreaPage.CurrentAreaId;\r\n if (groupNext == undefined || this.callerRef.salesAreaPage.CurrentAreaGrouping == 'None'){\r\n arealevel = this.callerRef.getNextLevelBelowName(1);\r\n areaid = areaId;\r\n }\r\n\r\n var groupby = groupNext ? groupNext : 'None';\r\n var filter1type = null;\r\n var filter1id = '';\r\n var filter2type = null;\r\n var filter2id = '';\r\n if (groupNext && this.callerRef.salesAreaPage.CurrentAreaGrouping != 'None') {\r\n // promote current grouping to filter1 and existing filters upward\r\n if (this.callerRef.salesAreaPage.Filters.length == 0){\r\n filter1type = this.callerRef.salesAreaPage.CurrentAreaGrouping;\r\n filter1id = areaId;\r\n }\r\n if (this.callerRef.salesAreaPage.Filters.length == 1) {\r\n filter1type = this.callerRef.salesAreaPage.Filters[0].FilterAreaType;\r\n filter1id = this.callerRef.salesAreaPage.Filters[0].FilterId;\r\n filter2type = this.callerRef.salesAreaPage.CurrentAreaGrouping;\r\n filter2id = areaId;\r\n }\r\n }\r\n this.callerRef.getSalesAreaPage(arealevel, areaid, groupby, filter1type, filter1id, filter2type, filter2id);\r\n }\r\n\r\n // discards current filters and runs new grouping\r\n changeDrill(groupNext:string){\r\n this.popoverCtrl.dismiss();\r\n var arealevel = this.callerRef.salesAreaPage.CurrentAreaType;\r\n var areaid = this.callerRef.salesAreaPage.CurrentAreaId;\r\n var groupby = groupNext ? groupNext : null;\r\n this.callerRef.getSalesAreaPage(arealevel, areaid, groupby, null, '', null, '');\r\n }\r\n\r\n backupGrouping(){\r\n this.popoverCtrl.dismiss();\r\n var arealevel = this.callerRef.salesAreaPage.CurrentAreaType;\r\n var areaid = this.callerRef.salesAreaPage.CurrentAreaId;\r\n var groupby = this.callerRef.salesAreaPage.Filters[this.callerRef.salesAreaPage.Filters.length - 1].FilterAreaType;\r\n // filter1 remains, if there were 2 filters\r\n var filter1 = this.callerRef.salesAreaPage.Filters[0].FilterAreaType;\r\n var filter1id = this.callerRef.salesAreaPage.Filters[0].FilterId;\r\n if (this.callerRef.salesAreaPage.Filters.length < 2){\r\n filter1 = null;\r\n filter1id = '';\r\n } else {\r\n\r\n }\r\n \r\n this.callerRef.getSalesAreaPage(arealevel, areaid, groupby, filter1, filter1id, null, '');\r\n }\r\n\r\n removeFilter(index:number){\r\n this.popoverCtrl.dismiss();\r\n var arealevel = this.callerRef.salesAreaPage.CurrentAreaType;\r\n var areaid = this.callerRef.salesAreaPage.CurrentAreaId;\r\n var groupby = this.callerRef.salesAreaPage.CurrentAreaGrouping;\r\n var filter1 = null;\r\n var filter1id = '';\r\n if (index == 0 && this.callerRef.salesAreaPage.Filters.length > 1) {\r\n filter1 = this.callerRef.salesAreaPage.Filters[1].FilterAreaType;\r\n filter1id = this.callerRef.salesAreaPage.Filters[1].FilterId;\r\n } else if (index == 1){\r\n filter1 = this.callerRef.salesAreaPage.Filters[0].FilterAreaType;\r\n filter1id = this.callerRef.salesAreaPage.Filters[0].FilterId;\r\n }\r\n this.callerRef.getSalesAreaPage(arealevel, areaid, groupby, filter1, filter1id, null, '');\r\n }\r\n\r\n showGroupingOption(groupType, callerType){\r\n if (this.callerRef.salesAreaPage.CurrentAreaGrouping == groupType) return false;\r\n for (var i = 0; i < this.callerRef.salesAreaPage.Filters.length; i++){\r\n if (this.callerRef.salesAreaPage.Filters[i].FilterAreaType == groupType) return false;\r\n }\r\n // don't show Channel if in Customer, they are in a single channel\r\n if (groupType == 'Channel' && callerType == 'row' &&\r\n (this.callerRef.salesAreaPage.CurrentAreaGrouping == 'Customer' || \r\n (this.callerRef.salesAreaPage.CurrentAreaGrouping == 'None' && this.callerRef.salesAreaPage.CurrentAreaType == 'Territory'))) return false;\r\n // don't show Customer if Row is Territory AreaLevel\r\n if (callerType == 'row' && groupType == 'Customer' && this.callerRef.salesAreaPage.CurrentAreaType == 'Salesperson' && this.callerRef.salesAreaPage.CurrentAreaGrouping == 'None') return false;\r\n // don't show Customer if in Customer AreaLevel\r\n if (groupType == 'Customer' && this.callerRef.salesAreaPage.CurrentAreaType == 'Territory' && this.callerRef.salesAreaPage.CurrentAreaGrouping == 'None') return false;\r\n return true;\r\n }\r\n\r\n hasOtherParallelAreas(){\r\n return this.callerRef.salesAreaPage.OtherParallelAreas ? this.callerRef.salesAreaPage.OtherParallelAreas.length > 0 : false;\r\n }\r\n\r\n showMainDrillDown(){\r\n var nextLevel = this.callerRef.getNextLevelBelowName(2);\r\n var noFilter = !this.hasFilter();\r\n var noGrouping = this.callerRef.salesAreaPage.CurrentAreaGrouping == 'None';\r\n return !this.hasFilter() && this.callerRef.salesAreaPage.CurrentAreaGrouping == 'None'\r\n && nextLevel != undefined;\r\n }\r\n\r\n previousFilterForGroup(){\r\n var isGroup = this.type == \"Group\";\r\n var hasFilter = this.hasFilter();\r\n return this.type == \"Group\" && this.hasFilter() }\r\n\r\n previousFilter(){\r\n return this.callerRef.salesAreaPage.Filters.length == 2 ? this.callerRef.salesAreaPage.Filters[1].FilterAreaType :\r\n this.callerRef.salesAreaPage.Filters.length == 1 ? this.callerRef.salesAreaPage.Filters[0].FilterAreaType :\r\n null;\r\n }\r\n\r\n hasFilter(){\r\n return this.callerRef.salesAreaPage.Filters.length > 0;\r\n }\r\n\r\n isCustomerRow(){\r\n if (this.callerRef.salesAreaPage.CurrentAreaGrouping == 'Customer') return true;\r\n if (this.callerRef.salesAreaPage.CurrentAreaType == 'Territory' && this.callerRef.salesAreaPage.CurrentAreaGrouping == 'None' ) return true;\r\n return false;\r\n }\r\n\r\n}\r\n","module.exports = \"
SParc technology provides variable feed pressure through back-edge profiling. (Product experts will provide the copy)
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc3ByYy1oZWxwL3NwcmMtaGVscC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-sprc-help',\r\n templateUrl: './sprc-help.component.html',\r\n styleUrls: ['./sprc-help.component.scss'],\r\n})\r\nexport class SprcHelpComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","module.exports = \" \\r\\n Name:\\r\\n \\r\\n \\r\\n \\r\\n Phone Number:\\r\\n \\r\\n \\r\\n \\r\\n Alternate Phone Number:\\r\\n \\r\\n \\r\\n \\r\\n Address 1:\\r\\n \\r\\n \\r\\n \\r\\n Address 2:\\r\\n \\r\\n \\r\\n \\r\\n City:\\r\\n \\r\\n \\r\\n \\r\\n State: \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Country: \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Postal Code:\\r\\n \\r\\n \\r\\n \\r\\n Territory Salesperson:\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fax Number:\\r\\n \\r\\n \\r\\n \\r\\n Website Address:\\r\\n \\r\\n \\r\\n \\r\\n Status: \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \"","module.exports = \".ion-toggle-label {\\n float: right;\\n padding-right: 4px;\\n font-size: 14px; }\\n\\n.small-label {\\n max-width: 3em; }\\n\\n.action-sheet-group {\\n overflow: scroll !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy91cGRhdGUtY3VzdG9tZXIvQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxjb21wb25lbnRzXFx1cGRhdGUtY3VzdG9tZXJcXHVwZGF0ZS1jdXN0b21lci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksWUFBWTtFQUNaLGtCQUFpQjtFQUNqQixlQUFjLEVBQUE7O0FBR2xCO0VBQ0ksY0FBYyxFQUFBOztBQUVsQjtFQUNJLDJCQUEyQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy91cGRhdGUtY3VzdG9tZXIvdXBkYXRlLWN1c3RvbWVyLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaW9uLXRvZ2dsZS1sYWJlbCB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OjRweDtcclxuICAgIGZvbnQtc2l6ZToxNHB4O1xyXG59XHJcblxyXG4uc21hbGwtbGFiZWwge1xyXG4gICAgbWF4LXdpZHRoOiAzZW07XHJcbn1cclxuLmFjdGlvbi1zaGVldC1ncm91cCB7XHJcbiAgICBvdmVyZmxvdzogc2Nyb2xsICFpbXBvcnRhbnQ7XHJcbn0iXX0= */\"","import { Component, NgModule, OnInit, Input } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { CustomerDetails } from '../../models/customerDetails';\r\nimport { CustomerType } from 'src/app/models/enums/CustomerType';\r\nimport { Subscription } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Observable, of } from 'rxjs';\r\nimport { AnonymousSubject } from 'rxjs/internal/Subject';\r\nimport { TerritorySalesperson } from 'src/app/models/TerritorySalesperson';\r\nimport { SelectListItem } from './../../models/SelectListItem';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { EventService } from 'src/app/services/event.service';\r\nimport { ListService } from 'src/app/services/list.service';\r\nimport { SalesService } from 'src/app/services/sales.service';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TitleCasePipe } from '@angular/common';\r\nimport { CustomerStatus } from './../../models/CustomerStatus';\r\nimport { CustomerUpdate } from 'src/app/models/CustomerUpdate';\r\n\r\n@Component({\r\n selector: 'app-update-customer',\r\n templateUrl: './update-customer.html',\r\n styleUrls: ['./update-customer.scss']\r\n})\r\n\r\nexport class UpdateCustomerPage implements OnInit {\r\n id: number;\r\n customer: any; //CustomerDetails\r\n states: SelectListItem[];\r\n countries: SelectListItem[];\r\n territorySalesPeople: TerritorySalesperson[];\r\n selectedTerritorySalesPerson: any;\r\n territorySalesPerson: any;\r\n statesInitialized = false;\r\n statesLoading = true;\r\n saving = false;\r\n customerStatus: CustomerStatus;\r\n selectedStatus: any;\r\n CustomerFormChanges = new Map();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private listService: ListService,\r\n private customerService: CustomerService,\r\n private modalController: ModalController,\r\n private eventService: EventService,\r\n private salesService: SalesService,\r\n private titlePipe: TitleCasePipe\r\n ) {\r\n this.customer = {\r\n Id: this.id,\r\n CustomerNumber: '',\r\n Name: '',\r\n NickName: '',\r\n Address1: '',\r\n City: '',\r\n State: '',\r\n Country: '',\r\n CustomerType: '',\r\n TerritoryInfo: '',\r\n Active: true,\r\n Suspended: false,\r\n Address2: '',\r\n StateId: -1,\r\n CountryId: 100,\r\n PostalCode: '',\r\n PhoneNumber: '',\r\n AltPhoneNumber: '',\r\n FaxNumber: '',\r\n WebAddress: '',\r\n Deleted: '',\r\n LastModifiedUserId: -1,\r\n LastModifiedBy: '',\r\n CreatedByUserId: -1,\r\n CreatedBy: '',\r\n MorseCompetitivePosition: '',\r\n MorseCompetitiveShare: -1,\r\n TerritoryI: -1,\r\n TerritoryName: '',\r\n TerritoryNumber: -1,\r\n ChannelId: -1,\r\n Channel: '',\r\n ChannelAbbrev: '',\r\n TradingAreaId: -1,\r\n TradingArea: '',\r\n SalesAreaId: -1,\r\n SalesArea: '',\r\n PrimaryContactName: '',\r\n Contacts: '',\r\n BilltoNumber: '',\r\n SalesforceId: '',\r\n BillToNumber: ''\r\n };\r\n this.customerStatus = {\r\n isActive: true,\r\n isDeleted: false,\r\n isSuspended: false\r\n };\r\n this.selectedStatus = 'Active';\r\n }\r\n ngOnInit() {\r\n this.id = +this.route.snapshot.paramMap.get('id');\r\n this.loadOptionsAsync();\r\n }\r\n\r\n async loadOptionsAsync() {\r\n await this.getCustomer();\r\n if (this.customer.CustomerType == '') {\r\n this.customer.CustomerType = 'EndUser';\r\n }\r\n\r\n console.log('CustomerType: ' + this.customer.CustomerType);\r\n await this.getCountriesAsync();\r\n await this.getStatesAsync(this.customer.CountryId);\r\n await this.getTerritoriesSalespeopleAsync();\r\n this.CustomerFormChanges.clear();\r\n }\r\n\r\n customerUpdate() {\r\n console.log('Update Customer Pressed');\r\n this.customerService.updateCustomer(Array.from(this.CustomerFormChanges.values())).then(() => {\r\n alert('Customer Data Updated');\r\n });\r\n }\r\n\r\n async getCustomer() {\r\n try {\r\n await this.customerService.getCustomer(this.id).toPromise().then(customer => {\r\n this.customer = customer;\r\n });\r\n } catch (error) {\r\n console.log('Error Getting Customer Object - Likely Service Issue (MKWebService). Details:');\r\n console.error(error);\r\n }\r\n console.log(this.customer.Name);\r\n }\r\n\r\n async getStatesAsync(countryId: number) {\r\n try {\r\n //Issue found with country ID 27 not returning any states. In testing 27 was found to be US - Need to verify this\r\n if (countryId==27){\r\n countryId=100;\r\n }\r\n await this.listService.getStates(countryId).toPromise().then(states => {\r\n this.states = [];\r\n this.states = JSON.parse(states);\r\n });\r\n } catch (error) {\r\n console.log('Error Getting States Object - Likely Service Issue (MKWebService). Details:');\r\n console.error(error);\r\n }\r\n\r\n }\r\n async getCountriesAsync() {\r\n await this.listService.getCountries().toPromise().then(countries => {\r\n this.countries = JSON.parse(countries);\r\n });\r\n }\r\n\r\n async getTerritoriesSalespeopleAsync() {\r\n await this.salesService.getTerritoriesSalespeople().toPromise().then(territorySalesPeople => {\r\n this.territorySalesPeople = territorySalesPeople.sort((a, b) => this.alphaSort2(a, b));\r\n });\r\n this.loadTerritory();\r\n }\r\n\r\n alphaSort(a: SelectListItem, b: SelectListItem) {\r\n if (a.Text < b.Text) {\r\n return -1;\r\n } else if (a.Text > b.Text) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n alphaSort2(a: TerritorySalesperson, b: TerritorySalesperson) {\r\n if (a.DisplayName < b.DisplayName) {\r\n return -1;\r\n } else if (a.DisplayName > b.DisplayName) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n loadTerritory() {\r\n console.log('TerritoryNum:' + this.customer.TerritoryNumber.toString());\r\n this.selectedTerritorySalesPerson = \r\n this.territorySalesPeople.find(x => x.TerritoryNumber == this.customer.TerritoryName).DisplayName;\r\n console.log(this.selectedTerritorySalesPerson);\r\n }\r\n \r\n changeTerritory (change) {\r\n this.selectedTerritorySalesPerson = change.detail.value;\r\n this.changeData(change, 'territory_salesperson');\r\n }\r\n\r\n changeStatus (change) {\r\n this.selectedStatus = change.detail.value;\r\n //this.changeData(change.detail.value,'Status')\r\n //Could not find this field - is it saved witht he data?\r\n\r\n if (change.detail.value == 'Active'){\r\n this.customerStatus = {\r\n isActive: true,\r\n isDeleted: false,\r\n isSuspended: false\r\n };\r\n } else if (change.detail.value == 'Deleted'){\r\n this.customerStatus = {\r\n isActive: false,\r\n isDeleted: true,\r\n isSuspended: false\r\n };\r\n } else if (change.detail.value == 'Suspended'){\r\n this.customerStatus = {\r\n isActive: false,\r\n isDeleted: false,\r\n isSuspended: true\r\n };\r\n }\r\n }\r\n\r\n changeData(event, fieldName) {\r\n if (this.customer==null) {\r\n return;\r\n }\r\n if (fieldName == 'state_id' && event.detail.value!=\"\" && this.states!=null) {\r\n this.queueEdit(fieldName, this.states.find(x => x.Text == event.detail.value).Value);\r\n } else if (fieldName == 'country_id' && event.detail.value!=\"\" && this.countries!=null) {\r\n this.queueEdit(fieldName, this.countries.find(x => x.Text == event.detail.value).Value);\r\n } else {\r\n this.queueEdit(fieldName, event.detail.value);\r\n }\r\n }\r\n\r\n queueEdit(fieldName: string, fieldValue: any) {\r\n const customerUpdate = new CustomerUpdate(this.customer.Id, this.customer.CustomerType, fieldName, fieldValue);\r\n this.CustomerFormChanges.set(fieldName, customerUpdate);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GlobalMethodsService {\r\n\r\n constructor() { }\r\n\r\n public checkPlural(word, count, wordIndexInString, knownSuffix):string {\r\n var plurals = {\r\n 'Salesperson':'Salespeople',\r\n 'Territory':'Territories'\r\n }\r\n\r\n return count == 1 ? word : plurals[word] ? plurals[word] : word + 's';\r\n }\r\n\r\n public addIdSuffix(type:string, id:string){\r\n if (type != 'Divison' && type != 'Region' && type != 'Salesperson') return ' (' + id + ')';\r\n return '';\r\n }\r\n}\r\n","export class BladeSearchResult {\r\n B1BRNA: string; //Name\r\n B1BDS: string; //Description\r\n B2TOOD: string; //Tooth Description\r\n sortOrder: number; //present blades in correct order of use\r\n BreakIn: string;\r\n thicknessImperial: number;\r\n thicknessMetric: number;\r\n widthMetric: number;\r\n widthImperial: number;\r\n tpiDesc: string;\r\n feedRate: number;\r\n cutTime: string;\r\n lifeFactor: string;\r\n materialgrade_id: number;\r\n materialgrade_name: string;\r\n materialgradetype_text: string;\r\n setStyle: string;\r\n}","import { UnitType } from './enums/UnitType';\r\nimport { MaterialShapeAndSize } from './MaterialShapeAndSize';\r\nimport { PTAArbor } from './PTAArbor';\r\nimport { PTACircsawDiameterAndArborSize } from './PTACircsawDiameterandArborSize';\r\nimport { PTADiameter } from './PTADiameter';\r\nimport { PTAHandsawLengthModel } from './PTAHandsawLengthModel';\r\nimport { PTAPortabandLengthWidthThickness } from './PTAPortabandLengthWidthThickness';\r\nimport { PTARecipBladeLengthWdthTPIModel } from './PTARecipBladeLengthWdthTPIModel';\r\nimport { RevDiaArborPinhole } from './RevolutionWizard/RevDiaArborPinhole';\r\n\r\nexport class BladeWizardInputsBand {\r\n chipLoad: string;\r\n aggressive: string;\r\n performance: string;\r\n performanceName: string;\r\n preferedUnits: UnitType;\r\n bladeWidth: string;\r\n materialShapeAndSize: MaterialShapeAndSize;\r\n airSawCheckboxType: AirSawCheckboxType;\r\n majorminorcats: string[];\r\n jigShankType: string;\r\n majorminorratingsort: string[];\r\n\r\n ptaCircsawDiameter: PTADiameter;\r\n ptaCircsawDiameterId: number;\r\n\r\n ptaCircsawArbor: PTAArbor;\r\n ptaCircsawArborId: number;\r\n\r\n ptaRecipBladeLength: any;\r\n ptaRecipBladeLengthId: number;\r\n ptaRecipBladeTPI: any;\r\n ptaRecipBladeTPIId: number;\r\n\r\n ptaHandsawLength: PTAHandsawLengthModel;\r\n ptaHandsawLengthId: number;\r\n\r\n ptaPortabandLengthWidthThickness: PTAPortabandLengthWidthThickness;\r\n\r\n drillToolType: DrillToolType;\r\n drillMajorMinorCategoryOptionId: number;\r\n drillMajorMinorCategory: MajorMinorCategoryOption;\r\n drillCutDepth: number;\r\n drillHoleSize: number;\r\n\r\n ptaThickness: number;\r\n\r\n machineManufacturerId: number;\r\n machineModelId: number;\r\n manufacturerName: string;\r\n modelName: string;\r\n\r\n revDiaArborPinhole: RevDiaArborPinhole;\r\n\r\n materials: BladeMaterial[];\r\n};\r\n\r\nexport class MajorMinorCategoryOption {\r\n Label: string;\r\n Value: MajorMinorCategory;\r\n Visible: boolean;\r\n}\r\n \r\nexport class MajorMinorCategory {\r\n Id: number;\r\n MajorCategory: string;\r\n MinorCategory: string;\r\n}\r\n\r\nexport enum DrillToolType {\r\n StandardHoleCutting,\r\n PrecisionProductionHoleCutting,\r\n WoodBoring\r\n }\r\n\r\nexport enum AirSawCheckboxType {\r\n None = 'NIL',\r\n USH = 'USH',\r\n AIR = 'AIR'\r\n}\r\n\r\nexport enum DrillMinorCategory {\r\n MHT = 'MHT',\r\n DIA = 'DIA',\r\n MHG = 'MHG',\r\n RCL = 'RCL',\r\n CTK = 'CTK',\r\n STP = 'STP',\r\n SPA = 'SPA',\r\n AUG = 'AUG'\r\n}\r\n\r\nexport enum DrillMajorCategory {\r\n HOL = 'HOL',\r\n HCP = 'HCP',\r\n BOR = 'BOR'\r\n}\r\n\r\nexport class BladeMaterial {\r\n // fakeId: number;\r\n materialId: number;\r\n materialName: string;\r\n materialGradeId: number;\r\n materialGrade: string;\r\n}","import { CartItem } from './CartItem';\r\n\r\nexport class CartPopup {\r\n QuoteNumber: number;\r\n QuoteDate: Date;\r\n CartCount: number;\r\n CartItems: CartItem[];\r\n CartTotalPrice: number;\r\n}\r\n","export class CatalogInfo {\r\n Code: string;\r\n Name: string;\r\n ImageUrl: string;\r\n Blurb: string; // empty for now\r\n}\r\n","import { ProductCrossoverImage } from './ProductCrossoverImage';\r\n\r\nexport class CompetitiveXRefSearchResult {\r\n Id: number;\r\n Title: string;\r\n\r\n Competitor: string;\r\n Competitor_Brand: string;\r\n Competitor_Blade_Description: string;\r\n Competitor_PartNumber: string;\r\n Product_Category: string;\r\n CrossOver_Type: string;\r\n Morse_CrossOver: string;\r\n Morse_ModelNumber: string;\r\n Morse_PartNumber: string;\r\n\r\n Other_Information: string;\r\n Packaging: string;\r\n Images: ProductCrossoverImage[];\r\n Url: string;\r\n\r\n // These will get set when the method below them runs. I'd make the properties functions but they keep getting called\r\n // and I want it to happen once.\r\n competitorBrandImage: ProductCrossoverImage;\r\n competitorImage: ProductCrossoverImage;\r\n morseImage: ProductCrossoverImage;\r\n\r\n processImages() {\r\n let numberOfCompetitorImages = 0, numberOfMorseImages = 0;\r\n for (let index = 0; index < this.Images.length; index++) {\r\n if (this.Images[index].type === 'Morse') {\r\n numberOfMorseImages++;\r\n } else {\r\n numberOfCompetitorImages++;\r\n }\r\n }\r\n\r\n if (numberOfCompetitorImages === 2) {\r\n this.competitorBrandImage = this.Images[0];\r\n } else {\r\n this.competitorBrandImage = null;\r\n }\r\n\r\n if (numberOfCompetitorImages === 2) {\r\n this.competitorImage = this.Images[1];\r\n } else if (numberOfCompetitorImages === 1) {\r\n this.competitorImage = this.Images[0];\r\n } else {\r\n this.competitorImage = null;\r\n }\r\n\r\n this.morseImage = this.Images.find(x => x.type === 'Morse');\r\n }\r\n}\r\n","import { ContactMethod } from './ContactMethod';\r\nimport { ContactListItem } from './ContactListItem';\r\n\r\nexport class Contact extends ContactListItem {\r\n ContactMethods: ContactMethod[];\r\n}\r\n","import { ContactMethod } from './ContactMethod';\r\n\r\nexport class ContactListItem {\r\n Id: number;\r\n FirstName: string;\r\n LastName: string;\r\n FullName: string;\r\n Position: string; // Role\r\n AccountId: string;\r\n AccountDisplay: string;\r\n IsPrimaryContact: boolean;\r\n PrimaryContactMethod: ContactMethod;\r\n DisplayName: string;\r\n}\r\n","export class ContactUsRequest {\r\n FullName: string;\r\n Email: string;\r\n PhoneNumber: string;\r\n Type: string;\r\n Info: string;\r\n CustNo: string;\r\n}\r\n","export class Country\r\n{\r\n public id: number; \r\n public name: string;\r\n public abbreviation: string;\r\n}","/**\r\n * A state that may be found within a country. \r\n * For example one of the 50 states of the United States.\r\n */\r\nexport class CountryState \r\n{\r\n public id: number; \r\n public countryId: number;\r\n public name: string;\r\n public abbreviation: string;\r\n public StateMk_SXSTPR: string;\r\n}","export class CustomerBasicProperties {\r\n Id: number;\r\n CustomerNumber: string;\r\n BillToNumber: string;\r\n Name: string;\r\n}\r\n","import { CustomerListItem } from './CustomerListItem';\r\n\r\nexport class CustomerDetails extends CustomerListItem {\r\n Address2: string;\r\n StateId: number;\r\n CountryId: number;\r\n PostalCode: string;\r\n PhoneNumber: string;\r\n AltPhoneNumber: string;\r\n FaxNumber: string;\r\n WebAddress: string;\r\n Deleted: string;\r\n LastModifiedUserId: number;\r\n LastModifiedBy: string;\r\n CreatedByUserId: number;\r\n CreatedBy: string;\r\n MorseCompetitivePosition: string;\r\n MorseCompetitiveShare: number;\r\n TerritoryI: number;\r\n TerritoryName: string;\r\n TerritoryNumber: number;\r\n ChannelId: number;\r\n Channel: string;\r\n ChannelAbbrev: string;\r\n TradingAreaId: number;\r\n TradingArea: string;\r\n SalesAreaId: number;\r\n SalesArea: string;\r\n PrimaryContactName: string;\r\n\r\n Contacts: any;\r\n}\r\n\r\n\r\n// public ContactMethod PrimaryContactMethod { get; set; }","import { CustomerBasicProperties } from './CustomerBasicProperties';\r\n\r\nexport class CustomerListItem extends CustomerBasicProperties {\r\n NickName: string;\r\n Address1: string;\r\n City: string;\r\n State: string;\r\n Country: string;\r\n CustomerType: string;\r\n TerritoryInfo: string;\r\n Active: boolean;\r\n Suspended: boolean;\r\n BilltoNumber: string;\r\n SalesforceId: string;\r\n AccountLevel: string;\r\n AccountLevelMin: number;\r\n AccountLevelMax: number;\r\n AccountLevelRange: string;\r\n Territory: string;\r\n TerritorySalesperson: string;\r\n}\r\n","export class CustomerUpdate {\r\n constructor(public AccountId: number, public CustomerType: string, public FieldName: string, public FieldValue: string) { }\r\n}","export class EndUserDistributor\r\n{\r\n customerNumber: string;\r\n appEndUserId: number;\r\n DistributorId: number;\r\n distributorName: string;\r\n territory: string;\r\n territorySalesPerson: string;\r\n isDefault: boolean;\r\n createDate: boolean;\r\n}\r\n","import { Country } from \"./Country\";\r\nimport { CountryState } from \"./CountryState\";\r\n\r\nexport class EndUserProfile\r\n{\r\n constructor(username: string, emailAddress: string)\r\n {\r\n this.username = username;\r\n this.emailaddress = emailAddress;\r\n this.contactpref = false;\r\n this.firstname = null; \r\n this.lastname = null; \r\n this.address1 = null; \r\n this.address2 = null; \r\n this.city = null; \r\n this.state = null; \r\n this.country = null; \r\n this.postalcode = null; \r\n this.landline = null; \r\n this.cellphone = null; \r\n this.fax = null; \r\n this.units = 'imperial';\r\n this.theme = 'light';\r\n }\r\n\r\n public username: string;\r\n public firstname: string;\r\n public lastname: string;\r\n public emailaddress: string;\r\n public address1: string;\r\n public address2: string;\r\n public city: string;\r\n public state: string;\r\n public country: string;\r\n public postalcode: string;\r\n public landline: string;\r\n public cellphone: string;\r\n public fax: string; \r\n public contactpref: boolean;\r\n public units: string;\r\n public theme: string;\r\n}\r\n\r\nexport class EndUserProfileForm {\r\n constructor() {\r\n\r\n }\r\n\r\n FirstName: string;\r\n LastName: string;\r\n Phone: string;\r\n Fax: string;\r\n EmailAddress: string;\r\n Address1: string;\r\n Address2: string;\r\n Country: string;\r\n City: string;\r\n State: string;\r\n PostalCode: string;\r\n ContactPref: boolean;\r\n Landline: string;\r\n Units: string;\r\n}","import { Room } from './Room';\r\nimport { Sensitivity } from './enums/Sensitivity';\r\n\r\nexport class Event {\r\n id: string;\r\n start: any;\r\n end: any;\r\n title: string;\r\n type: string;\r\n body: string;\r\n location: string;\r\n customerId: number;\r\n agenda: string;\r\n requiredAttendees: Person[];\r\n optionalAttendees: Person[];\r\n resources: string[];\r\n room: Room;\r\n sensitivity: Sensitivity;\r\n customers: any;\r\n isMarketingEvent: any;\r\n // Room: Room;\r\n}\r\n","import { CatalogInfo } from './CatalogInfo';\r\nimport { GroupInfo } from './Group';\r\n\r\nexport class FamilyInfo extends CatalogInfo {\r\n GroupInfoList: GroupInfo[];\r\n}\r\n","import { CatalogInfo } from './CatalogInfo';\r\nimport { ProductInfo } from './ProductInfo';\r\n\r\nexport class GroupInfo extends CatalogInfo {\r\n ProductInfoList: ProductInfo[];\r\n}\r\n","export class PageInfo {\r\n OdpCustomerNumber: string;\r\n OdpCustomerName: string;\r\n SalesAccountId: number;\r\n OdpCartCount: number;\r\n showCart: boolean;\r\n showSearch: boolean;\r\n showAccount: boolean;\r\n showPrices: boolean;\r\n showCustomerPart: boolean;\r\n BillToNumber: string;\r\n SalesforceId: string;\r\n}\r\n","export class PagedResult {\r\n Data: Array;\r\n Total: number;\r\n}\r\n","import { CatalogInfo } from './CatalogInfo';\r\n\r\n\r\nexport class ProductInfo extends CatalogInfo {\r\n}\r\n","export class MachineManufacturer {\r\n Id: number;\r\n name: string;\r\n is_active: boolean;\r\n}","export class MachineModel {\r\n Id: number;\r\n machine_manufacturer_id: number;\r\n name: string;\r\n is_active: boolean;\r\n is_bandsaw: boolean;\r\n}","export class Room {\r\n Name: string;\r\n Address: string;\r\n Id: number;\r\n RoutingType: string;\r\n MailboxType: number;\r\n}\r\n","export class SalesCall {\r\n Id: number;\r\n AccountId: number;\r\n StartDateTime: Date;\r\n EndDateTime: Date;\r\n CreatedOn: Date;\r\n CreatedBy: number;\r\n ModifiedOn: Date;\r\n ModifiedBy: number;\r\n}\r\n","export class Task {\r\n Subject: string;\r\n Body: string;\r\n DueDate: Date;\r\n Contacts: string[];\r\n Overdue: boolean;\r\n ComingDue: boolean;\r\n Status: string;\r\n Assigner: string;\r\n Id: any;\r\n}\r\n","import { DrivingDirectionsAppType } from './enums/DrivingDirectionsAppType';\r\n\r\nexport class UserSettings {\r\n FirstName: string;\r\n MiddleName: string;\r\n FamilyName: string;\r\n Email: string;\r\n Domain: string;\r\n Currency: number;\r\n Language: string;\r\n Units: string;\r\n DrivingDirectionsApp: string;\r\n Phone: string;\r\n Theme: string;\r\n}\r\n","export enum CustomerType {\r\n All = 'All',\r\n Distributor = 'Distributor',\r\n EndUser = 'End User',\r\n RepAgency = 'Rep Agency'\r\n}\r\n","export enum NotificationType {\r\n Task = 1\r\n }","export enum Sensitivity {\r\n Normal = 0,\r\n Personal = 1,\r\n Private = 2,\r\n Confidential = 3\r\n}","export enum TaskStatus {\r\n NotStarted = 1,\r\n InProgress = 2,\r\n Completed = 3\r\n }\r\n","export enum UnitType {\r\n Imperial = 'imperial',\r\n Metric = 'metric'\r\n }\r\n","module.exports = \".right-align {\\n text-align: right; }\\n .right-align ::-webkit-input-placeholder {\\n text-align: right; }\\n .btn-col.custom-size ion-button,\\n.btn-col.custom-size ion-button img {\\n height: 100%;\\n width: 100%;\\n max-width: 65px;\\n max-height: 60px; }\\n .btn-col button {\\n padding: 4px; }\\n .suffix-container {\\n margin-left: auto;\\n margin-right: 30px;\\n position: relative;\\n display: inline-block; }\\n .suffix {\\n position: absolute;\\n right: -30px; }\\n .slide-end {\\n position: absolute;\\n left: 0px;\\n bottom: -40px; }\\n ion-card {\\n margin-bottom: 20px; }\\n .custom-size ion-button,\\n.custom-size ion-button img {\\n height: 100%;\\n width: 100%;\\n max-width: 60px;\\n max-height: 60px; }\\n .close-btn {\\n position: absolute;\\n top: 4px;\\n right: 4px; }\\n .close-btn > ion-icon {\\n margin: 0px; }\\n .title-error {\\n font-size: 14px;\\n margin-top: -8px;\\n margin-left: 4px; }\\n #performance {\\n margin-left: 56px; }\\n .ios #performance {\\n margin-left: 31px;\\n text-overflow: unset;\\n margin-right: 12px; }\\n .ios #performance {\\n margin-right: 8px; }\\n @media (max-width: 360px) {\\n .ios #performance {\\n margin-left: 12px;\\n text-overflow: unset;\\n padding-right: 12px; } }\\n ion-card:last-of-type {\\n margin-bottom: 0px; }\\n .material-shape-img {\\n height: 65px;\\n width: 70px; }\\n .bundle-img {\\n height: 85px;\\n width: 85px;\\n float: left; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvYmxhZGV3aXphcmQvQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxwYWdlc1xcYmxhZGV3aXphcmRcXGJsYWRld2l6YXJkLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFpQixFQUFBO0VBRHJCO0lBR00saUJBQWlCLEVBQUE7RUFJdkI7O0VBRUksWUFBWTtFQUNaLFdBQVc7RUFDWCxlQUFlO0VBQ2YsZ0JBQWdCLEVBQUE7RUFHcEI7RUFDSSxZQUNKLEVBQUE7RUFFQTtFQUNJLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLHFCQUFxQixFQUFBO0VBR3ZCO0VBQ0Msa0JBQWtCO0VBQ2xCLFlBQVksRUFBQTtFQUdmO0VBQ0ksa0JBQWlCO0VBQ2pCLFNBQVE7RUFDUixhQUFZLEVBQUE7RUFHaEI7RUFDSSxtQkFBa0IsRUFBQTtFQUd0Qjs7RUFFSSxZQUFZO0VBQ1osV0FBVztFQUNYLGVBQWU7RUFDZixnQkFBZ0IsRUFBQTtFQUdwQjtFQUNJLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsVUFBVSxFQUFBO0VBR2Q7RUFDSSxXQUFXLEVBQUE7RUFHZjtFQUNJLGVBQWM7RUFDZCxnQkFBZTtFQUNmLGdCQUFlLEVBQUE7RUFPbkI7RUFDSSxpQkFBZ0IsRUFBQTtFQUdwQjtFQUNJLGlCQUFnQjtFQUNoQixvQkFBbUI7RUFDbkIsa0JBQWlCLEVBQUE7RUFHckI7RUFDSSxpQkFBZ0IsRUFBQTtFQUdwQjtFQUNJO0lBQ0ksaUJBQWdCO0lBQ2hCLG9CQUFtQjtJQUNuQixtQkFBa0IsRUFBQSxFQUNyQjtFQU1MO0VBQ0ksa0JBQWlCLEVBQUE7RUFHckI7RUFDSSxZQUFZO0VBQ1osV0FBVyxFQUFBO0VBR2Y7RUFDSSxZQUFXO0VBQ1gsV0FBVTtFQUNWLFdBQVcsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2JsYWRld2l6YXJkL2JsYWRld2l6YXJkLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yaWdodC1hbGlnbiB7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgfVxyXG59XHJcblxyXG4uYnRuLWNvbC5jdXN0b20tc2l6ZSBpb24tYnV0dG9uLFxyXG4uYnRuLWNvbC5jdXN0b20tc2l6ZSBpb24tYnV0dG9uIGltZyB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogNjVweDtcclxuICAgIG1heC1oZWlnaHQ6IDYwcHg7XHJcbn1cclxuXHJcbi5idG4tY29sIGJ1dHRvbiB7XHJcbiAgICBwYWRkaW5nOjRweFxyXG59XHJcblxyXG4uc3VmZml4LWNvbnRhaW5lciB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogMzBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB9XHJcbiAgXHJcbiAgLnN1ZmZpeCB7XHJcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgcmlnaHQ6IC0zMHB4O1xyXG4gIH1cclxuXHJcbi5zbGlkZS1lbmQge1xyXG4gICAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgICBsZWZ0OjBweDtcclxuICAgIGJvdHRvbTotNDBweDtcclxufVxyXG5cclxuaW9uLWNhcmQge1xyXG4gICAgbWFyZ2luLWJvdHRvbToyMHB4O1xyXG59XHJcblxyXG4uY3VzdG9tLXNpemUgaW9uLWJ1dHRvbixcclxuLmN1c3RvbS1zaXplIGlvbi1idXR0b24gaW1nIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiA2MHB4O1xyXG4gICAgbWF4LWhlaWdodDogNjBweDtcclxufVxyXG5cclxuLmNsb3NlLWJ0biB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IFxyXG4gICAgdG9wOiA0cHg7IFxyXG4gICAgcmlnaHQ6IDRweDtcclxufVxyXG5cclxuLmNsb3NlLWJ0biA+IGlvbi1pY29uIHtcclxuICAgIG1hcmdpbjogMHB4O1xyXG59XHJcblxyXG4udGl0bGUtZXJyb3Ige1xyXG4gICAgZm9udC1zaXplOjE0cHg7IFxyXG4gICAgbWFyZ2luLXRvcDotOHB4OyBcclxuICAgIG1hcmdpbi1sZWZ0OjRweDtcclxufVxyXG5cclxuLy8gLmlvcy5pbi1pdGVtIHtcclxuLy8gICAgIG1hcmdpbi1yaWdodDoycHg7XHJcbi8vIH1cclxuXHJcbiNwZXJmb3JtYW5jZSB7XHJcbiAgICBtYXJnaW4tbGVmdDo1NnB4OyBcclxufVxyXG5cclxuLmlvcyAjcGVyZm9ybWFuY2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6MzFweDsgXHJcbiAgICB0ZXh0LW92ZXJmbG93OnVuc2V0O1xyXG4gICAgbWFyZ2luLXJpZ2h0OjEycHg7XHJcbn1cclxuXHJcbi5pb3MgI3BlcmZvcm1hbmNlIHtcclxuICAgIG1hcmdpbi1yaWdodDo4cHg7XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6IDM2MHB4KSB7XHJcbiAgICAuaW9zICNwZXJmb3JtYW5jZSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6MTJweDsgXHJcbiAgICAgICAgdGV4dC1vdmVyZmxvdzp1bnNldDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OjEycHg7XHJcbiAgICB9XHJcbiAgICAvLyAuaW9zICNjaGlwbG9hZCB7XHJcbiAgICAvLyAgICAgbWFyZ2luLWxlZnQ6MTJweDtcclxuICAgIC8vIH1cclxufVxyXG5cclxuaW9uLWNhcmQ6bGFzdC1vZi10eXBlIHtcclxuICAgIG1hcmdpbi1ib3R0b206MHB4O1xyXG59XHJcblxyXG4ubWF0ZXJpYWwtc2hhcGUtaW1ne1xyXG4gICAgaGVpZ2h0OiA2NXB4O1xyXG4gICAgd2lkdGg6IDcwcHg7XHJcbn1cclxuXHJcbi5idW5kbGUtaW1nIHtcclxuICAgIGhlaWdodDo4NXB4O1xyXG4gICAgd2lkdGg6ODVweDtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG59Il19 */\"","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 { FiletestPage } from './filetest.page';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: FiletestPage\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: [FiletestPage]\r\n})\r\nexport class FiletestPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n filetest\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \".attachment-list {\\n margin-top: 2em;\\n margin-bottom: 8px;\\n width: 100%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvZmlsZXRlc3QvQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxwYWdlc1xcZmlsZXRlc3RcXGZpbGV0ZXN0LnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJLGVBQWM7RUFDZCxrQkFBaUI7RUFDakIsV0FBVSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvZmlsZXRlc3QvZmlsZXRlc3QucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5hdHRhY2htZW50LWxpc3Qge1xyXG4gICAgbWFyZ2luLXRvcDoyZW07IFxyXG4gICAgbWFyZ2luLWJvdHRvbTo4cHg7XHJcbiAgICB3aWR0aDoxMDAlO1xyXG59Il19 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FilesComponent } from '../../components/files/files.component'\r\n\r\n@Component({\r\n selector: 'app-filetest',\r\n templateUrl: './filetest.page.html',\r\n styleUrls: ['./filetest.page.scss'],\r\n})\r\nexport class FiletestPage implements OnInit {\r\n\r\n constructor() { }\r\n @ViewChild(\"fileComponent\") fileComponent:FilesComponent\r\n ngOnInit() {\r\n }\r\n callFileSave(){\r\n //this.fileComponent.syncAllFiles().subscribe();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { IonicSelectableModule } from 'ionic-selectable';\r\n\r\nimport { AddCallPage } from './add-call.page';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: AddCallPage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n IonicModule,\r\n IonicSelectableModule,\r\n RouterModule.forChild(routes)\r\n ],\r\n declarations: [AddCallPage]\r\n})\r\nexport class AddCallPageModule {}\r\n\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}} \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Start Date\\r\\n \\r\\n \\r\\n \\r\\n Start Time\\r\\n \\r\\n \\r\\n \\r\\n End Date\\r\\n \\r\\n \\r\\n \\r\\n End Time\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{title}}\\r\\n \\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFscy9hZGQtY2FsbC9hZGQtY2FsbC5wYWdlLnNjc3MifQ== */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { SalesCall } from 'src/app/models/SalesCall';\r\n\r\n@Component({\r\n selector: 'app-add-call',\r\n templateUrl: './add-call.page.html',\r\n styleUrls: ['./add-call.page.scss'],\r\n})\r\nexport class AddCallPage implements OnInit {\r\n\r\n @Input() call: SalesCall = null;\r\n title = \"Add Sales Call\";\r\n callForm: FormGroup;\r\n submitAttempt: boolean;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private modalController: ModalController,\r\n ) {\r\n this.callForm = this.formBuilder.group({\r\n // Customer fields\r\n // AccountId: [null, Validators.required],\r\n StartDate: [null, Validators.required],\r\n StartTime: [null, Validators.required],\r\n EndDate: [null, Validators.required],\r\n EndTime: [null, Validators.required]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n closeModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { AddContactPage } from './add-contact.page';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: AddContactPage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n ReactiveFormsModule,\r\n RouterModule.forChild(routes)\r\n ],\r\n declarations: [AddContactPage]\r\n})\r\nexport class AddContactPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}} \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n Basic Information:\\r\\n \\r\\n First Name\\r\\n \\r\\n \\r\\n \\r\\n Last Name\\r\\n \\r\\n \\r\\n \\r\\n Position\\r\\n \\r\\n \\r\\n \\r\\n Primary Contact\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Contact Methods:\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Type\\r\\n \\r\\n {{option.Text}}\\r\\n \\r\\n \\r\\n \\r\\n 0 && contactForm.controls.ContactMethods.controls[i].controls.ContactMethodType.value\\\">\\r\\n {{contactForm.controls.ContactMethods.controls[i].controls.ContactMethodType ? \\r\\n contactMethodTypeOptions[contactForm.controls.ContactMethods.controls[i].controls.ContactMethodType.value-1].Text : \\r\\n 'Contact Data'}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Primary Contact Method\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Remove\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Add Additional Contact Method\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{title}}\\r\\n
\"","module.exports = \".subCard {\\n padding-left: 0;\\n padding-right: 0;\\n padding-top: 0; }\\n\\n.padAfterLastOfTopList {\\n margin-bottom: 10px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbW9kYWxzL2FkZC1jb250YWN0L0M6XFxVc2Vyc1xcc21pdGhkXFxzb3VyY2VcXHJlcG9zXFxTYWxlc0FwcFxcbWttb3JzZS9zcmNcXGFwcFxccGFnZXNcXG1vZGFsc1xcYWRkLWNvbnRhY3RcXGFkZC1jb250YWN0LnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsY0FBYyxFQUFBOztBQUdsQjtFQUNJLG1CQUFrQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvbW9kYWxzL2FkZC1jb250YWN0L2FkZC1jb250YWN0LnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5zdWJDYXJkIHtcclxuICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICBwYWRkaW5nLXRvcDogMDtcclxufVxyXG5cclxuLnBhZEFmdGVyTGFzdE9mVG9wTGlzdHtcclxuICAgIG1hcmdpbi1ib3R0b206MTBweDtcclxufSJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Validators, FormBuilder, FormGroup, FormArray } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { Contact } from 'src/app/models/Contact';\r\nimport { ListService } from 'src/app/services/list.service';\r\nimport { SelectListItem } from 'src/app/models/SelectListItem';\r\n\r\n@Component({\r\n selector: 'app-add-contact',\r\n templateUrl: './add-contact.page.html',\r\n styleUrls: ['./add-contact.page.scss'],\r\n})\r\nexport class AddContactPage implements OnInit {\r\n\r\n @Input() AccountId: number;\r\n @Input() contactId: number;\r\n contactForm: FormGroup;\r\n contact: Contact;\r\n submitAttempt: boolean;\r\n title: string;\r\n saving = false;\r\n contactMethodTypeOptions: SelectListItem[] = [];\r\n\r\n constructor(\r\n private modalController: ModalController,\r\n private formBuilder: FormBuilder,\r\n private customerService: CustomerService,\r\n private listService: ListService\r\n ) {\r\n this.contactForm = this.formBuilder.group({\r\n FirstName: [null, Validators.required],\r\n LastName: [null, Validators.required],\r\n Position: [null, Validators.required],\r\n IsPrimaryContact: [false, Validators.required],\r\n ContactMethods: this.formBuilder.array([\r\n ])\r\n });\r\n }\r\n\r\n initContactMethodSubform() {\r\n return this.formBuilder.group({\r\n Id: [null],\r\n ContactMethodType: [null, Validators.required],\r\n ContactData: [null, Validators.required],\r\n IsPrimary: [false, Validators.required],\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.listService.getContactMethodTypes().subscribe((cmts) => {\r\n this.contactMethodTypeOptions = cmts;\r\n });\r\n\r\n if (this.contactId) {\r\n this.title = 'Update Contact';\r\n this.customerService.getContact(this.contactId).subscribe((contact) => {\r\n this.contact = JSON.parse(contact);\r\n\r\n for (let index = 0; index < this.contact.ContactMethods.length; index++) {\r\n this.AddNewContactMethod();\r\n }\r\n this.contactForm.patchValue(this.contact);\r\n\r\n // load type options into drop downs from model\r\n for (let index = 0; index < this.contact.ContactMethods.length; index++) {\r\n const control = ((this.contactForm.controls['ContactMethods'] as FormArray).controls[index] as FormGroup).\r\n controls['ContactMethodType'];\r\n control.setValue(this.contactMethodTypeOptions.find(cmto =>\r\n cmto.Value === this.contact.ContactMethods[index].ContactMethodTypeId.toString()).Value);\r\n }\r\n });\r\n } else {\r\n this.title = 'Add Contact';\r\n if (this.AccountId) {\r\n this.contact = new Contact();\r\n this.contact.AccountId = this.AccountId.toString();\r\n this.contact.IsPrimaryContact = false; // default it to not null\r\n }\r\n }\r\n }\r\n\r\n closeModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n submit() {\r\n this.submitAttempt = true;\r\n // if the form is valid\r\n if (this.contactForm.valid) {\r\n this.saving = true;\r\n const fromForm = this.contactForm.getRawValue();\r\n this.contact.FirstName = fromForm.FirstName;\r\n this.contact.LastName = fromForm.LastName;\r\n this.contact.Position = fromForm.Position;\r\n this.contact.IsPrimaryContact = fromForm.IsPrimaryContact;\r\n this.contact.ContactMethods = fromForm.ContactMethods.map(cm => {\r\n return {\r\n Id: cm.Id,\r\n ContactMethodTypeId: cm.ContactMethodType,\r\n ContactMethodType: this.contactMethodTypeOptions.find(cmto => cmto.Value === cm.ContactMethodType).Text,\r\n // ContactCategory: string,\r\n ContactData: cm.ContactData,\r\n IsPrimary: cm.IsPrimary,\r\n };\r\n });\r\n this.customerService.addUpdateContact(this.contact).subscribe(result => {\r\n // If event adds successfully close the modal\r\n if (result) {\r\n this.modalController.dismiss();\r\n } else {\r\n alert('Save unsuccesful. Please try again.');\r\n this.saving = false;\r\n }\r\n }, (error) => {\r\n alert(`Save unsuccessful. Please try again. If it still doesn't work, this may help tech support solve this issue more quickly:\r\n Status: ${error.status}. Location: P-M-ACP. Reason: ${error.error.ExceptionMessage}`);\r\n this.saving = false;\r\n });\r\n } else {\r\n console.log('ERRORS');\r\n console.log(this.contactForm);\r\n }\r\n }\r\n\r\n AddNewContactMethod() {\r\n const control = (this.contactForm.controls['ContactMethods']) as FormArray;\r\n control.push(this.initContactMethodSubform());\r\n }\r\n\r\n RemoveContactMethod(index: number) {\r\n const control = (this.contactForm.controls['ContactMethods']) as FormArray;\r\n control.removeAt(index);\r\n }\r\n\r\n ConfirmRemoveContactMethod(index: number) {\r\n if (confirm('Are you sure you want to remove this contact method?')) {\r\n this.RemoveContactMethod(index);\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { AddCustomerNotePage } from './add-customer-note.page';\r\nimport { AutosizeModule } from 'ngx-autosize';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: AddCustomerNotePage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n IonicModule,\r\n AutosizeModule,\r\n RouterModule.forChild(routes)\r\n ],\r\n declarations: [AddCustomerNotePage]\r\n})\r\nexport class AddCustomerNotePageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Add a Note\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Note\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Add Note\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFscy9hZGQtY3VzdG9tZXItbm90ZS9hZGQtY3VzdG9tZXItbm90ZS5wYWdlLnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Observable, empty } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-add-customer-note',\r\n templateUrl: './add-customer-note.page.html',\r\n styleUrls: ['./add-customer-note.page.scss'],\r\n})\r\nexport class AddCustomerNotePage implements OnInit {\r\n customerId: number;\r\n saving: boolean = false;\r\n submitAttempt: boolean = false;\r\n\r\n noteForm = new FormGroup({\r\n note: new FormControl()\r\n });\r\n\r\n constructor(private modalController: ModalController, private customerService: CustomerService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n closeModal(retVal) {\r\n this.modalController.dismiss({\r\n 'reload': retVal\r\n });\r\n }\r\n\r\n addNote() {\r\n this.submitAttempt = true;\r\n\r\n if (this.noteForm.valid) {\r\n this.saving = true;\r\n let note: string = this.noteForm.value['note'];\r\n let customerId: number = this.customerId;\r\n\r\n this.customerService.addCustomerNote(customerId, note)\r\n .pipe(catchError(this.onError))\r\n .subscribe(response => this.closeModal(true)); // service method doesn't actually return anything.\r\n }\r\n }\r\n\r\n onError(error: any): Observable {\r\n console.log(error);\r\n alert(error.statusText);\r\n return empty();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { AddCustomerValueCalculatorPage } from './add-customer-value-calculator.page';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: AddCustomerValueCalculatorPage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n ReactiveFormsModule,\r\n RouterModule.forChild(routes)\r\n ],\r\n declarations: [AddCustomerValueCalculatorPage]\r\n})\r\nexport class AddCustomerValueCalculatorPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Add End User\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Name\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Add End User\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFscy9hZGQtY3VzdG9tZXItdmFsdWUtY2FsY3VsYXRvci9hZGQtY3VzdG9tZXItdmFsdWUtY2FsY3VsYXRvci5wYWdlLnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { EndUser } from 'src/app/models/EndUser';\r\nimport { CustomerType } from 'src/app/models/enums/CustomerType';\r\nimport { PageInfo } from 'src/app/models/PageInfo';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { DictKey, SharedDataService } from 'src/app/services/shared-data.service';\r\n\r\n@Component({\r\n selector: 'app-add-customer-value-calculator',\r\n templateUrl: './add-customer-value-calculator.page.html',\r\n styleUrls: ['./add-customer-value-calculator.page.scss'],\r\n})\r\nexport class AddCustomerValueCalculatorPage implements OnInit {\r\n\r\n customerForm: FormGroup;\r\n saving = false;\r\n submitAttempt = false;\r\n distributorId: number;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private customerService: CustomerService,\r\n private modalController: ModalController,\r\n private sharedDataService: SharedDataService\r\n ) {\r\n this.customerForm = this.formBuilder.group({\r\n // Customer fields\r\n Name: [null, Validators.required],\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n // this.distributorId = this.getDistributorId();\r\n // this.customerForm.get('DistributorId').setValue(this.distributorId);\r\n }\r\n\r\n addCustomer() {\r\n this.submitAttempt = true;\r\n const name = this.customerForm.get('Name').value as string;\r\n name.trim();\r\n // if the form is valid\r\n if (this.customerForm.valid && name) {\r\n this.customerService.addSimpleAccount(name).subscribe(result => {\r\n this.saving = true;\r\n // If event adds successfully close the modal\r\n if (result) {\r\n const returnResult = { \r\n Id: result,\r\n Name: name\r\n }\r\n this.modalController.dismiss(returnResult);\r\n }\r\n }); \r\n } else {\r\n console.log('ERRORS');\r\n console.log(this.customerForm)\r\n }\r\n }\r\n\r\n // getDistributorId(): number {\r\n // const info: PageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo);\r\n // return info.SalesAccountId;\r\n // }\r\n\r\n closeModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { IonicSelectableModule } from 'ionic-selectable';\r\n\r\nimport { AddCustomerPage } from './add-customer.page';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: AddCustomerPage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n IonicModule,\r\n IonicSelectableModule,\r\n RouterModule.forChild(routes),\r\n ],\r\n declarations: [AddCustomerPage]\r\n})\r\nexport class AddCustomerPageModule {}\r\n\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{getModalTitle()}} \\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 Name\\r\\n \\r\\n \\r\\n \\r\\n Phone Number\\r\\n \\r\\n \\r\\n \\r\\n Alternate Phone Number\\r\\n \\r\\n \\r\\n \\r\\n Address 1\\r\\n \\r\\n \\r\\n \\r\\n Address 2\\r\\n \\r\\n \\r\\n \\r\\n City\\r\\n \\r\\n \\r\\n \\r\\n State\\r\\n \\r\\n {{state.Text}}\\r\\n \\r\\n \\r\\n \\r\\n Country\\r\\n \\r\\n {{country.Text}}\\r\\n \\r\\n \\r\\n \\r\\n Postal Code\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Territory Salesperson\\r\\n \\r\\n \\r\\n {{territorySalesPerson.DisplayName}}\\r\\n \\r\\n \\r\\n \\r\\n Fax Number\\r\\n \\r\\n \\r\\n \\r\\n Website Address\\r\\n \\r\\n \\r\\n \\r\\n Status\\r\\n \\r\\n Active\\r\\n Suspended\\r\\n Deleted\\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 Pricing Program\\r\\n \\r\\n {{pricingProgram.Text}}\\r\\n \\r\\n \\r\\n 0\\\">\\r\\n Rep User\\r\\n \\r\\n \\r\\n {{salesPerson.Name}}\\r\\n \\r\\n \\r\\n 0\\\">\\r\\n Morse User\\r\\n \\r\\n \\r\\n {{salesPerson.Name}}\\r\\n \\r\\n \\r\\n \\r\\n Branch Count\\r\\n \\r\\n \\r\\n \\r\\n Inside Sales Count\\r\\n \\r\\n \\r\\n \\r\\n Outside Sales Count\\r\\n \\r\\n \\r\\n \\r\\n Welder Count\\r\\n \\r\\n \\r\\n \\r\\n Main Office\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Weld Center\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Morse Distributor\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Sells Other Brands\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Account Level\\r\\n \\r\\n {{accountLevel.Text}}\\r\\n \\r\\n \\r\\n \\r\\n Account Level Amount\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n End User Class\\r\\n \\r\\n {{endUserClass.Text}}\\r\\n \\r\\n \\r\\n \\r\\n Morse End User\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Major Account\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Date Targeted\\r\\n \\r\\n \\r\\n \\r\\n Account Level\\r\\n \\r\\n {{accountLevel.Text}}\\r\\n \\r\\n \\r\\n \\r\\n Account Level Amount\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{getModalTitle()}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\"","module.exports = \".ion-toggle-label {\\n float: right;\\n padding-right: 4px;\\n font-size: 14px; }\\n\\n.small-label {\\n max-width: 3em; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbW9kYWxzL2FkZC1jdXN0b21lci9DOlxcVXNlcnNcXHNtaXRoZFxcc291cmNlXFxyZXBvc1xcU2FsZXNBcHBcXG1rbW9yc2Uvc3JjXFxhcHBcXHBhZ2VzXFxtb2RhbHNcXGFkZC1jdXN0b21lclxcYWRkLWN1c3RvbWVyLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFlBQVk7RUFDWixrQkFBaUI7RUFDakIsZUFBYyxFQUFBOztBQUdsQjtFQUNJLGNBQWMsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFscy9hZGQtY3VzdG9tZXIvYWRkLWN1c3RvbWVyLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5pb24tdG9nZ2xlLWxhYmVsIHtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHBhZGRpbmctcmlnaHQ6NHB4O1xyXG4gICAgZm9udC1zaXplOjE0cHg7XHJcbn1cclxuXHJcbi5zbWFsbC1sYWJlbCB7XHJcbiAgICBtYXgtd2lkdGg6IDNlbTtcclxufSJdfQ== */\"","import { TitleCasePipe } from '@angular/common';\r\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { FormBuilder, Validators, FormGroup, FormControl } from '@angular/forms';\r\n\r\nimport { ModalController } from '@ionic/angular';\r\nimport { IonicSelectableComponent } from 'ionic-selectable';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { CustomerType } from 'src/app/models/enums/CustomerType';\r\nimport { CustomerUpdate } from 'src/app/models/CustomerUpdate';\r\nimport { Distributor } from 'src/app/models/Distributor';\r\nimport { EndUser } from 'src/app/models/EndUser';\r\nimport { RepAgency } from 'src/app/models/RepAgency';\r\nimport { SalesPerson } from 'src/app/models/SalesPerson';\r\nimport { SelectListItem } from 'src/app/models/SelectListItem';\r\nimport { TerritorySalesperson } from 'src/app/models/TerritorySalesperson';\r\n\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { EventService } from 'src/app/services/event.service';\r\nimport { ListService } from 'src/app/services/list.service';\r\nimport { SalesService } from 'src/app/services/sales.service';\r\n\r\n@Component({\r\n selector: 'app-add-customer',\r\n templateUrl: './add-customer.page.html',\r\n styleUrls: ['./add-customer.page.scss'],\r\n})\r\n\r\nexport class AddCustomerPage implements OnInit {\r\n\r\n @Input() existingCustomer: EndUser | Distributor | RepAgency = null;\r\n\r\n public CustomerType = CustomerType;\r\n @Input() customerType;\r\n\r\n CustomerFormChanges = new Map();\r\n RepUser: SalesPerson;\r\n\r\n customerForm: FormGroup;\r\n status = 'active';\r\n submitAttempt: boolean;\r\n states: SelectListItem[];\r\n countries: SelectListItem[];\r\n accountLevels: SelectListItem[];\r\n pricingPrograms: SelectListItem[];\r\n endUserClasses: SelectListItem[];\r\n territorySalesPeople: TerritorySalesperson[];\r\n selectedTerritorySalesPerson: any;\r\n statesInitialized = false;\r\n pricingProgramsInitialized = false;\r\n statesLoading = true;\r\n peopleSubscription: Subscription;\r\n salesPeople: any;\r\n saving = false;\r\n\r\n repUserForm: FormGroup;\r\n morseUserForm: FormGroup;\r\n repUserNameControl: FormControl;\r\n repUserAddressControl: FormControl;\r\n morseUserNameControl: FormControl;\r\n morseUserAddressControl: FormControl;\r\n @ViewChild('repUserComponent') repUserComponent: IonicSelectableComponent;\r\n @ViewChild('morseUserComponent') morseUserComponent: IonicSelectableComponent;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private customerService: CustomerService,\r\n private modalController: ModalController,\r\n private listService: ListService,\r\n private eventService: EventService,\r\n private salesService: SalesService,\r\n private titlePipe: TitleCasePipe\r\n ) {\r\n this.customerForm = this.formBuilder.group({\r\n // Customer fields\r\n CustomerType: [this.customerType, Validators.required],\r\n AccountNumber: [''],\r\n CustomerNumber: [''],\r\n Name: [null, Validators.required],\r\n PhoneNumber: [null, Validators.required],\r\n AlternatePhoneNumber: [''],\r\n Address1: [null, Validators.required],\r\n Address2: [''],\r\n City: [null, Validators.required],\r\n StateId: [null],\r\n CountryId: ['100', Validators.required],\r\n PostalCode: [null, Validators.required],\r\n FaxNumber: [''],\r\n WebsiteAddress: [''],\r\n IsActive: [true, Validators.required],\r\n IsSuspended: [false, Validators.required],\r\n IsDeleted: [false, Validators.required],\r\n AccountLevel: [null],\r\n AccountLevelDollars: [null],\r\n Territory: [null],\r\n TerritorySalesperson: [null, Validators.required],\r\n // Distributor fields\r\n DistributorNumber: [''],\r\n PricingProgramId: [null],\r\n RepUserId: [null],\r\n MorseUserId: [null],\r\n BranchCount: [null],\r\n InsideSalesCount: [null],\r\n OutsideSalesCount: [null],\r\n WelderCount: [null],\r\n IsMainOffice: [null],\r\n MainOfficeAccountId: [null],\r\n IsWeldCenter: [null],\r\n IsMorseDistributor: [null],\r\n IsSellingOtherBrands: [null],\r\n // End user fields\r\n EndUserNumber: [''],\r\n EndUserClassId: [null],\r\n IsMorseEndUser: [null],\r\n IsMajorAccount: [null],\r\n DateTargeted: [null],\r\n // Rep Agency feilds\r\n // IsSellingOtherBrands: [null, Validators.required]\r\n });\r\n\r\n this.repUserForm = this.formBuilder.group({\r\n personName: this.repUserNameControl,\r\n personAddress: this.repUserAddressControl\r\n });\r\n this.morseUserForm = this.formBuilder.group({\r\n personName: this.morseUserNameControl,\r\n personAddress: this.morseUserAddressControl\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.typeChanged(this.customerType);\r\n\r\n this.loadOptionsAsync().then(() => {\r\n this.loadFormForEdit();\r\n this.hookupEditMonitor(); \r\n });\r\n }\r\n\r\n async loadOptionsAsync() {\r\n await this.getAccountLevelsAsync(this.customerType);\r\n await this.getCountriesAsync();\r\n await this.getEndUserClassesAsync();\r\n await this.getPricingProgramsAsync();\r\n await this.getSalesPeopleAsync();\r\n await this.getStatesAsync(this.customerForm.controls['CountryId'].value);\r\n await this.getTerritoriesSalespeopleAsync();\r\n }\r\n\r\n\r\n queueEdit({ fieldName, fieldValue }: { fieldName: string; fieldValue: any; }) {\r\n var customerUpdate = new CustomerUpdate(this.existingCustomer.Id, this.existingCustomer.CustomerType, fieldName, fieldValue);\r\n this.CustomerFormChanges.set(fieldName, customerUpdate);\r\n }\r\n\r\n hookupEditMonitor() {\r\n if (!this.existingCustomer) {\r\n return;\r\n }\r\n // Base customer fields.\r\n this.customerForm.get('Address1').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'address_1', fieldValue: x }));\r\n this.customerForm.get('Address2').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'address_2', fieldValue: x }));\r\n this.customerForm.get('AlternatePhoneNumber').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'alternate_phone_number', fieldValue: x }));\r\n this.customerForm.get('City').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'city', fieldValue: x }));\r\n this.customerForm.get('CountryId').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'country_id', fieldValue: x }));\r\n this.customerForm.get('FaxNumber').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'fax_number', fieldValue: x }));\r\n this.customerForm.get('Name').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'name', fieldValue: x }));\r\n this.customerForm.get('PhoneNumber').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'phone_number', fieldValue: x }));\r\n this.customerForm.get('PostalCode').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'postal_code', fieldValue: x }));\r\n this.customerForm.get('StateId').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'state_id', fieldValue: x }));\r\n this.customerForm.get('Territory').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'territory', fieldValue: x }));\r\n this.customerForm.get('TerritorySalesperson').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'territory_salesperson', fieldValue: x }));\r\n this.customerForm.get('WebsiteAddress').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'website_address', fieldValue: x }));\r\n \r\n // Distributor fields.\r\n this.customerForm.get('AccountLevel').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'account_level', fieldValue: x }));\r\n this.customerForm.get('AccountLevelDollars').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'account_level_dollars', fieldValue: x }));\r\n this.customerForm.get('BranchCount').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'branch_count', fieldValue: x }));\r\n this.customerForm.get('InsideSalesCount').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'inside_sales_count', fieldValue: x }));\r\n this.customerForm.get('IsMainOffice').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'is_main_office', fieldValue: x }));\r\n this.customerForm.get('IsMorseDistributor').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'is_morse_distributor', fieldValue: x }));\r\n this.customerForm.get('IsSellingOtherBrands').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'is_selling_other_brands', fieldValue: x }));\r\n this.customerForm.get('IsWeldCenter').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'is_weld_center', fieldValue: x }));\r\n this.customerForm.get('MorseUserId').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'morse_user_id', fieldValue: x }));\r\n this.customerForm.get('OutsideSalesCount').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'outside_sales_count', fieldValue: x }));\r\n this.customerForm.get('PricingProgramId').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'pricing_program_id', fieldValue: x }));\r\n this.customerForm.get('RepUserId').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'rep_user_id', fieldValue: x }));\r\n this.customerForm.get('WelderCount').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'welder_count', fieldValue: x }));\r\n\r\n // End user fields.\r\n this.customerForm.get('AccountLevel').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'account_level', fieldValue: x }));\r\n this.customerForm.get('AccountLevelDollars').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'account_level_dollars', fieldValue: x }));\r\n this.customerForm.get('DateTargeted').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'DateTargeted', fieldValue: x }));\r\n this.customerForm.get('EndUserClassId').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'end_user_class_id', fieldValue: x }));\r\n this.customerForm.get('IsMajorAccount').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'is_major_account', fieldValue: x }));\r\n this.customerForm.get('IsMorseEndUser').valueChanges.subscribe(x => this.queueEdit({ fieldName: 'is_morse_end_user', fieldValue: x }));\r\n \r\n }\r\n\r\n loadFormForEdit() {\r\n if (!this.existingCustomer) {\r\n return;\r\n }\r\n\r\n let country = this.countries.filter(x => x.Text == this.existingCustomer.Country.trim() );\r\n\r\n if (country.length > 0) {\r\n this.customerForm.controls['CountryId'].setValue(country[0].Value);\r\n }\r\n\r\n let territorySalesperson = this.territorySalesPeople.filter(x => x.SalespersonUsername == this.existingCustomer.TerritorySalesperson.trim() &&\r\n x.TerritoryNumber == this.existingCustomer.TerritoryInfo);\r\n \r\n if (territorySalesperson.length > 0) {\r\n this.customerForm.controls['Territory'].setValue(this.existingCustomer.TerritoryInfo);\r\n this.customerForm.controls['TerritorySalesperson'].setValue(this.existingCustomer.TerritorySalesperson);\r\n this.selectedTerritorySalesPerson = territorySalesperson[0];\r\n }\r\n\r\n this.customerForm.controls['Address1'].setValue(this.existingCustomer.Address1);\r\n this.customerForm.controls['Address2'].setValue(this.existingCustomer.Address2);\r\n this.customerForm.controls['AlternatePhoneNumber'].setValue(this.existingCustomer.AltPhoneNumber);\r\n this.customerForm.controls['City'].setValue(this.existingCustomer.City);\r\n this.customerForm.controls['CustomerType'].setValue(this.existingCustomer.CustomerType.toString());\r\n this.customerForm.controls['FaxNumber'].setValue(this.existingCustomer.FaxNumber);\r\n this.customerForm.controls['Name'].setValue(this.existingCustomer.Name);\r\n this.customerForm.controls['PhoneNumber'].setValue(this.existingCustomer.PhoneNumber);\r\n this.customerForm.controls['PostalCode'].setValue(this.existingCustomer.PostalCode);\r\n this.customerForm.controls['StateId'].setValue(this.existingCustomer.StateId != null ? this.existingCustomer.StateId.toString() : null);\r\n this.customerForm.controls['WebsiteAddress'].setValue(this.existingCustomer.WebAddress);\r\n\r\n if (this.existingCustomer.CustomerType == CustomerType.Distributor) {\r\n\r\n let distributor = this.existingCustomer as Distributor;\r\n\r\n this.customerForm.controls['AccountLevel'].setValue(distributor.AccountLevel);\r\n this.customerForm.controls['AccountLevelDollars'].setValue(distributor.AccountLevelSpecific);\r\n this.customerForm.controls['BranchCount'].setValue(distributor.BranchCount);\r\n this.customerForm.controls['InsideSalesCount'].setValue(distributor.InsideSalesCount);\r\n this.customerForm.controls['IsMainOffice'].setValue(distributor.MainOffice);\r\n this.customerForm.controls['IsMorseDistributor'].setValue(distributor.MorseDistributor);\r\n this.customerForm.controls['IsSellingOtherBrands'].setValue(distributor.SellsOtherBrands);\r\n this.customerForm.controls['IsWeldCenter'].setValue(distributor.WeldCenter);\r\n this.customerForm.controls['MorseUserId'].setValue(distributor.MorseUserId);\r\n this.customerForm.controls['OutsideSalesCount'].setValue(distributor.OutsideSalesCount);\r\n this.customerForm.controls['PricingProgramId'].setValue(distributor.PricingProgramId != null ? distributor.PricingProgramId.toString() : null);\r\n this.customerForm.controls['RepUserId'].setValue(distributor.RepUserId);\r\n this.customerForm.controls['WelderCount'].setValue(distributor.WelderCount);\r\n } else if (this.existingCustomer.CustomerType == CustomerType.EndUser) {\r\n\r\n let endUser = this.existingCustomer as EndUser;\r\n\r\n this.customerForm.controls['AccountLevel'].setValue(endUser.AccountLevel);\r\n this.customerForm.controls['AccountLevelDollars'].setValue(endUser.AccountLevelSpecific);\r\n this.customerForm.controls['DateTargeted'].setValue(endUser.DateTargeted);\r\n this.customerForm.controls['EndUserClassId'].setValue(endUser.EndUserClassId != null ? endUser.EndUserClassId.toString() : null);\r\n this.customerForm.controls['IsMajorAccount'].setValue(endUser.MajorAccount);\r\n this.customerForm.controls['IsMorseEndUser'].setValue(endUser.MorseEndUser);\r\n }\r\n }\r\n\r\n typeChanged(newValue) {\r\n this.customerForm.controls['CustomerType'].setValue(newValue);\r\n this.getAccountLevels(newValue);\r\n if (newValue == 'End User') {\r\n this.getEndUserClasses();\r\n }\r\n }\r\n\r\n addUpdateCustomer() {\r\n this.submitAttempt = true;\r\n // if the form is valid\r\n if (this.customerForm.valid) {\r\n const customer = this.customerForm.getRawValue();\r\n if (this.existingCustomer) {\r\n this.customerService.updateCustomer(Array.from(this.CustomerFormChanges.values())).then(() => {\r\n this.modalController.dismiss();\r\n });\r\n } else {\r\n this.customerService.addCustomer(customer).subscribe(result => {\r\n // If event adds successfully close the modal\r\n if (result) {\r\n this.modalController.dismiss();\r\n }\r\n });\r\n }\r\n } else {\r\n console.log('ERRORS');\r\n console.log(this.customerForm)\r\n }\r\n }\r\n\r\n getTerritoriesSalespeople() {\r\n this.salesService.getTerritoriesSalespeople()\r\n .subscribe(territorySalesPeople => {\r\n this.territorySalesPeople = territorySalesPeople.sort((a,b) => this.alphaSort2(a,b));\r\n });\r\n }\r\n\r\n statusChanged(event) {\r\n const newValue = event.detail.value;\r\n this.clearStatusValues();\r\n if (newValue == 'active') {\r\n this.customerForm.controls['IsActive'].setValue(true);\r\n } else if (newValue == 'suspended') {\r\n this.customerForm.controls['IsSuspended'].setValue(true);\r\n } else if (newValue == 'deleted') {\r\n this.customerForm.controls['IsDeleted'].setValue(true);\r\n }\r\n }\r\n\r\n countryChanged(event){\r\n /*const newValue = event.detail.value;\r\n if (newValue) {\r\n this.getStates(newValue);\r\n } else {\r\n this.states = [];\r\n }\r\n this.customerForm.controls['CountryId'].setValue(newValue);\r\n this.customerForm.controls['StateId'].setValue(null);*/\r\n }\r\n\r\n pricingProgramChanged(event) {\r\n const newValue = event.detail.value;\r\n this.customerForm.controls['PricingProgramId'].setValue(newValue);\r\n }\r\n\r\n endUserClassChanged(event) {\r\n const newValue = event.detail.value;\r\n this.customerForm.controls['EndUserClassId'].setValue(newValue);\r\n }\r\n\r\n getStates(countryId) {\r\n this.statesLoading = true;\r\n this.listService.getStates(countryId)\r\n .subscribe(states => {\r\n this.states = [];\r\n this.states = JSON.parse(states);\r\n this.statesInitialized = true;\r\n this.statesLoading = false;\r\n })\r\n }\r\n\r\n getCountries() {\r\n this.listService.getCountries()\r\n .subscribe(countries => {\r\n this.countries = JSON.parse(countries);\r\n if (!this.statesInitialized) {\r\n this.getStates(this.customerForm.controls['CountryId'].value);\r\n }\r\n })\r\n }\r\n\r\n async getStatesAsync(countryId: number) {\r\n await this.listService.getStates(countryId).toPromise().then(states => {\r\n this.states = [];\r\n this.states = JSON.parse(states);\r\n this.statesInitialized = true;\r\n this.statesLoading = false;\r\n });\r\n }\r\n\r\n async getCountriesAsync() {\r\n await this.listService.getCountries().toPromise().then(countries => {\r\n this.countries = JSON.parse(countries);\r\n });\r\n }\r\n\r\n async getEndUserClassesAsync() {\r\n await this.listService.getEndUserClasses().toPromise().then(endUserClasses => {\r\n this.endUserClasses = JSON.parse(endUserClasses);\r\n });\r\n }\r\n\r\n async getTerritoriesSalespeopleAsync() {\r\n await this.salesService.getTerritoriesSalespeople().toPromise().then(territorySalesPeople => {\r\n this.territorySalesPeople = territorySalesPeople.sort((a,b) => this.alphaSort2(a,b));\r\n });\r\n }\r\n\r\n async getAccountLevelsAsync(customerType: string) {\r\n await this.listService.getAccountLevels(customerType).toPromise().then(accountLevels => {\r\n this.accountLevels = accountLevels;\r\n });\r\n }\r\n\r\n async getSalesPeopleAsync() {\r\n await this.salesService.getSalesPeople().toPromise().then(salesPeople => {\r\n this.salesPeople = salesPeople.sort((a, b) => this.sortSalesPerson(a, b));\r\n });\r\n }\r\n\r\n async getPricingProgramsAsync() {\r\n await this.listService.getPricingPrograms().toPromise().then(pricingPrograms => {\r\n this.pricingPrograms = pricingPrograms.sort((a,b) => this.alphaSort(a,b));\r\n })\r\n }\r\n\r\n getAccountLevels(customerType: string) {\r\n this.listService.getAccountLevels(customerType)\r\n .subscribe(accountLevels => {\r\n this.accountLevels = accountLevels;\r\n })\r\n }\r\n\r\n getModalTitle() {\r\n return this.existingCustomer == null ? 'Add Customer' : 'Edit Customer';\r\n }\r\n\r\n getPricingPrograms() {\r\n this.listService.getPricingPrograms()\r\n .subscribe(pricingPrograms => {\r\n this.pricingPrograms = pricingPrograms.sort((a,b) => this.alphaSort(a,b));\r\n })\r\n }\r\n\r\n alphaSort(a: SelectListItem, b: SelectListItem) {\r\n if (a.Text < b.Text) {\r\n return -1;\r\n } else if (a.Text > b.Text) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n sortSalesPerson(a: SalesPerson, b: SalesPerson) {\r\n if (a.Name < b.Name) {\r\n return -1;\r\n } else if (a.Name > b.Name) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n alphaSort2(a: TerritorySalesperson, b: TerritorySalesperson) {\r\n if (a.DisplayName < b.DisplayName) {\r\n return -1;\r\n } else if (a.DisplayName > b.DisplayName) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getEndUserClasses() {\r\n this.listService.getEndUserClasses()\r\n .subscribe(endUserClasses => {\r\n this.endUserClasses = JSON.parse(endUserClasses);\r\n })\r\n }\r\n\r\n clearStatusValues() {\r\n this.customerForm.controls['IsActive'].setValue(false);\r\n this.customerForm.controls['IsSuspended'].setValue(false);\r\n this.customerForm.controls['IsDeleted'].setValue(false);\r\n }\r\n\r\n closeModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n getSalesPeople() {\r\n this.salesService.getSalesPeople()\r\n .subscribe(salesPeople => this.salesPeople = salesPeople)\r\n }\r\n\r\n onAddRepUser(event: {\r\n component: IonicSelectableComponent\r\n }) {\r\n // Clean form.\r\n this.repUserNameControl.reset();\r\n this.repUserAddressControl.reset();\r\n\r\n // Show form.\r\n event.component.showAddItemTemplate();\r\n }\r\n\r\n addRepUser() {\r\n // Create person.\r\n const person = {\r\n name: this.repUserNameControl.value,\r\n address: this.repUserAddressControl.value\r\n };\r\n\r\n // Add port to storage.\r\n // this.portService.addPort(port);\r\n\r\n // Add port to the top of list.\r\n this.repUserComponent.addItem(person).then(() => {\r\n // this.personComponent.search(person.name);\r\n });\r\n\r\n // Clean form.\r\n this.repUserNameControl.reset();\r\n this.repUserAddressControl.reset();\r\n\r\n // Show list.\r\n this.repUserComponent.hideAddItemTemplate();\r\n }\r\n\r\n onAddMorseUser(event: {\r\n component: IonicSelectableComponent\r\n }) {\r\n // Clean form.\r\n this.morseUserNameControl.reset();\r\n this.morseUserAddressControl.reset();\r\n\r\n // Show form.\r\n event.component.showAddItemTemplate();\r\n }\r\n\r\n addMorseUser() {\r\n // Create person.\r\n const person = {\r\n name: this.morseUserNameControl.value,\r\n address: this.morseUserAddressControl.value\r\n };\r\n\r\n // Add port to storage.\r\n // this.portService.addPort(port);\r\n\r\n // Add port to the top of list.\r\n this.morseUserComponent.addItem(person).then(() => {\r\n // this.personComponent.search(person.name);\r\n });\r\n\r\n // Clean form.\r\n this.morseUserNameControl.reset();\r\n this.morseUserAddressControl.reset();\r\n\r\n // Show list.\r\n this.morseUserComponent.hideAddItemTemplate();\r\n }\r\n\r\n applyTitlePipe(fieldName: string, newValue) {\r\n const formField = this.customerForm.get(fieldName);\r\n const currentValue = formField.value;\r\n const formattedValue = this.titlePipe.transform(newValue)\r\n if (currentValue != formattedValue) {\r\n formField.setValue(formattedValue);\r\n }\r\n }\r\n\r\n territorySalesChange() {\r\n\r\n if (this.customerForm.get('Territory').value != this.selectedTerritorySalesPerson.TerritoryNumber) {\r\n this.customerForm.get('Territory').setValue(this.selectedTerritorySalesPerson.TerritoryNumber);\r\n }\r\n\r\n if (this.customerForm.get('TerritorySalesperson').value === null || this.customerForm.get('TerritorySalesperson').value.trim() != this.selectedTerritorySalesPerson.SalespersonUsername) {\r\n this.customerForm.get('TerritorySalesperson').setValue(this.selectedTerritorySalesPerson.SalespersonUsername);\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 { AddEndUserMachinePage } from './add-end-user-machine.page';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: AddEndUserMachinePage\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: [AddEndUserMachinePage]\r\n})\r\nexport class AddEndUserMachinePageModule {}\r\n","module.exports = \"\\r\\n \\r\\n Add End User Machine\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Brand\\r\\n \\r\\n \\r\\n {{mfg.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Model\\r\\n \\r\\n {{model.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Add Machine\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFscy9hZGQtZW5kLXVzZXItbWFjaGluZS9hZGQtZW5kLXVzZXItbWFjaGluZS5wYWdlLnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { forkJoin } from 'rxjs';\r\nimport { AppEndUserMachineModel } from 'src/app/models/AppEndUserMachineModel';\r\nimport { BladeWizardInputsBand } from 'src/app/models/BladeWizardInputsBand';\r\nimport { MachineManufacturer } from 'src/app/models/RevolutionWizard/MachineManufacturer';\r\nimport { MachineModel } from 'src/app/models/RevolutionWizard/MachineModel';\r\nimport { EndUserProfileService } from 'src/app/services/end-user-profile.service';\r\nimport { SettingsService } from 'src/app/services/settings.service';\r\n\r\n@Component({\r\n selector: 'app-add-end-user-machine',\r\n templateUrl: './add-end-user-machine.page.html',\r\n styleUrls: ['./add-end-user-machine.page.scss'],\r\n})\r\nexport class AddEndUserMachinePage implements OnInit {\r\n\r\n machineDetailsForm: FormGroup;\r\n bladeInputs: BladeWizardInputsBand;\r\n\r\n machineManufacturers: MachineManufacturer[];\r\n machineModels: MachineModel[];\r\n allMachineModels: MachineModel[];\r\n\r\n allMachineManufacturers: MachineManufacturer[];\r\n userMachineModels: AppEndUserMachineModel[]; \r\n\r\n submitted = false;\r\n isEndUser = false;\r\n showAllMfgId = -1;\r\n showAllModelId = -1;\r\n showMachineSelect = true;\r\n showModelSelect = true;\r\n openMfgSelectEvent;\r\n openModelSelectEvent;\r\n saving = false;\r\n\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private endUserProfileService: EndUserProfileService,\r\n private settingsService: SettingsService,\r\n private modalController: ModalController\r\n ) {\r\n this.bladeInputs = new BladeWizardInputsBand();\r\n this.machineDetailsForm = this.fb.group({\r\n brandId: [null, [Validators.required]],\r\n modelId: [null, [Validators.required]]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getBrandsEndUser();\r\n }\r\n\r\n getBrandsEndUser() {\r\n forkJoin(this.endUserProfileService.getAppEndUserMachinesList(this.settingsService.getUserSettings().username), this.endUserProfileService.getMachineMfgList())\r\n .subscribe(result => {\r\n this.userMachineModels = result[0];\r\n this.allMachineManufacturers = result[1];\r\n this.machineManufacturers = this.allMachineManufacturers;\r\n });\r\n }\r\n \r\n brandChange(event) {\r\n this.openMfgSelectEvent = event;\r\n const mfgIdStr = event.detail.value;\r\n console.log('brandChange:', mfgIdStr);\r\n const mfgId = mfgIdStr ? +mfgIdStr : null;\r\n this.bladeInputs.machineManufacturerId = mfgId;\r\n this.bladeInputs.manufacturerName = this.machineManufacturers.find(mm => mm.Id == +mfgIdStr).name;\r\n this.getModelsEndUser(mfgIdStr);\r\n }\r\n\r\n getModelsEndUser(mfgIdStr: string) {\r\n this.endUserProfileService.getMachineModelsbyMfgID(mfgIdStr)\r\n .subscribe(models => {\r\n this.allMachineModels = models;\r\n if (this.userMachineModels.length > 0) {\r\n const mfgId = this.machineDetailsForm.get('brandId').value;\r\n const preferredModels = models.filter(m => !this.userMachineModels.find(userM => userM.modelname == m.name && userM.machinemfgId == mfgId));\r\n if (preferredModels.length > 0) {\r\n this.afterGetModels(preferredModels);\r\n } else {\r\n this.afterGetModels(models);\r\n }\r\n } else {\r\n this.afterGetModels(models);\r\n }\r\n });\r\n }\r\n\r\n afterGetModels(models: MachineModel[]) {\r\n console.log('getCircularsawMachineModelsByMfgId:', models);\r\n this.machineModels = models;\r\n\r\n const modelId = this.bladeInputs.machineModelId;\r\n if (modelId && this.machineModels.find(x => x.Id === modelId)) {\r\n this.machineDetailsForm.get('modelId').setValue(modelId.toString());\r\n } else {\r\n this.machineDetailsForm.get('modelId').setValue(null);\r\n }\r\n }\r\n\r\n addMachine() {\r\n this.markFormGroupTouched(this.machineDetailsForm);\r\n if (this.machineDetailsForm.valid) {\r\n const username = this.settingsService.getUserSettings().username;\r\n const mfgId = this.machineDetailsForm.get('brandId').value;\r\n const modelId = this.machineDetailsForm.get('modelId').value;\r\n this.endUserProfileService.addAppEndUserMachinestoProfile(username, mfgId, modelId)\r\n .subscribe(() => {\r\n this.modalController.dismiss();\r\n });\r\n }\r\n }\r\n\r\n markFormGroupTouched(formGroup: FormGroup) {\r\n (Object).values(formGroup.controls).forEach(control => {\r\n control.markAsTouched();\r\n control.markAsDirty();\r\n\r\n if (control.controls) {\r\n this.markFormGroupTouched(control);\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { AddEventModalPage } from './add-event-modal.page';\r\nimport { IonicSelectableModule } from 'ionic-selectable';\r\nimport { AutosizeModule } from 'ngx-autosize';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: AddEventModalPage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n IonicModule,\r\n AutosizeModule,\r\n RouterModule.forChild(routes),\r\n IonicSelectableModule,\r\n SharedModule\r\n ],\r\n declarations: [AddEventModalPage]\r\n})\r\nexport class AddEventModalPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}} \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Title\\r\\n \\r\\n \\r\\n \\r\\n Description\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Start\\r\\n \\r\\n \\r\\n \\r\\n End\\r\\n \\r\\n \\r\\n \\r\\n Location Type\\r\\n \\r\\n \\r\\n
Room
\\r\\n
\\r\\n \\r\\n
Other
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Location\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{meetingType.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n People\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n

Selected People:\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{person.name}} ({{person.address}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Add Person\\r\\n \\r\\n \\r\\n Name\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Email Address\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cancel\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Add\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Customers\\r\\n \\r\\n\\r\\n \\r\\n {{customer.Name + customerTypeDisplay(customer) + customerAdditionalInfo(customer)}}\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n

Selected Customers:\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{customer.Name + ' ' + customerAdditionalInfo(customer)}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Meeting Type\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{meetingType.label}}\\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 \\r\\n \\r\\n Private\\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 \\r\\n Delete Event\\r\\n \\r\\n \\r\\n \\r\\n {{title}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"p {\\n font-size: 0.8em;\\n color: #ea6153; }\\n\\n.select-text {\\n margin-left: 10px; }\\n\\n.invalid {\\n border: 1px solid #ea6153; }\\n\\nion-segment-button ion-label {\\n font-size: 12px; }\\n\\n@media (min-width: 400px) {\\n .responsiveLabel {\\n font-size: inherit; } }\\n\\n@media (max-width: 399px) {\\n .responsiveLabel {\\n font-size: 10px; } }\\n\\n.attachment-list {\\n margin-top: 2em;\\n margin-bottom: 8px;\\n width: 100%; }\\n\\n.fakeDisabled {\\n opacity: 0.3; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbW9kYWxzL2FkZC1ldmVudC1tb2RhbC9DOlxcVXNlcnNcXHNtaXRoZFxcc291cmNlXFxyZXBvc1xcU2FsZXNBcHBcXG1rbW9yc2Uvc3JjXFxhcHBcXHBhZ2VzXFxtb2RhbHNcXGFkZC1ldmVudC1tb2RhbFxcYWRkLWV2ZW50LW1vZGFsLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNJLGdCQUFnQjtFQUNoQixjQUFjLEVBQUE7O0FBR2xCO0VBQ0ksaUJBQWlCLEVBQUE7O0FBR3JCO0VBQ0kseUJBQXlCLEVBQUE7O0FBRzdCO0VBQ0ksZUFBZSxFQUFBOztBQUduQjtFQUNJO0lBQ0ksa0JBQWtCLEVBQUEsRUFDckI7O0FBR0w7RUFDSTtJQUNJLGVBQWUsRUFBQSxFQUNsQjs7QUFHTDtFQUNJLGVBQWM7RUFDZCxrQkFBaUI7RUFDakIsV0FBVSxFQUFBOztBQUdkO0VBQ0ksWUFBWSxFQUFBIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvbW9kYWxzL2FkZC1ldmVudC1tb2RhbC9hZGQtZXZlbnQtbW9kYWwucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGZvb3Rlci1oZWlnaHQ6IDExMHB4O1xyXG5cclxucCB7XHJcbiAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgY29sb3I6ICNlYTYxNTM7XHJcbn1cclxuXHJcbi5zZWxlY3QtdGV4dCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcclxufVxyXG5cclxuLmludmFsaWQge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VhNjE1MztcclxufVxyXG5cclxuaW9uLXNlZ21lbnQtYnV0dG9uIGlvbi1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbn1cclxuXHJcbkBtZWRpYShtaW4td2lkdGg6IDQwMHB4KSB7XHJcbiAgICAucmVzcG9uc2l2ZUxhYmVsIHtcclxuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6IDM5OXB4KSB7XHJcbiAgICAucmVzcG9uc2l2ZUxhYmVsIHtcclxuICAgICAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5hdHRhY2htZW50LWxpc3Qge1xyXG4gICAgbWFyZ2luLXRvcDoyZW07IFxyXG4gICAgbWFyZ2luLWJvdHRvbTo4cHg7XHJcbiAgICB3aWR0aDoxMDAlO1xyXG59XHJcblxyXG4uZmFrZURpc2FibGVkIHtcclxuICAgIG9wYWNpdHk6IDAuMztcclxufSJdfQ== */\"","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport {\r\n ModalController,\r\n AlertController,\r\n IonSelect,\r\n IonTextarea\r\n} from '@ionic/angular';\r\nimport { EventService } from 'src/app/services/event.service';\r\nimport { Event } from 'src/app/models/Event';\r\nimport {\r\n FormBuilder,\r\n FormGroup,\r\n Validators,\r\n FormControl\r\n} from '@angular/forms';\r\nimport { IonicSelectableComponent } from 'ionic-selectable';\r\nimport { Subscription, of, Observable, concat } from 'rxjs';\r\nimport { Room } from 'src/app/models/Room';\r\nimport { DatePipe } from '@angular/common';\r\nimport { AttachmentService } from 'src/app/services/attachment.service';\r\nimport { Attachment } from 'src/app/models/Attachment';\r\nimport { SettingsService } from 'src/app/services/settings.service';\r\nimport { catchError, finalize, take } from 'rxjs/operators';\r\nimport { Sensitivity } from 'src/app/models/enums/Sensitivity';\r\nimport { CustomerListItem } from 'src/app/models/CustomerListItem';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { MultiSelectService } from 'src/app/services/multi-select.service';\r\nimport { CustomerType } from 'src/app/models/enums/CustomerType';\r\nimport { MeetingType } from 'src/app/models/MeetingType';\r\nimport { FilesComponent } from 'src/app/components/files/files.component';\r\n// import { Validators, FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\n\r\nclass Location {\r\n public address: string;\r\n public name: string;\r\n}\r\n\r\nclass Person {\r\n public address: string;\r\n public name: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-add-event-modal',\r\n templateUrl: './add-event-modal.page.html',\r\n styleUrls: ['./add-event-modal.page.scss']\r\n})\r\nexport class AddEventModalPage implements OnInit {\r\n attachmentsLoading: boolean;\r\n attachments: Attachment[];\r\n event: Event;\r\n eventForm: FormGroup;\r\n submitAttempt: boolean;\r\n title: string;\r\n saving = false;\r\n locations: Room[];\r\n location: Room = new Room();\r\n locationType = 'NotRoom';\r\n isMarketingEvent = false;\r\n meetingTypes: MeetingType[];\r\n\r\n people: Person[];\r\n peopleSubscription: Subscription;\r\n customersSubscription: Subscription;\r\n maxDate: string = null;\r\n descriptionHTML: any;\r\n eventCRMId = null;\r\n currentUserPerson: any;\r\n currentUserAddress: string;\r\n\r\n personForm: FormGroup;\r\n // locationForm: FormGroup;\r\n personNameControl: FormControl;\r\n personAddressControl: FormControl;\r\n // locationControl: FormControl;\r\n @ViewChild('personComponent') personComponent: IonicSelectableComponent;\r\n @ViewChild('customersComponent')\r\n customersComponent: IonicSelectableComponent;\r\n @ViewChild('filesComponent') filesComponent: FilesComponent;\r\n // @ViewChild('locationComponent') locationComponent: IonicSelectableComponent;\r\n\r\n @Input() existingEvent: any;\r\n searchText = '';\r\n public customers: CustomerListItem[] = [];\r\n public getPeopleFiltered: any;\r\n public getCustomersFiltered: any;\r\n\r\n constructor(\r\n private modalController: ModalController,\r\n public eventService: EventService,\r\n private customerService: CustomerService,\r\n private formBuilder: FormBuilder,\r\n private alertController: AlertController,\r\n private datePipe: DatePipe,\r\n private attachmentService: AttachmentService,\r\n private settingsService: SettingsService,\r\n public multiSelectService: MultiSelectService\r\n ) {\r\n this.eventForm = this.formBuilder.group({\r\n title: ['', Validators.required],\r\n description: [''],\r\n location: [''],\r\n startDate: [null, Validators.required],\r\n endDate: [null, Validators.required],\r\n selectedPeople: [null, Validators.required],\r\n selectedCustomers: [[]],\r\n meetingType: [null],\r\n private: [false]\r\n });\r\n // Create port form that will be used to add or save port.\r\n this.personNameControl = this.formBuilder.control(\r\n null,\r\n Validators.required\r\n );\r\n this.personAddressControl = this.formBuilder.control(\r\n null,\r\n Validators.required\r\n );\r\n this.personForm = this.formBuilder.group({\r\n personName: this.personNameControl,\r\n personAddress: this.personAddressControl\r\n });\r\n }\r\n\r\n locationChange(event: {\r\n component: IonicSelectableComponent;\r\n value: any;\r\n }) {}\r\n\r\n peopleChange(event: { component: IonicSelectableComponent; value: any }) {}\r\n\r\n ngOnInit() {\r\n this.setMaxDateOption();\r\n this.getLocations();\r\n this.getMeetingTypes();\r\n if (this.existingEvent) {\r\n this.getExistingEvent();\r\n } else {\r\n this.title = 'Add Event';\r\n this.event = new Event();\r\n }\r\n this.submitAttempt = false;\r\n this.getPeopleFiltered = searchText => {\r\n return this.eventService.getPeopleFiltered(searchText, this.getTimezoneName());\r\n };\r\n this.getCustomersFiltered = searchText => {\r\n return this.customerService.searchCustomers(\r\n searchText,\r\n CustomerType.All,\r\n );\r\n };\r\n this.assignCurrentUserToEvent();\r\n }\r\n\r\n \r\n getTimezoneName() {\r\n // https://stackoverflow.com/questions/17348807/how-to-translate-between-windows-and-iana-time-zones\r\n // need to use IANA time zone and convert because devices pass\r\n // as example: Eastern Daylight instead of Eastern Standard\r\n // Exchange server doesn't recognized Easter Daylight Time\r\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n\r\n // https://stackoverflow.com/questions/9772955/how-can-i-get-the-timezone-name-in-javascript\r\n /* const today = new Date();\r\n const short = today.toLocaleDateString(undefined);\r\n const full = today.toLocaleDateString(undefined, { timeZoneName: 'long' });\r\n \r\n // Trying to remove date from the string in a locale-agnostic way\r\n const shortIndex = full.indexOf(short);\r\n if (shortIndex >= 0) {\r\n const trimmed = full.substring(0, shortIndex) + full.substring(shortIndex + short.length);\r\n \r\n // by this time `trimmed` should be the timezone's name with some punctuation -\r\n // trim it from both sides\r\n return trimmed.replace(/^[\\s,.\\-:;]+|[\\s,.\\-:;]+$/g, '');\r\n \r\n } else {\r\n // in some magic case when short representation of date is not present in the long one, just return the long one as a fallback, since it should contain the timezone's name\r\n return full;\r\n } */ \r\n }\r\n \r\n assignCurrentUserToEvent() {\r\n const userSettings = this.settingsService.getUserSettings();\r\n this.currentUserAddress = userSettings.email;\r\n this.eventService.getPeopleFiltered(userSettings.email, this.getTimezoneName()).subscribe(people => {\r\n const currentPeopleValue = this.eventForm.get('selectedPeople').value;\r\n if (people) {\r\n if (currentPeopleValue && !(currentPeopleValue.find(x => x.address == people[0].address))) {\r\n currentPeopleValue.unshift(people[0]);\r\n this.eventForm.get('selectedPeople').setValue(currentPeopleValue);\r\n } else if (!currentPeopleValue) {\r\n this.eventForm.get('selectedPeople').setValue([people[0]]);\r\n }\r\n }\r\n });\r\n }\r\n\r\n getExistingEvent() {\r\n if(this.existingEvent.isMarketingEvent){\r\n this.title = 'Marketing Event';\r\n this.isMarketingEvent = true;\r\n }\r\n else{\r\n this.title = 'Update Event';\r\n } \r\n this.event = new Event();\r\n this.event.id = this.existingEvent.id;\r\n this.eventForm\r\n .get('startDate')\r\n .setValue(this.existingEvent.start.toISOString());\r\n this.eventForm\r\n .get('endDate')\r\n .setValue(this.existingEvent.end.toISOString());\r\n this.eventForm.get('title').setValue(this.existingEvent.title);\r\n this.eventForm.get('private').setValue(this.existingEvent.sensitivity);\r\n this.descriptionHTML = this.existingEvent.extendedProps.body;\r\n this.eventForm.get('description').setValue(this.descriptionHTML);\r\n this.eventForm\r\n .get('selectedPeople')\r\n .setValue(this.existingEvent.requiredAttendees);\r\n if(!this.existingEvent.isMarketingEvent){\r\n if (this.existingEvent.customers[0]) {\r\n this.eventForm\r\n .get('selectedCustomers')\r\n .setValue(this.existingEvent.customers.map(x => JSON.parse(x)));\r\n }\r\n }\r\n this.getMeetingDetailsFromCRM();\r\n }\r\n\r\n setMaxDateOption() {\r\n const twoYearsAhead = new Date();\r\n twoYearsAhead.setFullYear(twoYearsAhead.getFullYear() + 2);\r\n this.maxDate = this.datePipe.transform(twoYearsAhead, 'yyyy-MM-dd');\r\n }\r\n\r\n getLocations() {\r\n this.eventService.getLocations(this.getTimezoneName()).subscribe(locations => {\r\n this.locations = locations;\r\n if (this.existingEvent) {\r\n const location = this.existingEvent.extendedProps.location;\r\n if (location) {\r\n const exchangeLocation = locations.find(\r\n x => x.Name == location\r\n );\r\n // Custom location\r\n if (exchangeLocation === undefined) {\r\n this.location = {\r\n Name: location,\r\n Address: null,\r\n Id: null,\r\n RoutingType: null,\r\n MailboxType: null\r\n };\r\n } else {\r\n this.locationType = 'Room';\r\n this.location = locations.find(x => x.Name == location);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n getMeetingDetailsFromCRM() {\r\n this.attachmentsLoading = true;\r\n this.eventService\r\n .getMeetingDetailsFromCRM(this.event.id)\r\n .pipe(catchError(this.onGetAttachmentsError))\r\n .subscribe(eventCRM => {\r\n if (eventCRM) {\r\n this.filesComponent.exchangeId = this.event.id;\r\n this.filesComponent.itemId = eventCRM['Id'];\r\n this.eventCRMId = eventCRM['Id'];\r\n this.filesComponent.getAttachments(); \r\n } else {\r\n // Exchange created event with no CRM equivalent\r\n }\r\n });\r\n }\r\n\r\n onGetAttachmentsError = (error: any): Observable => {\r\n this.attachmentsLoading = false;\r\n return of(null);\r\n };\r\n\r\n getMeetingTypes() {\r\n this.eventService.getMeetingTypes().subscribe(meetingTypes => {\r\n this.meetingTypes = meetingTypes;\r\n if (this.existingEvent && this.existingEvent.extendedProps.type) {\r\n const meetingType = meetingTypes.find(\r\n x => x.Id === this.existingEvent.extendedProps.type\r\n );\r\n this.eventForm.get('meetingType').setValue(meetingType);\r\n }\r\n });\r\n }\r\n\r\n closeModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n locationTypeChange() {\r\n this.location = new Room();\r\n }\r\n\r\n addUpdateEvent() {\r\n this.submitAttempt = true;\r\n this.markFormGroupTouched(this.eventForm);\r\n // if the form is valid\r\n if (this.eventForm.valid) {\r\n // this.event.id = null;\r\n const meetingType = this.eventForm.get('meetingType').value;\r\n if (meetingType) {\r\n this.event.type = meetingType.Id;\r\n } else {\r\n this.event.type = null;\r\n }\r\n this.event.title = this.eventForm.get('title').value;\r\n this.event.body = this.eventForm.get('description').value;\r\n this.event.location = this.location ? this.location.Name : null;\r\n this.event.room = this.location;\r\n this.event.start = this.eventForm.get('startDate').value;\r\n this.event.end = this.eventForm.get('endDate').value;\r\n this.event.requiredAttendees = this.eventForm.get(\r\n 'selectedPeople'\r\n ).value;\r\n this.event.customers = this.eventForm\r\n .get('selectedCustomers')\r\n .value.map(x => JSON.stringify(x));\r\n if (this.eventForm.get('private').value == true) {\r\n this.event.sensitivity = Sensitivity.Private;\r\n } else {\r\n this.event.sensitivity = Sensitivity.Normal;\r\n }\r\n this.saving = true;\r\n this.eventForm.disable();\r\n if (this.eventCRMId) {\r\n this.eventService.updateEvent(this.event, this.getTimezoneName()).subscribe(result => {\r\n let fileSync = this.filesComponent.syncAllFiles();\r\n concat(fileSync.addObservable, fileSync.removeObservable)\r\n .pipe(\r\n take(2),\r\n finalize(() => {\r\n this.saving = false;\r\n // If event adds successfully close the modal\r\n if (result) {\r\n this.modalController.dismiss();\r\n }\r\n })\r\n )\r\n .subscribe(() => {}, this.catchSaveError);\r\n }, this.catchSaveError);\r\n } else {\r\n this.eventService.addEvent(this.event, this.getTimezoneName()).subscribe(result => {\r\n let fileSync = this.filesComponent.syncAllFiles(null,result);\r\n concat(fileSync.addObservable, fileSync.removeObservable)\r\n .pipe(\r\n take(2),\r\n finalize(() => {\r\n this.saving = false;\r\n // If event adds successfully close the modal\r\n if (result) {\r\n this.modalController.dismiss();\r\n }\r\n })\r\n )\r\n .subscribe(() => {}, this.catchSaveError);\r\n }, this.catchSaveError);\r\n }\r\n }\r\n }\r\n\r\n catchSaveError = (error: any) => {\r\n this.commonErrorStuff();\r\n console.log('error');\r\n console.log(error);\r\n // this.showSaveErrorModal();\r\n }\r\n\r\n catchDeleteError = (error: any) => {\r\n this.commonErrorStuff();\r\n this.showDeleteErrorModal();\r\n };\r\n\r\n private commonErrorStuff() {\r\n this.saving = false;\r\n this.eventForm.enable();\r\n }\r\n\r\n async showSaveErrorModal() {\r\n const alert = await this.alertController.create({\r\n header: 'Alert',\r\n // subHeader: 'Subtitle',\r\n message: 'Error saving.',\r\n buttons: ['OK']\r\n });\r\n\r\n await alert.present();\r\n }\r\n\r\n async showDeleteErrorModal() {\r\n const alert = await this.alertController.create({\r\n header: 'Alert',\r\n message: 'Error deleting event.',\r\n buttons: ['OK']\r\n });\r\n\r\n await alert.present();\r\n }\r\n\r\n async deleteEvent() {\r\n const alert = await this.alertController.create({\r\n header: 'Confirmation',\r\n message: 'Are you sure you want to delete this event?',\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n role: 'cancel',\r\n cssClass: 'secondary',\r\n handler: () => {}\r\n },\r\n {\r\n text: 'Yes',\r\n handler: () => {\r\n this.saving = true;\r\n this.eventForm.disable();\r\n this.eventService\r\n .deleteEvent(this.event)\r\n .subscribe(result => {\r\n this.saving = false;\r\n // If event adds successfully close the modal\r\n if (result) {\r\n this.modalController.dismiss();\r\n }\r\n }, this.catchSaveError);\r\n }\r\n }\r\n ]\r\n });\r\n\r\n await alert.present();\r\n }\r\n\r\n setStartDate() {\r\n const start = this.eventForm.get('startDate').value;\r\n const end = this.eventForm.get('endDate').value;\r\n let startDate = new Date(start);\r\n const endDate = new Date(end);\r\n // if start date isn't set, set it\r\n if (start === '') {\r\n startDate = new Date(end);\r\n startDate.setHours(endDate.getHours() - 1);\r\n this.setControlValue('startDate', startDate.toISOString());\r\n } else if (startDate > endDate) {\r\n // if the start date is greater than the end date\r\n startDate = new Date(end);\r\n startDate.setHours(startDate.getHours() - 1);\r\n this.setControlValue('startDate', startDate.toISOString());\r\n }\r\n }\r\n\r\n setEndDate() {\r\n const start = this.eventForm.get('startDate').value;\r\n const end = this.eventForm.get('endDate').value;\r\n const startDate = new Date(start);\r\n let endDate = new Date(end);\r\n // if end date isn't set, set it\r\n if (end === '') {\r\n endDate = new Date(start);\r\n endDate.setHours(endDate.getHours() + 1);\r\n this.setControlValue('endDate', endDate.toISOString());\r\n } else if (startDate > endDate) {\r\n // if the start date is greater than the end date\r\n endDate = new Date(start);\r\n endDate.setHours(endDate.getHours() + 1);\r\n this.setControlValue('endDate', endDate.toISOString());\r\n }\r\n }\r\n\r\n setControlValue(controlName: string, value: any) {\r\n this.eventForm.get(controlName).setValue(value);\r\n setTimeout(() => {\r\n this.eventForm.controls[controlName].updateValueAndValidity();\r\n });\r\n }\r\n\r\n onAddPerson(event: { component: IonicSelectableComponent }) {\r\n // Clean form.\r\n this.personNameControl.reset();\r\n this.personAddressControl.reset();\r\n\r\n // Show form.\r\n event.component.showAddItemTemplate();\r\n }\r\n\r\n isInvalid(controlName: string) {\r\n return (\r\n !this.eventForm.controls[controlName].valid &&\r\n (this.eventForm.controls[controlName].dirty ||\r\n this.eventForm.controls[controlName].touched ||\r\n this.submitAttempt)\r\n );\r\n }\r\n\r\n addPerson() {\r\n // Create person.\r\n const person = {\r\n name: this.personNameControl.value,\r\n address: this.personAddressControl.value\r\n };\r\n\r\n // Add port to storage.\r\n // this.portService.addPort(port);\r\n\r\n // Add port to the top of list.\r\n this.personComponent.addItem(person).then(() => {\r\n // this.personComponent.search(person.name);\r\n });\r\n\r\n // Clean form.\r\n this.personNameControl.reset();\r\n this.personAddressControl.reset();\r\n\r\n // Show list.\r\n this.personComponent.hideAddItemTemplate();\r\n }\r\n\r\n markFormGroupTouched(formGroup: FormGroup) {\r\n (Object).values(formGroup.controls).forEach(control => {\r\n control.markAsTouched();\r\n control.markAsDirty();\r\n control.updateValueAndValidity();\r\n\r\n if (control.controls) {\r\n this.markFormGroupTouched(control);\r\n }\r\n });\r\n }\r\n\r\n getCustomers(term, type) {\r\n this.customerService\r\n .searchCustomers(term, type)\r\n .subscribe(customers => {\r\n this.customers = customers;\r\n });\r\n }\r\n\r\n customerAdditionalInfo(customer: any): string {\r\n let result = '(';\r\n if (customer.CustomerNumber) {\r\n result = result + customer.CustomerNumber + ' ';\r\n }\r\n if (customer.City) {\r\n result = result + customer.City;\r\n if (customer.State) {\r\n result = result + ', ' + customer.State;\r\n }\r\n }\r\n result = result + ')';\r\n return result;\r\n }\r\n\r\n customerTypeDisplay(customer) {\r\n return ' (' + customer.CustomerType[0] + ') ';\r\n }\r\n\r\n clearSelectedPeople() {\r\n this.eventForm.get('selectedPeople').setValue([this.currentUserPerson]);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { IonicSelectableModule } from 'ionic-selectable';\r\n\r\nimport { AddTaskPage } from './add-task.page';\r\nimport { AutosizeModule } from 'ngx-autosize';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: AddTaskPage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n IonicModule,\r\n AutosizeModule,\r\n IonicSelectableModule,\r\n RouterModule.forChild(routes)\r\n ],\r\n declarations: [AddTaskPage]\r\n})\r\nexport class AddTaskPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}} \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Title\\r\\n \\r\\n \\r\\n \\r\\n Comments\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Due Date\\r\\n \\r\\n \\r\\n \\r\\n Task Status\\r\\n \\r\\n Not Started\\r\\n In Progress\\r\\n Completed\\r\\n \\r\\n \\r\\n \\r\\n Assigned By\\r\\n \\r\\n \\r\\n \\r\\n Assigned To\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n People\\r\\n \\r\\n \\r\\n \\r\\n {{person.name}} ({{person.address}})\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n

Selected People:\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{person.name}} ({{person.address}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Add Person\\r\\n \\r\\n \\r\\n Name\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Email Address\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cancel\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Add\\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 \\r\\n \\r\\n Delete Task\\r\\n \\r\\n \\r\\n \\r\\n {{title}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFscy9hZGQtdGFzay9hZGQtdGFzay5wYWdlLnNjc3MifQ== */\"","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { ModalController, AlertController } from '@ionic/angular';\r\nimport { TaskService } from 'src/app/services/task.service';\r\nimport { IonicSelectableComponent } from 'ionic-selectable';\r\nimport { Subscription, Observable, of } from 'rxjs';\r\nimport { EventService } from 'src/app/services/event.service';\r\nimport { Task } from 'src/app/models/Task';\r\nimport { FormBuilder, Validators, FormGroup, FormControl } from '@angular/forms';\r\nimport { TaskStatus } from 'src/app/models/enums/TaskStatus';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { DatePipe, TitleCasePipe } from '@angular/common';\r\nimport { SettingsService } from 'src/app/services/settings.service';\r\nimport { MultiSelectService } from 'src/app/services/multi-select.service';\r\n\r\nclass Person {\r\n public address: string;\r\n public name: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-add-task',\r\n templateUrl: './add-task.page.html',\r\n styleUrls: ['./add-task.page.scss'],\r\n})\r\nexport class AddTaskPage implements OnInit {\r\n @Input() existingTask: Task = null;\r\n @Input() editable = false;\r\n\r\n public TaskStatus = TaskStatus;\r\n task: Task;\r\n taskForm: FormGroup;\r\n submitAttempt: boolean;\r\n people: Person[];\r\n selectedPeople: Person[] = [];\r\n peopleSubscription: Subscription;\r\n public title = 'Add Task';\r\n maxDate = null;\r\n saving = false;\r\n public getPeopleFiltered;\r\n\r\n // personForm: FormGroup;\r\n personNameControl: FormControl;\r\n personAddressControl: FormControl;\r\n isNew = true;\r\n @ViewChild('personComponent') personComponent: IonicSelectableComponent;\r\n\r\n personForm: FormGroup;\r\n assignerName: string;\r\n\r\n constructor(\r\n private modalController: ModalController,\r\n private taskService: TaskService,\r\n private eventService: EventService,\r\n private formBuilder: FormBuilder,\r\n private datePipe: DatePipe,\r\n private settingsService: SettingsService,\r\n private alertController: AlertController,\r\n public multiSelectService: MultiSelectService,\r\n private titleCasePipe: TitleCasePipe\r\n ) {\r\n this.taskForm = this.formBuilder.group({\r\n Id: [''],\r\n Subject: ['', Validators.required],\r\n Body: [''],\r\n DueDate: [null],\r\n Contacts: [''],\r\n Status: ['Not Started', Validators.required],\r\n Assigner: [null],\r\n AssignedUser: [null]\r\n });\r\n\r\n // Create port form that will be used to add or save port.\r\n this.personNameControl = this.formBuilder.control(null, Validators.required);\r\n this.personAddressControl = this.formBuilder.control(null, Validators.required);\r\n this.personForm = this.formBuilder.group({\r\n personName: this.personNameControl,\r\n personAddress: this.personAddressControl\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.setMaxDateOption();\r\n this.isNew = true;\r\n this.title = 'Add Task';\r\n if (this.existingTask) {\r\n if (this.existingTask.Status != 'Not Started' && this.existingTask.Status != 'Completed' && this.existingTask.Status != 'In Progress') {\r\n this.existingTask.Status = 'Not Started';\r\n }\r\n if (this.existingTask.Assigner) {\r\n const userSettings = this.settingsService.getUserSettings();\r\n const name = userSettings.name.split('\\\\');\r\n this.assignerName = this.titleCasePipe.transform(name[name.length -1]);\r\n this.existingTask.Assigner = this.titleCasePipe.transform(this.existingTask.Assigner);\r\n }\r\n this.taskForm.patchValue(this.existingTask);\r\n this.isNew = false;\r\n if (this.editable) {\r\n this.title = 'Update Task';\r\n } else {\r\n this.title = 'View Task';\r\n this.taskForm.disable();\r\n }\r\n if (this.existingTask.Contacts) {\r\n this.eventService.getUsersByEmails(this.existingTask.Contacts, this.getTimezoneName())\r\n .subscribe(result => {\r\n this.selectedPeople = result.people;\r\n });\r\n }\r\n } else {\r\n this.assignCurrentUserToTask();\r\n }\r\n this.getPeopleFiltered = (searchText) => this.eventService.getPeopleFiltered(searchText, this.getTimezoneName())\r\n }\r\n\r\n getTimezoneName() {\r\n // https://stackoverflow.com/questions/17348807/how-to-translate-between-windows-and-iana-time-zones\r\n // need to use IANA time zone and convert because devices pass\r\n // as example: Eastern Daylight instead of Eastern Standard\r\n // Exchange server doesn't recognized Easter Daylight Time\r\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n\r\n // https://stackoverflow.com/questions/9772955/how-can-i-get-the-timezone-name-in-javascript\r\n/* const today = new Date();\r\n const short = today.toLocaleDateString(undefined);\r\n const full = today.toLocaleDateString(undefined, { timeZoneName: 'long' });\r\n \r\n // Trying to remove date from the string in a locale-agnostic way\r\n const shortIndex = full.indexOf(short);\r\n if (shortIndex >= 0) {\r\n const trimmed = full.substring(0, shortIndex) + full.substring(shortIndex + short.length);\r\n \r\n // by this time `trimmed` should be the timezone's name with some punctuation -\r\n // trim it from both sides\r\n return trimmed.replace(/^[\\s,.\\-:;]+|[\\s,.\\-:;]+$/g, '');\r\n \r\n } else {\r\n // in some magic case when short representation of date is not present in the long one, just return the long one as a fallback, since it should contain the timezone's name\r\n return full;\r\n } */\r\n}\r\n\r\n setMaxDateOption() {\r\n const twoYearsAhead = new Date();\r\n twoYearsAhead.setFullYear(twoYearsAhead.getFullYear() + 2);\r\n this.maxDate = this.datePipe.transform(twoYearsAhead, 'yyyy-MM-dd');\r\n }\r\n\r\n closeModal(retVal) {\r\n this.modalController.dismiss({\r\n 'reload': retVal\r\n });\r\n }\r\n\r\n submit() {\r\n this.taskService.addTask(null)\r\n .subscribe(X => {});\r\n }\r\n\r\n addUpdateTask() {\r\n this.submitAttempt = true;\r\n if (this.taskForm.valid) {\r\n this.saving = true;\r\n this.taskForm.get('Contacts').setValue(this.selectedPeople !== undefined ? this.selectedPeople.map(x => x.address) : null);\r\n if (this.isNew) {\r\n this.taskService.addTask(this.taskForm.getRawValue())\r\n .pipe(catchError(this.onCaughtError))\r\n .subscribe(X => {\r\n this.afterTaskRequest();\r\n });\r\n } else {\r\n this.taskService.updateTask(this.taskForm.getRawValue())\r\n .subscribe(X => {\r\n this.afterTaskRequest();\r\n });\r\n }\r\n } else {\r\n console.log(this.taskForm.errors);\r\n }\r\n }\r\n\r\n afterTaskRequest() {\r\n this.taskService.refreshTaskNotificationCount();\r\n this.closeModal(true);\r\n }\r\n\r\n onCaughtError = (error: any): Observable => {\r\n console.log(error);\r\n this.saving = false;\r\n if (error.status == 400) {\r\n alert('Error adding task for the following addresses: ' + error.error.Message);\r\n }\r\n this.taskService.refreshTaskNotificationCount();\r\n return of(null);\r\n }\r\n\r\n onAddPerson(event: {\r\n component: IonicSelectableComponent\r\n }) {\r\n // Clean form.\r\n this.personNameControl.reset();\r\n this.personAddressControl.reset();\r\n\r\n // Show form.\r\n event.component.showAddItemTemplate();\r\n }\r\n\r\n addPerson() {\r\n // Create person.\r\n const person = {\r\n name: this.personNameControl.value,\r\n address: this.personAddressControl.value\r\n };\r\n\r\n // Add port to the top of list.\r\n this.personComponent.addItem(person).then(() => {\r\n // this.personComponent.search(person.name);\r\n });\r\n\r\n // Clean form.\r\n this.personNameControl.reset();\r\n this.personAddressControl.reset();\r\n\r\n // Show list.\r\n this.personComponent.hideAddItemTemplate();\r\n }\r\n\r\n assignCurrentUserToTask() {\r\n const userSettings = this.settingsService.getUserSettings();\r\n this.eventService.getPeopleFiltered(userSettings.email, this.getTimezoneName()).subscribe(people => {\r\n if (people) {\r\n this.selectedPeople = [people[0]];\r\n }\r\n });\r\n }\r\n\r\n async deleteTask() {\r\n const alert = await this.alertController.create({\r\n header: 'Confirmation',\r\n message: 'Are you sure you want to delete this task?',\r\n buttons: [\r\n {\r\n text: 'Cancel',\r\n role: 'cancel',\r\n cssClass: 'secondary',\r\n handler: () => {\r\n }\r\n }, {\r\n text: 'Yes',\r\n handler: () => {\r\n this.saving = true;\r\n this.taskService.deleteTask(this.existingTask).subscribe(result => {\r\n this.saving = false;\r\n // If event deletes successfully close the modal\r\n if (result) {\r\n this.afterTaskRequest();\r\n }\r\n });\r\n }\r\n }\r\n ]\r\n });\r\n\r\n await alert.present();\r\n }\r\n\r\n onPersonSelect(event) {\r\n if (this.selectedPeople.indexOf(event.item) < 0) {\r\n this.selectedPeople.push(event.item);\r\n }\r\n this.multiSelectService.removeFromSearchResultsNG(event, this.personComponent, 'address');\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { ContactUsModalPage } from './contact-us-modal.page';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ContactUsModalPage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n IonicModule,\r\n RouterModule.forChild(routes)\r\n ],\r\n declarations: [ContactUsModalPage]\r\n})\r\nexport class ContactUsModalPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}} \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n

{{pageInfo?.OdpCustomerName}} {{pageInfo?.OdpCustomerNumber ? ' (' + pageInfo?.OdpCustomerNumber + ')': ''}}

\\r\\n
\\r\\n \\r\\n
\\r\\n Fill out the info below and we will review and get back to you as soon as possible.\\r\\n
\\r\\n \\r\\n Full Name\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Email\\r\\n \\r\\n \\r\\n \\r\\n Phone Number\\r\\n \\r\\n \\r\\n \\r\\n Info\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Submit\\r\\n
\"","module.exports = \".subCard {\\n padding-left: 0;\\n padding-right: 0;\\n padding-top: 0; }\\n\\n.padAfterLastOfTopList {\\n margin-bottom: 10px; }\\n\\n.title {\\n text-align: center;\\n margin-bottom: 0px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbW9kYWxzL2NvbnRhY3QtdXMtbW9kYWwvQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxwYWdlc1xcbW9kYWxzXFxjb250YWN0LXVzLW1vZGFsXFxjb250YWN0LXVzLW1vZGFsLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsY0FBYyxFQUFBOztBQUdsQjtFQUNJLG1CQUFrQixFQUFBOztBQUd0QjtFQUNJLGtCQUFrQjtFQUNsQixrQkFBa0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFscy9jb250YWN0LXVzLW1vZGFsL2NvbnRhY3QtdXMtbW9kYWwucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnN1YkNhcmQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG59XHJcblxyXG4ucGFkQWZ0ZXJMYXN0T2ZUb3BMaXN0e1xyXG4gICAgbWFyZ2luLWJvdHRvbToxMHB4O1xyXG59XHJcblxyXG4udGl0bGUge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG59Il19 */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { ContactUsRequest } from 'src/app/models/ContactUsRequest';\r\nimport { SharedDataService, DictKey } from 'src/app/services/shared-data.service';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { ContactListItem } from 'src/app/models/ContactListItem';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { SettingsService } from 'src/app/services/settings.service';\r\nimport { PageInfo } from 'src/app/models/PageInfo';\r\n\r\n@Component({\r\n selector: 'app-contact-us-modal',\r\n templateUrl: './contact-us-modal.page.html',\r\n styleUrls: ['./contact-us-modal.page.scss'],\r\n})\r\nexport class ContactUsModalPage implements OnInit {\r\n @Input() type: string;\r\n\r\n title = 'Contact Us';\r\n\r\n request: ContactUsRequest;\r\n requestForm: FormGroup;\r\n\r\n submitAttempt = false;\r\n saving = false;\r\n public pageInfo: PageInfo = null;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n private formBuilder: FormBuilder,\r\n private settingsService: SettingsService,\r\n private customerService: CustomerService,\r\n private sharedDataService: SharedDataService\r\n ) {\r\n this.requestForm = this.formBuilder.group({\r\n FullName: [null, Validators.required],\r\n Email: [null, Validators.required],\r\n PhoneNumber: [null, Validators.required],\r\n Info: [null, Validators.required]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.request = new ContactUsRequest();\r\n\r\n // this.type is trial, tech, other, or null. TODO: make enum\r\n if (this.type === 'trial') {\r\n this.title = 'Request a Trial';\r\n } else if (this.type === 'tech') {\r\n this.title = 'Request a Tech Service Call';\r\n } else if (this.type === 'rga') {\r\n this.title = 'Request an RGA';\r\n }\r\n this.request.Type = this.type;\r\n\r\n const tokenClaims = this.settingsService.getUserSettings();\r\n const userInfo = this.settingsService.mapTokenClaimsToUserSettings(tokenClaims);\r\n const fullName = `${userInfo.FirstName || ''} ${userInfo.FamilyName || ''}`.trim();\r\n // console.log('userInfo, fullName', userInfo, fullName);\r\n\r\n this.request.FullName = fullName;\r\n this.request.Email = userInfo.Email;\r\n this.request.PhoneNumber = userInfo.Phone;\r\n this.requestForm.patchValue(this.request);\r\n this.getCustomerInfo();\r\n }\r\n\r\n getCustomerInfo() {\r\n this.pageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo) as PageInfo;\r\n this.sharedDataService.getEmitter(DictKey.AppPageInfo).subscribe(value => {\r\n this.pageInfo = value;\r\n });\r\n }\r\n\r\n closeModal() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n submit() {\r\n this.submitAttempt = true;\r\n // if the form is valid\r\n if (this.requestForm.valid) {\r\n this.saving = true;\r\n const fromForm = this.requestForm.getRawValue();\r\n this.request.FullName = fromForm.FullName;\r\n this.request.Email = fromForm.Email;\r\n this.request.PhoneNumber = fromForm.PhoneNumber;\r\n this.request.Info = fromForm.Info;\r\n\r\n this.request.CustNo = this.pageInfo && this.pageInfo.OdpCustomerNumber && this.pageInfo.OdpCustomerNumber.toString();\r\n\r\n this.customerService.submitContactUs(this.request).subscribe(result => {\r\n console.log(result);\r\n // If event adds successfully close the modal\r\n if (result) {\r\n this.closeModal();\r\n } else {\r\n alert('Save unsuccesful. Please try again.');\r\n this.saving = false;\r\n }\r\n }, (error) => {\r\n alert(`Save unsuccessful. Please try again. If it still doesn't work, this may help tech support solve this issue more quickly:\r\n Status: ${error.status}. Location: P-M-ACP. Reason: ${error.error.ExceptionMessage}`);\r\n this.saving = false;\r\n });\r\n } else {\r\n console.log('ERRORS');\r\n console.log(this.requestForm);\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 { CreditDetailsPage } from './credit-details.page';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: CreditDetailsPage\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 ],\r\n declarations: [CreditDetailsPage]\r\n})\r\nexport class CreditDetailsPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Credit Details \\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 \\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 \\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 \\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 {{invoice.INVOICE}}\\r\\n \\r\\n \\r\\n \\r\\n {{invoice.INVTYPE}}\\r\\n \\r\\n \\r\\n \\r\\n {{formatDate(invoice.INVDATE)}}\\r\\n \\r\\n \\r\\n \\r\\n {{formatDate(invoice.DUEDATE)}}\\r\\n \\r\\n \\r\\n \\r\\n {{invoice.DAYSOPEN}}\\r\\n \\r\\n \\r\\n \\r\\n {{invoice.CURRENCY}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{invoice.ORIGAMOUNT | currency}} \\r\\n
\\r\\n
\\r\\n \\r\\n {{invoice.OPENAMOUNT | currency}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{invoice.OPENAMOUNT | currency}}\\r\\n \\r\\n \\r\\n \\r\\n {{invoice.OPENAMOUNT | currency}}\\r\\n \\r\\n \\r\\n \\r\\n {{invoice.PONUMBER}}\\r\\n \\r\\n \\r\\n \\r\\n {{formatDate(invoice.LASTPYMT)}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n No results to display\\r\\n\"","module.exports = \"label {\\n font-weight: bold; }\\n\\n@media (max-width: 767px) {\\n ion-col {\\n font-size: 14px; } }\\n\\n@media (min-width: 992px) {\\n .mobile-version {\\n display: none; }\\n .text-center {\\n text-align: center; } }\\n\\n@media (max-width: 991px) {\\n .desktop-version {\\n display: none; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbW9kYWxzL2NyZWRpdC1kZXRhaWxzL0M6XFxVc2Vyc1xcc21pdGhkXFxzb3VyY2VcXHJlcG9zXFxTYWxlc0FwcFxcbWttb3JzZS9zcmNcXGFwcFxccGFnZXNcXG1vZGFsc1xcY3JlZGl0LWRldGFpbHNcXGNyZWRpdC1kZXRhaWxzLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFnQixFQUFBOztBQUdwQjtFQUNJO0lBQ0ksZUFBYyxFQUFBLEVBQ2pCOztBQUlMO0VBQ0k7SUFDSSxhQUFhLEVBQUE7RUFFakI7SUFDSSxrQkFBa0IsRUFBQSxFQUNyQjs7QUFHTDtFQUNJO0lBQ0ksYUFBYSxFQUFBLEVBQ2hCIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvbW9kYWxzL2NyZWRpdC1kZXRhaWxzL2NyZWRpdC1kZXRhaWxzLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImxhYmVsIHtcclxuICAgIGZvbnQtd2VpZ2h0OmJvbGQ7XHJcbn1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuICAgIGlvbi1jb2wge1xyXG4gICAgICAgIGZvbnQtc2l6ZToxNHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuQG1lZGlhKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC5tb2JpbGUtdmVyc2lvbiB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICAgIC50ZXh0LWNlbnRlciB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOiA5OTFweCkge1xyXG4gICAgLmRlc2t0b3AtdmVyc2lvbiB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufSJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { CustomerService } from 'src/app/services/customer.service';\r\nimport { GetARDetail } from 'src/app/models/GetARDetail';\r\n\r\n@Component({\r\n selector: 'app-credit-details',\r\n templateUrl: './credit-details.page.html',\r\n styleUrls: ['./credit-details.page.scss'],\r\n})\r\nexport class CreditDetailsPage implements OnInit {\r\n\r\n @Input('customerNumber') customerNumber: string;\r\n creditDetails: GetARDetail;\r\n isLoading = true;\r\n\r\n constructor(\r\n private modalController: ModalController,\r\n private customerService: CustomerService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.customerService.getARDetail(this.customerNumber)\r\n .subscribe(creditDetails => {\r\n this.isLoading = false;\r\n this.creditDetails = creditDetails;\r\n console.log(creditDetails);\r\n })\r\n }\r\n\r\n closeModal(retVal) {\r\n this.modalController.dismiss({\r\n 'reload': retVal\r\n });\r\n }\r\n\r\n // Dates stored as strings. Ex: 62119 => 06-20-2119\r\n formatDate(number): string {\r\n if (number == 0) {\r\n return '---';\r\n } else {\r\n const string = number.toString();\r\n const year = string.slice(-2);\r\n const day = string.slice(-4, -2);\r\n const month = string.slice(0, -4);\r\n return month + '-' + day + '-' + year;\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 { CrossoverProductDisplayPage } from './crossover-product-display.page';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: CrossoverProductDisplayPage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n IonicModule,\r\n SharedModule,\r\n RouterModule.forChild(routes)\r\n ],\r\n declarations: [CrossoverProductDisplayPage]\r\n})\r\nexport class CrossoverProductDisplayPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}} \\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 {{product.Competitor_PartNumber}} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{product.Product_Category}} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{product.Competitor_Brand}}\\r\\n \\r\\n \\r\\n \\r\\n {{product.Competitor_Blade_Description}}\\r\\n \\r\\n \\r\\n \\r\\n {{product.Packaging}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{product.CrossOver_Type}} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{product.Morse_CrossOver}}\\r\\n \\r\\n \\r\\n \\r\\n {{product.Morse_ModelNumber}}\\r\\n \\r\\n \\r\\n \\r\\n {{product.Morse_PartNumber}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{product.Other_Information}} \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","module.exports = \"label {\\n font-weight: bold;\\n padding-right: 10px; }\\n\\nion-row {\\n padding-top: 5px; }\\n\\nion-row.newSection {\\n padding-top: 15px; }\\n\\nion-grid {\\n padding-left: 15px; }\\n\\n.no-pad {\\n padding: 0px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbW9kYWxzL2Nyb3Nzb3Zlci1wcm9kdWN0LWRpc3BsYXkvQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxwYWdlc1xcbW9kYWxzXFxjcm9zc292ZXItcHJvZHVjdC1kaXNwbGF5XFxjcm9zc292ZXItcHJvZHVjdC1kaXNwbGF5LnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFpQjtFQUNqQixtQkFBbUIsRUFBQTs7QUFFdkI7RUFDSSxnQkFBZ0IsRUFBQTs7QUFFcEI7RUFDSSxpQkFBaUIsRUFBQTs7QUFFckI7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxZQUFZLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9wYWdlcy9tb2RhbHMvY3Jvc3NvdmVyLXByb2R1Y3QtZGlzcGxheS9jcm9zc292ZXItcHJvZHVjdC1kaXNwbGF5LnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImxhYmVsIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5pb24tcm93IHtcclxuICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbn1cclxuaW9uLXJvdy5uZXdTZWN0aW9uIHtcclxuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xyXG59XHJcbmlvbi1ncmlkIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxufVxyXG5cclxuLm5vLXBhZCB7XHJcbiAgICBwYWRkaW5nOiAwcHg7XHJcbn0iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { ToolsService } from 'src/app/services/tools.service';\r\nimport { CompetitiveXRefSearchResult } from 'src/app/models/CompetitiveXRefSearchResult';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { ProductCrossoverImage } from 'src/app/models/ProductCrossoverImage';\r\n\r\n@Component({\r\n selector: 'app-crossover-product-display',\r\n templateUrl: './crossover-product-display.page.html',\r\n styleUrls: ['./crossover-product-display.page.scss'],\r\n})\r\nexport class CrossoverProductDisplayPage implements OnInit {\r\n\r\n title = 'Competitor Product Reference';\r\n @Input() productId: number;\r\n\r\n product: CompetitiveXRefSearchResult;\r\n\r\n constructor(\r\n private modalController: ModalController,\r\n private toolsService: ToolsService,\r\n private sanitizer: DomSanitizer,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.toolsService.getProductCrossoverById(this.productId).subscribe(product => {\r\n product.processImages();\r\n console.log(product);\r\n this.product = product;\r\n });\r\n }\r\n\r\n getImageSrc(image: ProductCrossoverImage): SafeResourceUrl {\r\n const bad = '../../assets/images/Broken-image.svg';\r\n\r\n // if (!image || !image.Image) {\r\n // return null;\r\n // } else {\r\n // return this.sanitizer.bypassSecurityTrustResourceUrl('data:image/jpg;base64,' + image.Image);\r\n // }\r\n if (!image || (!image.Image && !image.ImageUrl)) {\r\n return bad;\r\n } else {\r\n if(image.Image){\r\n return this.sanitizer.bypassSecurityTrustResourceUrl('data:image/jpg;base64,' + image.Image);\r\n } else{\r\n return image.ImageUrl;\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n closeModal() {\r\n this.modalController.dismiss();\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 { DistributorSelectorPage } from './distributor-selector.page';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: DistributorSelectorPage\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 ],\r\n declarations: [DistributorSelectorPage]\r\n})\r\nexport class DistributorSelectorPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Distributors\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{dist.distributorName}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Update Quote Request\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \".morse-red-btn {\\n --background: var(--morse-red);\\n --color: white; }\\n\\n.morse-red-icon {\\n color: var(--morse-red); }\\n\\n.inline-icon {\\n margin-bottom: -4px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbW9kYWxzL2Rpc3RyaWJ1dG9yLXNlbGVjdG9yL0M6XFxVc2Vyc1xcc21pdGhkXFxzb3VyY2VcXHJlcG9zXFxTYWxlc0FwcFxcbWttb3JzZS9zcmNcXGFwcFxccGFnZXNcXG1vZGFsc1xcZGlzdHJpYnV0b3Itc2VsZWN0b3JcXGRpc3RyaWJ1dG9yLXNlbGVjdG9yLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQTtFQUNJLDhCQUFhO0VBQ2IsY0FBUSxFQUFBOztBQUdaO0VBQ0ksdUJBQXVCLEVBQUE7O0FBRzNCO0VBQ0ksbUJBQW1CLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9wYWdlcy9tb2RhbHMvZGlzdHJpYnV0b3Itc2VsZWN0b3IvZGlzdHJpYnV0b3Itc2VsZWN0b3IucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLmJvdHRvbS1mbGV4LWRpdiB7XHJcbi8vICAgICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xyXG4vLyAgICAgbWFyZ2luOiAxZW0gLjJlbSAuNGVtO1xyXG4vLyAgICAgZGlzcGxheTogZmxleDtcclxuLy8gICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuLy8gICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbi8vIH1cclxuXHJcbi5tb3JzZS1yZWQtYnRuIHtcclxuICAgIC0tYmFja2dyb3VuZDogdmFyKC0tbW9yc2UtcmVkKTtcclxuICAgIC0tY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4ubW9yc2UtcmVkLWljb24ge1xyXG4gICAgY29sb3I6IHZhcigtLW1vcnNlLXJlZCk7XHJcbn1cclxuXHJcbi5pbmxpbmUtaWNvbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtNHB4O1xyXG59Il19 */\"","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { AppEndUserCartDistributorsModel } from 'src/app/models/AppEndUserCartDistributorsModel';\r\nimport { EndUserDistributor } from 'src/app/models/EndUserDistributor';\r\nimport { SelectListItem } from 'src/app/models/SelectListItem';\r\nimport { EndUserProfileService } from 'src/app/services/end-user-profile.service';\r\nimport { EndUserShoppingCartService } from 'src/app/services/end-user-shopping-cart.service';\r\nimport { SettingsService } from 'src/app/services/settings.service';\r\n\r\n@Component({\r\n selector: 'app-distributor-selector',\r\n templateUrl: './distributor-selector.page.html',\r\n styleUrls: ['./distributor-selector.page.scss'],\r\n})\r\nexport class DistributorSelectorPage implements OnInit {\r\n\r\n @Input() cartId: number;\r\n @Input() cartDistributors: AppEndUserCartDistributorsModel[] = [];\r\n //selectableDistributors: SelectListItem[] = [];\r\n username: string;\r\n\r\n constructor(\r\n private modalController: ModalController,\r\n private endUserProfileService: EndUserProfileService,\r\n private settingsService: SettingsService,\r\n private endUserShoppingCartService: EndUserShoppingCartService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.username = this.settingsService.getUserSettings().username;\r\n //this.getAllDistributors();\r\n //this.rollingLog();\r\n }\r\n\r\n \r\n closeModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n onUpdateDistributors() {\r\n var selectedDistributors = this.cartDistributors.filter(d => d.isActive).map(d => d.distributorId);\r\n this.endUserShoppingCartService.updateCartDistributors(this.cartId, selectedDistributors)\r\n .subscribe(result => {\r\n this.closeModal();\r\n });\r\n }\r\n\r\n // getAllDistributors() {\r\n // this.endUserProfileService.getDistributorsForEndUser(this.username)\r\n // .subscribe(distributors => {\r\n // this.selectableDistributors = distributors.map(x => { \r\n // return {\r\n // Text: x.distributorName,\r\n // Value: x.DistributorId.toString(),\r\n // Selected: this.cartDistributors.findIndex(c => c.distributorId == x.DistributorId) >= 0 ? true : false,\r\n // Disabled: false,\r\n // Group: x.isDefault ? 'Default' : null\r\n // }\r\n // });\r\n // })\r\n // }\r\n\r\n // rollingLog() {\r\n // console.log('selectable: ', this.selectableDistributors);\r\n // console.log('cartDistributors: ', this.cartDistributors);\r\n // setTimeout(() => {\r\n // this.rollingLog();\r\n // }, 2000)\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 { SendInvoiceEmailPage } from './send-invoice-email.page';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: SendInvoiceEmailPage\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 ],\r\n declarations: [SendInvoiceEmailPage]\r\n})\r\nexport class SendInvoiceEmailPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Send Invoice PDF\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Invoice Number: {{invoicenbr}}\\r\\n \\r\\n Email Address\\r\\n \\r\\n \\r\\n \\r\\n Second Recipient Email\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Send PDF\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFscy9zZW5kLWludm9pY2UtZW1haWwvc2VuZC1pbnZvaWNlLWVtYWlsLnBhZ2Uuc2NzcyJ9 */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { DistributorService } from 'src/app/services/distributor.service';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { SettingsService } from 'src/app/services/settings.service';\r\n\r\n@Component({\r\n selector: 'app-send-invoice-email',\r\n templateUrl: './send-invoice-email.page.html',\r\n styleUrls: ['./send-invoice-email.page.scss'],\r\n})\r\nexport class SendInvoiceEmailPage implements OnInit {\r\n @Input() invoicenbr: string;\r\n email1 = '';\r\n email2 = '';\r\n\r\n saving = false;\r\n\r\n constructor(\r\n private distributorService: DistributorService,\r\n private modalCtrl: ModalController,\r\n private settingsService: SettingsService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.email1 = this.settingsService.getUserSettings().email;\r\n }\r\n\r\n closeModal() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n sendEmail() {\r\n if (!/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(this.email1)) {\r\n alert('The primary email is invalid.');\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n this.distributorService.postEmailInvoicePdf(this.email1, this.email2, this.invoicenbr).subscribe(() => {\r\n this.saving = false;\r\n this.modalCtrl.dismiss();\r\n }, er => {\r\n this.saving = false;\r\n alert('Failed to send email.');\r\n throw er;\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 { ShoppingCartEndUserPage } from './shopping-cart-end-user.page';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ShoppingCartEndUserPage\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 ],\r\n declarations: [ShoppingCartEndUserPage]\r\n})\r\nexport class ShoppingCartEndUserPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Shopping Cart\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Cart#: {{cartIdDisplay}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{distributor.distributorName}}\\r\\n \\r\\n \\r\\n \\r\\n Add Distributor(s)\\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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Part#PartCountRemove
{{part.partNumber}}
{{part.partDescription}}{{getPartDescription(part)}}
\\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
\\r\\n
\\r\\n \\r\\n Submit Quote Request\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"ion-card ion-card-header {\\n padding: 12px 16px 10px; }\\n\\n.quote-card-header span {\\n font-weight: bold;\\n color: #111; }\\n\\nion-card ion-card-content {\\n padding: 0;\\n background: #f6f6f6; }\\n\\nion-card ion-card-content table {\\n width: 100%; }\\n\\nion-card ion-card-content table th {\\n font-weight: bold;\\n background: var(--morse-red);\\n color: white; }\\n\\nion-card ion-card-content table td {\\n color: #111; }\\n\\nion-card ion-card-content table th:first-child {\\n padding-left: .6em; }\\n\\nion-card ion-card-content table th:last-child {\\n padding-right: .6em; }\\n\\nion-card ion-card-content table td:first-child {\\n padding-left: .6em; }\\n\\nion-card ion-card-content table td:last-child {\\n padding-right: .6em; }\\n\\n.total-cost {\\n text-align: right; }\\n\\n.total-cost span {\\n display: inline-block;\\n margin-left: 4px; }\\n\\n.total-cost .label {\\n font-weight: bold; }\\n\\n.bottom-flex-div {\\n background: #f6f6f6;\\n margin: 1em .2em .4em;\\n display: flex;\\n justify-content: space-between;\\n align-items: center; }\\n\\n.morse-red-btn {\\n --background: var(--morse-red);\\n --color: white; }\\n\\n@media (max-width: 767px) {\\n .center-mobile {\\n text-align: center; } }\\n\\ntd {\\n padding-right: 8px; }\\n\\n.qty {\\n max-width: 64px;\\n text-align: center; }\\n\\n.icon-btn-center {\\n margin-bottom: 12px; }\\n\\n.margin-top {\\n margin-top: 4px; }\\n\\n.placeholder-input {\\n visibility: hidden;\\n width: 4px; }\\n\\ntd {\\n background-color: white; }\\n\\n.icon-btn {\\n max-height: 28px; }\\n\\n#cart-distributors > ion-chip:first-of-type {\\n margin-left: 0px; }\\n\\n.link-color,\\n.link-color ion-icon,\\n.link-color ion-label {\\n color: #07C;\\n background-color: #eff3fd; }\\n\\ntbody tr,\\ntbody tr td,\\n.bottom-flex-div,\\ntable,\\nion-card ion-card-content.table-card {\\n background: var(--ion-item-background, var(--ion-background-color, #fff)); }\\n\\n.count-col {\\n min-width: 120px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbW9kYWxzL3Nob3BwaW5nLWNhcnQtZW5kLXVzZXIvQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxwYWdlc1xcbW9kYWxzXFxzaG9wcGluZy1jYXJ0LWVuZC11c2VyXFxzaG9wcGluZy1jYXJ0LWVuZC11c2VyLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLHVCQUF1QixFQUFBOztBQUczQjtFQUNJLGlCQUFpQjtFQUNqQixXQUFXLEVBQUE7O0FBR2Y7RUFDSSxVQUFVO0VBQ1YsbUJBQW1CLEVBQUE7O0FBRnZCO0lBS1EsV0FBVyxFQUFBOztBQUxuQjtNQVFZLGlCQUFpQjtNQUNqQiw0QkFBNEI7TUFDNUIsWUFBWSxFQUFBOztBQVZ4QjtNQWFZLFdBQVcsRUFBQTs7QUFidkI7TUFpQlksa0JBQWtCLEVBQUE7O0FBakI5QjtNQW9CWSxtQkFBbUIsRUFBQTs7QUFwQi9CO01BdUJZLGtCQUFrQixFQUFBOztBQXZCOUI7TUEwQlksbUJBQW1CLEVBQUE7O0FBSy9CO0VBQ0ksaUJBQWlCLEVBQUE7O0FBRHJCO0lBSVEscUJBQXFCO0lBQ3JCLGdCQUFnQixFQUFBOztBQUx4QjtJQVFRLGlCQUFpQixFQUFBOztBQUl6QjtFQUNJLG1CQUFtQjtFQUNuQixxQkFBcUI7RUFDckIsYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixtQkFBbUIsRUFBQTs7QUFHdkI7RUFDSSw4QkFBYTtFQUNiLGNBQVEsRUFBQTs7QUFHWjtFQUNJO0lBQ0ksa0JBQWtCLEVBQUEsRUFDckI7O0FBR0w7RUFDSSxrQkFBa0IsRUFBQTs7QUFHdEI7RUFDSSxlQUFlO0VBQ2Ysa0JBQWtCLEVBQUE7O0FBR3RCO0VBQ0ksbUJBQW1CLEVBQUE7O0FBR3ZCO0VBQ0ksZUFBZSxFQUFBOztBQUduQjtFQUNJLGtCQUFrQjtFQUNsQixVQUFTLEVBQUE7O0FBR2I7RUFDSSx1QkFBdUIsRUFBQTs7QUFJM0I7RUFDSSxnQkFBZSxFQUFBOztBQUduQjtFQUNJLGdCQUFlLEVBQUE7O0FBR25COzs7RUFHSSxXQUFXO0VBQ1gseUJBQXdCLEVBQUE7O0FBRzVCOzs7OztFQU1JLHlFQUF1RSxFQUFBOztBQUkzRTtFQUNJLGdCQUFnQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvbW9kYWxzL3Nob3BwaW5nLWNhcnQtZW5kLXVzZXIvc2hvcHBpbmctY2FydC1lbmQtdXNlci5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpb24tY2FyZCBpb24tY2FyZC1oZWFkZXIge1xyXG4gICAgcGFkZGluZzogMTJweCAxNnB4IDEwcHg7XHJcbn1cclxuXHJcbi5xdW90ZS1jYXJkLWhlYWRlciBzcGFuIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgY29sb3I6ICMxMTE7XHJcbn1cclxuXHJcbmlvbi1jYXJkIGlvbi1jYXJkLWNvbnRlbnQge1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6ICNmNmY2ZjY7XHJcblxyXG4gICAgdGFibGUge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICB0aCB7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tb3JzZS1yZWQpO1xyXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgICAgY29sb3I6ICMxMTE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aDpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjZlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGg6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IC42ZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRkOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuNmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0ZDpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogLjZlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi50b3RhbC1jb3N0IHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xyXG4gICAgfVxyXG4gICAgLmxhYmVsIHtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxufVxyXG5cclxuLmJvdHRvbS1mbGV4LWRpdiB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xyXG4gICAgbWFyZ2luOiAxZW0gLjJlbSAuNGVtO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5tb3JzZS1yZWQtYnRuIHtcclxuICAgIC0tYmFja2dyb3VuZDogdmFyKC0tbW9yc2UtcmVkKTtcclxuICAgIC0tY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG5AbWVkaWEobWF4LXdpZHRoOjc2N3B4KSB7XHJcbiAgICAuY2VudGVyLW1vYmlsZSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG59XHJcblxyXG50ZCB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XHJcbn1cclxuXHJcbi5xdHkge1xyXG4gICAgbWF4LXdpZHRoOiA2NHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uaWNvbi1idG4tY2VudGVyIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XHJcbn1cclxuXHJcbi5tYXJnaW4tdG9wIHtcclxuICAgIG1hcmdpbi10b3A6IDRweDtcclxufVxyXG5cclxuLnBsYWNlaG9sZGVyLWlucHV0IHtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIHdpZHRoOjRweDtcclxufVxyXG5cclxudGQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcblxyXG4uaWNvbi1idG4ge1xyXG4gICAgbWF4LWhlaWdodDoyOHB4O1xyXG59XHJcblxyXG4jY2FydC1kaXN0cmlidXRvcnMgPiBpb24tY2hpcDpmaXJzdC1vZi10eXBlIHtcclxuICAgIG1hcmdpbi1sZWZ0OjBweDtcclxufVxyXG5cclxuLmxpbmstY29sb3IsXHJcbi5saW5rLWNvbG9yIGlvbi1pY29uLFxyXG4ubGluay1jb2xvciBpb24tbGFiZWwge1xyXG4gICAgY29sb3I6ICMwN0M7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNlZmYzZmQ7XHJcbn1cclxuXHJcbnRib2R5IHRyLCAgXHJcbnRib2R5IHRyIHRkLFxyXG4uYm90dG9tLWZsZXgtZGl2LFxyXG50YWJsZSxcclxuaW9uLWNhcmQgaW9uLWNhcmQtY29udGVudC50YWJsZS1jYXJkXHJcbiB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24taXRlbS1iYWNrZ3JvdW5kLHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCNmZmYpKTtcclxufVxyXG5cclxuXHJcbi5jb3VudC1jb2wge1xyXG4gICAgbWluLXdpZHRoOiAxMjBweDtcclxufSJdfQ== */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { AlertController, ModalController } from '@ionic/angular';\r\nimport { BehaviorSubjectService } from 'src/app/services/behavior-subject.service';\r\nimport { SharedDataService, DictKey } from 'src/app/services/shared-data.service';\r\nimport { Router } from '@angular/router';\r\nimport { CartPopup } from 'src/app/models/CartPopup';\r\nimport { OdpService } from 'src/app/services/odp.service';\r\nimport { CartItem } from 'src/app/models/CartItem';\r\nimport { EndUserProfileService } from 'src/app/services/end-user-profile.service';\r\nimport { EndUserDistributor } from 'src/app/models/EndUserDistributor';\r\nimport { SettingsService } from 'src/app/services/settings.service';\r\nimport { EndUserShoppingCartService } from 'src/app/services/end-user-shopping-cart.service';\r\nimport { AppEndUserLineItemModel } from 'src/app/models/AppEndUserLineItem';\r\nimport { AppEndUserCartDistributorsModel } from 'src/app/models/AppEndUserCartDistributorsModel';\r\nimport { DistributorSelectorPage } from '../distributor-selector/distributor-selector.page';\r\n\r\n\r\n@Component({\r\n selector: 'app-shopping-cart-end-user',\r\n templateUrl: './shopping-cart-end-user.page.html',\r\n styleUrls: ['./shopping-cart-end-user.page.scss'],\r\n})\r\nexport class ShoppingCartEndUserPage implements OnInit {\r\n\r\n cartPopup: CartPopup = new CartPopup();\r\n cartId: number;\r\n odpUrl: string;\r\n defaultDistributor: EndUserDistributor;\r\n cartItems: AppEndUserLineItemModel[] = [];\r\n username: string;\r\n cartIdDisplay: string = '';\r\n cartDistributors: AppEndUserCartDistributorsModel[] = [];\r\n selectedCartDistributors: AppEndUserCartDistributorsModel[] = [];\r\n distributorsAssigned = false;\r\n isSubmitting = false;\r\n\r\n constructor(\r\n private modalController: ModalController,\r\n private sharedDataService: SharedDataService,\r\n private router: Router,\r\n private odpService: OdpService,\r\n private behaviorSubjectService: BehaviorSubjectService,\r\n private endUserProfileService: EndUserProfileService,\r\n private settingsService: SettingsService,\r\n private endUserShoppingCartService: EndUserShoppingCartService,\r\n private alertController: AlertController\r\n ) {\r\n behaviorSubjectService.opdUrlSubject.subscribe(url => {\r\n this.odpUrl = url;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.cartId = this.sharedDataService.getCurrentCartQuoteNumber(); \r\n if (this.cartId && this.cartId > 0) {\r\n this.cartIdDisplay = this.cartId.toString();\r\n }\r\n this.getDefaultDistributor();\r\n this.getCartItems();\r\n this.getCartDistributors();\r\n // this.distributorService.GetCartItemList(currentCart).subscribe(cartPopup => {\r\n // this.cartPopup = cartPopup\r\n // });\r\n }\r\n\r\n getCartItems() {\r\n this.endUserShoppingCartService.getCartLineItemList(this.cartId)\r\n .subscribe(cartLineItems => {\r\n this.cartItems = cartLineItems;\r\n });\r\n }\r\n\r\n getCartDistributors() {\r\n this.endUserShoppingCartService.getCartDistributors(this.cartId)\r\n .subscribe(cartDistributors => {\r\n this.cartDistributors = cartDistributors.sort((a, b) => {\r\n if (a.isDefault && !b.isDefault) {\r\n return -1;\r\n } else if (!a.isDefault && b.isDefault) {\r\n return 1;\r\n } else {\r\n if (a.distributorName < b.distributorName) {\r\n return -1;\r\n } else if (a.distributorName > b.distributorName) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n });\r\n this.selectedCartDistributors = this.cartDistributors.filter(d => d.isActive);\r\n if (this.selectedCartDistributors.length == 0){\r\n this.distributorsAssigned = false;\r\n } else {\r\n this.distributorsAssigned = true;\r\n }\r\n });\r\n }\r\n\r\n updateCartDistributors() {\r\n // this.endUserShoppingCartService.updateCartDistributors(this.cartId, )\r\n // .subscribe(result => {\r\n\r\n // });\r\n }\r\n\r\n getDefaultDistributor() {\r\n this.username = this.settingsService.getUserSettings().username;\r\n this.endUserProfileService.getDistributorsForEndUser(this.username)\r\n .subscribe(distributors => {\r\n this.defaultDistributor = distributors.find(x => x.isDefault);\r\n });\r\n }\r\n\r\n closeModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n navigateToOdp() {\r\n window.open(this.odpUrl, '_blank');\r\n }\r\n\r\n onPartDescription(part: AppEndUserLineItemModel) {\r\n // navigate to that part's page\r\n this.closeModal();\r\n this.router.navigateByUrl(`/product/${part.partNumber}`);\r\n }\r\n\r\n onSubmitQuote() {\r\n // Go to quotes page\r\n this.closeModal();\r\n }\r\n\r\n updateCartLineItemQuantity(lineItem: AppEndUserLineItemModel) {\r\n this.endUserShoppingCartService.updateCartLineItems(this.cartId, lineItem.id, lineItem.quantity)\r\n .subscribe(result => {\r\n this.getCartItems();\r\n this.sharedDataService.fetchCartCount();\r\n });\r\n }\r\n\r\n removeCartLineItem(lineItem: AppEndUserLineItemModel) {\r\n this.endUserShoppingCartService.removeCartLineItem(this.cartId, lineItem.id)\r\n .subscribe(result => {\r\n this.getCartItems();\r\n this.sharedDataService.fetchCartCount();\r\n });\r\n }\r\n\r\n submitCart() {\r\n this.isSubmitting = true;\r\n this.endUserShoppingCartService.submitCart(this.cartId, this.username)\r\n .subscribe(result => {\r\n this.isSubmitting = false;\r\n this.showQuoteSubmittedModal('Success', 'Thank you for your quote request. Someone will be in touch shortly.');\r\n }, err => {\r\n this.isSubmitting = false;\r\n this.showQuoteSubmittedModal('Failed', 'Request for quote encountered an error during submission.')\r\n });\r\n }\r\n\r\n submitDisabled(): boolean {\r\n if (this.cartItems && this.cartItems.length > 0 && this.selectedCartDistributors && this.selectedCartDistributors.length > 0 \r\n && !this.isSubmitting) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n getPartDescription(part: AppEndUserLineItemModel) {\r\n var partDimensions = null;\r\n if (part.dimensions) {\r\n partDimensions = part.dimensions.replace(',', '\\n');\r\n }\r\n return (partDimensions ? '\\n' + partDimensions : '') + (part.tpi ? '\\nTPI: ' + part.tpi : '') + (part.packaging ? '\\nPackaging: ' + part.packaging : '');\r\n }\r\n\r\n async editDistributors(editDistributors) {\r\n if (this.cartDistributors.length < 1) {\r\n this.closeModal();\r\n this.router.navigateByUrl(`/distributor-locator/add`);\r\n } else {\r\n await this.presentDistributorSelectorModal();\r\n }\r\n }\r\n\r\n async showQuoteSubmittedModal(header, message) {\r\n const alert = await this.alertController.create({\r\n header: header,\r\n // subHeader: 'Subtitle',\r\n message: message,\r\n buttons: [\r\n { text: 'OK',\r\n }\r\n ],\r\n \r\n });\r\n\r\n alert.onDidDismiss().then(() => {\r\n this.sharedDataService.fetchCartCount()\r\n this.closeModal();\r\n });\r\n\r\n await alert.present();\r\n }\r\n\r\n async presentDistributorSelectorModal() {\r\n var modal;\r\n modal = await this.modalController.create({\r\n component: DistributorSelectorPage,\r\n componentProps: {\r\n 'cartId': this.cartId,\r\n 'cartDistributors': this.cartDistributors\r\n }\r\n });\r\n modal.onDidDismiss().then(() => {\r\n this.getCartDistributors();\r\n });\r\n return await modal.present();\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 { ShoppingCartPage } from './shopping-cart.page';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ShoppingCartPage\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 ],\r\n declarations: [ShoppingCartPage]\r\n})\r\nexport class ShoppingCartPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Shopping Cart\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n ODPortal\\r\\n \\r\\n
\\r\\n {{odpCustomerName + ' ' + billToNumber}}\\r\\n
\\r\\n
\\r\\n QUOTE# {{cartPopup.QuoteNumber}}  {{cartPopup.QuoteDate | date}}\\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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Part#PartCountPrice
{{part.PartNumber}} {{part.PartDescription}} {{part.PartQuantity}}{{part.PartTotalPrice | currency}}
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n New Quote\\r\\n Change Quote\\r\\n
\\r\\n
\\r\\n \\r\\n View Quote\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"ion-card ion-card-header {\\n padding: 12px 16px 10px; }\\n\\n.quote-card-header span {\\n font-weight: bold;\\n color: #111; }\\n\\nion-card ion-card-content {\\n padding: 0;\\n background: #f6f6f6; }\\n\\nion-card ion-card-content table {\\n width: 100%; }\\n\\nion-card ion-card-content table th {\\n font-weight: bold;\\n background: var(--morse-red);\\n color: white; }\\n\\nion-card ion-card-content table td {\\n color: #111; }\\n\\nion-card ion-card-content table th:first-child {\\n padding-left: .6em; }\\n\\nion-card ion-card-content table th:last-child {\\n padding-right: .6em; }\\n\\nion-card ion-card-content table td:first-child {\\n padding-left: .6em; }\\n\\nion-card ion-card-content table td:last-child {\\n padding-right: .6em; }\\n\\n.total-cost {\\n text-align: right; }\\n\\n.total-cost span {\\n display: inline-block;\\n margin-left: 4px; }\\n\\n.total-cost .label {\\n font-weight: bold; }\\n\\n.bottom-flex-div {\\n background: #f6f6f6;\\n margin: 1em .2em .4em;\\n display: flex;\\n justify-content: space-between;\\n align-items: center; }\\n\\n.morse-red-btn {\\n --background: var(--morse-red);\\n --color: white; }\\n\\n.span-link {\\n cursor: pointer;\\n color: #07C;\\n text-decoration: underline; }\\n\\n@media (max-width: 767px) {\\n .center-mobile {\\n text-align: center; } }\\n\\ntd {\\n padding-right: 8px; }\\n\\ntbody tr,\\ntbody tr td,\\n.bottom-flex-div,\\ntable,\\nion-card ion-card-content.table-card {\\n background: var(--ion-item-background, var(--ion-background-color, #fff)); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbW9kYWxzL3Nob3BwaW5nLWNhcnQvQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxwYWdlc1xcbW9kYWxzXFxzaG9wcGluZy1jYXJ0XFxzaG9wcGluZy1jYXJ0LnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLHVCQUF1QixFQUFBOztBQUczQjtFQUNJLGlCQUFpQjtFQUNqQixXQUFXLEVBQUE7O0FBR2Y7RUFDSSxVQUFVO0VBQ1YsbUJBQW1CLEVBQUE7O0FBRnZCO0lBS1EsV0FBVyxFQUFBOztBQUxuQjtNQVFZLGlCQUFpQjtNQUNqQiw0QkFBNEI7TUFDNUIsWUFBWSxFQUFBOztBQVZ4QjtNQWFZLFdBQVcsRUFBQTs7QUFidkI7TUFpQlksa0JBQWtCLEVBQUE7O0FBakI5QjtNQW9CWSxtQkFBbUIsRUFBQTs7QUFwQi9CO01BdUJZLGtCQUFrQixFQUFBOztBQXZCOUI7TUEwQlksbUJBQW1CLEVBQUE7O0FBSy9CO0VBQ0ksaUJBQWlCLEVBQUE7O0FBRHJCO0lBSVEscUJBQXFCO0lBQ3JCLGdCQUFnQixFQUFBOztBQUx4QjtJQVFRLGlCQUFpQixFQUFBOztBQUl6QjtFQUNJLG1CQUFtQjtFQUNuQixxQkFBcUI7RUFDckIsYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixtQkFBbUIsRUFBQTs7QUFHdkI7RUFDSSw4QkFBYTtFQUNiLGNBQVEsRUFBQTs7QUFHWjtFQUNJLGVBQWM7RUFDZCxXQUFVO0VBQ1YsMEJBQXlCLEVBQUE7O0FBUTdCO0VBQ0k7SUFDSSxrQkFBa0IsRUFBQSxFQUNyQjs7QUFHTDtFQUNJLGtCQUFrQixFQUFBOztBQUl0Qjs7Ozs7RUFNSSx5RUFBdUUsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFscy9zaG9wcGluZy1jYXJ0L3Nob3BwaW5nLWNhcnQucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW9uLWNhcmQgaW9uLWNhcmQtaGVhZGVyIHtcclxuICAgIHBhZGRpbmc6IDEycHggMTZweCAxMHB4O1xyXG59XHJcblxyXG4ucXVvdGUtY2FyZC1oZWFkZXIgc3BhbiB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGNvbG9yOiAjMTExO1xyXG59XHJcblxyXG5pb24tY2FyZCBpb24tY2FyZC1jb250ZW50IHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xyXG5cclxuICAgIHRhYmxlIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICAgdGgge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbW9yc2UtcmVkKTtcclxuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMTExO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGg6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC42ZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0ZDpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjZlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGQ6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IC42ZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4udG90YWwtY29zdCB7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcclxuICAgIH1cclxuICAgIC5sYWJlbCB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5ib3R0b20tZmxleC1kaXYge1xyXG4gICAgYmFja2dyb3VuZDogI2Y2ZjZmNjtcclxuICAgIG1hcmdpbjogMWVtIC4yZW0gLjRlbTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4ubW9yc2UtcmVkLWJ0biB7XHJcbiAgICAtLWJhY2tncm91bmQ6IHZhcigtLW1vcnNlLXJlZCk7XHJcbiAgICAtLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLnNwYW4tbGluayB7XHJcbiAgICBjdXJzb3I6cG9pbnRlcjtcclxuICAgIGNvbG9yOiMwN0M7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO1xyXG59XHJcblxyXG4vLyAuc3Bhbi1saW5rOmhvdmVyIHtcclxuLy8gICAgIHRleHQtZGVjb3JhdGlvbjpub25lO1xyXG4vLyAgICAgY29sb3I6IHJnYigzOCwgMzgsIDI1NSk7XHJcbi8vIH1cclxuXHJcbkBtZWRpYShtYXgtd2lkdGg6NzY3cHgpIHtcclxuICAgIC5jZW50ZXItbW9iaWxlIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbnRkIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcclxufVxyXG5cclxuXHJcbnRib2R5IHRyLCAgXHJcbnRib2R5IHRyIHRkLFxyXG4uYm90dG9tLWZsZXgtZGl2LFxyXG50YWJsZSxcclxuaW9uLWNhcmQgaW9uLWNhcmQtY29udGVudC50YWJsZS1jYXJkXHJcbiB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24taXRlbS1iYWNrZ3JvdW5kLHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCNmZmYpKTtcclxufVxyXG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { BehaviorSubjectService } from 'src/app/services/behavior-subject.service';\r\nimport { PageInfo } from 'src/app/models/PageInfo';\r\nimport { SharedDataService, DictKey } from 'src/app/services/shared-data.service';\r\nimport { Router } from '@angular/router';\r\nimport { CartPopup } from 'src/app/models/CartPopup';\r\nimport { OdpService } from 'src/app/services/odp.service';\r\nimport { CartItem } from 'src/app/models/CartItem';\r\nimport { DistributorService } from 'src/app/services/distributor.service';\r\nimport { PageService } from 'src/app/services/page.service';\r\n\r\n@Component({\r\n selector: 'app-shopping-cart',\r\n templateUrl: './shopping-cart.page.html',\r\n styleUrls: ['./shopping-cart.page.scss'],\r\n})\r\nexport class ShoppingCartPage implements OnInit {\r\n\r\n cartPopup: CartPopup = new CartPopup();\r\n\r\n odpUrl: string;\r\n odpCustomerName: string;\r\n billToNumber: string;\r\n\r\n constructor(\r\n private modalController: ModalController,\r\n private sharedDataService: SharedDataService,\r\n private router: Router,\r\n private distributorService: DistributorService,\r\n private odpService: OdpService,\r\n behaviorSubjectService: BehaviorSubjectService\r\n ) {\r\n behaviorSubjectService.opdUrlSubject.subscribe(url => {\r\n this.odpUrl = url;\r\n });\r\n const info: PageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo);\r\n this.odpCustomerName = info.OdpCustomerName;\r\n this.billToNumber = info.BillToNumber;\r\n }\r\n\r\n ngOnInit() {\r\n // Test cart\r\n // const exampleCartPopup: CartPopup = {\r\n // QuoteNumber: 12323,\r\n // QuoteDate: new Date(),\r\n // CartCount: 2,\r\n // CartItems: [\r\n // {\r\n // CustomerPartNumber: '4324',\r\n // PartNumber: '14324',\r\n // PartDescription: 'This is a part',\r\n // PartQuantity: 1,\r\n // PartTotalPrice: 199.99\r\n // },\r\n // {\r\n // CustomerPartNumber: '5234',\r\n // PartNumber: '24432',\r\n // PartDescription: 'This is a part too',\r\n // PartQuantity: 1,\r\n // PartTotalPrice: 2493.34\r\n // },\r\n // ],\r\n // CartTotalPrice: 2693.33\r\n // };\r\n // this.cartPopup = exampleCartPopup;\r\n\r\n var currentCart = this.sharedDataService.getCurrentCartQuoteNumber();\r\n this.distributorService.GetCartItemList(currentCart).subscribe(cartPopup => {\r\n this.cartPopup = cartPopup\r\n });\r\n }\r\n\r\n closeModal() {\r\n // using the injected ModalController this page\r\n // can \"dismiss\" itself and optionally pass back data\r\n this.modalController.dismiss();\r\n }\r\n\r\n navigateToOdp() {\r\n window.open(this.odpUrl, '_blank');\r\n }\r\n\r\n onPartDescription(part: CartItem) {\r\n // navigate to that part's page\r\n this.closeModal();\r\n this.router.navigateByUrl(`/product/${part.PartNumber}`);\r\n }\r\n\r\n onNewQuote() {\r\n const info: PageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo);\r\n if (!info) {\r\n return;\r\n }\r\n\r\n // Create a new quote and go to home page\r\n this.distributorService.getNewQuote().subscribe(() => {\r\n this.distributorService.getCartCountArray(null).subscribe(cartInfo => {\r\n this.sharedDataService.setValue(DictKey.CartCountArray, cartInfo);\r\n\r\n this.closeModal();\r\n // const url = `customer/${info.SalesforceId}/orders/${cartInfo[0]}/Q`;\r\n const url = 'product-catalog';\r\n this.odpService.storeNewQuoteMessage();\r\n if (this.router.url.indexOf('product-catalog') >= 0 && !this.router.url.lastIndexOf(\"/\")) {\r\n this.odpService.displayNewQuoteMessageIfStored()\r\n } else {\r\n this.router.navigateByUrl(url, { replaceUrl: true });\r\n }\r\n });\r\n });\r\n\r\n // The went back on forth as to what they wanted this button to do.\r\n // window.open(this.odpUrl, '_blank')s;\r\n }\r\n\r\n onChangeQuote() {\r\n // Go to quotes page\r\n this.closeModal();\r\n const info: PageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo);\r\n if (info && info.BillToNumber) {\r\n this.sharedDataService.setValue(DictKey.OrderType, 0);\r\n this.router.navigateByUrl(`customer/${info.SalesforceId}/orders`);\r\n }\r\n }\r\n\r\n onViewQuote() {\r\n // Go to quote details page\r\n const info: PageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo);\r\n if (info && info.BillToNumber && this.cartPopup && this.cartPopup.QuoteNumber) {\r\n const url = `customer/${info.BillToNumber}/orders/${this.cartPopup.QuoteNumber}/Q`;\r\n this.router.navigateByUrl(url);\r\n this.closeModal();\r\n }\r\n }\r\n\r\n onOdp() {\r\n const url = `${this.odpUrl}Quote.aspx?order=${this.cartPopup.QuoteNumber}&ordqte=Q`;\r\n window.open(url, '_blank');\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 { TrackingInfoPage } from './tracking-info.page';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: TrackingInfoPage\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 ],\r\n declarations: [TrackingInfoPage]\r\n})\r\nexport class TrackingInfoPageModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tracking Info \\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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CarrierShipment#Container IDTracking Number
{{trackingResult.CARRIERNAME}}{{trackingResult.SHIPMENTNO}}{{trackingResult.CONTAINERID}}\\r\\n {{trackingResult.TRACKINGNO + '(Shipper url not found)'}}\\r\\n {{trackingResult.TRACKINGNO}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Carrier:\\r\\n \\r\\n \\r\\n {{trackingResult.CARRIERNAME}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Shipment#:\\r\\n \\r\\n \\r\\n {{ trackingResult.SHIPMENTNO }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Container ID:\\r\\n \\r\\n \\r\\n {{ trackingResult.CONTAINERID }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Tracking Number:\\r\\n \\r\\n \\r\\n {{trackingResult.TRACKINGNO + '(Shipper url not found)'}}\\r\\n {{trackingResult.TRACKINGNO}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \".table, .table table {\\n width: 100%;\\n margin-top: 4px; }\\n\\ntd, th {\\n padding: 4px;\\n text-align: left; }\\n\\nthead {\\n background-color: var(--morse-red);\\n color: white; }\\n\\ntbody tr:nth-child(odd) {\\n background-color: var(--ion-color-secondary-shade); }\\n\\n.label-column {\\n background-color: var(--ion-color-secondary-shade); }\\n\\nion-card {\\n width: 100%; }\\n\\nion-card-header {\\n background-color: var(--morse-red); }\\n\\nion-card-title {\\n color: white; }\\n\\nion-card > ion-grid {\\n padding: 0; }\\n\\n.card-footer-link {\\n display: block;\\n width: 100%;\\n height: 100%;\\n text-align: center; }\\n\\n.red-row {\\n background-color: var(--morse-red);\\n color: white;\\n font-weight: bold; }\\n\\nion-col,\\ntr,\\ntd {\\n color: var(--text-color); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbW9kYWxzL3RyYWNraW5nLWluZm8vQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxwYWdlc1xcbW9kYWxzXFx0cmFja2luZy1pbmZvXFx0cmFja2luZy1pbmZvLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNJLFdBQVc7RUFDWCxlQUFlLEVBQUE7O0FBR25CO0VBQ0ksWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBQUdwQjtFQUNJLGtDQUFrQztFQUNsQyxZQUFZLEVBQUE7O0FBR2hCO0VBQ0ksa0RBQWtELEVBQUE7O0FBR3REO0VBQ0ksa0RBQWtELEVBQUE7O0FBR3REO0VBQ0ksV0FBVyxFQUFBOztBQUdmO0VBQ0ksa0NBQWtDLEVBQUE7O0FBR3RDO0VBQ0ksWUFBWSxFQUFBOztBQUdoQjtFQUNJLFVBQVUsRUFBQTs7QUFHZDtFQUNJLGNBQWM7RUFDZCxXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQixFQUFBOztBQUd0QjtFQUNJLGtDQUFrQztFQUNsQyxZQUFZO0VBQ1osaUJBQWlCLEVBQUE7O0FBR3JCOzs7RUFHSSx3QkFBd0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFscy90cmFja2luZy1pbmZvL3RyYWNraW5nLWluZm8ucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcblxyXG4udGFibGUsIC50YWJsZSB0YWJsZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi10b3A6IDRweDtcclxufVxyXG5cclxudGQsIHRoIHtcclxuICAgIHBhZGRpbmc6IDRweDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbnRoZWFkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1vcnNlLXJlZCk7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbnRib2R5IHRyOm50aC1jaGlsZChvZGQpIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnktc2hhZGUpO1xyXG59XHJcblxyXG4ubGFiZWwtY29sdW1uIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnktc2hhZGUpO1xyXG59XHJcblxyXG5pb24tY2FyZCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuaW9uLWNhcmQtaGVhZGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1vcnNlLXJlZCk7XHJcbn1cclxuXHJcbmlvbi1jYXJkLXRpdGxlIHtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuaW9uLWNhcmQgPiBpb24tZ3JpZCB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4uY2FyZC1mb290ZXItbGluayB7XHJcbiAgICBkaXNwbGF5OiBibG9jazsgXHJcbiAgICB3aWR0aDogMTAwJTsgXHJcbiAgICBoZWlnaHQ6IDEwMCU7IFxyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ucmVkLXJvdyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tb3JzZS1yZWQpO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuIFxyXG5pb24tY29sLCBcclxudHIsXHJcbnRkIHtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcclxufVxyXG5cclxuIl19 */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { TrackingResult } from 'src/app/models/TrackingResult';\r\n\r\n@Component({\r\n selector: 'app-tracking-info',\r\n templateUrl: './tracking-info.page.html',\r\n styleUrls: ['./tracking-info.page.scss'],\r\n})\r\nexport class TrackingInfoPage implements OnInit {\r\n\r\n @Input() trackingResults: TrackingResult[];\r\n\r\n constructor(private modalController: ModalController) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n \r\n closeModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { ViewEventCustomersModalPage } from './view-event-customers-modal.page';\r\nimport { IonicSelectableModule } from 'ionic-selectable';\r\nimport { AutosizeModule } from 'ngx-autosize';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ViewEventCustomersModalPage\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n IonicModule,\r\n AutosizeModule,\r\n RouterModule.forChild(routes),\r\n IonicSelectableModule,\r\n SharedModule\r\n ],\r\n declarations: [ViewEventCustomersModalPage]\r\n})\r\nexport class ViewEventCustomersModalModule {}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{event.title}} - Customers \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\"> \\r\\n \\r\\n \\r\\n \\r\\n
{{c?.Name}} {{c?.CustomerNumber ? ' (' + c.CustomerNumber + ')': ''}}
\\r\\n
{{c?.CustomerType}}
\\r\\n
{{c?.TerritoryName}} {{c?.TerritoryNumber}}
\\r\\n
{{c?.Address1}} {{c?.City}}, {{c?.State}}
\\r\\n
{{c?.PhoneNumber}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL21vZGFscy92aWV3LWV2ZW50LWN1c3RvbWVycy1tb2RhbC92aWV3LWV2ZW50LWN1c3RvbWVycy1tb2RhbC5wYWdlLnNjc3MifQ== */\"","import { Component, EventEmitter,OnInit, ViewChild, Input, Output } from '@angular/core';\r\nimport {\r\n ModalController,\r\n} from '@ionic/angular';\r\nimport { CustomerService } from '../../../services/customer.service';\r\nimport { EventService } from 'src/app/services/event.service';\r\nimport { Event } from 'src/app/models/Event';\r\nimport { CustomerDetails } from 'src/app/models/CustomerDetails';\r\nimport { Router } from '@angular/router';\r\n// import { Validators, FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\n\r\nclass Location {\r\n public address: string;\r\n public name: string;\r\n}\r\n\r\nclass Person {\r\n public address: string;\r\n public name: string;\r\n}\r\n\r\n@Component({\r\n selector: 'view-event-customers-modal',\r\n templateUrl: './view-event-customers-modal.page.html',\r\n styleUrls: ['./view-event-customers-modal.page.scss']\r\n})\r\nexport class ViewEventCustomersModalPage implements OnInit { \r\n event: Event;\r\n customers: CustomerDetails[] =[];\r\n @Output() customerSelectedEvent = new EventEmitter();\r\n @Input() existingEvent: any;\r\n \r\n constructor(\r\n private modalController: ModalController,\r\n public eventService: EventService, \r\n private router: Router,\r\n private customerService: CustomerService, \r\n ) {\r\n }\r\n\r\n\r\n ngOnInit() { \r\n \r\n this.event = this.existingEvent; \r\n if(this.event.customers){\r\n this.event.customers.forEach(c => {this.mapCustomerDetails(c) });\r\n }\r\n }\r\n\r\n mapCustomerDetails(c: any) {\r\n let customer = JSON.parse(c);\r\n this.customerService.getCustomer(customer.Id)\r\n .subscribe(o => {this.customers.push(o)}); \r\n }\r\n\r\n selectCustomer(customer: CustomerDetails) {\r\n this.modalController.dismiss();\r\n this.router.navigate(['customer/' + customer.Id]); \r\n }\r\n\r\n closeModal() {\r\n this.modalController.dismiss();\r\n }\r\n \r\n}\r\n","import {Injectable, PipeTransform, Pipe} from '@angular/core';\r\n\r\n/**\r\n * Bolds the beginning of the matching string in the item\r\n */\r\n@Pipe({\r\n name: 'boldprefix'\r\n})\r\n@Injectable()\r\nexport class BoldPrefix implements PipeTransform {\r\n transform(value: string, keyword: string): any {\r\n if (!keyword) {\r\n return value;\r\n }\r\n\r\n const escaped_keyword = keyword.replace(\r\n /[.*+?^${}()|[\\]\\\\]/g,\r\n '\\\\$&'\r\n );\r\n\r\n return value.replace(\r\n new RegExp(\r\n escaped_keyword,\r\n 'gi'\r\n ),\r\n function(str) {\r\n return str.bold();\r\n }\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\n@Pipe({\r\n name: 'invoiceAmount'\r\n})\r\nexport class InvoiceAmountPipe implements PipeTransform {\r\n\r\n constructor(\r\n private currencyPipe: CurrencyPipe\r\n ) {}\r\n\r\n transform(value: number, args?: any): any {\r\n if ((typeof value) !== 'number') {\r\n return null;\r\n }\r\n if (value >= 0) {\r\n return this.currencyPipe.transform(value, '', '');\r\n } else {\r\n const flipped = value * -1;\r\n const flippedAsCurrency = this.currencyPipe.transform(flipped, '', '');\r\n return `(${flippedAsCurrency})`;\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { PTAPortabandDimensionsModel } from '../models/PTAPortabandDimensionsModel';\r\n\r\n@Pipe({\r\n name: 'portaBladeLwt'\r\n})\r\nexport class PortaBladeLwtPipe implements PipeTransform {\r\n\r\n transform(lwt: any, args?: any): any {\r\n if (!lwt || !lwt.Length) return null;\r\n return `${lwt.Length}L x ${lwt.Width}W x ${lwt.Thickness}T`;\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n Shopping dropdown\\r\\n
\\r\\n\"","module.exports = \".shopping-cart-modal {\\n background: var(--ion-color-secondary);\\n width: 400px;\\n max-width: 95%;\\n position: absolute;\\n top: 50px;\\n right: 5px;\\n border: var(--ion-color-secondary-shade) solid 2px;\\n border-radius: 3px;\\n padding: 20px;\\n z-index: 10; }\\n\\n.shopping-cart-modal:after {\\n bottom: 100%;\\n right: 96px;\\n border: solid transparent;\\n content: \\\" \\\";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none;\\n border-bottom-color: var(--ion-color-secondary-shade);\\n border-width: 12px;\\n margin-left: -12px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2Vjb25kYXJ5LWNvbXBvbmVudHMvY2FydC1kcm9wZG93bi9DOlxcVXNlcnNcXHNtaXRoZFxcc291cmNlXFxyZXBvc1xcU2FsZXNBcHBcXG1rbW9yc2Uvc3JjXFxhcHBcXHNlY29uZGFyeS1jb21wb25lbnRzXFxjYXJ0LWRyb3Bkb3duXFxjYXJ0LWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usc0NBQXNDO0VBQ3RDLFlBQVk7RUFDWixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxVQUFVO0VBQ1Ysa0RBQWtEO0VBQ2xELGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsV0FBVyxFQUFBOztBQUdiO0VBQ0UsWUFBWTtFQUNaLFdBQVc7RUFDWCx5QkFBeUI7RUFDekIsWUFBWTtFQUNaLFNBQVM7RUFDVCxRQUFRO0VBQ1Isa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixxREFBcUQ7RUFDckQsa0JBQWtCO0VBQ2xCLGtCQUFrQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2Vjb25kYXJ5LWNvbXBvbmVudHMvY2FydC1kcm9wZG93bi9jYXJ0LWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNob3BwaW5nLWNhcnQtbW9kYWwge1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnkpO1xyXG4gIHdpZHRoOiA0MDBweDtcclxuICBtYXgtd2lkdGg6IDk1JTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MHB4O1xyXG4gIHJpZ2h0OiA1cHg7XHJcbiAgYm9yZGVyOiB2YXIoLS1pb24tY29sb3Itc2Vjb25kYXJ5LXNoYWRlKSBzb2xpZCAycHg7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIHBhZGRpbmc6IDIwcHg7XHJcbiAgei1pbmRleDogMTA7XHJcbn1cclxuXHJcbi5zaG9wcGluZy1jYXJ0LW1vZGFsOmFmdGVyIHtcclxuICBib3R0b206IDEwMCU7XHJcbiAgcmlnaHQ6IDk2cHg7XHJcbiAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBjb250ZW50OiBcIiBcIjtcclxuICBoZWlnaHQ6IDA7XHJcbiAgd2lkdGg6IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnktc2hhZGUpO1xyXG4gIGJvcmRlci13aWR0aDogMTJweDtcclxuICBtYXJnaW4tbGVmdDogLTEycHg7XHJcbn1cclxuIl19 */\"","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cart-dropdown',\r\n templateUrl: './cart-dropdown.component.html',\r\n styleUrls: ['./cart-dropdown.component.scss'],\r\n})\r\nexport class CartDropdownComponent implements OnInit {\r\n @Input() cart: any[];\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\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
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NlY29uZGFyeS1jb21wb25lbnRzL2N1c3RvbWVyLWZvb3Rlci9jdXN0b21lci1mb290ZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { CustomerDetails } from 'src/app/models/CustomerDetails';\r\nimport { Router } from '@angular/router';\r\nimport { MenuService } from 'src/app/services/menu.service';\r\n\r\n@Component({\r\n selector: 'app-customer-footer',\r\n templateUrl: './customer-footer.component.html',\r\n styleUrls: ['./customer-footer.component.scss'],\r\n})\r\nexport class CustomerFooterComponent implements OnInit {\r\n\r\n @Input() customer: CustomerDetails;\r\n isPublicURL = false;\r\n\r\n constructor(\r\n private router: Router,\r\n private menuService: MenuService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.isPublicURL = this.menuService.isPublicURL();\r\n }\r\n\r\n redirect(route: string) {\r\n this.router.navigate([route]);\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
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NlY29uZGFyeS1jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { SettingsService } from 'src/app/services/settings.service';\r\nimport { PageInfo } from 'src/app/models/PageInfo';\r\nimport { SharedDataService, DictKey } from 'src/app/services/shared-data.service';\r\nimport { TaskService } from 'src/app/services/task.service';\r\nimport { MenuService } from 'src/app/services/menu.service';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss'],\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n @Input() taskNotificationCount = 0;\r\n @Input() shouldHideOnThisPage = false;\r\n private subscription: any;\r\n isPublicURL = false;\r\n\r\n constructor(\r\n private router: Router,\r\n private settingsService: SettingsService,\r\n private sharedDataService: SharedDataService,\r\n private menuService: MenuService\r\n ) { }\r\n \r\n\r\n ngOnInit() {\r\n this.isPublicURL = this.menuService.isPublicURL();\r\n }\r\n\r\n setTaskNotificationCount(item) {\r\n this.taskNotificationCount = item;\r\n }\r\n\r\n redirect(route: string) {\r\n this.router.navigate([route]);\r\n }\r\n\r\n goToDistOrders() {\r\n try {\r\n const info: PageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo);\r\n if (info && info.BillToNumber) {\r\n this.sharedDataService.setValue(DictKey.OrderType, 1);\r\n this.router.navigateByUrl(`customer/${info.SalesforceId}/orders`);\r\n }\r\n } catch (e) {\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 \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{cartCount}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n {{welcomeStr}}\\r\\n
\\r\\n
\\r\\n \\r\\n
0\\\" class=\\\"split-xs\\\">\\r\\n \\r\\n {{taskCount}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{cartCount}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{welcomeStr}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{welcomeStr}}
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","module.exports = \".title {\\n margin-left: 15px;\\n color: #6d6e71; }\\n\\n.go-back {\\n margin-left: 10px;\\n margin-right: 10px;\\n display: inline-block; }\\n\\n.go-back ion-icon {\\n padding: 6px; }\\n\\n@media (min-width: 992px) {\\n .go-back ion-icon {\\n margin-bottom: 10px; } }\\n\\n#toolbar ion-grid,\\n#toolbar ion-grid ion-row,\\n#toolbar ion-grid ion-row ion-col {\\n height: 50px;\\n padding: 0px; }\\n\\n#toolbar ion-searchbar {\\n max-width: 400px; }\\n\\n.header .shopping-cart-count {\\n position: absolute;\\n top: -4px;\\n left: 16px;\\n display: inline-block;\\n border-radius: 0.5em;\\n min-width: 1.2em;\\n text-align: center;\\n color: white;\\n background-color: var(--morse-red);\\n z-index: 1;\\n padding-left: 2px;\\n padding-right: 2px; }\\n\\n.cart {\\n margin-right: 8px; }\\n\\n#notification-banner {\\n text-align: center;\\n background-color: var(--ion-color-secondary);\\n padding: 4px 0;\\n color: #333 !important; }\\n\\nion-toolbar {\\n overflow: visible !important; }\\n\\ndiv.name-under-buttons {\\n position: absolute;\\n right: 9px;\\n bottom: -8px;\\n color: var(--header-color);\\n width: -moz-max-content;\\n width: max-content; }\\n\\ndiv.welcome-txt {\\n margin: -3px 22px 3px 0;\\n color: var(--header-color);\\n text-align: right; }\\n\\ndiv.welcome-to-left {\\n color: var(--header-color);\\n margin-right: 10px; }\\n\\n.task-count {\\n position: absolute;\\n top: 7px;\\n right: 10px;\\n display: inline-block;\\n border-radius: 0.5em;\\n min-width: 1.2em;\\n text-align: center;\\n color: white;\\n background-color: var(--morse-red);\\n z-index: 1;\\n padding-left: 2px;\\n padding-right: 2px;\\n pointer-events: none; }\\n\\n@media (min-width: 991px) {\\n .task-count {\\n top: 13px; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2Vjb25kYXJ5LWNvbXBvbmVudHMvaGVhZGVyL0M6XFxVc2Vyc1xcc21pdGhkXFxzb3VyY2VcXHJlcG9zXFxTYWxlc0FwcFxcbWttb3JzZS9zcmNcXGFwcFxcc2Vjb25kYXJ5LWNvbXBvbmVudHNcXGhlYWRlclxcaGVhZGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWMsRUFBQTs7QUFHaEI7RUFDRSxpQkFBZ0I7RUFDaEIsa0JBQWlCO0VBQ2pCLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLFlBQVcsRUFBQTs7QUFHYjtFQUNFO0lBQ0UsbUJBQWtCLEVBQUEsRUFDbkI7O0FBR0g7OztFQUdFLFlBQVk7RUFDWixZQUFZLEVBQUE7O0FBR2Q7RUFDRSxnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFVBQVU7RUFDVixxQkFBcUI7RUFDckIsb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGtDQUFrQztFQUNsQyxVQUFVO0VBQ1YsaUJBQWdCO0VBQ2hCLGtCQUFpQixFQUFBOztBQUduQjtFQUNFLGlCQUFnQixFQUFBOztBQUdsQjtFQUNFLGtCQUFrQjtFQUNsQiw0Q0FBNEM7RUFDNUMsY0FBYztFQUNkLHNCQUFzQixFQUFBOztBQUd4QjtFQUNFLDRCQUE0QixFQUFBOztBQUc5QjtFQUNFLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsWUFBWTtFQUNaLDBCQUEwQjtFQUMxQix1QkFBa0I7RUFBbEIsa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsdUJBQXVCO0VBQ3ZCLDBCQUEwQjtFQUMxQixpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSwwQkFBMEI7RUFDMUIsa0JBQWtCLEVBQUE7O0FBcUJwQjtFQUNFLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixvQkFBb0I7RUFDcEIsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osa0NBQWtDO0VBQ2xDLFVBQVU7RUFDVixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLG9CQUFvQixFQUFBOztBQUl0QjtFQUNFO0lBQ0UsU0FBUyxFQUFBLEVBQ1YiLCJmaWxlIjoic3JjL2FwcC9zZWNvbmRhcnktY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRpdGxlIHtcclxuICBtYXJnaW4tbGVmdDogMTVweDtcclxuICBjb2xvcjogIzZkNmU3MTtcclxufVxyXG5cclxuLmdvLWJhY2sge1xyXG4gIG1hcmdpbi1sZWZ0OjEwcHg7XHJcbiAgbWFyZ2luLXJpZ2h0OjEwcHg7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4uZ28tYmFjayBpb24taWNvbiB7XHJcbiAgcGFkZGluZzo2cHg7XHJcbn1cclxuXHJcbkBtZWRpYShtaW4td2lkdGg6OTkycHgpIHtcclxuICAuZ28tYmFjayBpb24taWNvbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOjEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4jdG9vbGJhciBpb24tZ3JpZCxcclxuI3Rvb2xiYXIgaW9uLWdyaWQgaW9uLXJvdyxcclxuI3Rvb2xiYXIgaW9uLWdyaWQgaW9uLXJvdyBpb24tY29sIHtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZzogMHB4O1xyXG59XHJcblxyXG4jdG9vbGJhciBpb24tc2VhcmNoYmFyIHtcclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG59XHJcblxyXG4uaGVhZGVyIC5zaG9wcGluZy1jYXJ0LWNvdW50IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtNHB4O1xyXG4gIGxlZnQ6IDE2cHg7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuNWVtO1xyXG4gIG1pbi13aWR0aDogMS4yZW07XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tb3JzZS1yZWQpO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgcGFkZGluZy1sZWZ0OjJweDtcclxuICBwYWRkaW5nLXJpZ2h0OjJweDtcclxufVxyXG5cclxuLmNhcnQge1xyXG4gIG1hcmdpbi1yaWdodDo4cHg7XHJcbn1cclxuXHJcbiNub3RpZmljYXRpb24tYmFubmVyIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeSk7XHJcbiAgcGFkZGluZzogNHB4IDA7XHJcbiAgY29sb3I6ICMzMzMgIWltcG9ydGFudDtcclxufVxyXG5cclxuaW9uLXRvb2xiYXIge1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbmRpdi5uYW1lLXVuZGVyLWJ1dHRvbnMge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICByaWdodDogOXB4O1xyXG4gIGJvdHRvbTogLThweDtcclxuICBjb2xvcjogdmFyKC0taGVhZGVyLWNvbG9yKTtcclxuICB3aWR0aDogbWF4LWNvbnRlbnQ7XHJcbn1cclxuXHJcbmRpdi53ZWxjb21lLXR4dCB7XHJcbiAgbWFyZ2luOiAtM3B4IDIycHggM3B4IDA7XHJcbiAgY29sb3I6IHZhcigtLWhlYWRlci1jb2xvcik7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuXHJcbmRpdi53ZWxjb21lLXRvLWxlZnQge1xyXG4gIGNvbG9yOiB2YXIoLS1oZWFkZXItY29sb3IpO1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG5cclxuLy8gI2FjY291bnREcm9wZG93biwgI2FjY291bnREcm9wZG93bkxnIHtcclxuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgei1pbmRleDogMTAwO1xyXG4vLyAgIHRvcDogNDhweDtcclxuLy8gICByaWdodDogLTEwcHg7XHJcbi8vICAgcGFkZGluZzogMTBweDtcclxuLy8gICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbi8vICAgYm94LXNoYWRvdzogMCA0cHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDZweCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE5KTtcclxuXHJcbi8vICAgcCB7XHJcbi8vICAgICBjb2xvcjogdmFyKC0tbW9yc2UtcmVkKTtcclxuLy8gICB9XHJcbi8vICAgcDpob3ZlciB7XHJcbi8vICAgICBjb2xvcjogcmdiYSh2YXIoLS1tb3JzZS1yZWQpLCAuOSk7XHJcbi8vICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuLy8gICB9XHJcbi8vIH1cclxuXHJcbi50YXNrLWNvdW50IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA3cHg7XHJcbiAgcmlnaHQ6IDEwcHg7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuNWVtO1xyXG4gIG1pbi13aWR0aDogMS4yZW07XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tb3JzZS1yZWQpO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgcGFkZGluZy1sZWZ0OiAycHg7XHJcbiAgcGFkZGluZy1yaWdodDogMnB4O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIC8vIGJhY2tncm91bmQ6IHVybCgneW91cl90cmFuc3BhcmVudC5wbmcnKTtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MXB4KSB7XHJcbiAgLnRhc2stY291bnQge1xyXG4gICAgdG9wOiAxM3B4O1xyXG4gIH1cclxufSJdfQ== */\"","import { Component, OnInit, Input, OnDestroy, Renderer2, ViewChild, ElementRef, ContentChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { IonMenuButton, IonSearchbar, ModalController, PopoverController } from '@ionic/angular';\r\nimport { SettingsService } from 'src/app/services/settings.service';\r\nimport { PageInfo } from 'src/app/models/PageInfo';\r\nimport { ShoppingCartPage } from 'src/app/pages/modals/shopping-cart/shopping-cart.page';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { OdpService } from 'src/app/services/odp.service';\r\nimport { LocalStorage } from '@ngx-pwa/local-storage';\r\nimport { PageService } from 'src/app/services/page.service';\r\nimport { SharedDataService, DictKey } from 'src/app/services/shared-data.service';\r\nimport { ProfileDropdownComponent } from './profile-dropdown/profile-dropdown.component';\r\nimport { SharedService } from 'src/app/services/shared.service';\r\nimport { TaskService } from 'src/app/services/task.service';\r\nimport { MenuService } from 'src/app/services/menu.service';\r\nimport { ShoppingCartEndUserPage } from '../../pages/modals/shopping-cart-end-user/shopping-cart-end-user.page';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n})\r\nexport class HeaderComponent implements OnInit, OnDestroy {\r\n\r\n @Input() Title: string;\r\n @Input() isPublicURL: boolean;\r\n @Input() isLargeScreenHeader = false;\r\n\r\n bannerText: string;\r\n\r\n searchText: string;\r\n showSearchbar = false;\r\n\r\n showAccountDropdown = false;\r\n\r\n themeChangeSubscription: any;\r\n logo: string = this.settingsService.getTheme(\"logo.png\");\r\n\r\n pageInfo: PageInfo;\r\n cart: any[];\r\n cartCount = 0;\r\n taskCount = 0;\r\n\r\n isLargeScreen: boolean;\r\n shouldRender: boolean;\r\n showProfile = false;\r\n\r\n pageInfoSubscription: any;\r\n cartInfoSubscription: any;\r\n cartRefreshJobRunning = false;\r\n\r\n welcomeStr: string;\r\n taskNotificationSubscription: any;\r\n isDistributor = false;\r\n isEndUser = false;\r\n\r\n constructor(\r\n private router: Router,\r\n private location: Location,\r\n private modalController: ModalController,\r\n private breakpointObserver: BreakpointObserver,\r\n private sharedDataService: SharedDataService,\r\n private odpService: OdpService,\r\n private localStorage: LocalStorage,\r\n private pageInfoService: PageService,\r\n private renderer: Renderer2,\r\n private popoverController: PopoverController,\r\n private settingsService: SettingsService,\r\n private sharedService: SharedService,\r\n private taskService: TaskService,\r\n public menuService: MenuService,\r\n private route: ActivatedRoute\r\n ) { \r\n this.themeChangeSubscription = this.settingsService.themeUpdate.subscribe(() => {\r\n this.logo = this.settingsService.getTheme(\"logo.png\");\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.isLargeScreen = this.breakpointObserver.isMatched('(min-width: 1367px)');\r\n this.isDistributor = this.settingsService.isDistributor();\r\n this.isEndUser = this.settingsService.isEndUser();\r\n this.setShouldRender();\r\n this.observeWidth();\r\n this.setShowProfile();\r\n\r\n this.pageInfoHandler();\r\n this.cartInfoHandler();\r\n\r\n this.updateWelcomeText();\r\n\r\n // Get covid response and subscribe to event emitter\r\n this.bannerText = this.sharedDataService.getValue(DictKey.BannerHTML);\r\n this.sharedDataService.getEmitter(DictKey.BannerHTML).subscribe(bannerHTML => {\r\n this.bannerText = bannerHTML;\r\n });\r\n\r\n this.taskNotificationSubscription = this.taskService.getTaskNotificationEmitter()\r\n .subscribe(item => this.setTaskNotificationCount(item));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.pageInfoSubscription.unsubscribe();\r\n this.cartInfoSubscription.unsubscribe();\r\n this.taskNotificationSubscription.unsubscribe();\r\n }\r\n\r\n setTaskNotificationCount(count) {\r\n this.taskCount = count;\r\n }\r\n\r\n observeWidth() {\r\n this.breakpointObserver.observe('(min-width: 1367px)').subscribe(x => {\r\n this.isLargeScreen = x.matches;\r\n this.setShouldRender();\r\n });\r\n }\r\n\r\n updateWelcomeText() {\r\n // Claims should include given_name and family_name. Use given_name + first initial of family_name.\r\n // If only family_name is there and no given name, use full family_name. if neither is there, use username.\r\n const user = this.settingsService.getUserSettings();\r\n this.welcomeStr = null;\r\n if (user) {\r\n const first = user.given_name;\r\n const last = user.family_name;\r\n const username = user.username;\r\n if (first && last) {\r\n this.welcomeStr = `Welcome ${first} ${last.charAt(0)}.`;\r\n } else if (first) {\r\n this.welcomeStr = `Welcome ${first}`;\r\n } else if (last) {\r\n this.welcomeStr = `Welcome ${last}`;\r\n } else if (username) {\r\n this.welcomeStr = `Welcome ${username}`;\r\n }\r\n\r\n // At this point we will append company name.\r\n if (this.welcomeStr && this.pageInfo.OdpCustomerName && this.isDistributor) {\r\n this.welcomeStr += ', ' + this.pageInfo.OdpCustomerName;\r\n }\r\n }\r\n }\r\n\r\n setShowProfile() {\r\n this.showProfile = !this.isPublicURL;\r\n }\r\n\r\n setShouldRender() {\r\n this.shouldRender = this.isLargeScreen === this.isLargeScreenHeader;\r\n }\r\n\r\n cartInfoHandler() {\r\n this.cartCount = this.sharedDataService.getCurrentCartItemCount();\r\n this.cartInfoSubscription = this.sharedDataService.getEmitter(DictKey.CartCountArray).subscribe(value => {\r\n this.cartCount = value[1];\r\n });\r\n\r\n // Default until api call returns\r\n if (!this.cartCount) {\r\n this.cartCount = 0;\r\n }\r\n }\r\n\r\n pageInfoHandler() {\r\n this.pageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo);\r\n this.pageInfoSubscription = this.sharedDataService.getEmitter(DictKey.AppPageInfo).subscribe(value => {\r\n this.pageInfo = value;\r\n this.updateWelcomeText();\r\n });\r\n\r\n // Default until api call returns\r\n if (!this.pageInfo) {\r\n const info = new PageInfo();\r\n info.OdpCartCount = 0;\r\n info.showAccount = false;\r\n info.showCart = false;\r\n info.showSearch = false;\r\n this.pageInfo = info;\r\n }\r\n }\r\n\r\n redirectHome() {\r\n this.sharedService.redirectHome(this.isPublicURL);\r\n }\r\n\r\n goBack() {\r\n if ((document.URL.includes('value-calculator') || document.URL.includes('bladewizard')) \r\n && document.URL.includes('?type=')) {\r\n this.location.back();\r\n }\r\n this.location.back();\r\n }\r\n\r\n goForward() {\r\n this.location.forward();\r\n }\r\n\r\n async onProfile(ev: Event) {\r\n const popover = await this.popoverController.create({\r\n component: ProfileDropdownComponent,\r\n event: ev,\r\n translucent: true\r\n });\r\n return await popover.present();\r\n }\r\n\r\n onShoppingCart() {\r\n this.presentShoppingCartModal();\r\n }\r\n\r\n async presentShoppingCartModal() {\r\n var modal;\r\n if(this.isEndUser) {\r\n modal = await this.modalController.create({\r\n component: ShoppingCartEndUserPage\r\n });\r\n } else {\r\n modal = await this.modalController.create({\r\n component: ShoppingCartPage\r\n });\r\n }\r\n return await modal.present();\r\n }\r\n\r\n onSearchIcon(targetDocumentId: string) {\r\n this.searchText = this.sharedDataService.getValue(DictKey.SearchText);\r\n this.showSearchbar = true;\r\n setTimeout(() => (document.getElementById(targetDocumentId) as any).setFocus(), 5);\r\n }\r\n\r\n hideSearchbar() {\r\n this.showSearchbar = false;\r\n }\r\n\r\n searchTextChangeHandler() {\r\n this.sharedDataService.setValue(DictKey.SearchText, this.searchText);\r\n }\r\n\r\n showCart() {\r\n return (this.pageInfo && !this.menuService.publicURL && this.pageInfo.OdpCustomerNumber) || this.isEndUser;\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n User Profile Page\\r\\n \\r\\n \\r\\n Settings Page\\r\\n \\r\\n \\r\\n Log Out\\r\\n \\r\\n\\r\\n\"","module.exports = \"ion-list {\\n margin-bottom: 0; }\\n\\nion-label {\\n color: var(--morse-red); }\\n\\nion-label:hover {\\n color: rgba(var(--morse-red), 0.9);\\n text-decoration: underline; }\\n\\nion-item {\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2Vjb25kYXJ5LWNvbXBvbmVudHMvaGVhZGVyL3Byb2ZpbGUtZHJvcGRvd24vQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxzZWNvbmRhcnktY29tcG9uZW50c1xcaGVhZGVyXFxwcm9maWxlLWRyb3Bkb3duXFxwcm9maWxlLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZ0JBQWdCLEVBQUE7O0FBR3BCO0VBQ0ksdUJBQXVCLEVBQUE7O0FBRzNCO0VBQ0ksa0NBQWlDO0VBQ2pDLDBCQUEwQixFQUFBOztBQUc5QjtFQUNJLGVBQWUsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NlY29uZGFyeS1jb21wb25lbnRzL2hlYWRlci9wcm9maWxlLWRyb3Bkb3duL3Byb2ZpbGUtZHJvcGRvd24uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpb24tbGlzdCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5pb24tbGFiZWwge1xyXG4gICAgY29sb3I6IHZhcigtLW1vcnNlLXJlZCk7XHJcbn1cclxuXHJcbmlvbi1sYWJlbDpob3ZlciB7XHJcbiAgICBjb2xvcjogcmdiYSh2YXIoLS1tb3JzZS1yZWQpLCAuOSk7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG5cclxuaW9uLWl0ZW0ge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { PopoverController } from '@ionic/angular';\r\nimport { Router } from '@angular/router';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { PageInfo } from 'src/app/models/PageInfo';\r\nimport { SharedDataService, DictKey } from 'src/app/services/shared-data.service';\r\nimport { SettingsService } from 'src/app/services/settings.service';\r\n\r\n@Component({\r\n selector: 'app-profile-dropdown',\r\n templateUrl: './profile-dropdown.component.html',\r\n styleUrls: ['./profile-dropdown.component.scss'],\r\n})\r\nexport class ProfileDropdownComponent implements OnInit, OnDestroy {\r\n \r\n pageInfo: PageInfo;\r\n pageInfoSubscription: any;\r\n isEndUser = false;\r\n\r\n constructor(\r\n private popoverController: PopoverController,\r\n private sharedDataService: SharedDataService,\r\n private router: Router,\r\n private oauthService: OAuthService,\r\n private settingsService: SettingsService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.pageInfoHandler();\r\n this.isEndUser = this.settingsService.isEndUser();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.pageInfoSubscription.unsubscribe();\r\n }\r\n\r\n nav(path: string) {\r\n this.router.navigateByUrl(path);\r\n this.close();\r\n }\r\n\r\n logout() {\r\n this.oauthService.logOut();\r\n }\r\n\r\n close() {\r\n this.popoverController.dismiss();\r\n }\r\n\r\n pageInfoHandler() {\r\n this.pageInfo = this.sharedDataService.getValue(DictKey.AppPageInfo);\r\n this.pageInfoSubscription = this.sharedDataService.getEmitter(DictKey.AppPageInfo).subscribe(value => {\r\n this.pageInfo = value;\r\n });\r\n\r\n // Default until api call returns\r\n if (!this.pageInfo) {\r\n const info = new PageInfo();\r\n info.OdpCartCount = 0;\r\n info.showAccount = false;\r\n info.showCart = false;\r\n info.showSearch = false;\r\n this.pageInfo = info;\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \" 0\\\" name=\\\"notification-label\\\" [position]=\\\"stacked ? 'stacked' : null\\\">\\r\\n {{notificationCount}}\\r\\n\\r\\n\"","module.exports = \".red-badge {\\n background-color: #BB1222; }\\n\\nion-badge {\\n padding-left: 6px;\\n padding-right: 6px;\\n font-size: 12px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2Vjb25kYXJ5LWNvbXBvbmVudHMvbm90aWZpY2F0aW9uL0M6XFxVc2Vyc1xcc21pdGhkXFxzb3VyY2VcXHJlcG9zXFxTYWxlc0FwcFxcbWttb3JzZS9zcmNcXGFwcFxcc2Vjb25kYXJ5LWNvbXBvbmVudHNcXG5vdGlmaWNhdGlvblxcbm90aWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0kseUJBSGlCLEVBQUE7O0FBTXJCO0VBQ0ksaUJBQWdCO0VBQ2hCLGtCQUFpQjtFQUNqQixlQUFjLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zZWNvbmRhcnktY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGJhZGdlLWNvbG9yOiAjQkIxMjIyO1xyXG5cclxuLnJlZC1iYWRnZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtY29sb3I7XHJcbn1cclxuXHJcbmlvbi1iYWRnZSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6NnB4O1xyXG4gICAgcGFkZGluZy1yaWdodDo2cHg7XHJcbiAgICBmb250LXNpemU6MTJweDtcclxufSJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss'],\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n\r\n @Input() notificationCount: number;\r\n @Input() stacked = true;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n ","module.exports = \"\\r\\n
\\r\\n
\\r\\n

{{activeInch}}

\\r\\n

{{activeFraction}}

\\r\\n

in.

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n

{{slide.name}}

\\r\\n

|

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"* {\\n margin: 0;\\n padding: 0; }\\n\\n.ruler {\\n border: 1px solid black;\\n background-color: var(--bg-ruler);\\n max-width: -moz-fit-content;\\n max-width: fit-content; }\\n\\n.notch {\\n color: var(--bg-ruler-notch);\\n display: block;\\n margin-left: auto;\\n margin-right: auto; }\\n\\n.counter {\\n display: none;\\n vertical-align: bottom; }\\n\\n.inch {\\n font-size: 1.75em; }\\n\\n.fraction {\\n font-size: 1.25em; }\\n\\n.rulerStyle {\\n color: var(--bg-ruler-inch) !important;\\n display: grid;\\n min-width: 20px;\\n vertical-align: bottom; }\\n\\n#1.rulerStyle {\\n color: var(--bg-ruler-inch) !important;\\n font-size: 1.25em !important; }\\n\\n.quarterRulerStyle {\\n color: var(--bg-ruler-quarter) !important;\\n font-size: .75em !important; }\\n\\n.eigthRulerStyle {\\n color: var(--bg-ruler-eighth) !important;\\n font-size: .50em !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2Vjb25kYXJ5LWNvbXBvbmVudHMvcnVsZXItc2xpZGUvQzpcXFVzZXJzXFxzbWl0aGRcXHNvdXJjZVxccmVwb3NcXFNhbGVzQXBwXFxta21vcnNlL3NyY1xcYXBwXFxzZWNvbmRhcnktY29tcG9uZW50c1xccnVsZXItc2xpZGVcXHJ1bGVyLXNsaWRlLWNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksU0FBUztFQUNULFVBQVUsRUFBQTs7QUFHZDtFQUNFLHVCQUF1QjtFQUN2QixpQ0FBaUM7RUFDakMsMkJBQXNCO0VBQXRCLHNCQUFzQixFQUFBOztBQUd4QjtFQUNFLDRCQUE0QjtFQUM1QixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLGFBQWE7RUFDYixzQkFBc0IsRUFBQTs7QUFJeEI7RUFDRSxpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxzQ0FBc0M7RUFDdEMsYUFBWTtFQUNaLGVBQWU7RUFDZixzQkFBc0IsRUFBQTs7QUFHeEI7RUFDQSxzQ0FBc0M7RUFDdEMsNEJBQTRCLEVBQUE7O0FBRzVCO0VBQ0UseUNBQXlDO0VBQ3pDLDJCQUEyQixFQUFBOztBQUc3QjtFQUNFLHdDQUF3QztFQUN4QywyQkFBMkIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NlY29uZGFyeS1jb21wb25lbnRzL3J1bGVyLXNsaWRlL3J1bGVyLXNsaWRlLWNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiKiB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbi5ydWxlciB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctcnVsZXIpO1xyXG4gIG1heC13aWR0aDogZml0LWNvbnRlbnQ7XHJcbn1cclxuXHJcbi5ub3RjaHtcclxuICBjb2xvcjogdmFyKC0tYmctcnVsZXItbm90Y2gpO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxufVxyXG5cclxuLmNvdW50ZXJ7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG59XHJcblxyXG5cclxuLmluY2h7XHJcbiAgZm9udC1zaXplOiAxLjc1ZW07XHJcbn1cclxuXHJcbi5mcmFjdGlvbntcclxuICBmb250LXNpemU6IDEuMjVlbTtcclxufVxyXG5cclxuLnJ1bGVyU3R5bGV7XHJcbiAgY29sb3I6IHZhcigtLWJnLXJ1bGVyLWluY2gpICFpbXBvcnRhbnQ7XHJcbiAgZGlzcGxheTpncmlkO1xyXG4gIG1pbi13aWR0aDogMjBweDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG59XHJcblxyXG4jMS5ydWxlclN0eWxlIHtcclxuY29sb3I6IHZhcigtLWJnLXJ1bGVyLWluY2gpICFpbXBvcnRhbnQ7XHJcbmZvbnQtc2l6ZTogMS4yNWVtICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5xdWFydGVyUnVsZXJTdHlsZSB7XHJcbiAgY29sb3I6IHZhcigtLWJnLXJ1bGVyLXF1YXJ0ZXIpICFpbXBvcnRhbnQ7XHJcbiAgZm9udC1zaXplOiAuNzVlbSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZWlndGhSdWxlclN0eWxlIHtcclxuICBjb2xvcjogdmFyKC0tYmctcnVsZXItZWlnaHRoKSAhaW1wb3J0YW50O1xyXG4gIGZvbnQtc2l6ZTogLjUwZW0gIWltcG9ydGFudDtcclxufSJdfQ== */\"","import { Component, HostListener, OnInit, Output, ViewChild, ElementRef, EventEmitter, Input } from \"@angular/core\";\r\n\r\nimport { IonSlides } from '@ionic/angular';\r\nimport { promise } from \"protractor\";\r\nimport { SettingsService } from \"src/app/services/settings.service\";\r\n\r\nexport class RulerSlide {\r\n id: number;\r\n name: string;\r\n class: string;\r\n value: number;\r\n}\r\n\r\n@Component({\r\n selector: 'ruler-slide',\r\n templateUrl: './ruler-slide-component.html',\r\n styleUrls: ['./ruler-slide-component.scss']\r\n})\r\nexport class RulerSlideComponent implements OnInit {\r\n\r\n\r\n @ViewChild('slider', { read: ElementRef }) slider: ElementRef;\r\n @ViewChild('slider') ionSlides: IonSlides;\r\n\r\n @Input() initValue: number;\r\n @Input() initFraction: string;\r\n\r\n\r\n @Output() selectedInch = new EventEmitter();\r\n @Output() selectedFraction = new EventEmitter();\r\n @Output() currentSlide = new EventEmitter();\r\n\r\n themeChangeSubscription: any;\r\n dropdown: string = this.settingsService.getTheme(\"icons/dropdown-icon.svg\");\r\n\r\n slideOpts = {\r\n initialSlide: 0,\r\n slidesPerView: 23,\r\n centeredSlides: true,\r\n breakpoints: {\r\n 320: {\r\n slidesPerView: 13\r\n },\r\n 480: {\r\n slidesPerView: 15\r\n },\r\n 640: {\r\n slidesPerView: 17\r\n },\r\n 768: {\r\n slidesPerView: 19\r\n },\r\n 1024: {\r\n slidesPerView: 21\r\n },\r\n 1280: {\r\n slidesPerView: 23\r\n }\r\n\r\n }\r\n };\r\n\r\n activeInch: number = 0;\r\n activeFraction: string = \"0\";\r\n\r\n slides: RulerSlide[] = [];\r\n selectedSlide: number;\r\n\r\n values: string[] = [\r\n '0', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n '1', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n '2', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n '3', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n '4', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n '5', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n '6', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n '7', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n '8', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n '9', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n '10', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n '11', '1/8', '1/4', '3/8', '1/2', '5/8', '3/4', '7/8',\r\n ];\r\n\r\n\r\n // selectedMeasurement: number;\r\n\r\n constructor(\r\n private settingsService: SettingsService\r\n ) {\r\n this.themeChangeSubscription = this.settingsService.themeUpdate.subscribe(() => {\r\n this.dropdown = this.settingsService.getTheme(\"icons/dropdown-icon.svg\");\r\n })\r\n }\r\n\r\n\r\n ngOnInit() {\r\n if (this.initValue) {\r\n this.goToSlide(this.initValue);\r\n }\r\n const swiper = this.ionSlides;\r\n for (let i = 0; i < this.values.length; i++) {\r\n const slide = new RulerSlide(\r\n\r\n );\r\n slide.id = i;\r\n slide.value = i * 0.125;\r\n slide.name = this.values[i];\r\n slide.class = \"rulerStyle\";\r\n if (slide.value % 0.25 == 0 && slide.value % 1 != 0) {\r\n slide.class = slide.class + \" quarterRulerStyle\";\r\n } else if (slide.value % 0.125 == 0 && slide.value % 1 != 0 && slide.value % 0.25 != 0) {\r\n slide.class = slide.class + \" eigthRulerStyle\";\r\n }\r\n this.slides.push(slide);\r\n }\r\n };\r\n\r\n goToSlide(initValue: number) {\r\n this.ionSlides.slideTo(initValue);\r\n }\r\n\r\n\r\n setActiveIndex() {\r\n this.ionSlides.getActiveIndex().then(x => {\r\n this.selectedSlide = x;\r\n this.currentSlide.emit(x);\r\n this.activeInch = Math.floor(this.selectedSlide * 0.125);\r\n this.activeFraction = this.values[this.selectedSlide * 1];\r\n this.selectedInch.emit(this.activeInch);\r\n this.selectedFraction.emit(this.activeFraction);\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","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AppConfig } from '../models/appConfig';\r\nimport { BehaviorSubjectService } from '../services/behavior-subject.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppConfigService {\r\n private appConfig: AppConfig;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private behaviorSubjectManager: BehaviorSubjectService\r\n ) { }\r\n\r\n loadAppConfig() {\r\n return this.http.get('/assets/data/appConfig.json')\r\n .toPromise()\r\n .then(data => {\r\n if (data.apiUrl) {\r\n this.behaviorSubjectManager.apiUrlSubject.next(data.apiUrl);\r\n }\r\n if (data.environment) {\r\n this.behaviorSubjectManager.environmentSubject.next(data.environment);\r\n }\r\n if (data.morseAPI) {\r\n this.behaviorSubjectManager.morseAPISubject.next(data.morseAPI);\r\n }\r\n if (data.bladeWizardAPI) {\r\n this.behaviorSubjectManager.bladeWizardAPISubject.next(data.bladeWizardAPI);\r\n }\r\n if (data.exchangeAPI) {\r\n this.behaviorSubjectManager.exchangeAPISubject.next(data.exchangeAPI);\r\n }\r\n if (data.membershipRebootAPI) {\r\n this.behaviorSubjectManager.membershipRebootAPISubject.next(data.membershipRebootAPI);\r\n }\r\n if (data.interactionsUrl) {\r\n this.behaviorSubjectManager.interactionsUrlSubject.next(data.interactionsUrl);\r\n }\r\n if (data.authUrl) {\r\n this.behaviorSubjectManager.authUrlSubject.next(data.authUrl);\r\n }\r\n if (data.clientId) {\r\n this.behaviorSubjectManager.clientIdSubject.next(data.clientId);\r\n }\r\n if (data.mobileUrl) {\r\n this.behaviorSubjectManager.mobileUrlSubject.next(data.mobileUrl);\r\n }\r\n if (data.odpUrl) {\r\n this.behaviorSubjectManager.opdUrlSubject.next(data.odpUrl);\r\n }\r\n if (data.valueCalcUrl) {\r\n this.behaviorSubjectManager.valueCalcUrlSubject.next(data.valueCalcUrl);\r\n }\r\n if (data.mkMorsePublicHomeUrl) {\r\n this.behaviorSubjectManager.mkMorsePublicHomeUrlSubject.next(data.mkMorsePublicHomeUrl);\r\n }\r\n if (data.trialResultsUrl) {\r\n this.behaviorSubjectManager.trialResultsUrlSubject.next(data.trialResultsUrl);\r\n }\r\n if (data.googleAnalyticsId) {\r\n this.behaviorSubjectManager.googleAnalyticsIdSubjectManager.next(data.googleAnalyticsId);\r\n }\r\n if (data.salesforceUrl) {\r\n this.behaviorSubjectManager.salesforceUrlSubject.next(data.salesforceUrl);\r\n }\r\n if (data.bladeWizardCommonAPI) {\r\n this.behaviorSubjectManager.bladeWizardCommonAPISubject.next(data.bladeWizardCommonAPI);\r\n }\r\n if (data.distributorLocatorUrl) {\r\n this.behaviorSubjectManager.distributorLocatorUrlSubject.next(data.distributorLocatorUrl);\r\n }\r\n if (data.bladewizardUrl) {\r\n this.behaviorSubjectManager.bladewizardUrlSubject.next(data.bladewizardUrl);\r\n }\r\n if (data.cookieYesUrl) {\r\n this.behaviorSubjectManager.cookieYesUrlSubject.next(data.cookieYesUrl)\r\n }\r\n });\r\n }\r\n\r\n getConfig() {\r\n return this.appConfig;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Event } from './../models/Event';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { RequestOptions, Headers } from '@angular/http';\r\nimport { Attachment } from '../models/Attachment';\r\nimport { map } from 'rxjs/operators';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json'\r\n })\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AttachmentService {\r\n private url: string;\r\n private exchangeUrl: string;\r\n private downloadURL = window.URL;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n behaviorSubjectService: BehaviorSubjectService\r\n ) {\r\n behaviorSubjectService.morseAPISubject.subscribe(url => {\r\n this.url = url;\r\n });\r\n behaviorSubjectService.exchangeAPISubject.subscribe(\r\n url => (this.exchangeUrl = url)\r\n );\r\n }\r\n\r\n //saveNewFileUpload\r\n saveNewFileUpload(file: File, itemId: number, itemType: string) {\r\n const formData: FormData = new FormData();\r\n formData.append(file.name, file, file.name);\r\n return this.http.post(this.url + '/saveNewFileUpload', formData, {\r\n params: { itemId: itemId.toString(), itemType }\r\n });\r\n }\r\n\r\n //saveNewFileUpload\r\n saveFileUploadNewVersion() {\r\n return this.http.post(\r\n this.url + '/saveFileUploadNewVersion',\r\n httpOptions\r\n );\r\n }\r\n\r\n getItemTypes(): Observable {\r\n return this.http\r\n .get(this.url + '/GetItemTypes')\r\n .pipe(map(result => JSON.parse(result)));\r\n }\r\n\r\n getFileUploads(): Observable {\r\n return this.http\r\n .get(this.url + '/getFileUploads', httpOptions)\r\n .pipe(map(result => JSON.parse(result)));\r\n }\r\n\r\n getFile(itemType: string, itemId: number, attachmentId: number, fileName: string) {\r\n var downloadHttpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\r\n responseType: 'Blob' as 'json'\r\n };\r\n this.http\r\n .get(\r\n this.url + '/GetFileById/' + itemType + '/' + itemId + '/' + attachmentId,\r\n downloadHttpOptions\r\n )\r\n .subscribe(blob => {\r\n this.afterGetBlob(blob, fileName)\r\n });\r\n }\r\n\r\n getTrainingFile(folder: string, fileName: string): Observable {\r\n return this.http.get(`${this.url}/GetTrainingFile/`+folder+'/'+fileName, {responseType: 'blob' as 'json'})\r\n }\r\n\r\n getPromoFlyer(fileNameExtension: string) {\r\n const fileExtension = fileNameExtension.slice(fileNameExtension.lastIndexOf('.') + 1, fileNameExtension.length);\r\n const fileNameNoExt = fileNameExtension.slice(0, -1 * (fileExtension.length + 1));\r\n var downloadHttpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\r\n responseType: 'Blob' as 'json',\r\n };\r\n this.http\r\n .get(\r\n this.url + '/GetPromoFlyer/' + fileNameNoExt + '/' + fileExtension,\r\n downloadHttpOptions\r\n )\r\n .subscribe(blob => {\r\n this.afterGetBlob(blob, fileNameExtension);\r\n });\r\n }\r\n\r\n getFileUploadsForItem(\r\n itemId: number,\r\n itemType: string\r\n ): Observable {\r\n return this.http\r\n .get(this.url + '/getFileUploadsForItem', {\r\n params: { itemId: itemId.toString(), itemType }\r\n })\r\n .pipe(map(result => JSON.parse(result)));\r\n }\r\n getAttachments(\r\n exchangeId: string,\r\n itemId: number,\r\n itemType: string\r\n ): Observable {\r\n return this.http.get(\r\n `${this.exchangeUrl}/api/attachment?exchangeId=${exchangeId}&itemId=${itemId}&itemType=${itemType}`\r\n );\r\n }\r\n\r\n addAttachments(\r\n exchangeId: string,\r\n itemId: string,\r\n itemType: string,\r\n files: File[]\r\n ): Observable {\r\n const formData: FormData = new FormData();\r\n files.forEach(file => {\r\n formData.append(file.name, file, file.name);\r\n });\r\n return this.http.post(\r\n `${this.exchangeUrl}/api/attachment`,\r\n formData,\r\n {\r\n params: {\r\n itemId: itemId,\r\n itemType: itemType,\r\n exchangeId: exchangeId\r\n }\r\n }\r\n );\r\n }\r\n \r\n deleteAttachments(\r\n exchangeId: string,\r\n itemId: string,\r\n itemType: string,\r\n attachmentIds: number[]\r\n ): Observable {\r\n return this.http.post(\r\n `${this.exchangeUrl}/api/attachment/delete`,\r\n attachmentIds ,\r\n {\r\n params: {\r\n itemType: itemType,\r\n itemId: itemId,\r\n exchangeId: exchangeId\r\n }\r\n }\r\n );\r\n }\r\n\r\n afterGetBlob(blob, fileName: string) {\r\n const ios = !!navigator.platform && (/iPad|iPhone|iPod|/.test(navigator.platform)\r\n || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1));\r\n if (ios) {\r\n var reader = new FileReader();\r\n reader.onload = function(e) {\r\n window.location.href = reader.result as string;\r\n }\r\n reader.readAsDataURL(blob);\r\n } else {\r\n var url = this.downloadURL.createObjectURL(blob);\r\n window.open(url, '_blank')\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BehaviorSubjectService {\r\n apiUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n environmentSubject: BehaviorSubject = new BehaviorSubject(null);\r\n productionSubject: BehaviorSubject = new BehaviorSubject(false);\r\n bladeWizardAPISubject: BehaviorSubject = new BehaviorSubject(null);\r\n morseAPISubject: BehaviorSubject = new BehaviorSubject(null);\r\n exchangeAPISubject: BehaviorSubject = new BehaviorSubject(null);\r\n membershipRebootAPISubject: BehaviorSubject = new BehaviorSubject(null);\r\n interactionsUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n authUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n clientIdSubject: BehaviorSubject = new BehaviorSubject(null);\r\n mobileUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n opdUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n valueCalcUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n mkMorsePublicHomeUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n trialResultsUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n googleAnalyticsIdSubjectManager: BehaviorSubject = new BehaviorSubject(null);\r\n salesforceUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n bladeWizardCommonAPISubject: BehaviorSubject = new BehaviorSubject(null);\r\n bladewizardUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n distributorLocatorUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n cookieYesUrlSubject: BehaviorSubject = new BehaviorSubject(null);\r\n constructor() {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { JsonPipe } from '@angular/common';\r\nimport { map } from 'rxjs/operators';\r\nimport { Customer } from './../models/Customer';\r\nimport { RepAgency } from '../models/RepAgency';\r\nimport { EndUser } from '../models/EndUser';\r\nimport { Distributor } from '../models/Distributor';\r\nimport { CustomerType } from '../models/enums/CustomerType';\r\nimport { CustomerDetails } from '../models/CustomerDetails';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { CustomerListItem } from '../models/CustomerListItem';\r\nimport { ContactListItem } from '../models/ContactListItem';\r\nimport { Contact } from '../models/Contact';\r\nimport { CustomerNote } from '../models/CustomerNote';\r\nimport { GetARAging } from '../models/GetARAging';\r\nimport { GetARDetail } from '../models/GetARDetail';\r\nimport { GetCoopAmt } from '../models/GetCoopAmt';\r\nimport { GetPromoList } from '../models/GetPromoList';\r\n// import { SummaryReportRow } from '../models/Summ';\r\nimport { CustomerUpdate } from '../models/CustomerUpdate';\r\nimport { ReportAreaGrouping } from '../models/enums/ReportAreaGrouping';\r\nimport { SummaryReportRow } from '../models/SummaryReportRow';\r\nimport { ContactUsRequest } from '../models/ContactUsRequest';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerService {\r\n private url: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n behaviorSubjectService: BehaviorSubjectService,\r\n ) {\r\n behaviorSubjectService.morseAPISubject.subscribe(url => {\r\n this.url = url;\r\n });\r\n }\r\n\r\n // getCustomers() {\r\n // const customers = [];\r\n // for (let i = 1; i < 11; i++) {\r\n // customers.push({\r\n // id: i,\r\n // name: 'Customer ' + i,\r\n // note: 'This is item #' + i\r\n // });\r\n // }\r\n // return customers;\r\n // }\r\n\r\n searchCustomers(term,type): Observable {\r\n const url = `${this.url}/SearchCustomer`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {\r\n term: term ? term : null,\r\n type: type ? (type === 'End User' ? 'EndUser' : type) : null,\r\n // filter1: 'Both',\r\n // filter2: 'All',\r\n // filter3: 'CustomerNameNumber'\r\n }\r\n };\r\n // their service returns a string that needs parsed\r\n return this.http.get(url, options);\r\n }\r\n\r\n searchMyEndUsers(term): Observable {\r\n const url = `${this.url}/SearchMyEndUsers`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {\r\n term: term ? term : null\r\n }\r\n };\r\n // their service returns a string that needs parsed\r\n return this.http.get(url, options);\r\n }\r\n\r\n getMyEndUsers(): Observable {\r\n const url = `${this.url}/GetMyEndUsers`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers\r\n };\r\n // their service returns a string that needs parsed\r\n return this.http.get(url, options);\r\n }\r\n\r\n searchCustomerLinks(term, account): Observable {\r\n const url = `${this.url}/SearchCustomerLinks`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {\r\n term: term ? term : null,\r\n account: account ? account : null\r\n }\r\n };\r\n // their service returns a string that needs parsed\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getCustomer(id: number): Observable {\r\n const url = `${this.url}/GetCustomer`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {id: id.toString()}\r\n };\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getCustomerSummary(id: string): Observable {\r\n const url = `${this.url}/GetCustomerSummary`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {id: id.toString()}\r\n };\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getEndUserCustomer(id: number): Observable {\r\n const url = `${this.url}/GetEndUserCustomer`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {id: id.toString()}\r\n };\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getDistributorCustomer(id: number): Observable {\r\n const url = `${this.url}/GetDistributorCustomer`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {id: id.toString()}\r\n };\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getMorseCustomerType(type: CustomerType) : string {\r\n\r\n switch (type) {\r\n case CustomerType.Distributor:\r\n return 'Distributor';\r\n\r\n case CustomerType.EndUser:\r\n return 'EndUser';\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n addCustomer(customer: EndUser | RepAgency | Distributor) {\r\n if (customer.CustomerType === CustomerType.Distributor) {\r\n return this.http.post(this.url + '/AddDistributor', customer, httpOptions);\r\n } else if (customer.CustomerType === CustomerType.EndUser) {\r\n return this.http.post(this.url + '/AddEndUser', customer, httpOptions);\r\n } else if (customer.CustomerType === CustomerType.RepAgency) {\r\n return this.http.post(this.url + '/AddRepAgency', customer, httpOptions);\r\n }\r\n }\r\n\r\n addSimpleAccount(name: string) {\r\n return this.http.post(this.url + '/AddSimpleAccount', null, {params: {\r\n name: name\r\n }});\r\n }\r\n\r\n getContactsForCustomer(customerId: number): Observable {\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {id: customerId.toString()}\r\n };\r\n return this.http.get(this.url + '/GetContactsForCustomer', options);\r\n }\r\n\r\n getLinkedEndUsers(id: number): Observable {\r\n const url = `${this.url}/GetLinkedEndUsers`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {distributorId: id.toString()}\r\n };\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getLinkedDistributors(id: number): Observable {\r\n const url = `${this.url}/GetLinkedDistributors`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {enduserId: id.toString()}\r\n };\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n addUpdateContact(contact: Contact) {\r\n return this.http.post(`${this.url}/AddUpdateContact`, contact);\r\n }\r\n\r\n // this needs parsed when it comes back\r\n getContact(id: number) {\r\n const url = `${this.url}/GetContact`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {id: id.toString()}\r\n };\r\n return this.http.get(url, options);\r\n }\r\n\r\n submitContactUs(form: ContactUsRequest) {\r\n const url = `${this.url}/SubmitContactUs`;\r\n return this.http.post(url, form);\r\n }\r\n\r\n linkEndUserAndDistributor(distributorId: number, endUserId: number) {\r\n return this.http.post(`${this.url}/LinkEndUserAndDistributor`, null, {params: {\r\n distributorId: distributorId.toString(),\r\n endUserId: endUserId.toString(), \r\n customerId: '0', // Not used in api \r\n isAdd: true.toString()\r\n }});\r\n }\r\n// \r\n unlinkEndUserAndDistributor(distributorId: number, endUserId: number) {\r\n return this.http.post(`${this.url}/LinkEndUserAndDistributor`, null, {params: {\r\n distributorId: distributorId.toString(),\r\n endUserId: endUserId.toString(),\r\n customerId: '0', // Not used in api\r\n isAdd: false.toString()\r\n }});\r\n }\r\n // \r\n\r\n getNotesForCustomer(customerId: number) {\r\n let params = new HttpParams().append(\"id\", customerId.toString());\r\n\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: params\r\n }\r\n return this.http\r\n .get(`${this.url}/GetCustomerNotes`, options)\r\n .pipe(map(str => JSON.parse(str)));\r\n }\r\n\r\n addCustomerNote(customerId: number, note: string) {\r\n console.log(\"Adding Customer Note\", {\"customerId\": customerId, \"note\": note});\r\n let params = new HttpParams().append(\"AccountId\", customerId.toString()).append(\"Note\", note);\r\n\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n };\r\n\r\n const newNote = {\r\n AccountId: customerId,\r\n Note: note\r\n };\r\n\r\n return this.http.post(`${this.url}/AddCustomerNote`, newNote, options);\r\n\r\n }\r\n \r\n getARAging(customerNumber: string): Observable {\r\n const url = `${this.url}/GetARAging`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {customernumber: customerNumber}\r\n };\r\n return this.http.get(url, options);\r\n }\r\n\r\n getARDetail(customerNumber: string): Observable {\r\n const url = `${this.url}/GetARDetail`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {customernumber: customerNumber}\r\n };\r\n return this.http.get(url, options);\r\n }\r\n\r\n getCoopAmt(customerNumber: string, year: number): Observable {\r\n const url = `${this.url}/GetCoopAmt`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {customernumber: customerNumber, year: year.toString()}\r\n };\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getCustomerPromos(customerNumber: string, eligibility: boolean): Observable {\r\n const url = `${this.url}/GetCustomerPromos`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {customernumber: customerNumber, eligibility: eligibility.toString()}\r\n };\r\n return this.http.get(url, options);\r\n }\r\n \r\n getOdpPromos(eligibility: boolean): Observable {\r\n const url = `${this.url}/GetOdpPromos`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {eligibility: eligibility.toString()}\r\n };\r\n return this.http.get(url, options);\r\n }\r\n\r\n getSingleCustomerSalesSummary(customerNumber: string, year: number): Observable {\r\n const url = `${this.url}/GetSingleCustomerSalesSummary`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {customernumber: customerNumber, year: year.toString()}\r\n };\r\n return this.http.get(url, options);\r\n }\r\n\r\n getSalesSummary(\r\n groupBy: string, \r\n year: number, \r\n divisionparent: string,\r\n regionparent: string,\r\n salespersonparent: string,\r\n territoryparent: string,\r\n tradingareaparent: string,\r\n filter1column: ReportAreaGrouping, \r\n filter1content: string, \r\n filter2column: ReportAreaGrouping, \r\n filter2content: string): Observable {\r\n const url = `${this.url}/GetSalesSummary`;\r\n const headers = httpOptions.headers;\r\n const params = {\r\n groupBy, \r\n year: year.toString(),\r\n filter1column,\r\n filter1content,\r\n filter2column,\r\n filter2content\r\n }\r\n divisionparent ? params['divisionparent'] = divisionparent : null;\r\n regionparent ? params['regionparent'] = regionparent : null;\r\n salespersonparent ? params['salespersonparent'] = salespersonparent : null;\r\n territoryparent ? params['territoryparent'] = territoryparent : null;\r\n tradingareaparent ? params['tradingareaparent'] = tradingareaparent : null;\r\n const options = {\r\n headers,\r\n params\r\n };\r\n return this.http.get(url, options);\r\n }\r\n\r\n addCustomerPromo(PromotionCode: string, CustomerNumber: string): Observable {\r\n const body = {\r\n PromotionCode,\r\n CustomerNumber\r\n }\r\n return this.http.post(this.url + '/AddCustomerPromo', body, httpOptions);\r\n }\r\n\r\n deleteNote(noteId: number): Observable {\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {id: noteId.toString()}\r\n };\r\n return this.http.delete(this.url + '/DeleteCustomerNote', options);\r\n }\r\n\r\n async updateCustomer(customerUpdates: CustomerUpdate[]) {\r\n\r\n var updates: Array> = [];\r\n \r\n for (var i in customerUpdates) {\r\n updates.push(this.http.post(this.url + '/UpdateCustomerRecord', customerUpdates[i], httpOptions).toPromise());\r\n }\r\n\r\n await Promise.all(updates);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { UserSettings } from '../models/UserSettings';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { RepInfoModel } from '../models/RepInfoModel';\r\nimport { Observable } from 'rxjs';\r\nimport { TechRepInfo } from '../models/TechRepInfo';\r\nimport { CartPopup } from '../models/CartPopup';\r\nimport { GetReorderListResult } from '../models/GetReorderListResult';\r\nimport { RepInfo } from '../models/RepInfo';\r\nimport { SettingsService } from './settings.service';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' })\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DistributorService {\r\n private url: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: SettingsService,\r\n behaviorSubjectService: BehaviorSubjectService\r\n ) {\r\n behaviorSubjectService.morseAPISubject.subscribe(url => this.url = url);\r\n }\r\n\r\n /** Creates a new quote and makes it the active cart. */\r\n getNewQuote(): Observable {\r\n // Need to pass username in params\r\n const url = `${this.url}/GetNewQuote`;\r\n const options = httpOptions;\r\n const username = this.settingsService.getUserSettings().username;\r\n const params = new HttpParams().set('username', username);\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n /** Sets different quote to be the active cart. */\r\n setNewCart(quotenum: number): Observable {\r\n const url = `${this.url}/SetNewCart`;\r\n const params = new HttpParams().set('quotenum', quotenum.toString());\r\n const options = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json' }),\r\n params: params\r\n };\r\n return this.http.post(url, params, options);\r\n }\r\n\r\n /**\r\n * returns int[2]\r\n * [0] = quote number, [1] = number of items in cart to display on home page\r\n * @param quotenum is optional\r\n */\r\n getCartCountArray(quotenum: number): Observable {\r\n const url = `${this.url}/GetCartCount`;\r\n if (quotenum) {\r\n const options = httpOptions;\r\n const params = new HttpParams().set('quotenum', quotenum.toString());\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n return this.http.get(url);\r\n }\r\n\r\n // getCartItemList(quoteNumber?: number, activeCart?: boolean): Observable {\r\n // const url = `${this.url}/GetCartItemList`;\r\n // const options = httpOptions;\r\n // const params = new HttpParams();\r\n // params.set('quotenum', quoteNumber ? quoteNumber.toString() : '0');\r\n // if (activeCart != null) {\r\n // params.set('activeCart', String(activeCart));\r\n // }\r\n // options['params'] = params;\r\n // return this.http.get(url, options);\r\n // }\r\n\r\n GetCartItemList(quoteNumber?: string): Observable {\r\n const url = `${this.url}/GetCartItemList`;\r\n const options = httpOptions;\r\n const params = quoteNumber ? new HttpParams().set('quotenum', quoteNumber) : new HttpParams();\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n // getCartItemListWithParams(quoteNumber: number, activeCart: boolean): Observable {\r\n // // TODO see if they use activeCart. Currently, they dont.\r\n // const url = `${this.url}/GetCartItemList`;\r\n // const headers = httpOptions.headers;\r\n // const options = {\r\n // headers,\r\n // params: {\r\n // quotenum: quoteNumber.toString(),\r\n // activeCart: String(activeCart)\r\n // }\r\n // };\r\n // return this.http.get(url, options);\r\n // }\r\n\r\n getSalesRepInfo(custno: string): Observable {\r\n const url = `${this.url}/GetSalesPerson`;\r\n const options = httpOptions;\r\n const params = new HttpParams().set('custno', custno);\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n getTechRepInfo(custno: string): Observable {\r\n const url = `${this.url}/GetTechPerson`;\r\n const options = httpOptions;\r\n const params = new HttpParams().set('custno', custno);\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n getReorderList(odpUser: string): Observable {\r\n const url = `${this.url}/GetReorderList`;\r\n const options = httpOptions;\r\n const params = new HttpParams().set('odpuser', odpUser);\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n postEmailInvoicePdf(emailto: string, emailcc: string, invoicenbr: string): Observable {\r\n const url = `${this.url}/PostEmailInvoicePdf`;\r\n const options = httpOptions;\r\n let params = new HttpParams();\r\n params = params.set('emailto', emailto);\r\n params = params.set('emailcc', emailcc);\r\n params = params.set('invoicenbr', invoicenbr);\r\n options['params'] = params;\r\n\r\n return this.http.post(url, null, options);\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { count, map } from 'rxjs/operators';\r\nimport { AppEndUserMachineModel } from '../models/AppEndUserMachineModel';\r\nimport { Country } from '../models/Country';\r\nimport { CountryState } from '../models/CountryState';\r\nimport { EndUserDistributor } from '../models/EndUserDistributor';\r\nimport { EndUserProduct } from '../models/EndUserProduct';\r\nimport { EndUserProfile, EndUserProfileForm } from '../models/EndUserProfile';\r\nimport { EndUserProfileResponse } from '../models/EndUserProfileResponse';\r\nimport { MachineManufacturer } from '../models/RevolutionWizard/MachineManufacturer';\r\nimport { MachineModel } from '../models/RevolutionWizard/MachineModel';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EndUserProfileService {\r\n\r\n private url: string;\r\n\r\n constructor(private http: HttpClient, behaviorSubjectService: BehaviorSubjectService) {\r\n behaviorSubjectService.morseAPISubject.subscribe(url => { this.url = url; });\r\n }\r\n\r\n public getCountries(): Observable>\r\n {\r\n return this.http\r\n .get>(`${this.url}/GetCountryList`, httpOptions)\r\n .pipe(map(results => this.parseCountryList(results)))\r\n }\r\n\r\n public getStatesForCountry(countryId: number): Observable>\r\n {\r\n const params = new HttpParams().set('countryID', countryId.toString());\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http\r\n .get>(`${this.url}/GetStatesbyCountryId`, options)\r\n .pipe(map(results => this.parseCountryStatesList(results)));\r\n }\r\n\r\n public getDistributorsForEndUser(username: string): Observable\r\n {\r\n const params = new HttpParams().set('_username', username);\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http\r\n .get>(`${this.url}/ListDistributorsbyUsername`, options)\r\n .pipe(map(results => this.parseDistributorListForEndUser(results)));\r\n }\r\n\r\n public getEndUserMajorCategories(username: string): Observable\r\n {\r\n const params = new HttpParams().set('_username', username);\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http\r\n .get>(`${this.url}/ListAppEndUserMajorCategories`, options);\r\n }\r\n\r\n public getAppEndUserbyUsername(username: string): Observable\r\n {\r\n const params = new HttpParams().set('username', username);\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http\r\n .get(`${this.url}/GetAppEndUserbyUsername`, options);\r\n }\r\n\r\n public setTheme(username: string, theme: string): Observable\r\n {\r\n let params = new HttpParams().set('username', username)\r\n params = params.set('theme', theme);\r\n return this.http.post(`${this.url}/SetThemeByUsername`, { username: username, theme: theme}, {params: params});\r\n }\r\n\r\n public updateEndUserProfile(profile: EndUserProfile): Observable\r\n {\r\n let params = new HttpParams().set('username', profile.username)\r\n\r\n if (profile.firstname)\r\n {\r\n params = params.set('firstname', profile.firstname); \r\n }\r\n\r\n if (profile.lastname)\r\n {\r\n params = params.set('lastname', profile.lastname); \r\n }\r\n\r\n if (profile.emailaddress)\r\n {\r\n params = params.set('emailaddress', encodeURIComponent(profile.emailaddress));\r\n }\r\n\r\n if (profile.address1)\r\n {\r\n params = params.set('address1', profile.address1);\r\n }\r\n\r\n if (profile.address2)\r\n {\r\n params = params.set('address2', profile.address2);\r\n }\r\n\r\n if (profile.city)\r\n {\r\n params = params.set('city', profile.city);\r\n }\r\n\r\n if (profile.state)\r\n {\r\n params = params.set('state', profile.state); //.state.abbreviation\r\n }\r\n\r\n if (profile.country)\r\n {\r\n params = params.set('country', profile.country); //.country.abbreviation\r\n }\r\n\r\n if (profile.postalcode)\r\n {\r\n params = params.set('postalcode', profile.postalcode);\r\n }\r\n\r\n if (profile.landline)\r\n {\r\n params = params.set('landline', encodeURIComponent(profile.landline));\r\n }\r\n \r\n if (profile.cellphone)\r\n {\r\n params = params.set('mobphone', encodeURIComponent(profile.cellphone));\r\n }\r\n\r\n if (profile.fax)\r\n {\r\n params = params.set('fax', encodeURIComponent(profile.fax));\r\n }\r\n\r\n if (profile.contactpref)\r\n {\r\n params = params.set('contactpref', 'true');\r\n }\r\n\r\n if (profile.units)\r\n {\r\n params = params.set('units', profile.units);\r\n }\r\n\r\n if (profile.theme)\r\n {\r\n params = params.set('theme', profile.theme);\r\n }\r\n\r\n return this.http.post(`${this.url}/UpdateEndUserProfilebyUsername`, null, {params: params})\r\n }\r\n\r\n public deleteEndUserProfilebyUsername(username: string, emailAddress: string): Observable {\r\n let params = new HttpParams()\r\n .set('username', username)\r\n .set('emailaddress', emailAddress)\r\n return this.http.post(`${this.url}/deleteEndUserProfilebyUsername`, null, {params: params});\r\n }\r\n\r\n \r\n public deleteAppEndUserDistributorById(username: string, id: number): Observable\r\n {\r\n let params = new HttpParams()\r\n .set('_username', username)\r\n .set('distributorId', id.toString())\r\n return this.http.post(`${this.url}/deleteAppEndUserDistributorById`, null, {params: params});\r\n }\r\n\r\n public AddAppEndUserDistributorById(username: string, id: number, isdefault: boolean): Observable {\r\n let params = new HttpParams()\r\n .set('_username', username)\r\n .set('distributorId', id.toString())\r\n .set('isdefault', isdefault ? 'true' : 'false')\r\n return this.http.post(`${this.url}/AddAppEndUserDistributorById`, null, {params: params});\r\n }\r\n\r\n public setDefaultDistributorById(username: string, id: number, isdefault: boolean): Observable {\r\n let params = new HttpParams()\r\n .set('_username', username)\r\n .set('isdefault', isdefault ? 'true' : 'false')\r\n .set('distributorId', id.toString())\r\n return this.http.post(`${this.url}/SetDefaultDistributorById`, null, {params: params});\r\n }\r\n\r\n public addAppEndUserMajorCategory(username: string, majorName: string): Observable\r\n {\r\n let params = new HttpParams()\r\n .set('_username', username)\r\n .set('MajorName', majorName)\r\n return this.http.post(`${this.url}/AddAppEndUserMajorCategory`, null, {params: params});\r\n }\r\n\r\n public deleteAppEndUserMajorCategories(username: string, majorName: string): Observable\r\n {\r\n let params = new HttpParams()\r\n .set('_username', username)\r\n .set('MajorName', majorName)\r\n return this.http.post(`${this.url}/DeleteAppEndUserMajorCategories`, null, {params: params});\r\n }\r\n\r\n\r\n // All response shapes taken from provided swagger examples\r\n private parseCountryList(results: Array<{id: any, name: any, CORG_P6COD: any}>): Array\r\n {\r\n return results.map(result => {\r\n let country = new Country();\r\n country.id = result.id;\r\n country.name = result.name;\r\n country.abbreviation = result.CORG_P6COD;\r\n return country;\r\n });\r\n }\r\n\r\n private parseCountryStatesList(results: Array<{id: any, country_id: any, name: any, abbreviation: any, STATEMK_SXSTPR: any}>): Array\r\n {\r\n return results.map(result => {\r\n let state = new CountryState();\r\n state.id = result.id;\r\n state.countryId = result.country_id;\r\n state.name = result.name;\r\n state.abbreviation = result.abbreviation;\r\n state.StateMk_SXSTPR = result.STATEMK_SXSTPR;\r\n return state;\r\n });\r\n }\r\n\r\n private parseDistributorListForEndUser(results: Array<{appEndUserId: any, DistributorId: any, DistributorName: any, territory: any, territory_sales_person: any, customerNumber: any, isDefault: any, CreateDate: any}>): Array\r\n {\r\n return results.map(result => {\r\n let endUserDistributor = new EndUserDistributor();\r\n endUserDistributor.appEndUserId = result.appEndUserId;\r\n endUserDistributor.DistributorId = result.DistributorId;\r\n endUserDistributor.distributorName = result.DistributorName;\r\n endUserDistributor.territory = result.territory;\r\n endUserDistributor.territorySalesPerson = result.territory_sales_person;\r\n endUserDistributor.isDefault = result.isDefault;\r\n endUserDistributor.createDate = result.CreateDate;\r\n endUserDistributor.customerNumber = result.customerNumber;\r\n return endUserDistributor;\r\n })\r\n } \r\n\r\n public convertEndUserProfileToForm(endUserProfile: EndUserProfile): EndUserProfileForm {\r\n const endUserProfileForm = new EndUserProfileForm();\r\n endUserProfileForm.FirstName = endUserProfile.firstname;\r\n endUserProfileForm.LastName = endUserProfile.lastname;\r\n endUserProfileForm.Phone = endUserProfile.cellphone;\r\n endUserProfileForm.Fax = endUserProfile.fax;\r\n endUserProfileForm.EmailAddress = endUserProfile.emailaddress;\r\n endUserProfileForm.Address1 = endUserProfile.address1;\r\n endUserProfileForm.Address2 = endUserProfile.address2;\r\n endUserProfileForm.Country = endUserProfile.country;\r\n endUserProfileForm.State = endUserProfile.state;\r\n endUserProfileForm.PostalCode = endUserProfile.postalcode;\r\n endUserProfileForm.ContactPref = endUserProfile.contactpref;\r\n endUserProfileForm.Landline = endUserProfile.landline;\r\n endUserProfileForm.City = endUserProfile.city;\r\n return endUserProfileForm;\r\n }\r\n\r\n public convertEndUserProfileResponseToForm(endUserProfile: EndUserProfileResponse): EndUserProfileForm {\r\n const endUserProfileForm = new EndUserProfileForm();\r\n endUserProfileForm.FirstName = endUserProfile.FirstName;\r\n endUserProfileForm.LastName = endUserProfile.FamilyName;\r\n endUserProfileForm.Phone = endUserProfile.MobilePhoneNumber;\r\n // endUserProfileForm.Fax = endUserProfile.fax;\r\n endUserProfileForm.EmailAddress = endUserProfile.Email;\r\n endUserProfileForm.Address1 = endUserProfile.Address1;\r\n endUserProfileForm.Address2 = endUserProfile.Address2;\r\n endUserProfileForm.Country = endUserProfile.Country;\r\n endUserProfileForm.State = endUserProfile.StateRegion;\r\n endUserProfileForm.PostalCode = endUserProfile.Postal\r\n endUserProfileForm.ContactPref = endUserProfile.ContactPref;\r\n // endUserProfileForm.Landline = endUserProfile.Landline;\r\n endUserProfileForm.City = endUserProfile.City;\r\n return endUserProfileForm;\r\n}\r\n\r\n public convertEndUserFormToProfile(endUserProfileForm: EndUserProfileForm): EndUserProfile {\r\n const endUserProfile = new EndUserProfile(null, endUserProfileForm.EmailAddress);\r\n endUserProfile.firstname = endUserProfileForm.FirstName;\r\n endUserProfile.lastname = endUserProfileForm.LastName;\r\n endUserProfile.cellphone = endUserProfileForm.Phone;\r\n endUserProfile.fax = endUserProfileForm.Fax;\r\n endUserProfile.emailaddress = endUserProfileForm.EmailAddress;\r\n endUserProfile.address1 = endUserProfileForm.Address1;\r\n endUserProfile.address2 = endUserProfileForm.Address2;\r\n endUserProfile.country = endUserProfileForm.Country;\r\n endUserProfile.state = endUserProfileForm.State;\r\n endUserProfile.postalcode = endUserProfileForm.PostalCode;\r\n endUserProfile.contactpref = endUserProfileForm.ContactPref;\r\n endUserProfile.landline = endUserProfileForm.Landline;\r\n endUserProfile.city = endUserProfileForm.City;\r\n endUserProfile.units = endUserProfileForm.Units;\r\n return endUserProfile;\r\n }\r\n\r\n public listPrimaryIndustries(): Observable\r\n {\r\n return this.http\r\n .get(`${this.url}/ListPrimaryIndustries`);\r\n }\r\n\r\n public listAppEndUserIndustries(username: string): Observable\r\n {\r\n const params = new HttpParams().set('_username', username);\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http\r\n .get(`${this.url}/ListAppEndUserIndustries`, options);\r\n }\r\n\r\n public deleteAppEndUserIndustry(username: string, industryId: number): Observable {\r\n let params = new HttpParams()\r\n .set('_username', username)\r\n .set('industryId', industryId.toString())\r\n return this.http.post(`${this.url}/DeleteAppEndUserIndustry`, null, {params: params});\r\n }\r\n\r\n public addAppEndUserIndustries(username: string, industryId: number): Observable {\r\n let params = new HttpParams()\r\n .set('_username', username)\r\n .set('primaryIndustryId', industryId.toString())\r\n return this.http.post(`${this.url}/AddAppEndUserIndustries`, null, {params: params});\r\n }\r\n\r\n public getMachineMfgList(): Observable {\r\n const options = httpOptions;\r\n return this.http.get(`${this.url}/GetMachineMfgList`, options)\r\n .pipe(map(result => result.map(mm => {\r\n const transformed = new MachineManufacturer();\r\n transformed.Id = mm.id;\r\n transformed.name = mm.mfgname\r\n transformed.is_active = mm.is_active\r\n return transformed;\r\n })));\r\n } \r\n\r\n public getAppEndUserMachinesList(username: string): Observable {\r\n const params = new HttpParams().set('_username', username);\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http.get(`${this.url}/GetAppEndUserMachinesList`, options);\r\n }\r\n\r\n public getMachineModelsbyMfgID(mfgId: string): Observable {\r\n const params = new HttpParams().set('mfgId', mfgId);\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http.get(`${this.url}/GetMachineModelsbyMfgID`, options)\r\n .pipe(map(result => result.map(mm => {\r\n const transformed = new MachineModel();\r\n transformed.Id = mm.id;\r\n transformed.machine_manufacturer_id = mm.machinemfgId;\r\n transformed.name = mm.modelname;\r\n transformed.is_active = true;\r\n transformed.is_bandsaw = false;\r\n return transformed;\r\n })));\r\n }\r\n\r\n public addAppEndUserMachinestoProfile(username: string, mfgId: number, modelId: number): Observable {\r\n let params = new HttpParams()\r\n .set('username', username)\r\n .set('machinemfgId', mfgId.toString())\r\n .set('machinemodelId', modelId.toString())\r\n return this.http.post(`${this.url}/AddAppEndUserMachinestoProfile`, null, {params: params});\r\n }\r\n\r\n public deleteAppEndUserMachinesfromProfile(username: string, mfgId: number, modelId: number): Observable {\r\n let params = new HttpParams()\r\n .set('_username', username)\r\n .set('machinemfgId', mfgId.toString())\r\n .set('machinemodelId', modelId.toString())\r\n return this.http.post(`${this.url}/DeleteAppEndUserMachinesfromProfile`, null, {params: params});\r\n }\r\n \r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { AppEndUserCartDistributorsModel } from '../models/AppEndUserCartDistributorsModel';\r\nimport { AppEndUserLineItemModel } from '../models/AppEndUserLineItem';\r\nimport { CartPart } from '../models/CartPart';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EndUserShoppingCartService {\r\n\r\n private url: string;\r\n\r\n constructor(private http: HttpClient, behaviorSubjectService: BehaviorSubjectService) {\r\n behaviorSubjectService.morseAPISubject.subscribe(url => { this.url = url; });\r\n }\r\n\r\n // addToCart(username: string, part: string, description: string, qty: number, dimensions: string, tpi: string, packaging: string): Observable {\r\n addToCart(cartPart: CartPart): Observable {\r\n const url = `${this.url}/AddToCart`;\r\n // their service returns a string that needs parsed\r\n return this.http.post(url, cartPart, httpOptions);\r\n }\r\n\r\n getCartItemCount(cartId: number): Observable {\r\n const url = `${this.url}/GetCartItemCount`;\r\n const options = httpOptions;\r\n const params = new HttpParams().set('cartId', cartId.toString());\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n getActiveCart(username: string): Observable {\r\n const url = `${this.url}/GetActiveCart`;\r\n const options = httpOptions;\r\n const params = new HttpParams().set('username', username);\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n getCartLineItemList(cartId: number): Observable {\r\n const url = `${this.url}/GetCartLineItemList`;\r\n const options = httpOptions;\r\n const params = new HttpParams().set('cartId', cartId.toString());\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n updateCartLineItems(cartId: number, lineItemId: number, qty: number): Observable {\r\n const url = `${this.url}/UpdateCartLineItems`;\r\n const options = httpOptions;\r\n const params = new HttpParams().set('cartId', cartId.toString())\r\n .set('lineItemId', lineItemId.toString())\r\n .set('qty', qty.toString())\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n removeCartLineItem(cartId: number, lineItemId: number): Observable {\r\n const url = `${this.url}/RemoveCartLineItem`;\r\n const options = httpOptions;\r\n const params = new HttpParams().set('cartId', cartId.toString())\r\n .set('lineItemId', lineItemId.toString());\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n submitCart(cartId: number, username: string): Observable {\r\n const url = `${this.url}/SubmitCart`;\r\n const options = httpOptions;\r\n const params = new HttpParams().set('cartId', cartId.toString())\r\n .set('username', username);\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n getCartDistributors(cartId: number): Observable {\r\n const url = `${this.url}/GetCartDistributors`;\r\n const options = httpOptions;\r\n const params = new HttpParams().set('cartId', cartId.toString())\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n updateCartDistributors(cartId: number, distributorIds: number[]): Observable {\r\n const url = `${this.url}/UpdateCartDistributors?cartId=` + cartId.toString() + '&distributorIds=' + distributorIds.join('&distributorIds=');\r\n const options = httpOptions;\r\n return this.http.get(url, options);\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { Event } from './../models/Event';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { RequestOptions, Headers } from '@angular/http';\r\nimport { Room } from '../models/Room';\r\nimport { EventGrouped } from '../models/EventGrouped';\r\nimport { map } from 'rxjs/operators';\r\nimport { MeetingType } from '../models/MeetingType';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' })\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EventService {\r\n\r\n private exchangeURL: string;\r\n private exchangeURLSuffix = 'api/event'; // URL to web api\r\n private morseURL: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private behaviorSubjectService: BehaviorSubjectService) {\r\n behaviorSubjectService.exchangeAPISubject.subscribe(url => {\r\n this.exchangeURL = url + `/${this.exchangeURLSuffix}`; // this.url = `http://localhost:64603/${this.urlSuffix}`;\r\n });\r\n behaviorSubjectService.morseAPISubject.subscribe(url => {\r\n this.morseURL = url; // this.url = `http://localhost:64603/${this.urlSuffix}`;\r\n });\r\n }\r\n\r\n getTimezoneName() {\r\n // https://stackoverflow.com/questions/17348807/how-to-translate-between-windows-and-iana-time-zones\r\n // need to use IANA time zone and convert because devices pass\r\n // as example: Eastern Daylight instead of Eastern Standard\r\n // Exchange server doesn't recognized Easter Daylight Time\r\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n\r\n// https://stackoverflow.com/questions/9772955/how-can-i-get-the-timezone-name-in-javascript\r\n/* const today = new Date();\r\n const short = today.toLocaleDateString(undefined);\r\n const full = today.toLocaleDateString(undefined, { timeZoneName: 'long' });\r\n\r\n // Trying to remove date from the string in a locale-agnostic way\r\n const shortIndex = full.indexOf(short);\r\n if (shortIndex >= 0) {\r\n const trimmed = full.substring(0, shortIndex) + full.substring(shortIndex + short.length);\r\n \r\n // by this time `trimmed` should be the timezone's name with some punctuation -\r\n // trim it from both sides\r\n return trimmed.replace(/^[\\s,.\\-:;]+|[\\s,.\\-:;]+$/g, '');\r\n\r\n } else {\r\n // in some magic case when short representation of date is not present in the long one, just return the long one as a fallback, since it should contain the timezone's name\r\n return full;\r\n } */\r\n // need to use IANA time zone and convert because devices pass\r\n // as example: Eastern Daylight instead of Eastern Standard\r\n // Exchange server doesn't recognized Easter Daylight Time\r\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n }\r\n\r\n getMeetingTypes(): Observable {\r\n return this.http.get(this.morseURL + '/GetMeetingTypes').pipe(map((result) => {\r\n const dictionary: Record[] = JSON.parse(result);\r\n return Object.keys(dictionary).map(key => ({ Id: key, MeetingType1: dictionary[key] }) as MeetingType);\r\n }));\r\n }\r\n \r\n getCurrentUserEvents(\r\n startdate,\r\n enddate,\r\n maxItems,\r\n takeMaxFromEndDateBack: boolean,\r\n previousStart: Date,\r\n previousEnd: Date,\r\n usertimezone: string): Observable {\r\n const params = new HttpParams()\r\n .set('startdate', startdate)\r\n .set('enddate', enddate)\r\n .set('usertimezone', this.getTimezoneName());\r\n return this.http.get(this.exchangeURL + '/GetCurrentUserEvents/' + maxItems, {params: params});\r\n }\r\n\r\n getCurrentUserEventsListView(\r\n startdate,\r\n enddate,\r\n maxItems,\r\n takeMaxFromEndDateBack: boolean,\r\n previousStart: Date,\r\n previousEnd: Date,\r\n previousStartId: string,\r\n previousEndId: string,\r\n usertimezone: string) : Observable {\r\n let params = new HttpParams()\r\n .set('startdate', startdate)\r\n .set('enddate', enddate)\r\n .set('takeMaxFromEndDateBack', takeMaxFromEndDateBack.toString())\r\n .set('usertimezone', this.getTimezoneName());\r\n if (previousStart && previousEnd) {\r\n params = params\r\n .set('previousStart', previousStart.toISOString())\r\n .set('previousEnd', previousEnd.toISOString())\r\n .set('previousStartId', previousStartId)\r\n .set('previousEndId', previousEndId);\r\n //.set('usertimezone', this.getTimezoneName());\r\n } else {\r\n params = params\r\n .set('previousStart', null)\r\n .set('previousEnd', null)\r\n .set('previousStartId', null)\r\n .set('previousEndId', null);\r\n //.set('usertimezone', this.getTimezoneName()); \r\n // .set('previousStartId', null).set('previousEndId', null);\r\n }\r\n return this.http.get(this.exchangeURL + '/GetCurrentUserEventsListView/' + maxItems, {params: params});\r\n }\r\n\r\ngetMarketingEventsListView(\r\n startdate,\r\n enddate,\r\n maxItems,\r\n takeMaxFromEndDateBack: boolean,\r\n previousStart: Date,\r\n previousEnd: Date,\r\n previousStartId: string,\r\n previousEndId: string,\r\n usertimezone: string) : Observable {\r\nlet params = new HttpParams()\r\n .set('startdate', startdate)\r\n .set('enddate', enddate)\r\n .set('takeMaxFromEndDateBack', takeMaxFromEndDateBack.toString())\r\n .set('usertimezone', this.getTimezoneName());\r\nif (previousStart && previousEnd) {\r\n params = params\r\n .set('previousStart', previousStart.toISOString())\r\n .set('previousEnd', previousEnd.toISOString())\r\n .set('previousStartId', previousStartId)\r\n .set('previousEndId', previousEndId)\r\n .set('usertimezone', this.getTimezoneName());;\r\n} else {\r\n params = params\r\n .set('previousStart', null)\r\n .set('previousEnd', null)\r\n .set('previousStartId', null)\r\n .set('previousEndId', null)\r\n .set('usertimezone', this.getTimezoneName());;\r\n // .set('previousStartId', null).set('previousEndId', null);\r\n}\r\n return this.http.get(this.exchangeURL + '/GetMarketingEventsListView/' + maxItems, {params: params});\r\n}\r\n\r\ngetMarketingEvents(\r\n startdate,\r\n enddate,\r\n maxItems,\r\n takeMaxFromEndDateBack: boolean,\r\n previousStart: Date,\r\n previousEnd: Date,\r\n usertimezone: string): Observable {\r\nconst params = new HttpParams()\r\n .set('startdate', startdate)\r\n .set('enddate', enddate) \r\n .set('usertimezone', this.getTimezoneName());\r\nreturn this.http.get(this.exchangeURL + '/GetMarketingEvents/' + maxItems, {params: params});\r\n}\r\n\r\ngetFutureMarketingEvents(prevDate, usertimezone, listView: boolean): Observable {\r\n const params = new HttpParams()\r\n .set('prevDate', prevDate)\r\n .set('usertimezone', this.getTimezoneName())\r\n .set('listView', listView ? 'true' : 'false');\r\nreturn this.http.get(this.exchangeURL + '/GetFutureMarketingEvents', {params: params});\r\n}\r\n\r\ngetPastMarketingEvents(prevDate, usertimezone, listView: boolean): Observable {\r\n const params = new HttpParams()\r\n .set('prevDate', prevDate)\r\n .set('usertimezone', this.getTimezoneName())\r\n .set('listView', listView ? 'true' : 'false');\r\n return this.http.get(this.exchangeURL + '/GetPastMarketingEvents', {params: params});\r\n }\r\n\r\n getFutureEvents(numberOfDays: number, usertimezone) {\r\n const params = new HttpParams()\r\n .set('usertimezone', this.getTimezoneName());\r\n return this.http.get(this.exchangeURL + '/GetFutureEvents/' + numberOfDays), {params: params}; \r\n }\r\n\r\n getGroupEvents(startdate, enddate, usertimezone): Observable {\r\n const params = new HttpParams()\r\n .set('startdate', startdate)\r\n .set('enddate', enddate) \r\n .set('usertimezone', this.getTimezoneName());;\r\n return this.http.get(this.exchangeURL + '/GetGroupEvents', {params: params});\r\n }\r\n\r\n addEvent(eventToAdd: Event, usertimezone):Observable {\r\n const formData: FormData = new FormData();\r\n usertimezone = this.getTimezoneName();\r\n return this.http.post(this.exchangeURL + '/addEvent', formData, {params: {eventToAddJSON: JSON.stringify(eventToAdd), usertimezone}});\r\n }\r\n\r\n updateEvent(eventToUpdate: Event, usertimezone) {\r\n const formData: FormData = new FormData();\r\n usertimezone = this.getTimezoneName();\r\n return this.http.post(this.exchangeURL + '/updateEvent', formData, {params: {eventToUpdateJSON: JSON.stringify(eventToUpdate), usertimezone}});\r\n }\r\n\r\n deleteEvent(eventToDelete: Event) {\r\n return this.http.post(this.exchangeURL + '/deleteEvent', eventToDelete, httpOptions);\r\n }\r\n\r\n getPeopleFiltered(searchParam, usertimezone): Observable {\r\n const params = new HttpParams()\r\n .set('searchParam', searchParam)\r\n .set('usertimezone', this.getTimezoneName());\r\n return this.http.get(this.exchangeURL + '/getUsers', {params: params}).pipe(map((result) => result.people));\r\n }\r\n\r\n getUsersByEmails(addresses: string[], usertimezone): Observable {\r\n const params = new HttpParams()\r\n .set('addresses', addresses.join(','))\r\n .set('usertimezone', this.getTimezoneName());\r\n return this.http.get(this.exchangeURL + '/getUsersByEmails', {params: params});\r\n }\r\n\r\n getLocations(usertimezone): Observable {\r\n const params = new HttpParams()\r\n .set('usertimezone', this.getTimezoneName());\r\n return this.http.get(this.exchangeURL + '/getRooms', {params: params});\r\n }\r\n\r\n getMeetingDetailsFromCRM(exchangeMeetingId: string): Observable {\r\n const params = new HttpParams().set('exchangeMeetingId', exchangeMeetingId);\r\n return this.http.get(this.morseURL + '/GetMeetingDetailsFromCRM', {params: params}).pipe(map((result) => JSON.parse(result)));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { RepAgency } from '../models/RepAgency';\r\nimport { EndUser } from '../models/EndUser';\r\nimport { Distributor } from '../models/Distributor';\r\nimport { CustomerType } from '../models/enums/CustomerType';\r\nimport { SelectListItem } from '../models/SelectListItem';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { map } from 'rxjs/operators';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ListService {\r\n private url: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n behaviorSubjectService: BehaviorSubjectService,\r\n ) {\r\n behaviorSubjectService.morseAPISubject.subscribe(url => {\r\n this.url = url;\r\n });\r\n }\r\n\r\n getStates(countryId): Observable {\r\n const url = `${this.url}/GetStates`;\r\n const params = new HttpParams().set('countryId', countryId);\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n getCountries(): Observable {\r\n const url = `${this.url}/GetCountries`;\r\n return this.http.get(url);\r\n }\r\n\r\n getPricingPrograms(): Observable {\r\n const url = `${this.url}/GetPricingPrograms`;\r\n return this.http.get(url).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getEndUserClasses(): Observable {\r\n const url = `${this.url}/GetEndUserClass`;\r\n return this.http.get(url);\r\n }\r\n\r\n getSalesPeople(): Observable {\r\n const url = `${this.url}/GetSalesPeople`;\r\n return this.http.get(url).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getAccountLevels(customerType: string): Observable {\r\n if (customerType === 'End User') {\r\n customerType = 'EndUser';\r\n }\r\n const url = `${this.url}/GetAccountLevels`;\r\n const params = new HttpParams().set('type', customerType);\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getContactMethodTypes(): Observable {\r\n const url = `${this.url}/GetContactMethodTypes`;\r\n return this.http.get(url).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getRGAReturnTypes(): Observable {\r\n const url = `${this.url}/GetRgaReturnTypes`;\r\n return this.http.get(url).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getRGATypes(returnTypeId: number): Observable{\r\n const url = `${this.url}/GetRgaTypes`;\r\n const params = new HttpParams().set('returnTypeId', returnTypeId.toString());\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getRGASubTypes(rgaTypeId: number): Observable{\r\n const url = `${this.url}/GetRgaSubTypes`;\r\n const params = new HttpParams().set('rgaTypeId', rgaTypeId.toString());\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n}\r\n","import { Injectable, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { CustomerDetails } from '../models/CustomerDetails';\r\nimport { CustomerListItem } from '../models/CustomerListItem';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuService {\r\n\r\n public customer: CustomerListItem;\r\n /**\r\n * This is a stored value that is updated on every redirect.\r\n */\r\n public publicURL: boolean;\r\n\r\n @Output() customerChange = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n clearCustomer() {\r\n this.setCustomer(null);\r\n }\r\n\r\n setCustomer(customer: CustomerListItem, emit = true) {\r\n this.customer = customer;\r\n if (emit) {\r\n this.customerChange.emit(customer);\r\n }\r\n }\r\n\r\n /**\r\n * Sets and returns menuService.publicURL\r\n */\r\n isPublicURL(): boolean {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n this.publicURL = urlParams.has('public');\r\n return this.publicURL;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { IonicSelectableComponent } from 'ionic-selectable';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MultiSelectService {\r\n\r\n constructor() { }\r\n\r\n clearPreviousSearch(component: IonicSelectableComponent) {\r\n component.searchText = '';\r\n component.items = [];\r\n }\r\n\r\n removeFromSearchResults(event, component: IonicSelectableComponent, form: FormGroup, formControlName: string, idFieldName: string) {\r\n const input = form.get(formControlName);\r\n let selected = input.value;\r\n if (!input.value.find(x => x.address == event.item[idFieldName])) {\r\n (selected as any[]).push(event.item);\r\n input.setValue(selected);\r\n }\r\n // Remove the item from the search results since it is not in the selected results\r\n const items = component.items;\r\n const index = items.findIndex(result => result[idFieldName] == event.item[idFieldName]);\r\n if (index >= 0) {\r\n items.splice(index, 1);\r\n }\r\n }\r\n\r\n removeFromSearchResultsNG(event, component: IonicSelectableComponent, idFieldName: string) {\r\n // Remove the item from the search results since it is not in the selected results\r\n const items = component.items;\r\n const index = items.findIndex(result => result[idFieldName] == event.item[idFieldName]);\r\n if (index >= 0) {\r\n items.splice(index, 1);\r\n }\r\n }\r\n\r\n removeSelected(itemToRemove: any, component: IonicSelectableComponent, form: FormGroup, formControlName: string, idFieldName: string) {\r\n const selectedPeopleInput = form.get(formControlName);\r\n let selected = selectedPeopleInput.value;\r\n const removeIndex = (selected as any[]).findIndex(x => x[idFieldName] == itemToRemove[idFieldName]);\r\n selected.splice(removeIndex, 1);\r\n selectedPeopleInput.setValue(selected);\r\n component.search(component.searchText);\r\n component._selectedItems = selected;\r\n }\r\n\r\n removeSelectedNgModel(itemToRemove: any, component: IonicSelectableComponent, model: any, idFieldName: string) {\r\n let selected = model;\r\n const removeIndex = (selected as any[]).findIndex(x => x[idFieldName] == itemToRemove[idFieldName]);\r\n selected.splice(removeIndex, 1);\r\n model = selected;\r\n component.search(component.searchText);\r\n component._selectedItems = selected;\r\n }\r\n\r\n search(event: {\r\n component: IonicSelectableComponent,\r\n text: string\r\n },\r\n subscription: Subscription,\r\n selectedValues: any,\r\n idFieldName: string,\r\n getFiltered: any) {\r\n const text = event.text.trim().toLowerCase();\r\n event.component.startSearch();\r\n this.manageSubscriptionPreSearch(event, subscription);\r\n subscription = getFiltered(text).subscribe(filteredResults => {\r\n // Subscription will be closed when unsubscribed manually.\r\n if (subscription.closed) {\r\n return;\r\n }\r\n\r\n if (filteredResults) {\r\n // filter already selected from available options\r\n const selected = selectedValues;\r\n selected.map(selectedResult => {\r\n if (filteredResults) {\r\n const index = filteredResults.findIndex(result => result[idFieldName] == selectedResult[idFieldName]);\r\n if (index >= 0) {\r\n filteredResults.splice(index, 1);\r\n }\r\n }\r\n })\r\n }\r\n\r\n event.component.items = filteredResults;\r\n event.component.endSearch();\r\n });\r\n }\r\n\r\n manageSubscriptionPreSearch(event, subscription) {\r\n // Close any running subscription.\r\n if (subscription) {\r\n subscription.unsubscribe();\r\n }\r\n\r\n if (!event.text) {\r\n // Close any running subscription.\r\n if (subscription) {\r\n subscription.unsubscribe();\r\n }\r\n\r\n event.component.items = [];\r\n event.component.endSearch();\r\n return;\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODPHeaderResult } from '../models/ODPHeaderResult';\r\nimport { Order } from '../models/Order';\r\nimport { Quote } from '../models/Quote';\r\nimport { OrderDetail } from '../models/OrderDetail';\r\nimport { CartPopup } from '../models/CartPopup';\r\nimport { TrackingResult } from '../models/TrackingResult';\r\nimport { AlertController } from '@ionic/angular';\r\nimport { SelectListItem } from '../models/SelectListItem';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OdpService {\r\n private url: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n behaviorSubjectService: BehaviorSubjectService,\r\n private alertController: AlertController) {\r\n behaviorSubjectService.morseAPISubject.subscribe(url => { this.url = url; });\r\n }\r\n\r\n setOdpAccountToCustomer(customerNumber: string): Observable {\r\n const url = `${this.url}/SetOdpAccountToCustomer`;\r\n const params = new HttpParams().set('cust', customerNumber);\r\n // const options = httpOptions;\r\n // options['params'] = params;\r\n // options.headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n const options = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json' }),\r\n params: params\r\n };\r\n return this.http.post(url, params, options);\r\n }\r\n\r\n setOdpUserSettings(firstname: string, lastname: string, email: string, units: string): Observable {\r\n const url = `${this.url}/SetOdpUserSettings`;\r\n const params = {\r\n firstname: firstname,\r\n lastname: lastname,\r\n email: email,\r\n units: units\r\n };\r\n const options = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json' }),\r\n params: params\r\n };\r\n return this.http.post(url, params, options);\r\n }\r\n\r\n /*getOpenOrders(user: string, days: number): Observable {\r\n const url = `${this.url}/GetOpenOrders`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: {user: user, days: days.toString()}\r\n };\r\n return this.http.get(url, options).pipe(map((result) => this.formatOrderResponse(result)));\r\n }*/\r\n\r\n getOpenOrders(days: number): Observable {\r\n const url = `${this.url}/GetOpenOrders`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: { days: days.toString() }\r\n };\r\n\r\n return this.http.get(url, options).pipe(map((result) => this.formatOrderResponse(result)));\r\n }\r\n\r\n getOrderDetail(orderId: number, type: string): Observable {\r\n const url = `${this.url}/GetOrderDetails`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: { order: orderId.toString(), type: type }\r\n };\r\n\r\n return this.http.get(url, options);\r\n }\r\n\r\n formatOrderResponse(odpHeaderResults: ODPHeaderResult[]): Order[] {\r\n const mapped = odpHeaderResults.map(x => {\r\n const odpHeader = x as ODPHeaderResult;\r\n // odpHeader.ORDERNUM;\r\n const order: Order = {\r\n carrierName: odpHeader.CARRIERNAME,\r\n customerPONumber: odpHeader.CUSTOMERPO,\r\n date: new Date(odpHeader.DATE),\r\n dueDate: new Date(odpHeader.ORDERDUEDATE),\r\n orderNumber: odpHeader.ORDERNUM.toString(),\r\n plantCode: odpHeader.PLANTCODE,\r\n shipTo: odpHeader.SHIPTONAME,\r\n status: odpHeader.STATUS\r\n };\r\n return order;\r\n });\r\n return mapped;\r\n }\r\n\r\n getOpenQuotes(days: any): Observable {\r\n const url = `${this.url}/GetOpenQuotes`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers,\r\n params: { days: days.toString() }\r\n };\r\n return this.http.get(url, options).pipe(map((result) => this.formatQuoteResponse(result)));\r\n }\r\n\r\n formatQuoteResponse(odpHeaderResults: string): Quote[] {\r\n const parsed = JSON.parse(odpHeaderResults);\r\n const mapped = parsed.map(x => {\r\n const odpHeader = x as ODPHeaderResult;\r\n // odpHeader.ORDERNUM;\r\n const quote: Quote = {\r\n quoteNumber: odpHeader.ORDERNUM.toString(),\r\n plantCode: odpHeader.PLANTCODE,\r\n date: new Date(odpHeader.DATE),\r\n shipTo: odpHeader.SHIPTO,\r\n expires: new Date(odpHeader.EXPIRDATE)\r\n };\r\n return quote;\r\n });\r\n return mapped;\r\n }\r\n\r\n isOdpUser(): Observable {\r\n const url = `${this.url}/IsOdpUser`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers\r\n };\r\n\r\n return this.http.get(url, options);\r\n }\r\n\r\n getTrackingInfo(orderNumber: string): Observable {\r\n const url = `${this.url}/GetTrackingInfo?orderno=${orderNumber}`;\r\n const headers = httpOptions.headers;\r\n const options = {\r\n headers\r\n };\r\n\r\n return this.http.get(url, options);\r\n }\r\n\r\n addToQuote(quoteNumber: number, partNumber: string, quantity: number): Observable {\r\n const url = `${this.url}/AddToQuote`;\r\n const params = new HttpParams({\r\n fromObject: {\r\n 'quotenum': quoteNumber.toString(),\r\n 'part': partNumber,\r\n 'qty': quantity.toString()\r\n }\r\n });\r\n\r\n return this.http.post(url, null, {params});\r\n }\r\n\r\n addBandToQuote(quoteNumber: number, basepart: string, brandcode: string, pkgcode: string, \r\n qty: number, inches: number, mm: number, sparcyn: boolean): Observable {\r\n const url = `${this.url}/AddBandToQuote`;\r\n const paramObj: any = {\r\n 'quotenum': quoteNumber.toString(),\r\n basepart,\r\n brandcode,\r\n pkgcode,\r\n 'qty': qty.toString(),\r\n 'sparcyn': sparcyn\r\n };\r\n if (inches) paramObj.inches = inches.toString();\r\n if (mm) paramObj.mm = mm.toString();\r\n const params = new HttpParams({\r\n fromObject: paramObj\r\n });\r\n\r\n return this.http.post(url, null, {params});\r\n }\r\n\r\n getInventoryPosition(partNumber: string, isBandPart: boolean, plantCode: string): Observable {\r\n const url = `${this.url}/GetInventoryPosition`;\r\n const options = httpOptions;\r\n let params = new HttpParams().set('partNumber', partNumber);\r\n params = params.set('band', isBandPart.toString());\r\n params = params.set('plantcode', plantCode);\r\n options['params'] = params;\r\n return this.http.get(url, options);\r\n }\r\n\r\n getAvailablePlants(): Observable {\r\n const url = `${this.url}/GetAvailablePlants`;\r\n const options = httpOptions;\r\n return this.http.get(url, options);\r\n }\r\n\r\n quoteChangeItem(quoteNumber: number, lineNumber: number, partNumber: string, quantity: number): Observable {\r\n const url = `${this.url}/QuoteChangeItem`;\r\n const params = new HttpParams({\r\n fromObject: {\r\n 'quotenum': quoteNumber.toString(),\r\n 'item': lineNumber.toString(),\r\n 'part': partNumber,\r\n 'qty': quantity.toString()\r\n }\r\n });\r\n\r\n return this.http.post(url, null, {params});\r\n }\r\n\r\n storeNewQuoteMessage() {\r\n sessionStorage.setItem('newQuote', 'true')\r\n }\r\n\r\n displayNewQuoteMessageIfStored() {\r\n if (sessionStorage.getItem('newQuote')) {\r\n this.showModal('Success', 'New quote created. Search parts to add to the new quote.');\r\n sessionStorage.removeItem('newQuote');\r\n }\r\n }\r\n\r\n public setTheme(username: string, theme: string): Observable\r\n {\r\n let params = new HttpParams().set('username', username)\r\n params = params.set('theme', theme);\r\n return this.http.post(`${this.url}/SetThemeByUsername`, { username: username, theme: theme}, {params: params});\r\n }\r\n \r\n async showModal(header, message) {\r\n const alert = await this.alertController.create({\r\n header: header,\r\n // subHeader: 'Subtitle',\r\n message: message,\r\n buttons: ['OK']\r\n });\r\n await alert.present();\r\n }\r\n \r\n}\r\n","import { LocalStorage } from '@ngx-pwa/local-storage';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { Observable } from 'rxjs';\r\nimport { PageInfo } from '../models/PageInfo';\r\nimport { DictKey } from './shared-data.service';\r\nimport { ProductDetails } from '../models/ProductDetails';\r\nimport { GetKitCompResults } from '../models/GetKitCompResults';\r\nimport { GetCompUseList } from '../models/GETCOMPUSELIST';\r\nimport { GetCompUserResults } from '../models/GetCompUserResults';\r\nimport { CatalogFamilyPage } from '../models/CatalogFamilyPage';\r\nimport { FamilyInfo } from '../models/Family';\r\nimport { GroupInfo } from '../models/Group';\r\nimport { PARAMETERS } from '@angular/core/src/util/decorators';\r\nimport { RelatedParts } from '../models/RelatedPart';\r\n\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n // 'Access-Control-Allow-Origin': 'http://localhost:8100'\r\n }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PageService {\r\n private url: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n behaviorSubjectService: BehaviorSubjectService) {\r\n behaviorSubjectService.morseAPISubject.subscribe(url => { this.url = url; });\r\n }\r\n\r\n getPageInfo(): Observable {\r\n const url = `${this.url}/GetPageInfo`;\r\n return this.http.post(url, null);\r\n }\r\n\r\n getBannerMessage(placeholder: string): Observable {\r\n const url = `${this.url}/HomePageBannerMessage`;\r\n const params = new HttpParams().set('message', placeholder);\r\n const options = {\r\n headers: httpOptions.headers,\r\n params: params\r\n };\r\n return this.http.get(url, options);\r\n }\r\n\r\n getFamilyList(): Observable {\r\n const url = `${this.url}/GetFamilyList`;\r\n return this.http.get(url, httpOptions);\r\n }\r\n\r\n getGroupList(familyCode: string): Observable {\r\n const url = `${this.url}/GetGroupList?fam=${familyCode}`;\r\n return this.http.get(url, httpOptions);\r\n }\r\n\r\n getProductList(familyCode: string, groupCode: string): Observable {\r\n const url = `${this.url}/GetProductList?fam=${familyCode}&grp=${groupCode}`;\r\n return this.http.get(url, httpOptions);\r\n }\r\n\r\n getProductDetails(familyCode: string, groupCode: string, productCode: string, extraParams?: any) {\r\n const url = `${this.url}/GetProductDetails?family=${familyCode}&group=${groupCode}&product=${productCode}`;\r\n const params = extraParams ? {...extraParams} : {};\r\n\r\n return this.http.get(url, {\r\n headers: httpOptions.headers,\r\n params: params\r\n });\r\n }\r\n\r\n getProductDetailsPart(partNumber: string): Observable {\r\n const url = `${this.url}/GetProductDetailsPart?part=${partNumber}`;\r\n return this.http.get(url, httpOptions);\r\n }\r\n\r\n getRelatedParts(partNumber: string, uom: string): Observable {\r\n const url = `${this.url}/GetRelatedParts?part=${partNumber}&uom=${uom}`;\r\n return this.http.get(url, httpOptions);\r\n }\r\n \r\n getKitComponents(partNumber: string): Observable {\r\n const url = `${this.url}/GetKitComponents?part=${partNumber}`;\r\n return this.http.get(url, httpOptions);\r\n }\r\n\r\n getKitComponentParts(kitpart: string, kitcomp: string): Observable {\r\n const url = `${this.url}/GetKitComponentParts`;\r\n const params = {};\r\n params['kitpart'] = kitpart;\r\n params['kitcomp'] = kitcomp;\r\n return this.http.get(url, {\r\n headers: httpOptions.headers,\r\n params: params\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SwUpdate } from '@angular/service-worker';\r\n\r\n@Injectable()\r\nexport class PwaService {\r\n promptEvent: any;\r\n\r\n constructor(private swUpdate: SwUpdate) {\r\n swUpdate.available.subscribe(event => {\r\n if (prompt('An update to this app is available. Would you like to refresh this page?')) {\r\n window.location.reload();\r\n }\r\n });\r\n\r\n window.addEventListener('beforeinstallprompt', event => {\r\n this.promptEvent = event;\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { SelectListItem } from '../models/SelectListItem';\r\nimport { map } from 'rxjs/operators';\r\nimport { TerritorySalesperson } from '../models/TerritorySalesperson';\r\nimport { SalesPerson } from '../models/SalesPerson';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SalesService {\r\n private url: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n behaviorSubjectService: BehaviorSubjectService) {\r\n behaviorSubjectService.morseAPISubject.subscribe(url => {this.url = url});\r\n }\r\n\r\n getSalesPeople(): Observable {\r\n const url = `${this.url}/GetSalesPeople`;\r\n let options = httpOptions;\r\n return this.http.get(url, options);\r\n }\r\n\r\n getPermittedTerritories(): Observable {\r\n const url = `${this.url}/GetPermittedTerritories`;\r\n let options = httpOptions;\r\n return this.http.get(url, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getTerritoriesSalespeople(): Observable {\r\n const url = `${this.url}/GetTerritoriesSalespeople`;\r\n let options = httpOptions;\r\n return this.http.get(url, options);\r\n }\r\n}\r\n","import { EventEmitter, Injectable, Output } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { UserSettings } from '../models/UserSettings';\r\nimport { TokenClaims } from '../models/TokenClaims';\r\nimport { Observable } from 'rxjs';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { DrivingDirectionsAppType } from '../models/enums/DrivingDirectionsAppType';\r\nimport { PageInfo } from '../models/PageInfo';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' })\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SettingsService {\r\n private url: string;\r\n public theme: string;\r\n\r\n @Output() themeUpdate = new EventEmitter();\r\n\r\n\r\n constructor(\r\n private http: HttpClient,\r\n behaviorSubjectService: BehaviorSubjectService) {\r\n behaviorSubjectService.membershipRebootAPISubject.subscribe(url => { this.url = url; });\r\n }\r\n\r\n isProfileComplete(): boolean {\r\n const userSettings = this.getUserSettings();\r\n if (userSettings && userSettings.profileComplete && userSettings.profileComplete.toLowerCase() == \"true\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n updateUserSettings(settings: UserSettings) {\r\n const url = this.url + `/UserAccount/Home/Settings`;\r\n return this.http.post(url, settings, httpOptions);\r\n }\r\n\r\n getUserSettings(): TokenClaims {\r\n const token = window.localStorage.getItem('id_token_claims_obj');\r\n if (token) {\r\n return JSON.parse(token) as TokenClaims;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getUserView(): UserView {\r\n if (!this.isLoggedIn()) {\r\n return UserView.NoLogin;\r\n }\r\n const userSettings = this.getUserSettings();\r\n if (userSettings) {\r\n const roles = userSettings.role;\r\n if (roles.includes('endUser')) {\r\n return UserView.EndUser;\r\n } else if (roles.includes('odp') && !roles.includes('sales')) {\r\n return UserView.Distributor;\r\n } else {\r\n return UserView.Sales;\r\n }\r\n } else {\r\n return UserView.NoLogin;\r\n }\r\n }\r\n\r\n themeChanged(newTheme: string, emit = true){\r\n this.theme = newTheme;\r\n if (emit) {\r\n this.themeUpdate.emit(this.theme);\r\n }\r\n }\r\n\r\n getTheme(imgName: string) {\r\n var settings = this.getUserSettings();\r\n let theme = null;\r\n if (settings) {\r\n theme = settings.theme;\r\n }\r\n if (!theme) {\r\n theme = 'light';\r\n }\r\n this.theme = theme;\r\n \r\n if (this.theme === \"light\") {\r\n return `./assets/images/light-theme/${imgName}`;\r\n }\r\n return `./assets/images/dark-theme/${imgName}`;\r\n }\r\n\r\n getLocalTheme\r\n\r\n getUserRoleAnalytics() {\r\n const roles = this.getRoles();\r\n if (this.containsAdminRole(roles)) {\r\n return 'Admin'\r\n } else if (this.isDistributor()) {\r\n return 'Distributor';\r\n } else if (this.containsEndUserRole(roles)) {\r\n return 'EndUser';\r\n } else if (this.containsRepAgentRole(roles)) {\r\n return 'RepAgent';\r\n } else {\r\n return 'Public';\r\n }\r\n }\r\n\r\n isDistributor(): boolean {\r\n return this.getUserView() === UserView.Distributor;\r\n }\r\n\r\n isRepAgent(): boolean {\r\n const roles = this.getRoles();\r\n return this.containsRepAgentRole(roles);\r\n }\r\n\r\n isEndUser(): boolean {\r\n const roles = this.getRoles();\r\n return this.containsEndUserRole(roles);\r\n }\r\n\r\n containsEndUserRole(roles: string[]): boolean {\r\n if(roles.includes('endUser') || roles.includes('enduser')) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n containsRepAgentRole(roles: string[]): boolean {\r\n if (roles.includes('repagent')) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n containsAdminRole(roles: string[]): boolean {\r\n if (roles.includes('Admin')) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n getRoles(): string[] {\r\n const userSettings = this.getUserSettings();\r\n let roles: string[] = [];\r\n if (userSettings) {\r\n roles = userSettings.role;\r\n }\r\n return roles;\r\n }\r\n\r\n isMorseDomain(): boolean {\r\n const userSettings = this.getUserSettings();\r\n // if(userSettings.domain.includes(\"Morse\") || userSettings.domain.includes(\"MKMORSE\") ||\r\n // userSettings.domain.includes(\"morse\") || userSettings.domain.includes(\"MORSE\"))\r\n return userSettings && userSettings.domain === 'MKMORSE';\r\n }\r\n\r\n mapTokenClaimsToUserSettings(claims: TokenClaims): UserSettings {\r\n const userSettings = new UserSettings();\r\n if (claims) {\r\n userSettings.Email = claims.email;\r\n userSettings.Domain = claims.domain;\r\n userSettings.FamilyName = claims.family_name;\r\n userSettings.FirstName = claims.given_name;\r\n userSettings.Language = claims.preferredLanguage;\r\n userSettings.Units = claims.preferredUnitSystem;\r\n userSettings.DrivingDirectionsApp = claims.drivingDirectionsApp;\r\n userSettings.Phone = claims.phone_number;\r\n }\r\n return userSettings;\r\n }\r\n\r\n isLoggedIn(): boolean {\r\n const token = this.getUserSettings();\r\n if (token) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // getUserSettingsIS3(): Observable {\r\n // const url = `https://authdev.mkmorse.com/core/connect/userinfo`;\r\n // return this.http.get(url);\r\n // }\r\n}\r\n\r\nexport enum UserView {\r\n Sales,\r\n Distributor,\r\n EndUser,\r\n NoLogin\r\n}\r\n","import { Injectable, EventEmitter } from '@angular/core';\r\nimport deepEqual from 'deep-equal';\r\nimport { DistributorService } from './distributor.service';\r\nimport { EndUserShoppingCartService } from './end-user-shopping-cart.service';\r\nimport { SettingsService } from './settings.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedDataService {\r\n private dict: Record;\r\n\r\n constructor(\r\n private distributorService: DistributorService,\r\n private endUserShoppingCartService: EndUserShoppingCartService,\r\n private settingsService: SettingsService\r\n ) {\r\n this.dict = {};\r\n }\r\n\r\n setValue(key: string, value: any) {\r\n let data = this.dict[key];\r\n if (data) {\r\n this.checkAndUpdate(key, data, value);\r\n } else {\r\n this.buildDictionaryEntryData(key);\r\n data = this.dict[key];\r\n this.checkAndUpdate(key, data, value);\r\n }\r\n }\r\n\r\n getValue(key: string) {\r\n try {\r\n return this.dict[key].value;\r\n } catch (error) {\r\n return null;\r\n }\r\n }\r\n\r\n getEmitter(key: string) {\r\n let data = this.dict[key];\r\n if (!data) {\r\n this.buildDictionaryEntryData(key);\r\n data = this.dict[key];\r\n }\r\n return data.emitter;\r\n }\r\n\r\n private checkAndUpdate(key: string, data: DictionaryEntryData, value: any) {\r\n if (!deepEqual(data.value, value)) {\r\n data.value = value;\r\n data.emitter.next(value);\r\n console.log(`checkAndUpdate emitted new ${key}:`, value);\r\n }\r\n }\r\n\r\n private buildDictionaryEntryData(key: string) {\r\n const data = new DictionaryEntryData();\r\n data.emitter = new EventEmitter();\r\n this.dict[key] = data;\r\n }\r\n\r\n getCurrentCartQuoteNumber() {\r\n var cartCountArray = this.getValue(DictKey.CartCountArray);\r\n if (cartCountArray) {\r\n return cartCountArray[0];\r\n }\r\n }\r\n\r\n getCurrentCartItemCount() {\r\n var cartCountArray = this.getValue(DictKey.CartCountArray);\r\n if (cartCountArray && cartCountArray.length > 1) {\r\n return cartCountArray[1];\r\n }\r\n }\r\n\r\n fetchCartCount() {\r\n var isEndUser = this.settingsService.isEndUser();\r\n if (isEndUser) {\r\n const username = this.settingsService.getUserSettings().username;\r\n this.endUserShoppingCartService.getActiveCart(username)\r\n .subscribe(cartId => {\r\n this.getCartCountEndUser(cartId);\r\n })\r\n } else {\r\n this.distributorService.getCartCountArray(null).subscribe(cartInfo => {\r\n this.setValue(DictKey.CartCountArray, cartInfo);\r\n });\r\n }\r\n }\r\n\r\n getCartCountEndUser(cartId: number) {\r\n this.endUserShoppingCartService.getCartItemCount(cartId)\r\n .subscribe(count => {\r\n // Value format is [quotenum, count]\r\n this.setValue(DictKey.CartCountArray, [cartId, count]);\r\n })\r\n }\r\n}\r\n\r\nclass DictionaryEntryData {\r\n value: any;\r\n emitter: EventEmitter;\r\n}\r\n\r\nexport enum DictKey {\r\n AppPageInfo = 'appPageInfo',\r\n SearchText = 'searchText',\r\n BannerHTML = 'bannerHTML',\r\n OrderType = 'orderType', // 0 to go to quotes tab, 1 to go to orders tab\r\n CartCountArray = 'cartCountArray' // [quotenum, count]\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { SettingsService } from './settings.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedService {\r\n\r\n constructor(\r\n private router: Router,\r\n private behaviorSubjectService: BehaviorSubjectService,\r\n private settingsService: SettingsService\r\n ) { }\r\n\r\n redirectHome(isPublicURL: boolean) {\r\n const homeURL = this.getHomeURL(isPublicURL);\r\n if (isPublicURL) {\r\n window.location.href = homeURL;\r\n } else {\r\n this.redirect(homeURL);\r\n }\r\n }\r\n\r\n getHomeURL(isPublicURL: boolean): string {\r\n if (isPublicURL) {\r\n this.behaviorSubjectService.mkMorsePublicHomeUrlSubject.subscribe(url => {\r\n return url;\r\n });\r\n }\r\n else if (this.settingsService.isDistributor()) {\r\n return 'distributor-home';\r\n } else if (this.settingsService.isEndUser()) {\r\n return 'product-catalog';\r\n } else {\r\n // internal users now redirect to product-catalog due to calendar/task feature removal (8/23/23)\r\n return 'product-catalog';\r\n }\r\n }\r\n\r\n redirect(route: string) {\r\n this.router.navigate([route]);\r\n }\r\n\r\n /**\r\n * ex. a=20mm b=16mm returns 20-16\r\n */\r\n compareNumberStringsWithUnits(a: string, b: string): number {\r\n if (!a) {\r\n return -1;\r\n } else if (!b) {\r\n return 1;\r\n }\r\n if (a.indexOf('\\\"') !== -1 && b.indexOf('\\\"') !== -1) {\r\n const aVal = this.getNumberFromInchString(a);\r\n const bVal = this.getNumberFromInchString(b);\r\n // console.log(`getNumberFromInchString: ${a} -> ${aVal}`);\r\n return aVal - bVal;\r\n }\r\n a = a.replace(/\\D/g, '');\r\n b = b.replace(/\\D/g, '');\r\n return (+a) - (+b);\r\n }\r\n\r\n /**\r\n * 5-3/4\" -> 5.75\r\n */\r\n getNumberFromInchString(s: string): number {\r\n const dashIdx = s.indexOf('-');\r\n const slashIdx = s.indexOf('/');\r\n if (dashIdx === -1 || slashIdx === -1) return +(s.replace(/\\D/g, ''));\r\n const num = s.substring(0, dashIdx);\r\n const numer = s.substring(dashIdx + 1, slashIdx);\r\n let denom = s.substring(slashIdx + 1);\r\n denom = denom.replace(/\\D/g, '');\r\n return (+num) + (+numer) / (+denom);\r\n }\r\n\r\n}\r\n","import { Injectable, EventEmitter } from '@angular/core';\r\nimport { Task } from './../models/Task';\r\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DatePipe } from '@angular/common';\r\nimport { PagedResult } from '../models/PagedResult';\r\nimport { map } from 'rxjs/operators';\r\nimport { UserSettings } from 'src/app/models/UserSettings';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' })\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TaskService {\r\n\r\n public taskNotificationCountUpdate: EventEmitter = new EventEmitter();\r\n private url: string;\r\n private morseApiUrl: string;\r\n private urlSuffix = 'api/task'; // URL to web api\r\n\r\n constructor(\r\n private http: HttpClient,\r\n behaviorSubjectService: BehaviorSubjectService,\r\n // private userSettings: UserSettings,\r\n private datePipe: DatePipe) {\r\n behaviorSubjectService.exchangeAPISubject.subscribe(url => {\r\n this.url = url + `/${this.urlSuffix}`; // this.url = `http://localhost:64603/${this.urlSuffix}`;\r\n });\r\n behaviorSubjectService.morseAPISubject.subscribe(url => {\r\n this.morseApiUrl = url; // this.url = `http://localhost:64603/${this.urlSuffix}`;\r\n });\r\n }\r\n\r\n getTaskNotificationEmitter() {\r\n return this.taskNotificationCountUpdate;\r\n }\r\n\r\n getTask() {\r\n const task = new Task();\r\n return task;\r\n }\r\n\r\n addTask(taskToAdd: Task) {\r\n return this.http.post(this.url + '/addTask', taskToAdd, httpOptions);\r\n }\r\n\r\n getCurrentUserTasks(startdate: Date, enddate: Date, status: number): Observable {\r\n const start = this.datePipe.transform(startdate, 'MM/dd/yyyy');\r\n const end = this.datePipe.transform(enddate, 'MM/dd/yyyy');\r\n const params = new HttpParams().set('startdate', start).set('enddate', end).set('status', status != null ? status.toString() : null);\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http.get(this.url + '/GetCurrentUserTasks', options);\r\n }\r\n\r\n getUserAssignedTasks(startdate: Date, enddate: Date, status: number): Observable {\r\n const start = this.datePipe.transform(startdate, 'MM/dd/yyyy');\r\n const end = this.datePipe.transform(enddate, 'MM/dd/yyyy');\r\n const params = new HttpParams().set('startdate', start).set('enddate', end).set('status', status != null ? status.toString() : null);\r\n const options = httpOptions;\r\n options['params'] = params;\r\n return this.http.get(this.morseApiUrl + '/GetUserAssignedTasks', options)\r\n .pipe(map((result) => this.formatUserAssignedTasks(result)));\r\n }\r\n\r\n formatUserAssignedTasks(result): PagedResult {\r\n const dataArray = JSON.parse(result);\r\n const total = dataArray.length;\r\n result = new PagedResult;\r\n result.Data = dataArray;\r\n result.Total = total;\r\n return result;\r\n }\r\n\r\n updateTask(taskToUpdate: Task) {\r\n return this.http.post(this.url + '/updateTask', taskToUpdate, httpOptions);\r\n }\r\n\r\n deleteTask(taskToDelete: Task) {\r\n return this.http.post(this.url + '/deleteTask', taskToDelete, httpOptions);\r\n }\r\n\r\n refreshTaskNotificationCount() {\r\n this.http.get(this.url + '/getTaskNotificationCount').subscribe(count => {\r\n this.taskNotificationCountUpdate.emit(count);\r\n }, er => console.log('ERROR: refreshTaskNotificationCount', er));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { BehaviorSubjectService } from './behavior-subject.service';\r\nimport { SelectListItem } from '../models/SelectListItem';\r\nimport { map } from 'rxjs/operators';\r\nimport { CompetitiveXRefSearchResult } from '../models/CompetitiveXRefSearchResult';\r\nimport { CompetitiveXRefSearchParams } from '../models/CompetitiveXRefSearchParams';\r\nimport { ProductCrossoverView } from '../models/CompetitiveCrossreferenceRecentlyViewed';\r\nimport { CompetitiveXRefSearchHistory } from '../models/CompetitiveCrossReferenceSearchHitsory';\r\nimport { DatePipe } from '@angular/common';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToolsService {\r\n\r\n private url: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private datePipe: DatePipe,\r\n behaviorSubjectService: BehaviorSubjectService) {\r\n behaviorSubjectService.morseAPISubject.subscribe(url => {this.url = url; });\r\n }\r\n\r\n getCompetitors(searchObjects: CompetitiveXRefSearchParams): Observable {\r\n const url = `${this.url}/getCompetitors`;\r\n const options = httpOptions;\r\n return this.http.post(url, searchObjects, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getCompetitorBrands(searchObjects: CompetitiveXRefSearchParams): Observable {\r\n const url = `${this.url}/getCompetitorBrands`;\r\n const options = httpOptions;\r\n return this.http.post(url, searchObjects, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getCompetitorBladeDescriptions(searchObjects: CompetitiveXRefSearchParams): Observable {\r\n const url = `${this.url}/getCompetitorBladeDescriptions`;\r\n const options = httpOptions;\r\n return this.http.post(url, searchObjects, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getCompetitorPartNumbers(searchObjects: CompetitiveXRefSearchParams): Observable {\r\n const url = `${this.url}/getCompetitorPartNumbers`;\r\n const options = httpOptions;\r\n return this.http.post(url, searchObjects, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getProductCategories(searchObjects: CompetitiveXRefSearchParams): Observable {\r\n const url = `${this.url}/getProductCategories`;\r\n const options = httpOptions;\r\n return this.http.post(url, searchObjects, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getCrossOverTypes(searchObjects: CompetitiveXRefSearchParams): Observable {\r\n const url = `${this.url}/getCrossOverTypes`;\r\n const options = httpOptions;\r\n return this.http.post(url, searchObjects, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getMorseCrossOvers(searchObjects: CompetitiveXRefSearchParams): Observable {\r\n const url = `${this.url}/getMorseCrossOvers`;\r\n const options = httpOptions;\r\n return this.http.post(url, searchObjects, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getMorseModelNumbers(searchObjects: CompetitiveXRefSearchParams): Observable {\r\n const url = `${this.url}/getMorseModelNumbers`;\r\n const options = httpOptions;\r\n return this.http.post(url, searchObjects, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getMorsePartNumbers(searchObjects: CompetitiveXRefSearchParams): Observable {\r\n const url = `${this.url}/getMorsePartNumbers`;\r\n const options = httpOptions;\r\n return this.http.post(url, searchObjects, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n searchProductCrossoverDBFilterWithTypes(searchObjects: CompetitiveXRefSearchParams): Observable {\r\n const url = `${this.url}/SearchProductCrossoverDBFilterWithTypes`;\r\n const options = httpOptions;\r\n return this.http.post(url, searchObjects, options).pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getProductCrossoverById(id: number): Observable {\r\n return this.http.get(this.url + '/GetProductCrossoverById',\r\n {\r\n params: {id: id.toString()}\r\n }\r\n ).pipe(map((result) => {\r\n const thing = Object.assign(new CompetitiveXRefSearchResult(), JSON.parse(result)) as CompetitiveXRefSearchResult;\r\n thing.Other_Information = thing.Other_Information.trim();\r\n return thing;\r\n }));\r\n }\r\n\r\n getAllDropdownLists(searchObjects: CompetitiveXRefSearchParams): Observable> {\r\n return this.http.post(this.url + '/GetAllCrossrefDropdowns', JSON.stringify(searchObjects), httpOptions)\r\n .pipe(map((result) => JSON.parse(result)));\r\n }\r\n\r\n getCXRefRecentSearchParamsHistory(): Observable {\r\n return this.http.post(this.url + '/GetRecentSearchParamsHistory', httpOptions)\r\n }\r\n\r\n getCXRefRecentlyVisitedItems(): Observable {\r\n return this.http.post(this.url + '/GetRecentlyVisitedItems', httpOptions)\r\n }\r\n\r\n getCXRefSearchParamsHistory(startDate: Date, endDate: Date): Observable {\r\n var params = {\r\n fromDate: startDate,\r\n toDate: endDate\r\n }\r\n return this.http.post\r\n (this.url + '/GetSearchParamsHistory?fromDate=' + this.datePipe.transform(startDate, 'MM-dd-yyyy') + '&toDate=' + this.datePipe.transform(endDate, 'MM-dd-yyyy'), params, httpOptions)\r\n }\r\n\r\n getCXRefVisitedItems(startDate: Date, endDate: Date): Observable {\r\n var params = {\r\n fromDate: startDate,\r\n toDate: endDate\r\n }\r\n return this.http.post(this.url + '/GetVisitedItems?fromDate=' + this.datePipe.transform(startDate, 'MM-dd-yyyy') + '&toDate=' + this.datePipe.transform(endDate, 'MM-dd-yyyy'), params, httpOptions)\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 { FooterComponent } from '../secondary-components/footer/footer.component';\r\nimport { HeaderComponent } from '../secondary-components/header/header.component';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport { NotificationComponent } from '../secondary-components/notification/notification.component';\r\nimport { AutosizeModule } from 'ngx-autosize';\r\nimport { FilesComponent } from '../components/files/files.component';\r\nimport { CustomerFooterComponent } from '../secondary-components/customer-footer/customer-footer.component';\r\nimport { CustomerSearch } from 'src/app/components/customer-search/customer-search.component';\r\nimport { AutoCompleteComponent } from '../components/auto-complete/auto-complete.component';\r\nimport { BoldPrefix } from '../pipes/bold-prefix.pipe';\r\nimport { PopoverSalesDrillComponent } from '../components/popover-sales-drill/popover-sales-drill.component';\r\nimport { UpdateCustomerPage } from './../components/update-customer/update-customer';\r\nimport { CartDropdownComponent } from '../secondary-components/cart-dropdown/cart-dropdown.component';\r\nimport { GroupComponent } from '../components/group/group.component';\r\nimport { ProfileDropdownComponent } from '../secondary-components/header/profile-dropdown/profile-dropdown.component';\r\nimport { InvoiceAmountPipe } from '../pipes/invoice-amount.pipe';\r\nimport { BreakInComponent } from '../components/blade-wizard/break-in/break-in.component';\r\nimport { PortaBladeLwtPipe } from '../pipes/porta-blade-lwt.pipe';\r\nimport { BladeUnitCardComponent } from '../components/bladewizard-cards/blade-unit-card/blade-unit-card.component';\r\nimport { FamilyComponent } from '../components/family/family.component';\r\nimport { RulerSlideComponent } from '../secondary-components/ruler-slide/ruler-slide-component';\r\nimport { SprcHelpComponent } from '../components/sprc-help/sprc-help.component';\r\n\r\nexport function createTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerSearch,\r\n FooterComponent,\r\n HeaderComponent,\r\n NotificationComponent,\r\n FilesComponent,\r\n AutoCompleteComponent,\r\n BoldPrefix,\r\n InvoiceAmountPipe,\r\n PortaBladeLwtPipe,\r\n CustomerFooterComponent,\r\n PopoverSalesDrillComponent,\r\n UpdateCustomerPage,\r\n FamilyComponent,\r\n GroupComponent,\r\n CartDropdownComponent,\r\n ProfileDropdownComponent,\r\n BreakInComponent,\r\n BladeUnitCardComponent,\r\n RulerSlideComponent,\r\n SprcHelpComponent\r\n ],\r\n imports: [\r\n AutosizeModule,\r\n CommonModule,\r\n IonicModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TranslateModule.forChild({ loader: { // <--- add this\r\n provide: TranslateLoader, // <--- add this\r\n useFactory: (createTranslateLoader), // <--- add this\r\n deps: [HttpClient] // <--- add this\r\n } })\r\n ],\r\n exports: [\r\n CustomerSearch,\r\n NotificationComponent,\r\n IonicModule,\r\n AutosizeModule,\r\n FooterComponent,\r\n HeaderComponent,\r\n TranslateModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FilesComponent,\r\n AutoCompleteComponent,\r\n CustomerFooterComponent,\r\n FamilyComponent,\r\n GroupComponent,\r\n PopoverSalesDrillComponent,\r\n UpdateCustomerPage,\r\n InvoiceAmountPipe,\r\n PortaBladeLwtPipe,\r\n CartDropdownComponent,\r\n ProfileDropdownComponent,\r\n BreakInComponent,\r\n BladeUnitCardComponent,\r\n RulerSlideComponent,\r\n SprcHelpComponent\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n\r\n constructor(\r\n private injector: Injector\r\n ) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n const token = localStorage.getItem('access_token');\r\n if (token) {\r\n const authRequest = request.clone({\r\n headers: request.headers.set('Authorization', `Bearer ${token}`)\r\n });\r\n\r\n return next.handle(authRequest);\r\n } else {\r\n return next.handle(request);\r\n }\r\n\r\n }\r\n}\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};\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';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule).then(() => {\r\n if ('serviceWorker' in navigator && environment.production) {\r\n navigator.serviceWorker.register('/ngsw-worker.js');\r\n }\r\n}).catch(err => console.log(err));\r\n","/* (ignored) */"],"sourceRoot":""}