{"version":3,"sources":["webpack:///./node_modules/core-js/es6/reflect.js","webpack:///./node_modules/core-js/es7/reflect.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_array-from-iterable.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_bind.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_metadata.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_own-keys.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/es6.reflect.apply.js","webpack:///./node_modules/core-js/modules/es6.reflect.construct.js","webpack:///./node_modules/core-js/modules/es6.reflect.define-property.js","webpack:///./node_modules/core-js/modules/es6.reflect.delete-property.js","webpack:///./node_modules/core-js/modules/es6.reflect.enumerate.js","webpack:///./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.reflect.get.js","webpack:///./node_modules/core-js/modules/es6.reflect.has.js","webpack:///./node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack:///./node_modules/core-js/modules/es6.reflect.own-keys.js","webpack:///./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack:///./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.reflect.set.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/es7.reflect.define-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.delete-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.metadata.js","webpack:///./node_modules/zone.js/dist/zone.js","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/components/addedproductlist/addedproductlist.component.css","webpack:///./src/app/components/addedproductlist/addedproductlist.component.html","webpack:///./src/app/components/addedproductlist/addedproductlist.component.ts","webpack:///./src/app/components/ap_card/ap_card.component.css","webpack:///./src/app/components/ap_card/ap_card.component.html","webpack:///./src/app/components/ap_card/ap_card.component.ts","webpack:///./src/app/components/ap_search_box/ap_search_box.component.css","webpack:///./src/app/components/ap_search_box/ap_search_box.component.html","webpack:///./src/app/components/ap_search_box/ap_search_box.component.ts","webpack:///./src/app/components/ap_selected_list/ap_selected_list.component.css","webpack:///./src/app/components/ap_selected_list/ap_selected_list.component.html","webpack:///./src/app/components/ap_selected_list/ap_selected_list.component.ts","webpack:///./src/app/components/ap_validator/ap_validator.component.css","webpack:///./src/app/components/ap_validator/ap_validator.component.html","webpack:///./src/app/components/ap_validator/ap_validator.component.ts","webpack:///./src/app/components/autocomplete/typeahead-basic.html","webpack:///./src/app/components/autocomplete/typeahead-basic.ts","webpack:///./src/app/components/cartsummary/cartsummary.component.css","webpack:///./src/app/components/cartsummary/cartsummary.component.html","webpack:///./src/app/components/cartsummary/cartsummary.component.ts","webpack:///./src/app/components/fac_analyzer/fac_analyzer.component.css","webpack:///./src/app/components/fac_analyzer/fac_analyzer.component.html","webpack:///./src/app/components/fac_analyzer/fac_analyzer.component.ts","webpack:///./src/app/components/fac_controller/fac_controller.component.css","webpack:///./src/app/components/fac_controller/fac_controller.component.html","webpack:///./src/app/components/fac_controller/fac_controller.component.ts","webpack:///./src/app/components/fac_dynamics_sync/fac_dynamics_sync.component.css","webpack:///./src/app/components/fac_dynamics_sync/fac_dynamics_sync.component.html","webpack:///./src/app/components/fac_dynamics_sync/fac_dynamics_sync.component.ts","webpack:///./src/app/components/fac_editables_card/fac_editables_card.component.css","webpack:///./src/app/components/fac_editables_card/fac_editables_card.component.html","webpack:///./src/app/components/fac_editables_card/fac_editables_card.component.ts","webpack:///./src/app/components/fac_editables_form/fac_editables_form.component.css","webpack:///./src/app/components/fac_editables_form/fac_editables_form.component.html","webpack:///./src/app/components/fac_editables_form/fac_editables_form.component.ts","webpack:///./src/app/components/fac_editor_stats/fac_editor_stats.component.css","webpack:///./src/app/components/fac_editor_stats/fac_editor_stats.component.html","webpack:///./src/app/components/fac_editor_stats/fac_editor_stats.component.ts","webpack:///./src/app/components/fac_farmacias_search_box/fac_farmacias_search_box.component.css","webpack:///./src/app/components/fac_farmacias_search_box/fac_farmacias_search_box.component.html","webpack:///./src/app/components/fac_farmacias_search_box/fac_farmacias_search_box.component.ts","webpack:///./src/app/components/fac_header/fac_header.component.css","webpack:///./src/app/components/fac_header/fac_header.component.html","webpack:///./src/app/components/fac_header/fac_header.component.ts","webpack:///./src/app/components/fac_image/fac_image.component.css","webpack:///./src/app/components/fac_image/fac_image.component.html","webpack:///./src/app/components/fac_image/fac_image.component.ts","webpack:///./src/app/components/fac_new_image/fac_new_image.component.css","webpack:///./src/app/components/fac_new_image/fac_new_image.component.html","webpack:///./src/app/components/fac_new_image/fac_new_image.component.ts","webpack:///./src/app/components/facturas_search/facturas_review/factura-modal/factura_modal.component.css","webpack:///./src/app/components/facturas_search/facturas_review/factura-modal/factura_modal.component.html","webpack:///./src/app/components/facturas_search/facturas_review/factura-modal/factura_modal.component.ts","webpack:///./src/app/components/facturas_search/facturas_review/factura-modal/factura_modal_content.component.html","webpack:///./src/app/components/facturas_search/facturas_review/factura-modal/factura_modal_content.component.ts","webpack:///./src/app/components/facturas_search/facturas_review/factura_detail_form/factura_detail_form.component.css","webpack:///./src/app/components/facturas_search/facturas_review/factura_detail_form/factura_detail_form.component.html","webpack:///./src/app/components/facturas_search/facturas_review/factura_detail_form/factura_detail_form.component.ts","webpack:///./src/app/components/facturas_search/facturas_review/input_boxes/input_dropdown/input_dropdown.component.css","webpack:///./src/app/components/facturas_search/facturas_review/input_boxes/input_dropdown/input_dropdown.component.html","webpack:///./src/app/components/facturas_search/facturas_review/input_boxes/input_dropdown/input_dropdown.component.ts","webpack:///./src/app/components/facturas_search/facturas_review/input_boxes/input_textbox/input_textbox.component.css","webpack:///./src/app/components/facturas_search/facturas_review/input_boxes/input_textbox/input_textbox.component.html","webpack:///./src/app/components/facturas_search/facturas_review/input_boxes/input_textbox/input_textbox.component.ts","webpack:///./src/app/components/facturas_search/facturas_search_boxes/facturas_search_boxes.component.css","webpack:///./src/app/components/facturas_search/facturas_search_boxes/facturas_search_boxes.component.html","webpack:///./src/app/components/facturas_search/facturas_search_boxes/facturas_search_boxes.component.ts","webpack:///./src/app/components/facturas_search/facturas_search_results/facturas_search_results.component.css","webpack:///./src/app/components/facturas_search/facturas_search_results/facturas_search_results.component.html","webpack:///./src/app/components/facturas_search/facturas_search_results/facturas_search_results.component.ts","webpack:///./src/app/components/facturas_search/search_boxes/country_dropdown/country_dropdown.component.css","webpack:///./src/app/components/facturas_search/search_boxes/country_dropdown/country_dropdown.component.html","webpack:///./src/app/components/facturas_search/search_boxes/country_dropdown/country_dropdown.component.ts","webpack:///./src/app/components/facturas_search/search_boxes/date_picker/date_picker.component.css","webpack:///./src/app/components/facturas_search/search_boxes/date_picker/date_picker.component.html","webpack:///./src/app/components/facturas_search/search_boxes/date_picker/date_picker.component.ts","webpack:///./src/app/components/facturas_search/search_boxes/generic_dropdown/generic_dropdown.component.css","webpack:///./src/app/components/facturas_search/search_boxes/generic_dropdown/generic_dropdown.component.html","webpack:///./src/app/components/facturas_search/search_boxes/generic_dropdown/generic_dropdown.component.ts","webpack:///./src/app/components/facturas_search/search_boxes/pharmacy_dropdown/pharmacy_dropdown.component.css","webpack:///./src/app/components/facturas_search/search_boxes/pharmacy_dropdown/pharmacy_dropdown.component.html","webpack:///./src/app/components/facturas_search/search_boxes/pharmacy_dropdown/pharmacy_dropdown.component.ts","webpack:///./src/app/components/facturas_search/search_boxes/priority_dropdown/priority_dropdown.component.css","webpack:///./src/app/components/facturas_search/search_boxes/priority_dropdown/priority_dropdown.component.html","webpack:///./src/app/components/facturas_search/search_boxes/priority_dropdown/priority_dropdown.component.ts","webpack:///./src/app/components/facturas_search/search_boxes/status_dropdown/status_dropdown.component.css","webpack:///./src/app/components/facturas_search/search_boxes/status_dropdown/status_dropdown.component.html","webpack:///./src/app/components/facturas_search/search_boxes/status_dropdown/status_dropdown.component.ts","webpack:///./src/app/components/header/haeder.component.ts","webpack:///./src/app/components/header/header.component.css","webpack:///./src/app/components/header/header.component.html","webpack:///./src/app/components/nap_card/nap_card.component.css","webpack:///./src/app/components/nap_card/nap_card.component.html","webpack:///./src/app/components/nap_card/nap_card.component.ts","webpack:///./src/app/components/nap_search_box/nap_search_box.component.css","webpack:///./src/app/components/nap_search_box/nap_search_box.component.html","webpack:///./src/app/components/nap_search_box/nap_search_box.component.ts","webpack:///./src/app/components/nap_selected_list/nap_selected_list.component.css","webpack:///./src/app/components/nap_selected_list/nap_selected_list.component.html","webpack:///./src/app/components/nap_selected_list/nap_selected_list.component.ts","webpack:///./src/app/components/nap_validator/nap_validator.component.css","webpack:///./src/app/components/nap_validator/nap_validator.component.html","webpack:///./src/app/components/nap_validator/nap_validator.component.ts","webpack:///./src/app/components/productform/productform.component.css","webpack:///./src/app/components/productform/productform.component.html","webpack:///./src/app/components/productform/productform.component.ts","webpack:///./src/app/components/productsearch/productsearch.component.css","webpack:///./src/app/components/productsearch/productsearch.component.html","webpack:///./src/app/components/productsearch/productsearch.component.ts","webpack:///./src/app/components/productslist/productslist.component.css","webpack:///./src/app/components/productslist/productslist.component.html","webpack:///./src/app/components/productslist/productslist.component.ts","webpack:///./src/app/components/receiptdetails/receiptinfo/receiptinfo.component.css","webpack:///./src/app/components/receiptdetails/receiptinfo/receiptinfo.component.html","webpack:///./src/app/components/receiptdetails/receiptinfo/receiptinfo.component.ts","webpack:///./src/app/components/receiptdetails/receiptproducts/receiptproducts.component.css","webpack:///./src/app/components/receiptdetails/receiptproducts/receiptproducts.component.html","webpack:///./src/app/components/receiptdetails/receiptproducts/receiptproducts.component.ts","webpack:///./src/app/components/receiptimage/receiptimage.component.css","webpack:///./src/app/components/receiptimage/receiptimage.component.html","webpack:///./src/app/components/receiptimage/receiptimage.component.ts","webpack:///./src/app/components/rejectionform/rejectionform.component.css","webpack:///./src/app/components/rejectionform/rejectionform.component.html","webpack:///./src/app/components/rejectionform/rejectionform.component.ts","webpack:///./src/app/components/rejectionreasonsdropdown/rejectionreasondropdown.component.css","webpack:///./src/app/components/rejectionreasonsdropdown/rejectionreasondropdown.component.html","webpack:///./src/app/components/rejectionreasonsdropdown/rejectoionreasondropdown.component.ts","webpack:///./src/app/components/revisionimage/revisionimage.component.css","webpack:///./src/app/components/revisionimage/revisionimage.component.html","webpack:///./src/app/components/revisionimage/revisionimage.component.ts","webpack:///./src/app/components/selectedproductstable/selectedproductstable.component.css","webpack:///./src/app/components/selectedproductstable/selectedproductstable.component.html","webpack:///./src/app/components/selectedproductstable/selectedproductstable.component.ts","webpack:///./src/app/components/suggestedproductstable/suggestedproductstable.component.css","webpack:///./src/app/components/suggestedproductstable/suggestedproductstable.component.html","webpack:///./src/app/components/suggestedproductstable/suggestedproductstable.component.ts","webpack:///./src/app/models/facturas_search.ts","webpack:///./src/app/models/product.ts","webpack:///./src/app/models/productadded.ts","webpack:///./src/app/models/receipt-approval-request.ts","webpack:///./src/app/models/receipt-rejection-request.ts","webpack:///./src/app/pages/cartsimulator/cartsimulator.component.css","webpack:///./src/app/pages/cartsimulator/cartsimulator.component.html","webpack:///./src/app/pages/cartsimulator/cartsimulator.component.ts","webpack:///./src/app/pages/facturas_search_page/facturas_search_page.component.css","webpack:///./src/app/pages/facturas_search_page/facturas_search_page.component.html","webpack:///./src/app/pages/facturas_search_page/facturas_search_page.component.ts","webpack:///./src/app/pages/receipt/receipt.component.css","webpack:///./src/app/pages/receipt/receipt.component.html","webpack:///./src/app/pages/receipt/receipt.component.ts","webpack:///./src/app/pages/receiptdetails/receiptdetailspage.component.css","webpack:///./src/app/pages/receiptdetails/receiptdetailspage.component.html","webpack:///./src/app/pages/receiptdetails/receiptdetailspage.component.ts","webpack:///./src/app/pages/receiptpos/receiptpos.component.css","webpack:///./src/app/pages/receiptpos/receiptpos.component.html","webpack:///./src/app/pages/receiptpos/receiptpos.component.ts","webpack:///./src/app/pages/receiptrevision/receiptrevision.component.css","webpack:///./src/app/pages/receiptrevision/receiptrevision.component.html","webpack:///./src/app/pages/receiptrevision/receiptrevision.component.ts","webpack:///./src/app/pages/revision_factura/revision_factura_page.component.css","webpack:///./src/app/pages/revision_factura/revision_factura_page.component.html","webpack:///./src/app/pages/revision_factura/revision_factura_page.component.ts","webpack:///./src/app/pages/welcome/welcome.component.css","webpack:///./src/app/pages/welcome/welcome.component.html","webpack:///./src/app/pages/welcome/welcome.component.ts","webpack:///./src/app/pipes/otherproductsfilter.ts","webpack:///./src/app/pipes/productsfilter.ts","webpack:///./src/app/services/cache.service.ts","webpack:///./src/app/services/demo.service.ts","webpack:///./src/app/services/dynamics.service.ts","webpack:///./src/app/services/messagingservice.ts","webpack:///./src/app/services/receipt.service.ts","webpack:///./src/app/services/shared_data.service.ts","webpack:///./src/app/services/token.service.ts","webpack:///./src/app/utilities.ts","webpack:///./src/environments/environment.prod.ts","webpack:///./src/main.ts","webpack:///./src/polyfills.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mBAAO,CAAC,yFAA8B;AACtC,mBAAO,CAAC,iGAAkC;AAC1C,mBAAO,CAAC,6GAAwC;AAChD,mBAAO,CAAC,6GAAwC;AAChD,mBAAO,CAAC,iGAAkC;AAC1C,mBAAO,CAAC,qFAA4B;AACpC,mBAAO,CAAC,qIAAoD;AAC5D,mBAAO,CAAC,+GAAyC;AACjD,mBAAO,CAAC,qFAA4B;AACpC,mBAAO,CAAC,yGAAsC;AAC9C,mBAAO,CAAC,+FAAiC;AACzC,mBAAO,CAAC,mHAA2C;AACnD,mBAAO,CAAC,qFAA4B;AACpC,mBAAO,CAAC,+GAAyC;AACjD,iBAAiB,mBAAO,CAAC,iEAAkB;;;;;;;;;;;;ACd3C,mBAAO,CAAC,6GAAwC;AAChD,mBAAO,CAAC,6GAAwC;AAChD,mBAAO,CAAC,uGAAqC;AAC7C,mBAAO,CAAC,iHAA0C;AAClD,mBAAO,CAAC,+GAAyC;AACjD,mBAAO,CAAC,yHAA8C;AACtD,mBAAO,CAAC,uGAAqC;AAC7C,mBAAO,CAAC,+GAAyC;AACjD,mBAAO,CAAC,+FAAiC;AACzC,iBAAiB,mBAAO,CAAC,iEAAkB;;;;;;;;;;;;ACT3C;AACA;AACA;AACA;;;;;;;;;;;;ACHA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACJA,eAAe,mBAAO,CAAC,kEAAc;AACrC;AACA;AACA;AACA;;;;;;;;;;;;ACJA,YAAY,mBAAO,CAAC,4DAAW;;AAE/B;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,eAAe,mBAAO,CAAC,kEAAc;AACrC,sBAAsB,mBAAO,CAAC,kFAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY,eAAe;AAChC;AACA,KAAK;AACL;AACA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,cAAc,mBAAO,CAAC,8DAAY;AAClC,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,UAAU,mBAAO,CAAC,wFAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,eAAe;AACzB;AACA;AACA;AACA,wCAAwC;AACxC;AACA,8BAA8B;AAC9B,6BAA6B;AAC7B,+BAA+B;AAC/B,mCAAmC;AACnC,SAAS,iCAAiC;AAC1C;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3CA,eAAe,mBAAO,CAAC,kEAAc;AACrC,cAAc,mBAAO,CAAC,gEAAa;AACnC,cAAc,mBAAO,CAAC,sDAAQ;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACfA;AACA,yBAAyB,mBAAO,CAAC,kGAA8B;;AAE/D;AACA;AACA;;;;;;;;;;;;;ACLa;AACb,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,eAAe,mBAAO,CAAC,kEAAc;AACrC,aAAa,mBAAO,CAAC,4DAAW;AAChC;AACA;;AAEA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxBA;AACA,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,UAAU,mBAAO,CAAC,sDAAQ;AAC1B;AACA,2BAA2B,kBAAkB,EAAE;;AAE/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtBA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;;ACJa;AACb,SAAS,mBAAO,CAAC,kEAAc;AAC/B,aAAa,mBAAO,CAAC,0EAAkB;AACvC,kBAAkB,mBAAO,CAAC,wEAAiB;AAC3C,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,iBAAiB,mBAAO,CAAC,sEAAgB;AACzC,YAAY,mBAAO,CAAC,4DAAW;AAC/B,kBAAkB,mBAAO,CAAC,sEAAgB;AAC1C,WAAW,mBAAO,CAAC,kEAAc;AACjC,iBAAiB,mBAAO,CAAC,sEAAgB;AACzC,kBAAkB,mBAAO,CAAC,sEAAgB;AAC1C,cAAc,mBAAO,CAAC,wDAAS;AAC/B,eAAe,mBAAO,CAAC,sFAAwB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,6BAA6B;AAC7B,0BAA0B;AAC1B,0BAA0B;AAC1B,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;;;;;;;;;;;;AC/Ia;AACb,kBAAkB,mBAAO,CAAC,wEAAiB;AAC3C,cAAc,mBAAO,CAAC,wDAAS;AAC/B,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,iBAAiB,mBAAO,CAAC,sEAAgB;AACzC,YAAY,mBAAO,CAAC,4DAAW;AAC/B,wBAAwB,mBAAO,CAAC,0EAAkB;AAClD,WAAW,mBAAO,CAAC,sDAAQ;AAC3B,eAAe,mBAAO,CAAC,sFAAwB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;ACpFa;AACb,aAAa,mBAAO,CAAC,4DAAW;AAChC,cAAc,mBAAO,CAAC,4DAAW;AACjC,eAAe,mBAAO,CAAC,gEAAa;AACpC,kBAAkB,mBAAO,CAAC,wEAAiB;AAC3C,WAAW,mBAAO,CAAC,wDAAS;AAC5B,YAAY,mBAAO,CAAC,4DAAW;AAC/B,iBAAiB,mBAAO,CAAC,sEAAgB;AACzC,eAAe,mBAAO,CAAC,kEAAc;AACrC,YAAY,mBAAO,CAAC,0DAAU;AAC9B,kBAAkB,mBAAO,CAAC,sEAAgB;AAC1C,qBAAqB,mBAAO,CAAC,kFAAsB;AACnD,wBAAwB,mBAAO,CAAC,sFAAwB;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO,mCAAmC,gCAAgC,aAAa;AACvF,8BAA8B,mCAAmC,aAAa;AAC9E;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qDAAqD;AACrD;AACA,kDAAkD,iBAAiB,EAAE;AACrE;AACA,wDAAwD,aAAa,EAAE,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AAC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;AACA,cAAc,mBAAO,CAAC,0DAAU;AAChC,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpDA,UAAU,mBAAO,CAAC,4DAAW;AAC7B,cAAc,mBAAO,CAAC,4DAAW;AACjC,aAAa,mBAAO,CAAC,4DAAW;AAChC,iDAAiD,mBAAO,CAAC,sEAAgB;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClDa;AACb;AACA,kBAAkB,mBAAO,CAAC,sEAAgB;AAC1C,cAAc,mBAAO,CAAC,sEAAgB;AACtC,WAAW,mBAAO,CAAC,sEAAgB;AACnC,UAAU,mBAAO,CAAC,oEAAe;AACjC,eAAe,mBAAO,CAAC,kEAAc;AACrC,cAAc,mBAAO,CAAC,8DAAY;AAClC;;AAEA;AACA,6BAA6B,mBAAO,CAAC,0DAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU,EAAE;AAChD,mBAAmB,sCAAsC;AACzD,CAAC,qCAAqC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;ACrCD;AACA,eAAe,mBAAO,CAAC,kEAAc;AACrC,UAAU,mBAAO,CAAC,oEAAe;AACjC,kBAAkB,mBAAO,CAAC,0EAAkB;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CrC,qBAAqB,mBAAO,CAAC,oEAAe;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;;;;;ACfH,eAAe,mBAAO,CAAC,gEAAa;AACpC,eAAe,mBAAO,CAAC,kEAAc;AACrC;AACA;;AAEA,cAAc;AACd;AACA;AACA,CAAC,EAAE;;;;;;;;;;;;ACRH,gBAAgB,mBAAO,CAAC,gEAAa;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,gBAAgB,mBAAO,CAAC,oEAAe;AACvC;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;;;;;;;;;;;ACdH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,KAA4D;AAC7D,CAAC,SACW;AACZ,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iEAAiE,+CAA+C,EAAE;AAClH;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,4DAA4D,0CAA0C;AACtG;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B,EAAE;AACnE;AACA;AACA;AACA,wCAAwC,6DAA6D,EAAE;AACvG,uCAAuC,WAAW,EAAE;AACpD;AACA,kCAAkC,aAAa,EAAE;AACjD,oCAAoC,WAAW,EAAE;AACjD,gCAAgC,aAAa,EAAE;AAC/C,qCAAqC,aAAa,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,aAAa,EAAE;AACzD,iCAAiC,cAAc,EAAE;AACjD,uCAAuC,kBAAkB,EAAE;AAC3D,2CAA2C,aAAa,EAAE;AAC1D,qDAAqD,kBAAkB,EAAE;AACzE,mCAAmC,kBAAkB,EAAE;AACvD,iCAAiC,WAAW,EAAE;AAC9C,iCAAiC,aAAa,EAAE;AAChD,0CAA0C,aAAa,EAAE;AACzD,uCAAuC,WAAW,EAAE;AACpD,4CAA4C,aAAa,EAAE;AAC3D,wCAAwC,aAAa,EAAE;AACvD,qCAAqC,aAAa;AAClD;AACA,6BAA6B;AAC7B;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4HAA4H,wBAAwB,oCAAoC;AACxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,sEAAsE;AACtJ;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAoD;AAC5F;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,kBAAkB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mFAAmF,kBAAkB;AACrG;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,oCAAoC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0BAA0B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6BAA6B,EAAE;AACpF;AACA;AACA;AACA;AACA,8CAA8C,kDAAkD,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAsD;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE;AACP,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,+BAA+B,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA,6CAA6C,6BAA6B;AAC1E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+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","file":"main.js","sourcesContent":["require('../modules/es6.reflect.apply');\nrequire('../modules/es6.reflect.construct');\nrequire('../modules/es6.reflect.define-property');\nrequire('../modules/es6.reflect.delete-property');\nrequire('../modules/es6.reflect.enumerate');\nrequire('../modules/es6.reflect.get');\nrequire('../modules/es6.reflect.get-own-property-descriptor');\nrequire('../modules/es6.reflect.get-prototype-of');\nrequire('../modules/es6.reflect.has');\nrequire('../modules/es6.reflect.is-extensible');\nrequire('../modules/es6.reflect.own-keys');\nrequire('../modules/es6.reflect.prevent-extensions');\nrequire('../modules/es6.reflect.set');\nrequire('../modules/es6.reflect.set-prototype-of');\nmodule.exports = require('../modules/_core').Reflect;\n","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","/**\n* @license\n* Copyright Google Inc. All Rights Reserved.\n*\n* Use of this source code is governed by an MIT-style license that can be\n* found in the LICENSE file at https://angular.io/license\n*/\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(factory());\n}(this, (function () { 'use strict';\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar Zone$1 = (function (global) {\n var performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n var checkDuplicate = global[('__zone_symbol__forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n var Zone = /** @class */ (function () {\n function Zone(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () {\n return _currentZoneFrame.zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"currentTask\", {\n get: function () {\n return _currentTask;\n },\n enumerable: true,\n configurable: true\n });\n Zone.__load_patch = function (name, fn) {\n if (patches.hasOwnProperty(name)) {\n if (checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: true,\n configurable: true\n });\n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \" + this.name + \" which is descendants of the original zone \" + task.zone.name);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n Zone.__symbol__ = __symbol__;\n return Zone;\n }());\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) { return delegate.hasTask(target, hasTaskState); },\n onScheduleTask: function (delegate, _, target, task) {\n return delegate.scheduleTask(target, task);\n },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) {\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n },\n onCancelTask: function (delegate, _, target, task) { return delegate.cancelTask(target, task); }\n };\n var ZoneDelegate = /** @class */ (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate.zone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate.zone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate.zone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate.zone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate.zone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate.zone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate.zone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = /** @class */ (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n this._zone = null;\n this.runCount = 0;\n this._zoneDelegates = null;\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n this.callback = callback;\n var self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n ZoneTask.invokeTask = function (task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () {\n return this._zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () {\n this._transitionTo(notScheduled, scheduling);\n };\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ? ' or \\'' + fromState2 + '\\'' : '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n var nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTarget: function () { return []; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; },\n bindArguments: function () { return []; },\n patchThen: function () { return noop; },\n patchMacroTask: function () { return noop; },\n setNativePromise: function (NativePromise) {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === 'function') {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n patchEventPrototype: function () { return noop; },\n isIEOrEdge: function () { return false; },\n getGlobalObjects: function () { return undefined; },\n ObjectDefineProperty: function () { return noop; },\n ObjectGetOwnPropertyDescriptor: function () { return undefined; },\n ObjectCreate: function () { return undefined; },\n ArraySlice: function () { return []; },\n patchClass: function () { return noop; },\n wrapWithCurrentZone: function () { return noop; },\n filterProperties: function () { return []; },\n attachOriginToPatched: function () { return noop; },\n _redefineProperty: function () { return noop; },\n patchCallbacks: function () { return noop; }\n };\n var _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n function __symbol__(name) {\n return '__zone_symbol__' + name;\n }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\nvar __values = (undefined && undefined.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n var className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var creationTrace = '__creationTrace__';\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = function () {\n while (_uncaughtPromiseErrors.length) {\n var _loop_1 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () {\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n }\n };\n var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (handler && typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var symbolFinally = __symbol__('finally');\n var symbolParentPromiseValue = __symbol__('parentPromiseValue');\n var symbolParentPromiseState = __symbol__('parentPromiseState');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n var TYPE_ERROR = 'Promise resolved with itself';\n var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n var trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n try {\n // try to print more readable error log\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n var error_1 = err;\n error_1.rejection = value;\n error_1.promise = promise;\n error_1.zone = Zone.current;\n error_1.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error_1);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var promiseState = promise[symbolState];\n var delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n var parentPromiseValue = promise[symbolValue];\n var isFinallyPromise = chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n var ZoneAwarePromise = /** @class */ (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () {\n return ZONE_AWARE_PROMISE_TO_STRING;\n };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var e_1, _a;\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n try {\n for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {\n var value = values_1_1.value;\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) {\n var e_2, _a;\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n var unresolvedCount = 2;\n var valueIndex = 0;\n var resolvedValues = [];\n var _loop_2 = function (value) {\n if (!isThenable(value)) {\n value = this_1.resolve(value);\n }\n var curValueIndex = valueIndex;\n value.then(function (value) {\n resolvedValues[curValueIndex] = value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, reject);\n unresolvedCount++;\n valueIndex++;\n };\n var this_1 = this;\n try {\n for (var values_2 = __values(values), values_2_1 = values_2.next(); !values_2_1.done; values_2_1 = values_2.next()) {\n var value = values_2_1.value;\n _loop_2(value);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (values_2_1 && !values_2_1.done && (_a = values_2.return)) _a.call(values_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n };\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.toStringTag, {\n get: function () {\n return 'Promise';\n },\n enumerable: true,\n configurable: true\n });\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var chainPromise = new this.constructor(null);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n ZoneAwarePromise.prototype.finally = function (onFinally) {\n var chainPromise = new this.constructor(null);\n chainPromise[symbolFinally] = symbolFinally;\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) {\n originalThen.call(_this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch_1 = global['fetch'];\n if (typeof fetch_1 == 'function') {\n global[api.symbol('fetch')] = fetch_1;\n global['fetch'] = zoneify(fetch_1);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nvar ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nvar ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nvar ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nvar ObjectCreate = Object.create;\n/** Array.prototype.slice */\nvar ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nvar ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nvar REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nvar ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nvar ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nvar TRUE_STR = 'true';\n/** false string const */\nvar FALSE_STR = 'false';\n/** __zone_symbol__ string const */\nvar ZONE_SYMBOL_PREFIX = '__zone_symbol__';\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nvar zoneSymbol = Zone.__symbol__;\nvar isWindowExists = typeof window !== 'undefined';\nvar internalWindow = isWindowExists ? window : undefined;\nvar _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nvar REMOVE_ATTRIBUTE = 'removeAttribute';\nvar NULL_ON_PROP_VALUE = [null];\nfunction bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_1 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1);\n if (!isPropertyWritable(prototypeDesc)) {\n return \"continue\";\n }\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_1(i);\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nvar isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nvar isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nvar isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nvar isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nvar zoneSymbolEventNames = {};\nvar wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n var eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n var target = this || event.target || _global;\n var listener = target[eventNameSymbol];\n var result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signiture\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n var errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n var desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n var onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n var originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n var listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nvar originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction copySymbolProperties(src, dest) {\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return;\n }\n var symbols = Object.getOwnPropertySymbols(src);\n symbols.forEach(function (symbol) {\n var desc = Object.getOwnPropertyDescriptor(src, symbol);\n Object.defineProperty(dest, symbol, {\n get: function () {\n return src[symbol];\n },\n set: function (value) {\n if (desc && (!desc.writable || typeof desc.set !== 'function')) {\n // if src[symbol] is not writable or not have a setter, just return\n return;\n }\n src[symbol] = value;\n },\n enumerable: desc ? desc.enumerable : true,\n configurable: desc ? desc.configurable : true\n });\n });\n}\nvar shouldCopySymbolProperties = false;\n\nfunction patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate = null;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate_1(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n if (shouldCopySymbolProperties) {\n copySymbolProperties(delegate, proto[name]);\n }\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n}\n\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nvar isDetectedIEOrEdge = false;\nvar ieOrEdge = false;\nfunction isIE() {\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', function (global) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n var PROMISE_SYMBOL = zoneSymbol('Promise');\n var ERROR_SYMBOL = zoneSymbol('Error');\n var newFunctionToString = function toString() {\n if (typeof this === 'function') {\n var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n var nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n var PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nvar passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nvar OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nvar zoneSymbolEventNames$1 = {};\nvar globalSources = {};\nvar EVENT_NAME_SYMBOL_REGX = /^__zone_symbol__(\\w+)(true|false)$/;\nvar IMMEDIATE_PROPAGATION_SYMBOL = ('__zone_symbol__propagationStopped');\nfunction patchEventTarget(_global, apis, patchOptions) {\n var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n var PREPEND_EVENT_LISTENER = 'prependListener';\n var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n var invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n var delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = function (event) { return delegate.handleEvent(event); };\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n var options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n var globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n var globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n var useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n var validateHandler = patchOptions && patchOptions.vh;\n var checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n var returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n var proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n var eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n var taskData = {};\n var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n var nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n function checkIsPassive(task) {\n if (!passiveSupported && typeof taskData.options !== 'boolean' &&\n typeof taskData.options !== 'undefined' && taskData.options !== null) {\n // options is a non-null non-undefined object\n // passive is not supported\n // don't pass options as object\n // just pass capture as a boolean\n task.options = !!taskData.options.capture;\n taskData.options = task.options;\n }\n }\n var customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n checkIsPassive(task);\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n var customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n var symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n var symbolEventName = void 0;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n var customScheduleNonGlobal = function (task) {\n checkIsPassive(task);\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n var compareTaskCallbackVsDelegate = function (task, delegate) {\n var typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n var blackListedEvents = Zone[Zone.__symbol__('BLACK_LISTED_EVENTS')];\n var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) {\n if (returnTarget === void 0) { returnTarget = false; }\n if (prepend === void 0) { prepend = false; }\n return function () {\n var target = this || _global;\n var eventName = arguments[0];\n var delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n var isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n var options = arguments[2];\n if (blackListedEvents) {\n // check black list\n for (var i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n var capture;\n var once = false;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n once = options ? !!options.once : false;\n }\n var zone = Zone.current;\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (!symbolEventNames) {\n // the code is duplicate, but I just want to get some better performance\n var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n symbolEventName = capture ? symbolCapture : symbol;\n }\n else {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = target[symbolEventName];\n var isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (var i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n var source;\n var constructorName = target.constructor['name'];\n var targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n var options = arguments[2];\n var capture;\n if (options === undefined) {\n capture = false;\n }\n else if (options === true) {\n capture = true;\n }\n else if (options === false) {\n capture = false;\n }\n else {\n capture = options ? !!options.capture : false;\n }\n var delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n var listeners = [];\n var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (var i = 0; i < tasks.length; i++) {\n var task = tasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (!eventName) {\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n var symbolEventName = symbolEventNames[FALSE_STR];\n var symbolCaptureEventName = symbolEventNames[TRUE_STR];\n var tasks = target[symbolEventName];\n var captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n var removeTasks = tasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n var removeTasks = captureTasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n var results = [];\n for (var i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n var foundTasks = [];\n for (var prop in target) {\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n var tasks = target[prop];\n if (tasks) {\n for (var i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n}\nfunction patchEventPrototype(global, api) {\n var Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n }; });\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n var symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n var nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = targetName + \".\" + method + \"::\" + callback;\n var prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n var descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\nvar zoneSymbol$1 = Zone.__symbol__;\nvar _defineProperty = Object[zoneSymbol$1('defineProperty')] = Object.defineProperty;\nvar _getOwnPropertyDescriptor = Object[zoneSymbol$1('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\nvar _create = Object.create;\nvar unconfigurablesKey = zoneSymbol$1('unconfigurables');\nfunction propertyPatch() {\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) {\n Object.defineProperty(obj, prop, props[prop]);\n });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (desc && isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n}\nfunction _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n}\nfunction isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n}\nfunction rewriteDescriptor(obj, prop, desc) {\n // issue-927, if the desc is frozen, don't try to change the desc\n if (!Object.isFrozen(desc)) {\n desc.configurable = true;\n }\n if (!desc.configurable) {\n // issue-927, if the obj is frozen, don't try to set the desc to obj\n if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n if (obj[unconfigurablesKey]) {\n obj[unconfigurablesKey][prop] = true;\n }\n }\n return desc;\n}\nfunction _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = desc.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nvar globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n];\nvar documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n];\nvar windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplyconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n];\nvar htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n];\nvar mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\nvar ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n];\nvar webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\nvar formEventNames = ['autocomplete', 'autocompleteerror'];\nvar detailEventNames = ['toggle'];\nvar frameEventNames = ['load'];\nvar frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\nvar marqueeEventNames = ['bounce', 'finish', 'start'];\nvar XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n];\nvar IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\nvar websocketEventNames = ['close', 'error', 'open', 'message'];\nvar workerEventNames = ['error', 'message'];\nvar eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n var tip = ignoreProperties.filter(function (ip) { return ip.target === target; });\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n var targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; });\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n var filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n var ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n var internalWindow = window;\n var ignoreErrorProperties = isIE ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n var HTMLMarqueeElement_1 = internalWindow['HTMLMarqueeElement'];\n if (HTMLMarqueeElement_1) {\n patchFilteredProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames, ignoreProperties);\n }\n var Worker_1 = internalWindow['Worker'];\n if (Worker_1) {\n patchFilteredProperties(Worker_1.prototype, workerEventNames, ignoreProperties);\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (XMLHttpRequest) {\n // XMLHttpRequest is not available in ServiceWorker, so we need to check here\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n var XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('util', function (global, Zone, api) {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n var SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = _redefineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = function () { return ({\n globalSources: globalSources,\n zoneSymbolEventNames: zoneSymbolEventNames$1,\n eventNames: eventNames,\n isBrowser: isBrowser,\n isMix: isMix,\n isNode: isNode,\n TRUE_STR: TRUE_STR,\n FALSE_STR: FALSE_STR,\n ZONE_SYMBOL_PREFIX: ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR: ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR: REMOVE_EVENT_LISTENER_STR\n }); };\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction eventTargetLegacyPatch(_global, api) {\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, globalSources = _a.globalSources, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\n var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\n var EVENT_TARGET = 'EventTarget';\n var apis = [];\n var isWtf = _global['wtf'];\n var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(',');\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;\n var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false;\n var ieOrEdge = api.isIEOrEdge();\n var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:';\n var FUNCTION_WRAPPER = '[object FunctionWrapper]';\n var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }';\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n // predefine all task.source string\n for (var i = 0; i < WTF_ISSUE_555.length; i++) {\n var target = WTF_ISSUE_555_ARRAY[i];\n var targets = globalSources[target] = {};\n for (var j = 0; j < eventNames.length; j++) {\n var eventName = eventNames[j];\n targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName;\n }\n }\n var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) {\n if (!isDisableIECheck && ieOrEdge) {\n if (isEnableCrossContextCheck) {\n try {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n else {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n }\n else if (isEnableCrossContextCheck) {\n try {\n delegate.toString();\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n return true;\n };\n var apiTypes = [];\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n apiTypes.push(type && type.prototype);\n }\n // vh is validateHandler to check event handler\n // is valid or not(for security check)\n api.patchEventTarget(_global, apiTypes, { vh: checkIEAndCrossContext });\n Zone[api.symbol('patchEventTarget')] = !!_global[EVENT_TARGET];\n return true;\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// we have to patch the instance since the proto is non-configurable\nfunction apply(api, _global) {\n var _a = api.getGlobalObjects(), ADD_EVENT_LISTENER_STR = _a.ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR = _a.REMOVE_EVENT_LISTENER_STR;\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n api.patchEventTarget(_global, [WS.prototype]);\n }\n _global.WebSocket = function (x, y) {\n var socket = arguments.length > 1 ? new WS(x, y) : new WS(x);\n var proxySocket;\n var proxySocketProto;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = api.ObjectGetOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = api.ObjectCreate(socket);\n // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror'\n // but proxySocket not, so we will keep socket as prototype and pass it to\n // patchOnProperties method\n proxySocketProto = socket;\n [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n var args = api.ArraySlice.call(arguments);\n if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) {\n var eventName = args.length > 0 ? args[0] : undefined;\n if (eventName) {\n var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName);\n socket[propertySymbol] = proxySocket[propertySymbol];\n }\n }\n return socket[propName].apply(socket, args);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n api.patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto);\n return proxySocket;\n };\n var globalWebSocket = _global['WebSocket'];\n for (var prop in WS) {\n globalWebSocket[prop] = WS[prop];\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nfunction propertyDescriptorLegacyPatch(api, _global) {\n var _a = api.getGlobalObjects(), isNode = _a.isNode, isMix = _a.isMix;\n if (isNode && !isMix) {\n return;\n }\n if (!canPatchViaPropertyDescriptor(api, _global)) {\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents(api);\n api.patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(api, _global);\n }\n Zone[api.symbol('patchEvents')] = true;\n }\n}\nfunction canPatchViaPropertyDescriptor(api, _global) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((isBrowser || isMix) &&\n !api.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = api.ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n // try to use onclick to detect whether we can patch via propertyDescriptor\n // because XMLHttpRequest is not available in service worker\n if (desc) {\n api.ObjectDefineProperty(Element.prototype, 'onclick', {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var div = document.createElement('div');\n var result = !!div.onclick;\n api.ObjectDefineProperty(Element.prototype, 'onclick', desc);\n return result;\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return false;\n }\n var ON_READY_STATE_CHANGE = 'onreadystatechange';\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n var xhrDesc = api.ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE);\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {});\n return result;\n }\n else {\n var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = api.symbol('fake');\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1];\n },\n set: function (value) {\n this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value;\n }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n}\n// Whenever any eventListener fires, we check the eventListener target and all parents\n// for `onwhatever` properties and replace them with zone-bound functions\n// - Chrome (for now)\nfunction patchViaCapturingAllTheEvents(api) {\n var eventNames = api.getGlobalObjects().eventNames;\n var unboundKey = api.symbol('unbound');\n var _loop_1 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = api.wrapWithCurrentZone(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_1(i);\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction registerElementPatch(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, document, 'Document', 'registerElement', callbacks);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\n(function (_global) {\n _global['__zone_symbol__legacyPatch'] = function () {\n var Zone = _global['Zone'];\n Zone.__load_patch('registerElement', function (global, Zone, api) {\n registerElementPatch(global, api);\n });\n Zone.__load_patch('EventTargetLegacy', function (global, Zone, api) {\n eventTargetLegacyPatch(global, api);\n propertyDescriptorLegacyPatch(api, global);\n });\n };\n})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nvar taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative(task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var id = args[0];\n var task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchCustomElements(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n var callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n var EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent$1(global, api) {\n api.patchEventPrototype(global, api);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nZone.__load_patch('legacy', function (global) {\n var legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n});\nZone.__load_patch('timers', function (global) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', function (global) {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', function (global, Zone) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_1 = blockingMethods[i];\n patchMethod(global, name_1, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', function (global, Zone, api) {\n patchEvent$1(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(api, global);\n propertyPatch();\n});\nZone.__load_patch('customElements', function (global, Zone, api) {\n patchCustomElements(global, api);\n});\nZone.__load_patch('XHR', function (global, Zone) {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol('xhrTask');\n var XHR_SYNC = zoneSymbol('xhrSync');\n var XHR_LISTENER = zoneSymbol('xhrListener');\n var XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n var XHR_URL = zoneSymbol('xhrURL');\n var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n var XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n var XMLHttpRequestEventTarget_1 = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget_1) {\n var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget_1.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n var READY_STATE_CHANGE = 'readystatechange';\n var SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n var data = task.data;\n var target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n var listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n var newListener = target[XHR_LISTENER] = function () {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n var loadTasks = target['__zone_symbol__loadfalse'];\n if (loadTasks && loadTasks.length > 0) {\n var oriInvoke_1 = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n var loadTasks = target['__zone_symbol__loadfalse'];\n for (var i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke_1.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n var storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n }; });\n var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n var fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n var fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n }; });\n var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n});\nZone.__load_patch('geolocation', function (global) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', function (global, Zone) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n})));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { Routes, RouterModule } from \"@angular/router\";\n\nimport { WelcomeComponent } from './pages/welcome/welcome.component';\nimport { ReceiptComponent } from \"./pages/receipt/receipt.component\";\nimport { ReceiptRevisionComponent } from \"./pages/receiptrevision/receiptrevision.component\";\nimport { ReceiptPosComponent } from \"./pages/receiptpos/receiptpos.component\";\nimport { CartSimulator } from \"./pages/cartsimulator/cartsimulator.component\";\nimport { ReceiptDetailsPageComponent } from \"./pages/receiptdetails/receiptdetailspage.component\";\nimport { Facturas_SearchPageComponent } from \"./pages/facturas_search_page/facturas_search_page.component\";\nimport { Revision_Factura_Page } from \"./pages/revision_factura/revision_factura_page.component\";\n\nconst routes: Routes = [\n\t{ path: \"cartsimulator\", component: CartSimulator },\n\t{ path: \"receipt/:token\", component: ReceiptDetailsPageComponent },\n\t{ path: \"receipt/:id/:token\", component: ReceiptDetailsPageComponent },\n\t{ path: \"facturas\", component: Facturas_SearchPageComponent },\n\t{ path: \"revision_factura/:token\", component: Revision_Factura_Page },\n\t{ path: \"\", component: WelcomeComponent },\n\t{ path: \"**\", redirectTo: '404' }\n];\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tBrowserModule,\n\t\tRouterModule.forRoot(routes, {\n\t\t\tuseHash: true\n\t\t})\n\t],\n\texports: []\n})\nexport class AppRoutingModule { }","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"\"","import { Component, OnInit, Renderer, HostListener, Inject, enableProdMode } from \"@angular/core\";\nimport { Location } from \"@angular/common\";\nimport { DOCUMENT } from \"@angular/common\";\n\ndeclare var jquery:any;\ndeclare var $ :any;\n \n@Component({\n selector: \"app-root\",\n templateUrl: \"./app.component.html\",\n styleUrls: [\"./app.component.css\"]\n})\nexport class AppComponent implements OnInit {\nconstructor(\n private renderer: Renderer,\n public location: Location,\n @Inject(DOCUMENT) document\n) {}\n\n@HostListener(\"window:scroll\", [\"$event\"])\n onWindowScroll(e) {\n if (window.pageYOffset > 100) {\n var element = document.getElementById(\"navbar-top\");\n if (element) {\n element.classList.remove(\"navbar-transparent\");\n element.classList.add(\"bg-danger\");\n }\n } else {\n var element = document.getElementById(\"navbar-top\");\n if (element) {\n element.classList.add(\"navbar-transparent\");\n element.classList.remove(\"bg-danger\");\n }\n }\n }\n \n ngOnInit() {\n this.onWindowScroll(event);\n }\n}","import { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { Routes, RouterModule } from \"@angular/router\";\n\nimport { AppComponent } from \"./app.component\";\n\nimport { NgbdTypeaheadBasic } from \"./components/autocomplete/typeahead-basic\";\nimport { AppRoutingModule } from \"./app-routing.module\";\n\nimport { WelcomeComponent } from \"./pages/welcome/welcome.component\";\nimport { ReceiptComponent } from \"./pages/receipt/receipt.component\";\nimport { ReceiptPosComponent } from \"./pages/receiptpos/receiptpos.component\";\nimport { ReceiptDetailsPageComponent } from \"./pages/receiptdetails/receiptdetailspage.component\";\nimport { Facturas_SearchPageComponent } from \"./pages/facturas_search_page/facturas_search_page.component\";\n\nimport { ReceiptImageComponent } from \"./components/receiptimage/receiptimage.component\";\nimport { ProductsListComponent } from \"./components/productslist/productslist.component\";\nimport { ProductFormComponent } from \"./components/productform/productform.component\";\nimport { AddedProductListComponent } from \"./components/addedproductlist/addedproductlist.component\";\nimport { RejectionReasonDropDown } from \"./components/rejectionreasonsdropdown/rejectoionreasondropdown.component\";\nimport { RejectionForm } from \"./components/rejectionform/rejectionform.component\";\nimport { Header } from \"./components/header/haeder.component\";\nimport { ReceiptRevisionComponent } from \"./pages/receiptrevision/receiptrevision.component\";\nimport { ReceiptRevisionImageComponent } from \"./components/revisionimage/revisionimage.component\";\nimport { NgxExtendedPdfViewerModule } from \"ngx-extended-pdf-viewer\";\nimport { CartSimulator } from \"./pages/cartsimulator/cartsimulator.component\";\nimport { ReceiptInfoComponent } from \"./components/receiptdetails/receiptinfo/receiptinfo.component\";\nimport { ReceiptProductsComponent } from \"./components/receiptdetails/receiptproducts/receiptproducts.component\";\n\nimport { ProductSearch } from \"./components/productsearch/productsearch.component\";\nimport { SelectedProductsTable } from \"./components/selectedproductstable/selectedproductstable.component\";\nimport { CartSummary } from \"./components/cartsummary/cartsummary.component\";\nimport { SuggestedProductsTable } from \"./components/suggestedproductstable/suggestedproductstable.component\";\n\nimport { ProductsFilterPipe } from \"./pipes/productsfilter\";\nimport { OtherProductsFilterPipe } from \"./pipes/otherproductsfilter\";\n\n// Facturas Search\nimport { facturas_search_boxesComponent } from \"./components/facturas_search/facturas_search_boxes/facturas_search_boxes.component\";\nimport { generic_dropdown_Component } from \"./components/facturas_search/search_boxes/generic_dropdown/generic_dropdown.component\";\nimport { country_dropdown_Component } from \"./components/facturas_search/search_boxes/country_dropdown/country_dropdown.component\";\nimport { pharmacy_dropdown_Component } from \"./components/facturas_search/search_boxes/pharmacy_dropdown/pharmacy_dropdown.component\";\nimport { date_picker_Component } from \"./components/facturas_search/search_boxes/date_picker/date_picker.component\";\nimport { priority_dropdown_Component } from \"./components/facturas_search/search_boxes/priority_dropdown/priority_dropdown.component\";\nimport { status_dropdown_Component } from \"./components/facturas_search/search_boxes/status_dropdown/status_dropdown.component\";\nimport { facturas_search_results_Component } from \"./components/facturas_search/facturas_search_results/facturas_search_results.component\";\n\n// Facturas Review\nimport { factura_modal_Component } from \"./components/facturas_search/facturas_review/factura-modal/factura_modal.component\";\nimport { factura_modal_content_Component } from \"./components/facturas_search/facturas_review/factura-modal/factura_modal_content.component\";\nimport { factura_detail_form_Component } from \"./components/facturas_search/facturas_review/factura_detail_form/factura_detail_form.component\";\nimport { input_textbox_Component } from \"./components/facturas_search/facturas_review/input_boxes/input_textbox/input_textbox.component\";\nimport { input_dropdown_Component } from \"./components/facturas_search/facturas_review/input_boxes/input_dropdown/input_dropdown.component\";\n\n// Main Controller (Factura operations)\nimport { Fac_Controller } from \"./components/fac_controller/fac_controller.component\";\nimport { Fac_Editor_Stats } from \"./components/fac_editor_stats/fac_editor_stats.component\";\n\n// Factura Components\nimport { Fac_Header } from \"./components/fac_header/fac_header.component\";\nimport { Fac_Editables_Card } from \"./components/fac_editables_card/fac_editables_card.component\";\nimport { Fac_Editables_Form } from \"./components/fac_editables_form/fac_editables_form.component\";\nimport { Fac_Farmacias_Search_Box } from \"./components/fac_farmacias_search_box/fac_farmacias_search_box.component\";\nimport { Fac_Image } from \"./components/fac_image/fac_image.component\";\nimport { Fac_Analyzer } from \"./components/fac_analyzer/fac_analyzer.component\";\nimport { Fac_Dynamics_Sync } from \"./components/fac_dynamics_sync/fac_dynamics_sync.component\";\nimport { Fac_New_Image } from \"./components/fac_new_image/fac_new_image.component\";\n\n// Non Abbott Products Components\nimport { Non_Abbott_Products_Card } from \"./components/nap_card/nap_card.component\";\nimport { Non_Abbott_Products_Search_Box } from \"./components/nap_search_box/nap_search_box.component\";\nimport { Non_Abbott_Selected_ProductsList } from \"./components/nap_selected_list/nap_selected_list.component\";\nimport { Non_Abbott_Validator } from \"./components/nap_validator/nap_validator.component\";\n\n// Abbott Products Components\nimport { Abbott_Products_Card } from \"./components/ap_card/ap_card.component\";\nimport { Abbott_Products_Search_Box } from \"./components/ap_search_box/ap_search_box.component\";\nimport { Abbott_Selected_ProductsList } from \"./components/ap_selected_list/ap_selected_list.component\";\nimport { Abbott_Validator } from \"./components/ap_validator/ap_validator.component\";\n\n// Revision de Factura Page\nimport { Revision_Factura_Page } from \"./pages/revision_factura/revision_factura_page.component\";\n\n@NgModule({\n \timports: [\n\t\tBrowserModule,\n\t\tFormsModule,\n\t\tNgbModule,\n\t\tAppRoutingModule,\n\t\tRouterModule,\n\t\tNgxExtendedPdfViewerModule\n\t],\n\tdeclarations: [\n\t\tAppComponent,\n\t\t// Main global components\n\t\tHeader,\n\t\t// Pages\n\t\tWelcomeComponent,\n\t\tReceiptComponent,\n\t\tReceiptPosComponent,\n\t\tCartSimulator,\n\t\tReceiptDetailsPageComponent,\n\t\tFacturas_SearchPageComponent,\n\t\t// Pipes\n\t\tProductsFilterPipe,\n\t\tOtherProductsFilterPipe,\n\t\t// Components & Libraries\n\t\tRejectionForm,\n\t\tNgbdTypeaheadBasic,\n\t\tReceiptImageComponent,\n\t\tProductsListComponent,\n\t\tProductFormComponent,\n\t\tAddedProductListComponent,\n\t\tReceiptRevisionComponent,\n\t\tRejectionReasonDropDown,\n\t\tReceiptRevisionImageComponent,\n\t\tProductSearch,\n\t\tSelectedProductsTable,\n\t\tCartSummary,\n\t\tSuggestedProductsTable,\n\t\tReceiptInfoComponent,\n\t\tReceiptProductsComponent,\n\t\t// Facturas Search\n\t\tfacturas_search_boxesComponent,\n\t\tgeneric_dropdown_Component,\n\t\tcountry_dropdown_Component,\n\t\tpharmacy_dropdown_Component,\n\t\tdate_picker_Component,\n\t\tpriority_dropdown_Component,\n\t\tstatus_dropdown_Component,\n\t\tfacturas_search_results_Component,\n\t\t// Facturas Review\n\t\tfactura_modal_Component,\n\t\tfactura_modal_content_Component,\n\t\tfactura_detail_form_Component,\n\t\tinput_textbox_Component,\n\t\tinput_dropdown_Component,\n\t\t// Non Abbott Products\n\t\tNon_Abbott_Products_Card,\n\t\tNon_Abbott_Products_Search_Box,\n\t\tNon_Abbott_Selected_ProductsList,\n\t\tNon_Abbott_Validator,\n\t\t// Abbott Products\n\t\tAbbott_Products_Card,\n\t\tAbbott_Products_Search_Box,\n\t\tAbbott_Selected_ProductsList,\n\t\tAbbott_Validator,\n\t\t// Main Controller\n\t\tFac_Controller,\n\t\tFac_Editor_Stats,\n\t\t// Factura Revision Components\n\t\tFac_Header,\n\t\tFac_Editables_Card,\n\t\tFac_Editables_Form,\n\t\tFac_Farmacias_Search_Box,\n\t\tFac_Image,\n\t\tFac_Analyzer,\n\t\tFac_Dynamics_Sync,\n\t\tFac_New_Image,\n\t\t// Main Page\n\t\tRevision_Factura_Page\n\t],\n\texports: [],\n\tbootstrap: [AppComponent],\n\tentryComponents: [factura_modal_content_Component],\n})\nexport class AppModule {}\n","module.exports = \".table-button {\\n max-width: 100px !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hZGRlZHByb2R1Y3RsaXN0L2FkZGVkcHJvZHVjdGxpc3QuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLDJCQUEyQjtBQUMvQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYWRkZWRwcm9kdWN0bGlzdC9hZGRlZHByb2R1Y3RsaXN0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGFibGUtYnV0dG9uIHtcbiAgICBtYXgtd2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XG59Il19 */\"","module.exports = \"
\\n
\\n\\n
Productos Agregados
\\n\\n \\n\\n 0\\\">\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
#ProductoCant.Precio
1{{p.name}}= 0\\\">
\\n \\n\\n \\n\\n

\\n No se encontraron productos con ese texto.\\n

\\n\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { ProductAdded } from '../../models/productadded';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"addedproductlist\",\n\ttemplateUrl: \"addedproductlist.component.html\",\n\tstyleUrls: [\"addedproductlist.component.css\"]\n})\nexport class AddedProductListComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n addedProductList: ProductAdded[] = [];\n private selectedInputFromTable: string = \"\";\n\n processNewProduct(product) {\n let found = this.addedProductList.filter(a => a.id === product[\"id\"]);\n\n if (found.length > 0 && product[\"id\"] != \"N/A\") {\n this.messagingService.ErrorWhileAddingProductToList(\"El producto ya existe en la lista.\");\n return; // Product already exists.\n }\n\n if (product && product[\"id\"]) {\n this.addedProductList.push(product);\n }\n } \n\n\tconstructor(private messagingService: MessagingService) {\n this.messagingService.newProductAddedEvent.subscribe(\n (data) => {\n\n console.log(\"New Product Received:\", data);\n\n this.processNewProduct(data);\n }\n );\n\n this.messagingService.wordPolygonSelectedEvent.subscribe(\n (word) => {\n console.log(\"Word Selected:\", word);\n \n if (this.selectedInputFromTable !== \"\" && $.isNumeric(word)) {\n $(\"#\" + this.selectedInputFromTable).val(word);\n }\n }\n );\n }\n\n // Public Methods\n // --------------------------------------------------\n\n deleteItem(item, index) {\n console.log(\"Item to delete: \", item);\n // this.addedProductList = this.addedProductList.filter(a => a.id !== item.id);\n this.addedProductList.splice(index, 1);\n }\n\n focusPrice(index) {\n console.log(\"focusPrice\", index);\n this.selectedInputFromTable = \"p\" + index;\n }\n\n focusQty(index) {\n console.log(\"focusQty\", index);\n this.selectedInputFromTable = \"q\" + index;\n }\n\n blur() {\n this.selectedInputFromTable = \"\";\n }\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".ap-card-header {\\n background-color: #004f71;\\n color: white;\\n}\\n.ap-card-header h5 {\\n margin-bottom: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hcF9jYXJkL2FwX2NhcmQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLHlCQUF5QjtJQUN6QixZQUFZO0FBQ2hCO0FBQ0E7SUFDSSxnQkFBZ0I7QUFDcEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2FwX2NhcmQvYXBfY2FyZC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFwLWNhcmQtaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0ZjcxO1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cbi5hcC1jYXJkLWhlYWRlciBoNSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn0iXX0= */\"","module.exports = \"
\\n
\\n
Productos Abbott
\\n
\\n\\t
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { Product } from '../../models/product';\nimport { ProductAdded } from '../../models/productadded'; \n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"ap_card\",\n\ttemplateUrl: \"ap_card.component.html\",\n\tstyleUrls: [\"ap_card.component.css\"]\n})\nexport class Abbott_Products_Card implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n constructor(private messagingService: MessagingService) {\n }\n\n\tselected_item_changed(item) {\n\t\tthis.messagingService.Ap_Add_Product_To_List(item);\n\t}\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXBfc2VhcmNoX2JveC9hcF9zZWFyY2hfYm94LmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"
\\n \\n
\"","import { Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { AbbottProduct } from '../../models/abbott_product';\nimport { ReceiptService } from '../../services/receipt.service';\nimport { SharedDataService } from '../../services/shared_data.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"ap_search_box\",\n\ttemplateUrl: \"ap_search_box.component.html\",\n\tstyleUrls: [\"ap_search_box.component.css\"]\n})\nexport class Abbott_Products_Search_Box implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\tpublic model: any;\n\tclickedItem:string;\n\n\tprivate factura: any = {};\n\n\t@Output() selectedItemChanged = new EventEmitter();\n\n\tprivate productsList: any = [{\"name\":\"No hay productos encontrados.\"}];\n\n constructor(\n\t\tprivate messagingService: MessagingService, \n\t\tprivate receiptService: ReceiptService,\n\t\tprivate shared_data_service: SharedDataService\n\t) {\n }\n\n\t// When the user selects an item from the drop down, this method sets the item and the value in the search box\n\t// Invoking the message suscription \"selectedItemChanged\"\n\tselectedItem(item){\n\t\titem.preventDefault();\n\t\tif (item[\"item\"][\"found\"] === undefined || item[\"item\"][\"found\"]) {\n\t\t\tthis.clickedItem = item.item;\n\t\t\tthis.selectedItemChanged.emit(item[\"item\"]);\n\t\t}\n\t\tthis.model = null;\n\t}\n\n\t// Searches within the input item list, any item that matches the input from the searchbox\n\tfind_term(term) {\n\t\tlet _this = this;\n\t\treturn term.length < 2 ? [] : function() {\n\t\t\tlet found_items = _this.productsList.filter(v => {\n\t\t\t\tif (\n\t\t\t\t\t(v[\"id\"] !== -1) && (\n\t\t\t\t\t\t(v[\"categoria\"].toLowerCase().indexOf(term.toLowerCase()) > -1) ||\n\t\t\t\t\t\t(v[\"description\"].toLowerCase().indexOf(term.toLowerCase()) > -1) ||\n\t\t\t\t\t\t(v[\"familia\"].toLowerCase().indexOf(term.toLowerCase()) > -1) ||\n\t\t\t\t\t\t(v[\"name\"].toLowerCase().indexOf(term.toLowerCase()) > -1)\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn v[\"name\"];\n\t\t\t\t}\n\n\t\t\t});\n\t\t\tif (found_items.length > 0) {\n\t\t\t\treturn found_items.slice(0, 20); // Returns the top 20 results found.\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [\n\t\t\t\t\t{ name: \"No se encontró un producto con esa descripción.\", found:false, other: term }\n\t\t\t\t]\n\t\t\t}\n\t\t}();\n\t}\n\n\t// Sets the value that is shown in the list of the type ahead drop down\n\tformatter = (product: AbbottProduct) => product[\"name\"];\n\n\t// Main search function that receives the input from the searchbox\n\tsearch = (text$: Observable) => \n\t\ttext$.pipe(\n\t\t\tdebounceTime(200),\n\t\t\tdistinctUntilChanged(),\n\t\t\tmap(term => this.find_term(term))\n\t\t);\n\n\n\t// Component basic methods...\n\t// --------------------------------------------------------\n\n\tasync init_operations() {\n\t\tlet country = await this.shared_data_service.fac_country;\n\t\tthis.factura = await this.shared_data_service.fac_details;\n\n\t\tif (country !== undefined && country !== '') {\n\t\t\tlet ap_search = await this.receiptService.GetAboxProductList(country);\n\n\t\t\tif (ap_search[\"result\"]) {\n\t\t\t\t/*\n\t\t\t\tcategoria: \"CARDIOVASCULAR\"\n\t\t\t\tdescription: \"AMLODIPINA 5 MG + VALSARTAN 160 MG X 28 TABLETAS\"\n\t\t\t\tdivision: null\n\t\t\t\tfamilia: \"AMVAL\"\n\t\t\t\tid: \"12530\"\n\t\t\t\tname: \"AMVAL 5 / 160\"\n\t\t\t\t*/\n\t\t\t\tthis.productsList = ap_search[\"data\"];\n\t\t\t}\t\n\t\t\telse {\n\t\t\t\t// Handle search error...\n\t\t\t\tconsole.log(ap_search);\n\t\t\t}\n\t\t}\n\t}\n\n async ngOnInit() {\n\t\tthis.messagingService.fac_loaded_event.subscribe(message => {\n\t\t\tthis.init_operations();\n\t\t});\n\n\t\tthis.init_operations();\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".div-btns {\\n text-align: right;\\n}\\n.nap-prod-list-item {\\n text-align: left;\\n font-size: 20px;\\n}\\n.nap-prod-list-item .btn {\\n font-size: 20px;\\n}\\n.nap-prod-list-item .col-qty {\\n text-align: center;\\n}\\n.nap-prod-list-item .col-qty input {\\n text-align: center !important;\\n height: 100%;\\n width: 150px !important;\\n}\\n.nap-prod-list-item .col-btn-delete {\\n text-align: right;\\n}\\n.nap-no-prods-label {\\n font-size: 20px;\\n font-weight: bold;\\n}\\n\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hcF9zZWxlY3RlZF9saXN0L2FwX3NlbGVjdGVkX2xpc3QuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlCQUFpQjtBQUNyQjtBQUNBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGVBQWU7QUFDbkI7QUFDQTtJQUNJLGVBQWU7QUFDbkI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0QjtBQUNBO0lBQ0ksNkJBQTZCO0lBQzdCLFlBQVk7SUFDWix1QkFBdUI7QUFDM0I7QUFDQTtJQUNJLGlCQUFpQjtBQUNyQjtBQUNBO0lBQ0ksZUFBZTtJQUNmLGlCQUFpQjtBQUNyQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXBfc2VsZWN0ZWRfbGlzdC9hcF9zZWxlY3RlZF9saXN0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGl2LWJ0bnMge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm5hcC1wcm9kLWxpc3QtaXRlbSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDIwcHg7XG59XG4ubmFwLXByb2QtbGlzdC1pdGVtIC5idG4ge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbn1cbi5uYXAtcHJvZC1saXN0LWl0ZW0gLmNvbC1xdHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5uYXAtcHJvZC1saXN0LWl0ZW0gLmNvbC1xdHkgaW5wdXQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTUwcHggIWltcG9ydGFudDtcbn1cbi5uYXAtcHJvZC1saXN0LWl0ZW0gLmNvbC1idG4tZGVsZXRlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5uYXAtbm8tcHJvZHMtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuIl19 */\"","module.exports = \"
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n  \\n \\n
\\n
\\n
\\n \\n
\\n\\n
\\n

\\n No hay productos seleccionados.\\n

\\n
\\n \\n
0 && factura && factura.Estado !== undefined && factura.Estado !== 'Aprobada'\\\">\\n
    \\n
  • \\n
    \\n \\n \\n \\n \\n \\n

    {{p.name}}\\n \\n \\n \\n \\n \\n

    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n
    \\n \\n ( El precio no es válido )\\n \\n
    \\n
  • \\n
\\n
\\n\\n
0 && factura && factura.Estado !== undefined && factura.Estado === 'Aprobada'\\\">\\n
    \\n
  • \\n
    \\n \\n \\n \\n \\n \\n

    {{p.name}}\\n \\n \\n \\n \\n \\n

    \\n
    \\n
    \\n \\n
    {{p.qty}}
    \\n
    \\n \\n
    {{p.price | number: '1.0-0'}}
    \\n
    \\n \\n  \\n \\n
    \\n
  • \\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { ReceiptService } from '../../services/receipt.service';\nimport { SharedDataService } from '../../services/shared_data.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"ap_selected_list\",\n\ttemplateUrl: \"ap_selected_list.component.html\",\n\tstyleUrls: [\"ap_selected_list.component.css\"]\n})\nexport class Abbott_Selected_ProductsList implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tprivate selected_products_list: any = []; // {product:\"PRODUCTO DE PRUEBA\"}\n\tprivate factura: any = {};\n\tprivate factura_ocr_details: any = {};\n\tprivate undo_heap: any = [];\n\n\tupdate_shared_products() {\n\t\tthis.shared_data_service.fac_ap_products = this.selected_products_list;\n\t\tthis.messagingService.Ap_Product_List_Changed(this.selected_products_list);\n\t}\n\n constructor(private messagingService: MessagingService, private receiptService: ReceiptService, private shared_data_service: SharedDataService) {\n\t\tthis.messagingService.ap_add_product_to_list_event.subscribe((product_to_add) => {\n\n\t\t\t/* \n\t\t\tcategoria: \"NUTRICION Y BIENESTAR\"\n\t\t\tdescription: \"Nutrición líquida completa y balanceada formulada con Nutrivigor para apoyar la salud muscular\"\n\t\t\tdivision: \"ANI\"\n\t\t\tfamilia: \"ENSURE\"\n\t\t\tid: \"056482034034126\"\n\t\t\tname: \"ENSURE ADVANCE LÍQUIDO FRESA 237 mL\"\n\t\t\t*/\n\n\t\t\tlet found = this.selected_products_list.filter(s => s[\"name\"] === product_to_add[\"name\"]);\n\n\t\t\tif (found.length > 0) {\n\t\t\t\t// Alredy exists.\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.selected_products_list.push(product_to_add);\n\t\t\t\tthis.update_shared_products();\n\t\t\t}\n });\n }\n \n\tdelete_item(item_to_delete) {\n\t\tthis.undo_heap.push(item_to_delete);\n\t\tthis.selected_products_list = this.selected_products_list.filter(s => s[\"name\"] !== item_to_delete[\"name\"] );\n\t\tthis.update_shared_products();\n\t}\n\n\tundo() {\n\t\tif (this.undo_heap.length > 0) {\n\t\t\tlet item_to_add = this.undo_heap[0];\n\t\t\tthis.undo_heap = this.undo_heap.slice(1);\n\t\t\tthis.selected_products_list.push(item_to_add);\n\t\t\tthis.update_shared_products();\n\t\t}\n\t}\n\n\tdelete_all() {\n\t\tthis.undo_heap = [];\n\t\tthis.selected_products_list = [];\n\t\tthis.update_shared_products();\n\t}\n\n\ttrigger_change(event) {\n\t\tthis.update_shared_products();\n\t}\n\n\tfocus(dom_object) {\n\t\tlet click_object = {\n\t\t\t'obj_type': 'abbott-product',\n\t\t\t'object': dom_object\n\t\t}\n\t\tthis.messagingService.Fac_Field_Clicked(click_object);\n\t}\n\n\teval_ocr_field(id_producto) {\n\t\tif (this.factura_ocr_details === null || this.factura_ocr_details === undefined) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (this.factura_ocr_details[\"products\"] && Array.isArray(this.factura_ocr_details[\"products\"])) {\n\t\t\tfor (var i=0; i {\n\t\t\tp['ocr_producto'] = this.eval_ocr_field(p[\"id\"]);\n\t\t});\n\t}\n\n\tasync init_operations() {\n\t\t// Verifies if there is already a factura loaded in the shared data service\n\t\t// and extracts and converts the non abbott products to the current list.\n\t\tlet abbott_products_in_factura = [];\n\t\tthis.factura = await this.shared_data_service.fac_details;\n\t\tthis.selected_products_list = [];\n\t\tif (this.factura) {\n\t\t\tabbott_products_in_factura = this.factura[\"Products\"];\n\n\t\t\tif (abbott_products_in_factura !== undefined) {\n\t\t\t\tabbott_products_in_factura.forEach(p => {\n\t\t\t\t\tthis.selected_products_list.push({\n\t\t\t\t\t\t\"id\": p[\"ID_Producto\"],\n\t\t\t\t\t\t\"name\": p[\"Producto\"],\n\t\t\t\t\t\t\"qty\": p[\"Cantidad\"],\n\t\t\t\t\t\t\"price\": p[\"Precio\"],\n\t\t\t\t\t});\n\t\t\t\t\tthis.update_shared_products();\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\tthis.reload_ocr_info();\n\t\t}\n\t}\n\n async ngOnInit() {\n\n\t\tthis.messagingService.fac_loaded_event.subscribe(message => {\n\t\t\tthis.init_operations();\n\t\t});\n\n\t\tthis.messagingService.fac_ocr_info_updated_event.subscribe(message => {\n\t\t\tthis.reload_ocr_info();\n\t\t});\n\n\t\tthis.init_operations();\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".ap-validator {\\n text-align: center;\\n}\\n.validator-label {\\n font-size: 20px;\\n font-weight: bold;\\n}\\n.validator-label .valid {\\n color: green;\\n}\\n.validator-label .invalid {\\n color: red;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hcF92YWxpZGF0b3IvYXBfdmFsaWRhdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQkFBa0I7QUFDdEI7QUFDQTtJQUNJLGVBQWU7SUFDZixpQkFBaUI7QUFDckI7QUFDQTtJQUNJLFlBQVk7QUFDaEI7QUFDQTtJQUNJLFVBQVU7QUFDZCIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXBfdmFsaWRhdG9yL2FwX3ZhbGlkYXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFwLXZhbGlkYXRvciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnZhbGlkYXRvci1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnZhbGlkYXRvci1sYWJlbCAudmFsaWQge1xuICAgIGNvbG9yOiBncmVlbjtcbn1cbi52YWxpZGF0b3ItbGFiZWwgLmludmFsaWQge1xuICAgIGNvbG9yOiByZWQ7XG59Il19 */\"","module.exports = \"
\\n \\n
\\n

\\n {{valid_count}} \\n \\n \\n \\n \\n

\\n
\\n
\\n

\\n {{invalid_count}} \\n \\n \\n \\n \\n

\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { SharedDataService } from '../../services/shared_data.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"ap_validator\",\n\ttemplateUrl: \"ap_validator.component.html\",\n\tstyleUrls: [\"ap_validator.component.css\"]\n})\nexport class Abbott_Validator implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tprivate selected_product_list: any = [];\n\tprivate valid_count: number = 0;\n\tprivate invalid_count: number = 0;\n\n constructor(private messagingService: MessagingService, private shared_data_service: SharedDataService) {\n\t\tthis.messagingService.ap_product_list_changed_event.subscribe((products_list) => {\n\t\t\tthis.selected_product_list = this.shared_data_service.fac_ap_products;\n\t\t\tthis.selected_product_list = this.validate_products(this.selected_product_list);\n\t\t\tthis.valid_count = this.selected_product_list.filter(s => s[\"status\"]).length;\n\t\t\tthis.invalid_count = this.selected_product_list.filter(s => !s[\"status\"]).length;\n\t\t});\n }\n\n\tvalidate_products(products_to_validate) {\n\t\tproducts_to_validate.forEach(p => {\n\t\t\tlet status = true;\n\t\t\tif (p[\"qty\"] === undefined || p[\"qty\"] === \"\" || p[\"qty\"] === 0) {\n\t\t\t\tstatus = false;\n\t\t\t}\n\t\t\tif (p[\"price\"] === undefined || p[\"price\"] === \"\" || p[\"price\"] === 0) {\n\t\t\t\tstatus = false;\n\t\t\t} \n\t\t\tif (p[\"name\"] === undefined || p[\"name\"] === \"\") {\n\t\t\t\tstatus = false;\n\t\t\t}\n\t\t\tp[\"status\"] = status;\n\t\t});\n\t\treturn products_to_validate;\n\t}\n\n // Component basic methods...\n\t// --------------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \"
\\n \\n
\\n \\n
\\n
\"","import { Component, Input, OnChanges, SimpleChanges, EventEmitter, Output } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { NgbInputDatepicker } from '@ng-bootstrap/ng-bootstrap';\nimport { ReceiptComponent } from '../../pages/receipt/receipt.component';\n\nimport { Product } from '../../models/product';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: 'ngbd-typeahead-basic',\n\ttemplateUrl: './typeahead-basic.html',\n\tstyles: [`.form-control { width: 300px; }`]\n})\nexport class NgbdTypeaheadBasic implements OnChanges {\n\tpublic model: any;\n\tclickedItem:string;\n\n\tprivate productsList: any = [];\n\n\t@Output() selectedItemChanged = new EventEmitter();\n\n\tconstructor(private receiptComponent: ReceiptComponent) {\n\t\t// Event Listener\n\t\tthis.receiptComponent.dataUpdateEvent.subscribe(\n\t\t\t(data: any) => {\n\t\t\t this.productsList = data;\n\t\t\t}\n\t\t);\n\t}\n\n\tgetLookup(term) {\n\t\tlet _this = this;\n\t\treturn term.length < 2 ? [] : function() {\n\t\t\treturn _this.productsList.filter(v => {\n\t\t\t\tif (v[\"name\"].toLowerCase().indexOf(term.toLowerCase()) > -1) {\n\t\t\t\t\treturn v[\"name\"];\n\t\t\t\t}\n\t\t\t}).slice(0, 20);\n\t\t}();\n\t}\n\n\tselectedItem(item){\n\t\tthis.clickedItem=item.item;\n\t\tthis.selectedItemChanged.emit(item[\"item\"]);\n\t}\n\n\tformatter = (product: Product) => product.name;\n\t\n\tclearInput($event) {\n\t\t$event.preventDefault();\n\t\tthis.model = null;\n\t\tthis.selectedItemChanged.emit(null);\n\t\t$(\"#typeahead-basic\").focus();\n\t}\n\n\tsearch = (text$: Observable) => \n\t\ttext$.pipe(\n\t\t\tdebounceTime(200),\n\t\t\tdistinctUntilChanged(),\n\t\t\tmap(term => this.getLookup(term))\n\t\t);\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tconsole.log(\"Changes hit!\");\n\t}\n}\n","module.exports = \".btn-cart-summary {\\n color: white !important;\\n}\\n\\n.btn-primary {\\n border: 2px solid #0095d6 !important;\\n background-color: #0095d6 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYXJ0c3VtbWFyeS9jYXJ0c3VtbWFyeS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksdUJBQXVCO0FBQzNCOztBQUVBO0lBQ0ksb0NBQW9DO0lBQ3BDLG9DQUFvQztBQUN4QyIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY2FydHN1bW1hcnkvY2FydHN1bW1hcnkuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5idG4tY2FydC1zdW1tYXJ5IHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLmJ0bi1wcmltYXJ5IHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjMDA5NWQ2ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTVkNiAhaW1wb3J0YW50O1xufSJdfQ== */\"","module.exports = \"
\\n\\t
\\n\\t\\t

{{pointsRequired}}

\\n\\t\\t

Puntos Acumulados

\\n\\n\\t\\tVaciar Productos\\n\\t
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { Product } from '../../models/product';\nimport { MessagingService } from '../../services/messagingservice';\nimport { ProductAdded } from \"src/app/models/productadded\";\nimport { Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { ReceiptService } from '../../services/receipt.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"cartsummary\",\n\ttemplateUrl: \"cartsummary.component.html\",\n\tstyleUrls: [\"cartsummary.component.css\"]\n})\nexport class CartSummary implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\t@Input() selectedProducts: any = [];\n\t\n\tpointsRequired: number = 0;\n\n\tconstructor(private messagingService: MessagingService) {\n\t\tthis.messagingService.updateCartEvent.subscribe((message) => {\n\t\t\t// Calculate the points\n\t\t\tthis.pointsRequired = 0;\n\t\t\tthis.selectedProducts.forEach(p => this.pointsRequired += p.points);\n\t\t});\n\t}\n\n\tClearCart() {\n\t\tthis.selectedProducts = [];\n\t\tthis.messagingService.ClearCart();\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".fac-analyzer {\\n position: fixed;\\n top: 175px;\\n right: 20px;\\n background-color: white;\\n border-radius: 5px;\\n width: 80px;\\n height: 80px;\\n z-index: 99;\\n border: 1px solid black;\\n}\\n.fac-analyzer .d-flex {\\n margin-top: 23px;\\n}\\n.fac-analyzer .analyzer-ready {\\n margin-top: 10px;\\n color: green;\\n text-align: center;\\n}\\n.fac-analyzer .analyzer-pending {\\n margin-top: 10px;\\n color: #004f71;\\n text-align: center;\\n}\\n.fac-analyzer .analyzer-error {\\n margin-top: 10px;\\n color: red;\\n text-align: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWNfYW5hbHl6ZXIvZmFjX2FuYWx5emVyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxlQUFlO0lBQ2YsVUFBVTtJQUNWLFdBQVc7SUFDWCx1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxZQUFZO0lBQ1osV0FBVztJQUNYLHVCQUF1QjtBQUMzQjtBQUNBO0lBQ0ksZ0JBQWdCO0FBQ3BCO0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLGtCQUFrQjtBQUN0QjtBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxrQkFBa0I7QUFDdEI7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1Ysa0JBQWtCO0FBQ3RCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9mYWNfYW5hbHl6ZXIvZmFjX2FuYWx5emVyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZmFjLWFuYWx5emVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAxNzVweDtcbiAgICByaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIHotaW5kZXg6IDk5O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xufVxuLmZhYy1hbmFseXplciAuZC1mbGV4IHtcbiAgICBtYXJnaW4tdG9wOiAyM3B4O1xufVxuXG4uZmFjLWFuYWx5emVyIC5hbmFseXplci1yZWFkeSB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBjb2xvcjogZ3JlZW47XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZmFjLWFuYWx5emVyIC5hbmFseXplci1wZW5kaW5nIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGNvbG9yOiAjMDA0ZjcxO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZhYy1hbmFseXplciAuYW5hbHl6ZXItZXJyb3Ige1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgY29sb3I6IHJlZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59Il19 */\"","module.exports = \"
\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { SharedDataService } from '../../services/shared_data.service';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { ReceiptService } from '../../services/receipt.service';\nimport { timeStamp } from \"console\";\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"fac-analyzer\",\n\ttemplateUrl: \"fac_analyzer.component.html\",\n\tstyleUrls: [\"fac_analyzer.component.css\"]\n})\nexport class Fac_Analyzer implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tprivate factura: any = {};\n\tprivate factura_ocr_details: any = {};\n\n\tprivate analyzing: boolean = false;\n\tprivate analyzed: boolean = false;\n\tprivate analysis_error: boolean = false;\n\tprivate show_analyzer_status: boolean = true;\n\n constructor(\n\t\tprivate receipt_services: ReceiptService,\n\t\tprivate messagingService: MessagingService, \n\t\tprivate shared_data_service: SharedDataService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate token_service: TokenService\n\t) {\n }\n\n\tasync analyze_image() {\n\t\ttry {\n\t\t\tthis.analyzing = true;\n\n\t\t\t// Sends the image to Google for analysis\n\t\t\tlet analyze_response = await this.receipt_services.AnalizaReceiptUsingIdAndURL(this.factura[\"idFactura\"], this.factura[\"imageUrl\"]);\n\t\t\t\n\t\t\t// Updates the factura with the OCR details.\n\t\t\tlet updateResponse = await this.receipt_services.UpdateOCRAnalysis(this.factura[\"idFactura\"], this.factura[\"imageUrl\"], escape(JSON.stringify(analyze_response[\"data\"])));\n\t\t\t\n\t\t\tthis.messagingService.Fac_Request_Fac_Reload_Ocr_Info({});\n\n\t\t\tthis.analyzed = true;\n\t\t\tthis.analyzing = false;\n\t\t}\n\t\tcatch(err) {\n\t\t\tconsole.log(err);\n\t\t\tthis.analysis_error = true;\n\t\t\tthis.analyzing = false;\n\t\t\tthis.messagingService.Fac_Controller_Hide_Please_Wait({});\n\t\t}\n\t}\n\n // Component basic methods...\n\t// --------------------------------------------------------\n\n\tasync init_operations() {\n\t\t// Verifies if there is already a factura loaded in the shared data service\n\t\t// and extracts and converts the non abbott products to the current list.\n\t\tthis.factura = await this.shared_data_service.fac_details;\n\n\t\tif (this.factura) {\n\n\t\t\tlet url_imagen_de_factura = this.factura[\"imageUrl\"];\n\n\t\t\t// Verifies if the factura is a pdf, in that case, no analysis is performed.\n\t\t\tif (url_imagen_de_factura != undefined && url_imagen_de_factura.toUpperCase().indexOf(\".PDF\") >= 0) {\n\t\t\t\t// The factura is a PDF, do nothing\n\t\t\t\tthis.show_analyzer_status = false;\n\t\t\t\tthis.analyzed = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Verifies if the factura needs to be analyzed to extract the polygons from the image\n\t\t\t\tif (this.factura[\"OcrInfo\"] !== undefined && this.factura[\"OcrInfo\"][\"imageText\"] === null) {\n\t\t\t\t\t// Needs to be analyzed\n\t\t\t\t\tthis.analyze_image();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (this.factura[\"OcrInfo\"] !== undefined) {\n\t\t\t\t\t\tthis.factura_ocr_details = await this.shared_data_service.fac_ocr_details; //JSON.parse(unescape(this.factura[\"OcrInfo\"][\"imageText\"]));\n\t\t\t\t\t\tthis.analyzed = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n async ngOnInit() {\n\t\tthis.messagingService.fac_loaded_event.subscribe(message => {\n\t\t\tthis.init_operations();\n\t\t});\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".modal-body {\\n font-size: 25px;\\n}\\n.btn {\\n font-size: 16px !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWNfY29udHJvbGxlci9mYWNfY29udHJvbGxlci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksZUFBZTtBQUNuQjtBQUNBO0lBQ0ksMEJBQTBCO0FBQzlCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9mYWNfY29udHJvbGxlci9mYWNfY29udHJvbGxlci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1vZGFsLWJvZHkge1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbn1cbi5idG4ge1xuICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xufSJdfQ== */\"","module.exports = \"
\\n \\n\\n \\n
\\n
\\n
\\n
\\n
Por favor espere...
\\n
\\n
\\n
\\n
\\n Loading...\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
{{modal_message.title}}
\\n \\n
\\n
\\n {{modal_message.body}}\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
{{modal_message.title}}
\\n \\n
\\n
\\n {{modal_message.body}}\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Resultado de la Validación
\\n \\n
\\n
\\n
{{m.message}}
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Rechazar Factura
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n Loading...\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Aprobar Factura
\\n \\n
\\n
\\n ¿Está seguro que desea aprobar la factura?\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Anular Factura
\\n \\n
\\n
\\n ¿Está seguro que desea anular la factura?\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n
Límite de Consumo
\\n
\\n
\\n

Para los siguientes productos o medicamentos se ha sobrepasado tu límite de\\n consumo:

\\n

Límite Permitido

\\n
\\n

{{e}}

\\n
\\n
\\n \\n
\\n\\n
\\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter, ChangeDetectorRef, ChangeDetectionStrategy } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { SharedDataService } from '../../services/shared_data.service';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { ReceiptService } from '../../services/receipt.service';\nimport { DynamicsService } from '../../services/dynamics.service';\nimport { Utilities } from '../../utilities';\nimport { LimitConsumption } from '../../interface/ILimitConsumption';\nimport DateDiff from 'date-diff';\n\ndeclare var jquery: any;\ndeclare var $: any;\n\n@Component({\n\tselector: \"fac-controller\",\n\ttemplateUrl: \"fac_controller.component.html\",\n\tstyleUrls: [\"fac_controller.component.css\"],\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class Fac_Controller implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tprivate is_token_valid: boolean = false;\n\tprivate message: string = \"\";\n\tprivate modal_message: any = {};\n\tprivate list_of_messages: any = [];\n\tprivate list_of_error_validation_limits: Array = [];\n\t// Received token from Querystring\n\tprivate token: string = \"\";\n\n\t// Decoded token\n\tprivate receipt_id: string = \"\";\n\tprivate abox_services_api_token: string = \"\";\n\tprivate abox_services_api_user: string = \"\";\n\n\t// Factura object\n\tprivate factura_details_object: any = {};\n\n\t// Sync with CRM flag\n\tprivate sync_with_dynamics: boolean = false; // Flag that defines if the app will sync with Dynamics.\n\n\tprivate rejection_processing: boolean = false;\n\tconstructor(\n\t\tprivate receipt_services: ReceiptService,\n\t\tprivate messagingService: MessagingService,\n\t\tprivate shared_data_service: SharedDataService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate token_service: TokenService,\n\t\tprivate dynamics_service: DynamicsService,\n\t\tprivate changeDetector: ChangeDetectorRef,\n\t\tprivate utilities: Utilities\n\t) {\n\t\tthis.trigger_constructor();\n\t}\n\n\t// Shared Data Operations...\n\t// --------------------------------------------------------\n\n\tasync pull_shared_data() {\n\t\tlet factura = await this.shared_data_service.fac_details;\n\t\tfactura[\"NonAbbottProducts\"] = this.transform_nap_products(await this.shared_data_service.fac_nap_products);\n\t\tfactura[\"Products\"] = this.transform_ap_products(await this.shared_data_service.fac_ap_products);\n\t\treturn factura;\n\t}\n\n\t// Data transformation operations...\n\t// --------------------------------------------------------\n\n\tformat_factura(factura) {\n\n\t\t// This method is used to add, remove or clean any field required by the api services\n\n\t\t// Factura ID field is required by the update service\n\t\tfactura[\"ID\"] = factura[\"idFactura\"];\n\n\t\t// Evaluates if the farmacia is not setup as an object as required by the update service\n\t\tif (factura[\"Farmacia\"] !== undefined && factura[\"Farmacia\"][\"ID\"] === undefined) {\n\t\t\tlet farmacia = factura[\"Farmacia\"] === undefined ? \"N/A\" : factura[\"Farmacia\"];\n\t\t\tfactura[\"Farmacia\"] = {\n\t\t\t\t\"ID\": factura[\"ID_Farmacia\"] !== -1 ? factura[\"ID_Farmacia\"] : null,\n\t\t\t\t\"Nombre\": farmacia\n\t\t\t}\n\t\t}\n\n\t\t// Verifies that the time of review is setup\n\t\tif (factura[\"TiempoRevision\"] === undefined) {\n\t\t\tfactura[\"TiempoRevision\"] = 0;\n\t\t}\n\n\t\t// Adds the products fields as required by the update service\n\t\tfactura[\"ProductosAbbott\"] = factura[\"Products\"];\n\t\tfactura[\"ProductosNoAbbott\"] = factura[\"NonAbbottProducts\"];\n\n\t\treturn factura;\n\t}\n\n\ttransform_nap_products(nap_products) {\n\t\tif (nap_products === undefined || nap_products === []) return [];\n\t\tlet non_abbott_products_list = [];\n\t\tnap_products.forEach(n => {\n\n\t\t\tlet product_name: string = n[\"product\"];\n\n\t\t\t// Verifies if the product is \"other\"\n\t\t\tif (n[\"product_package\"] !== undefined && n[\"product_package\"] === \"OTRO\") {\n\t\t\t\tproduct_name = n[\"product\"];\n\t\t\t}\n\n\t\t\tif (n[\"product_package\"] !== undefined && n[\"product_package\"] !== \"OTRO\") {\n\t\t\t\tproduct_name = n[\"product_package\"];\n\t\t\t}\n\n\t\t\tnon_abbott_products_list.push({\n\t\t\t\t\"Cantidad_Otros\": Number(n[\"qty\"]),\n\t\t\t\t\"Precio_Otros\": Number(n[\"price\"]),\n\t\t\t\t\"Producto_Otros\": product_name.toUpperCase(),\n\t\t\t\t\"idproducto_no_abbott\": n[\"idproducto_no_abbott\"]\n\t\t\t});\n\t\t});\n\t\treturn non_abbott_products_list;\n\t}\n\n\ttransform_ap_products(ap_products) {\n\n\t\tif (ap_products === undefined || ap_products === []) return [];\n\t\tlet abbott_products_list = [];\n\t\tap_products.forEach(n => {\n\n\t\t\t/* \n\t\t\tDestino:\n\t\t\tCantidad: 1\n\t\t\tID_Producto: \"100N080002015\"\n\t\t\tPrecio: 0\n\t\t\tProducto: \"CONTROLIP 250 MG\"\n\n\t\t\tFuente:\n\t\t\tid: \"100N080002015\"\n\t\t\tname: \"CONTROLIP 250 MG\"\n\t\t\tprice: 0\n\t\t\tqty: 1\n\t\t\tstatus: false\n\t\t\t*/\n\n\t\t\tabbott_products_list.push({\n\t\t\t\t\"ID_Producto\": n[\"id\"],\n\t\t\t\t\"Cantidad\": Number(n[\"qty\"]),\n\t\t\t\t\"Precio\": Number(n[\"price\"]),\n\t\t\t\t\"Producto\": n[\"name\"]\n\t\t\t});\n\t\t});\n\t\treturn abbott_products_list;\n\t}\n\n\t// UI Operations...\n\t// --------------------------------------------------------\n\n\tshow_please_wait_dialog() {\n\t\t$(\"#pleaseWaitDialog\").modal('show');\n\t}\n\n\thide_please_wait_dialog() {\n\t\t$(\"#pleaseWaitDialog\").modal('hide');\n\t}\n\n\tshow_message_dialog(message_title, message_body, callback_function) {\n\t\tthis.modal_message[\"title\"] = message_title;\n\t\tthis.modal_message[\"body\"] = message_body;\n\t\tthis.changeDetector.detectChanges();\n\t\tthis.modal_message[\"callbackfx\"] = () => {\n\t\t\tcallback_function();\n\t\t}\n\t\t$('#messageModalWithAction').modal('show');\n\t}\n\n\tshow_validation_messages_dialog() {\n\t\tthis.changeDetector.detectChanges();\n\t\t$('#validationResultModal').modal('show');\n\t}\n\n\tshow_reject_modal_dialog() {\n\t\tthis.changeDetector.detectChanges();\n\t\t$('#rechazarFaturaModal').modal('show');\n\t}\n\n\thide_reject_modal_dialog() {\n\t\tthis.changeDetector.detectChanges();\n\t\t$('#rechazarFaturaModal').modal('hide');\n\t}\n\n\tshow_approve_modal_dialog() {\n\t\tthis.changeDetector.detectChanges();\n\t\t$('#aprobarFaturaModal').modal('show');\n\t}\n\n\tshow_validation_limit_consumption_modal() {\n\t\tthis.changeDetector.detectChanges();\n\t\t$('#validationsLimitConsumptions').modal('show');\n\t}\n\n\t// Controller Operations...\n\t// --------------------------------------------------------\n\n\tvalidate_token(token) {\n\t\tlet decoded_token = this.token_service.Decode(token);\n\t\tif (decoded_token.result) {\n\t\t\treturn decoded_token.data;\n\t\t}\n\t\telse {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tasync get_factura(receipt_id) {\n\t\tlet response = await this.receipt_services.GetReceiptDetailsWithProductsArray(receipt_id);\n\t\treturn response;\n\t}\n\n\tasync get_farmacias(country) {\n\t\ttry {\n\t\t\tlet response = await this.receipt_services.GetDrugStoresData(country);\n\t\t\tif (!response[\"result\"]) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn response[\"data\"];\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t// Factura Operations...\n\t// --------------------------------------------------------\n\n\tasync approve_factura() {\n\t\ttry {\n\n\t\t\tlet factura = await this.pull_shared_data();\n\t\t\tconst response = await this.validateLimitConsumption(factura);\n\t\t\t//return;\n\t\t\tif (response.length > 0) {\n\t\t\t\tthis.show_validation_limit_consumption_modal();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfactura = this.format_factura(factura);\n\n\t\t\t// Validates the factura\n\t\t\tlet validation_result = await this.validate_factura(factura);\n\t\t\tif (!validation_result[\"result\"]) {\n\t\t\t\tthis.list_of_messages = validation_result[\"data\"];\n\t\t\t\tthis.show_validation_messages_dialog();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Stops the timer\n\t\t\tthis.messagingService.Fac_Stop_Timer({});\n\n\t\t\t// Shows please wait dialog\n\t\t\tthis.show_please_wait_dialog();\n\n\t\t\t// Removes the OCR Info part of the object to avoid large package on the post to the API\n\t\t\tlet factura_with_no_ocr = {}\n\t\t\tObject.assign(factura_with_no_ocr, factura);\n\t\t\tdelete factura_with_no_ocr[\"OcrInfo\"];\n\n\t\t\tlet update_response = await this.receipt_services.UpdateCRMReceipt(factura_with_no_ocr, this.token);\n\n\t\t\t// Verifies the update was performed\n\t\t\tif (!update_response[\"result\"] || !this.utilities.is_object_empty(update_response[\"data\"])) {\n\t\t\t\t// Closes the please wait dialog\n\t\t\t\tthis.hide_please_wait_dialog();\n\n\t\t\t\t// Shows the saved message\n\t\t\t\tthis.show_message_dialog(\"Espera.\", \"Ocurrió un problema al guardar la factura.\", () => { });\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Syncs with Dynamics\n\t\t\tif (this.sync_with_dynamics) {\n\t\t\t\tlet dynamics_sync_response = await this.sync_to_dynamics_approved(factura_with_no_ocr, factura_with_no_ocr[\"TiempoRevision\"]);\n\t\t\t\t// console.log(dynamics_sync_response);\n\t\t\t}\n\n\t\t\tlet approval_response = await this.receipt_services.ApproveReceipt(factura[\"ID\"], this.abox_services_api_user, []);\n\n\t\t\t// Verifies the update was performed\n\t\t\tif (!approval_response[\"result\"] || (approval_response[\"data\"][\"header\"][\"code\"] !== 0 && approval_response[\"data\"][\"header\"][\"code\"] !== '')) {\n\n\t\t\t\t// Closes the please wait dialog\n\t\t\t\tthis.hide_please_wait_dialog();\n\n\t\t\t\t// Shows the saved message\n\t\t\t\tthis.show_message_dialog(\"Espera.\", \"Ocurrió un problema al aprobar la factura. Los cambios se guardaron, pero no se pudo aprobar.\", () => { });\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t// Closes the please wait dialog\n\t\t\tthis.hide_please_wait_dialog();\n\n\t\t\t// Reloads the factura in the background\n\t\t\tthis.reload_factura();\n\n\t\t\t// Shows the saved message\n\t\t\tthis.show_message_dialog(\"Listo!\", \"La factura se aprobó.\", () => {\n\t\t\t\twindow.close();\n\t\t\t});\n\n\t\t}\n\t\tcatch (err) {\n\t\t\t// Shows the saved message\n\t\t\tthis.show_message_dialog(\"Espera.\", \"Ocurrió un problema al salvar la factura.\", () => { });\n\t\t\tconsole.log(err);\n\n\t\t\t// Closes the please wait dialog\n\t\t\tthis.hide_please_wait_dialog();\n\t\t}\n\t}\n\n\tasync reject_factura() {\n\t\tthis.rejection_processing = false;\n\t\tthis.show_reject_modal_dialog();\n\t}\n\n\tasync save_factura() {\n\t\ttry {\n\n\t\t\tlet factura = await this.pull_shared_data();\n\t\t\tconst response = await this.validateLimitConsumption(factura);\n\t\t\tif (response.length > 0) {\n\t\t\t\tthis.show_validation_limit_consumption_modal();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfactura = this.format_factura(factura);\n\n\t\t\t// Validates the factura\n\t\t\tlet validation_result = await this.validate_factura(factura);\n\t\t\tif (!validation_result[\"result\"]) {\n\t\t\t\tconsole.log(validation_result);\n\t\t\t\tthis.list_of_messages = validation_result[\"data\"];\n\t\t\t\tthis.show_validation_messages_dialog();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Stops the timer\n\t\t\tthis.messagingService.Fac_Stop_Timer({});\n\n\t\t\t// Shows please wait dialog\n\t\t\tthis.show_please_wait_dialog();\n\n\t\t\tlet dynamics_json = this.dynamics_service.generate_dynamics_json(factura);\n\n\t\t\t// Removes the OCR Info part of the object to avoid large package on the post to the API\n\t\t\tlet factura_with_no_ocr = {}\n\t\t\tObject.assign(factura_with_no_ocr, factura);\n\t\t\tdelete factura_with_no_ocr[\"OcrInfo\"];\n\n\t\t\t// Syncs with Dynamics\n\t\t\tif (this.sync_with_dynamics) {\n\t\t\t\tawait this.sync_to_dynamics_approved(factura_with_no_ocr, factura_with_no_ocr[\"TiempoRevision\"]);\n\t\t\t}\n\n\t\t\tlet update_response = await this.receipt_services.UpdateCRMReceipt(factura_with_no_ocr, this.token);\n\n\t\t\t// Verifies the update was performed\n\t\t\tif (!update_response[\"result\"] || !this.utilities.is_object_empty(update_response[\"data\"])) {\n\n\t\t\t\t// Closes the please wait dialog\n\t\t\t\tthis.hide_please_wait_dialog();\n\n\t\t\t\t// Shows the saved message\n\t\t\t\tthis.show_message_dialog(\"Espera.\", \"Ocurrió un problema al guardar la factura.\", () => { });\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Closes the please wait dialog\n\t\t\tthis.hide_please_wait_dialog();\n\n\t\t\t// Shows the saved message\n\t\t\tthis.show_message_dialog(\"Listo!\", \"La factura se guardó.\", () => { });\n\n\t\t}\n\t\tcatch (err) {\n\t\t\t// Closes the please wait dialog\n\t\t\tthis.hide_please_wait_dialog();\n\n\t\t\t// Shows the saved message\n\t\t\tthis.show_message_dialog(\"Espera.\", \"Ocurrió un problema al salvar la factura.\", () => { });\n\t\t\tconsole.log(err);\n\t\t}\n\t}\n\n\tasync reload_factura() {\n\t\tthis.show_please_wait_dialog();\n\n\t\tthis.factura_details_object = await this.get_factura(this.receipt_id);\n\n\t\tlet farmacias = await this.get_farmacias(this.factura_details_object[\"country\"]);\n\n\t\t// Uploads the factura objecto to the shared data service\n\t\tthis.shared_data_service.fac_country = this.factura_details_object[\"country\"];\n\t\tthis.shared_data_service.fac_details = this.factura_details_object;\n\t\tthis.shared_data_service.fac_farmacias = farmacias;\n\n\n\t\t// Uploads the OCR detail if available\n\t\tlet factura_ocr_details = undefined;\n\t\tif (this.factura_details_object[\"OcrInfo\"] !== undefined) {\n\t\t\tfactura_ocr_details = JSON.parse(unescape(this.factura_details_object[\"OcrInfo\"][\"imageText\"]));\n\t\t}\n\t\tthis.shared_data_service.fac_ocr_details = factura_ocr_details;\n\n\t\t// Uploads the required data to the shared data service\n\t\tthis.shared_data_service.fac_editor_user = this.abox_services_api_user;\n\t\tthis.shared_data_service.fac_token = this.token;\n\n\t\t// Triggers the factura loaded event so every component gets updated\n\t\tthis.messagingService.Fac_Loaded({});\n\n\t\tthis.hide_please_wait_dialog();\n\t}\n\n\tasync reload_factura_pull_ocr_info() {\n\t\tlet factura = await this.get_factura(this.receipt_id);\n\t\t// Uploads the OCR detail if available\n\t\tlet factura_ocr_details = undefined;\n\t\tif (factura[\"OcrInfo\"] !== undefined) {\n\t\t\tfactura_ocr_details = JSON.parse(unescape(factura[\"OcrInfo\"][\"imageText\"]));\n\t\t}\n\t\tthis.shared_data_service.fac_ocr_details = factura_ocr_details;\n\t\tthis.messagingService.Fac_Ocr_Info_Updated(factura_ocr_details);\n\t}\n\n\tasync nullify_factura() {\n\t\ttry {\n\t\t\tlet factura = await this.pull_shared_data();\n\t\t\tconst { idFactura } = factura;\n\t\t\tthis.show_please_wait_dialog();\n\t\t\tlet response = await this.receipt_services.NullifyReceipt(idFactura);\n\n\t\t\t// Closes the please wait dialog\n\t\t\tthis.hide_please_wait_dialog();\n\n\t\t\tif (response.result) {\n\t\t\t\tlet _this = this;\n\t\t\t\t// Shows the saved message\n\t\t\t\tthis.show_message_dialog(\"Espera.\", \"Listo la factura se anuló.\", () => {\n\t\t\t\t\t// Reloads the factura in the background\n\t\t\t\t\t_this.reload_factura();\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Shows the saved message\n\t\t\t\tthis.show_message_dialog(\"Espera.\", \"Ocurrió un problema al anular la factura.\", () => { });\n\t\t\t}\n\n\t\t}\n\t\tcatch (err) {\n\t\t\t// Closes the please wait dialog\n\t\t\tthis.hide_please_wait_dialog();\n\n\t\t\t// Shows the saved message\n\t\t\tthis.show_message_dialog(\"Espera.\", \"Ocurrió un problema al anular la factura.\", () => { });\n\t\t\tconsole.log(err);\n\t\t}\n\t}\n\n\t// Rejection operations...\n\t// --------------------------------------------------------\n\n\tasync RejectDynamicsCRM(e) {\n\n\t\tlet factura = await this.pull_shared_data();\n\t\tfactura = this.format_factura(factura);\n\n\t\t// Removes the OCR Info part of the object to avoid large package on the post to the API\n\t\tlet factura_with_no_ocr = {}\n\t\tObject.assign(factura_with_no_ocr, factura);\n\t\tdelete factura_with_no_ocr[\"OcrInfo\"];\n\n\t\t// Syncs with Dynamics\n\t\tif (this.sync_with_dynamics) {\n\t\t\tlet dynamics_sync_response = await this.sync_to_dynamics_rejected(factura_with_no_ocr, factura_with_no_ocr[\"TiempoRevision\"], e[\"reason\"]);\n\t\t\t// console.log(dynamics_sync_response);\n\t\t}\n\t}\n\n\tHandleRejectionLoading(e) {\n\t\tthis.rejection_processing = true;\n\t}\n\n\tHandleRejectionResponse(e) {\n\t\tthis.hide_reject_modal_dialog();\n\t\tthis.show_message_dialog(\"Listo\", \"La factura se rechazó.\", async () => {\n\t\t\twindow.close();\n\t\t});\n\t}\n\n\t// Anullment Operations...\n\n\tasync NullifyFactura(factura: any) {\n\t\tthis.changeDetector.detectChanges();\n\t\t$('#anularFacturaModal').modal('show');\n\t}\n\n\t// Dynamics Operations...\n\t//\n\n\tasync sync_to_dynamics_approved(factura, revision_time) {\n\t\t// Microsoft Dynamics CRM Integration START ------\n\t\t// Dynamics Microsoft Integration\n\t\tlet dynamics_json_response = this.dynamics_service.generate_dynamics_json(factura);\n\n\t\tif (!dynamics_json_response[\"result\"]) {\n\t\t\t// Handle error.\n\t\t\treturn {\n\t\t\t\tresult: false,\n\t\t\t\tmessage: \"Error al sincronizar factura con el CRM.\",\n\t\t\t\tdata: dynamics_json_response[\"data\"]\n\t\t\t}\n\t\t}\n\n\t\tlet dynamics_json = dynamics_json_response[\"data\"];\n\t\tdynamics_json[\"status\"] = \"Aprobada\"\n\t\tdynamics_json[\"revisionTime1\"] = revision_time;\n\n\t\ttry {\n\t\t\tlet rDynamics = await this.receipt_services.DynamicsUpdateReceipt(dynamics_json);\n\t\t\tif (!rDynamics[\"result\"]) {\n\t\t\t\t// Handle error.\n\t\t\t\treturn {\n\t\t\t\t\tresult: false,\n\t\t\t\t\tmessage: \"Error al sincronizar factura con el CRM.\",\n\t\t\t\t\tdata: rDynamics[\"data\"]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tresult: true,\n\t\t\t\tmessage: \"Factura sincronizada con el CRM.\",\n\t\t\t\tdata: rDynamics\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\treturn {\n\t\t\t\tresult: false,\n\t\t\t\tmessage: \"Error al sincronizar factura con el CRM.\",\n\t\t\t\tdata: err\n\t\t\t}\n\t\t}\n\n\t\t// Microsoft Dynamics CRM Integration END ------\n\t}\n\n\tasync sync_to_dynamics_rejected(factura, revision_time, reason) {\n\t\t// Microsoft Dynamics CRM Integration START ------\n\t\t// Dynamics Microsoft Integration\n\t\tlet dynamics_json_response = this.dynamics_service.generate_dynamics_json(factura);\n\n\t\tif (!dynamics_json_response[\"result\"]) {\n\t\t\t// Handle error.\n\t\t\treturn {\n\t\t\t\tresult: false,\n\t\t\t\tmessage: \"Error al sincronizar factura con el CRM.\",\n\t\t\t\tdata: dynamics_json_response[\"data\"]\n\t\t\t}\n\t\t}\n\n\t\tlet dynamics_json = dynamics_json_response[\"data\"];\n\t\tdynamics_json[\"status\"] = \"Rechazada\"\n\t\tdynamics_json[\"revisionTime1\"] = revision_time;\n\t\tdynamics_json[\"statusReason\"] = reason;\n\n\t\ttry {\n\t\t\tlet rDynamics = await this.receipt_services.DynamicsUpdateReceipt(dynamics_json);\n\t\t\tif (!rDynamics[\"result\"]) {\n\t\t\t\t// Handle error.\n\t\t\t\treturn {\n\t\t\t\t\tresult: false,\n\t\t\t\t\tmessage: \"Error al sincronizar factura con el CRM.\",\n\t\t\t\t\tdata: rDynamics[\"data\"]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tresult: true,\n\t\t\t\tmessage: \"Factura sincronizada con el CRM.\",\n\t\t\t\tdata: rDynamics\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\treturn {\n\t\t\t\tresult: false,\n\t\t\t\tmessage: \"Error al sincronizar factura con el CRM.\",\n\t\t\t\tdata: err\n\t\t\t}\n\t\t}\n\n\t\t// Microsoft Dynamics CRM Integration END ------\n\t}\n\n\n\t// Validation Operations\n\t// --------------------------------------------------------\n\n\tasync validate_factura(factura) {\n\n\t\tlet error_messages = [];\n\t\tlet validation_result: boolean = true;\n\t\ttry {\n\n\t\t\tconsole.log('FACTURA:', factura);\n\n\t\t\tif (!factura[\"Factura\"] || factura[\"Factura\"] === \"\" || factura[\"Factura\"] === undefined) {\n\t\t\t\terror_messages.push({ \"message\": \"El número de factura es requerido.\" });\n\t\t\t\tvalidation_result = false;\n\t\t\t}\n\n\t\t\tif (!factura[\"Fecha\"] || factura[\"Fecha\"] === \"\" || factura[\"Fecha\"] === undefined) {\n\t\t\t\terror_messages.push({ \"message\": \"La fecha de la factura es requerida.\" });\n\t\t\t\tvalidation_result = false;\n\t\t\t}\n\n\t\t\tlet facturaDateToValidate = new Date(factura[\"Fecha\"]);\n\t\t\tvar diff = new DateDiff(new Date(), facturaDateToValidate);\n\t\t\tif (diff.months() > 1) {\n\t\t\t\terror_messages.push({ \"message\": \"La fecha de la factura no puede ser mayor a 1 mes.\" });\n\t\t\t\tvalidation_result = false;\n\t\t\t}\n\n\t\t\tif (!factura[\"MontoTotal\"] || factura[\"MontoTotal\"] === \"\" || factura[\"MontoTotal\"] === undefined) {\n\t\t\t\terror_messages.push({ \"message\": \"El monto total de la factura es requerido.\" });\n\t\t\t\tvalidation_result = false;\n\t\t\t}\n\n\t\t\tif (isNaN(Number(factura[\"MontoTotal\"]))) {\n\t\t\t\terror_messages.push({ \"message\": \"El monto total de la factura es inválido.\" });\n\t\t\t\tvalidation_result = false;\n\t\t\t}\n\n\t\t\t// Validates that the products all have quantity and amount\n\t\t\tfactura[\"Products\"].forEach(p => {\n\t\t\t\tif (!p[\"Precio\"] || p[\"Precio\"] === \"\" || p[\"Precio\"] === undefined) {\n\t\t\t\t\terror_messages.push({ \"message\": `El precio para el producto ${p[\"Producto\"]} es requerido.` });\n\t\t\t\t\tvalidation_result = false;\n\t\t\t\t}\n\t\t\t\tif (isNaN(Number(p[\"Precio\"]))) {\n\t\t\t\t\terror_messages.push({ \"message\": `El precio para el producto ${p[\"Producto\"]} no es válido.` });\n\t\t\t\t\tvalidation_result = false;\n\t\t\t\t}\n\t\t\t\tif (Math.floor(Number(p[\"Precio\"])) === 0) {\n\t\t\t\t\terror_messages.push({ \"message\": `El precio para el producto ${p[\"Producto\"]} es requerido.` });\n\t\t\t\t\tvalidation_result = false;\n\t\t\t\t}\n\t\t\t\tif (!p[\"Cantidad\"] || p[\"Cantidad\"] === \"\" || p[\"Cantidad\"] === undefined) {\n\t\t\t\t\terror_messages.push({ \"message\": `La cantidad para el producto ${p[\"Producto\"]} es requerido.` });\n\t\t\t\t\tvalidation_result = false;\n\t\t\t\t}\n\t\t\t\tif (Math.floor(Number(p[\"Cantidad\"])) === 0) {\n\t\t\t\t\terror_messages.push({ \"message\": `El precio para el producto ${p[\"Producto\"]} es requerido.` });\n\t\t\t\t\tvalidation_result = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Validates that the products all have quantity and amount\n\t\t\tfactura[\"ProductosNoAbbott\"].forEach(p => {\n\t\t\t\tif (!p[\"Producto_Otros\"] || p[\"Producto_Otros\"] === \"\" || p[\"Producto_Otros\"] === undefined) {\n\t\t\t\t\terror_messages.push({ \"message\": `Hay un producto No Abbott sin nombre.` });\n\t\t\t\t\tvalidation_result = false;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (!p[\"Precio_Otros\"] || p[\"Precio_Otros\"] === \"\" || p[\"Precio_Otros\"] === undefined || isNaN(p[\"Precio_Otros\"])) {\n\t\t\t\t\t\terror_messages.push({ \"message\": `El precio para el producto ${p[\"Producto_Otros\"]} es requerido.` });\n\t\t\t\t\t\tvalidation_result = false;\n\t\t\t\t\t}\n\t\t\t\t\tif (!p[\"Cantidad_Otros\"] || p[\"Cantidad_Otros\"] === \"\" || p[\"Cantidad_Otros\"] === undefined || isNaN(p[\"Cantidad_Otros\"])) {\n\t\t\t\t\t\terror_messages.push({ \"message\": `La cantidad para el producto ${p[\"Producto_Otros\"]} es requerido.` });\n\t\t\t\t\t\tvalidation_result = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\n\n\t\t\treturn {\n\t\t\t\tresult: validation_result,\n\t\t\t\tmessage: \"\",\n\t\t\t\tdata: error_messages\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\treturn {\n\t\t\t\tresult: false,\n\t\t\t\tmessage: \"\",\n\t\t\t\tdata: error_messages\n\t\t\t}\n\t\t}\n\t}\n\n\tasync getLimitMonthly(obj: LimitConsumption) {\n\n\t\treturn this.receipt_services.validateLimitConsumptionMonthly(obj);\n\t}\n\n\tasync getLimitYearly(obj: LimitConsumption) {\n\n\t\treturn this.receipt_services.validateLimitConsumptionYearly(obj);\n\t}\n\n\tasync validateLimitConsumptionYearly(objRequest: LimitConsumption) {\n\n\t\tthis.list_of_error_validation_limits = [];\n\n\t\ttry {\n\n\t\t\t//let errorsFound = [];\n\t\t\t// se valida primeramente el limite anual\n\n\t\t\tconst { response: {\n\t\t\t\tdetails: {\n\t\t\t\t\tproductos: productosMonthly\n\t\t\t\t}\n\t\t\t} } = await this.getLimitYearly(objRequest);\n\n\t\t\tfor (const producto of productosMonthly) {\n\n\t\t\t\tif (producto.resultado_validaciones[0].mensaje && producto.resultado_validaciones[0].mensaje.length > 0) {\n\t\t\t\t\tthis.list_of_error_validation_limits.push(producto.resultado_validaciones[0].mensaje);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list_of_error_validation_limits;\n\n\t\t} catch (error) {\n\n\t\t\tthis.list_of_error_validation_limits.push('Ocurrió un error al obtener los límites de consumo');\n\t\t\treturn this.list_of_error_validation_limits;\n\t\t}\n\t}\n\n\n\n\t// ------------------------------------------------------------------------------------------------------\n\tasync validateLimitConsumptionMonthly(objRequest: LimitConsumption) {\n\n\t\tthis.list_of_error_validation_limits = [];\n\n\t\ttry {\n\n\t\t\t//let errorsFound = [];\n\t\t\t// se valida primeramente el limite anual\n\n\t\t\tlet { response: {\n\t\t\t\tdetails: {\n\t\t\t\t\tdetalles\n\t\t\t\t}\n\t\t\t} } = await this.getLimitMonthly(objRequest);\n\n\t\t\tlet limitePorMarca = 0;\n\t\t\tlet extensionPorMarca = 0;\n\t\t\tlet cantidadTotalPorMarcaSolicitada = 0;\n\t\t\tlet consumoAcumuladoPorMarca = 0;\n\t\t\tlet primeraVez = false;\n\t\t\tlet familia = '';\n\t\t\tlet totalPorMarcaMasExtension = 0;\n\n\t\t\tfor (const producto1 of detalles) {\n\n\t\t\t\tfamilia = producto1.familia;\n\t\t\t\tprimeraVez = true;\n\n\t\t\t\tfor (const producto2 of detalles) {\n\n\t\t\t\t\tif (producto2.familia === familia) {\n\n\t\t\t\t\t\tif (primeraVez) {\n\t\t\t\t\t\t\tlimitePorMarca = producto1.maximo_permitido_por_mes_por_familia;\n\t\t\t\t\t\t\textensionPorMarca = producto1.extension_por_familia;\n\t\t\t\t\t\t\tconsumoAcumuladoPorMarca = producto1.consumido_este_mes_por_familia;\n\t\t\t\t\t\t\ttotalPorMarcaMasExtension = limitePorMarca + extensionPorMarca;\n\t\t\t\t\t\t\tprimeraVez = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcantidadTotalPorMarcaSolicitada += producto2.resultado_de_validaciones[0].cantidad_reportada;\n\t\t\t\t\t\tdetalles = detalles.filter(detalle => detalle.id_producto !== producto2.id_producto);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconsole.log({ familia });\n\t\t\t\tconsole.log({ consumoAcumuladoPorMarca });\n\t\t\t\tconsole.log({ totalPorMarcaMasExtension });\n\t\t\t\tconsole.log({ cantidadTotalPorMarcaSolicitada });\n\n\t\t\t\tif (limitePorMarca > 0 && ((cantidadTotalPorMarcaSolicitada + consumoAcumuladoPorMarca) > totalPorMarcaMasExtension)) {\n\t\t\t\t\tthis.list_of_error_validation_limits.push(`El límite de consumo mensual para los productos de la familia ${familia} es ${totalPorMarcaMasExtension}. El consumo actual de la familia ${familia} es de ${consumoAcumuladoPorMarca}. Consumo restante disponible para la Familia ${familia} es de ${(totalPorMarcaMasExtension - consumoAcumuladoPorMarca)}`);\n\t\t\t\t}\n\n\t\t\t\tcantidadTotalPorMarcaSolicitada = 0;\n\t\t\t}\n\n\t\t\treturn this.list_of_error_validation_limits;\n\n\t\t} catch (error) {\n\n\t\t\tthis.list_of_error_validation_limits.push('Ocurrió un error al obtener los límites de consumo');\n\t\t\treturn this.list_of_error_validation_limits;\n\t\t}\n\t}\n\t// ------------------------------------------------------------------------------------------------------\n\n\tbuildObjectRequest(factura: any) {\n\n\t\tlet objRequest: LimitConsumption = {\n\t\t\tid_paciente: null,\n\t\t\tproductos: []\n\t\t};\n\n\t\tobjRequest.id_paciente = factura.idPaciente\n\n\t\tfor (let product of factura.Products) {\n\n\t\t\tobjRequest.productos.push({\n\t\t\t\tID_Producto: product.ID_Producto,\n\t\t\t\tcantidad: product.Cantidad\n\t\t\t})\n\n\t\t\t//Cuando se use codigo asincrono dentro dentro de un ciclo, usar forof que respeta el flujo dentro de su scope \t\t\t\n\t\t}\n\n\t\treturn objRequest;\n\t}\n\n\tasync validateLimitConsumption(factura: any) {\n\n\t\tconst objRequest = this.buildObjectRequest(factura);\n\t\t//limite anual\n\t\tconst responseLimitYearly = await this.validateLimitConsumptionYearly(objRequest);\n\t\t//if((await responseLimitYearly).length) resolver una promesa con un await y leer el resultado al mismo tiempo\n\t\tif (responseLimitYearly.length > 0) {\n\t\t\treturn responseLimitYearly;\n\t\t}\n\n\t\t//superó la validación del limite anual, viene el limite mensual\n\n\t\tconst responseLimitMonthly = await this.validateLimitConsumptionMonthly(objRequest);\n\n\n\t\tif (responseLimitMonthly.length > 0) {\n\t\t\treturn responseLimitMonthly;\n\t\t}\n\n\t\treturn [];\n\n\t}\n\n\t// Component basic methods...\n\t// --------------------------------------------------------\n\n\tasync trigger_constructor() {\n\n\t\tthis.messagingService.fac_controller_show_please_wait_event.subscribe(message => {\n\t\t\tthis.show_please_wait_dialog();\n\t\t});\n\n\t\tthis.messagingService.fac_controller_hide_please_wait_event.subscribe(message => {\n\t\t\tthis.hide_please_wait_dialog();\n\t\t});\n\n\t\tthis.messagingService.fac_request_fac_reload_event.subscribe(message => {\n\t\t\tthis.reload_factura();\n\t\t});\n\n\t\tthis.messagingService.fac_request_fac_reload_ocr_info_event.subscribe(message => {\n\t\t\tthis.reload_factura_pull_ocr_info();\n\t\t});\n\n\t\tthis.messagingService.fac_new_image_loaded_event.subscribe(message => {\n\t\t\tthis.reload_factura_pull_ocr_info();\n\t\t});\n\n\t\tthis.messagingService.fac_nullify_factura_event.subscribe(message => {\n\t\t\tthis.NullifyFactura(message);\n\t\t});\n\n\t\t// --- Dynamics Debug ---\n\n\t\tthis.messagingService.fac_sync_with_dynamics_event.subscribe(async message => {\n\t\t\t// Removes the OCR Info part of the object to avoid large package on the post to the API\n\t\t\tlet factura_with_no_ocr = {}\n\t\t\tObject.assign(factura_with_no_ocr, this.factura_details_object);\n\t\t\tdelete factura_with_no_ocr[\"OcrInfo\"];\n\n\t\t\tlet response = await this.sync_to_dynamics_approved(factura_with_no_ocr, factura_with_no_ocr[\"TiempoRevision\"]);\n\t\t});\n\n\t\tthis.messagingService.fac_generate_dynamics_json_event.subscribe(async message => {\n\t\t\tlet dynamics_json = this.dynamics_service.generate_dynamics_json(this.factura_details_object);\n\t\t});\n\n\t\tthis.messagingService.fac_generate_factura_json_event.subscribe(async message => {\n\t\t});\n\n\n\t\t// Token Processing\n\t\t// ------------------------------------------------------------\n\n\t\tthis.token = this.route.snapshot.params[\"token\"];\n\t\tif (this.token !== undefined) {\n\t\t\tlet result = this.validate_token(this.token);\n\t\t\tif (result !== null) {\n\t\t\t\tthis.receipt_id = result[\"receiptid\"];\n\t\t\t\tthis.abox_services_api_token = result[\"token\"];\n\t\t\t\tthis.abox_services_api_user = result[\"user\"];\n\n\t\t\t\tthis.is_token_valid = true;\n\t\t\t\tthis.receipt_services.SetToken(this.abox_services_api_token);\n\t\t\t\tthis.reload_factura();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.is_token_valid = false;\n\t\t\t\tthis.message = \"The token is not valid.\";\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.is_token_valid = false;\n\t\t\tthis.message = \"The token is not valid.\";\n\t\t}\n\n\t\t// Messages Subscriptions\n\t\t// ------------------------------------------------------------\n\n\t\tthis.messagingService.fac_approve_event.subscribe((obj) => { this.show_approve_modal_dialog(); });\n\t\tthis.messagingService.fac_reject_event.subscribe((obj) => { this.reject_factura(); });\n\t\tthis.messagingService.fac_save_event.subscribe((obj) => { this.save_factura(); });\n\t}\n\n\tasync ngOnInit() {\n\t\t//$('#validationsLimitConsumptions').modal('show');\n\t}\n\n\tngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t}\n\n\n\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjX2R5bmFtaWNzX3N5bmMvZmFjX2R5bmFtaWNzX3N5bmMuY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \"
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { SharedDataService } from '../../services/shared_data.service';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { ReceiptService } from '../../services/receipt.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"fac-dynamics-sync\",\n\ttemplateUrl: \"fac_dynamics_sync.component.html\",\n\tstyleUrls: [\"fac_dynamics_sync.component.css\"]\n})\nexport class Fac_Dynamics_Sync implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n constructor(\n\t\tprivate receipt_services: ReceiptService,\n\t\tprivate messagingService: MessagingService, \n\t\tprivate shared_data_service: SharedDataService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate token_service: TokenService\n\t) {\n }\n\n\t// View Methods\n\t// --------------------------------------------------------\n\n\tsync_to_dynamics() {\n\t\tthis.messagingService.Fac_Sync_With_Dynamics({});\n\t}\n\n\tgenerate_dynamics_json() {\n\t\tthis.messagingService.Fac_Generate_Dynamics_Json({});\n\t}\n\n\tgenerate_factura_json() {\n\t\tthis.messagingService.Fac_Generate_Factura_Json({});\n\t}\n\n // Component basic methods...\n\t// --------------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjX2VkaXRhYmxlc19jYXJkL2ZhY19lZGl0YWJsZXNfY2FyZC5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"
\\n\\t
\\n \\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { SharedDataService } from '../../services/shared_data.service';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { ReceiptService } from '../../services/receipt.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"fac-editables-card\",\n\ttemplateUrl: \"fac_editables_card.component.html\",\n\tstyleUrls: [\"fac_editables_card.component.css\"]\n})\nexport class Fac_Editables_Card implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n constructor(\n\t\tprivate receipt_services: ReceiptService,\n\t\tprivate messagingService: MessagingService, \n\t\tprivate shared_data_service: SharedDataService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate token_service: TokenService\n\t) {\n }\n\n // Component basic methods...\n\t// --------------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjX2VkaXRhYmxlc19mb3JtL2ZhY19lZGl0YWJsZXNfZm9ybS5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"
\\n
\\n
\\n
Estado: {{factura.Estado}}
\\n
Último cambio:
{{factura['UpdateDate']}} por {{factura['UpdateUserId']}}
\\n
\\n
\\n
ID: {{factura.idFactura}}
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n

( El monto no es válido )

\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n
{{factura.cedula}}
\\n
\\n
\\n
\\n
\\n \\n

{{factura.nit}}

\\n
\\n
\\n
\\n \\n
\\n\\n
\\n
\\n
\\n
Estado: {{factura.Estado}}
\\n
Último cambio:
{{factura['UpdateDate']}} por {{factura['UpdateUserId']}}
\\n
\\n
\\n
ID: {{factura.idFactura}}
\\n
\\n
\\n
\\n
\\n
\\n \\n
{{factura.Factura}}
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
{{factura['Fecha']}}
\\n
\\n
\\n
\\n \\n
\\n {{ factura['OtraFarmacia'] }}\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
{{factura.MedioCompra}}
\\n
\\n
\\n
\\n
\\n \\n

{{factura.MontoTotal | number: '1.0-0'}}

\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n
{{factura.cedula}}
\\n
\\n
\\n
\\n
\\n \\n

{{factura.nit}}

\\n
\\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { SharedDataService } from '../../services/shared_data.service';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { ReceiptService } from '../../services/receipt.service';\n\ndeclare var jquery: any;\ndeclare var $: any;\n\n@Component({\n\tselector: \"fac-editables-form\",\n\ttemplateUrl: \"fac_editables_form.component.html\",\n\tstyleUrls: [\"fac_editables_form.component.css\"]\n})\nexport class Fac_Editables_Form implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tprivate factura: any = {};\n\tprivate factura_ocr_details: any = null;\n\n\t// Field Validators\n\tprivate fval_monto: boolean = true;\n\n\tconstructor(\n\t\tprivate receipt_services: ReceiptService,\n\t\tprivate messagingService: MessagingService,\n\t\tprivate shared_data_service: SharedDataService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate token_service: TokenService\n\t) {\n\t}\n\n\t// HTML Controls events...\n\t// --------------------------------------------------------\n\n\tfocus(dom_object) {\n\t\tthis.messagingService.Fac_Field_Clicked(dom_object);\n\t}\n\n\teval_ocr_field(field) {\n\t\tif (this.factura_ocr_details === null || this.factura_ocr_details === undefined) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (field === \"factura\") {\n\t\t\tif (this.factura_ocr_details[\"receiptnumber\"] && this.factura_ocr_details[\"receiptnumber\"][\"hasMatches\"]) {\n\t\t\t\tthis.factura[\"ocr_factura\"] = true;\n\t\t\t}\n\t\t}\n\t\tif (field === \"farmacia\") {\n\t\t\tif (this.factura_ocr_details[\"pharmacyname\"] && this.factura_ocr_details[\"pharmacyname\"][\"hasMatches\"]) {\n\t\t\t\tthis.factura[\"ocr_farmacia\"] = true;\n\t\t\t}\n\t\t}\n\t\tif (field === \"fecha\") {\n\t\t\tif (this.factura_ocr_details[\"receiptdate\"] && this.factura_ocr_details[\"receiptdate\"][\"hasMatches\"]) {\n\t\t\t\tthis.factura[\"ocr_fecha\"] = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tvaluechange(e, field) {\n\t\tswitch (field) {\n\t\t\tcase 'monto':\n\t\t\t\tlet m = this.factura['MontoTotal'];\n\t\t\t\tthis.fval_monto = !isNaN(Number(m));\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Angular binding methods...\n\t// --------------------------------------------------------\n\n\textract_nombre_farmacia(factura) {\n\t\tif (factura[\"Farmacia\"] === undefined || factura[\"Farmacia\"] === null) return \"\";\n\t\treturn factura[\"Farmacia\"] !== \"\" && factura[\"Farmacia\"][\"ID\"] === undefined ? factura[\"Farmacia\"] : factura[\"Farmacia\"][\"Nombre\"];\n\t}\n\n\t// Used to select the farmacia\n\tasync selected_item_changed(item) {\n\t\tif (item[\"other\"] !== undefined) {\n\t\t\tthis.factura[\"Farmacia\"] = { \"ID\": null, \"Nombre\": item[\"other\"] };\n\t\t\tthis.factura[\"OtraFarmacia\"] = item[\"other\"];\n\t\t}\n\t\telse {\n\t\t\tthis.factura[\"Farmacia\"] = { \"ID\": item[\"id\"], \"Nombre\": item[\"name\"] };\n\t\t}\n\t}\n\n\t// Component basic methods...\n\t// --------------------------------------------------------\n\n\tasync reload_ocr_info() {\n\t\t// Pulls the OCR details from the shared data service\n\t\tthis.factura_ocr_details = await this.shared_data_service.fac_ocr_details;\n\n\t\tthis.eval_ocr_field('factura');\n\t\tthis.eval_ocr_field('farmacia');\n\t\tthis.eval_ocr_field('fecha');\n\t}\n\n\tasync init_operations() {\n\t\t// Verifies if there is already a factura loaded in the shared data service\n\t\t// and extracts and converts the non abbott products to the current list.\n\t\tthis.factura = await this.shared_data_service.fac_details;\n\n\t\tif (this.factura) {\n\t\t\t// Sets the date with a format that is readable by the date picker control\n\t\t\tlet new_date = new Date(this.factura[\"Fecha\"]);\n\t\t\tlet m: string = \"\";\n\t\t\tm = String(new_date.getMonth() + 1);\n\t\t\tlet d: string = \"\";\n\t\t\td = String(new_date.getDate());\n\t\t\tthis.factura[\"Fecha\"] = `${new_date.getFullYear()}-${m.padStart(2, '0')}-${d.padStart(2, '0')}`;\n\n\t\t\tlet update_date = new Date(this.factura[\"UpdateDate\"]);\n\t\t\tthis.factura[\"UpdateDate\"] = `${update_date.getFullYear()}-${(update_date.getMonth() + 1).toString().padStart(2, '0')}-${update_date.getDate().toString().padStart(2, '0')} ${update_date.getHours().toString().padStart(2, '0')}:${update_date.getMinutes().toString().padStart(2, '0')} `\n\n\t\t\t// Pulls the OCR details from the shared data service\n\t\t\tthis.factura_ocr_details = await this.shared_data_service.fac_ocr_details;\n\n\t\t\tthis.eval_ocr_field('factura');\n\t\t\tthis.eval_ocr_field('farmacia');\n\t\t\tthis.eval_ocr_field('fecha');\n\t\t}\n\t}\n\n\tasync ngOnInit() {\n\t\tthis.messagingService.fac_loaded_event.subscribe(message => {\n\t\t\tthis.init_operations();\n\t\t});\n\n\t\tthis.messagingService.fac_ocr_info_updated_event.subscribe(message => {\n\t\t\tthis.reload_ocr_info();\n\t\t});\n\n\t\tthis.init_operations();\n\t}\n\n\tngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t}\n}","module.exports = \".fac-editor-stats {\\n padding-top: 10px;;\\n padding-left:20px; \\n padding-right:20px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWNfZWRpdG9yX3N0YXRzL2ZhY19lZGl0b3Jfc3RhdHMuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsa0JBQWtCO0FBQ3RCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9mYWNfZWRpdG9yX3N0YXRzL2ZhY19lZGl0b3Jfc3RhdHMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mYWMtZWRpdG9yLXN0YXRzIHtcbiAgICBwYWRkaW5nLXRvcDogMTBweDs7XG4gICAgcGFkZGluZy1sZWZ0OjIwcHg7IFxuICAgIHBhZGRpbmctcmlnaHQ6MjBweDtcbn0iXX0= */\"","module.exports = \"
\\n
\\n
\\n
Usuario realizando la revisión: {{editor_user}}
\\n
\\n
\\n
{{elapsed.hours}}h\\n : {{elapsed.minutes}}m : {{elapsed.seconds}}s \\n
\\n
{{finalElapseTime.hours}}h\\n : {{finalElapseTime.minutes}}m : {{finalElapseTime.seconds}}s\\n
\\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter, ChangeDetectorRef, ChangeDetectionStrategy} from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { SharedDataService } from '../../services/shared_data.service';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { ReceiptService } from '../../services/receipt.service';\nimport { ThrowStmt } from \"@angular/compiler\";\nimport { Subject, interval } from \"rxjs\";\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\nexport interface TimeSpan {\n\thours: number;\n\tminutes: number;\n\tseconds: number;\n}\n\n@Component({\n\tselector: \"fac-editor-stats\",\n\ttemplateUrl: \"fac_editor_stats.component.html\",\n\tstyleUrls: [\"fac_editor_stats.component.css\"],\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class Fac_Editor_Stats implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tprivate factura: any = {};\n\tprivate editor_user: string = \"\";\n\n\tpublic timerInit: boolean = false;\n\ttimerCount: Date;\n\ttimerString: string = '';\n\ttimerFunction: any;\n\ttimerSubscription = null;\n\tfinalElapseTime: any = null;\n\n constructor(\n\t\tprivate receipt_services: ReceiptService,\n\t\tprivate messagingService: MessagingService, \n\t\tprivate shared_data_service: SharedDataService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate token_service: TokenService,\n\t\tprivate changeDetector: ChangeDetectorRef\n\t) {\n }\n\n\t// Timer operations...\n\t// --------------------------------------------------------\n\n\tstop_timer() {\n\t\tthis.timerInit = false;\n\t\tthis.timerSubscription.unsubscribe(); \n\t\tthis.factura[\"TiempoRevision\"] = this.getElapsedTime_seconds(this.timerCount);\n\t}\n\n\tstart_timer() {\n\t\t// Starts the time.\n\t\t// ------------------------------------------------\n\t\tthis.timerInit = true;\n\t\tthis.timerCount = new Date();\n\t\tthis.timerSubscription = interval(1000).subscribe(() => {\n\t\t\tif (!this.changeDetector['destroyed']) {\n\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tgetElapsedTime(entry: Date): TimeSpan {\n\t\tif(entry == null){return}\n\t\tlet totalSeconds = Math.floor((new Date().getTime() - entry.getTime()) / 1000);\n\n\t\tlet hours = 0;\n\t\tlet minutes = 0;\n\t\tlet seconds = 0;\n\n\t\tif (totalSeconds >= 3600) {\n\t\t\thours = Math.floor(totalSeconds / 3600);\n\t\t\ttotalSeconds -= 3600 * hours;\n\t\t}\n\n\t\tif (totalSeconds >= 60) {\n\t\t\tminutes = Math.floor(totalSeconds / 60);\n\t\t\ttotalSeconds -= 60 * minutes;\n\t\t}\n\n\t\tseconds = totalSeconds;\n\n\t\treturn {\n\t\t\thours: hours,\n\t\t\tminutes: minutes,\n\t\t\tseconds: seconds\n\t\t};\n\t}\n\n\tgetElapsedTime_seconds(entry: Date): number {\n\t\tif(entry == null){return}\n\t\tlet totalSeconds = Math.floor((new Date().getTime() - entry.getTime()) / 1000);\n\t\treturn totalSeconds;\n\t}\n\n\tgetFinalTime(entry: Date) {\n\t\tif(entry == null){return}\n\t\tlet totalSeconds = Math.floor((new Date().getTime() - entry.getTime()) / 1000);\n\n\t\treturn totalSeconds;\n\t}\n\n // Component basic methods...\n\t// --------------------------------------------------------\n\n async init_operations() {\n\t\tthis.factura = await this.shared_data_service.fac_details;\n\t\tthis.editor_user = await this.shared_data_service.fac_editor_user;\n\t\t\n\t\tif (this.factura && this.factura[\"Estado\"] !== undefined && this.factura[\"Estado\"] !== 'Aprobada') {\n\t\t\tthis.start_timer();\n\t\t}\n\n\t\tthis.changeDetector.detectChanges();\n\t}\n\n async ngOnInit() {\n\t\tthis.messagingService.fac_loaded_event.subscribe(message => {\n\t\t\tthis.init_operations();\n\t\t});\n\n\t\tthis.messagingService.fac_stop_timer_event.subscribe(message => {\n\t\t\tthis.stop_timer();\n\t\t});\n\n\t\tthis.messagingService.fac_start_timer_event.subscribe(message => {\n\t\t\tthis.stop_timer();\n\t\t});\n\n\t\tthis.init_operations();\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjX2Zhcm1hY2lhc19zZWFyY2hfYm94L2ZhY19mYXJtYWNpYXNfc2VhcmNoX2JveC5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"
\\n \\n
\"","import { Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter, ChangeDetectorRef } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { Farmacia } from '../../models/farmacia';\nimport { ReceiptService } from '../../services/receipt.service';\nimport { SharedDataService } from '../../services/shared_data.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"fac-farmacias-search-box\",\n\ttemplateUrl: \"fac_farmacias_search_box.component.html\",\n\tstyleUrls: [\"fac_farmacias_search_box.component.css\"]\n})\nexport class Fac_Farmacias_Search_Box implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\tpublic model: string = \"\";\n\tclickedItem:string;\n\n\t@Output() selectedItemChanged = new EventEmitter();\n\n\tprivate farmaciasList: any = [{\"name\":\"No hay farmacias encontrados.\"}];\n\n constructor(\n\t\tprivate messagingService: MessagingService, \n\t\tprivate receiptService: ReceiptService,\n\t\tprivate shared_data_service: SharedDataService,\n\t\tprivate cRef: ChangeDetectorRef\n\t\t) {\n }\n\n\t// HTML Controls events...\n\t// --------------------------------------------------------\n\n\tfocus(dom_object) {\n\t\tthis.messagingService.Fac_Field_Clicked(dom_object);\n\t}\n\n\t// When the user selects an item from the drop down, this method sets the item and the value in the search box\n\t// Invoking the message suscription \"selectedItemChanged\"\n\tselectedItem(item){\n\t\tif (item[\"item\"][\"other\"] != undefined) item.preventDefault();\n\t\tthis.clickedItem = item.item;\n\t\tthis.selectedItemChanged.emit(item[\"item\"]);\n\t\tif (item[\"item\"][\"other\"] != undefined) this.model = null;\n\t}\n\n\t// Searches within the input item list, any item that matches the input from the searchbox\n\tfind_term(term) {\n\t\tlet _this = this;\n\t\treturn term.length < 2 ? [] : function() {\n\t\t\tlet found_items = _this.farmaciasList.filter(v => {\n\n\t\t\t\tif (v[\"name\"].toLowerCase().indexOf(term.toLowerCase()) > -1) {\n\t\t\t\t\treturn v[\"name\"];\n\t\t\t\t}\n\n\t\t\t});\n\t\t\tif (found_items.length > 0) {\n\t\t\t\treturn found_items.slice(0, 20); // Returns the top 20 results found.\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [\n\t\t\t\t\t{ name: \"No se encontró. Agregar como otra farmacia.\", other: term }\n\t\t\t\t]\n\t\t\t}\n\t\t}();\n\t}\n\n\t// Sets the value that is shown in the list of the type ahead drop down\n\tformatter = (farmacia: Farmacia) => farmacia[\"name\"];\n\n\t// Main search function that receives the input from the searchbox\n\tsearch = (text$: Observable) => \n\t\ttext$.pipe(\n\t\t\tdebounceTime(200),\n\t\t\tdistinctUntilChanged(),\n\t\t\tmap(term => this.find_term(term))\n\t\t);\n\n\n\t// Component basic methods...\n\t// --------------------------------------------------------\n\n\tasync init_operations() {\n\t\tlet country = await this.shared_data_service.fac_country;\n\t\tlet factura = await this.shared_data_service.fac_details;\n\t\t\n\t\tif (country !== undefined && country !== \"\") {\n\t\t\tlet farmacias_search = await this.receiptService.GetDrugStoresData(country);\n\t\t\tif (farmacias_search[\"result\"]) {\n\t\t\t\tthis.farmaciasList = farmacias_search[\"data\"].filter(f => f[\"status\"] != \"IN\");\n\t\t\t}\n\t\t}\n\t\tthis.model = factura[\"Farmacia\"];\n\n\t\tif (factura[\"Estado\"] !== \"Aprobada\") {\n\t\t\tthis.cRef.detectChanges();\n\t\t}\n\t}\n\n async ngOnInit() {\n\t\tthis.messagingService.fac_loaded_event.subscribe(message => {\n\t\t\tthis.init_operations();\n\t\t});\n\n\t\tthis.init_operations();\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".fac-header .btn-info {\\n color: white;\\n}\\n\\n.fac-header .btn-warning {\\n color: black;\\n}\\n\\n.fac-header .btn-success {\\n color: white;\\n}\\n\\n.fac-header .btn-danger {\\n color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWNfaGVhZGVyL2ZhY19oZWFkZXIuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksWUFBWTtBQUNoQjs7QUFFQTtJQUNJLFlBQVk7QUFDaEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2ZhY19oZWFkZXIvZmFjX2hlYWRlci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZhYy1oZWFkZXIgLmJ0bi1pbmZvIHtcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi5mYWMtaGVhZGVyIC5idG4td2FybmluZyB7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuXG4uZmFjLWhlYWRlciAuYnRuLXN1Y2Nlc3Mge1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmZhYy1oZWFkZXIgLmJ0bi1kYW5nZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbn0iXX0= */\"","module.exports = \"
\\n \\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { SharedDataService } from '../../services/shared_data.service';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { ReceiptService } from '../../services/receipt.service';\n\ndeclare var jquery: any;\ndeclare var $: any;\n\n@Component({\n\tselector: \"fac-header\",\n\ttemplateUrl: \"fac_header.component.html\",\n\tstyleUrls: [\"fac_header.component.css\"]\n})\nexport class Fac_Header implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tprivate factura: any = {};\n\n\tconstructor(\n\t\tprivate receipt_services: ReceiptService,\n\t\tprivate messagingService: MessagingService,\n\t\tprivate shared_data_service: SharedDataService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate token_service: TokenService\n\t) {\n\t}\n\n\t// Actions\n\t// --------------------------------------------------------\n\n\tinvoke_factura_approve() {\n\t\tthis.messagingService.Fac_Approve({});\n\t}\n\n\tinvoke_factura_reject() {\n\t\tthis.messagingService.Fac_Reject({});\n\t}\n\n\tinvoke_factura_save() {\n\t\tthis.messagingService.Fac_Save({});\n\t}\n\n\tinvoke_nullify_factura() {\n\t\tthis.messagingService.Fac_Nullify(this.factura);\n\t}\n\n\tclose() {\n\t\twindow.close();\n\t}\n\n\t// Component basic methods...\n\t// --------------------------------------------------------\n\n\tasync init_operations() {\n\t\tthis.factura = await this.shared_data_service.fac_details;\n\t}\n\n\tasync ngOnInit() {\n\t\tthis.messagingService.fac_loaded_event.subscribe(message => {\n\t\t\tthis.init_operations();\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t}\n}","module.exports = \".imageBox {\\n position: relative;\\n margin-top: 10px;;\\n height: 85vh;\\n width: 100%;\\n border: 1px solid #aaa;\\n background: #fff;\\n overflow: hidden;\\n background-repeat: no-repeat;\\n cursor: move;\\n /* box-shadow: 4px 4px 12px #B0B0B0; */\\n }\\n\\n.imageBox .thumbBox {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 200px;\\n height: 200px;\\n margin-top: -100px;\\n margin-left: -100px;\\n box-sizing: border-box;\\n border: 1px solid rgba(0,0,0,.125);\\n box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);\\n background: none repeat scroll 0% 0% transparent;\\n}\\n\\n.imageBox .spinner {\\n position: absolute;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n right: 0;\\n text-align: center;\\n line-height: 400px;\\n background: rgba(0,0,0,0.7);\\n color: white;\\n font-size: 25px;;\\n}\\n\\n.fac-image .btn {\\n margin-left: 2.5px;\\n margin-right: 2.5px;\\n}\\n\\n.fac-image .btn:focus {\\n background-color: #ffc107;\\n}\\n\\n.fac-image .row .col {\\n padding-left: 0px;\\n}\\n\\n.clearfix {\\n *zoom: 1;\\n }\\n\\n.clearfix:before{\\n content: \\\" \\\";\\n display: table;\\n }\\n\\n.clearfix:after{\\n content: \\\" \\\";\\n display: table;\\n clear: both;\\n }\\n\\n.cropPoint{\\n position: absolute;\\n height: 8px;\\n width: 8px;\\n background-color: rgba(255,255,255,0.7);\\n cursor: pointer;\\n }\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWNfaW1hZ2UvZmFjX2ltYWdlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixXQUFXO0lBQ1gsc0JBQXNCO0lBQ3RCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsNEJBQTRCO0lBQzVCLFlBQVk7SUFDWixzQ0FBc0M7RUFDeEM7O0FBRUY7SUFDSSxrQkFBa0I7SUFDbEIsUUFBUTtJQUNSLFNBQVM7SUFDVCxZQUFZO0lBQ1osYUFBYTtJQUNiLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLGtDQUFrQztJQUNsQywyQ0FBMkM7SUFDM0MsZ0RBQWdEO0FBQ3BEOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixPQUFPO0lBQ1AsU0FBUztJQUNULFFBQVE7SUFDUixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLDJCQUEyQjtJQUMzQixZQUFZO0lBQ1osZUFBZTtBQUNuQjs7QUFDQTtJQUNJLGtCQUFrQjtJQUNsQixtQkFBbUI7QUFDdkI7O0FBQ0E7SUFDSSx5QkFBeUI7QUFDN0I7O0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7S0FDSSxPQUFRO0VBQ1Y7O0FBQ0E7SUFDRSxZQUFZO0lBQ1osY0FBYztFQUNoQjs7QUFDQTtJQUNFLFlBQVk7SUFDWixjQUFjO0lBQ2QsV0FBVztFQUNiOztBQUNBO0lBQ0Usa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxVQUFVO0lBQ1YsdUNBQXVDO0lBQ3ZDLGVBQWU7RUFDakIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2ZhY19pbWFnZS9mYWNfaW1hZ2UuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5pbWFnZUJveCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7O1xuICAgIGhlaWdodDogODV2aDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICAvKiBib3gtc2hhZG93OiA0cHggNHB4IDEycHggI0IwQjBCMDsgKi9cbiAgfVxuXG4uaW1hZ2VCb3ggLnRodW1iQm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIG1hcmdpbi10b3A6IC0xMDBweDtcbiAgICBtYXJnaW4tbGVmdDogLTEwMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMTI1KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxMDAwcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGJhY2tncm91bmQ6IG5vbmUgcmVwZWF0IHNjcm9sbCAwJSAwJSB0cmFuc3BhcmVudDtcbn1cbiAgXG4uaW1hZ2VCb3ggLnNwaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiA0MDBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNyk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMjVweDs7XG59XG4uZmFjLWltYWdlIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiAyLjVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIuNXB4O1xufVxuLmZhYy1pbWFnZSAuYnRuOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjMTA3O1xufVxuLmZhYy1pbWFnZSAucm93IC5jb2wge1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbn1cblxuLmNsZWFyZml4IHtcbiAgICAqem9vbTogMTtcbiAgfVxuICAuY2xlYXJmaXg6YmVmb3Jle1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG4gIC5jbGVhcmZpeDphZnRlcntcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAuY3JvcFBvaW50e1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICB3aWR0aDogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH0iXX0= */\"","module.exports = \"
\\n \\n\\t
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n
Para ver la imagen original en otra página hacer click aquí
\\n\\n \\n\\n
\\n
\\n
\\n
\\n
Cargando imagen...
\\n
\\n
\\n
\\n\\n
\\n \\n

Your browser does not support PDFs. Ver el PDF.

\\n
\\n\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, ViewChild, SimpleChanges, ElementRef, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { SharedDataService } from '../../services/shared_data.service';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { ReceiptService } from '../../services/receipt.service';\nimport { DomSanitizer} from '@angular/platform-browser';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"fac-image\",\n\ttemplateUrl: \"fac_image.component.html\",\n\tstyleUrls: [\"fac_image.component.css\"]\n})\nexport class Fac_Image implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\t@ViewChild('visbleCanvas', { static: true })\n\tvisbleCanvas: ElementRef;\n\tprivate ctx: CanvasRenderingContext2D;\n\n\tprivate factura_is_loaded: boolean = false;\n\n\tprivate factura: any = {};\n\tprivate url_imagen_de_factura: string = \"\";\n\tprivate token: string = \"\";\n\tprivate factura_ocr_details: any = {};\n\tprivate factura_is_pdf: boolean = false;\n\n\tpdf_url_sanitized: any;\n\n\trot: number = 0;\n\tratio: number = 0.2; // By default opens the bill with a 20% zoom out\n\tCanvasCrop: any;\n\t_highlightColor:string = \"rgba(255, 0, 0, 0.2)\";\n\n\tprivate selected_polygons_words: any [];\n\n constructor(\n\t\tprivate receipt_services: ReceiptService,\n\t\tprivate messagingService: MessagingService, \n\t\tprivate shared_data_service: SharedDataService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate token_service: TokenService,\n\t\tprivate sanitizer: DomSanitizer\n\t) {\n }\n\n\t// Handle clicked fields...\n\t// --------------------------------------------------------\n\n\tshow_field_polygons_on_image(clicked_field_name) {\n\t\tlet words_with_polygons = null;\n\n\t\t$('.toast').toast({});\n\n\t\tif (Object.keys(this.factura_ocr_details).length === 0 && this.factura_ocr_details.constructor === Object) return;\n\n\t\tif (clicked_field_name === \"Factura\") {\n\t\t\twords_with_polygons = this.factura_ocr_details[\"receiptnumber\"][\"matched_words\"];\n\t\t}\n\n\t\tif (clicked_field_name === \"Farmacia\") {\n\t\t\twords_with_polygons = this.factura_ocr_details[\"pharmacyname\"][\"matched_words\"];\n\t\t}\n\n\t\tif (clicked_field_name === \"Fecha\") {\n\t\t\twords_with_polygons = this.factura_ocr_details[\"receiptdate\"][\"matched_words\"];\n\t\t}\n\n\t\tif (clicked_field_name[\"obj_type\"] === \"abbott-product\") {\n\t\t\tlet product = clicked_field_name[\"object\"];\n\t\t\tlet found = this.factura_ocr_details[\"products\"].filter(p => p[\"ID_Producto\"] === product[\"id\"]);\n\t\t\tif (found.length > 0) {\n\t\t\t\twords_with_polygons = found[\"matched_words\"];\n\t\t\t}\n\t\t}\n\n\t\tif (words_with_polygons != null) {\n\t\t\tif (this.selected_polygons_words !== words_with_polygons) {\n\t\t\t\tthis.selected_polygons_words = words_with_polygons;\n\t\t\t\tthis.DrawPolygons(words_with_polygons);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Image Operations...\n\t// --------------------------------------------------------\n\n\tload_image_in_canvas(image_url) {\n\n\t\tif (image_url === undefined) return;\n\n\t\ttry {\n\t\t\t$(\".spinner\").show();\n\t\t\tlet _this = this;\n\t\t\tthis.CanvasCrop = $.CanvasCrop({\n\t\t\t\tcropBox: \".imageBox\",\n\t\t\t\timgSrc: image_url,\n\t\t\t\tlimitOver: 0,\n\t\t\t\timageLoadedFx: () => {\n\t\t\t\t\t// Hides the Spinner\n\t\t\t\t\t$(\".spinner\").hide();\n\t\t\t\t\t_this.CanvasCrop.scale(_this.ratio);\n\t\t\t\t\t_this.CanvasCrop.rotate(_this.rot);\n\t\t\t\t},\n\t\t\t\timageLoadedErrorFx: (err) => {\n\t\t\t\t\tconsole.log(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tcatch(err) {\n\t\t\tconsole.log(err);\n\t\t}\n\t}\n\n\tRotate_Left() {\n\t\tthis.rot -= 90;\n\t\tthis.rot = this.rot < 0 ? 270 : this.rot;\n\t\tthis.CanvasCrop.rotate(this.rot);\n\t\tthis.DrawPolygons(this.selected_polygons_words);\n\n\t}\n\n\tRotate_Right() {\n\t\tthis.rot += 90;\n\t\tthis.rot = this.rot > 360 ? 90 : this.rot;\n\t\tthis.CanvasCrop.rotate(this.rot);\n\t\tthis.DrawPolygons(this.selected_polygons_words);\n\t}\n\n\tZoom_Out() {\n\t\tthis.ratio = this.ratio - 0.3;\n\t\tif (this.ratio <= 0) this.ratio = 0.1; // Mínimo 10%\n\t\tthis.CanvasCrop.scale(this.ratio);\n\t\tthis.DrawPolygons(this.selected_polygons_words);\n\t\t// this.showReAnalizeButton = true;\n\t\t// this.messagingService.TriggerDrawPolygons();\n\t}\n\n\tZoom_In() {\n\t\tthis.ratio = this.ratio + 0.3;\n\t\tthis.CanvasCrop.scale(this.ratio);\n\t\tthis.DrawPolygons(this.selected_polygons_words);\n\t}\n\n\tasync reset_image() {\n\n\t\t// Nota:\n\t\t// Se le agregó una función al plugin de $.canvascrop al objeto que retorna:\n\t\t// get_image: function() { return img; }\n\n\t\tlet canvas = document.getElementById(\"visbleCanvas\") as HTMLCanvasElement;\n\t\tlet ctx = canvas.getContext(\"2d\");\n\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.drawImage(this.CanvasCrop.get_image(), 0, 0, canvas.width, canvas.height);\n\t}\n\n\t// Polygon Operations...\n\t// --------------------------------------------------------\n\n\tDrawPolygon = (polygon) => {\n let color = this._highlightColor;\n let vs = polygon.vertices;\n let canvas = document.getElementById(\"visbleCanvas\") as HTMLCanvasElement;\n\t\tlet ctx = canvas.getContext(\"2d\");\n let vArray = [];\n vs.forEach(v => { vArray.push(this.scaleValue(v.x)); vArray.push(this.scaleValue(v.y)); });\n var poly = vArray;\n ctx.fillStyle = color;\n ctx.lineWidth = 1;\n\n ctx.beginPath();\n ctx.moveTo(poly[0], poly[1]);\n for( let item=2 ; item < poly.length-1 ; item+=2 ){ctx.lineTo( poly[item] , poly[item+1] )}\n\n ctx.closePath();\n ctx.fill();\n\t}\n\n\tasync DrawPolygons(wordMatches) {\n\t\tif (wordMatches != undefined) {\n\t\t\tthis.reset_image();\n\t\t\twordMatches.forEach(w => {\n\t\t\t\tthis.DrawPolygon(w);\n\t\t\t});\n\t\t}\n\t}\n\n\tscaleValue(value){\n\t\t//scale a provided value by the scalefactor\n\t\t//this way we can define the polygons at the native image size\n\t\t//but it scales the values relative to the hidden image element\n\t\treturn value*this.ratio;\n\t}\n\n // Component basic methods...\n\t// --------------------------------------------------------\n\n\tasync reload_ocr_info() {\n\t\t// Pulls the OCR details from the shared data service\n\t\tthis.factura_ocr_details = await this.shared_data_service.fac_ocr_details;\n\t}\n\n\tasync reload_factura_imagen(new_url) {\n\t\tthis.factura = await this.shared_data_service.fac_details;\n\t\tif (this.factura) {\n\t\t\tthis.url_imagen_de_factura = new_url;\n\t\t\t\n\t\t\t// Verifies if the factura is a pdf, in that case, no analysis is performed.\n\t\t\tif (this.url_imagen_de_factura != undefined && this.url_imagen_de_factura.toUpperCase().indexOf(\".PDF\") >= 0) {\n\t\t\t\tthis.factura_is_pdf = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.factura_is_pdf = false;\n\t\t\t}\n\n\t\t\tthis.factura_is_loaded = true;\n\t\t\t\n\t\t\tif (!this.factura_is_pdf) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.load_image_in_canvas(this.url_imagen_de_factura);\t\n\t\t\t\t}, 1500);\n\t\t\t}\n\t\t}\n\t}\n\n async init_operations() {\n\t\t// Verifies if there is already a factura loaded in the shared data service\n\t\t// and extracts and converts the non abbott products to the current list.\n\t\tthis.factura = await this.shared_data_service.fac_details;\n\t\tthis.token = await this.shared_data_service.fac_token;\n\n\t\tif (this.factura) {\n\t\t\t// Verifies if the factura needs to be analyzed to extract the polygons from the image\n\t\t\tif (this.factura[\"OcrInfo\"] !== undefined && this.factura[\"OcrInfo\"][\"imageText\"] === null) {\n\t\t\t\t// Needs to be analyzed\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this.factura[\"OcrInfo\"] !== undefined) {\n\t\t\t\t\tthis.factura_ocr_details = JSON.parse(unescape(this.factura[\"OcrInfo\"][\"imageText\"]));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.url_imagen_de_factura = this.factura[\"imageUrl\"];\n\n\t\t\t// Verifies if the factura is a pdf, in that case, no analysis is performed.\n\t\t\tif (this.url_imagen_de_factura != undefined && this.url_imagen_de_factura.toUpperCase().indexOf(\".PDF\") >= 0) {\n\t\t\t\tthis.factura_is_pdf = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.factura_is_pdf = false;\n\t\t\t}\n\n\t\t\tthis.factura_is_loaded = true;\n\t\t\t\n\t\t\tif (!this.factura_is_pdf) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.load_image_in_canvas(this.url_imagen_de_factura);\t\n\t\t\t\t}, 1500);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.pdf_url_sanitized = this.sanitizer.bypassSecurityTrustResourceUrl(this.url_imagen_de_factura);\n\t\t\t}\n\t\t}\n\t}\n\n async ngOnInit() {\n\n\t\tthis.messagingService.fac_field_clicked_event.subscribe(factura_field_clicked => {\n\t\t\tthis.show_field_polygons_on_image(factura_field_clicked);\n\t\t});\n\n\t\tthis.messagingService.fac_loaded_event.subscribe(message => {\n\t\t\tthis.init_operations();\n\t\t});\n\n\t\tthis.messagingService.fac_ocr_info_updated_event.subscribe(message => {\n\t\t\tthis.reload_ocr_info();\n\t\t});\n\n\t\tthis.messagingService.fac_new_image_loaded_event.subscribe(new_url => {\n\t\t\tthis.reload_factura_imagen(new_url);\n\t\t});\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjX25ld19pbWFnZS9mYWNfbmV3X2ltYWdlLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"
\\n \\n\\n \\n
\\n
\\n
\\n
\\n
Nueva Imagen
\\n \\n
\\n
\\n
\\n

\\n ¿Desea reemplazar la imagen de la factura?\\n

\\n
\\n
\\n
\\n \\n \\n
\\n
\\n Loading...\\n
\\n
\\n
\\n
\\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, ViewChild, SimpleChanges, ElementRef, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { SharedDataService } from '../../services/shared_data.service';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { ReceiptService } from '../../services/receipt.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"fac-new-image\",\n\ttemplateUrl: \"fac_new_image.component.html\",\n\tstyleUrls: [\"fac_new_image.component.css\"]\n})\nexport class Fac_New_Image implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tnewFile: any = null;\n\n\tprivate factura: any = {};\n\tprivate token: string = \"\";\n\n constructor(\n\t\tprivate receipt_services: ReceiptService,\n\t\tprivate messagingService: MessagingService, \n\t\tprivate shared_data_service: SharedDataService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate token_service: TokenService\n\t) {\n }\n\n\t// Image File Input methods...\n\t// --------------------------------------------------------\n\n\tasync UploadNewImgFile(e) {\n\t\tthis.newFile = e.currentTarget.files[0];\n\n\t\ttry {\n\t\t\tthis.token = await this.shared_data_service.fac_token;\n\t\t\t$(\"#confirm_new_image_modal\").modal('show');\n\t\t} catch (err) {\n\t\t\tconsole.log(err);\n\t\t}\n\t}\n\n\tasync approve_new_image() {\n\t\t$(\"#confirm_new_image_modal\").modal('hide');\n\n\t\tlet r = await this.receipt_services.UpdateReceiptImage(this.newFile, this.token);\n\n\t\tconsole.log(r);\n\n\t\tif(r['result']){\n\n\t\t\tlet new_image_file = r['data']['filename'];\n\t\t\tthis.messagingService.Fac_New_Image_Loaded(new_image_file);\n\n\t\t\t// this.newImageUrl.emit();\n\t\t\t// this.ToggleModal('pleaseWaitDialog',false);\n\t\t\t// this.ToggleModal('reanalizeModal', true)\n\t\t}\n\t\telse {\n\t\t\t// Handle Image Upload Error\n\t\t}\n\n\t\t$('#new_image').val('');\n\t}\n\n\tasync cancel_new_image() {\n\t\t$('#new_image').val('');\n\t\t$(\"#confirm_new_image_modal\").modal('hide');\n\t}\n\n // Component basic methods...\n\t// --------------------------------------------------------\n\n async init_operations() {\n\t\tthis.factura = await this.shared_data_service.fac_details;\n\t}\n\n async ngOnInit() {\n\t\tthis.messagingService.fac_loaded_event.subscribe(message => {\n\t\t\tthis.init_operations();\n\t\t});\n\n\t\tthis.factura = await this.shared_data_service.fac_details;\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".light-blue-backdrop {\\n background-color: #5cb3fd;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvZmFjdHVyYXNfcmV2aWV3L2ZhY3R1cmEtbW9kYWwvZmFjdHVyYV9tb2RhbC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0kseUJBQXlCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvZmFjdHVyYXNfcmV2aWV3L2ZhY3R1cmEtbW9kYWwvZmFjdHVyYV9tb2RhbC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmxpZ2h0LWJsdWUtYmFja2Ryb3Age1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2IzZmQ7XG59Il19 */\"","module.exports = \"
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\nimport { ModalDismissReasons, NgbDateStruct, NgbActiveModal, NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\nimport { MessagingService } from '../../../../services/messagingservice';\nimport { Factura_SearchResults_Object } from '../../../../models/facturas_search';\nimport { factura_modal_content_Component } from \"./factura_modal_content.component\";\n\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"factura_modal\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: \"factura_modal.component.html\",\n\tstyleUrls: [\"factura_modal.component.css\"]\n})\nexport class factura_modal_Component implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tprivate factura: Factura_SearchResults_Object = new Factura_SearchResults_Object('','','','','','','',);\n\t@Output() selectedEvent = new EventEmitter();\n\t\n\tOpenModal() {\n\t\tconst modalRef = this.modalService.open(\n\t\t\tfactura_modal_content_Component, \n\t\t\t{size: 'xl', backdropClass: 'light-blue-backdrop'}\n\t\t);\n\n\t\tmodalRef.componentInstance[\"factura\"] = this.factura;\n\t\tthis.ref.detectChanges();\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n\tconstructor(\n\t\tprivate modalService: NgbModal, \n\t\tprivate ref: ChangeDetectorRef, \n\t\tprivate messagingService: MessagingService) {\n\t\t\n\t\t// When a user selects an item from the product list component.\n this.messagingService.triggerOpenFacturaModal.subscribe(\n (factura) => {\n\t\t\t\tthis.factura = factura;\n\t\t\t\tthis.OpenModal();\n }\n );\n\t}\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n\n}","module.exports = \"
\\n
\\n

{{factura.ID_Factura}}

\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n
\"","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from \"@angular/core\";\nimport { NgbActiveModal, NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { MessagingService } from \"src/app/services/messagingservice\";\nimport { TokenService } from \"src/app/services/token.service\";\nimport { Factura_SearchResults_Object } from \"../../../../models/facturas_search\";\nimport { ReceiptService } from '../../../../services/receipt.service';\n\n@Component({\n\tselector: \"factura_modal_content\",\n\ttemplateUrl: \"factura_modal_content.component.html\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class factura_modal_content_Component implements OnInit {\n\t\n \t@Input() factura: Factura_SearchResults_Object; \n\n\t// Data Methods\n\n\tasync GetFacturaData() {\n\t\t// Gets the Token from the server\n\t\tlet token_response = await this.rs.Factura_Search_GetAuthToken(this.factura.ID_Factura, \"loymark\");\n\t\tif (token_response[\"result\"]) {\n\t\t\tlet token = token_response[\"data\"][\"response\"][\"details\"][\"token\"];\n\n\t\t\tlet ts = new TokenService();\n\t\t\tlet tokenresponse = ts.Decode(token);\n\t\t\tif (tokenresponse.result) {\n\t\t\t\ttoken = tokenresponse[\"data\"][\"token\"];\n\t\t\t\tthis.rs.SetToken(token);\n\t\t\t\n\t\t\t\t// Pulls the data from the server\n\t\t\t\tlet factura_data = await this.rs.GetReceiptDataWithProducts(this.factura.ID_Factura);\n\t\t\t\tconsole.log(factura_data);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Non authorized...\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"Cannot retrieve token.\");\n\t\t}\n\t}\n\n\t// Component methods...\n\n\tconstructor( \n\t\tpublic activeModal: NgbActiveModal, \n\t\tprivate ref: ChangeDetectorRef, \n\t\tprivate messagingService: MessagingService,\n\t\tprivate rs: ReceiptService\n\t) {\n\t\t\n\t}\n\t\n\tngOnInit() {\n\t\tconsole.log(\"Reached!\")\n\t\tconsole.log(this.factura);\n\t\tthis.GetFacturaData();\n \t}\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjdHVyYXNfc2VhcmNoL2ZhY3R1cmFzX3Jldmlldy9mYWN0dXJhX2RldGFpbF9mb3JtL2ZhY3R1cmFfZGV0YWlsX2Zvcm0uY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \"
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\nimport { ModalDismissReasons, NgbDateStruct, NgbActiveModal, NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\nimport { MessagingService } from '../../../../services/messagingservice';\nimport { Factura_SearchResults_Object } from '../../../../models/facturas_search';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"factura_detail_form\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: \"factura_detail_form.component.html\",\n\tstyleUrls: [\"factura_detail_form.component.css\"]\n})\nexport class factura_detail_form_Component implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\t@Input() factura: Factura_SearchResults_Object;\n\n\tselectedStatusChanged(status) {\n\t\tconsole.log(status);\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n\tconstructor(\n\t\tprivate ref: ChangeDetectorRef, \n\t\tprivate messagingService: MessagingService) {\n\t}\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n\n}","module.exports = \".input_dropdown {\\n padding: 5px;\\n}\\n.input_dropdown .btn {\\n padding: 0px;\\n border-radius: 0px;\\n padding-right: 10px;\\n padding-left: 10px;\\n background: #eeeeee;\\n width: 100%;\\n}\\n.input_dropdown .btn:hover {\\n color: black;\\n}\\n.input_dropdown p {\\n margin-bottom: 0px;\\n font-weight: bold;\\n}\\n.input_dropdown .d-inline-block {\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvZmFjdHVyYXNfcmV2aWV3L2lucHV0X2JveGVzL2lucHV0X2Ryb3Bkb3duL2lucHV0X2Ryb3Bkb3duLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxZQUFZO0FBQ2hCO0FBQ0E7SUFDSSxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLFdBQVc7QUFDZjtBQUNBO0lBQ0ksWUFBWTtBQUNoQjtBQUNBO0lBQ0ksa0JBQWtCO0lBQ2xCLGlCQUFpQjtBQUNyQjtBQUNBO0lBQ0ksV0FBVztBQUNmIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvZmFjdHVyYXNfcmV2aWV3L2lucHV0X2JveGVzL2lucHV0X2Ryb3Bkb3duL2lucHV0X2Ryb3Bkb3duLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaW5wdXRfZHJvcGRvd24ge1xuICAgIHBhZGRpbmc6IDVweDtcbn1cbi5pbnB1dF9kcm9wZG93biAuYnRuIHtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWVlZWU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4uaW5wdXRfZHJvcGRvd24gLmJ0bjpob3ZlciB7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuLmlucHV0X2Ryb3Bkb3duIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5pbnB1dF9kcm9wZG93biAuZC1pbmxpbmUtYmxvY2sge1xuICAgIHdpZHRoOiAxMDAlO1xufSJdfQ== */\"","module.exports = \"
\\n

{{title}}

\\n
\\n \\n
\\n \\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\nimport { ModalDismissReasons, NgbDateStruct, NgbActiveModal, NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\nimport { MessagingService } from '../../../../../services/messagingservice';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"input_dropdown\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: \"input_dropdown.component.html\",\n\tstyleUrls: [\"input_dropdown.component.css\"]\n})\nexport class input_dropdown_Component implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Input() title: string;\n @Input() placeholder: string;\n\t@Input() value: string;\n\t@Input() datalist: any[];\n\t@Input() labelfield: string = \"\";\n\t@Input() keyfield: string = \"\";\n\t@Output() selectedItemChangedEvent = new EventEmitter();\n\n\tSelect(selectedItem) {\n\t\tthis.value = selectedItem[this.labelfield];\n\t\tthis.selectedItemChangedEvent.emit(selectedItem);\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n\tconstructor(\n\t\tprivate ref: ChangeDetectorRef, \n\t\tprivate messagingService: MessagingService) {\n\t}\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n\n}","module.exports = \".input_textbox {\\n padding: 5px;\\n}\\n.input_textbox input {\\n height: 20px;\\n width: 100%;\\n padding: 5px;\\n color: #007bff;\\n}\\n.input_textbox p {\\n margin-bottom: 0px;\\n font-weight: bold;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvZmFjdHVyYXNfcmV2aWV3L2lucHV0X2JveGVzL2lucHV0X3RleHRib3gvaW5wdXRfdGV4dGJveC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksWUFBWTtBQUNoQjtBQUNBO0lBQ0ksWUFBWTtJQUNaLFdBQVc7SUFDWCxZQUFZO0lBQ1osY0FBYztBQUNsQjtBQUNBO0lBQ0ksa0JBQWtCO0lBQ2xCLGlCQUFpQjtBQUNyQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjdHVyYXNfc2VhcmNoL2ZhY3R1cmFzX3Jldmlldy9pbnB1dF9ib3hlcy9pbnB1dF90ZXh0Ym94L2lucHV0X3RleHRib3guY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5pbnB1dF90ZXh0Ym94IHtcbiAgICBwYWRkaW5nOiA1cHg7XG59XG4uaW5wdXRfdGV4dGJveCBpbnB1dCB7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBjb2xvcjogIzAwN2JmZjtcbn1cbi5pbnB1dF90ZXh0Ym94IHAge1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn0iXX0= */\"","module.exports = \"
\\n

{{title}}

\\n \\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\nimport { ModalDismissReasons, NgbDateStruct, NgbActiveModal, NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\nimport { MessagingService } from '../../../../../services/messagingservice';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"input_textbox\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: \"input_textbox.component.html\",\n\tstyleUrls: [\"input_textbox.component.css\"]\n})\nexport class input_textbox_Component implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Input() title: string;\n @Input() placeholder: string;\n @Input() value: string;\n\n // Component Methods\n\t// --------------------------------------------------\n\n\tconstructor(\n\t\tprivate ref: ChangeDetectorRef, \n\t\tprivate messagingService: MessagingService) {\n\t}\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n\n}","module.exports = \".col {\\n padding: 8px;\\n}\\n.main_box {\\n padding-left: 10px;\\n padding-right: 10px;\\n}\\n.text-box {\\n width: 120px;\\n font-size: 10px;\\n height: 37px;\\n}\\n.btn-submit{\\n height: 37px;\\n border-radius: 0px;\\n width: 80px;\\n min-width: 0px;\\n}\\n.please-wait {\\n padding: 10px;\\n}\\n.please-wait p {\\n font-size: 20px;\\n font-weight: bold;\\n}\\n.no-data {\\n padding: 10px;\\n}\\n.no-data p {\\n font-size: 20px;\\n font-weight: bold;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvZmFjdHVyYXNfc2VhcmNoX2JveGVzL2ZhY3R1cmFzX3NlYXJjaF9ib3hlcy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksWUFBWTtBQUNoQjtBQUNBO0lBQ0ksa0JBQWtCO0lBQ2xCLG1CQUFtQjtBQUN2QjtBQUNBO0lBQ0ksWUFBWTtJQUNaLGVBQWU7SUFDZixZQUFZO0FBQ2hCO0FBQ0E7SUFDSSxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxjQUFjO0FBQ2xCO0FBQ0E7SUFDSSxhQUFhO0FBQ2pCO0FBQ0E7SUFDSSxlQUFlO0lBQ2YsaUJBQWlCO0FBQ3JCO0FBQ0E7SUFDSSxhQUFhO0FBQ2pCO0FBQ0E7SUFDSSxlQUFlO0lBQ2YsaUJBQWlCO0FBQ3JCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvZmFjdHVyYXNfc2VhcmNoX2JveGVzL2ZhY3R1cmFzX3NlYXJjaF9ib3hlcy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbCB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm1haW5fYm94IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cbi50ZXh0LWJveCB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBoZWlnaHQ6IDM3cHg7XG59XG4uYnRuLXN1Ym1pdHtcbiAgICBoZWlnaHQ6IDM3cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIG1pbi13aWR0aDogMHB4O1xufVxuLnBsZWFzZS13YWl0IHtcbiAgICBwYWRkaW5nOiAxMHB4O1xufVxuLnBsZWFzZS13YWl0IHAge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5uby1kYXRhIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xufVxuLm5vLWRhdGEgcCB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufSJdfQ== */\"","module.exports = \"
\\n
\\n
\\n \\n
{{selectedCountry != undefined ? selectedCountry[\\\"id\\\"] : \\\"\\\"}}
\\n\\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n

Por favor espere...

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

No hay datos.

\\n
\\n
0\\\">\\n \\n \\n
\\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\nimport { ReceiptService } from '../../../services/receipt.service';\nimport { Factura_Search_Object, Factura_SearchResults_Object } from '../../../models/facturas_search';\nimport { Utilities } from '../../../utilities';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"facturas_search_boxes\",\n\ttemplateUrl: \"facturas_search_boxes.component.html\",\n\tstyleUrls: [\"facturas_search_boxes.component.css\"],\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class facturas_search_boxesComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tpublic factura: string = \"\";\n\tpublic nationalid: string = \"\";\n\n\tpublic loading_data: boolean = false;\n\tpublic facturas_list: Factura_SearchResults_Object[] = [];\n\n\tpublic searchObject: Factura_Search_Object = {\n\t\tcountry: \"\",\n\t\tfactura: \"\",\n\t\tpharmacy: \"\",\n\t\tnationalid: \"\",\n\t\tstartdate: \"\",\n\t\tenddate: \"\",\n\t\tpriority: \"\",\n\t\tstatus: \"\",\n\t\tpage: 1,\n\t\tpagesize: 10\n\t};\n\n\t// Helper method\n\tpublic ProcessNgbDate(selecteddate, defaultvalue) {\n\t\tif (selecteddate === undefined) return defaultvalue;\n\t\tif (selecteddate[\"day\"] === undefined || selecteddate[\"month\"] === undefined || selecteddate[\"year\"] === undefined) {\n\t\t\treturn defaultvalue;\n\t\t}\n\t\treturn selecteddate[\"year\"] + \"-\" + selecteddate[\"month\"] + \"-\" + selecteddate[\"day\"];\n\t}\n\n\tpublic GetDefaultStartDate() {\n\t\tlet date = new Date();\n\t\treturn { 'year': date.getFullYear(), 'month': 1, 'day': 1 }\n\t}\n\n\tpublic GetDefaultEndDate() {\n\t\tlet date = new Date();\n\t\treturn { 'year': date.getFullYear(), 'month': date.getMonth()+1, 'day': date.getDate() }\n\t}\n\n\t// Component events listeners...\n\n\tpublic selectedCountryChanged(country) {\n\t\t\n\t\tthis.searchObject.country = country[\"id\"];\n\t}\n\n\tpublic selectedPharmacyChanged(pharmacy) {\n\t\t\n\t\tthis.searchObject.pharmacy = pharmacy[\"id\"];\n\t}\n\n\tpublic selectedStartDateChanged(startdate) {\n\t\t\n\t\tthis.searchObject.startdate = this.ProcessNgbDate(startdate, '');\n\t}\n\n\tpublic selectedEndDateChanged(enddate) {\n\t\t\n\t\tthis.searchObject.enddate = this.ProcessNgbDate(enddate, '');\n\t}\n\n\tpublic selectedPriorityChanged(priority) {\n\t\t\n\t\tthis.searchObject.priority = priority[\"id\"];\n\t}\n\n\tpublic selectedStatusChanged(status) {\n\t\t\n\t\tthis.searchObject.status = status[\"id\"];\n\t}\n\n\t// Main Button Method:\n\tpublic async DoSearch() {\n\n\t\t// Sets the non-component fields\n\t\tthis.searchObject.nationalid = this.nationalid;\n\t\tthis.searchObject.factura = this.factura;\n\n\t\ttry {\n\t\t\tthis.loading_data = true; \n\t\t\tlet search_response = await this.receiptServices.Factura_Search_ProcessSearch(this.searchObject);\n\t\t\t\n\t\t\tif (Array.isArray(search_response)) {\n\t\t\t\tthis.facturas_list = this.DataCleanUp(search_response);\n\t\t\t}\n\n\t\t\tthis.loading_data = false;\n\t\t\tthis.ref.detectChanges();\n\t\t}\n\t\tcatch(err) {\n\t\t\tthis.loading_data = false;\n\t\t\tconsole.log(err);\n\t\t\tthis.ref.detectChanges();\n\t\t}\n\t}\n\n\tpublic DataCleanUp(facturas: Factura_SearchResults_Object[]) {\n\t\tfacturas.forEach(f => {\n\t\t\tf.Fecha = this.utilities.JSONDateParse(f.Fecha, 'N/A');\n\t\t\tf.Registrada = this.utilities.JSONDateParse(f.Registrada, 'N/A');\n\t\t});\n\t\treturn facturas;\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n\tconstructor(private receiptServices: ReceiptService, private ref: ChangeDetectorRef, private utilities: Utilities) {\n\t}\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tconsole.log(changes)\n }\n\n}","module.exports = \".btn-cell {\\n padding: 0;\\n width: 95px;\\n}\\n.btn-open-factura {\\n top: 10px;\\n height: 30px;\\n border-radius: 0px;\\n min-width: 80px;\\n padding: 5px;\\n margin-top: 5px;\\n}\\n.btn-open-factura p {\\n position: relative;\\n top: 0px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvZmFjdHVyYXNfc2VhcmNoX3Jlc3VsdHMvZmFjdHVyYXNfc2VhcmNoX3Jlc3VsdHMuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLFVBQVU7SUFDVixXQUFXO0FBQ2Y7QUFDQTtJQUNJLFNBQVM7SUFDVCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixZQUFZO0lBQ1osZUFBZTtBQUNuQjtBQUNBO0lBQ0ksa0JBQWtCO0lBQ2xCLFFBQVE7QUFDWiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjdHVyYXNfc2VhcmNoL2ZhY3R1cmFzX3NlYXJjaF9yZXN1bHRzL2ZhY3R1cmFzX3NlYXJjaF9yZXN1bHRzLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYnRuLWNlbGwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDk1cHg7XG59XG4uYnRuLW9wZW4tZmFjdHVyYSB7XG4gICAgdG9wOiAxMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgbWluLXdpZHRoOiA4MHB4O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG59XG4uYnRuLW9wZW4tZmFjdHVyYSBwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwcHg7XG59Il19 */\"","module.exports = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
FacturaFarmaciaCédulaEstadoFechaRegistrada
{{f.Factura}}{{f.Farmacia}}{{f.Cedula}}{{f.Estado}}{{f.Fecha}}{{f.Registrada}}\\n \\n
\\n\\n \\n\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter, ChangeDetectionStrategy } from \"@angular/core\";\nimport { NgbDateStruct } from \"@ng-bootstrap/ng-bootstrap\";\nimport { Factura_SearchResults_Object } from '../../../models/facturas_search';\nimport { MessagingService } from '../../../services/messagingservice';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"facturas_search_results\",\n\ttemplateUrl: \"facturas_search_results.component.html\",\n\tstyleUrls: [\"facturas_search_results.component.css\"]\n})\nexport class facturas_search_results_Component implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\t\n\t@Input() facturas_list: Factura_SearchResults_Object[] = [];\n\t@Output() selectedItemEvent = new EventEmitter();\n\n\tOpenFactura(factura) {\n\t\tthis.messagingService.TriggerOpenFacturaModal(factura);\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n\tconstructor(private messagingService: MessagingService) {\n\t}\n\n async ngOnInit() {\n\t\tconsole.log(this.facturas_list);\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjdHVyYXNfc2VhcmNoL3NlYXJjaF9ib3hlcy9jb3VudHJ5X2Ryb3Bkb3duL2NvdW50cnlfZHJvcGRvd24uY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \"
\\n \\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"country_dropdown\",\n\ttemplateUrl: \"country_dropdown.component.html\",\n\tstyleUrls: [\"country_dropdown.component.css\"]\n})\nexport class country_dropdown_Component implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Output() selectedItemChangedEvent = new EventEmitter();\n \n // Data:\n public datalist: any = [\n { 'id':'CR', 'name':'Costa Rica' },\n { 'id':'GT', 'name':'Guatemala' }\n ];\n\n\tselectedCountryChanged(selectedItem) {\n\t\tthis.selectedItemChangedEvent.emit(selectedItem);\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n // Sets the default Country\n this.selectedCountryChanged(this.datalist[0]);\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n\n}","module.exports = \".date {\\n font-size: 10px;\\n height: 37px;\\n}\\n.ngb-dp-arrow-btn {\\n width: 20px !important;\\n min-width: 30px !important;\\n}\\n::ng-deep div.ngb-dp-arrow > button {\\n min-width: 30px !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvc2VhcmNoX2JveGVzL2RhdGVfcGlja2VyL2RhdGVfcGlja2VyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxlQUFlO0lBQ2YsWUFBWTtBQUNoQjtBQUNBO0lBQ0ksc0JBQXNCO0lBQ3RCLDBCQUEwQjtBQUM5QjtBQUNBO0lBQ0ksMEJBQTBCO0FBQzlCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvc2VhcmNoX2JveGVzL2RhdGVfcGlja2VyL2RhdGVfcGlja2VyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGF0ZSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGhlaWdodDogMzdweDtcbn1cbi5uZ2ItZHAtYXJyb3ctYnRuIHtcbiAgICB3aWR0aDogMjBweCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMzBweCAhaW1wb3J0YW50O1xufVxuOjpuZy1kZWVwIGRpdi5uZ2ItZHAtYXJyb3cgPiBidXR0b24ge1xuICAgIG1pbi13aWR0aDogMzBweCAhaW1wb3J0YW50O1xufSJdfQ== */\"","module.exports = \"
\\n \\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter, ChangeDetectionStrategy } from \"@angular/core\";\nimport { NgbDateStruct } from \"@ng-bootstrap/ng-bootstrap\";\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"date_picker\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: \"date_picker.component.html\",\n\tstyleUrls: [\"date_picker.component.css\"]\n})\nexport class date_picker_Component implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\t@Input() selectedDate: string = \"\";\n\t@Input() defaultDate: string = \"\";\n\t@Output() selectedDateChangedEvent = new EventEmitter();\n\n\tpublic onDateSelect(selectedDate) {\n\t\tthis.selectedDateChangedEvent.emit(selectedDate);\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n\t\tif (this.defaultDate != '') {\n\t\t\tthis.selectedDate = this.defaultDate;\n\t\t\tthis.onDateSelect(this.defaultDate);\n\t\t}\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n\n}","module.exports = \".btn-secondary {\\n width: 110px;\\n background-color: #fff;\\n color: #000;\\n border: 1px solid rgba(0,0,0,.125); \\n border-radius: 0px !important;\\n font-size: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvc2VhcmNoX2JveGVzL2dlbmVyaWNfZHJvcGRvd24vZ2VuZXJpY19kcm9wZG93bi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksWUFBWTtJQUNaLHNCQUFzQjtJQUN0QixXQUFXO0lBQ1gsa0NBQWtDO0lBQ2xDLDZCQUE2QjtJQUM3QixlQUFlO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9mYWN0dXJhc19zZWFyY2gvc2VhcmNoX2JveGVzL2dlbmVyaWNfZHJvcGRvd24vZ2VuZXJpY19kcm9wZG93bi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJ0bi1zZWNvbmRhcnkge1xuICAgIHdpZHRoOiAxMTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyNSk7IFxuICAgIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbn0iXX0= */\"","module.exports = \"
\\n
\\n \\n \\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"generic_dropdown\",\n\ttemplateUrl: \"generic_dropdown.component.html\",\n\tstyleUrls: [\"generic_dropdown.component.css\"]\n})\nexport class generic_dropdown_Component implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\t@Input() placeholdertext: string = \"\";\n\t@Input() datalist: string = \"\";\n\t@Input() labelfield: string = \"\";\n\t@Input() keyfield: string = \"\";\n\t@Input() defaultindex: number = 0;\n\t@Output() selectedItemChangedEvent = new EventEmitter();\n\n\tItemClicked(selectedItem) {\n\t\tthis.placeholdertext = selectedItem[this.labelfield];\n\t\tthis.selectedItemChangedEvent.emit(selectedItem);\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n\t\tif (this.defaultindex !== -1) {\n\t\t\tthis.placeholdertext = this.datalist[this.defaultindex][this.labelfield];\n\t\t}\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjdHVyYXNfc2VhcmNoL3NlYXJjaF9ib3hlcy9waGFybWFjeV9kcm9wZG93bi9waGFybWFjeV9kcm9wZG93bi5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"
\\n \\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"pharmacy_dropdown\",\n\ttemplateUrl: \"pharmacy_dropdown.component.html\",\n\tstyleUrls: [\"pharmacy_dropdown.component.css\"]\n})\nexport class pharmacy_dropdown_Component implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Output() selectedItemChangedEvent = new EventEmitter();\n \n // Data:\n public datalist: any = [\n { 'id':'1', 'name':'Farmacia 1' }\n ];\n\n\tselectedPharmacyChanged(selectedItem) {\n\t\tthis.selectedItemChangedEvent.emit(selectedItem);\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjdHVyYXNfc2VhcmNoL3NlYXJjaF9ib3hlcy9wcmlvcml0eV9kcm9wZG93bi9wcmlvcml0eV9kcm9wZG93bi5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"
\\n \\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"priority_dropdown\",\n\ttemplateUrl: \"priority_dropdown.component.html\",\n\tstyleUrls: [\"priority_dropdown.component.css\"]\n})\nexport class priority_dropdown_Component implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Output() selectedItemChangedEvent = new EventEmitter();\n \n // Data:\n public datalist: any = [\n { 'id':'', 'name':'TODOS' },\n\t\t{ 'id':'ENSURE', 'name':'ENSURE' },\n\t\t{ 'id':'MIA', 'name':'MIA' },\n\t\t{ 'id':'KLARICID', 'name':'KLARICID' },\n\t\t{ 'id':'GLUCERNA', 'name':'GLUCERNA' },\n\t\t{ 'id':'PEDIALYTE', 'name':'PEDIALYTE' },\n\t\t{ 'id':'PEDIASURE', 'name':'PEDIASURE' },\n\t\t{ 'id':'RIBOLAC', 'name':'RIBOLAC' },\n\t\t{ 'id':'SIMILAC', 'name':'SIMILAC' },\n\t\t{ 'id':'QUETIDIN', 'name':'QUETIDIN' }\n\t];\n\n\tselectedPriorityChanged(selectedItem) {\n\t\tthis.selectedItemChangedEvent.emit(selectedItem);\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjdHVyYXNfc2VhcmNoL3NlYXJjaF9ib3hlcy9zdGF0dXNfZHJvcGRvd24vc3RhdHVzX2Ryb3Bkb3duLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"
\\n \\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"status_dropdown\",\n\ttemplateUrl: \"status_dropdown.component.html\",\n\tstyleUrls: [\"status_dropdown.component.css\"]\n})\nexport class status_dropdown_Component implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Output() selectedItemChangedEvent = new EventEmitter();\n \n // Data:\n public datalist: any = [\n\t\t{ 'id':'Pendiente', 'name':'PENDIENTES' },\n\t\t{ 'id':'Incompleta', 'name':'INCOMPLETAS' }\n\t];\n\n\tselectedStatusChanged(selectedItem) {\n\t\tthis.selectedItemChangedEvent.emit(selectedItem);\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n\t\tthis.selectedStatusChanged(this.datalist[0]);\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n\n}","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { ReceiptService } from '../../services/receipt.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: 'view-header',\n\ttemplateUrl: './header.component.html',\n\tstyleUrls: [\"header.component.css\"]\n})\nexport class Header implements OnInit, OnChanges {\n\n\t@Input() title: string = \"\";\n\n\tconstructor() {\n }\n\n // Component Required Methods\n\n\tngOnInit() {\n }\n\n\tngOnChanges(changes: SimpleChanges) {\n\t}\n}\n","module.exports = \".view-header {\\n background-color: rgba(28, 150, 190, 0.1);\\n}\\n\\n.view-header img {\\n padding: 20px;\\n}\\n\\n.view-headaer .h-text p {\\n color: #034f71;\\n}\\n\\n.video, img { \\n width: auto;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSx5Q0FBeUM7QUFDN0M7O0FBRUE7SUFDSSxhQUFhO0FBQ2pCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLFdBQVc7QUFDZiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnZpZXctaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI4LCAxNTAsIDE5MCwgMC4xKTtcbn1cblxuLnZpZXctaGVhZGVyIGltZyB7XG4gICAgcGFkZGluZzogMjBweDtcbn1cblxuLnZpZXctaGVhZGFlciAuaC10ZXh0IHAge1xuICAgIGNvbG9yOiAjMDM0ZjcxO1xufVxuXG4udmlkZW8sIGltZyB7IFxuICAgIHdpZHRoOiBhdXRvO1xufSJdfQ== */\"","module.exports = \"
\\n
\\n \\\"\\\" | {{title}}\\n
\\n
\"","module.exports = \".nap-card-header {\\n background-color: #004f71;\\n color: white;\\n}\\n.nap-card-header h5 {\\n margin-bottom: 0;\\n}\\n.nap-search-box {\\n height: 100%;\\n}\\n.nap-title {\\n float: left;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9uYXBfY2FyZC9uYXBfY2FyZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0kseUJBQXlCO0lBQ3pCLFlBQVk7QUFDaEI7QUFDQTtJQUNJLGdCQUFnQjtBQUNwQjtBQUNBO0lBQ0ksWUFBWTtBQUNoQjtBQUNBO0lBQ0ksV0FBVztBQUNmIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9uYXBfY2FyZC9uYXBfY2FyZC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm5hcC1jYXJkLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGY3MTtcbiAgICBjb2xvcjogd2hpdGU7XG59XG4ubmFwLWNhcmQtaGVhZGVyIGg1IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm5hcC1zZWFyY2gtYm94IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubmFwLXRpdGxlIHtcbiAgICBmbG9hdDogbGVmdDtcbn0iXX0= */\"","module.exports = \"
\\n
\\n
Productos No Abbott
\\n
\\n\\t
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { Product } from '../../models/product';\nimport { ProductAdded } from '../../models/productadded'; \n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"nap_card\",\n\ttemplateUrl: \"nap_card.component.html\",\n\tstyleUrls: [\"nap_card.component.css\"]\n})\nexport class Non_Abbott_Products_Card implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n constructor(private messagingService: MessagingService) {\n }\n\n\tselected_item_changed(item) {\n\t\tthis.messagingService.Nap_Add_Product_To_List(item);\n\t}\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbmFwX3NlYXJjaF9ib3gvbmFwX3NlYXJjaF9ib3guY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \"
\\n \\n
\"","import { Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { Product } from '../../models/product';\nimport { ReceiptService } from '../../services/receipt.service';\nimport { SharedDataService } from '../../services/shared_data.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"nap_search_box\",\n\ttemplateUrl: \"nap_search_box.component.html\",\n\tstyleUrls: [\"nap_search_box.component.css\"]\n})\nexport class Non_Abbott_Products_Search_Box implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\tpublic model: any;\n\tclickedItem:string;\n\n\t@Output() selectedItemChanged = new EventEmitter();\n\n\tprivate factura: any = {};\n\tprivate productsList: any = [{\"name\":\"No hay productos encontrados.\"}];\n\n constructor(private messagingService: MessagingService, private shared_data_service: SharedDataService, private receiptService: ReceiptService) {\n }\n\n\t// When the user selects an item from the drop down, this method sets the item and the value in the search box\n\t// Invoking the message suscription \"selectedItemChanged\"\n\tselectedItem(item){\n\t\titem.preventDefault();\n\t\tthis.clickedItem = item.item;\n\t\tthis.selectedItemChanged.emit(item[\"item\"]);\n\t\tthis.model = null;\n\t}\n\n\t// Searches within the input item list, any item that matches the input from the searchbox\n\tfind_term(term) {\n\t\tlet _this = this;\n\t\treturn term.length < 2 ? [] : function() {\n\t\t\tlet found_items = _this.productsList.filter(v => {\n\n\t\t\t\tif (\n\t\t\t\t\t(v[\"corp\"].toLowerCase().indexOf(term.toLowerCase()) > -1) ||\n\t\t\t\t\t(v[\"lab\"].toLowerCase().indexOf(term.toLowerCase()) > -1) ||\n\t\t\t\t\t(v[\"product\"].toLowerCase().indexOf(term.toLowerCase()) > -1) ||\n\t\t\t\t\t(v[\"product_package\"].toLowerCase().indexOf(term.toLowerCase()) > -1)\n\t\t\t\t) {\n\t\t\t\t\treturn v[\"product_package\"];\n\t\t\t\t}\n\n\t\t\t});\n\t\t\tif (found_items.length > 0) {\n\t\t\t\treturn found_items.slice(0, 20); // Returns the top 20 results found.\n\t\t\t}\n\t\t\telse {\n\n\t\t\t\tlet product_name: string = term;\n\n\t\t\t\treturn [\n\t\t\t\t\t{ product: \"No se encontró. Agregar nuevo.\", lab:\"OTRO\", product_package: \"OTRO\", corp: \"OTRO\", other: product_name.toUpperCase() }\n\t\t\t\t]\n\t\t\t}\n\t\t}();\n\t}\n\n\t// Sets the value that is shown in the list of the type ahead drop down\n\tformatter = (product: Product) => product[\"product_package\"];\n\n\t// Main search function that receives the input from the searchbox\n\tsearch = (text$: Observable) => \n\t\ttext$.pipe(\n\t\t\tdebounceTime(200),\n\t\t\tdistinctUntilChanged(),\n\t\t\tmap(term => this.find_term(term))\n\t\t);\n\n\n\t// Component basic methods...\n\t// --------------------------------------------------------\n\n\tasync init_operations() {\n\t\tthis.factura = await this.shared_data_service.fac_details;\n\t\tlet nap_search = await this.receiptService.get_non_abbott_products(this.factura[\"country\"]);\n\t\t\n\t\tif (nap_search.result) {\n\t\t\tthis.productsList = nap_search.data.products;\n\t\t}\n\t\telse {\n\t\t\t// Handle search error...\n\t\t\tconsole.log(nap_search);\n\t\t}\n\t}\n\n async ngOnInit() {\n\n\t\tthis.messagingService.fac_loaded_event.subscribe(message => {\n\t\t\tthis.init_operations();\n\t\t});\n\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".div-btns {\\n text-align: right;\\n}\\n.nap-prod-list-item {\\n text-align: left;\\n font-size: 20px;\\n}\\n.nap-prod-list-item .btn {\\n font-size: 20px;\\n}\\n.nap-prod-list-item .col-qty {\\n text-align: center;\\n}\\n.nap-prod-list-item .col-qty input {\\n text-align: center !important;\\n height: 100%;\\n width: 150px !important;\\n}\\n.nap-prod-list-item .col-btn-delete {\\n text-align: right;\\n}\\n.nap-no-prods-label {\\n font-size: 20px;\\n font-weight: bold;\\n}\\n\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9uYXBfc2VsZWN0ZWRfbGlzdC9uYXBfc2VsZWN0ZWRfbGlzdC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUJBQWlCO0FBQ3JCO0FBQ0E7SUFDSSxnQkFBZ0I7SUFDaEIsZUFBZTtBQUNuQjtBQUNBO0lBQ0ksZUFBZTtBQUNuQjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCO0FBQ0E7SUFDSSw2QkFBNkI7SUFDN0IsWUFBWTtJQUNaLHVCQUF1QjtBQUMzQjtBQUNBO0lBQ0ksaUJBQWlCO0FBQ3JCO0FBQ0E7SUFDSSxlQUFlO0lBQ2YsaUJBQWlCO0FBQ3JCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9uYXBfc2VsZWN0ZWRfbGlzdC9uYXBfc2VsZWN0ZWRfbGlzdC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRpdi1idG5zIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5uYXAtcHJvZC1saXN0LWl0ZW0ge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAyMHB4O1xufVxuLm5hcC1wcm9kLWxpc3QtaXRlbSAuYnRuIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG59XG4ubmFwLXByb2QtbGlzdC1pdGVtIC5jb2wtcXR5IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ubmFwLXByb2QtbGlzdC1pdGVtIC5jb2wtcXR5IGlucHV0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDE1MHB4ICFpbXBvcnRhbnQ7XG59XG4ubmFwLXByb2QtbGlzdC1pdGVtIC5jb2wtYnRuLWRlbGV0ZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4ubmFwLW5vLXByb2RzLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiJdfQ== */\"","module.exports = \"
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n  \\n \\n
\\n
\\n
\\n \\n
\\n\\n
\\n

\\n No hay productos seleccionados.\\n

\\n
\\n \\n
0 && factura && factura.Estado !== undefined && factura.Estado !== 'Aprobada'\\\">\\n
    \\n
  • \\n
    \\n \\n \\n \\n \\n \\n

    {{p.product_package !== undefined ? p.product_package : p.product}}

    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n
    \\n \\n ( El precio no es válido )\\n \\n
    \\n
  • \\n
\\n
\\n\\n
0 && factura && factura.Estado !== undefined && factura.Estado === 'Aprobada'\\\">\\n
    \\n
  • \\n
    \\n \\n \\n \\n \\n \\n

    {{p.product}}

    \\n
    \\n
    \\n \\n
    {{p.qty}}
    \\n
    \\n \\n
    {{p.price}}
    \\n
    \\n \\n  \\n \\n
    \\n
  • \\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { ReceiptService } from '../../services/receipt.service';\nimport { SharedDataService } from '../../services/shared_data.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"nap_selected_list\",\n\ttemplateUrl: \"nap_selected_list.component.html\",\n\tstyleUrls: [\"nap_selected_list.component.css\"]\n})\nexport class Non_Abbott_Selected_ProductsList implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tprivate selected_products_list: any = []; // {product:\"PRODUCTO DE PRUEBA\"}\n\n\tprivate undo_heap: any = [];\n\n\tprivate factura: any = {};\n\n\tupdate_shared_products() {\n\t\tthis.shared_data_service.fac_nap_products = this.selected_products_list;\n\t\tthis.messagingService.Nap_Product_List_Changed(this.selected_products_list);\n\t}\n\n constructor(private messagingService: MessagingService, private receiptService: ReceiptService, private shared_data_service: SharedDataService) {\n\t\tthis.messagingService.nap_add_product_to_list_event.subscribe((product_to_add) => {\n\n\t\t\t// console.log(product_to_add)\n\t\t\t// console.log(this.selected_products_list)\n\n\t\t\tlet found = this.selected_products_list.filter(s => s[\"idproducto_no_abbott\"] === product_to_add[\"idproducto_no_abbott\"]);\n\n\t\t\tif (found.length > 0) {\n\t\t\t\t// Alredy exists.\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Its a new product.\n\n\t\t\t\t// Validates the product is a OTHER\n\t\t\t\tif (product_to_add[\"corp\"] === \"OTRO\" && product_to_add[\"lab\"] === \"OTRO\" && product_to_add[\"product_package\"] === \"OTRO\") {\n\t\t\t\t\tproduct_to_add[\"product\"] = product_to_add[\"other\"];\n\t\t\t\t\tproduct_to_add[\"idproducto_no_abbott\"] = -1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tproduct_to_add[\"added_as_new\"] = false;\n\t\t\t\t}\n\n\t\t\t\tthis.selected_products_list.push(product_to_add);\n\t\t\t\tthis.update_shared_products();\n\t\t\t}\n });\n }\n \n\tdelete_item(item_to_delete) {\n\t\tthis.undo_heap.push(item_to_delete);\n\t\tthis.selected_products_list = this.selected_products_list.filter(s => s[\"product\"] !== item_to_delete[\"product\"] );\n\t\tthis.update_shared_products();\n\t}\n\n\tundo() {\n\t\tif (this.undo_heap.length > 0) {\n\t\t\tlet item_to_add = this.undo_heap[0];\n\t\t\tthis.undo_heap = this.undo_heap.slice(1);\n\t\t\tthis.selected_products_list.push(item_to_add);\n\t\t\tthis.update_shared_products();\n\t\t}\n\t}\n\n\tdelete_all() {\n\t\tthis.undo_heap = [];\n\t\tthis.selected_products_list = [];\n\t\tthis.update_shared_products();\n\t}\n\n\ttrigger_change(event) {\n\t\tthis.update_shared_products();\n\t}\n\n\tfocus(dom_object) {\n\t\tlet click_object = {\n\t\t\t'obj_type': 'non-abbott-product',\n\t\t\t'object': dom_object\n\t\t}\n\t\tthis.messagingService.Fac_Field_Clicked(click_object);\n\t}\n\n\tvaluechange(e, field, product) {\n\t\tlet v = product[field];\n\t\tproduct[\"is_valid\"] = !isNaN(Number(v));\n\t}\n\n // Component basic methods...\n\t// --------------------------------------------------------\n\n\tasync init_operations() {\n\t\t// Verifies if there is already a factura loaded in the shared data service\n\t\t// and extracts and converts the non abbott products to the current list.\n\t\tlet non_abbott_products_in_factura = [];\n\t\tthis.factura = await this.shared_data_service.fac_details;\n\t\tthis.selected_products_list = [];\n\t\tif (this.factura) {\n\t\t\tnon_abbott_products_in_factura = this.factura[\"NonAbbottProducts\"];\n\n\t\t\tif (non_abbott_products_in_factura !== undefined) {\n\t\t\t\tnon_abbott_products_in_factura.forEach(p => {\n\t\t\t\t\tthis.selected_products_list.push({\n\t\t\t\t\t\t\"product\": p[\"Producto_Otros\"],\n\t\t\t\t\t\t\"qty\": p[\"Cantidad_Otros\"],\n\t\t\t\t\t\t\"price\": p[\"Precio_Otros\"],\n\t\t\t\t\t\t\"idproducto_no_abbott\": p[\"idproducto_no_abbott\"]\n\t\t\t\t\t});\n\t\t\t\t\tthis.update_shared_products();\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\n async ngOnInit() {\n\n\t\tthis.messagingService.fac_loaded_event.subscribe(message => {\n\t\t\tthis.init_operations();\n\t\t});\n\n\t\tthis.init_operations();\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".nap-validator {\\n text-align: center;\\n}\\n.validator-label {\\n font-size: 20px;\\n font-weight: bold;\\n}\\n.validator-label .valid {\\n color: green;\\n}\\n.validator-label .invalid {\\n color: red;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9uYXBfdmFsaWRhdG9yL25hcF92YWxpZGF0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGtCQUFrQjtBQUN0QjtBQUNBO0lBQ0ksZUFBZTtJQUNmLGlCQUFpQjtBQUNyQjtBQUNBO0lBQ0ksWUFBWTtBQUNoQjtBQUNBO0lBQ0ksVUFBVTtBQUNkIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9uYXBfdmFsaWRhdG9yL25hcF92YWxpZGF0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5uYXAtdmFsaWRhdG9yIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udmFsaWRhdG9yLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udmFsaWRhdG9yLWxhYmVsIC52YWxpZCB7XG4gICAgY29sb3I6IGdyZWVuO1xufVxuLnZhbGlkYXRvci1sYWJlbCAuaW52YWxpZCB7XG4gICAgY29sb3I6IHJlZDtcbn0iXX0= */\"","module.exports = \"
\\n \\n
\\n

\\n {{valid_count}} \\n \\n \\n \\n \\n

\\n
\\n
\\n

\\n {{invalid_count}} \\n \\n \\n \\n \\n

\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, AfterViewInit, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { SharedDataService } from '../../services/shared_data.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"nap_validator\",\n\ttemplateUrl: \"nap_validator.component.html\",\n\tstyleUrls: [\"nap_validator.component.css\"]\n})\nexport class Non_Abbott_Validator implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tprivate selected_product_list: any = [];\n\tprivate valid_count: number = 0;\n\tprivate invalid_count: number = 0;\n\n constructor(private messagingService: MessagingService, private shared_data_service: SharedDataService) {\n\t\tthis.messagingService.nap_product_list_changed_event.subscribe((products_list) => {\n\t\t\tthis.selected_product_list = this.shared_data_service.fac_nap_products;\n\t\t\tthis.selected_product_list = this.validate_products(this.selected_product_list);\n\t\t\tthis.valid_count = this.selected_product_list.filter(s => s[\"status\"]).length;\n\t\t\tthis.invalid_count = this.selected_product_list.filter(s => !s[\"status\"]).length;\n\t\t});\n }\n\n\tvalidate_products(products_to_validate) {\n\t\tproducts_to_validate.forEach(p => {\n\t\t\tlet status = true;\n\t\t\tif (p[\"qty\"] === undefined || p[\"qty\"] === \"\" || p[\"qty\"] === 0) {\n\t\t\t\tstatus = false;\n\t\t\t}\n\t\t\tif (p[\"price\"] === undefined || p[\"price\"] === \"\" || p[\"price\"] === 0) {\n\t\t\t\tstatus = false;\n\t\t\t} \n\t\t\tif (p[\"product\"] === undefined || p[\"product\"] === \"\") {\n\t\t\t\tstatus = false;\n\t\t\t}\n\t\t\tp[\"status\"] = status;\n\t\t});\n\t\treturn products_to_validate;\n\t}\n\n // Component basic methods...\n\t// --------------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".msg-top-spacer {\\n margin-top: 20px;\\n}\\n.card-msg {\\n color: #856404;\\n background-color: #fff3cd;\\n border-color: #ffeeba;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0Zm9ybS9wcm9kdWN0Zm9ybS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksZ0JBQWdCO0FBQ3BCO0FBQ0E7SUFDSSxjQUFjO0lBQ2QseUJBQXlCO0lBQ3pCLHFCQUFxQjtBQUN6QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHJvZHVjdGZvcm0vcHJvZHVjdGZvcm0uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tc2ctdG9wLXNwYWNlciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5jYXJkLW1zZyB7XG4gICAgY29sb3I6ICM4NTY0MDQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNjZDtcbiAgICBib3JkZXItY29sb3I6ICNmZmVlYmE7XG59Il19 */\"","module.exports = \"
\\n
\\n\\n
Nuevo Producto
\\n\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n \\n \\n\\n \\n\\n
\\n
\\n Espere! {{errorMessage}}\\n \\n
\\n
\\n\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { Product } from '../../models/product';\nimport { ProductAdded } from '../../models/productadded'; \n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"productform\",\n\ttemplateUrl: \"productform.component.html\",\n\tstyleUrls: [\"productform.component.css\"]\n})\nexport class ProductFormComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n private selectedProduct: any = {}; \n selectedProductName:string = \"\";\n private foundMatches:any = [];\n\n qty: number = 0;\n price: number = 0;\n\n errorMessage: string = \"\";\n\n @Output() productAdded = new EventEmitter();\n\n\tconstructor(private messagingService: MessagingService) {\n\n // When a user selects an item from the product list component.\n this.messagingService.setSelectedProductInFormEvent.subscribe(\n (product) => {\n this.selectedProduct = product;\n \n if (this.selectedProduct[\"id\"]) {\n this.selectedProductName = this.selectedProduct[\"name\"];\n }\n }\n );\n\n // When an error occurres when adding the product to the list.\n this.messagingService.errorWhileAddingProductToListEvent.subscribe(\n (errorMessage) => {\n this.errorMessage = errorMessage;\n }\n );\n }\n\n // Public Methods\n // --------------------------------------------------\n\n addProduct() {\n\n if (!this.validateForm()) return;\n\n // Builds the new Product to be added\n let newProductAdded = new ProductAdded(\n this.selectedProduct.id, \n this.selectedProduct.name, \n this.qty, \n this.price\n );\n\n this.productAdded.emit(this.selectedProduct); \n this.messagingService.AddNewProductMessage(newProductAdded);\n\n this.clearForm();\n }\n\n hideMsg() {\n this.errorMessage = \"\";\n }\n\n showErrorMsg(msg) {\n this.errorMessage = msg;\n }\n\n validateForm() {\n this.errorMessage = \"\";\n\n // The product object must be defined. If not, it means it hasn't been setup in the product list component\n if (!this.selectedProduct[\"id\"]) { this.showErrorMsg(\"No hay un producto seleccionado.\"); return false; }\n\n // The qty field is required\n if (!this.qty || this.qty === 0) { this.showErrorMsg(\"No ingresó una cantidad para el producto.\"); return false; }\n\n // The price field is required\n if (!this.price || this.price === 0) { this.showErrorMsg(\"No ingresó un precio para el producto.\"); return false; }\n\n return true; // All validations passed.\n }\n\n clearForm() {\n this.errorMessage = \"\";\n this.qty = 0;\n this.price = 0;\n this.selectedProduct = {};\n this.selectedProductName = \"\";\n }\n\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n this.selectedProduct = changes.selectedProduct.currentValue;\n\n if (this.selectedProduct[\"id\"]) {\n this.selectedProductName = this.selectedProduct[\"name\"];\n }\n }\n}","module.exports = \".search-input-container {\\n background-color: #eeeeee;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0c2VhcmNoL3Byb2R1Y3RzZWFyY2guY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLHlCQUF5QjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHJvZHVjdHNlYXJjaC9wcm9kdWN0c2VhcmNoLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2VhcmNoLWlucHV0LWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn0iXX0= */\"","module.exports = \"\\n\\n\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { Product } from '../../models/product';\nimport { MessagingService } from '../../services/messagingservice';\nimport { ProductAdded } from \"src/app/models/productadded\";\nimport { Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { ReceiptService } from '../../services/receipt.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"product-search\",\n\ttemplateUrl: \"productsearch.component.html\",\n\tstyleUrls: [\"productsearch.component.css\"]\n})\nexport class ProductSearch implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\tpublic model: any;\n\tclickedItem:string;\n\n\t@Input() productsList: any = [];\n\t@Output() selectedItemChanged = new EventEmitter();\n\n\tformatter = (product: Product) => product.name;\n\n\tconstructor(private receiptService: ReceiptService, private messagingService: MessagingService) {\n\t}\n\n\tselectedItem(item){\n\t\titem.preventDefault();\n\t\tthis.clickedItem=item.item;\n\t\tthis.selectedItemChanged.emit(item[\"item\"]);\n\t\tthis.model = null;\n\t}\n\n\tgetLookup(term) {\n\t\tlet _this = this;\n\t\treturn term.length < 2 ? [] : function() {\n\t\t\treturn _this.productsList.filter(v => {\n\t\t\t\tif (v[\"name\"].toLowerCase().indexOf(term.toLowerCase()) > -1) {\n\t\t\t\t\treturn v[\"name\"];\n\t\t\t\t}\n\t\t\t}).slice(0, 20);\n\t\t}();\n\t}\n\n\tsearch = (text$: Observable) => \n\t\ttext$.pipe(\n\t\t\tdebounceTime(200),\n\t\t\tdistinctUntilChanged(),\n\t\t\tmap(term => this.getLookup(term))\n\t\t);\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n\t\t// Gets the Products list\n\t\tlet productsR = await this.receiptService.GetProducts('CR');\n\t\tthis.productsList = productsR;\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".prod-list-item {\\n cursor: pointer;\\n}\\n.prod-list-item:hover {\\n background-color: #f40;\\n color: white;\\n}\\n.selected-word-spacer {\\n margin-left: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0c2xpc3QvcHJvZHVjdHNsaXN0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxlQUFlO0FBQ25CO0FBQ0E7SUFDSSxzQkFBc0I7SUFDdEIsWUFBWTtBQUNoQjtBQUNBO0lBQ0ksaUJBQWlCO0FBQ3JCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0c2xpc3QvcHJvZHVjdHNsaXN0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucHJvZC1saXN0LWl0ZW0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5wcm9kLWxpc3QtaXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0MDtcbiAgICBjb2xvcjogd2hpdGU7XG59XG4uc2VsZWN0ZWQtd29yZC1zcGFjZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufSJdfQ== */\"","module.exports = \"
\\n
\\n\\n
Texto Seleccionado
\\n \\n

Texto Seleccionado: {{selectedWord === '' ? 'N/A' : selectedWord}} \\n \\n

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

0\\\" class=\\\"subtitle\\\">O seleccione uno de los productos sugeridos de la lista.

\\n\\n
    0\\\" class=\\\"list-group\\\">\\n
  • {{p.item.Producto}}

  • \\n
\\n\\n

\\n No se encontraron productos con ese texto.\\n

\\n\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { Product } from '../../models/product';\nimport { MessagingService } from '../../services/messagingservice';\nimport { ProductAdded } from \"src/app/models/productadded\";\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"productslist\",\n\ttemplateUrl: \"productslist.component.html\",\n\tstyleUrls: [\"productslist.component.css\"]\n})\nexport class ProductsListComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n // Input Parameters\n\n @Input() selectedWord: string = \"\"; // Selected Polygon Text\n @Input() foundMatches: any = []; // All products that matched the selected text\n @Input() productsList: any = []; // List of Products available in the database (for text search)\n @Input() countryId: string = \"\"; // Receipt Country Id, for future use\n\n // Output Parameters\n\n private selectedProduct = new EventEmitter(); // Selected product clicked by the user\n private selectedProduct_fromSearch: Product = new Product('', '');\n\n addProductTolistEvent = new EventEmitter();\n\n\tconstructor(private messagingService: MessagingService) {\n }\n\n // Public Methods\n // --------------------------------------------------\n useProductFromList(product) {\n // When using the ProductForm Component\n /*\n let newProduct = new Product(\n product[\"item\"][\"idProducto\"],\n product[\"item\"][\"Producto\"]\n );\n this.messagingService.SetSelectedProductInFormMessage(newProduct);\n */\n\n // Builds the new Product to be added\n let newProductAdded = new ProductAdded(\n product[\"item\"][\"idProducto\"], \n product[\"item\"][\"Producto\"], \n 0, \n 0\n );\n this.messagingService.AddNewProductMessage(newProductAdded);\n }\n\n addToListDirectly() {\n // Builds the new Product to be added\n let newProductAdded = new ProductAdded(\n \"N/A\", \n this.selectedWord, \n 0, \n 0\n );\n this.messagingService.AddNewProductMessage(newProductAdded);\n }\n\n // Event listener from the Auto Complete Search\n selectedItemChanged(e) {\n this.selectedProduct_fromSearch = e;\n\n // Builds the new Product to be added\n let newProductAdded = new ProductAdded(\n this.selectedProduct_fromSearch.id, \n this.selectedProduct_fromSearch.name, \n 0, \n 0\n );\n this.messagingService.AddNewProductMessage(newProductAdded);\n }\n\n setAsSelected() {\n if (!this.selectedProduct_fromSearch || this.selectedProduct_fromSearch === null) return;\n let newProduct = new Product(\n this.selectedProduct_fromSearch.id, \n this.selectedProduct_fromSearch.name);\n this.messagingService.SetSelectedProductInFormMessage(newProduct);\n }\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n console.log(\"ProductsListComponent Changes:\", changes);\n }\n}","module.exports = \".btn {\\n min-width: 0 !important;\\n border-radius: 5px !important;\\n}\\n\\n.btnView{\\n font-size: 8pt;\\n padding: 5px 10px;\\n font-weight: lighter;\\n}\\n\\n.infoFacturaInput{\\n width: 100%;\\n font-size: 10pt;\\n}\\n\\n.selectFarmacia{\\n -webkit-appearance: auto;\\n -moz-appearance: auto;\\n appearance: auto;\\n width: 100%;\\n}\\n\\n.table-cell .cell-btn {\\n width: 80px;\\n font-size: 12px;\\n border-radius: 2px !important;\\n}\\n\\n.check-cell {\\n text-align: center;\\n min-width: 40px !important;\\n}\\n\\n.amount-input {\\n padding-left: 10px;\\n}\\n\\n.form-group input[type='checkbox'] {\\n position: relative;\\n float: right;\\n}\\n\\n.form-group label {\\n width: 100%;\\n}\\n\\n.eyeIcon{\\n margin: 0px 5px 0px 5px;\\n padding: 2.5px 5px;\\n border-radius: 3px;\\n background-color:#007bff ;\\n color: white;\\n border: none;\\n cursor: pointer;\\n transition: .5s;\\n font-size: 12px;\\n}\\n\\n.eyeIcon:hover{\\n background-color:#007bff ;\\n color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZWNlaXB0ZGV0YWlscy9yZWNlaXB0aW5mby9yZWNlaXB0aW5mby5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksdUJBQXVCO0lBQ3ZCLDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksV0FBVztJQUNYLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSx3QkFBZ0I7T0FBaEIscUJBQWdCO1lBQWhCLGdCQUFnQjtJQUNoQixXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsZUFBZTtJQUNmLDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQiwwQkFBMEI7QUFDOUI7O0FBRUE7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsWUFBWTtBQUNoQjs7QUFFQTtJQUNJLFdBQVc7QUFDZjs7QUFFQTtJQUNJLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6QixZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWU7SUFDZixlQUFlO0lBQ2YsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixZQUFZO0FBQ2hCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9yZWNlaXB0ZGV0YWlscy9yZWNlaXB0aW5mby9yZWNlaXB0aW5mby5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJ0biB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5idG5WaWV3e1xuICAgIGZvbnQtc2l6ZTogOHB0O1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xufVxuXG4uaW5mb0ZhY3R1cmFJbnB1dHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDEwcHQ7XG59XG5cbi5zZWxlY3RGYXJtYWNpYXtcbiAgICBhcHBlYXJhbmNlOiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4udGFibGUtY2VsbCAuY2VsbC1idG4ge1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHggIWltcG9ydGFudDtcbn1cblxuLmNoZWNrLWNlbGwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbn1cblxuLmFtb3VudC1pbnB1dCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4uZm9ybS1ncm91cCBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uZm9ybS1ncm91cCBsYWJlbCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5leWVJY29ue1xuICAgIG1hcmdpbjogMHB4IDVweCAwcHggNXB4O1xuICAgIHBhZGRpbmc6IDIuNXB4IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDA3YmZmIDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiAuNXM7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZXllSWNvbjpob3ZlcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmYgO1xuICAgIGNvbG9yOiB3aGl0ZTtcbn0iXX0= */\"","module.exports = \"
\\n
\\n\\n
\\n
\\n
Estado: {{receiptObject.Estado}}
\\n Último cambio: {{receiptObject['UpdateDate']}} por {{receiptObject['UpdateUserId']}}\\n
\\n
\\n
ID: {{receiptObject.idFactura}}
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n \\n \\n Número impreso de la factura.\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n
\\n Farmacia donde se va a reportar la factura.\\n
\\n
\\n\\n
\\n
\\n \\n \\n Fecha de la factura.\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n Medio por el que realizó la compra.\\n
\\n
\\n \\n \\n Monto total de la factura.\\n
\\n
\\n
\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Match
Factura\\n \\n \\n \\n \\n done \\n \\n \\n remove \\n \\n
Farmacia\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n done \\n \\n \\n remove \\n \\n
Fecha\\n \\n \\n \\n remove \\n \\n
Monto total de Factura\\n
Medio de compra\\n \\n
\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../../services/messagingservice';\nimport { ReceiptService } from \"src/app/services/receipt.service\";\n\ndeclare var jquery: any;\ndeclare var $: any;\n\n@Component({\n selector: \"receiptinfo-component\",\n templateUrl: \"receiptinfo.component.html\",\n styleUrls: [\"receiptinfo.component.css\"]\n})\nexport class ReceiptInfoComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Input() receiptObject: any = {};\n @Input() updateRequestBody: Object = {};\n public farmacias: any = null;\n\n public ocrInfo: any = {};\n public receiptHasMatches: boolean = false;\n public pharmacyHasMatches: boolean = false;\n public dateHasMatches: boolean = false;\n\n constructor(private ms: MessagingService, private receiptService: ReceiptService,) {\n this.ms.updateReceiptInfoComponentEvent.subscribe((obj) => {\n this.receiptObject = obj;\n this.ngOnInit();\n });\n\n this.ms.triggerDrawPolygonsEvent.subscribe(() => {\n setTimeout(() => {\n // this.Select('receipt');\n // this.Select('pharmacy');\n }, 360);\n });\n }\n\n // Component Methods\n // --------------------------------------------------\n\n checkValue(checked: any, source: any) {\n switch (source) {\n case \"receipt\":\n this.receiptObject[\"receipt_checked\"] = checked.currentTarget.checked;\n this.updateRequestBody['receipt_checked'] = checked.currentTarget.checked;\n break;\n case \"pharmacy\":\n this.receiptObject[\"pharmacy_checked\"] = checked.currentTarget.checked;\n this.updateRequestBody['pharmacy_checked'] = checked.currentTarget.checked;\n break;\n case \"date\":\n this.receiptObject[\"date_checked\"] = checked.currentTarget.checked;\n this.updateRequestBody['date_checked'] = checked.currentTarget.checked;\n break;\n case \"total_amount\":\n this.receiptObject[\"total_amount_checked\"] = checked.currentTarget.checked;\n this.updateRequestBody['total_amount_checked'] = checked.currentTarget.checked;\n break;\n case \"sale_type\":\n this.receiptObject[\"sale_type_checked\"] = checked.currentTarget.checked;\n this.updateRequestBody['sale_type'] = checked.currentTarget.checked;\n break;\n }\n }\n\n Select(source) {\n if (this.ocrInfo) {\n switch (source) {\n case \"receipt\":\n if (this.ocrInfo[\"receiptnumber\"]) {\n this.ms.DrawPolygonOnCanvas(this.ocrInfo[\"receiptnumber\"][\"matched_words\"][0]);\n }\n break;\n case \"pharmacy\":\n if (this.ocrInfo[\"pharmacyname\"]) {\n this.ms.DrawPolygonOnCanvas(this.ocrInfo[\"pharmacyname\"][\"matched_words\"][0]);\n }\n break;\n case \"date\":\n if (this.ocrInfo[\"receiptdate\"]) {\n this.ms.DrawPolygonOnCanvas(this.ocrInfo[\"receiptdate\"][\"matched_words\"][0]);\n }\n break;\n }\n }\n }\n\n formatDate(string) {\n var date = new Date(string);\n var dateString = new Date(date.getTime() - (date.getTimezoneOffset() * 60000))\n .toISOString()\n .split(\"T\")[0];\n return dateString\n }\n\n // UPDATE OPERATION FUNCTIONS\n getFarmacia(id: string) {\n var far: any;\n this.farmacias.forEach(f => {\n if (f.id == id) {\n far = f;\n }\n });\n\n return far;\n }\n\n getFarmaciaByName(name: string) {\n var far: any;\n this.farmacias.forEach(f => {\n if (f.name == name) {\n far = JSON.parse(JSON.stringify(f));\n }\n });\n\n return far;\n }\n\n checkUpdateObject() {\n \n }\n\n fillRequestObjectWithReciept() {\n if (this.receiptObject != null && this.receiptObject != undefined) {\n this.updateRequestBody['ID'] = this.receiptObject.idFactura;\n let f = this.getFarmaciaByName(this.receiptObject.Farmacia);\n this.updateRequestBody['Farmacia'] = { ID: f === undefined ? -1 : f.id, Nombre: f === undefined ? 'Otra' : f.name }\n\n if (f === undefined) {\n this.updateRequestBody['Farmacia']['Nombre_Otra'] = this.receiptObject.Farmacia;\n }\n\n let fa = this.receiptObject.Factura;\n this.updateRequestBody['Factura'] = fa;\n\n let fe = this.receiptObject.Fecha === undefined ? '' : this.formatDate(this.receiptObject.Fecha);\n this.updateRequestBody['Fecha'] = fe;\n this.updateRequestBody['ProductosAbbott'] = this.receiptObject.Products;\n\n // Sets a flag that indicates the object with the data is not validated\n this.updateRequestBody['is_valid'] = false;\n }\n }\n\n modifyRequestObject(key: string, value: any) {\n\n if (key === 'Factura') {\n this.updateRequestBody['Factura'] = value;\n }\n\n if (key === 'MontoTotal') {\n this.updateRequestBody['MontoTotal'] = value;\n }\n\n if (key === 'Farmacia') {\n let f = this.getFarmacia(value);\n \n if (f === undefined) return;\n\n if (value !== \"-1\") {\n delete this.updateRequestBody['Farmacia'][\"Nombre_Otra\"];\n }\n\n this.updateRequestBody['Farmacia'] = { ID: f.id, Nombre: f.name };\n }\n\n if (key === 'Farmacia-Name-Other') {\n this.updateRequestBody['Farmacia'][\"Nombre_Otra\"] = value;\n }\n\n if (key == 'ProductosAbbott') {\n\n }\n\n if (key == 'ProductosNoAbbott') {\n\n }\n\n if (key != 'Farmacia' && key != 'ProductosAbbott' && key != 'ProductosNoAbbott') {\n this.updateRequestBody[key] = value;\n }\n }\n\n async ngOnInit() {\n\n if (this.receiptObject[\"OcrInfo\"] !== undefined && this.receiptObject[\"OcrInfo\"][\"imageText\"] != \"\") {\n this.ocrInfo = this.receiptObject[\"OcrInfo\"][\"imageText\"];\n this.ocrInfo = unescape(this.ocrInfo);\n this.ocrInfo = JSON.parse(this.ocrInfo);\n\n if (this.ocrInfo && this.ocrInfo[\"receiptnumber\"] && this.ocrInfo[\"receiptnumber\"][\"matched_words\"] && this.ocrInfo[\"receiptnumber\"][\"matched_words\"].length > 0) {\n this.receiptHasMatches = true;\n this.Select('receipt');\n }\n\n if (this.ocrInfo && this.ocrInfo[\"pharmacyname\"] && this.ocrInfo[\"pharmacyname\"][\"matched_words\"] && this.ocrInfo[\"pharmacyname\"][\"matched_words\"].length > 0) {\n this.pharmacyHasMatches = true;\n this.Select('pharmacy');\n }\n\n if (this.ocrInfo && this.ocrInfo[\"receiptdate\"] && this.ocrInfo[\"receiptdate\"][\"matched_words\"] && this.ocrInfo[\"receiptdate\"][\"matched_words\"].length > 0) {\n this.dateHasMatches = true;\n this.Select('date');\n }\n\n if (this.ocrInfo !== null && this.ocrInfo !== undefined) {\n if (this.ocrInfo['products'] !== null && this.ocrInfo['products'] !== undefined) {\n this.ocrInfo['products'].forEach(p=>{\n this.receiptObject['Products'].forEach(pAbbot => {\n if(p['ID_Producto'] === pAbbot['ID_Producto'] && p['hasMatches']){\n pAbbot['matched_words'] = p['matched_words'];\n }\n });\n });\n }\n }\n }\n\n try {\n var r: any = await this.receiptService.GetDrugStoresData(this.receiptObject.country);\n this.farmacias = r.data;\n this.fillRequestObjectWithReciept();\n }\n catch (err) {\n console.log(err)\n }\n }\n\n ngOnDestroy() {\n }\n\n ngAfterViewInit() {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".btn {\\n min-width: 0 !important;\\n border-radius: 5px !important;\\n}\\n\\n.mainRow {\\n margin-bottom: 15px;\\n padding: 15px;\\n}\\n\\n.mainRow > .btn {\\n margin-left: auto;\\n}\\n\\n.productInfoCol {\\n display: flex;\\n align-items: center;\\n}\\n\\n.productInfoCol > .deleteButton {\\n /* height: 70%; */\\n margin-left: 10px;\\n padding: 2.5px 15px;\\n border-radius: 5px;\\n border-color: transparent;\\n margin-bottom: 0px;\\n}\\n\\n.col.buttons {\\n display: flex;\\n align-items: flex-end;\\n}\\n\\n.col.buttons > .deleteButton {\\n height: 70%;\\n margin-left: 10px;\\n padding: 2.5px 15px;\\n border-radius: 5px;\\n border-color: transparent;\\n margin-bottom: 0px;\\n}\\n\\n.producSelectionInput {\\n width: 100%;\\n font-size: 12pt;\\n}\\n\\n.addNewRow {\\n margin-bottom: 15px;\\n border: solid 1px #dddddd;\\n padding: 5px;\\n}\\n\\n.addNewRow > .first {\\n margin-bottom: 10px;\\n}\\n\\n.addNewRow > table {\\n width: 100%;\\n}\\n\\n.addNewRow > table > tbody > tr > td{\\n padding: 15px 5px;\\n}\\n\\n/* Non Abbott Products Table */\\n\\n.nonAbbotProductTable{\\n width: 100%;\\n max-height: 300px;\\n overflow-y: scroll;\\n}\\n\\n.table-cell {\\n padding: 5px;;\\n}\\n\\n.table-cell .cell-btn {\\n width: 80px;\\n font-size: 12px;\\n border-radius: 2px !important;\\n}\\n\\n.btn-action {\\n background-color: #007bff !important;\\n border-color: #007bff !important;\\n}\\n\\n.desc-cell {\\n width: 100%;\\n}\\n\\n.row-cell:nth-child(odd) {background: #dddddd}\\n\\n.row-cell:nth-child(even) {background: #ffffff}\\n\\n.check-cell {\\n text-align: center;\\n min-width: 40px !important;\\n}\\n\\n.prod-name {\\n font-weight: bold;;\\n}\\n\\n.btn-add {\\n height: 30px;\\n font-size: 12px;\\n}\\n\\n.btn-add .span {\\n position: relative;\\n top: -4px;\\n}\\n\\n.btn-group {\\n position: absolute;\\n right: 20px;\\n}\\n\\n.btn-group .btn {\\n margin-left: 5px;\\n}\\n\\n/* Input Spinner Animation */\\n\\n.inputcontainer {\\n position: relative;\\n }\\n\\n/* input {\\n width: 100%;\\n font-size: 20px;\\n box-sizing: border-box;\\n } */\\n\\n.icon-container {\\n position: absolute;\\n right: 10px;\\n top: calc(50% - 15px);\\n }\\n\\n.loader {\\n position: relative;\\n height: 20px;\\n width: 20px;\\n display: inline-block;\\n animation: around 5.4s infinite;\\n }\\n\\n@keyframes around {\\n 0% {\\n transform: rotate(0deg)\\n }\\n 100% {\\n transform: rotate(360deg)\\n }\\n }\\n\\n.loader::after, .loader::before {\\n content: \\\"\\\";\\n background: white;\\n position: absolute;\\n display: inline-block;\\n width: 100%;\\n height: 100%;\\n border-width: 2px;\\n border-color: #333 #333 transparent transparent;\\n border-style: solid;\\n border-radius: 20px;\\n box-sizing: border-box;\\n top: 0;\\n left: 0;\\n animation: around 0.7s ease-in-out infinite;\\n }\\n\\n.loader::after {\\n animation: around 0.7s ease-in-out 0.1s infinite;\\n background: transparent;\\n }\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZWNlaXB0ZGV0YWlscy9yZWNlaXB0cHJvZHVjdHMvcmVjZWlwdHByb2R1Y3RzLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSx1QkFBdUI7SUFDdkIsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6QixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IscUJBQXFCO0FBQ3pCOztBQUVBO0lBQ0ksV0FBVztJQUNYLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6QixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIsWUFBWTtBQUNoQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLFdBQVc7QUFDZjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFHQSwrQkFBK0I7O0FBQy9CO0lBQ0ksV0FBVztJQUNYLGlCQUFpQjtJQUNqQixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxZQUFZO0FBQ2hCOztBQUNBO0lBQ0ksV0FBVztJQUNYLGVBQWU7SUFDZiw2QkFBNkI7QUFDakM7O0FBQ0E7SUFDSSxvQ0FBb0M7SUFDcEMsZ0NBQWdDO0FBQ3BDOztBQUNBO0lBQ0ksV0FBVztBQUNmOztBQUNBLDBCQUEwQixtQkFBbUI7O0FBQzdDLDJCQUEyQixtQkFBbUI7O0FBQzlDO0lBQ0ksa0JBQWtCO0lBQ2xCLDBCQUEwQjtBQUM5Qjs7QUFDQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFHQTtJQUNJLFlBQVk7SUFDWixlQUFlO0FBQ25COztBQUNBO0lBQ0ksa0JBQWtCO0lBQ2xCLFNBQVM7QUFDYjs7QUFDQTtJQUNJLGtCQUFrQjtJQUNsQixXQUFXO0FBQ2Y7O0FBQ0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUEsNEJBQTRCOztBQUU1QjtJQUNJLGtCQUFrQjtFQUNwQjs7QUFFQTs7OztLQUlHOztBQUVIO0lBQ0Usa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxxQkFBcUI7RUFDdkI7O0FBQ0E7SUFDRSxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLFdBQVc7SUFDWCxxQkFBcUI7SUFDckIsK0JBQStCO0VBQ2pDOztBQUVBO0lBQ0U7TUFDRTtJQUNGO0lBQ0E7TUFDRTtJQUNGO0VBQ0Y7O0FBRUE7SUFDRSxXQUFXO0lBQ1gsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixxQkFBcUI7SUFDckIsV0FBVztJQUNYLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsK0NBQStDO0lBQy9DLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLE1BQU07SUFDTixPQUFPO0lBQ1AsMkNBQTJDO0VBQzdDOztBQUVBO0lBQ0UsZ0RBQWdEO0lBQ2hELHVCQUF1QjtFQUN6QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVjZWlwdGRldGFpbHMvcmVjZWlwdHByb2R1Y3RzL3JlY2VpcHRwcm9kdWN0cy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJ0biB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5tYWluUm93IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG5cbi5tYWluUm93ID4gLmJ0biB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5wcm9kdWN0SW5mb0NvbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ucHJvZHVjdEluZm9Db2wgPiAuZGVsZXRlQnV0dG9uIHtcbiAgICAvKiBoZWlnaHQ6IDcwJTsgKi9cbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBwYWRkaW5nOiAyLjVweCAxNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbn1cblxuLmNvbC5idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cblxuLmNvbC5idXR0b25zID4gLmRlbGV0ZUJ1dHRvbiB7XG4gICAgaGVpZ2h0OiA3MCU7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZzogMi41cHggMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5cbi5wcm9kdWNTZWxlY3Rpb25JbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMnB0O1xufVxuXG4uYWRkTmV3Um93IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGJvcmRlcjogc29saWQgMXB4ICNkZGRkZGQ7XG4gICAgcGFkZGluZzogNXB4O1xufVxuXG4uYWRkTmV3Um93ID4gLmZpcnN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uYWRkTmV3Um93ID4gdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uYWRkTmV3Um93ID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGR7XG4gICAgcGFkZGluZzogMTVweCA1cHg7XG59XG5cblxuLyogTm9uIEFiYm90dCBQcm9kdWN0cyBUYWJsZSAgKi9cbi5ub25BYmJvdFByb2R1Y3RUYWJsZXtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi50YWJsZS1jZWxsIHtcbiAgICBwYWRkaW5nOiA1cHg7O1xufVxuLnRhYmxlLWNlbGwgLmNlbGwtYnRuIHtcbiAgICB3aWR0aDogODBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7XG59XG4uYnRuLWFjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogIzAwN2JmZiAhaW1wb3J0YW50O1xufVxuLmRlc2MtY2VsbCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ucm93LWNlbGw6bnRoLWNoaWxkKG9kZCkge2JhY2tncm91bmQ6ICNkZGRkZGR9XG4ucm93LWNlbGw6bnRoLWNoaWxkKGV2ZW4pIHtiYWNrZ3JvdW5kOiAjZmZmZmZmfVxuLmNoZWNrLWNlbGwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbn1cbi5wcm9kLW5hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOztcbn1cblxuXG4uYnRuLWFkZCB7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5idG4tYWRkIC5zcGFuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtNHB4O1xufVxuLmJ0bi1ncm91cCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAyMHB4O1xufVxuLmJ0bi1ncm91cCAuYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG4vKiBJbnB1dCBTcGlubmVyIEFuaW1hdGlvbiAqL1xuXG4uaW5wdXRjb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICBcbiAgLyogaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9ICovXG4gIFxuICAuaWNvbi1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTBweDtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTVweCk7XG4gIH1cbiAgLmxvYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYW5pbWF0aW9uOiBhcm91bmQgNS40cyBpbmZpbml0ZTtcbiAgfVxuICBcbiAgQGtleWZyYW1lcyBhcm91bmQge1xuICAgIDAlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpXG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKVxuICAgIH1cbiAgfVxuICBcbiAgLmxvYWRlcjo6YWZ0ZXIsIC5sb2FkZXI6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICBib3JkZXItY29sb3I6ICMzMzMgIzMzMyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBhbmltYXRpb246IGFyb3VuZCAwLjdzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICB9XG4gIFxuICAubG9hZGVyOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBhcm91bmQgMC43cyBlYXNlLWluLW91dCAwLjFzIGluZmluaXRlO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9Il19 */\"","module.exports = \"
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
Productos Abox en la Factura
\\n\\t\\t\\t
Productos No Abox en la Factura
\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t
\\n\\n\\t\\t
\\n\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
Seleccione el nuevo Producto:
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
ProductoCantidadPrecio
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
ProductoCantidadPrecio
{{prod[\\\"Producto\\\"]}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t
0 && showSuggestionsAbbott\\\">\\n\\t\\t\\t\\t\\tProductos Sugeridos\\n\\t\\t\\t\\t\\t
Productos detectados en la factura.\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t 0 && showSuggestionsAbbott\\\" \\n\\t\\t\\t\\t\\ttype=\\\"text\\\" [(ngModel)]=\\\"searchtextAbbott\\\" placeholder=\\\"Texto a buscar...\\\">\\n\\n\\t\\t\\t\\t 0 && showSuggestionsAbbott\\\">\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
ProductoCantidadPrecio
\\n\\t\\t\\t\\t\\t\\t\\t\\t{{prod[\\\"Producto\\\"]}}\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t( \\\"{{prod[\\\"FoundText\\\"] || ''}}\\\", score: {{prod[\\\"MatchIndex\\\"] | number:'1.2' }} )\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\n\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\tNombre:\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\tCantidad:\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\tPrecio:\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n \\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t 0\\\">\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
ProductoCantidadPrecio
\\n\\t\\t\\t\\t\\t\\t\\t\\t{{prod[\\\"Producto_Otros\\\"]}}\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t( \\\"{{prod[\\\"FoundText\\\"] || ''}}\\\", score: {{prod[\\\"MatchIndex\\\"] | number:'1.2' }} )\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
No hay productos en la lista. Busque un producto en la barra y presione \\\"Enter\\\" para agregarlo
\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../../services/messagingservice';\nimport { ProductsFilterPipe } from '../../../pipes/productsfilter';\n\ndeclare var jquery: any;\ndeclare var $: any;\n\n@Component({\n selector: \"receiptproducts-component\",\n templateUrl: \"receiptproducts.component.html\",\n styleUrls: [\"receiptproducts.component.css\"]\n})\nexport class ReceiptProductsComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Input() receiptProducts: any = [];\n @Input() availableProducts: any = [];\n @Input() updateRequestBody: any = {};\n @Input() abbotProducts: boolean = true;\n @Input() availableNonAbbotProducts: any = []\n @Output() nonAbbotTextSearch = new EventEmitter()\n\n public addNewProduct: boolean = false;\n public newProduct: Object = {\n \"ID_Producto\": \"\",\n \"Cantidad\": 0,\n \"Precio\": 0,\n \"Producto\": \"\"\n };\n public newProductNoAbox: Object = {\n \"Producto_Otros\": \"\",\n \"Cantidad_Otros\": 0,\n \"Precio_Otros\": 0\n }\n public newProductNoAboxSuggestion : string = \"\";\n public validationMessages: any = [];\n public showSuggestions: boolean = false;\n public showSuggestionsAbbott: boolean = false;\n\n public searchtext: string = \"\";\n public searchtextAbbott: string = \"\";\n\n debounce: any = 0;\n isSearchingNonAbbot = false;\n\n constructor(private ms: MessagingService) {\n this.ms.validateProductsEvent.subscribe(() => {\n // this.DoValidation();\n });\n\n this.ms.triggerDrawPolygonsEvent.subscribe(() => {\n if (this.receiptProducts !== undefined) {\n this.receiptProducts.forEach((p) => {\n if (p[\"hasMatches\"]) {\n this.ms.DrawPolygonsOnCanvas(p[\"matched_words\"]);\n this.updateRequestBody.ProductosAbbott.forEach((pr,i) => {\n if (pr.ID_Producto == p.ID_Producto) {\n this.updateRequestBody.ProductosAbbott[i]['hasMatches'] = true\n }\n });\n this.updateRequestBody.ProductosNoAbbott.forEach((pro,i) => {\n if (pro.ID_Producto == p.ID_Producto) {\n this.updateRequestBody.ProductosAbbott[i]['hasMatches'] = true\n }\n });\n if (this.updateRequestBody.ProductosAbbott_Suggestions === undefined) {\n this.updateRequestBody[\"ProductosAbbott_Suggestions\"] = []; \n }\n }\n else {\n this.updateRequestBody[\"ProductosAbbott_Suggestions\"] = [];\n }\n });\n }\n else {\n this.updateRequestBody[\"ProductosAbbott_Suggestions\"] = [];\n }\n });\n }\n\n // Component Methods\n // --------------------------------------------------\n\n SelectProduct(product) {\n\n if (!product[\"origin\"]) {\n let found = this.receiptProducts.filter(p => p[\"ID_Producto\"] === product[\"ID_Producto\"]);\n if (found.length > 0) {\n\n if (found[0][\"matched_words\"].length > 0) {\n this.ms.DrawPolygonOnCanvas(found[0][\"matched_words\"][0]);\n }\n\n }\n }\n else {\n this.ms.DrawPolygonOnCanvas(product[\"matched_words\"][0]);\n }\n }\n\n SelectSuggestedProduct(product) {\n \n this.ms.DrawPolygonOnCanvas(product[\"matched_words\"][0]);\n }\n\n checkValue(checked: any, product: any) {\n product[\"checked\"] = checked.currentTarget.checked;\n }\n\n checkInReceiptProds(id) {\n let bool = false;\n this.receiptProducts.forEach(p => {\n if (p['ID_Producto'] == id) {\n bool = true\n }\n });\n\n return bool;\n }\n\n ShowSuggestions() {\n this.showSuggestions = !this.showSuggestions;\n if (this.showSuggestions) {\n $(\"#btnToggleSuggestions\").html(\"Ocultar Sugerencias\"); \n }\n else {\n $(\"#btnToggleSuggestions\").html(\"Ver Sugerencias\"); \n } \n }\n\n ShowSuggestionsAbbott() {\n this.showSuggestionsAbbott = !this.showSuggestionsAbbott;\n if (this.showSuggestionsAbbott) {\n $(\"#btnToggleSuggestionsAbbott\").html(\"Ocultar Sugerencias\"); \n }\n else {\n $(\"#btnToggleSuggestionsAbbott\").html(\"Ver Sugerencias\"); \n } \n }\n\n addToNonAbbottProducts(prod) {\n prod[\"origin\"] = \"suggested\";\n this.updateRequestBody[\"ProductosNoAbbott\"].push(JSON.parse(JSON.stringify(prod)));\n\n // Pops the selected product from the suggested list.\n this.updateRequestBody[\"ProductosNoAbbott_Suggestions\"] = this.updateRequestBody[\"ProductosNoAbbott_Suggestions\"].filter(f => \n f[\"Producto_Otros\"] != prod[\"Producto_Otros\"]\n );\n\n this.searchtext = \"\";\n this.showSuggestions = false;\n $(\"#btnToggleSuggestions\").html(\"Ver Sugerencias\"); \n }\n\n addToAbbottProducts(prod) {\n prod[\"origin\"] = \"suggested\";\n this.updateRequestBody[\"ProductosAbbott\"].push(JSON.parse(JSON.stringify(prod)));\n\n // Pops the selected product from the suggested list.\n this.updateRequestBody[\"ProductosAbbott_Suggestions\"] = this.updateRequestBody[\"ProductosAbbott_Suggestions\"].filter(f => \n f[\"Producto\"] != prod[\"Producto\"]\n );\n\n this.searchtextAbbott = \"\";\n this.showSuggestionsAbbott = false;\n $(\"#btnToggleSuggestionsAbbott\").html(\"Ver Sugerencias\"); \n }\n\n // debounce = (func, wait) => {\n // \tlet timeout;\n\n // \t// This is the function that is returned and will be executed many times\n // \t// We spread (...args) to capture any number of parameters we want to pass\n // \treturn function executedFunction(...args) {\n\n // \t// The callback function to be executed after \n // \t// the debounce time has elapsed\n // \tconst later = () => {\n // \t\t// null timeout to indicate the debounce ended\n // \t\ttimeout = null;\n\n // \t\t// Execute the callback\n // \t\tfunc(...args);\n // \t};\n // \t// This will reset the waiting every function execution.\n // \t// This is the step that prevents the function from\n // \t// being executed because it will never reach the\n // \t// inside of the previous setTimeout\n // \tclearTimeout(timeout);\n\n // \t// Restart the debounce waiting period.\n // \t// setTimeout returns a truthy value (it differs in web vs Node)\n // \ttimeout = setTimeout(later, wait);\n // \t};\n // }\n\n searchNonAbbot(text){\n if (text == \"\") {\n this.newProductNoAboxSuggestion = text;\n this.isSearchingNonAbbot = false;\n }\n else {\n this.newProductNoAboxSuggestion = text;\n this.isSearchingNonAbbot = true;\n clearTimeout(this.debounce)\n this.debounce = setTimeout(() => { this.nonAbbotTextSearch.emit(text.toUpperCase()) }, 500);\n }\n }\n\n // New Product Methods -----------------------------\n\n toggleAddNewProduct() {\n this.addNewProduct = !this.addNewProduct;\n }\n\n setNewProduct(id) {\n let p = null;\n this.availableProducts.forEach(prod => {\n if (prod.id == id) {\n p = {\n \"ID_Producto\": prod.id,\n \"Cantidad\": 0,\n \"Precio\": 0,\n \"Producto\": prod.name,\n }\n }\n });\n\n this.newProduct = p;\n\n }\n\n pushNewProduct() {\n this.updateRequestBody.ProductosAbbott.push(JSON.parse(JSON.stringify(this.newProduct)));\n this.addNewProduct = false;\n this.newProduct = {\n \"ID_Producto\": \"\",\n \"Cantidad\": 0,\n \"Precio\": 0,\n \"Producto\": \"\"\n };\n }\n\n deleteProduct(id: string) {\n let toDelete = null;\n this.updateRequestBody.ProductosAbbott.forEach((p, index) => {\n if (p['ID_Producto'] == id) {\n toDelete = index;\n }\n });\n\n let prod = this.updateRequestBody[\"ProductosAbbott\"][toDelete];\n if (prod[\"origin\"]) {\n this.updateRequestBody[\"ProductosAbbott_Suggestions\"].push(prod);\n }\n\n if (toDelete != null && this.updateRequestBody.ProductosAbbott.length == 1) {\n this.updateRequestBody.ProductosAbbott = []\n }\n else if (toDelete != null) {\n this.updateRequestBody.ProductosAbbott.splice(toDelete, 1);\n }\n }\n\n pushNewNoAboxProduct() {\n this.updateRequestBody.ProductosNoAbbott.push(JSON.parse(JSON.stringify(this.newProductNoAbox)));\n this.addNewProduct = false;\n this.newProductNoAbox = {\n \"Producto_Otros\": \"\",\n \"Cantidad_Otros\": 0,\n \"Precio_Otros\": 0\n };\n }\n\n pushNewAboxProductSuggestion(product){\n if (product != \"\") {\n this.updateRequestBody.ProductosNoAbbott.push({\n \"Producto_Otros\": product,\n \"Cantidad_Otros\": 1,\n \"Precio_Otros\": 1\n });\n this.newProductNoAboxSuggestion = \"\";\n }\n\n }\n\n deleteNoAboxProduct(id: string) {\n let toDelete = null;\n this.updateRequestBody.ProductosNoAbbott.forEach((p, index) => {\n if (p['Producto_Otros'] == id) {\n toDelete = index;\n }\n });\n \n let prod = this.updateRequestBody[\"ProductosNoAbbott\"][toDelete];\n if (prod[\"origin\"]) {\n this.updateRequestBody[\"ProductosNoAbbott_Suggestions\"].push(prod);\n }\n \n this.updateRequestBody.ProductosNoAbbott.splice(toDelete, 1);\n }\n\n //Angular Methods\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n }\n\n ngAfterViewInit() {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.availableNonAbbotProducts != undefined) {\n if (changes.availableNonAbbotProducts.previousValue !== changes.availableNonAbbotProducts.currentValue) {\n this.isSearchingNonAbbot = false;\n }\n }\n }\n}","module.exports = \"\\n.container {\\n position: relative;\\n font-size: 14px;\\n height: 100%;\\n margin: auto;\\n padding: 10px;\\n}\\n\\n.container p {\\n line-height: 12px;\\n line-height: 0px;\\n height: 0px;\\n margin: 10px;\\n color: #bbb\\n}\\n\\n.action {\\n width: 400px;\\n height: 30px;\\n margin: 10px 0;\\n}\\n\\n.cropped {\\n position: absolute;\\n right: -230px;\\n top: 0;\\n width: 200px;\\n border: 1px #ddd solid;\\n height: 460px;\\n padding: 4px;\\n box-shadow: 0px 0px 12px #ddd;\\n text-align: center;\\n}\\n\\n.imageBox {\\n position: relative;\\n height: 70vh;\\n width: 100%;\\n border: 1px solid #aaa;\\n background: #fff;\\n overflow: hidden;\\n background-repeat: no-repeat;\\n cursor: move;\\n /* box-shadow: 4px 4px 12px #B0B0B0; */\\n}\\n\\n.imageBox .thumbBox {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 200px;\\n height: 200px;\\n margin-top: -100px;\\n margin-left: -100px;\\n box-sizing: border-box;\\n border: 1px solid rgb(102, 102, 102);\\n box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);\\n background: none repeat scroll 0% 0% transparent;\\n}\\n\\n.imageBox .spinner {\\n position: absolute;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n right: 0;\\n text-align: center;\\n line-height: 400px;\\n background: rgba(0,0,0,0.7);\\n color: white;\\n}\\n\\n.container h5 {\\n margin: auto;\\n}\\n\\n.tools{\\n margin-top: 20px;\\n \\n}\\n\\n.tools span, button{\\n float: left;\\n display: inline-block;\\n padding: 5px 20px;\\n /* background-color: #f40; */\\n color: white;\\n cursor: pointer;\\n margin-bottom: 5px;\\n margin-right: 5px;\\n font-size: 14px;\\n}\\n\\n.tools .btn-danger{\\n color: white;\\n}\\n\\n.clearfix {\\n *zoom: 1;\\n}\\n\\n.clearfix:before{\\n content: \\\" \\\";\\n display: table;\\n}\\n\\n.clearfix:after{\\n content: \\\" \\\";\\n display: table;\\n clear: both;\\n}\\n\\n.cropPoint{\\n position: absolute;\\n height: 8px;\\n width: 8px;\\n background-color: rgba(255,255,255,0.7);\\n cursor: pointer;\\n}\\n\\n.upload-wapper{\\n position: relative;\\n float: left;\\n height: 26px;\\n line-height: 26px;\\n width: 132px;\\n background-color: #f40;\\n color: #fff;\\n text-align: center;\\n overflow: hidden;\\n cursor: pointer;\\n}\\n\\n#upload-file{\\n position: absolute;\\n left: 0;\\n top: 0;\\n opacity: 0;\\n filter: alpha(opacity=0);\\n width: 132px;\\n height: 26px;\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZWNlaXB0aW1hZ2UvcmVjZWlwdGltYWdlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixZQUFZO0lBQ1osWUFBWTtJQUNaLGFBQWE7QUFDakI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxZQUFZO0VBQ1o7QUFDRjs7QUFFQTtFQUNFLFlBQVk7RUFDWixZQUFZO0VBQ1osY0FBYztBQUNoQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsTUFBTTtFQUNOLFlBQVk7RUFDWixzQkFBc0I7RUFDdEIsYUFBYTtFQUNiLFlBQVk7RUFDWiw2QkFBNkI7RUFDN0Isa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixXQUFXO0VBQ1gsc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsNEJBQTRCO0VBQzVCLFlBQVk7RUFDWixzQ0FBc0M7QUFDeEM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFNBQVM7RUFDVCxZQUFZO0VBQ1osYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBQ3RCLG9DQUFvQztFQUNwQywyQ0FBMkM7RUFDM0MsZ0RBQWdEO0FBQ2xEOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsU0FBUztFQUNULFFBQVE7RUFDUixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLDJCQUEyQjtFQUMzQixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxZQUFZO0FBQ2Q7O0FBS0E7SUFDSSxnQkFBZ0I7O0FBRXBCOztBQUNBO0lBQ0ksV0FBVztJQUNYLHFCQUFxQjtJQUNyQixpQkFBaUI7SUFDakIsNEJBQTRCO0lBQzVCLFlBQVk7SUFDWixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixlQUFlO0FBQ25COztBQUNBO0lBQ0ksWUFBWTtBQUNoQjs7QUFDQTtLQUNJLE9BQVE7QUFDWjs7QUFDQTtJQUNJLFlBQVk7SUFDWixjQUFjO0FBQ2xCOztBQUNBO0lBQ0ksWUFBWTtJQUNaLGNBQWM7SUFDZCxXQUFXO0FBQ2Y7O0FBQ0E7SUFDSSxrQkFBa0I7SUFDbEIsV0FBVztJQUNYLFVBQVU7SUFDVix1Q0FBdUM7SUFDdkMsZUFBZTtBQUNuQjs7QUFDQTtJQUNJLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osc0JBQXNCO0lBQ3RCLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLGVBQWU7QUFDbkI7O0FBQ0E7SUFDSSxrQkFBa0I7SUFDbEIsT0FBTztJQUNQLE1BQU07SUFDTixVQUFVO0lBQ1Ysd0JBQXdCO0lBQ3hCLFlBQVk7SUFDWixZQUFZO0lBQ1osZUFBZTtBQUNuQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVjZWlwdGltYWdlL3JlY2VpcHRpbWFnZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG4uY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcGFkZGluZzogMTBweDtcbn1cblxuLmNvbnRhaW5lciBwIHtcbiAgbGluZS1oZWlnaHQ6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAwcHg7XG4gIGhlaWdodDogMHB4O1xuICBtYXJnaW46IDEwcHg7XG4gIGNvbG9yOiAjYmJiXG59XG5cbi5hY3Rpb24ge1xuICB3aWR0aDogNDAwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbi5jcm9wcGVkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTIzMHB4O1xuICB0b3A6IDA7XG4gIHdpZHRoOiAyMDBweDtcbiAgYm9yZGVyOiAxcHggI2RkZCBzb2xpZDtcbiAgaGVpZ2h0OiA0NjBweDtcbiAgcGFkZGluZzogNHB4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDEycHggI2RkZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uaW1hZ2VCb3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNzB2aDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGN1cnNvcjogbW92ZTtcbiAgLyogYm94LXNoYWRvdzogNHB4IDRweCAxMnB4ICNCMEIwQjA7ICovXG59XG5cbi5pbWFnZUJveCAudGh1bWJCb3gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgbWFyZ2luLXRvcDogLTEwMHB4O1xuICBtYXJnaW4tbGVmdDogLTEwMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTAyLCAxMDIsIDEwMik7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDEwMDBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJhY2tncm91bmQ6IG5vbmUgcmVwZWF0IHNjcm9sbCAwJSAwJSB0cmFuc3BhcmVudDtcbn1cblxuLmltYWdlQm94IC5zcGlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDQwMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNyk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmNvbnRhaW5lciBoNSB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuXG5cblxuLnRvb2xze1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgXG59XG4udG9vbHMgc3BhbiwgYnV0dG9ue1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiA1cHggMjBweDtcbiAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQwOyAqL1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cbi50b29scyAuYnRuLWRhbmdlcntcbiAgICBjb2xvcjogd2hpdGU7XG59XG4uY2xlYXJmaXgge1xuICAgICp6b29tOiAxO1xufVxuLmNsZWFyZml4OmJlZm9yZXtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbn1cbi5jbGVhcmZpeDphZnRlcntcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDtcbn1cbi5jcm9wUG9pbnR7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogOHB4O1xuICAgIHdpZHRoOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51cGxvYWQtd2FwcGVye1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgd2lkdGg6IDEzMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuI3VwbG9hZC1maWxle1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbiAgICB3aWR0aDogMTMycHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn0iXX0= */\"","module.exports = \"
\\n
\\n \\n \\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n
Por favor espere...
\\n
\\n
\\n\\n
\\n
No hay una imagen seleccionada.
\\n
\\n Select An Image\\n \\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { ReceiptService } from '../../services/receipt.service';\nimport { MessagingService } from '../../services/messagingservice';\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"receipt-image\",\n\ttemplateUrl: \"receiptimage.component.html\",\n\tstyleUrls: [\"receiptimage.component.css\"]\n})\nexport class ReceiptImageComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @ViewChild('visbleCanvas', { static: true })\n\tvisbleCanvas: ElementRef;\n\tprivate ctx: CanvasRenderingContext2D;\n\n\t@Input() receiptId: string = \"\";\n\t@Input() imageUrl: string = \"\";\n\t@Output() wordSelected = new EventEmitter();\n\n rot:number = 0;\n ratio:number = 1;\n\tCanvasCrop: any;\n\n\timageHasPolygonsDrawn: boolean = false;\n\t\n\t_highlightColor:string = \"rgba(255, 0, 0, 0.2)\";\n\n\t_receiptAnalyzedData:any = [];\n\n\tconstructor(private receiptService: ReceiptService, private messagingService: MessagingService) {\n\t\t\n }\n\n // Image Loading Operations\n\t// --------------------------------------------------\n\t\n\tGetImageURI(canvas) {\n\t\tif (!canvas || canvas === \"\") return \"\";\n\n\t\t// Converts the contents on the canvas to a serialized text that will be sent to the server\n\t\t// to be interpreted and analyzed.\n\n\t\t// get image URI from canvas object\n\t\tvar imageURI = canvas.toDataURL(\"image/jpg\");\n\n\t\treturn imageURI;\n\t}\n\n\tLoadImage() {\n\n\t\tif (this.imageUrl === \"\") return;\n\n\t\tlet url = this.imageUrl;\n\t\tlet _this = this;\n\n this.CanvasCrop = $.CanvasCrop({\n cropBox : \".imageBox\",\n imgSrc : url, \n\t\t\tlimitOver : 0,\n\t\t\timageLoadedFx: () => {\n\t\t\t\t// Hides the Spinner\n\t\t\t\t$(\".spinner\").hide();\n\n\t\t\t\t// Adds the click Events to the Canvas\n\t\t\t\tvar canvas = document.getElementById(\"visbleCanvas\");\n\t\t\t\tcanvas.addEventListener('click', function (e) {\n\t\t\t\t\tlet coords = {x:e.offsetX, y:e.offsetY};\n\t\t\t\t\t_this.processClick(coords, _this._receiptAnalyzedData.wordsfound)\n\t\t\t\t});\n\n\t\t\t}\n\t\t});\n\t}\n\n\tasync AnalizeReceipt() {\n\t\t// This code interacts with the DOM.\n\t\tlet canvas = document.getElementById(\"visbleCanvas\") as HTMLCanvasElement;\n\t\tlet ctx = canvas.getContext(\"2d\");\n\t\tlet uri = this.GetImageURI(canvas);\n\t\t\n\t\t$(\".spinner\").show();\n\t\tlet r = await this.receiptService.AnalizeReceipt(this.receiptId, uri);\n\t\t$(\".spinner\").hide();\n\n\t\t// Draws all the polygons on top of the receipt image\n\t\tif (r[\"result\"]) {\n\t\t\tlet receiptData = r[\"data\"];\n\t\t\tthis._receiptAnalyzedData = receiptData;\n\t\t\tthis.DrawAllPolygons(receiptData);\n\t\t}\n\t}\n\n\t// Polygon Operations\n\t// --------------------------------------------------\n\n\tDrawPolygon = (polygon) => {\n let color = this._highlightColor;\n let vs = polygon.vertices;\n let canvas = document.getElementById(\"visbleCanvas\") as HTMLCanvasElement;\n\t\tlet ctx = canvas.getContext(\"2d\");\n let vArray = [];\n vs.forEach(v => { vArray.push(v.x); vArray.push(v.y); });\n var poly = vArray;\n ctx.fillStyle = color;\n ctx.lineWidth = 1;\n\n ctx.beginPath();\n ctx.moveTo(poly[0], poly[1]);\n for( let item=2 ; item < poly.length-1 ; item+=2 ){ctx.lineTo( poly[item] , poly[item+1] )}\n\n ctx.closePath();\n ctx.fill();\n\t}\n\n\tDrawAllPolygons(receiptData) {\n\t\t// Draws the polygons\n\t\t// - wordsfound / - wordswithmatches\n\t\tif ( receiptData.wordsfound) {\n\t\t\treceiptData.wordsfound.forEach(w => {\n\t\t\t\tthis.DrawPolygon(w);\n\t\t\t});\n\t\t}\n\n\t\tthis.imageHasPolygonsDrawn = true;\n\t}\n\t\n\t// Image Canvas Polygon Click\n // --------------------------------------------------\n\n\tprivate selectedWord:string = \"\";\n\tprivate scaleFactor = 1;\n\tprivate polygonsWithMatches = [];\n\tprivate xoffset = 0;\n\tprivate yoffset = 0;\n\tprivate foundMatches = [];\n\n\tprocessClick(coords, polygons) {\n\t\tpolygons = polygons || [];\n\n\t\t// Example: coords => {x:e.offsetX, y:e.offsetY}\n\n\t\tthis.polygonsWithMatches = [];\n\n\t\tlet _this = this;\n\t\tthis.selectedWord = \"\";\n\n\t\tpolygons.forEach(p => {\n\t\t\tlet pol = p.vertices;\n\t\t\tlet ret = _this.isPointInPoly(pol, coords);\n\t\t\tif (ret) {\n\n\t\t\t\t// Polygon Match with area click\n\t\t\t\t_this.selectedWord = p[\"text\"];\n\n\t\t\t\tlet found = _this.polygonsWithMatches.findIndex(f => f.text == p.text);\n\t\t\t\tif (found < 0) {\n\t\t\t\t\t_this.polygonsWithMatches.push(p);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t_this.polygonsWithMatches.splice(found, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t\n\t\tif (this.polygonsWithMatches && this.polygonsWithMatches.length > 0) {\n\t\t\tthis.foundMatches = this.polygonsWithMatches[0].matches;\n\t\t}\n\n\t\tthis.wordSelected.emit({\n\t\t\tselectedWord: this.selectedWord,\n\t\t\tfoundMatches: this.foundMatches\n\t\t});\n\n\t\tthis.messagingService.WordPolygonSelectedMessage(this.selectedWord);\n\t}\n\n\tgetRelativeMousePos(e, xoffset, yoffset){\n\t\t//get mouse position relative to the canvas object\n\t\tvar ex = e.pageX - xoffset;\n\t\tvar wy = e.pageY - yoffset;\n\t\treturn {x:ex,y:wy};\n\t}\n\n\tisPointInPoly(poly, point) {\n\t\t//draw vectors from mouse location to detect of a given point is within a polygon\n\t\tvar x = point.x, y = point.y;\n\t\tvar inside = false;\n\t\tfor (var i = 0, j = poly.length - 1; i < poly.length; j = i++) {\n\t\t\tvar xi = this.scaleValue(poly[i].x), yi = this.scaleValue(poly[i].y);\n\t\t\tvar xj = this.scaleValue(poly[j].x), yj = this.scaleValue(poly[j].y);\n\t\t\tvar intersect = ((yi > y) != (yj > y))\n\t\t\t\t&& (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n\t\t\tif (intersect) inside = !inside;\n\t\t}\n\t\treturn inside;\n\t}\n\n\tscaleValue(value){\n\t\t//scale a provided value by the scalefactor\n\t\t//this way we can define the polygons at the native image size\n\t\t//but it scales the values relative to the hidden image element\n\t\treturn value*this.scaleFactor;\n\t}\n\n // Image Operations\n\t// --------------------------------------------------\n\n\tRotate_Left() {\n\t\tthis.rot -= 90;\n\t\tthis.rot = this.rot<0?270:this.rot;\n\t\tthis.CanvasCrop.rotate(this.rot);\n\t\tthis.imageHasPolygonsDrawn = false;\n\t}\n\n\tRotate_Right() {\n\t\tthis.rot += 90;\n\t\tthis.rot = this.rot>360?90:this.rot;\n\t\tthis.CanvasCrop.rotate(this.rot);\n\t\tthis.imageHasPolygonsDrawn = false;\n\t}\n\n\tZoom_Out() {\n\t\tthis.ratio = this.ratio*0.9;\n\t\tthis.CanvasCrop.scale(this.ratio);\n\t\tthis.imageHasPolygonsDrawn = false;\n\t}\n\n\tZoom_In() {\n\t\tthis.ratio = this.ratio*1.1;\n\t\tthis.CanvasCrop.scale(this.ratio);\n\t\tthis.imageHasPolygonsDrawn = false;\n\t}\n\n\t// File Uploader\n\t// --------------------------------------------------\n\n\tchangeListener($event) {\n\t\t// this.readThis($event.target);\n\t}\n\n\t// readThis(inputValue: any) : void {\n\t// \tconsole.log(\"Reading file...\");\n\n\t// \tvar file:File = inputValue.files[0]; \n\t// \tvar myReader:FileReader = new FileReader();\n\n\t// \tlet _this = this;\n\t\n\t// \tmyReader.onloadend = function(e){\n\t// \t\t// you can perform an action with readed data here\n\t// \t\tconsole.log(myReader.result);\n\n\t// \t\t_this.CanvasCrop = $.CanvasCrop({\n\t// \t\t\tcropBox : \".imageBox\",\n\t// \t\t\timgSrc : e.target.result,\n\t// \t\t\tlimitOver : 2\n\t// \t\t});\n\t// \t\t_this.rot =0 ;\n\t// \t\t_this.ratio = 1;\n\t// \t\t_this.imageUrl = \"---\";\n\t// \t}\n\n\t// \tmyReader.readAsDataURL(file);\n\t// }\n\t\n\t\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n\t\tif (this.imageUrl === \"\") {\n\t\t\t// Hides the Spinner\n\t\t\t$(\".spinner\").hide();\n\t\t}\n\t\t\n\t\tlet _this = this;\n\n\t\t// $(function(){\n\t\t// \t$('#upload-file').on('change', function(){\n\n\t\t// \t\tconsole.log(\"File uploader changed.\");\n\n\t\t// \t\tvar reader = new FileReader();\n\t\t// \t\treader.onload = function(e) {\n\n\t\t// \t\t\tconsole.log(\"File Loaded.\");\n\n\t\t// \t\t\t_this.imageUrl = \"---\";\n\n\t\t// \t\t\tCanvasCrop = $.CanvasCrop({\n\t\t// \t\t\t\tcropBox : \".imageBox\",\n\t\t// \t\t\t\timgSrc : e.target.result,\n\t\t// \t\t\t\tlimitOver : 2\n\t\t// \t\t\t});\n\n\t\t// \t\t\trot =0 ;\n\t\t// \t\t\tratio = 1;\n\t\t// \t\t}\n\t\t// \t\treader.readAsDataURL(this.files[0]);\n\t\t// \t\t// files = [];\n\t\t// \t});\n\t\t// });\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\t// console.log(\"Changed!\");\n\t\t// console.log(changes.imageUrl.currentValue);\n\t\tthis.LoadImage();\n\t}\n\t\n}","module.exports = \".btn {\\n font-size: 16px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZWplY3Rpb25mb3JtL3JlamVjdGlvbmZvcm0uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGVBQWU7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JlamVjdGlvbmZvcm0vcmVqZWN0aW9uZm9ybS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJ0biB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xufSJdfQ== */\"","module.exports = \"
\\n
\\n

Selecciona una razón para el rechazo:

\\n \\n
\\n\\n
\\n \\n
\\n\\n
0\\\">\\n
\\n

{{e}}

\\n
\\n
\\n\\n \\n
\\n
\\n Loading...\\n
\\n
\\n\\n \\n
\\n

{{errorMessage}}

\\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { MessagingService } from '../../services/messagingservice';\nimport { ReceiptService } from '../../services/receipt.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: 'rejection-form',\n\ttemplateUrl: './rejectionform.component.html',\n\tstyleUrls: [\"rejectionform.component.css\"]\n})\nexport class RejectionForm implements OnInit, OnChanges {\n\t\n\t@Input() updateUserId: string = \"\";\n\t@Input() receiptId: string = \"\";\n\t@Output() updateDynamicsCrm = new EventEmitter();\n\t@Output() loadingEvent = new EventEmitter();\n\t@Output() returnResponse = new EventEmitter();\n\n\t_showSpinner: boolean = false;\n\tprivate errorMessage: string = \"\";\n\t_showErrorMessage: boolean = false;\n\n\tprivate selectedReason: string = \"\";\n\tvalidationErors: any[] = [];\n\n\tconstructor(private messagingService: MessagingService, private receiptService: ReceiptService) {\n\t\tthis.messagingService.resetRejectionReasonFormEvent.subscribe((message) => {\n\t\t\tthis.resetForm();\n\t\t});\n }\n\t\n\t// UI Methods\n\n\tresetForm() {\n\t\tthis._showErrorMessage = false;\n\t\tthis._showSpinner = false;\n\t\tthis.selectedReason = \"\";\n\t\tthis.errorMessage = \"\";\n\t\tthis.validationErors = [];\n\t}\n\n // Events Methods\n\n selectedReasonChanged(val) {\n\t\tthis.selectedReason = val;\n\t\tthis.validationErors = [];\n\t}\n\n // Internal Methods\n\t\n\tvalidate() {\n\t\tlet errorsFound = [];\n\t\tif (this.selectedReason === \"\") {\n\t\t\terrorsFound.push(\"Por favor seleccione una razón para el rechazo.\");\n\t\t}\n\t\treturn errorsFound;\n\t}\n\n\tasync reject() {\n\n\t\tthis.validationErors = this.validate();\n\t\tif (this.validationErors.length > 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.loadingEvent.emit(\"loading\");\n\t\tthis._showErrorMessage = false;\n\t\tthis._showSpinner = true;\n\n\t\ttry {\n\t\t\tthis.updateDynamicsCrm.emit({reason:this.selectedReason});\n\t\t\tthis.receiptService.RejectReceipt(\n\t\t\t\tthis.receiptId,\n\t\t\t\tthis.updateUserId,\n\t\t\t\tthis.selectedReason\n\t\t\t)\n\t\t\t.then(() => {\n\t\t\t\tthis._showSpinner = false; \n\t\t\t\tthis._showErrorMessage = false;\n\n\t\t\t\tthis.returnResponse.emit({result: true, message:\"La factura se rechazó con éxito.\"});\n\t\t\t})\n\t\t\t.catch((err) => {\n\n\t\t\t\tthis._showSpinner = false; \n\t\t\t\tthis._showErrorMessage = false;\n\n\t\t\t\tthis.returnResponse.emit({result: false, message:\"La factura no se pudo rechazar.\"});\n\t\t\t});\n\t\t}\n\t\tcatch(err) {\n\t\t\tthis._showSpinner = false; \n\t\t\tthis._showErrorMessage = true;\n\t\t\tthis.errorMessage = \"Ocurrió un problema. No se pudo rechazar la factura.\";\n\n\t\t\tthis.returnResponse.emit({result: false, message:this.errorMessage});\n\t\t}\n\t}\n\n // Component Required Methods\n\n\tngOnInit() {\n }\n\n\tngOnChanges(changes: SimpleChanges) {\n\t}\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVqZWN0aW9ucmVhc29uc2Ryb3Bkb3duL3JlamVjdGlvbnJlYXNvbmRyb3Bkb3duLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"
\\n \\n
\\n \\n
\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\n\ndeclare var jquery: any;\ndeclare var $: any;\n\n@Component({\n\tselector: 'rejection-reason-dropdown',\n\ttemplateUrl: './rejectionreasondropdown.component.html',\n\tstyleUrls: [\"rejectionreasondropdown.component.css\"]\n})\nexport class RejectionReasonDropDown implements OnInit, OnChanges {\n\n\t@Input() selectedReason: string = \"\";\n\t@Output() selectedReasonChanged = new EventEmitter();\n\n\treasonsList: any = [\n\t\t{ id: 1, value: \"FACTURA SIN NOMBRE DE FARMACIA\" },\n\t\t{ id: 2, value: \"FACTURA SIN NOMBRE DE FARMACIA\" },\n\t\t{ id: 3, value: \"EXCEDE LIMITE DE COMPRAS REPORTADAS\" },\n\t\t{ id: 4, value: \"FACTURA REPORTA PRODUCTO SUELTO\" },\n\t\t{ id: 5, value: \"FACTURA NO PRESENTA PRECIO\" },\n\t\t{ id: 6, value: \"FACTURA YA FUE REPORTADA\" },\n\t\t{ id: 7, value: \"FACTURA BORROSA\" },\n\t\t{ id: 8, value: \"FACTURA CORTADA\" },\n\t\t{ id: 9, value: \"FACTURA SIN FECHA\" },\n\t\t{ id: 10, value: \"VIGENCIA MAYOR A 1 MES\" },\n\t\t{ id: 11, value: \"NO HAY ARCHIVO ADJUNTO\" },\n\t\t{ id: 12, value: \"IMAGEN NO CORRESPONDE A FACTURA\" },\n\t\t{ id: 13, value: \"FACTURA NO REGISTRA COMPRA DE PRODUCTO ABBOTT\" },\n\t\t{ id: 14, value: \"FACTURA PRESENTA MODIFICACIONES\" },\n\t\t{ id: 15, value: \"VOUCHER SOBRE FACTURA, NO PERMITE LECTURA CORRECTA\" },\n\t\t{ id: 16, value: \"FACTURA NO REPORTA PRODUCTO PARTICIPANTE EN ABOX\" },\n\t\t{ id: 17, value: \"MULTIPLES MOTIVOS\" },\n\t\t{ id: 18, value: \"NIT DE FACTURA NO COINCIDE CON EL NIT DEL PERFIL\" },\n\t\t{ id: 19, value: \"LUGAR DE COMPRA NO AUTORIZADO\" }\n\t];\n\n\tconstructor() {\n\t}\n\n\tselectChanged(e) {\n\t\tlet idx = Number(e.srcElement.value);\n\n\t\tthis.selectedReason = this.reasonsList.filter(r => r.id === idx);\n\t\tthis.selectedReasonChanged.emit(this.selectedReason[0][\"value\"]);\n\t}\n\n\tngOnInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t}\n}\n","module.exports = \".container {\\n position: relative;\\n font-size: 14px;\\n margin-left: 20px !important;\\n }\\n \\n .container p {\\n line-height: 12px;\\n line-height: 0px;\\n height: 0px;\\n margin: 10px;\\n color: #bbb\\n }\\n \\n .action {\\n width: 400px;\\n height: 30px;\\n margin: 10px 0;\\n }\\n \\n .cropped {\\n position: absolute;\\n right: -230px;\\n top: 0;\\n width: 200px;\\n border: 1px #ddd solid;\\n height: 460px;\\n padding: 4px;\\n box-shadow: 0px 0px 12px #ddd;\\n text-align: center;\\n }\\n \\n .imageBox {\\n position: relative;\\n height: 100vh;\\n width: 100%;\\n border: 1px solid rgba(0,0,0,.125);\\n background: #fff;\\n overflow: hidden;\\n background-repeat: no-repeat;\\n cursor: move;\\n /* box-shadow: 4px 4px 12px #B0B0B0; */\\n }\\n \\n .imageBox .thumbBox {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 200px;\\n height: 200px;\\n margin-top: -100px;\\n margin-left: -100px;\\n box-sizing: border-box;\\n border: 1px solid rgba(0,0,0,.125);\\n box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);\\n background: none repeat scroll 0% 0% transparent;\\n }\\n \\n .imageBox .spinner {\\n position: absolute;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n right: 0;\\n text-align: center;\\n line-height: 400px;\\n background: rgba(0,0,0,0.7);\\n color: white;\\n }\\n \\n .Btnsty_peyton {\\n width: 66px;\\n display: inline-block;\\n margin-bottom: 10px;\\n height: 57px;\\n line-height: 57px;\\n font-size: 20px;\\n color: #FFFFFF;\\n margin: 0px 2px;\\n background-color: #f38e81;\\n border-radius: 3px;\\n text-decoration: none;\\n cursor: pointer;\\n box-shadow: 0px 0px 5px #B0B0B0;\\n border: 0px #fff solid;\\n }\\n \\n .fileInput > input{\\n visibility: hidden;\\n /* position: absolute; */\\n /* display: none; */\\n width: 0px;\\n height: 0px;\\n }\\n \\n .fileInput > label{\\n width: 100%;\\n cursor: pointer;\\n text-align: center;\\n /* background-color: blue; */\\n }\\n \\n /*选择文件上传*/\\n \\n .new-contentarea {\\n width: 165px;\\n overflow: hidden;\\n margin: 0 auto;\\n position: relative;\\n float: left;\\n }\\n \\n .new-contentarea label {\\n width: 100%;\\n height: 100%;\\n display: block;\\n }\\n \\n .new-contentarea input[type=file] {\\n width: 188px;\\n height: 60px;\\n background: #333;\\n margin: 0 auto;\\n position: absolute;\\n right: 50%;\\n margin-right: -94px;\\n top: 0;\\n right/*\\\\**/: 0px\\\\9;\\n margin-right/*\\\\**/: 0px\\\\9;\\n width/*\\\\**/: 10px\\\\9;\\n opacity: 0;\\n filter: alpha(opacity=0);\\n z-index: 2;\\n }\\n \\n a.upload-img {\\n width: 165px;\\n display: inline-block;\\n margin-bottom: 10px;\\n height: 57px;\\n line-height: 57px;\\n font-size: 20px;\\n color: #FFFFFF;\\n background-color: #f38e81;\\n border-radius: 3px;\\n text-decoration: none;\\n cursor: pointer;\\n border: 0px #fff solid;\\n box-shadow: 0px 0px 5px #B0B0B0;\\n }\\n \\n a.upload-img:hover { background-color: #ec7e70; }\\n \\n .tc { text-align: center; }\\n \\n /* Canvas Tools */\\n \\n .tools, .top-spacer {\\n margin-top: 20px;\\n \\n}\\n \\n .tools span, button{\\n display: inline-block;\\n padding: 5px 20px;\\n /* background-color: #f40; */\\n color: white;\\n cursor: pointer;\\n margin-bottom: 5px;\\n margin-right: 5px;\\n font-size: 14px;\\n}\\n \\n .tools .btn-danger{\\n color: white;\\n}\\n \\n .clearfix {\\n *zoom: 1;\\n}\\n \\n .clearfix:before{\\n content: \\\" \\\";\\n display: table;\\n}\\n \\n .clearfix:after{\\n content: \\\" \\\";\\n display: table;\\n clear: both;\\n}\\n \\n .cropPoint{\\n position: absolute;\\n height: 8px;\\n width: 8px;\\n background-color: rgba(255,255,255,0.7);\\n cursor: pointer;\\n}\\n \\n .btn {\\n /* border-radius: 2px !important; */\\n padding: 5px !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXZpc2lvbmltYWdlL3JldmlzaW9uaW1hZ2UuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsNEJBQTRCO0VBQzlCOztFQUVBO0lBQ0UsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsWUFBWTtJQUNaO0VBQ0Y7O0VBRUE7SUFDRSxZQUFZO0lBQ1osWUFBWTtJQUNaLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLE1BQU07SUFDTixZQUFZO0lBQ1osc0JBQXNCO0lBQ3RCLGFBQWE7SUFDYixZQUFZO0lBQ1osNkJBQTZCO0lBQzdCLGtCQUFrQjtFQUNwQjs7RUFFRjtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsV0FBVztJQUNYLGtDQUFrQztJQUNsQyxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLDRCQUE0QjtJQUM1QixZQUFZO0lBQ1osc0NBQXNDO0VBQ3hDOztFQUVBO0lBQ0Usa0JBQWtCO0lBQ2xCLFFBQVE7SUFDUixTQUFTO0lBQ1QsWUFBWTtJQUNaLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLHNCQUFzQjtJQUN0QixrQ0FBa0M7SUFDbEMsMkNBQTJDO0lBQzNDLGdEQUFnRDtFQUNsRDs7RUFFQTtJQUNFLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTztJQUNQLFNBQVM7SUFDVCxRQUFRO0lBQ1Isa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQiwyQkFBMkI7SUFDM0IsWUFBWTtFQUNkOztFQUVBO0lBQ0UsV0FBVztJQUNYLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsY0FBYztJQUNkLGVBQWU7SUFDZix5QkFBeUI7SUFDekIsa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixlQUFlO0lBQ2YsK0JBQStCO0lBQy9CLHNCQUFzQjtFQUN4Qjs7RUFFQTtJQUNFLGtCQUFrQjtJQUNsQix3QkFBd0I7SUFDeEIsbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixXQUFXO0VBQ2I7O0VBRUE7SUFDRSxXQUFXO0lBQ1gsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQiw0QkFBNEI7RUFDOUI7O0VBRUEsU0FBUzs7RUFFVDtJQUNFLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLGtCQUFrQjtJQUNsQixXQUFXO0VBQ2I7O0VBRUE7SUFDRSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxZQUFZO0lBQ1osWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixtQkFBbUI7SUFDbkIsTUFBTTtJQUNOLGtCQUFrQjtJQUNsQix5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLFVBQVU7SUFDVix3QkFBd0I7SUFDeEIsVUFBVTtFQUNaOztFQUVBO0lBQ0UsWUFBWTtJQUNaLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsY0FBYztJQUNkLHlCQUF5QjtJQUN6QixrQkFBa0I7SUFDbEIscUJBQXFCO0lBQ3JCLGVBQWU7SUFDZixzQkFBc0I7SUFDdEIsK0JBQStCO0VBQ2pDOztFQUVBLHFCQUFxQix5QkFBeUIsRUFBRTs7RUFFaEQsTUFBTSxrQkFBa0IsRUFBRTs7RUFFMUIsaUJBQWlCOztFQUVuQjtFQUNFLGdCQUFnQjs7QUFFbEI7O0VBQ0E7RUFDRSxxQkFBcUI7RUFDckIsaUJBQWlCO0VBQ2pCLDRCQUE0QjtFQUM1QixZQUFZO0VBQ1osZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsZUFBZTtBQUNqQjs7RUFDQTtFQUNFLFlBQVk7QUFDZDs7RUFDQTtHQUNFLE9BQVE7QUFDVjs7RUFDQTtFQUNFLFlBQVk7RUFDWixjQUFjO0FBQ2hCOztFQUNBO0VBQ0UsWUFBWTtFQUNaLGNBQWM7RUFDZCxXQUFXO0FBQ2I7O0VBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFVBQVU7RUFDVix1Q0FBdUM7RUFDdkMsZUFBZTtBQUNqQjs7RUFFQTtFQUNFLG1DQUFtQztFQUNuQyx1QkFBdUI7QUFDekIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JldmlzaW9uaW1hZ2UvcmV2aXNpb25pbWFnZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tbGVmdDogMjBweCAhaW1wb3J0YW50O1xuICB9XG4gIFxuICAuY29udGFpbmVyIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIGNvbG9yOiAjYmJiXG4gIH1cbiAgXG4gIC5hY3Rpb24ge1xuICAgIHdpZHRoOiA0MDBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gIH1cbiAgXG4gIC5jcm9wcGVkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC0yMzBweDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGJvcmRlcjogMXB4ICNkZGQgc29saWQ7XG4gICAgaGVpZ2h0OiA0NjBweDtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAxMnB4ICNkZGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIFxuLmltYWdlQm94IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMjUpO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICAvKiBib3gtc2hhZG93OiA0cHggNHB4IDEycHggI0IwQjBCMDsgKi9cbiAgfVxuICBcbiAgLmltYWdlQm94IC50aHVtYkJveCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICBtYXJnaW4tdG9wOiAtMTAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMDBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyNSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTAwMHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBiYWNrZ3JvdW5kOiBub25lIHJlcGVhdCBzY3JvbGwgMCUgMCUgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgXG4gIC5pbWFnZUJveCAuc3Bpbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDQwMHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC43KTtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgXG4gIC5CdG5zdHlfcGV5dG9uIHtcbiAgICB3aWR0aDogNjZweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBoZWlnaHQ6IDU3cHg7XG4gICAgbGluZS1oZWlnaHQ6IDU3cHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIG1hcmdpbjogMHB4IDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjM4ZTgxO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggNXB4ICNCMEIwQjA7XG4gICAgYm9yZGVyOiAwcHggI2ZmZiBzb2xpZDtcbiAgfVxuXG4gIC5maWxlSW5wdXQgPiBpbnB1dHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLyogcG9zaXRpb246IGFic29sdXRlOyAqL1xuICAgIC8qIGRpc3BsYXk6IG5vbmU7ICovXG4gICAgd2lkdGg6IDBweDtcbiAgICBoZWlnaHQ6IDBweDtcbiAgfVxuXG4gIC5maWxlSW5wdXQgPiBsYWJlbHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qIGJhY2tncm91bmQtY29sb3I6IGJsdWU7ICovXG4gIH1cbiAgXG4gIC8q6YCJ5oup5paH5Lu25LiK5LygKi9cbiAgXG4gIC5uZXctY29udGVudGFyZWEge1xuICAgIHdpZHRoOiAxNjVweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICBcbiAgLm5ldy1jb250ZW50YXJlYSBsYWJlbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIFxuICAubmV3LWNvbnRlbnRhcmVhIGlucHV0W3R5cGU9ZmlsZV0ge1xuICAgIHdpZHRoOiAxODhweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IC05NHB4O1xuICAgIHRvcDogMDtcbiAgICByaWdodC8qXFwqKi86IDBweFxcOTtcbiAgICBtYXJnaW4tcmlnaHQvKlxcKiovOiAwcHhcXDk7XG4gICAgd2lkdGgvKlxcKiovOiAxMHB4XFw5O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cbiAgXG4gIGEudXBsb2FkLWltZyB7XG4gICAgd2lkdGg6IDE2NXB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGhlaWdodDogNTdweDtcbiAgICBsaW5lLWhlaWdodDogNTdweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YzOGU4MTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDBweCAjZmZmIHNvbGlkO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggNXB4ICNCMEIwQjA7XG4gIH1cbiAgXG4gIGEudXBsb2FkLWltZzpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6ICNlYzdlNzA7IH1cbiAgXG4gIC50YyB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4gIC8qIENhbnZhcyBUb29scyAqL1xuXG4udG9vbHMsIC50b3Atc3BhY2VyIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgXG59XG4udG9vbHMgc3BhbiwgYnV0dG9ue1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDVweCAyMHB4O1xuICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQwOyAqL1xuICBjb2xvcjogd2hpdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLnRvb2xzIC5idG4tZGFuZ2Vye1xuICBjb2xvcjogd2hpdGU7XG59XG4uY2xlYXJmaXgge1xuICAqem9vbTogMTtcbn1cbi5jbGVhcmZpeDpiZWZvcmV7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cbi5jbGVhcmZpeDphZnRlcntcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbn1cbi5jcm9wUG9pbnR7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiA4cHg7XG4gIHdpZHRoOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYnRuIHtcbiAgLyogYm9yZGVyLXJhZGl1czogMnB4ICFpbXBvcnRhbnQ7ICovXG4gIHBhZGRpbmc6IDVweCAhaW1wb3J0YW50O1xufSJdfQ== */\"","module.exports = \"
\\n\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
Loading...
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n Ocurrió un error al cargar la imagen.\\n
\\n

{{imageUrl}}

\\n \\n
\\n\\n
\\n \\n
\\n\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, ɵɵupdateSyntheticHostBinding, Input, Output, HostListener } from \"@angular/core\";\nimport { ReceiptService } from '../../services/receipt.service';\nimport { CacheService } from '../../services/cache.service';\nimport { EventEmitter } from \"@angular/core\";\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { MessagingService } from '../../services/messagingservice';\nimport { TokenService } from '../../services/token.service';\nimport { SharedDataService } from '../../services/shared_data.service';\n\ndeclare var jquery: any;\ndeclare var $: any;\n\n@Component({\n\tselector: \"revision-image\",\n\ttemplateUrl: \"revisionimage.component.html\",\n\tstyleUrls: [\"revisionimage.component.css\"]\n})\nexport class ReceiptRevisionImageComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\t@ViewChild('bigPdfViewer', { static: true }) public bigPdfViewer;\n\n\t// Canvas variables\n\t// ------------------------------------------------\n\t@ViewChild('visbleCanvas', { static: true })\n\tvisbleCanvas: ElementRef;\n\tprivate ctx: CanvasRenderingContext2D;\n\n\tconstructor(private receiptService: ReceiptService, \n\t\tprivate messagingService: MessagingService, \n\t\tprivate cs: CacheService,\n\t\tprivate shared_data_service: SharedDataService) {\n\t\tthis.messagingService.drawPolygonsOnCanvasEvent.subscribe((polygons) => {\n\t\t\tconsole.log(\"Message: drawPolygonsOnCanvasEvent #1\");\n\t\t\tthis.DrawPolygons(polygons);\n\t\t});\n\n\t\tthis.messagingService.drawPolygonOnCanvasEvent.subscribe((polygon) => {\n\t\t\tconsole.log(\"Message: drawPolygonOnCanvasEvent #2\");\n\t\t\tthis.DrawPolygon(polygon);\n\t\t});\n\n\t\tthis.messagingService.reloadImageInImageRevisionComponentEvent.subscribe(async () => {\n\t\t\tconsole.log(\"Message: reloadImageInImageRevisionComponentEvent #3\");\n\t\t\tthis.ResetImage_WithPolygons();\n\t\t});\n\n\t\tthis.messagingService.triggerDrawSinglePolygonEvent.subscribe(async (words) => {\n\t\t\tconsole.log(\"Message: triggerDrawSinglePolygonEvent #4\");\n\n\t\t\tthis.ResetImage(() => {\n\t\t\t\tthis.DrawPolygons(words);\n\t\t\t});\n\t\t});\n\t}\n\n\t// Component I/O Parameters\n\t// ------------------------------------------------\n\t@Input() imageUrl: string = \"\";\n\t@Input() receiptObject: any = {};\n\t@Input() encodedToken: any = null;\n\t@Input() ToggleModal: any = null;\n\t@Output() analizeClicked = new EventEmitter();\n\t@Output() reAnalizeClicked = new EventEmitter();\n\t@Output() imageLoaded = new EventEmitter();\n\t@Output() newImageUrl = new EventEmitter();\n\n\tnewFile: any = null;\n\treanalizeFileUrl = null;\n\n\trot: number = 0;\n\tratio: number = 0.6; // By default opens the bill with a 20% zoom out\n\tCanvasCrop: any;\n\t_highlightColor: string = \"rgba(255, 0, 0, 0.2)\";\n\n\tprivate selectedItemPolygons: any = [];\n\timageLoadError: boolean = false;\n\timageIsPDF: boolean = false;\n\tshowReAnalizeButton: boolean = false;\n\n\t// Main Methods\n\n\tLoadImage(callbackFx) {\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tif (this.imageUrl === \"\" || this.imageUrl === undefined || this.imageUrl === \"undefined\") {\n\t\t\t\t// Hides the Spinner\n\t\t\t\t$(\".spinner\").hide();\n\t\t\t\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.imageLoadError = false;\n\n\t\t\ttry {\n\t\t\t\tlet url = this.imageUrl;\n\t\t\t\tlet _this = this;\n\n\t\t\t\t$(\".spinner\").show();\n\n\t\t\t\tthis.CanvasCrop = $.CanvasCrop({\n\t\t\t\t\tcropBox: \".imageBox\",\n\t\t\t\t\timgSrc: url,\n\t\t\t\t\tlimitOver: 0,\n\t\t\t\t\timageLoadedFx: () => {\n\n\t\t\t\t\t\t// Hides the Spinner\n\t\t\t\t\t\t$(\".spinner\").hide();\n\n\t\t\t\t\t\t// Adds the click Events to the Canvas\n\t\t\t\t\t\tvar canvas = document.getElementById(\"visbleCanvas\");\n\t\t\t\t\t\tcanvas.addEventListener('click', function (e) {\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t_this.CanvasCrop.scale(this.ratio);\n\t\t\t\t\t\t_this.CanvasCrop.rotate(this.rot);\n\n\t\t\t\t\t\t$(\".spinner\").hide();\n\n\t\t\t\t\t\tif (callbackFx) {\n\t\t\t\t\t\t\tcallbackFx();\n\t\t\t\t\t\t\tresolve({});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve({});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\timageLoadedErrorFx: (err) => {\n\t\t\t\t\t\tconsole.log(\"Error Fx Reached!\", err);\n\t\t\t\t\t\tconsole.log(\"-> Image URL: \", _this.imageUrl);\n\t\t\t\t\t\t_this.imageLoadError = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t} catch (err) {\n\t\t\t\tconsole.log(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tasync ReAnalizeReceipt() {\n\n\t\tconsole.log(\"ReAnalizeReceipt: is PDF? \", this.imageIsPDF);\n\n\t\tif (this.imageIsPDF) {\n\t\t\t$(\"#reanalizeModal\").modal(\"hide\");\n\t\t\treturn;\n\t\t}\n\n\t\t// This code interacts with the DOM.\n\t\tlet canvas = document.getElementById(\"visbleCanvas\") as HTMLCanvasElement;\n\t\tlet ctx = canvas.getContext(\"2d\");\n\t\tlet uri = this.GetImageURI(canvas);\n\n\t\t$(\".spinner\").show();\n\t\tthis.reAnalizeClicked.emit(uri);\n\t\t$(\".spinner\").hide();\n\n\t\t$(\"#reanalizeModal\").modal(\"hide\");\n\t}\n\n\tGetCanvas() {\n\t\tlet canvas = document.getElementById(\"visbleCanvas\") as HTMLCanvasElement;\n\t\treturn canvas;\n\t}\n\n\tGetImageURI(canvas) {\n\t\tif (!canvas || canvas === \"\") return \"\";\n\n\t\t// Converts the contents on the canvas to a serialized text that will be sent to the server\n\t\t// to be interpreted and analyzed.\n\n\t\t// get image URI from canvas object\n\t\tvar imageURI = canvas.toDataURL(\"image/jpg\");\n\n\t\treturn imageURI;\n\t}\n\n\tOpenInOtherWindow() {\n\t\twindow.open(this.imageUrl, \"_blank\");\n\t}\n\n\tOpenOriginalInOtherWindow() {\n\t\twindow.open(this.receiptObject[\"imageUrl\"], \"_blank\");\n\t}\n\n\t//Image Functions\n\n\tSetNewFile(e){\n\t\tthis.newFile = e.currentTarget.files[0];\n\t\t$('#uploadFileModal').modal('show')\n\t}\n\n\tasync UploadNewImgFile(e) {\n\t\tthis.newFile = e.currentTarget.files[0];\n\t\ttry {\n\t\t\tthis.ToggleModal('pleaseWaitDialog',true);\n\t\t\tlet r = await this.receiptService.UpdateReceiptImage(this.newFile, this.encodedToken)\n\t\t\tif(r['result']){\n\t\t\t\tthis.newImageUrl.emit(r['data']['filename']);\n\t\t\t\tthis.ToggleModal('pleaseWaitDialog',false);\n\t\t\t\tthis.ToggleModal('reanalizeModal', true)\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.log(err);\n\t\t}\n\n\t}\n\n\tasync UploadNewRecieptImage(file) {\n\t\t// this.OpenPleaseWaitModal();\n\t\t// let r = await this.rs.UpdateReceiptImage(file, this.encodedToken);\n\n\t}\n\n\t// Polygon Methods\n\n\tDrawPolygon = (polygon) => {\n\t\tlet color = this._highlightColor;\n\t\tlet vs = polygon.vertices;\n\t\tlet canvas = document.getElementById(\"visbleCanvas\") as HTMLCanvasElement;\n\t\tif (canvas != null) {\n\t\t\tlet ctx = canvas.getContext(\"2d\");\n\t\t\tlet vArray = [];\n\t\t\tvs.forEach(v => { vArray.push(v.x); vArray.push(v.y); });\n\t\t\tvar poly = vArray;\n\t\t\tctx.fillStyle = color;\n\t\t\tctx.lineWidth = 1;\n\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(poly[0] * this.ratio, poly[1] * this.ratio);\n\t\t\tfor (let item = 2; item < poly.length - 1; item += 2) { ctx.lineTo(poly[item] * this.ratio, poly[item + 1] * this.ratio) }\n\n\t\t\tctx.closePath();\n\t\t\tctx.fill();\n\t\t}\n\t}\n\n\tasync DrawPolygons(wordMatches) {\n\t\twordMatches.forEach(w => {\n\t\t\tthis.DrawPolygon(w);\n\t\t});\n\t}\n\n\t// Image rotation + zoom in/out methods\n\n\tRotate_Left() {\n\t\tthis.rot -= 90;\n\t\tthis.rot = this.rot < 0 ? 270 : this.rot;\n\t\tthis.CanvasCrop.rotate(this.rot);\n\t\tthis.showReAnalizeButton = true;\n\n\t}\n\n\tRotate_Right() {\n\t\tthis.rot += 90;\n\t\tthis.rot = this.rot > 360 ? 90 : this.rot;\n\t\tthis.CanvasCrop.rotate(this.rot);\n\t\tthis.showReAnalizeButton = true;\n\t}\n\n\tZoom_Out() {\n\t\tthis.ratio = this.ratio - 0.3;\n\t\tif (this.ratio <= 0) this.ratio = 0.1; // Mínimo 10%\n\t\tthis.CanvasCrop.scale(this.ratio);\n\t\tthis.DrawPolygons(this.selectedItemPolygons);\n\t\tthis.showReAnalizeButton = true;\n\t\tthis.messagingService.TriggerDrawPolygons();\n\t}\n\n\tZoom_In() {\n\t\tthis.ratio = this.ratio + 0.3;\n\t\tthis.CanvasCrop.scale(this.ratio);\n\t\tthis.DrawPolygons(this.selectedItemPolygons);\n\t\tthis.showReAnalizeButton = true;\n\t\tthis.messagingService.TriggerDrawPolygons();\n\t}\n\n\tReAnalize() {\n\t\tif (!this.imageIsPDF) {\n\t\t\t$('#reanalizeModal').modal('show')\n\t\t\tthis.LoadImage(async () => {\n\t\t\t\tlet r = await this.ReAnalizeReceipt();\n\t\t\t});\n\t\t}\n\t}\n\n\tasync ResetImage_WithPolygons() {\n\t\tlet canvas = document.getElementById(\"visbleCanvas\") as HTMLCanvasElement;\n\t\tlet ctx = canvas.getContext(\"2d\");\n\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\n\t\tawait this.LoadImage(null);\n\t\tthis.ngAfterViewInit();\n\t}\n\n\tasync ResetImage(callbackfx) {\n\t\t// Redraws the image with no polygons.\n\n\t\tlet canvas = document.getElementById(\"visbleCanvas\") as HTMLCanvasElement;\n\t\tif (canvas) {\n\t\t\tlet ctx = canvas.getContext(\"2d\");\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\n\t\t\tawait this.LoadImage(callbackfx);\n\t\t}\n\t}\n\n\t// Component Methods\n\t// --------------------------------------------------\n\n\tasync ngOnInit() {\n\t\t// Verify if the image is a PDF\n\t\tif (this.imageUrl != undefined && this.imageUrl.toUpperCase().indexOf(\".PDF\") >= 0) {\n\t\t\tthis.imageIsPDF = true;\n\t\t}\n\t\telse {\n\t\t\tthis.imageIsPDF = false;\n\t\t}\n\n\t\tif (this.receiptObject[\"OcrInfo\"] !== undefined && (this.receiptObject[\"OcrInfo\"][\"imageText\"] === null || this.receiptObject[\"OcrInfo\"][\"imageText\"] === \"\")) {\n\t\t\tthis.showReAnalizeButton = true;\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.imageLoadError = false;\n\n\t\t// Verify if the image is not a PDF\n\t\tif (this.imageUrl != undefined && this.imageUrl.toUpperCase().indexOf(\".PDF\") < 0) {\n\n\t\t\tthis.LoadImage(() => {\n\t\t\t\t// Image was loaded.\n\t\t\t\tvar canvas = document.getElementById(\"visbleCanvas\");\n\t\t\t\tvar _imageURI = this.GetImageURI(canvas);\n\t\t\t\tthis.imageLoaded.emit(_imageURI);\n\t\t\t});\n\n\t\t}\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t}\n}","module.exports = \".no-data {\\n text-align: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZWxlY3RlZHByb2R1Y3RzdGFibGUvc2VsZWN0ZWRwcm9kdWN0c3RhYmxlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQkFBa0I7QUFDdEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NlbGVjdGVkcHJvZHVjdHN0YWJsZS9zZWxlY3RlZHByb2R1Y3RzdGFibGUuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5uby1kYXRhIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59Il19 */\"","module.exports = \"
\\n\\t
\\n\\t\\t

id {{p.id}}

\\n\\t\\t

{{p.name}}

\\n\\t\\t
\\n\\t\\t\\t

{{p.points}} puntos requeridos

\\n\\t\\t\\tEliminar\\n\\n\\t\\t
\\n\\t
\\n\\n
\\n\\n
\\n\\t\\n
\\n\\n\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { Product } from '../../models/product';\nimport { MessagingService } from '../../services/messagingservice';\nimport { ProductAdded } from \"src/app/models/productadded\";\nimport { Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { ReceiptService } from '../../services/receipt.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"selectedproducts-table\",\n\ttemplateUrl: \"selectedproductstable.component.html\",\n\tstyleUrls: [\"selectedproductstable.component.css\"]\n})\nexport class SelectedProductsTable implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Input() selectedProducts: any = [];\n\n\tconstructor(private messagingService: MessagingService) {\n\t}\n\n\tBorrarProducto(idx) {\n\t\tthis.selectedProducts.splice(idx, 1)\n\t\tthis.messagingService.UpdateCart();\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \".list-header {\\n padding-top: 20px;\\n font-size: 12px;\\n font-weight: bold;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zdWdnZXN0ZWRwcm9kdWN0c3RhYmxlL3N1Z2dlc3RlZHByb2R1Y3RzdGFibGUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsaUJBQWlCO0FBQ3JCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zdWdnZXN0ZWRwcm9kdWN0c3RhYmxlL3N1Z2dlc3RlZHByb2R1Y3RzdGFibGUuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5saXN0LWhlYWRlciB7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufSJdfQ== */\"","module.exports = \"
\\n\\t\\n\\t
\\n\\n\\t\\t

{{f.familly}} ({{f.products.length}} productos)

\\n\\n\\t\\t
\\n\\t\\t\\t

id {{p.id}}

\\n\\t\\t\\t

{{p.name}}

\\n\\t\\t\\t
\\n\\t\\t\\t\\t

{{p.redeem}} puntos requeridos

\\n\\t\\t\\t
\\n\\t\\t
\\n\\n\\t
\\n\\t\\n
\\n\\n\\n\\n
\\n\\n
\"","import { Input, Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from \"@angular/core\";\nimport { Product } from '../../models/product';\nimport { MessagingService } from '../../services/messagingservice';\nimport { ProductAdded } from \"src/app/models/productadded\";\nimport { Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { ReceiptService } from '../../services/receipt.service';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"suggestedproducts-table\",\n\ttemplateUrl: \"suggestedproductstable.component.html\",\n\tstyleUrls: [\"suggestedproductstable.component.css\"]\n})\nexport class SuggestedProductsTable implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\t@Input() selectedProducts: any = [];\n\t@Input() productsList: any = [];\n\tsuggestedProducts: any = [];\n\tsuggestedFamilies: any = [];\n\n\tBuildSuggestedList() {\n\t\tif (this.selectedProducts.length === 0) {\n\t\t\tthis.suggestedProducts = [];\n\t\t\treturn;\n\t\t}\n\n\t\t// Calculate the points\n\t\tlet pointsAccrued = 0;\n\t\tthis.selectedProducts.forEach(p => pointsAccrued += p.points);\n\n\t\t// Extracts the Families that are within the selected products\n\n\t\tlet families = [];\n\t\tthis.selectedProducts.map(s => {\n\t\t\tlet found = families.filter(f => f.familly === s.familly);\n\t\t\tif (found.length === 0) {\n\t\t\t\tfamilies.push({\n\t\t\t\t\tfamilly: s.familly,\n\t\t\t\t\tproducts: []\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\t// Gets the suggested products per familly\n\n\t\tfamilies.forEach(f => {\n\t\t\tf.products = this.productsList.filter(p => p.familly === f.familly && p.redeem <= pointsAccrued)\n\t\t});\n\n\t\t// Removes the families that don't have any products\n\t\tthis.suggestedFamilies = families.filter(f => f.products.length > 0);\n\n\t\t// // Filters the products\n\t\t// let maxItemsToReturn = 10;\n\t\t// let sameCatFamProds = this.productsList.filter(p => {\n\t\t// \tlet f = this.selectedProducts.filter(s => s.category === p.category || s.familly === p.familly);\n\t\t// \tif (f.length > 0 && p.redeem <= pointsAccrued && p.redeem > 0) return p;\n\t\t// });\n\t\t// this.suggestedProducts = sameCatFamProds.sort(this.sorterJsonArrayByKey(\"redeem\", \"desc\")).slice(0, maxItemsToReturn);\n\t\t\n\t\t// let tempArray = this.productsList.filter(p => p.redeem <= pointsAccrued);\n\t\t// this.suggestedProducts = tempArray.sort(this.sorterJsonArrayByKey(\"redeem\", \"desc\")).slice(0, maxItemsToReturn);\n\t}\n\n\tconstructor(private messagingService: MessagingService) {\n\t\tthis.messagingService.clearCartEvent.subscribe((message) => {\n\t\t\tthis.suggestedFamilies = [];\n\t\t\tthis.selectedProducts = [];\n\t\t\tthis.BuildSuggestedList();\n\t\t});\n\n\t\tthis.messagingService.updateCartEvent.subscribe((message) => {\n\t\t\tthis.BuildSuggestedList();\n\t\t});\n\t}\n\n\tsortByKey(array, key) {\n\t\treturn array.sort(function(a, b) {\n\t\t\tvar x = a[key]; var y = b[key];\n\t\t\treturn ((x < y) ? -1 : ((x > y) ? 1 : 0));\n\t\t});\n\t}\n\n\tsorterJsonArrayByKey (key, order: string = \"asc\") {\n\t\tif (order)\n\t\t\treturn function innerSort(a, b) {\n\t\t \t\tif (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\n\t\t\t\t// property doesn't exist on either object\n\t\t\t\treturn 0;\n\t\t \t}\n\t \n\t\t\tconst varA = (typeof a[key] === 'string')\n\t\t\t? a[key].toUpperCase() : a[key];\n\t\t\tconst varB = (typeof b[key] === 'string')\n\t\t\t? b[key].toUpperCase() : b[key];\n\n\t\t\tlet comparison = 0;\n\t\t\tif (varA > varB) {\n\t\t\tcomparison = 1;\n\t\t\t} else if (varA < varB) {\n\t\t\tcomparison = -1;\n\t\t\t}\n\t\t\treturn (\n\t\t\t(order === 'desc') ? (comparison * -1) : comparison\n\t\t\t);\n\t\t}\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","export class Factura_Search_Object {\n country: string;\n factura: string;\n pharmacy: string;\n nationalid: string;\n startdate: string;\n enddate: string;\n priority: string;\n status: string;\n page: number = 1;\n pagesize: number = 10;\n\n constructor(_country, _factura, _pharmacy, _nationalid, _startdate, _enddate, _priority, _status, _page, _pagesize) {\n this.country = _country;\n this.factura = _factura;\n this.pharmacy = _pharmacy;\n this.nationalid = _nationalid;\n this.startdate = _startdate;\n this.enddate = _enddate;\n this.priority = _priority;\n this.status = _status;\n this.page = _page;\n this.pagesize = _pagesize;\n }\n}\n\nexport class Factura_SearchResults_Object {\n ID_Factura: string;\n Factura: string;\n Cedula: string;\n Estado: string;\n Farmacia: string;\n Fecha: string;\n Registrada: string;\n\n constructor(_ID_Factura, _Factura, _Cedula, _Estado, _Farmacia, _Fecha, _Registrada) {\n this.ID_Factura = _ID_Factura;\n this.Factura = _Factura;\n this.Cedula = _Cedula;\n this.Estado = _Estado;\n this.Farmacia = _Farmacia;\n this.Fecha = _Fecha;\n this.Registrada = _Registrada;\n }\n}","export class Product {\n id: number;\n name: string;\n description: string\n\n constructor(_id, _name) {\n this.id = _id;\n this.name = _name;\n }\n}","export class ProductAdded {\n id: string = \"\";\n name: string = \"\";\n qty: number = 0;\n price: number = 0;\n\n constructor(_id, _name, _qty, _price) {\n this.id = _id;\n this.name = _name;\n this.qty = _qty;\n this.price = _price;\n }\n}","export class ReceiptApprovalRequest {\n billId: string;\n user: string;\n role: string;\n\n constructor(_billId, _user, _role) {\n this.billId = _billId;\n this.user = _user;\n this.role = _role;\n }\n}\n\nexport class ReceiptApprovalCallCenterRequest_Product {\n productid: string = \"\";\n qty: number = 0;\n price: number = 0;\n constructor(_productid, _qty, _price) {\n this.productid = _productid;\n this.qty = _qty;\n this.price = _price;\n }\n}\n\nexport class ReceiptApprovalCallCenterRequest {\n billid: string;\n user: string;\n role: string;\n products: any[];\n\n constructor(_billid, _user, _role, _products) {\n this.billid = _billid;\n this.user = _user;\n this.role = _role;\n this.products = _products; // { productid:\"\", qty:0, price: 0 }\n }\n}","export class ReceiptRejectionRequest {\n billId: string;\n user: string;\n reason: string;\n duration: number = 0;\n\n constructor(_billId, _user, _reason, _duration) {\n this.billId = _billId;\n this.user = _user;\n this.reason = _reason;\n this.duration = _duration;\n }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2NhcnRzaW11bGF0b3IvY2FydHNpbXVsYXRvci5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"\\n\\n
\\n\\n \\n\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n

\\n Calculadora de puntos\\n

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

Productos seleccionados:

\\n

{{selectedProducts.length}} productos en total

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

Productos recomendados

\\n

Productos a los que tiene acceso

\\n
\\n
\\n \\n
\\n\\n
\\n
\\n \\n
\\n\\n
\\n\\n
\\n \\n
\\n\\n\\n\\n\\n\\n\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, ɵɵupdateSyntheticHostBinding, ChangeDetectionStrategy } from \"@angular/core\";\nimport { ReceiptService } from '../../services/receipt.service';\nimport { CacheService } from '../../services/cache.service';\nimport { EventEmitter } from \"@angular/core\";\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { MessagingService } from '../../services/messagingservice';\nimport { TokenService } from '../../services/token.service';\n\nimport { environment } from '../../../environments/environment';\n\ndeclare var jquery:any\ndeclare var $ :any;\n\n@Component({\n\tselector: \"cartsimulator\",\n\ttemplateUrl: \"cartsimulator.component.html\",\n\tstyleUrls: [\"cartsimulator.component.css\"]\n})\nexport class CartSimulator implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\t// Cart Simulator Storage\n\tselectedProducts: any = [];\n\tproductsList: any = [];\n\n\tconstructor(private messagingService: MessagingService, private receiptService: ReceiptService) {\n\t\tthis.messagingService.clearCartEvent.subscribe((message) => {\n\t\t\tthis.selectedProducts = [];\n\t\t\tthis.messagingService.UpdateCart();\n\t\t});\n\t}\n\n\tselectedItemChanged(event) {\n\t\tthis.selectedProducts.push(event);\n\t\tthis.messagingService.UpdateCart();\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n\t\t// Gets the Products list\n\t\tlet productsR = await this.receiptService.GetProducts('CR');\n\t\tthis.productsList = productsR;\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2ZhY3R1cmFzX3NlYXJjaF9wYWdlL2ZhY3R1cmFzX3NlYXJjaF9wYWdlLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"\\n\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, ChangeDetectorRef, ChangeDetectionStrategy, HostListener } from \"@angular/core\";\nimport { ReceiptService } from '../../services/receipt.service';\nimport { CacheService } from '../../services/cache.service';\nimport { EventEmitter } from \"@angular/core\";\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { MessagingService } from '../../services/messagingservice';\nimport { Subject, interval } from \"rxjs\";\n// Environment Setup\nimport { environment } from '../../../environments/environment.prod';\n\n@Component({\n\tselector: \"facturas_search-page\",\n\ttemplateUrl: \"facturas_search_page.component.html\",\n\tstyleUrls: [\"facturas_search_page.component.css\"],\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class Facturas_SearchPageComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n private encodedToken: string = \"\";\n\tpublic receiptId: string = \"\";\n\tprivate token: string = \"\";\n\tprivate userid: string = \"\";\n\n constructor(\n\t\tprivate rs: ReceiptService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate ms: MessagingService,\n\t\tprivate changeDetector: ChangeDetectorRef\n\t) {\n\n\t\t// this.encodedToken = this.route.snapshot.params[\"token\"];\n }\n \n async ngOnInit() {\n\n\t\t// Validates if there is a token and receipt\n\t\tif (!this.encodedToken || this.encodedToken === \"\") {\n\n\t\t\tconsole.log(\"No Token Received.\")\n\t\t\treturn;\n\t\t}\n\n\t\tlet ts = new TokenService();\n\t\tlet tokenresponse = ts.Decode(this.encodedToken);\n\t\tif (tokenresponse.result) {\n\t\t\tthis.receiptId = tokenresponse[\"data\"][\"receiptid\"];\n\t\t\tthis.token = tokenresponse[\"data\"][\"token\"];\n\t\t\tthis.userid = tokenresponse[\"data\"][\"user\"];\n\n\t\t\tconsole.log(\"Auth Token: \", this.token);\n\t\t\tconsole.log(\"Fact ID: \", this.receiptId);\n\n\t\t\tthis.rs.SetToken(this.token);\n\t\t}\n\t\telse {\n\t\t\t// Invalid token.\n\t\t\tconsole.log(\"Invalid Token.\")\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n }\n \n ngOnChanges(changes: SimpleChanges) {\n\t}\n}","module.exports = \".top-spacer {\\n margin-top:20px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvcmVjZWlwdC9yZWNlaXB0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxlQUFlO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvcmVjZWlwdC9yZWNlaXB0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudG9wLXNwYWNlciB7XG4gICAgbWFyZ2luLXRvcDoyMHB4O1xufSJdfQ== */\"","module.exports = \"
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n\\n
\\n \\n
\\n
\\n\\n\\n\\n\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges } from \"@angular/core\";\nimport { ReceiptService } from '../../services/receipt.service';\nimport { CacheService } from '../../services/cache.service';\nimport { EventEmitter } from \"@angular/core\";\nimport { Router, ActivatedRoute, Params } from '@angular/router';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"app-receipt\",\n\ttemplateUrl: \"receipt.component.html\",\n\tstyleUrls: [\"receipt.component.css\"]\n})\nexport class ReceiptComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @ViewChild('visbleCanvas', { static: true })\n\tvisbleCanvas: ElementRef;\n\tprivate ctx: CanvasRenderingContext2D;\n\n\tprivate token:string = \"\";\n\n\tcountryId: string = \"\";\n\treceiptId: string = \"\";\n\treceiptImageUrl: string = \"\";\n\tprivate receiptData: any = {};\n\t\n\t// Intermediate variables filled with the event listeners from child components\n\tselectedWord:string = \"\";\n\tfoundMatches:any = [];\n\tprivate productToAdd:any = {};\n\tproductList:any = [];\n\n\t// Event Emitters that communicate information to listeners\n\tdataUpdateEvent = new EventEmitter();\n\n\tconstructor(\n\t\tprivate receiptService: ReceiptService, \n\t\tprivate cacheService: CacheService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router) {\n\t\t\tthis.receiptId = this.route.snapshot.params[\"id\"];\n\t\t\tthis.token = this.route.snapshot.params[\"token\"];\n\t}\n\t\n\t// Controller (data manipulators) Methods\n\t// --------------------------------------------------\n\t\n\tprocessReceiptData(data) {\n\t\tthis.receiptData = data[\"response\"][\"details\"];\n\t\tlet imageUrl = this.receiptData[\"imageUrl\"];\n\t\tthis.receiptImageUrl = imageUrl;\n\t}\n\n\t// Event listeners\n\n\tpolygonWordSelected(e) {\n\t\tconsole.log(e);\n\t\tthis.selectedWord = e[\"selectedWord\"];\n\t\tthis.foundMatches = e[\"foundMatches\"];\n\t}\n\n\tproductSelected(event) {\n\t\t\n\t}\n\n // Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n\t\ttry {\n\t\t\t// Validates if there is a token and receipt\n\t\t\tif (!this.receiptId || this.receiptId === \"\") { this.router.navigate(['/']); return; }\n\t\t\t// if (!this.token || this.token === \"\") { this.router.navigate(['/']); return; }\n\n\t\t\tthis.receiptService.SetToken(this.token);\n\t\t\tlet r = await this.receiptService.GetReceiptData(this.receiptId); // 960901\n\n\t\t\tthis.processReceiptData(r);\n\n\t\t\t// Gets the Products list\n\t\t\tlet productsR = await this.receiptService.GetProducts('CR');\n\t\t\tthis.productList = productsR;\n\n\t\t\t// Broadcasts message indicating the data has been updated\n\t\t\tthis.dataUpdateEvent.emit(this.productList);\n\t\t}\n\t\tcatch(err) {\n\t\t\t// TODO: Handle error\n\t\t\tconsole.log(\"Error:\", err);\n\t\t}\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n console.log(\"ReceiptComponent Changes:\", changes);\n }\n}","module.exports = \" .message {\\n padding-top: 40px;\\n width: 400px !important;\\n height: 25px;;\\n margin: auto;\\n text-align: center;\\n font-size: 20px;\\n }\\n \\n @keyframes sk-circleFadeDelay {\\n 0%, 39%, 100% { opacity: 0; }\\n 40% { opacity: 1; } \\n }\\n \\n .card-container {\\n padding: 20px;\\n}\\n \\n .card-spacer {\\n padding-top:20px;\\n}\\n \\n .btn {\\n min-width: 0 !important;\\n}\\n \\n .top-nav {\\n font-size: 20px !important;\\n cursor: pointer;\\n}\\n \\n .nav-item {\\n color: white;\\n}\\n \\n .nav-item:hover {\\n color: #007bff;\\n}\\n \\n .component-container {\\n background-color: #004f71 !important;\\n}\\n \\n .mainOperationContainer{\\n display: flex;\\n justify-content: space-between;\\n /* margin-bottom: 15px; */\\n min-width: 60%;\\n}\\n \\n .mainOperationContainer > li {\\n border-radius: 3px;\\n text-align: center;\\n background-color: #007bff;\\n width: 33%;\\n transition: .5s;\\n}\\n \\n .mainOperationContainer > li:hover {\\n color: white;\\n background-color: #005dc0;\\n}\\n \\n /* Sticky Top */\\n \\n /* The sticky class is added to the navbar with JS when it reaches its scroll position */\\n \\n .sticky {\\n position: fixed;\\n top: 0;\\n width: 100%;\\n}\\n \\n /* Add some top padding to the page content to prevent sudden quick movement (as the navigation bar gets a new position at the top of the page (position:fixed and top:0) */\\n \\n .sticky + .content {\\n padding-top: 60px;\\n}\\n \\n /* Floating Image and Controls */\\n \\n .image-operations-container {\\n position: fixed;\\n top: 45px;\\n right: 0;\\n width: 450px;\\n background: #004f71;\\n padding: 20px;\\n}\\n \\n .dynamicsToggle{\\n padding: 5px;\\n background-color: grey;\\n display: flex;\\n justify-content: flex-start;\\n border-radius: 2.5px;\\n cursor: pointer;\\n}\\n \\n .dynamicsToggleOn{\\n padding: 5px;\\n background-color: #007bff;\\n display: flex;\\n justify-content: flex-start;\\n border-radius: 2.5px;\\n cursor: pointer;\\n}\\n \\n .powerIcon{\\n margin: 0px 10px 0px 10px;\\n color: darkgray;\\n border: none;\\n}\\n \\n .powerIconOn{\\n margin: 0px 10px 0px 10px;\\n color: white;\\n border: none;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvcmVjZWlwdGRldGFpbHMvcmVjZWlwdGRldGFpbHNwYWdlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkVBQUU7SUFDRSxpQkFBaUI7SUFDakIsdUJBQXVCO0lBQ3ZCLFlBQVk7SUFDWixZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLGVBQWU7RUFDakI7O0VBT0E7SUFDRSxnQkFBZ0IsVUFBVSxFQUFFO0lBQzVCLE1BQU0sVUFBVSxFQUFFO0VBQ3BCOztFQUVGO0VBQ0UsYUFBYTtBQUNmOztFQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztFQUVBO0VBQ0UsdUJBQXVCO0FBQ3pCOztFQUVBO0VBQ0UsMEJBQTBCO0VBQzFCLGVBQWU7QUFDakI7O0VBRUE7RUFDRSxZQUFZO0FBQ2Q7O0VBQ0E7RUFDRSxjQUFjO0FBQ2hCOztFQUVBO0VBQ0Usb0NBQW9DO0FBQ3RDOztFQUVBO0VBQ0UsYUFBYTtFQUNiLDhCQUE4QjtFQUM5Qix5QkFBeUI7RUFDekIsY0FBYztBQUNoQjs7RUFFQTtFQUNFLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIseUJBQXlCO0VBQ3pCLFVBQVU7RUFDVixlQUFlO0FBQ2pCOztFQUVBO0VBQ0UsWUFBWTtFQUNaLHlCQUF5QjtBQUMzQjs7RUFFQSxlQUFlOztFQUVmLHdGQUF3Rjs7RUFDeEY7RUFDRSxlQUFlO0VBQ2YsTUFBTTtFQUNOLFdBQVc7QUFDYjs7RUFFQSwyS0FBMks7O0VBQzNLO0VBQ0UsaUJBQWlCO0FBQ25COztFQUVBLGdDQUFnQzs7RUFFaEM7RUFDRSxlQUFlO0VBQ2YsU0FBUztFQUNULFFBQVE7RUFDUixZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGFBQWE7QUFDZjs7RUFFQTtFQUNFLFlBQVk7RUFDWixzQkFBc0I7RUFDdEIsYUFBYTtFQUNiLDJCQUEyQjtFQUMzQixvQkFBb0I7RUFDcEIsZUFBZTtBQUNqQjs7RUFFQTtFQUNFLFlBQVk7RUFDWix5QkFBeUI7RUFDekIsYUFBYTtFQUNiLDJCQUEyQjtFQUMzQixvQkFBb0I7RUFDcEIsZUFBZTtBQUNqQjs7RUFFQTtFQUNFLHlCQUF5QjtFQUN6QixlQUFlO0VBQ2YsWUFBWTtBQUNkOztFQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWixZQUFZO0FBQ2QiLCJmaWxlIjoic3JjL2FwcC9wYWdlcy9yZWNlaXB0ZGV0YWlscy9yZWNlaXB0ZGV0YWlsc3BhZ2UuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiAgLm1lc3NhZ2Uge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgIHdpZHRoOiA0MDBweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMjVweDs7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cbiAgXG4gIEAtd2Via2l0LWtleWZyYW1lcyBzay1jaXJjbGVGYWRlRGVsYXkge1xuICAgIDAlLCAzOSUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gICAgNDAlIHsgb3BhY2l0eTogMTsgfVxuICB9XG4gIFxuICBAa2V5ZnJhbWVzIHNrLWNpcmNsZUZhZGVEZWxheSB7XG4gICAgMCUsIDM5JSwgMTAwJSB7IG9wYWNpdHk6IDA7IH1cbiAgICA0MCUgeyBvcGFjaXR5OiAxOyB9IFxuICB9XG5cbi5jYXJkLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDIwcHg7XG59XG4uY2FyZC1zcGFjZXIge1xuICBwYWRkaW5nLXRvcDoyMHB4O1xufVxuXG4uYnRuIHtcbiAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi50b3AtbmF2IHtcbiAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm5hdi1pdGVtIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLm5hdi1pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICMwMDdiZmY7XG59XG5cbi5jb21wb25lbnQtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGY3MSAhaW1wb3J0YW50O1xufVxuXG4ubWFpbk9wZXJhdGlvbkNvbnRhaW5lcntcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAvKiBtYXJnaW4tYm90dG9tOiAxNXB4OyAqL1xuICBtaW4td2lkdGg6IDYwJTtcbn1cblxuLm1haW5PcGVyYXRpb25Db250YWluZXIgPiBsaSB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICB3aWR0aDogMzMlO1xuICB0cmFuc2l0aW9uOiAuNXM7XG59XG5cbi5tYWluT3BlcmF0aW9uQ29udGFpbmVyID4gbGk6aG92ZXIge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDVkYzA7XG59XG5cbi8qIFN0aWNreSBUb3AgKi9cblxuLyogVGhlIHN0aWNreSBjbGFzcyBpcyBhZGRlZCB0byB0aGUgbmF2YmFyIHdpdGggSlMgd2hlbiBpdCByZWFjaGVzIGl0cyBzY3JvbGwgcG9zaXRpb24gKi9cbi5zdGlja3kge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8qIEFkZCBzb21lIHRvcCBwYWRkaW5nIHRvIHRoZSBwYWdlIGNvbnRlbnQgdG8gcHJldmVudCBzdWRkZW4gcXVpY2sgbW92ZW1lbnQgKGFzIHRoZSBuYXZpZ2F0aW9uIGJhciBnZXRzIGEgbmV3IHBvc2l0aW9uIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UgKHBvc2l0aW9uOmZpeGVkIGFuZCB0b3A6MCkgKi9cbi5zdGlja3kgKyAuY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiA2MHB4O1xufVxuXG4vKiBGbG9hdGluZyBJbWFnZSBhbmQgQ29udHJvbHMgKi9cblxuLmltYWdlLW9wZXJhdGlvbnMtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDQ1cHg7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogNDUwcHg7XG4gIGJhY2tncm91bmQ6ICMwMDRmNzE7XG4gIHBhZGRpbmc6IDIwcHg7XG59XG5cbi5keW5hbWljc1RvZ2dsZXtcbiAgcGFkZGluZzogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGJvcmRlci1yYWRpdXM6IDIuNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5keW5hbWljc1RvZ2dsZU9ue1xuICBwYWRkaW5nOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdiZmY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYm9yZGVyLXJhZGl1czogMi41cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnBvd2VySWNvbntcbiAgbWFyZ2luOiAwcHggMTBweCAwcHggMTBweDtcbiAgY29sb3I6IGRhcmtncmF5O1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5wb3dlckljb25PbntcbiAgbWFyZ2luOiAwcHggMTBweCAwcHggMTBweDtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IG5vbmU7XG59Il19 */\"","module.exports = \"
\\n\\n \\n\\n
\\n\\n
\\n
\\n
\\n Cargando la factura, por favor espere...\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n\\n
\\n\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n \\n
\\n\\n\\n\\n\\n\\n\\n \\n
\\n
\\n
\\n
\\n
Aprobar Factura
\\n \\n
\\n
\\n ¿Está seguro que desea aprobar la factura?\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Rechazar Factura
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n Loading...\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Modificar Factura
\\n \\n
\\n
\\n ¿Está seguro que desea modificar la factura?\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Resultado de la Validación
\\n \\n
\\n
\\n
{{m.message}}
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Por favor espere...
\\n
\\n
\\n
\\n
\\n Loading...\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
{{message.title}}
\\n \\n
\\n
\\n {{message.body}}\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n

Por favor espere mientras se analiza la factura...

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
{{message.title}}
\\n \\n
\\n
\\n {{message.body}}\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Re-Analizar Factura
\\n \\n
\\n
\\n ¿Está seguro que desea re-analizar la factura?\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Listo!
\\n \\n
\\n
\\n Se aprobó la factura. \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Error.
\\n \\n
\\n
\\n
\\n Ocurrió un problema al aprobar la factura.\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, ChangeDetectorRef, ChangeDetectionStrategy, HostListener } from \"@angular/core\";\nimport { ReceiptService } from '../../services/receipt.service';\nimport { CacheService } from '../../services/cache.service';\nimport { EventEmitter } from \"@angular/core\";\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { MessagingService } from '../../services/messagingservice';\nimport { Subject, interval } from \"rxjs\";\n// Environment Setup\nimport { environment } from '../../../environments/environment.prod';\nimport { Factura_SearchResults_Object } from \"src/app/models/facturas_search\";\n\n\ndeclare var jquery: any;\ndeclare var $: any;\n\nexport interface TimeSpan {\n\thours: number;\n\tminutes: number;\n\tseconds: number;\n}\n\n@Component({\n\tselector: \"receiptdetails-page\",\n\ttemplateUrl: \"receiptdetailspage.component.html\",\n\tstyleUrls: [\"receiptdetailspage.component.css\"],\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReceiptDetailsPageComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\t//Kevboard Event Biding -----------------------------------------------\n\t@HostListener('document:keydown', ['$event'])\n\tonKeydown(ev:KeyboardEvent){\n\t\tif(ev.ctrlKey && ev.key == 'a'){\n\t\t\tev.preventDefault();\n\t\t\tev.stopPropagation();\n\t\t\tev.stopImmediatePropagation();\n\t\t\t$(\"#aprobarFaturaModal\").modal('show');\n\t\t}\n\n\t\tif(ev.ctrlKey && ev.key == 'r'){\n\t\t\tev.preventDefault();\n\t\t\tev.stopPropagation();\n\t\t\tev.stopImmediatePropagation();\n\t\t\t$(\"#rechazarFaturaModal\").modal('show');\n\t\t}\n\n\t\tif(ev.ctrlKey && ev.key == 's'){\n\t\t\tev.preventDefault();\n\t\t\tev.stopPropagation();\n\t\t\tev.stopImmediatePropagation();\n\t\t\t$(\"#modificarFacturaModal\").modal('show');\n\t\t}\n\t}\n\t//---------------------------------------------------------------------\n\n\tpublic loadingData: boolean = true;\n\n\tprivate encodedToken: string = \"\";\n\tpublic receiptId: string = \"\";\n\tprivate token: string = \"\";\n\tprivate userid: string = \"\";\n\n\tpublic receiptObject: any = {};\n\tpublic receiptImage: string = \"\";\n\tpublic receiptProducts: any = [];\n\tpublic receiptNonAbbottProducts: any = [];\n\tpublic receiptOCRData: any = {};\n\tpublic receiptWordsWithProductMatches: any = [];\n\tpublic hasBeenAnalized: boolean = false;\n\tpublic receiptOtherAbbottProducts = [];\n\tpublic receiptOtherNonAbbottProducts = [];\n\n\tpublic timerInit: boolean = false;\n\ttimerCount: Date;\n\ttimerString: string = '';\n\ttimerFunction: any;\n\ttimerSubscription = null;\n\tfinalElapseTime: any = null;\n\n\tpublic availableProducts: any = null;\n\tpublic availableNonAbbotProducts: any = [];\n\tpublic searchedAbbotProducts: any = [];\n\tpublic updateRequestBody: any = {\n\t\t\"ID\": \"\",\n\t\t\"Factura\": \"\",\n\t\t\"Fecha\": \"\",\n\t\t\"Farmacia\": {\n\t\t\t\"ID\": \"\",\n\t\t\t\"Nombre\": \"\"\n\t\t},\n\t\t\"ProductosAbbott\": [\n\t\t\t\n\t\t],\n\t\t\"ProductosNoAbbott\": [\n\t\t\t\n\t\t],\n\t\t\"ProductosNoAbbott_Suggestions\": [\n\n\t\t],\n\t\t\"MontoTotal\": 0,\n\t\t\"MedioCompra\": \"Domicilio\",\n\t\t\"TiempoRevision\": 0\n\t}\n\tprivate imageURI: any = \"\";\n\n\t//Microsoft Dynamics Variables\n\tpublic dynamicsOn: boolean = true; // This variable defines if the information is synced with Dynamics.\n\n\tpublic rejectionReason: string = \"\";\n\t// Modals Variables\n\trejectionProcessing: boolean = false;\n\trejectionResponseMessage: string = \"\";\n\n\tpublic validationMessages: any = [];\n\n\tmessage: any = {\n\t\ttitle: \"\",\n\t\tbody: \"\"\n\t};\n\n\tconstructor(\n\t\tprivate rs: ReceiptService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate ms: MessagingService,\n\t\tprivate changeDetector: ChangeDetectorRef\n\t) {\n\n\t\tthis.encodedToken = this.route.snapshot.params[\"token\"];\n\t}\n\n\t// Private Methods\n\t// --------------------------------------------------\n\n\tValidateInformation(receiptData) {\n\t\ttry {\n\t\t\tlet messages = [];\n\n\t\t\tlet d = new Date(receiptData.Fecha);\n\t\t\tif (d > new Date()) {\n\t\t\t\tmessages.push({\"message\":\"La fecha es inválida. No puede ser mayor a la fecha de hoy.\"});\n\t\t\t\treturn { result: false, messages: messages };\n\t\t\t}\n\t\t\t\n\t\t\treturn { result: true, messages: [] };\n\n\t\t}\n\t\tcatch(err) {\n\t\t\treturn { result: false, messages: [ {\"message\":\"Error al validar la factura.\"} ] };\n\t\t}\n\t}\n\n\n\tpublic Replace(stringToAnalize, charToFind, charReplaceValue) {\n\t\tif (stringToAnalize.indexOf(charToFind) >= 0) {\n\t\t\tstringToAnalize = stringToAnalize.replace(charToFind, charReplaceValue);\n\t\t\treturn this.Replace(stringToAnalize, charToFind, charReplaceValue);\n\t\t}\n\t\telse {\n\t\t\treturn stringToAnalize;\n\t\t}\n\t}\n\n\tasync GetData(receiptId) {\n\t\tlet response = await this.rs.GetReceiptDetailsWithProductsArray(receiptId);\n\n\t\tthis.receiptObject = response;\n\n\t\t// Image Env bug Fix\n\t\tthis.receiptImage = response[\"imageUrl\"];\n\t\tif (this.receiptImage !== undefined) {\n\t\t\tvar split = this.receiptImage.split('/');\n\t\t\tthis.receiptImage = environment.nodeServer + \"/\" + split[3] + \"/\" + split[4];\n\t\t}\n\t\telse {\n\t\t\tthis.receiptImage = \"\";\n\t\t}\n\t\t\n\t\t//--------------------------------------------------------------------------------------------\n\n\t\tthis.receiptProducts = response[\"Products\"];\n\t\tthis.receiptNonAbbottProducts = response[\"NonAbbottProducts\"];\n\n\t\tthis.updateRequestBody[\"ProductosNoAbbott\"] = this.receiptNonAbbottProducts;\n\t\tthis.updateRequestBody[\"MontoTotal\"] = response[\"MontoTotal\"];\n\t\tthis.updateRequestBody[\"MedioCompra\"] = response[\"MedioCompra\"];\n\n\t\tthis.hasBeenAnalized = false;\n\n\t\tif (\n\t\t\tthis.receiptImage\n\t\t\t&&\n\t\t\tthis.receiptImage.toUpperCase().indexOf(\".PDF\") < 0\n\t\t\t&&\n\t\t\tresponse[\"OcrInfo\"][\"imageText\"] !== \"\"\n\t\t\t&&\n\t\t\tresponse[\"OcrInfo\"][\"imageText\"] !== null\n\t\t) {\n\t\t\tlet unscapedData = unescape(response[\"OcrInfo\"][\"imageText\"]);\n\t\t\tthis.receiptOCRData = JSON.parse(unscapedData);\n\n\t\t\tthis.receiptProducts = this.receiptOCRData[\"products\"];\n\t\t\tthis.hasBeenAnalized = true;\n\n\t\t\t// Other Abbott Products\n\t\t\tthis.receiptOtherAbbottProducts = this.receiptOCRData[\"otherAbbottProducts\"];\n\t\t\tthis.receiptOtherNonAbbottProducts = this.receiptOCRData[\"otherNonAbbottProducts\"];\n\n\t\t\tthis.LoadNonAbbottProducts(this.receiptOtherNonAbbottProducts);\n\t\t\tthis.LoadOtherAbbottProducts(this.receiptOtherAbbottProducts);\n\t\t}\n\n\t\tif (response[\"OcrInfo\"]) {\n\t\t\tthis.receiptImage = response[\"OcrInfo\"][\"imageUrlProcessed\"] !== \"\" ? response[\"OcrInfo\"][\"imageUrlProcessed\"] : response[\"imageUrl\"];\n\t\t\tvar split = this.receiptImage.split('/');\n\t\t\tthis.receiptImage = environment.nodeServer + \"/\" + split[3] + \"/\"+split[4];\n\t\t}\n\t\telse {\n\t\t\tthis.receiptImage = response[\"imageUrl\"];\n\t\t\tif (this.receiptImage !== undefined) {\n\t\t\t\tvar split = this.receiptImage.split('/');\n\t\t\t\tthis.receiptImage = environment.nodeServer + \"/\" + split[3] + \"/\"+split[4];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.receiptImage = \"\";\n\t\t\t}\n\t\t}\n\n\t\t// If the image hasn't bee analyzed it calls the process to do it.\n\t\tif (!this.hasBeenAnalized) {\n\t\t\tawait this.InvokeAnalyze();\n\t\t}\n\t\tawait this.GetProductsByCountry(response['country']);\n\t\tawait this.GetNonAbbotProductsBySearch()\n\t\tthis.loadingData = false;\n\t}\n\n\tasync GetProductsByCountry(countryId) {\n\t\ttry {\n\t\t\tlet response = await this.rs.GetAboxProductList(countryId)\n\t\t\tthis.availableProducts = response['data'];\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.log(err)\n\t\t}\n\n\t}\n\n\tasync GetNonAbbotProductsBySearch(){\n\t\ttry{\n\t\t\tlet countryCode = this.receiptObject['country'];\n\t\t\tlet response = await this.rs.GetNonAbbotProductList( countryCode);\n\t\t\tthis.availableNonAbbotProducts = response['data'];\n\t\t}catch(err){\n\t\t\tconsole.log(err)\n\t\t}\n\t}\n\n\tsearchNonAbbot(search:string){\n\t\tthis.searchedAbbotProducts = [];\n\t\tthis.availableNonAbbotProducts.forEach((p, i)=>{\n\t\t\tif(p.Producto.indexOf(search) != -1 && this.searchedAbbotProducts.length < 20){\n\t\t\t\tthis.searchedAbbotProducts.push(p);\n\t\t\t}\n\t\t})\n\t}\n\n\tgetElapsedTime(entry: Date): TimeSpan {\n\t\tif(entry == null){return}\n\t\tlet totalSeconds = Math.floor((new Date().getTime() - entry.getTime()) / 1000);\n\n\t\tlet hours = 0;\n\t\tlet minutes = 0;\n\t\tlet seconds = 0;\n\n\t\tif (totalSeconds >= 3600) {\n\t\t\thours = Math.floor(totalSeconds / 3600);\n\t\t\ttotalSeconds -= 3600 * hours;\n\t\t}\n\n\t\tif (totalSeconds >= 60) {\n\t\t\tminutes = Math.floor(totalSeconds / 60);\n\t\t\ttotalSeconds -= 60 * minutes;\n\t\t}\n\n\t\tseconds = totalSeconds;\n\n\t\t// if(!this.timerInit){\n\t\t// \tthis.finalElapseTime = {\n\t\t// \t\thours: hours,\n\t\t// \t\tminutes: minutes,\n\t\t// \t\tseconds: seconds\n\t\t// \t}\n\t\t// }\n\n\t\treturn {\n\t\t\thours: hours,\n\t\t\tminutes: minutes,\n\t\t\tseconds: seconds\n\t\t};\n\t}\n\n\tgetElapsedTime_seconds(entry: Date): number {\n\t\tif(entry == null){return}\n\t\tlet totalSeconds = Math.floor((new Date().getTime() - entry.getTime()) / 1000);\n\t\treturn totalSeconds;\n\t}\n\n\tgetFinalTime(entry: Date) {\n\t\tif(entry == null){return}\n\t\tlet totalSeconds = Math.floor((new Date().getTime() - entry.getTime()) / 1000);\n\n\t\treturn totalSeconds;\n\t}\n\n\t//Update Reciept Methods\n\tasync UpdateReceiptObject(receiptId) {\n\t\tlet response = await this.rs.GetReceiptDetailsWithProductsArray(receiptId);\n\t\tthis.receiptObject = response;\n\t}\n\n\t// Event triggered in the Image component when the image is loaded\n\tImageLoaded(imageURI) {\n\t\tthis.imageURI = imageURI;\n\t\tthis.ms.TriggerDrawPolygons();\n\t}\n\n\t//API CALLS\n\tasync Approve() {\n\t\ttry {\n\n\t\t\t// Validations\n\t\t\t// ------------------------------------------------------------------------\n\t\t\tthis.validationMessages = [];\n\n\t\t\t// Header (Receipt Id, date, Pharmacy)\n\t\t\tlet vh = this.ValidateHeader();\n\n\t\t\t// Products\n\t\t\tlet vr = this.ValidateUpdateProducts();\n\n\t\t\tif (!vh.result || !vr.result) {\n\t\t\t\tthis.validationMessages = vh.messages.concat(vr.messages);\n\n\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t\t$(\"#validationResultModal\").modal('show');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$(\"#pleaseWaitDialog\").modal('show');\n\n\t\t\t// Updates the Factura\n\t\t\t// ------------------------------------------------------------------------\n\t\t\tlet updateResult = await this.UpdateWithNoStateChange(false);\n\n\t\t\tif (!updateResult) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.timerInit = false;\n\t\t\tthis.timerSubscription.unsubscribe(); \n\n\t\t\t//Micorsoft Dynamics CRM Integration START ------\n\t\t\tif(this.dynamicsOn){\n\t\t\t\t//Dynamics Microsoft Integration\n\t\t\t\tlet dynamicsObject = this.createUpdateDynamicsJSON();\n\t\t\t\tdynamicsObject[\"status\"] = \"Aprobada\"\n\t\t\t\tdynamicsObject[\"revisionTime1\"] = this.getElapsedTime_seconds(this.timerCount);\n\t\t\t\tlet rDynamics = await this.rs.DynamicsUpdateReceipt(dynamicsObject);\n\t\t\t\tif (!rDynamics[\"result\"]) {\n\t\t\t\t\t// Handle error.\n\t\t\t\t\tconsole.log(\"Error in Dynamics CRM petition: \",rDynamics);\n\t\t\t\t\t// return false;\n\t\t\t\t}\n\t\t\t}\t\n\t\t\t//Micorsoft Dynamics CRM Integration END ------\n\n\t\t\tlet approvalResponse = await this.rs.ApproveReceipt(this.receiptId, this.userid, []);\n\t\t\t\n\t\t\t$(\"#pleaseWaitDialog\").modal('hide');\n\n\t\t\tif (approvalResponse[\"result\"]) {\n\t\t\t\tif (approvalResponse[\"data\"][\"response\"][\"code\"] === 0) {\n\t\t\t\t\tthis.message.callbackfx = () => {\n\t\t\t\t\t\twindow.close();\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t\t\t$('#approvedModalWithAction').modal('show');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Handle Error.\n\t\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t\t\t$('#approvalErrorModal').modal('show');\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Handle Error.\n\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t\t$('#approvalErrorModal').modal('show');\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.log(\"General Error approving the receipt:\", err);\n\t\t}\n\t}\n\n\tasync HandleRejectionLoading(e) {\n\t\tthis.rejectionProcessing = true;\n\t\tthis.timerInit = false;\n\t\tthis.timerSubscription.unsubscribe(); \n\t}\n\n\tasync HandleRejectionResponse(e) {\n\t\tthis.rejectionProcessing = false;\n\t\tthis.rejectionResponseMessage = \"\";\n\n\t\t// The factura was rejected, updates the record with the revision time.\n\t\tawait this.UpdateWithNoStateChange(false);\n\n\t\t$(\"#pleaseWaitDialog\").modal('hide');\n\n\t\tif (e[\"result\"]) {\n\n\t\t\t$(\"#rechazarFaturaModal\").modal('hide');\n\t\t\tthis.message.title = \"Listo!\";\n\t\t\tthis.message.body = e[\"message\"];\n\t\t\tthis.message.callbackfx = () => {\n\t\t\t\twindow.close();\n\t\t\t}\n\t\t\tthis.changeDetector.detectChanges();\n\t\t\t$('#messageModalWithAction').modal('show');\n\t\t}\n\t\telse {\n\t\t\t// Handle Error\n\t\t\tthis.rejectionResponseMessage = e[\"message\"];\n\t\t}\n\t}\n\n\tasync UpdateWithNoStateChange(showDialogMessage = true) {\n\t\ttry {\n\n\t\t\t// Validates the information:\n\t\t\tlet val_result = this.ValidateInformation(this.updateRequestBody);\n\t\t\tif (!val_result[\"result\"]) {\n\t\t\t\tthis.validationMessages = val_result[\"messages\"];\n\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t\t$(\"#validationResultModal\").modal('show');\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Validates all the required fields\n\t\t\tlet req_val_result = this.ValidateHeader_Required_Fields(this.updateRequestBody);\n\t\t\tif (!req_val_result.result) {\n\t\t\t\tthis.validationMessages = req_val_result.messages;\n\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t\t$(\"#validationResultModal\").modal('show');\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Validates the informacion from the products\n\t\t\tlet productsValidationResponse = this.ValidateUpdateProducts(false);\n\t\t\tif (!productsValidationResponse.result) {\n\t\t\t\tthis.validationMessages = productsValidationResponse.messages;\n\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t\t$(\"#validationResultModal\").modal('show');\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t//Scope\n\t\t\tvar _this = this;\n\n\t\t\tthis.timerInit = false;\n\t\t\tthis.finalElapseTime = this.getElapsedTime(this.timerCount)\n\t\t\tthis.timerSubscription.unsubscribe(); \n\n\t\t\tif (showDialogMessage) {\n\t\t\t\t$(\"#pleaseWaitDialog\").modal('show');\n\t\t\t}\n\n\t\t\t// Cleans the ID from the pharmacy when the other option is selected\n\t\t\tthis.updateRequestBody.Farmacia.Nombre = this.updateRequestBody.Farmacia.ID === -1 ? this.updateRequestBody.Farmacia.Nombre_Otra : this.updateRequestBody.Farmacia.Nombre;\n\t\t\tthis.updateRequestBody.Farmacia.ID = this.updateRequestBody.Farmacia.ID === -1 ? null : this.updateRequestBody.Farmacia.ID;\n\n\t\t\tlet updateData = JSON.parse(JSON.stringify(this.updateRequestBody));\n\n\t\t\tdelete updateData[\"ProductosNoAbbott_Suggestions\"];\n\t\t\tupdateData[\"TiempoRevision\"] = this.getElapsedTime_seconds(this.timerCount);\n\n\t\t\t\n\t\t\tlet r = await this.rs.UpdateCRMReceipt(updateData, this.encodedToken);\n\t\t\t\n\t\t\tthis.timerCount = new Date();\n\n\t\t\tif (!r[\"result\"]) {\n\t\t\t\t// Handle error.\n\t\t\t\tthis.validationMessages = [{\"message\": \"Ocurrió un problema al actualizar la factura.\"}];\n\t\t\t\tconsole.log(r);\n\t\t\t\t$(\"#pleaseWaitDialog\").modal('hide');\n\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t\t$(\"#validationResultModal\").modal('show');\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif(this.dynamicsOn){\n\n\t\t\t\tconsole.log(\"syncing with dynamics...\")\n\n\t\t\t\t//Dynamics Microsoft Integration\n\t\t\t\tlet dynamicsObject = this.createUpdateDynamicsJSON();\n\n\t\t\t\tconsole.log(JSON.stringify(dynamicsObject))\n\n\t\t\t\tdynamicsObject[\"revisionTime1\"] = this.getElapsedTime_seconds(this.timerCount);\n\t\t\t\tlet rDynamics = await this.rs.DynamicsUpdateReceipt(dynamicsObject);\n\t\t\t\tif (!rDynamics[\"result\"]) {\n\t\t\t\t\t// Handle error.\n\t\t\t\t\tconsole.log(\"Error in Dynamics CRM petition: \",rDynamics);\n\t\t\t\t\t// return false;\n\t\t\t\t}\n\t\t\t}\t\n\n\t\t\tif (showDialogMessage) {\n\t\t\t\t$(\"#pleaseWaitDialog\").modal('hide');\n\n\t\t\t\tthis.message.title = \"Listo!\";\n\t\t\t\tthis.message.body = \"La factura se actualizó.\";\n\t\t\t\tthis.message.callbackfx = () => {\n\t\t\t\t\twindow.close();\n\t\t\t\t}\n\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t\t$('#messageModalWithAction').modal('show');\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn true;\n\t\t}\n\t\tcatch (err) {\n\t\t\t$(\"#pleaseWaitDialog\").modal('hide');\n\t\t\tconsole.log(\"Error approving the receipt:\", err);\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\t//MODAL FUNCTIONS\n\tOpenRejectModal() {\n\t\tthis.rejectionResponseMessage = \"\";\n\t\tthis.ms.ResetRejectionReasonFormEvent(\"\");\n\t\t$(\"#rechazarFaturaModal\").modal('show');\n\t}\n\n\tOpenPleaseWaitModal() {\n\t\t$(\"#pleaseWaitWithBar\").modal('show');\n\t}\n\n\tClosePleaseWaitModal() {\n\t\t$(\"#pleaseWaitWithBar\").modal('hide');\n\t}\n\n\tToggleModal(id, bool){\n\t\tif(bool){\n\t\t\t$(\"#\"+id).modal('show');\n\t\t}\n\t\telse{\n\t\t\t$(\"#\"+id).modal('hide');\n\t\t}\n\t}\n\n\t// Validation Methods\n\t// --------------------------------------------------\n\tValidateProducts() {\n\n\t\tlet errorsFound = [];\n\t\tlet resultVal = true;\n\n\t\tthis.receiptProducts.forEach(p => {\n\t\t\tif (!p[\"checked\"]) {\n\t\t\t\terrorsFound.push({ message: `El producto ${p[\"Producto\"]} no ha sido chequeado.` });\n\t\t\t\tresultVal = false;\n\t\t\t}\n\t\t\tif (!p[\"price\"] || p[\"price\"] === null || p[\"price\"] === \"\") {\n\t\t\t\terrorsFound.push({ message: `El producto ${p[\"Producto\"]} no tiene un precio.` });\n\t\t\t\tresultVal = false;\n\t\t\t}\n\t\t\tif (!p[\"Cantidad\"] || p[\"Cantidad\"] === null || p[\"Cantidad\"] === \"\") {\n\t\t\t\terrorsFound.push({ message: `El producto ${p[\"Producto\"]} no tiene una cantidad.` });\n\t\t\t\tresultVal = false;\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tresult: resultVal,\n\t\t\tmessages: errorsFound\n\t\t}\n\t}\n\n\tValidateHeader() {\n\t\tlet errorsFound = [];\n\t\tlet resultVal = true;\n\n\t\tif (!this.receiptObject[\"receipt_checked\"]) {\n\t\t\terrorsFound.push({ message: `El número de factura no ha sido chequeado.` });\n\t\t\tresultVal = false;\n\t\t}\n\n\t\tif (!this.receiptObject[\"pharmacy_checked\"]) {\n\t\t\terrorsFound.push({ message: `La farmacia de la factura no ha sido chequeado.` });\n\t\t\tresultVal = false;\n\t\t}\n\n\t\tif (!this.receiptObject[\"date_checked\"]) {\n\t\t\terrorsFound.push({ message: `La fecha de la factura no ha sido chequeado.` });\n\t\t\tresultVal = false;\n\t\t}\n\n\t\treturn {\n\t\t\tresult: resultVal,\n\t\t\tmessages: errorsFound\n\t\t}\n\t}\n\n\tValidateUpdateProducts(validate_checked = true) {\n\t\tlet errorsFound = [];\n\t\tlet resultVal = true;\n\n\t\tthis.updateRequestBody.ProductosAbbott.forEach(p => {\n\t\t\tif (!p[\"checked\"] && validate_checked) {\n\t\t\t\terrorsFound.push({ message: `El producto ${p[\"Producto\"]} no ha sido chequeado.` });\n\t\t\t\tresultVal = false;\n\t\t\t}\n\t\t\tif (!p[\"Precio\"] || p[\"Precio\"] === null || p[\"Precio\"] === \"\") {\n\t\t\t\terrorsFound.push({ message: `El producto ${p[\"Producto\"]} no tiene un precio.` });\n\t\t\t\tresultVal = false;\n\t\t\t}\n\t\t\tif (!p[\"Cantidad\"] || p[\"Cantidad\"] === null || p[\"Cantidad\"] === \"\") {\n\t\t\t\terrorsFound.push({ message: `El producto ${p[\"Producto\"]} no tiene una cantidad.` });\n\t\t\t\tresultVal = false;\n\t\t\t}\n\t\t});\n\n\t\tthis.updateRequestBody.ProductosNoAbbott.forEach(p => {\n\t\t\tif (!p[\"checked\"] && validate_checked) {\n\t\t\t\terrorsFound.push({ message: `El producto ${p[\"Producto_Otros\"]} no ha sido chequeado.` });\n\t\t\t\tresultVal = false;\n\t\t\t}\n\t\t\tif (!p[\"Precio_Otros\"] || p[\"Precio_Otros\"] === null || p[\"Precio_Otros\"] === \"\") {\n\t\t\t\terrorsFound.push({ message: `El producto ${p[\"Producto_Otros\"]} no tiene un precio.` });\n\t\t\t\tresultVal = false;\n\t\t\t}\n\t\t\tif (!p[\"Cantidad_Otros\"] || p[\"Cantidad_Otros\"] === null || p[\"Cantidad_Otros\"] === \"\") {\n\t\t\t\terrorsFound.push({ message: `El producto ${p[\"Producto_Otros\"]} no tiene una cantidad.` });\n\t\t\t\tresultVal = false;\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tresult: resultVal,\n\t\t\tmessages: errorsFound\n\t\t}\n\t}\n\n\tValidateUpdateHeader() {\n\t\tlet errorsFound = [];\n\t\tlet resultVal = true;\n\n\t\tif (!this.updateRequestBody[\"receipt_checked\"]) {\n\t\t\terrorsFound.push({ message: `El número de factura no ha sido chequeado.` });\n\t\t\tresultVal = false;\n\t\t}\n\n\t\tif (!this.updateRequestBody[\"pharmacy_checked\"]) {\n\t\t\terrorsFound.push({ message: `La farmacia de la factura no ha sido chequeado.` });\n\t\t\tresultVal = false;\n\t\t}\n\n\t\tif (!this.updateRequestBody[\"date_checked\"]) {\n\t\t\terrorsFound.push({ message: `La fecha de la factura no ha sido chequeado.` });\n\t\t\tresultVal = false;\n\t\t}\n\n\t\treturn {\n\t\t\tresult: resultVal,\n\t\t\tmessages: errorsFound\n\t\t}\n\t}\n\n\tValidateHeader_Required_Fields(updateData) {\n\t\ttry {\n\t\t\tlet messages = [];\n\n\t\t\tif (updateData.Factura === undefined || updateData.Factura === '' || updateData.Factura === null) {\n\t\t\t\tmessages.push({\"message\":\"El número de factura es requerido.\"});\n\t\t\t\treturn { result: false, messages: messages };\n\t\t\t}\n\n\t\t\t// Verifies that when the option Other is selected in the pharmacy\n\t\t\t// the name has a value, otherwise returns an error.\n\t\t\tif (updateData.Farmacia.ID === -1) {\n\t\t\t\tif (updateData.Farmacia[\"Nombre_Otra\"] === undefined || updateData.Farmacia[\"Nombre_Otra\"] === \"\") {\n\t\t\t\t\tmessages.push({\"message\":\"Por favor ingrese un nombre para la farmacia.\"});\n\t\t\t\t\treturn { result: false, messages: messages };\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (updateData.MontoTotal === undefined || updateData.MontoTotal === '' || updateData.MontoTotal === null) {\n\t\t\t\tmessages.push({\"message\":\"El monto de la factura es requerido.\"});\n\t\t\t\treturn { result: false, messages: messages };\n\t\t\t}\n\n\t\t\tif (updateData.MedioCompra === undefined || updateData.MedioCompra === '' || updateData.MedioCompra === null) {\n\t\t\t\tmessages.push({\"message\":\"El medio de compra es requerido.\"});\n\t\t\t\treturn { result: false, messages: messages };\n\t\t\t}\n\t\t\t\n\t\t\treturn { result: true, messages: [] };\n\n\t\t}\n\t\tcatch(err) {\n\t\t\treturn { result: false, messages: [ {\"message\":\"Error al validar la factura.\"} ] };\n\t\t}\n\t\t\n\t}\n\n\n\t// This method is invoked by the \"revisionimage\" component.\n\tsetRecieptImage(url){\n\t\tvar split = url.split('/');\n\t\tthis.receiptImage = environment.nodeServer + \"/\" + split[3] + \"/\"+split[4];\n\t\t// this.receiptImage = url;\n\t}\n\n\tasync InvokeReanalize($event) {\n\n\t\tlet _imageURI = $event.imgUrl;\n\n\t\tconsole.log(\"\")\n\t\tconsole.log(_imageURI)\n\t\tconsole.log(\"\")\n\n\t\tthis.OpenPleaseWaitModal();\n\n\t\tlet idFactura = this.Replace(this.receiptObject[\"idFactura\"], \"'\", \"\");\n\n\t\t// 1. Runs the GPC OCR Analysis to extract the text from the image\n\t\t// ------------------------------------------------------------------------------------------\n\n\t\tconsole.time(\"AnalizaReceiptUsingIdAndURL\");\n\n\t\tlet r = await this.rs.AnalizaReceiptUsingIdAndURL(idFactura, _imageURI);\n\t\tconsole.log('Analize Response:', r)\n\n\t\tconsole.timeEnd(\"AnalizaReceiptUsingIdAndURL\");\n\n\t\t// 2. Updates the receipt/bill with the OCR Results and the new URL of the image\n\t\t// ------------------------------------------------------------------------------------------\n\n\t\tconsole.time(\"UpdateOCRAnalysis\");\n\n\t\tlet updateResponse = await this.rs.UpdateOCRAnalysis(idFactura, _imageURI, escape(JSON.stringify(r[\"data\"])));\n\t\tconsole.log(\"Update Response:\", updateResponse);\n\n\t\tconsole.timeEnd(\"UpdateOCRAnalysis\");\n\n\t\t// 4. Updates the UI with the OCR Details\n\t\t// ------------------------------------------------------------------------------------------\n\n\t\tconsole.time(\"UpdateReceiptObject\");\n\n\t\tawait this.UpdateReceiptObject(idFactura);\n\t\tconsole.log('Update Reciept:', this.receiptObject)\n\n\t\tconsole.timeEnd(\"UpdateReceiptObject\");\n\n\t\tthis.receiptProducts = r[\"data\"][\"products\"];\n\n\t\t// Other Abbott Products\n\t\tthis.receiptOtherAbbottProducts = r[\"data\"][\"otherAbbottProducts\"];\n\t\tthis.receiptOtherNonAbbottProducts = r[\"data\"][\"otherNonAbbottProducts\"];\n\n\t\tthis.ms.ReloadImageInImageRevisionComponent();\n\t\tthis.ms.UpdateReceiptInfoComponent(this.receiptObject);\n\n\t\tthis.LoadNonAbbottProducts(this.receiptOtherNonAbbottProducts);\n\t\tthis.LoadOtherAbbottProducts(this.receiptOtherAbbottProducts);\n\n\t\tconsole.log(\"Reanalize Ready!\");\n\t\tthis.ClosePleaseWaitModal();\n\t}\n\n\tasync InvokeAnalyze() {\n\t\t// console.log('Analyze Image:' , this.receiptImage)\n\t\t$(\"#reanalizeModal\").modal('hide');\n\n\t\tif (!this.receiptImage) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.receiptImage.toUpperCase().indexOf(\".PDF\") >= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.OpenPleaseWaitModal();\n\n\t\tlet idFactura = this.Replace(this.receiptObject[\"idFactura\"], \"'\", \"\");\n\n\t\t// 1. Runs the GPC OCR Analysis to extract the text from the image\n\t\t// ------------------------------------------------------------------------------------------\n\n\n\t\tlet r = await this.rs.AnalizaReceiptUsingIdAndURL(idFactura, this.receiptImage);\n\t\t// console.log('Analize Response:', r)\n\n\t\t// 2. Updates the receipt/bill with the OCR Results and the new URL of the image\n\t\t// ------------------------------------------------------------------------------------------\n\n\t\tlet updateResponse = await this.rs.UpdateOCRAnalysis(idFactura, this.receiptImage, escape(JSON.stringify(r[\"data\"])));\n\t\t\n\n\t\t// 4. Updates the UI with the OCR Details\n\t\t// ------------------------------------------------------------------------------------------\n\n\n\t\tawait this.UpdateReceiptObject(idFactura);\n\n\t\tthis.receiptProducts = r[\"data\"][\"products\"];\n\n\t\t// Other Abbott Products\n\t\tthis.receiptOtherAbbottProducts = r[\"data\"][\"otherAbbottProducts\"];\n\t\tthis.receiptOtherNonAbbottProducts = r[\"data\"][\"otherNonAbbottProducts\"];\n\n\t\tthis.ms.ReloadImageInImageRevisionComponent();\n\t\tthis.ms.UpdateReceiptInfoComponent(this.receiptObject);\n\n\t\tthis.LoadNonAbbottProducts(this.receiptOtherNonAbbottProducts);\n\t\tthis.LoadOtherAbbottProducts(this.receiptOtherAbbottProducts);\n\t\tthis.ClosePleaseWaitModal();\n\t}\n\n\t// Other products\n\tLoadNonAbbottProducts(foundProducts) {\n\t\tif (foundProducts && foundProducts.length > 0) {\n\n\t\t\t// Orders the products alphabetically\n\t\t\tfoundProducts.sort((a, b) => {\n\t\t\t\treturn a[\"topMatch\"] > b[\"topMatch\"] ? 1 : -1;\n\t\t\t});\n\n\t\t\tthis.updateRequestBody[\"ProductosNoAbbott_Suggestions\"] = [];\n\t\t\tfoundProducts.forEach(p => {\n\t\t\t\tthis.updateRequestBody[\"ProductosNoAbbott_Suggestions\"].push(\n\t\t\t\t\t{\n\t\t\t\t\t\t\"Producto_Otros\": p[\"topMatch\"],\n\t\t\t\t\t\t\"FoundText\": p[\"text\"],\n\t\t\t\t\t\t\"MatchIndex\": p[\"matches\"][0][\"score\"],\n\t\t\t\t\t\t\"Cantidad_Otros\": 0,\n\t\t\t\t\t\t\"Precio_Otros\": 0,\n\t\t\t\t\t\t\"hasMatches\": true,\n\t\t\t\t\t\t\"matched_words\":[\n\t\t\t\t\t\t\t{vertices: p[\"vertices\"]}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t\t} else{\n\t\t\tthis.updateRequestBody[\"ProductosNoAbbott_Suggestions\"] = [];\n\t\t}\n\t}\n\n\tLoadOtherAbbottProducts(foundProducts) {\n\t\tif (foundProducts && foundProducts.length > 0) {\n\n\t\t\t// Orders the products alphabetically\n\t\t\tfoundProducts.sort((a, b) => {\n\t\t\t\treturn a[\"topMatch\"] > b[\"topMatch\"] ? 1 : -1;\n\t\t\t});\n\n\t\t\tthis.updateRequestBody[\"ProductosAbbott_Suggestions\"] = [];\n\t\t\tfoundProducts.forEach(p => {\n\t\t\t\tlet prod = {};\n\t\t\t\tif(p['matches'].length > 0){\n\t\t\t\t\tprod = {\n\t\t\t\t\t\t\"ID_Producto\": p[\"topMatchID\"],\n\t\t\t\t\t\t\"Producto\": p[\"topMatch\"],\n\t\t\t\t\t\t\"FoundText\": p[\"text\"],\n\t\t\t\t\t\t\"MatchIndex\": p[\"matches\"][0][\"score\"],\n\t\t\t\t\t\t\"Cantidad\": 0,\n\t\t\t\t\t\t\"Precio\": 0,\n\t\t\t\t\t\t\"hasMatches\": true,\n\t\t\t\t\t\t\"matched_words\":[\n\t\t\t\t\t\t\t{vertices: p[\"vertices\"]}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tprod = {\n\t\t\t\t\t\t\"ID_Producto\": p[\"topMatchID\"],\n\t\t\t\t\t\t\"Producto\": p[\"topMatch\"],\n\t\t\t\t\t\t\"FoundText\": p[\"text\"],\n\t\t\t\t\t\t\"MatchIndex\": 0,\n\t\t\t\t\t\t\"Cantidad\": 0,\n\t\t\t\t\t\t\"Precio\": 0,\n\t\t\t\t\t\t\"hasMatches\": true,\n\t\t\t\t\t\t\"matched_words\":[\n\t\t\t\t\t\t\t{vertices: p[\"vertices\"]}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.updateRequestBody[\"ProductosAbbott_Suggestions\"].push(prod);\n\t\t\t});\n\n\t\t\t// console.log(this.updateRequestBody);\n\t\t} else{\n\t\t\tthis.updateRequestBody[\"ProductosAbbott_Suggestions\"] = [];\n\t\t}\n\t}\n\n\t//Microsoft Dynamics\n\n\ttoggleDynamics(){\n\t\t// console.log(this.createUpdateDynamicsJSON());\n\t\t// console.log(this.rejectionReason);\n\n\t\tif(this.dynamicsOn){\n\t\t\tthis.dynamicsOn = false;\n\t\t}\n\t\telse{\n\t\t\tthis.dynamicsOn = true;\n\t\t}\n\t}\n\n\tcreateUpdateDynamicsJSON() {\n\t\tlet parseMedioCompra = (medio) => {\n\t\t\tswitch(medio){\n\t\t\t\tcase \"Farmacia\": return 1;\n\t\t\t\tcase \"Domicilio\": return 2;\n\t\t\t\tdefault: return 1;\n\t\t\t}\n\t\t}\n\n\t\tlet mapAbbotProds = (abbotProds) => {\n\t\t\tlet arr = [];\n\t\t\tabbotProds.forEach(prod => {\n\t\t\t\tlet p = {id: prod.ID_Producto , quantity: prod.Cantidad , price: prod.Precio}\n\t\t\t\tarr.push(p);\n\t\t\t});\n\n\t\t\treturn arr;\n\t\t}\n\n\t\tlet mapNonAbbotProds = (nonAbbotProds) => {\n\t\t\tlet arr = [];\n\t\t\tnonAbbotProds.forEach(prod => {\n\t\t\t\tlet p = {name: prod.Producto_Otros , quantity: prod.Cantidad_Otros , price: prod.Precio_Otros}\n\t\t\t\tarr.push(p);\n\t\t\t});\n\n\t\t\treturn arr;\n\t\t}\n\n\t\t// console.log('Request Body: ',this.updateRequestBody);\n\t\tvar updateDynamicsJson: any = {\n\t\t\t\"country\": this.receiptObject.country, \n\t\t\t\"idFromDatabase\": this.updateRequestBody.ID, \n\t\t\t\"patientId\": -1, \n\t\t\t\"pharmacyId\": this.updateRequestBody.Farmacia.ID, \n\t\t\t\"billId\": this.updateRequestBody.Factura, \n\t\t\t\"billDate\": this.updateRequestBody.Fecha, \n\t\t\t\"billImageUrl\": this.receiptImage, \n\t\t\t\"products\": mapAbbotProds(this.updateRequestBody.ProductosAbbott), \n\t\t\t\"nonAboxProducts\": mapNonAbbotProds(this.updateRequestBody.ProductosNoAbbott), \n\t\t\t\"status\": null, \n\t\t\t\"statusReason\": null, \n\t\t\t\"totalAmount\": this.updateRequestBody.MontoTotal, \n\t\t\t\"revisionTime1\": 0, \n\t\t\t\"revisionTime2\": null, \n\t\t\t\"purchaseMethod\": parseMedioCompra(this.updateRequestBody.MedioCompra)\n\t\t}\n\n\t\t// console.log(\"Dynamics Update Object: \", updateDynamicsJson);\n\n\t\tvar x = JSON.parse(JSON.stringify(updateDynamicsJson));\n\t\treturn x;\n\t}\n\n\tasync RejectDynamicsCRM(e){\n\t\ttry{\n\t\t\t//Micorsoft Dynamics CRM Integration START ------\n\t\t\tif(this.dynamicsOn){\n\t\t\t\t//Dynamics Microsoft Integration\n\t\t\t\tlet dynamicsObject = this.createUpdateDynamicsJSON();\n\t\t\t\tdynamicsObject[\"status\"] = \"Rechazada\";\n\t\t\t\tdynamicsObject[\"statusReason\"] = e.reason;\n\t\t\t\tdynamicsObject[\"revisionTime1\"] = this.getElapsedTime_seconds(this.timerCount);\n\t\t\t\tconsole.log(dynamicsObject)\n\t\t\t\tlet rDynamics = await this.rs.DynamicsUpdateReceipt(dynamicsObject);\n\t\t\t\tif (!rDynamics[\"result\"]) {\n\t\t\t\t\t// Handle error.\n\t\t\t\t\tconsole.log(\"Error in Dynamics CRM petition: \",rDynamics);\n\t\t\t\t\t// return false;\n\t\t\t\t}\n\t\t\t}\t\n\t\t\t//Micorsoft Dynamics CRM Integration END ------\n\t\t}\n\t\tcatch(err){\n\t\t\tconsole.log(err);\n\t\t}\n\t\t\n\t}\n\n\t// Component Methods\n\t// --------------------------------------------------\n\n\tasync ngOnInit() {\n\n\t\t// Validates if there is a token and receipt\n\t\tif (!this.encodedToken || this.encodedToken === \"\") {\n\n\t\t\tconsole.log(\"No Token Received.\")\n\t\t\treturn;\n\t\t}\n\n\t\tlet ts = new TokenService();\n\t\tlet tokenresponse = ts.Decode(this.encodedToken);\n\t\tif (tokenresponse.result) {\n\t\t\tthis.receiptId = tokenresponse[\"data\"][\"receiptid\"];\n\t\t\tthis.token = tokenresponse[\"data\"][\"token\"];\n\t\t\tthis.userid = tokenresponse[\"data\"][\"user\"];\n\n\t\t\tthis.rs.SetToken(this.token);\n\t\t\tawait this.GetData(this.receiptId);\n\t\t\t// Starts the time.\n\t\t\t// ------------------------------------------------\n\t\t\tthis.timerInit = true;\n\t\t\tthis.timerCount = new Date();\n\t\t\tthis.timerSubscription = interval(1000).subscribe(() => {\n\t\t\t\tif (!this.changeDetector['destroyed']) {\n\t\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.changeDetector.detectChanges();\n\t\t}\n\t\telse {\n\t\t\t// Invalid token.\n\t\t\tconsole.log(\"Invalid Token.\")\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t}\n}","module.exports = \".receiptpos-view-container {\\n background-color: #dddddd;\\n width: 80vw;\\n height: 80vh;\\n margin: auto;\\n margin-top:50px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvcmVjZWlwdHBvcy9yZWNlaXB0cG9zLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSx5QkFBeUI7SUFDekIsV0FBVztJQUNYLFlBQVk7SUFDWixZQUFZO0lBQ1osZUFBZTtBQUNuQiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL3JlY2VpcHRwb3MvcmVjZWlwdHBvcy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJlY2VpcHRwb3Mtdmlldy1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGRkZGQ7XG4gICAgd2lkdGg6IDgwdnc7XG4gICAgaGVpZ2h0OiA4MHZoO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtYXJnaW4tdG9wOjUwcHg7XG59Il19 */\"","module.exports = \"
\\n
\\n \\n
\\n
\"","import { Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, ɵɵupdateSyntheticHostBinding } from \"@angular/core\";\nimport { Router, ActivatedRoute, Params } from '@angular/router';\n\ndeclare var jquery:any;\ndeclare var $ :any;\n\n@Component({\n\tselector: \"receipt-pos\",\n\ttemplateUrl: \"receiptpos.component.html\",\n\tstyleUrls: [\"receiptpos.component.css\"]\n})\nexport class ReceiptPosComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n\t// Page Parameters\n\tprivate receiptId: string = \"\";\n\tprivate token: string = \"\";\n\n\tconstructor(\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router) {\n\t\t\tthis.receiptId = this.route.snapshot.params[\"id\"];\n\t\t\tthis.token = this.route.snapshot.params[\"token\"];\n\t}\n\n\t// Public Methods\n\t// --------------------------------------------------\n\n\n\t// Internal Methods\n\t// --------------------------------------------------\n \n \n\t// Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n\t\t// Validates if there is a token and receipt\n\t\tif (!this.token || this.token === \"\") { this.router.navigate(['/']); return; }\n\n\t\tconsole.log(\"Auth Token %s\", this.token);\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n console.log(\"ReceiptComponent Changes:\", changes);\n }\n}","module.exports = \"/* Main Styles */\\n\\n.container {\\n position: relative;\\n font-size: 14px;\\n margin-left: 20px !important;\\n}\\n\\n.container p {\\n line-height: 12px;\\n line-height: 0px;\\n height: 0px;\\n margin: 10px;\\n color: #bbb\\n}\\n\\n.action {\\n width: 400px;\\n height: 30px;\\n margin: 10px 0;\\n}\\n\\n.cropped {\\n position: absolute;\\n right: -230px;\\n top: 0;\\n width: 200px;\\n border: 1px #ddd solid;\\n height: 460px;\\n padding: 4px;\\n box-shadow: 0px 0px 12px #ddd;\\n text-align: center;\\n}\\n\\n.main-container {\\n margin-left: auto;\\n margin-right: auto;\\n font-size: 15px !important;\\n}\\n\\n.main-container .btn-view, .main-container .btn-fx {\\n width: 80px !important;\\n}\\n\\n/* Canvas Tools */\\n\\n.tools, .top-spacer {\\n margin-top: 20px;\\n \\n}\\n\\n.tools span, button{\\n display: inline-block;\\n padding: 5px 20px;\\n /* background-color: #f40; */\\n color: white;\\n cursor: pointer;\\n margin-bottom: 5px;\\n margin-right: 5px;\\n font-size: 14px;\\n}\\n\\n.tools .btn-danger{\\n color: white;\\n}\\n\\n.clearfix {\\n *zoom: 1;\\n}\\n\\n.clearfix:before{\\n content: \\\" \\\";\\n display: table;\\n}\\n\\n.clearfix:after{\\n content: \\\" \\\";\\n display: table;\\n clear: both;\\n}\\n\\n.cropPoint{\\n position: absolute;\\n height: 8px;\\n width: 8px;\\n background-color: rgba(255,255,255,0.7);\\n cursor: pointer;\\n}\\n\\n/* Elements Table */\\n\\n.table-row-clicked {\\n background-color: #50a9e4;\\n color: white;\\n}\\n\\n.table-sub-row {\\n background-color: rgba(28, 150, 190, 0.1);\\n color: #034f71;\\n}\\n\\n.btn-section .btn {\\n float:right;\\n}\\n\\n.small-text {\\n font-size: 12px;\\n}\\n\\n/* Custom Checkbox */\\n\\n/* ------------------------------------------------------------------------ */\\n\\n/* Customize the label (the container) */\\n\\n.container-custom {\\n display: block;\\n position: relative;\\n padding-left: 35px;\\n margin-bottom: 12px;\\n cursor: pointer;\\n font-size: 22px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n}\\n\\n/* Hide the browser's default checkbox */\\n\\n.container-custom input {\\n position: absolute;\\n opacity: 0;\\n cursor: pointer;\\n height: 0;\\n width: 0;\\n}\\n\\n/* Create a custom checkbox */\\n\\n.checkmark {\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 25px;\\n width: 25px;\\n background-color: #eee;\\n\\n}\\n\\n/* On mouse-over, add a grey background color */\\n\\n.container:hover input ~ .checkmark {\\n background-color: #ccc;\\n}\\n\\n/* When the checkbox is checked, add a blue background */\\n\\n.container-custom input:checked ~ .checkmark {\\n background-color: #2196F3;\\n}\\n\\n/* Create the checkmark/indicator (hidden when not checked) */\\n\\n.checkmark:after {\\n content: \\\"\\\";\\n position: absolute;\\n display: none;\\n}\\n\\n/* Show the checkmark when checked */\\n\\n.container-custom input:checked ~ .checkmark:after {\\n display: block;\\n}\\n\\n/* Style the checkmark/indicator */\\n\\n.container-custom .checkmark:after {\\n left: 9px;\\n top: 5px;\\n width: 5px;\\n height: 10px;\\n border: solid white;\\n border-width: 0 3px 3px 0;\\n transform: rotate(45deg);\\n}\\n\\n.input-title {\\n font-size: 10px;\\n}\\n\\n.table-header {\\n background-color: rgba(28, 150, 190, 0.1);\\n}\\n\\n.table td, .table th {\\n border-color: rgba(28, 150, 190, 0.1) !important;;\\n}\\n\\n.table .thead-dark th\\n{\\n background-color: rgba(28, 150, 190, 0.1) !important;\\n border-color: rgba(28, 150, 190, 0.1) !important;;\\n color: #034f71 !important;;\\n}\\n\\nth {\\n color: #034f71 !important;;\\n}\\n\\n.btn-view {\\n min-width: 0;\\n margin: 0;\\n border-radius: 5px;\\n background-color: #034f71 !important;\\n color: #fff;\\n font-weight: 600;\\n font-style: normal;\\n text-transform: none;\\n}\\n\\n/* Initial Loading Spinner */\\n\\n.initial-loading-spinner {\\n width:100vw;\\n margin: auto;\\n text-align: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvcmVjZWlwdHJldmlzaW9uL3JlY2VpcHRyZXZpc2lvbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjs7QUFFaEI7RUFDRSxrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLFlBQVk7RUFDWjtBQUNGOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFlBQVk7RUFDWixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixNQUFNO0VBQ04sWUFBWTtFQUNaLHNCQUFzQjtFQUN0QixhQUFhO0VBQ2IsWUFBWTtFQUNaLDZCQUE2QjtFQUM3QixrQkFBa0I7QUFDcEI7O0FBYUE7SUFDSSxpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLDBCQUEwQjtBQUM5Qjs7QUFDQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQSxpQkFBaUI7O0FBRWpCO0lBQ0ksZ0JBQWdCOztBQUVwQjs7QUFDQTtJQUNJLHFCQUFxQjtJQUNyQixpQkFBaUI7SUFDakIsNEJBQTRCO0lBQzVCLFlBQVk7SUFDWixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixlQUFlO0FBQ25COztBQUNBO0lBQ0ksWUFBWTtBQUNoQjs7QUFDQTtLQUNJLE9BQVE7QUFDWjs7QUFDQTtJQUNJLFlBQVk7SUFDWixjQUFjO0FBQ2xCOztBQUNBO0lBQ0ksWUFBWTtJQUNaLGNBQWM7SUFDZCxXQUFXO0FBQ2Y7O0FBQ0E7SUFDSSxrQkFBa0I7SUFDbEIsV0FBVztJQUNYLFVBQVU7SUFDVix1Q0FBdUM7SUFDdkMsZUFBZTtBQUNuQjs7QUFFQSxtQkFBbUI7O0FBRW5CO0lBQ0kseUJBQXlCO0lBQ3pCLFlBQVk7QUFDaEI7O0FBQ0E7SUFDSSwwQ0FBMEM7SUFDMUMsY0FBYztBQUNsQjs7QUFDQTtJQUNJLFdBQVc7QUFDZjs7QUFFQTtFQUNFLGVBQWU7QUFDakI7O0FBRUEscUJBQXFCOztBQUNyQiw4RUFBOEU7O0FBRTlFLHdDQUF3Qzs7QUFDeEM7RUFDRSxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLGVBQWU7RUFDZix5QkFBeUI7RUFDekIsc0JBQXNCO0VBRXRCLGlCQUFpQjtBQUNuQjs7QUFFQSx3Q0FBd0M7O0FBQ3hDO0VBQ0Usa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixlQUFlO0VBQ2YsU0FBUztFQUNULFFBQVE7QUFDVjs7QUFFQSw2QkFBNkI7O0FBQzdCO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsWUFBWTtFQUNaLFdBQVc7RUFDWCxzQkFBc0I7O0FBRXhCOztBQUVBLCtDQUErQzs7QUFDL0M7RUFDRSxzQkFBc0I7QUFDeEI7O0FBRUEsd0RBQXdEOztBQUN4RDtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQSw2REFBNkQ7O0FBQzdEO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixhQUFhO0FBQ2Y7O0FBRUEsb0NBQW9DOztBQUNwQztFQUNFLGNBQWM7QUFDaEI7O0FBRUEsa0NBQWtDOztBQUNsQztFQUNFLFNBQVM7RUFDVCxRQUFRO0VBQ1IsVUFBVTtFQUNWLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIseUJBQXlCO0VBR3pCLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLGVBQWU7QUFDakI7O0FBRUE7RUFDRSx5Q0FBeUM7QUFDM0M7O0FBRUE7RUFDRSxpREFBaUQ7QUFDbkQ7O0FBRUE7O0VBRUUscURBQXFEO0VBQ3JELGlEQUFpRDtFQUNqRCx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osU0FBUztFQUNULGtCQUFrQjtFQUNsQixvQ0FBb0M7RUFDcEMsV0FBVztFQUNYLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsb0JBQW9CO0FBQ3RCOztBQUdBLDRCQUE0Qjs7QUFFNUI7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL3JlY2VpcHRyZXZpc2lvbi9yZWNlaXB0cmV2aXNpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIE1haW4gU3R5bGVzICovXG5cbi5jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcbn1cblxuLmNvbnRhaW5lciBwIHtcbiAgbGluZS1oZWlnaHQ6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAwcHg7XG4gIGhlaWdodDogMHB4O1xuICBtYXJnaW46IDEwcHg7XG4gIGNvbG9yOiAjYmJiXG59XG5cbi5hY3Rpb24ge1xuICB3aWR0aDogNDAwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbi5jcm9wcGVkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTIzMHB4O1xuICB0b3A6IDA7XG4gIHdpZHRoOiAyMDBweDtcbiAgYm9yZGVyOiAxcHggI2RkZCBzb2xpZDtcbiAgaGVpZ2h0OiA0NjBweDtcbiAgcGFkZGluZzogNHB4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDEycHggI2RkZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuICBcbiAgXG4gIFxuXG5cblxuXG5cblxuXG5cblxuLm1haW4tY29udGFpbmVyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XG59XG4ubWFpbi1jb250YWluZXIgLmJ0bi12aWV3LCAubWFpbi1jb250YWluZXIgLmJ0bi1meCB7XG4gIHdpZHRoOiA4MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIENhbnZhcyBUb29scyAqL1xuXG4udG9vbHMsIC50b3Atc3BhY2VyIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIFxufVxuLnRvb2xzIHNwYW4sIGJ1dHRvbntcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDIwcHg7XG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogI2Y0MDsgKi9cbiAgICBjb2xvcjogd2hpdGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4udG9vbHMgLmJ0bi1kYW5nZXJ7XG4gICAgY29sb3I6IHdoaXRlO1xufVxuLmNsZWFyZml4IHtcbiAgICAqem9vbTogMTtcbn1cbi5jbGVhcmZpeDpiZWZvcmV7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG59XG4uY2xlYXJmaXg6YWZ0ZXJ7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG59XG4uY3JvcFBvaW50e1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICB3aWR0aDogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qIEVsZW1lbnRzIFRhYmxlICovXG5cbi50YWJsZS1yb3ctY2xpY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUwYTllNDtcbiAgICBjb2xvcjogd2hpdGU7XG59XG4udGFibGUtc3ViLXJvdyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIHJnYmEoMjgsIDE1MCwgMTkwLCAwLjEpO1xuICAgIGNvbG9yOiAjMDM0ZjcxO1xufVxuLmJ0bi1zZWN0aW9uIC5idG4ge1xuICAgIGZsb2F0OnJpZ2h0O1xufVxuXG4uc21hbGwtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLyogQ3VzdG9tIENoZWNrYm94ICAqL1xuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiBDdXN0b21pemUgdGhlIGxhYmVsICh0aGUgY29udGFpbmVyKSAqL1xuLmNvbnRhaW5lci1jdXN0b20ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDM1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAyMnB4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vKiBIaWRlIHRoZSBicm93c2VyJ3MgZGVmYXVsdCBjaGVja2JveCAqL1xuLmNvbnRhaW5lci1jdXN0b20gaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcbn1cblxuLyogQ3JlYXRlIGEgY3VzdG9tIGNoZWNrYm94ICovXG4uY2hlY2ttYXJrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMjVweDtcbiAgd2lkdGg6IDI1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG5cbn1cblxuLyogT24gbW91c2Utb3ZlciwgYWRkIGEgZ3JleSBiYWNrZ3JvdW5kIGNvbG9yICovXG4uY29udGFpbmVyOmhvdmVyIGlucHV0IH4gLmNoZWNrbWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG59XG5cbi8qIFdoZW4gdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQsIGFkZCBhIGJsdWUgYmFja2dyb3VuZCAqL1xuLmNvbnRhaW5lci1jdXN0b20gaW5wdXQ6Y2hlY2tlZCB+IC5jaGVja21hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xufVxuXG4vKiBDcmVhdGUgdGhlIGNoZWNrbWFyay9pbmRpY2F0b3IgKGhpZGRlbiB3aGVuIG5vdCBjaGVja2VkKSAqL1xuLmNoZWNrbWFyazphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogU2hvdyB0aGUgY2hlY2ttYXJrIHdoZW4gY2hlY2tlZCAqL1xuLmNvbnRhaW5lci1jdXN0b20gaW5wdXQ6Y2hlY2tlZCB+IC5jaGVja21hcms6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogU3R5bGUgdGhlIGNoZWNrbWFyay9pbmRpY2F0b3IgKi9cbi5jb250YWluZXItY3VzdG9tIC5jaGVja21hcms6YWZ0ZXIge1xuICBsZWZ0OiA5cHg7XG4gIHRvcDogNXB4O1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJvcmRlcjogc29saWQgd2hpdGU7XG4gIGJvcmRlci13aWR0aDogMCAzcHggM3B4IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbi5pbnB1dC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLnRhYmxlLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjgsIDE1MCwgMTkwLCAwLjEpO1xufVxuXG4udGFibGUgdGQsIC50YWJsZSB0aCB7XG4gIGJvcmRlci1jb2xvcjogIHJnYmEoMjgsIDE1MCwgMTkwLCAwLjEpICFpbXBvcnRhbnQ7O1xufVxuXG4udGFibGUgLnRoZWFkLWRhcmsgdGhcbntcbiAgYmFja2dyb3VuZC1jb2xvcjogIHJnYmEoMjgsIDE1MCwgMTkwLCAwLjEpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIHJnYmEoMjgsIDE1MCwgMTkwLCAwLjEpICFpbXBvcnRhbnQ7O1xuICBjb2xvcjogIzAzNGY3MSAhaW1wb3J0YW50Oztcbn1cbiAgXG50aCB7XG4gIGNvbG9yOiAjMDM0ZjcxICFpbXBvcnRhbnQ7O1xufVxuXG4uYnRuLXZpZXcge1xuICBtaW4td2lkdGg6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDM0ZjcxICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG5cbi8qIEluaXRpYWwgTG9hZGluZyBTcGlubmVyICovXG5cbi5pbml0aWFsLWxvYWRpbmctc3Bpbm5lciB7XG4gIHdpZHRoOjEwMHZ3O1xuICBtYXJnaW46IGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn0iXX0= */\"","module.exports = \"
\\n\\n \\n\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
Fatura Id: {{receiptId}}
\\n
Estado de la factura: {{receiptStatus}}
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
DatoValorEncontradosCheck
Factura{{receiptData.factura.value}}\\n 0\\\">\\n done \\n \\n \\n error \\n \\n \\n \\n \\n 0\\\">\\n \\n \\n
Fecha{{receiptData.fecha.value}}\\n 0\\\">\\n done \\n \\n \\n error \\n \\n \\n \\n \\n 0\\\">\\n \\n \\n
Farmacia{{receiptData.farmacia.value}}\\n 0\\\">\\n done \\n \\n \\n error \\n \\n \\n \\n \\n 0\\\">\\n \\n \\n
Lista de Productos (Conteo: {{products.length}})
\\n Prod. #{{i+1}}\\n \\n {{p.producto}} (Cantidad: {{p.cantidad}})\\n
\\n
\\n
\\n Cantidad:\\n \\n
\\n
\\n Precio:\\n \\n
\\n
\\n
\\n 0\\\">\\n done \\n \\n \\n error \\n \\n \\n \\n \\n 0\\\">\\n \\n \\n
\\n\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n Cargando...\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n
\\n
Error al traer la información de la factura.
\\n
\\n
\\n\\n\\n\\n \\n
\\n
\\n
\\n
\\n
Aprobar Factura
\\n \\n
\\n
\\n ¿Está seguro que desea aprobar la factura?\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Rechazar Factura
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n Loading...\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
{{message.title}}
\\n \\n
\\n
\\n {{message.body}}\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Por favor espere...
\\n
\\n
\\n
\\n
\\n Loading...\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n\\n
\\n\\n\\n\\n\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, ɵɵupdateSyntheticHostBinding, ChangeDetectionStrategy } from \"@angular/core\";\nimport { ReceiptService } from '../../services/receipt.service';\nimport { CacheService } from '../../services/cache.service';\nimport { EventEmitter } from \"@angular/core\";\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { MessagingService } from '../../services/messagingservice';\nimport { TokenService } from '../../services/token.service';\n\nimport { environment } from '../../../environments/environment';\n\ndeclare var jquery:any\ndeclare var $ :any;\n\n@Component({\n\tselector: \"receipt-revision\",\n\ttemplateUrl: \"receiptrevision.component.html\",\n\tstyleUrls: [\"receiptrevision.component.css\"]\n\t// changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReceiptRevisionComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\t\n\t@ViewChild('visbleCanvas', { static: true })\n\tvisbleCanvas: ElementRef;\n\tprivate ctx: CanvasRenderingContext2D;\n\n\tdataLoaded: boolean = false;\n\tdataLoadError: boolean = false;\n\n\tprivate receiptData: any = {};\n\treceiptId: string = \"\";\n\tprivate encodedToken: string = \"\";\n\tprivate token: string = \"\";\n\tprivate userid: string = \"\";\n\tprivate imageUrl:string = \"\";\n\tprivate products:any = [];\n\tprivate receiptStatus: string = \"\";\n\tprivate receiptRejectinReason: string = \"\";\n\n\trejectionProcessing: boolean = false;\n\trejectionResponseMessage: string = \"\";\n\tprivate reloadToSelfUrl: string = \"\";\n\n\t_errorsFound: any = [];\n\n\tmessage: any = {\n\t\ttitle: \"\",\n\t\tbody: \"\"\n\t};\n\n\tprivate redrawPolygonsOnScale:boolean = true;\n\n\trot:number = 0;\n ratio:number = 0.6; // By default opens the bill with a 20% zoom out\n\tCanvasCrop: any;\n\n\t_highlightColor:string = \"rgba(255, 0, 0, 0.2)\";\n\n\tprivate selectedItemPolygons: any = [];\n\n\tconstructor(\n\t\tprivate receiptService: ReceiptService, \n\t\tprivate cacheService: CacheService,\n\t\tprivate route: ActivatedRoute,\n\t\tprivate router: Router,\n\t\tprivate messagingService: MessagingService) {\n\n\t\t\tthis.receiptId = this.route.snapshot.params[\"id\"];\n\t\t\tthis.encodedToken = this.route.snapshot.params[\"token\"];\n\t}\n\n\t// Public Methods\n\t// --------------------------------------------------\n\n\tasync showInCanvas(source, element) {\n\t\tlet wordMatches = [];\n\t\tswitch(source) {\n\t\t\tcase \"factura\":\n\t\t\t\twordMatches = this.receiptData[\"factura\"][\"matches\"];\n\t\t\t\tbreak;\n\t\t\tcase \"farmacia\":\n\t\t\t\twordMatches = this.receiptData[\"farmacia\"][\"matches\"];\n\t\t\t\tbreak;\n\t\t\tcase \"fecha\":\n\t\t\t\twordMatches = this.receiptData[\"fecha\"][\"matches\"];\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tif (source.indexOf(\"producto-\") >= 0) {\n\t\t\t\t\tlet index = Number(source.replace(\"producto-\",\"\"));\n\t\t\t\t\twordMatches = this.receiptData[\"products\"][index][\"found\"];\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (wordMatches.length > 0) {\n\t\t\t$(\".table-row\").removeClass(\"table-row-clicked\");\n\t\t\t$(\"#\" + element).addClass(\"table-row-clicked\");\n\n\t\t\tthis.selectedItemPolygons = wordMatches;\n\t\t\tthis.messagingService.DrawPolygonsOnCanvas(this.selectedItemPolygons);\n\t\t}\n\t}\n\n\n\t// Internal Methods\n\t// --------------------------------------------------\n\t\n\tasync GetReceiptData(receiptId) {\n\t\ttry {\n\t\t\tthis.rot = 0;\n\t\t\tthis.ratio = 0.6;\n\t\t\tthis.dataLoadError = false;\n\t\t\tthis.dataLoaded = false;\n\n\t\t\tthis.receiptService.SetToken(this.token);\n\n\t\t\tlet r = await this.receiptService.GetReceiptDataWithProducts(receiptId);\n\n\t\t\t\n\t\t\t// Validates no error came from the service.\n\t\t\tif (r[\"header\"][\"code\"] !== 0) {\n\t\t\t\tthis.dataLoadError = true;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet responseBody = r[\"response\"][\"details\"];\n\t\t\tthis.receiptStatus = responseBody[\"BillData\"][\"Estado\"];\n\t\t\tthis.receiptRejectinReason = responseBody[\"BillData\"][\"Motivo\"];\n\n\t\t\tlet textSearchResults = responseBody[\"TextSearchResults\"];\n\t\t\tthis.imageUrl = responseBody[\"BillData\"][\"imageUrlProcessed\"] === \"\" ? responseBody[\"BillData\"][\"imageUrl\"] : responseBody[\"BillData\"][\"imageUrlProcessed\"];\n\t\t\tthis.products = textSearchResults[\"products\"];\n\n\t\t\tthis.products.forEach(p => { p[\"qty\"] = p[\"cantidad\"]; });\n\n\t\t\tthis.receiptData = textSearchResults;\n\t\t\t\n\t\t\tthis.dataLoaded = true;\n\t\t}\n\t\tcatch(err) {\n\t\t\tthis.dataLoaded = false;\n\t\t\tthis.dataLoadError = true;\n\t\t\tconsole.log(err);\n\t\t}\n\t}\n\n\tValidateItem(field, message1, message2) {\n\t\tlet errorsFound = [];\n\t\tif (this.receiptData[field].matches.length === 0) {\n\t\t\tif (!this.receiptData[field][\"checked\"]||this.receiptData[field][\"checked\"] === undefined) {\n\t\t\t\terrorsFound.push({message:message1});\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif (!this.receiptData[field][\"checked\"]||this.receiptData[field][\"checked\"] === undefined) {\n\t\t\t\terrorsFound.push({message:message2});\n\t\t\t}\n\t\t}\n\t\treturn errorsFound;\n\t}\n\n\tValidateBeforeApproval() {\n\t\tthis._errorsFound = [];\n\t\tlet errorsFound = [];\n\t\tlet response = [];\n\n\t\tresponse = this.ValidateItem(\"factura\",\n\t\t\t\"El número de factura no se encontró en la imagen, por favor chequear manualmente en la imagen.\",\n\t\t\t\"Tiene que chequear que el número de factura se encuentre en la imagen.\");\n\t\terrorsFound = errorsFound.concat(response);\n\n\t\tresponse = this.ValidateItem(\"fecha\",\n\t\t\t\"La fecha no se encontró en la imagen, por favor chequear manualmente en la imagen.\",\n\t\t\t\"Tiene que chequear que la fecha de la factura se encuentre en la imagen.\");\n\t\terrorsFound = errorsFound.concat(response);\n\n\t\tresponse = this.ValidateItem(\"farmacia\",\n\t\t\t\"La farmacia no se encontró en la imagen, por favor chequear manualmente en la imagen.\",\n\t\t\t\"Tiene que chequear que la farmacia de la factura se encuentre en la imagen.\");\n\t\terrorsFound = errorsFound.concat(response);\n\n\t\tthis.products.forEach(p => {\n\t\t\tif (p.found.length === 0 && (!p[\"checked\"]||p[\"checked\"] === undefined)) { errorsFound.push({message:\"'\" + p.producto + \"' no se encontró en la imagen.\"}); }\n\t\t\tif (p.found.length > 0 && !p[\"checked\"]) { errorsFound.push({message:\"Tiene que chequear el producto'\" + p.producto + \"' en la imagen.\"}); }\n\t\t\tif (p[\"qty\"] === undefined || p[\"qty\"] === 0 || p[\"qty\"] === \"\") {\n\t\t\t\terrorsFound.push({message:\"Tiene que chequear la cantidad del producto'\" + p.producto + \"' en la imagen.\"});\n\t\t\t}\n\t\t\tif (p[\"price\"] === undefined || p[\"price\"] === 0 || p[\"price\"] === \"\") {\n\t\t\t\terrorsFound.push({message:\"Tiene que chequear el precio del producto'\" + p.producto + \"' en la imagen.\"});\n\t\t\t}\n\t\t});\n\n\n\t\tthis._errorsFound = errorsFound;\n\n\t\tif (errorsFound.length > 0) {\n\t\t\t$(\"#validationsResultsDialog\").modal('show');\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\tValidateBeforeRejection() {\n\t\tthis._errorsFound = [];\n\t\tlet errorsFound = [];\n\t\tlet response = [];\n\n\t\tresponse = this.ValidateItem(\"factura\",\n\t\t\t\"El número de factura no se encontró en la imagen, por favor chequear manualmente en la imagen.\",\n\t\t\t\"Tiene que chequear que el número de factura se encuentre en la imagen.\");\n\t\terrorsFound = errorsFound.concat(response);\n\n\t\tresponse = this.ValidateItem(\"fecha\",\n\t\t\t\"La fecha no se encontró en la imagen, por favor chequear manualmente en la imagen.\",\n\t\t\t\"Tiene que chequear que la fecha de la factura se encuentre en la imagen.\");\n\t\terrorsFound = errorsFound.concat(response);\n\n\t\tresponse = this.ValidateItem(\"farmacia\",\n\t\t\t\"La farmacia no se encontró en la imagen, por favor chequear manualmente en la imagen.\",\n\t\t\t\"Tiene que chequear que la farmacia de la factura se encuentre en la imagen.\");\n\t\terrorsFound = errorsFound.concat(response);\n\n\t\tthis.products.forEach(p => {\n\t\t\tif (p.found.length === 0 && (!p[\"checked\"]||p[\"checked\"] === undefined)) { errorsFound.push({message:\"'\" + p.producto + \"' no se encontró en la imagen.\"}); }\n\t\t\tif (p.found.length > 0 && !p[\"checked\"]) { errorsFound.push({message:\"Tiene que chequear el producto'\" + p.producto + \"' en la imagen.\"}); }\n\t\t\tif (p[\"qty\"] === undefined || p[\"qty\"] === 0 || p[\"qty\"] === \"\") {\n\t\t\t\terrorsFound.push({message:\"Tiene que chequear la cantidad del producto'\" + p.producto + \"' en la imagen.\"});\n\t\t\t}\n\t\t\tif (p[\"price\"] === undefined || p[\"price\"] === 0 || p[\"price\"] === \"\") {\n\t\t\t\terrorsFound.push({message:\"Tiene que chequear el precio del producto'\" + p.producto + \"' en la imagen.\"});\n\t\t\t}\n\t\t});\n\n\n\t\tthis._errorsFound = errorsFound;\n\n\t\tif (errorsFound.length > 0) {\n\t\t\t$(\"#validationsResultsDialog\").modal('show');\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\tcheckValue(checked:any, source:string) {\n\t\tswitch(source) {\n\t\t\tcase \"factura\":\n\t\t\t\tthis.receiptData.factura[\"checked\"] = checked;\n\t\t\t\tbreak;\n\t\t\tcase \"fecha\":\n\t\t\t\tthis.receiptData.fecha[\"checked\"] = checked;\n\t\t\t\tbreak;\n\t\t\tcase \"farmacia\":\n\t\t\t\tthis.receiptData.farmacia[\"checked\"] = checked;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tif (source.indexOf(\"producto-\") >= 0) {\n\t\t\t\t\tlet index = Number(source.replace(\"producto-\",\"\"));\n\t\t\t\t\tthis.receiptData[\"products\"][index][\"checked\"] = checked;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Image Operations\n\t// ------------------------------------------------\n\t\n\treAnalizeBtnClicked(e) {\n\t\tthis.ReAnalizeReceipt();\n\t}\n\n\tGetImageURI(canvas) {\n\t\tif (!canvas || canvas === \"\") return \"\";\n\n\t\t// Converts the contents on the canvas to a serialized text that will be sent to the server\n\t\t// to be interpreted and analyzed.\n\n\t\t// get image URI from canvas object\n\t\tvar imageURI = canvas.toDataURL(\"image/jpg\");\n\n\t\treturn imageURI;\n\t}\n\n\tasync ReAnalizeReceipt() {\n\t\t// This code interacts with the DOM.\n\t\tlet canvas = document.getElementById(\"visbleCanvas\") as HTMLCanvasElement;\n\t\tlet ctx = canvas.getContext(\"2d\");\n\t\tlet uri = this.GetImageURI(canvas);\n\n\t\t$(\"#pleaseWaitDialog\").modal('show');\n\n\t\tlet r = await this.receiptService.AnalizeReceipt(this.receiptId, uri);\n\n\t\tif (r[\"result\"]) {\n\n\t\t\tlocation.reload();\n\n\t\t}\n\t\telse {\n\t\t\t// Handle error when re-analizing the receipt\n\t\t\t$(\"#pleaseWaitDialog\").modal('hide');\n\n\t\t\tthis.message.title = \"Espere\";\n\t\t\tthis.message.body = \"Ocurrió un problema al re-analizar la factura.\";\n\t\t\t$('#messageModal').modal('show');\n\t\t}\n\t}\n\n\t// UI Operations\n\t// ------------------------------------------------\n\n\tDisableAllButtons() {\n\t\t$(\".btn-fx\").attr(\"disabled\", true);\n\t}\n\n\tOpenRejectModal() {\n\t\tthis.rejectionResponseMessage = \"\";\n\t\tthis.messagingService.ResetRejectionReasonFormEvent(\"\");\n\t\t$(\"#rechazarFaturaModal\").modal('show');\n\t}\n\n\tHandleRejectionLoading(e) {\n\t\tthis.rejectionProcessing = true;\n\t}\n\n\tHandleRejectionResponse(e) {\n\t\tthis.rejectionProcessing = false;\n\t\tthis.rejectionResponseMessage = \"\";\n\n\t\tif (e[\"result\"]) {\n\t\t\t$(\"#rechazarFaturaModal\").modal('hide');\n\t\t\tthis.message.title = \"Listo!\";\n\t\t\tthis.message.body = e[\"message\"];\n\t\t\t$('#messageModal').modal('show');\n\t\t\tthis.GetReceiptData(this.receiptId);\n\t\t}\n\t\telse {\n\t\t\t// Handle Error\n\t\t\tthis.rejectionResponseMessage = e[\"message\"];\n\t\t}\n\t\t\n\t}\n\n\t// Button Operations\n\t// --------------------------------------------------\n\n\tasync Approve() {\n\t\ttry {\n\n\t\t\tif (!this.ValidateBeforeApproval()) { return; }\n\n\t\t\t$(\"#pleaseWaitDialog\").modal('show');\n\n\t\t\tlet r = await this.receiptService.ApproveReceipt(this.receiptId, this.userid, this.products);\n\n\t\t\t$(\"#pleaseWaitDialog\").modal('hide');\n\n\t\t\t// Validates the response\n\t\t\tif (r[\"response\"][\"code\"] != \"0\") {\n\t\t\t\t// Handle service internal error\n\t\t\t\tthis.message.title = \"Ocurrió un problema\";\n\t\t\t\tthis.message.body = r[\"response\"][\"message\"];\n\t\t\t\t$('#messageModal').modal('show');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.message.title = \"Listo!\";\n\t\t\t\tthis.message.body = r[\"response\"][\"message\"];\n\t\t\t\t$('#messageModal').modal('show');\n\t\t\t\tthis.GetReceiptData(this.receiptId);\n\t\t\t}\n\t\t}\n\t\tcatch(err) {\n\t\t\tconsole.log(\"Error approving the receipt:\", err);\n\t\t}\n\t}\n\n\tasync Reject() {\n\t\ttry {\n\n\t\t\tif (!this.ValidateBeforeApproval()) { return; }\n\n\t\t\t$(\"#pleaseWaitDialog\").modal('show');\n\n\t\t\tlet r = await this.receiptService.RejectReceipt(this.receiptId, this.userid, this.products);\n\n\t\t\t$(\"#pleaseWaitDialog\").modal('hide');\n\n\t\t\t// Validates the response\n\t\t\tif (r[\"response\"][\"code\"] != \"0\") {\n\t\t\t\t// Handle service internal error\n\t\t\t\tthis.message.title = \"Ocurrió un problema\";\n\t\t\t\tthis.message.body = r[\"response\"][\"message\"];\n\t\t\t\t$('#messageModal').modal('show');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.message.title = \"Listo!\";\n\t\t\t\tthis.message.body = r[\"response\"][\"message\"];\n\t\t\t\t$('#messageModal').modal('show');\n\t\t\t\tthis.GetReceiptData(this.receiptId);\n\t\t\t}\n\n\t\t\tthis.DisableAllButtons();\n\t\t}\n\t\tcatch(err) {\n\t\t\tconsole.log(\"Error approving the receipt:\", err);\n\t\t}\n\t}\n\t\n\t// Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n\t\t\n\t\t// Validates if there is a token and receipt\n\t\tif (!this.encodedToken || this.encodedToken === \"\") { this.router.navigate(['/']); return; }\n\n\t\tlet ts = new TokenService();\n\t\tlet tokenresponse = ts.Decode(this.encodedToken);\n\t\tif (tokenresponse.result) {\n\t\t\tthis.receiptId = tokenresponse[\"data\"][\"receiptid\"];\n\t\t\tthis.token = tokenresponse[\"data\"][\"token\"];\n\t\t\tthis.userid = tokenresponse[\"data\"][\"user\"];\n\t\t\tthis.GetReceiptData(this.receiptId);\n\t\t}\n\t\telse {\n\t\t\t// Invalid token.\n\t\t\tthis.router.navigate(['/']); return;\n\t\t}\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.route.params.subscribe(params => {\n\t\t\tthis.reloadToSelfUrl = params[\"token\"];\n\t\t});\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n }\n}","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL3JldmlzaW9uX2ZhY3R1cmEvcmV2aXNpb25fZmFjdHVyYV9wYWdlLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n\\n \\n\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\"","import { Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, ɵɵupdateSyntheticHostBinding } from \"@angular/core\";\nimport { DemoService } from '../../services/demo.service';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\n\n@Component({\n\tselector: \"revision-factura\",\n\ttemplateUrl: \"revision_factura_page.component.html\",\n\tstyleUrls: [\"revision_factura_page.component.css\"]\n})\nexport class Revision_Factura_Page implements OnInit, OnDestroy, AfterViewInit {\n\n\tconstructor(private demoService: DemoService, private router: Router) {\n\t}\n\t\n\t// Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n}","module.exports = \".main-container {\\n margin-top:40px;\\n width: 100vw;\\n text-align: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvd2VsY29tZS93ZWxjb21lLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxlQUFlO0lBQ2YsWUFBWTtJQUNaLGtCQUFrQjtBQUN0QiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL3dlbGNvbWUvd2VsY29tZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1haW4tY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOjQwcHg7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn0iXX0= */\"","module.exports = \"\\n
\\n

Bienvenido!

\\n

Para ver un demo de cómo funciona esta herramienta, por favor presiones el siguiente botón:

\\n \\n
\\n
\\n \\n\\n
\\n\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, AfterViewInit, ViewChild, ElementRef, SimpleChanges, OnChanges, ɵɵupdateSyntheticHostBinding } from \"@angular/core\";\nimport { DemoService } from '../../services/demo.service';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\n\n@Component({\n\tselector: \"welcome\",\n\ttemplateUrl: \"welcome.component.html\",\n\tstyleUrls: [\"welcome.component.css\"]\n})\nexport class WelcomeComponent implements OnInit, OnDestroy, AfterViewInit {\n\n\tpublic token: string = \"\";\n\n\tconstructor(private demoService: DemoService, private router: Router) {\n\t}\n\n\t// Events\n\t// --------------------------------------------------\n\n\tasync OpenFactura() {\n\t\tthis.router.navigate(['receipt', this.token]);\n\t}\n\t\n\t// Component Methods\n\t// --------------------------------------------------\n\n async ngOnInit() {\n }\n\n ngOnDestroy() {\n\t}\n\n\tngAfterViewInit() {\n\t}\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'otherproductsfilter',\n pure: false\n})\nexport class OtherProductsFilterPipe implements PipeTransform {\n transform(items: any[], filter: Object): any {\n if (!items || !filter) {\n return items;\n }\n\n return items.filter(item => {\n let f: string = \"\";\n f = String(filter);\n return item[\"Producto\"].toUpperCase().indexOf(f.toUpperCase()) !== -1\n });\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'productsfilter',\n pure: false\n})\nexport class ProductsFilterPipe implements PipeTransform {\n transform(items: any[], filter: Object): any {\n if (!items || !filter) {\n return items;\n }\n\n return items.filter(item => {\n let f: string = \"\";\n f = String(filter);\n return item[\"Producto_Otros\"].toUpperCase().indexOf(f.toUpperCase()) !== -1\n });\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root', })\nexport class CacheService {\n\n\tconstructor() {\n\t}\n\n Store(key, data) {\n let d = JSON.stringify(data);\n // localStorage.setItem(key, d);\n }\n\n Get(key, defaultValue) {\n return new Promise(async (resolve, reject) => {\n try {\n defaultValue = defaultValue || \"\";\n let value = localStorage.getItem(key);\n if (value) {\n resolve(JSON.parse(value));\n } \n else {\n resolve(defaultValue);\n }\n }\n catch(err) {\n reject(err);\n }\n });\n }\n}","import { Injectable } from '@angular/core';\nimport { CacheService } from './cache.service';\nimport { ReceiptApprovalRequest, ReceiptApprovalCallCenterRequest, ReceiptApprovalCallCenterRequest_Product } from '../models/receipt-approval-request';\nimport { ReceiptRejectionRequest } from '../models/receipt-rejection-request';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\n\n@Injectable({ providedIn: 'root', })\nexport class DemoService {\n\t// API Urls:\n private _authUrl: string = \t \"https://apidev.aboxplan.com/security/authocrdemo\"; // \"http://localhost:9000/authocrdemo\";\t \t// \n \n\tconstructor(private cacheService: CacheService, private route: ActivatedRoute,\n\t\tprivate router: Router) {\n }\n\n BuildDemoToken\n\n\tDemoLogin() {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\ttry {\n let demoUser = \"110210909\";\n let demoPwd = \"Password.01\";\n let _this = this;\n\n\t\t\t\tlet response = await fetch(this._authUrl, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Authorization': ''\n },\n body: JSON.stringify(\n { \"user\": demoUser,\"password\": demoPwd }\n )\n })\n .then(function(res){ \n return res.json();\n })\n .then(function(data){\n\n let token = data[\"response\"][\"details\"][\"token\"];\n \n // Invalid token.\n\t\t\t _this.router.navigate(['/receipt/' + token]); return;\n\n resolve(token);\n });\n\t\t\t}\n\t\t\tcatch(err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n}","import { Injectable } from '@angular/core';\n\n// Environment Setup\nimport { environment } from '../../environments/environment.prod';\n\nimport { } from 'axios';\nimport axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from \"axios\";\nimport { resolve } from 'url';\n\n@Injectable({ providedIn: 'root', })\nexport class DynamicsService {\n\n generate_dynamics_json(factura) {\n try {\n let parseMedioCompra = (medio) => {\n switch(medio){\n case \"Farmacia\": return 1;\n case \"Domicilio\": return 2;\n default: return 1;\n }\n }\n \n let mapAbbotProds = (abbotProds) => {\n let arr = [];\n abbotProds.forEach(prod => {\n let p = {id: prod.ID_Producto , quantity: prod.Cantidad , price: prod.Precio}\n arr.push(p);\n });\n \n return arr;\n }\n \n let mapNonAbbotProds = (nonAbbotProds) => {\n let arr = [];\n nonAbbotProds.forEach(prod => {\n let p = {name: prod.Producto_Otros , quantity: prod.Cantidad_Otros , price: prod.Precio_Otros}\n arr.push(p);\n });\n \n return arr;\n }\n \n // console.log('Request Body: ',this.updateRequestBody);\n var updateDynamicsJson: any = {\n \"country\": factura.country, \n \"idFromDatabase\": factura.idFactura, \n \"patientId\": -1, \n \"pharmacyId\": factura.Farmacia.ID, \n \"billId\": factura.Factura, \n \"billDate\": factura.Fecha, \n \"billImageUrl\": \"\", \n \"products\": mapAbbotProds(factura.Products), \n \"nonAboxProducts\": mapNonAbbotProds(factura.NonAbbottProducts), \n \"status\": null, \n \"statusReason\": null, \n \"totalAmount\": factura.MontoTotal, \n \"revisionTime1\": 0, \n \"revisionTime2\": null, \n \"purchaseMethod\": parseMedioCompra(factura.MedioCompra)\n }\n \n var x = JSON.parse(JSON.stringify(updateDynamicsJson));\n \n return {\n result: true,\n message: \"\",\n data: x\n }\n }\n catch(err) {\n return {\n result: false, \n message: \"Error al generar el json para dynamics.\",\n data: err\n }\n }\n }\n\n}","import { Injectable, EventEmitter } from '@angular/core';\nimport { Factura_SearchResults_Object } from '../models/facturas_search';\n\n@Injectable({ providedIn: 'root', })\nexport class MessagingService {\n\n\tmessageEvent = new EventEmitter();\n\tnewProductAddedEvent = new EventEmitter();\n\tsetSelectedProductInFormEvent = new EventEmitter();\n\terrorWhileAddingProductToListEvent = new EventEmitter();\n\twordPolygonSelectedEvent = new EventEmitter();\n\tdrawPolygonsOnCanvasEvent = new EventEmitter();\n\tdrawPolygonOnCanvasEvent = new EventEmitter();\n\n\tresetRejectionReasonFormEvent = new EventEmitter();\n\treloadImageInImageRevisionComponentEvent = new EventEmitter();\n\n\tclearProductSearchInputEvent = new EventEmitter();\n\n\tupdateCartEvent = new EventEmitter();\n\tclearCartEvent = new EventEmitter();\n\n\tupdateReceiptDataEvent = new EventEmitter();\n\tshowPageLoaderEvent = new EventEmitter();\n\n\treanalizeReceiptEvent = new EventEmitter();\n\n\t// Validation Messagaes\n\tvalidateProductsEvent = new EventEmitter();\n\n\tupdateReceiptInfoComponentEvent = new EventEmitter();\n\n\ttriggerDrawPolygonsEvent = new EventEmitter();\n\n\ttriggerDrawSinglePolygonEvent = new EventEmitter();\n\n\t// Facturas Modal Events\n\n\ttriggerOpenFacturaModal = new EventEmitter();\n\n\t// Nap (Non Abbott) Messages\n\tnap_add_product_to_list_event = new EventEmitter();\n\tnap_product_list_changed_event = new EventEmitter();\n\n\t// Ap (Abbott Products) Messages\n\tap_add_product_to_list_event = new EventEmitter();\n\tap_product_list_changed_event = new EventEmitter();\n\n\t// Facturas Operations\n\tfac_loaded_event = new EventEmitter();\n\tfac_approve_event = new EventEmitter();\n\tfac_reject_event = new EventEmitter();\n\tfac_save_event = new EventEmitter();\n\tfac_stop_timer_event = new EventEmitter();\n\tfac_start_timer_event = new EventEmitter();\n\tfac_controller_show_please_wait_event = new EventEmitter();\n\tfac_controller_hide_please_wait_event = new EventEmitter();\n\tfac_field_clicked_event = new EventEmitter();\n\tfac_request_fac_reload_event = new EventEmitter();\n\tfac_request_fac_reload_ocr_info_event = new EventEmitter();\n\tfac_ocr_info_updated_event = new EventEmitter();\n\tfac_sync_with_dynamics_event = new EventEmitter();\n\tfac_generate_dynamics_json_event = new EventEmitter();\n\tfac_generate_factura_json_event = new EventEmitter();\n\tfac_new_image_loaded_event = new EventEmitter();\n\tfac_nullify_factura_event = new EventEmitter();\n\n\tconstructor() {\n\t}\n\n\t// Generic Global Message\n\tSendMessage(data) {\n\t\tthis.messageEvent.emit(data);\n\t}\n\n\t// Custom Events for more secure integrations between\n\t// --------------------------------------------------------\n\n\tAddNewProductMessage(product) {\n\t\tthis.newProductAddedEvent.emit(product);\n\t}\n\n\tSetSelectedProductInFormMessage(product) {\n\t\tthis.setSelectedProductInFormEvent.emit(product);\n\t}\n\n\tErrorWhileAddingProductToList(message) {\n\t\tthis.errorWhileAddingProductToListEvent.emit(message);\n\t}\n\n\tWordPolygonSelectedMessage(word) {\n\t\tthis.wordPolygonSelectedEvent.emit(word);\n\t}\n\n\tResetRejectionReasonFormEvent(val) {\n\t\tthis.resetRejectionReasonFormEvent.emit(val);\n\t}\n\n\tDrawPolygonsOnCanvas(polygons) {\n\t\tthis.drawPolygonsOnCanvasEvent.emit(polygons);\n\t}\n\n\tDrawPolygonOnCanvas(polygons) {\n\t\tthis.drawPolygonOnCanvasEvent.emit(polygons);\n\t}\n\n\tReloadImageInImageRevisionComponent() {\n\t\tthis.reloadImageInImageRevisionComponentEvent.emit();\n\t}\n\n\tClearProductSearchInput() {\n\t\tthis.clearProductSearchInputEvent.emit();\n\t}\n\n\tUpdateCart() {\n\t\tthis.updateCartEvent.emit();\n\t}\n\n\tClearCart() {\n\t\tthis.clearCartEvent.emit();\n\t}\n\n\tUpdateReceiptDataEvent() {\n\t\tthis.updateReceiptDataEvent.emit();\n\t}\n\n\tShowPageLoader() {\n\t\tthis.showPageLoaderEvent.emit();\n\t}\n\n\tReanalizeReceipt() {\n\t\tconsole.log(\"Calling...\")\n\t\tthis.reanalizeReceiptEvent.emit();\n\t}\n\n\t// Validation Messages\n\tValidateProducts() {\n\t\tthis.validateProductsEvent.emit();\n\t}\n\n\tUpdateReceiptInfoComponent(obj) {\n\t\tthis.updateReceiptInfoComponentEvent.emit(obj);\n\t}\n\n\tTriggerDrawPolygons() {\n\t\tthis.triggerDrawPolygonsEvent.emit();\n\t}\n\n\tTriggerDrawSinglePolygon(polygon) {\n\t\tthis.triggerDrawSinglePolygonEvent.emit(polygon);\n\t}\n\n\t// Facturas Modal\n\tTriggerOpenFacturaModal(factura: Factura_SearchResults_Object) {\n\t\tthis.triggerOpenFacturaModal.emit(factura);\n\t}\n\n\t// Nap Messages\n\tNap_Add_Product_To_List(obj) {\n\t\tthis.nap_add_product_to_list_event.emit(obj);\n\t}\n\n\tNap_Product_List_Changed(obj) {\n\t\tthis.nap_product_list_changed_event.emit(obj);\n\t}\n\n\t// Ap Messages\n\tAp_Add_Product_To_List(obj) {\n\t\tthis.ap_add_product_to_list_event.emit(obj);\n\t}\n\n\tAp_Product_List_Changed(obj) {\n\t\tthis.ap_product_list_changed_event.emit(obj);\n\t}\n\n\t// Facturas Events\n\tFac_Loaded(obj) {\n\t\tthis.fac_loaded_event.emit(obj);\n\t}\n\n\tFac_Approve(obj) {\n\t\tthis.fac_approve_event.emit(obj);\n\t}\n\tFac_Reject(obj) {\n\t\tthis.fac_reject_event.emit(obj);\n\t}\n\tFac_Save(obj) {\n\t\tthis.fac_save_event.emit(obj);\n\t}\n\n\tFac_Stop_Timer(obj) {\n\t\tthis.fac_stop_timer_event.emit(obj);\n\t}\n\n\tFac_Start_Timer(obj) {\n\t\tthis.fac_start_timer_event.emit(obj);\n\t}\n\n\tFac_Controller_Show_Please_Wait(obj) {\n\t\tthis.fac_controller_show_please_wait_event.emit(obj);\n\t}\n\n\tFac_Controller_Hide_Please_Wait(obj) {\n\t\tthis.fac_controller_hide_please_wait_event.emit(obj);\n\t}\n\n\tFac_Field_Clicked(obj) {\n\t\tthis.fac_field_clicked_event.emit(obj);\n\t}\n\n\tFac_Request_Fac_Reload(obj) {\n\t\tthis.fac_request_fac_reload_event.emit(obj);\n\t}\n\n\tFac_Request_Fac_Reload_Ocr_Info(obj) {\n\t\tthis.fac_request_fac_reload_ocr_info_event.emit(obj);\n\t}\n\n\tFac_Ocr_Info_Updated(obj) {\n\t\tthis.fac_ocr_info_updated_event.emit(obj);\n\t}\n\n\tFac_Sync_With_Dynamics(obj) {\n\t\tthis.fac_sync_with_dynamics_event.emit(obj);\n\t}\n\n\tFac_Generate_Dynamics_Json(obj) {\n\t\tthis.fac_generate_dynamics_json_event.emit(obj);\n\t}\n\n\tFac_Generate_Factura_Json(obj) {\n\t\tthis.fac_generate_factura_json_event.emit(obj);\n\t}\n\n\tFac_New_Image_Loaded(obj) {\n\t\tthis.fac_new_image_loaded_event.emit(obj);\n\t}\n\n\tFac_Nullify(obj) {\n\t\tthis.fac_nullify_factura_event.emit(obj);\n\t}\n\n}","import { Injectable } from '@angular/core';\nimport { CacheService } from './cache.service';\nimport { ReceiptApprovalRequest, ReceiptApprovalCallCenterRequest, ReceiptApprovalCallCenterRequest_Product } from '../models/receipt-approval-request';\nimport { ReceiptRejectionRequest } from '../models/receipt-rejection-request';\nimport { Factura_Search_Object, Factura_SearchResults_Object } from '../models/facturas_search';\nimport { LimitConsumption, ResponseLimitConsumptionMonthly, ResponseLimitConsumptionYearly } from '../interface/ILimitConsumption';\n\n// Environment Setup\n\nimport { environment } from '../../environments/environment.prod';\nimport { } from 'axios';\nimport axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from \"axios\";\nimport { resolve } from 'url';\n\n\n@Injectable({ providedIn: 'root', })\nexport class ReceiptService {\n\n\tpublic cacheDataKey: string = \"ReceiptDataCache\";\n\tpublic cacheAnalizeKey: string = \"AnalizeDataCache\";\n\tpublic cacheProducts: string = \"ProductsCache\";\n\tpublic cacheNonAbbotProducts: string = \"NonAbbotProductsCache\";\n\n\tprivate _useCache: boolean = false;\n\tprivate authorizationToken: string = \"\";\n\n\tprivate _baseServerUrl: string = environment.nodeServer;\n\tprivate _baseCRMServerUrl: string = environment.crmServer;\n\n\t// Receipts: \t9006\n\t// Purchases: \t9008\n\t// CRM:\t\t\t9012\n\n\t// API Urls:\n\n\t// Receipts Ops\n\tprivate _analizeUrl: string = this._baseServerUrl + environment.receiptsBase + \"/uploadmodifiedreceipt\";\n\tprivate _uploadAndReAnalizeUrl: string = this._baseServerUrl + environment.receiptsBase + \"/uploadandreanalize\";\n\tprivate _getReceiptDataUrl: string = this._baseServerUrl + environment.receiptsBase + \"/billtext\";\n\tprivate _getReceiptDetailsWithProductsArray: string = this._baseServerUrl + environment.receiptsBase + \"/receipts/details\";\n\tprivate _getOCRAnalysis: string = this._baseServerUrl + environment.receiptsBase + \"/ocr/anlysis\";\n\tprivate _updateOCRAnalysis: string = this._baseServerUrl + environment.receiptsBase + \"/ocr/update\";\n\tprivate _getReceiptDataWithProductsUrl: string = this._baseServerUrl + environment.receiptsBase + \"/billtextandproducts\";\n\tprivate _readTextOnReceiptUrl: string = this._baseServerUrl + environment.receiptsBase + \"/receipts/readtext\";\n\tprivate _processReceiptUrl: string = this._baseServerUrl + environment.receiptsBase + \"/processreceipt\";\n\tprivate _uploadReceiptImage: string = this._baseServerUrl + environment.receiptsBase + \"/receipts/uploadmodifiedreceipt\";\n\tprivate _getConsumptionLimitMonthlyUrl: string = this._baseServerUrl + environment.purchasesBase + \"/consumptionlimitcheck/monthly\";\n\tprivate _getConsumptionLimitYearlyUrl: string = this._baseServerUrl + environment.purchasesBase + \"/consumptionlimitcheck/yearly\";\n\t// General Ops\n\tprivate _getProductsUrl: string = this._baseServerUrl + environment.generalBase + \"/productstoredeem/\";\n\tprivate _getDrugStoresByCountryId = this._baseServerUrl + environment.generalBase + '/pharmacies/';\n\tprivate _getAboxProductList = this._baseServerUrl + environment.generalBase + '/drugs/';\n\tprivate _getNonAboxProductList = this._baseServerUrl + environment.receiptsBase + '/ocr/nonabbottproducts/';\n\n\t// Purchases Ops\n\tprivate _approveReceiptServiceURL: string = this._baseServerUrl + environment.purchasesBase + \"/approve_callcenter\";\n\tprivate _rejectReceiptURL: string = this._baseServerUrl + environment.purchasesBase + \"/reject\";\n\n\t// CRM Ops\n\tprivate _updateCRMFactura: string = this._baseServerUrl + environment.crmBase + \"/crmops/updatefactura\";\n\tprivate _updateCRMFacturaImage: string = this._baseServerUrl + environment.receiptsBase + \"/image/uploadandreplace\";\n\n\t//Mycrosoft Dynamics Ops\n\tprivate _dynamicsUpdateURL: string = this._baseCRMServerUrl + \"/api/invoices/update\";\n\t// Factura Search Objects\n\tprivate factura_search_object: Factura_Search_Object;\n\n\n\n\tconstructor(private cacheService: CacheService) {\n\t}\n\n\t// Properties\n\t_cacheDataKey() { return this.cacheDataKey; }\n\t_cacheAnalizeKey() { return this.cacheAnalizeKey; }\n\t_cacheProducts() { return this.cacheProducts; }\n\n\tSetToken(token) {\n\t\tthis.authorizationToken = token;\n\t}\n\n\tClearCache(key) {\n\t\tlocalStorage.removeItem(key);\n\t}\n\n\tGetReceiptData(receiptid) {\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tif (this.authorizationToken === \"\") {\n\t\t\t\treject(\"Invalid authorization token.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tlet _this = this;\n\t\t\t\tlet cacheKey = this.cacheDataKey + \"-\" + receiptid;\n\n\t\t\t\tlet cachedData = await this.cacheService.Get(cacheKey, null);\n\n\t\t\t\tif (cachedData != null && cachedData != \"\" && this._useCache) {\n\t\t\t\t\tconsole.log(\"--> Caché\");\n\n\t\t\t\t\tresolve(cachedData);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.log(\"--> Service\");\n\n\t\t\t\t\tlet response = await fetch(this._getReceiptDataUrl, {\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\t\t\t\"billId\": receiptid\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\t\treturn res.json();\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (data) {\n\t\t\t\t\t\t\t// Cleans up the response data\n\t\t\t\t\t\t\t_this.cacheService.Store(cacheKey, data);\n\t\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tAnalizeReceipt(receiptid, imageURI) {\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tif (this.authorizationToken === \"\") {\n\t\t\t\treject(\"Invalid authorization token.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tlet cacheKey = this.cacheAnalizeKey + \"-\" + receiptid;\n\t\t\t\tlet cachedData = await this.cacheService.Get(cacheKey, \"\");\n\n\t\t\t\tif (cachedData != null && cachedData != \"\" && this._useCache) {\n\t\t\t\t\tresolve({ result: true, data: cachedData });\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar apiURl = this._analizeUrl;\n\n\t\t\t\t\tlet _this = this;\n\n\t\t\t\t\tfetch(apiURl,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\t\t\t\t\"receiptid\": receiptid,\n\t\t\t\t\t\t\t\t\"receiptimage\": imageURI\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\t\treturn res.json();\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (data) {\n\t\t\t\t\t\t\t// Extracts the words found (polygons)\n\t\t\t\t\t\t\tif (data.header.code === 0) {\n\t\t\t\t\t\t\t\t_this.cacheService.Store(cacheKey, data.response);\n\t\t\t\t\t\t\t\tresolve({ result: true, data: data.response });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresolve({ result: false, data: data, message: \"Error al traer los datos.\" });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tGetProducts(countryId) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tlet _this = this;\n\t\t\t\tlet cacheKey = this.cacheProducts;\n\n\t\t\t\tlet cachedData: any = [];\n\t\t\t\tcachedData = await this.cacheService.Get(cacheKey, null);\n\n\t\t\t\tif (cachedData != null && cachedData != \"\" && this._useCache) {\n\t\t\t\t\tresolve(cachedData);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet response = await fetch(this._getProductsUrl + countryId, {\n\t\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json'\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\t\treturn res.json();\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (data) {\n\t\t\t\t\t\t\t// Cleans up the response data\n\t\t\t\t\t\t\tif (data[\"response\"][\"code\"] === 0) {\n\t\t\t\t\t\t\t\tlet cleanedData = data[\"response\"][\"details\"][\"products\"];\n\t\t\t\t\t\t\t\t_this.cacheService.Store(cacheKey, cleanedData);\n\t\t\t\t\t\t\t\tresolve(cleanedData);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresolve([]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tGetReceiptDataWithProducts(receiptid) {\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tif (this.authorizationToken === \"\") {\n\t\t\t\treject(\"Invalid authorization token.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tlet _this = this;\n\t\t\t\tlet cacheKey = this.cacheDataKey + \"-\" + receiptid;\n\n\t\t\t\tlet cachedData = await this.cacheService.Get(cacheKey, null);\n\n\t\t\t\tif (cachedData != null && cachedData != \"\" && this._useCache) {\n\t\t\t\t\tresolve(cachedData);\n\t\t\t\t}\n\t\t\t\telse {\n\n\t\t\t\t\tlet response = await fetch(this._getReceiptDataWithProductsUrl, {\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\t\t\t\"billId\": receiptid\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\t\treturn res.json();\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (data) {\n\t\t\t\t\t\t\t// Cleans up the response data\n\t\t\t\t\t\t\t_this.cacheService.Store(cacheKey, data);\n\t\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tUploadAndReAnalizeReceipt(receiptid, imageURI) {\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tif (this.authorizationToken === \"\") {\n\t\t\t\treject(\"Invalid authorization token.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tlet cacheKey = this.cacheAnalizeKey + \"-\" + receiptid;\n\t\t\t\tlet cachedData = await this.cacheService.Get(cacheKey, \"\");\n\n\t\t\t\tif (cachedData != null && cachedData != \"\" && this._useCache) {\n\t\t\t\t\tresolve({ result: true, data: cachedData });\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar apiURl = this._uploadAndReAnalizeUrl;\n\n\t\t\t\t\tlet _this = this;\n\n\t\t\t\t\tfetch(apiURl,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\t\tmode: 'no-cors',\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\t\t\t\t\"billId\": receiptid,\n\t\t\t\t\t\t\t\t\"receiptimage\": imageURI\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\t\treturn res.json();\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (data) {\n\n\t\t\t\t\t\t\t// Extracts the words found (polygons)\n\t\t\t\t\t\t\tif (data.header.code === 0) {\n\t\t\t\t\t\t\t\t_this.cacheService.Store(cacheKey, data.response);\n\t\t\t\t\t\t\t\tresolve({ result: true, data: data.response });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresolve({ result: false, data: data, message: \"Error al traer los datos.\" });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tUploadResizedReceiptImage(receiptid, imageURI) {\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tif (this.authorizationToken === \"\") {\n\t\t\t\treject(\"Invalid authorization token.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvar apiURl = this._uploadReceiptImage;\n\n\t\t\t\taxios(apiURl,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\"receiptid\": receiptid,\n\t\t\t\t\t\t\t\"receiptimage\": imageURI\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (response) {\n\n\t\t\t\t\t\tif (response.data.header.code === 0) {\n\t\t\t\t\t\t\tresolve({ result: true, data: response.data.response, message: \"\" });\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve({ result: false, data: response.data, message: \"Error al traer los datos.\" });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tAnalizaReceiptUsingIdAndURL(receiptId, imageURL) {\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tif (this.authorizationToken === \"\") {\n\t\t\t\treject(\"Invalid authorization token.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvar apiURl = `${environment.nodeServer}${environment.receiptsBase}/ocr/anlysis`;\n\n\t\t\t\taxios(\n\t\t\t\t\tapiURl,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\"billId\": receiptId,\n\t\t\t\t\t\t\t\"urlToProcess\": imageURL\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (response) {\n\n\t\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\t\tresolve({ result: true, data: response.data, message: \"\" });\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve({ result: false, data: response.data, message: \"Error al traer los datos.\" });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\t// Receipt Information Operations\n\n\tGetReceiptDetailsWithProductsArray(receiptid) {\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tif (this.authorizationToken === \"\") {\n\t\t\t\treject(\"Invalid authorization token.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tlet _this = this;\n\t\t\t\tlet cacheKey = this.cacheDataKey + \"-\" + receiptid;\n\n\t\t\t\tlet cachedData = await this.cacheService.Get(cacheKey, null);\n\n\t\t\t\tif (cachedData != null && cachedData != \"\" && this._useCache) {\n\t\t\t\t\tresolve(cachedData);\n\t\t\t\t}\n\t\t\t\telse {\n\n\t\t\t\t\tawait fetch(this._getReceiptDetailsWithProductsArray, {\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\t\t\t\"billId\": receiptid\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\t\treturn res.json();\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (data) {\n\t\t\t\t\t\t\t// Cleans up the response data\n\t\t\t\t\t\t\t_this.cacheService.Store(cacheKey, data);\n\t\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tGetDrugStoresData(countryId) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tvar apiURl = this._getDrugStoresByCountryId + countryId;\n\n\t\t\t\taxios(apiURl,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (response) {\n\n\t\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\t\tresolve({ result: true, data: response.data.response.details.usertypes, message: \"\" });\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve({ result: false, data: response.data, message: \"Error al traer los datos.\" });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tGetAboxProductList(countryId) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tvar apiURl = this._getAboxProductList + countryId;\n\n\t\t\t\taxios(apiURl,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (response) {\n\n\t\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\t\tresolve({ result: true, data: response.data.response.details.drugs, message: \"\" });\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve({ result: false, data: response.data, message: \"Error al traer los datos.\" });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tGetNonAbbotProductList(countryid) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\ttry {\n\t\t\t\t// console.log('Country Id:',countryid)\n\t\t\t\t// console.log('Search:',searchtext)\n\t\t\t\tvar apiURl = this._getNonAboxProductList;\n\t\t\t\tlet _this = this;\n\t\t\t\tlet cacheKey = this.cacheNonAbbotProducts;\n\n\t\t\t\tlet cachedData: any = [];\n\t\t\t\tcachedData = await this.cacheService.Get(cacheKey, null);\n\n\t\t\t\tif (cachedData != null && cachedData != \"\" && this._useCache) {\n\t\t\t\t\tconsole.log('From Cache')\n\t\t\t\t\tresolve(cachedData);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\taxios(apiURl,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\"countryid\": countryid,\n\t\t\t\t\t\t\t\t\"searchtext\": ''\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (response) {\n\n\t\t\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\t\t\tlet cleanedData = response.data.data.products;\n\t\t\t\t\t\t\t\t_this.cacheService.Store(cacheKey, cleanedData);\n\t\t\t\t\t\t\t\tresolve({ result: true, data: cleanedData, message: \"\" });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresolve({ result: false, data: response.data, message: \"Error al traer los datos.\" });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t}\n\n\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\t// Receipt Operations\n\n\tApproveReceipt(receiptid, updateuser, products) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\t// Builds the list of products\n\t\t\t\tlet _productsToApprove = [];\n\t\t\t\tproducts.forEach(p => {\n\t\t\t\t\tlet newP = new ReceiptApprovalCallCenterRequest_Product(p[\"idProducto\"], p[\"qty\"], p[\"price\"]);\n\t\t\t\t\t_productsToApprove.push(newP);\n\t\t\t\t});\n\n\t\t\t\t// Builds the request object\n\t\t\t\tlet requestObject = new ReceiptApprovalCallCenterRequest(receiptid, updateuser, \"\", _productsToApprove);\n\t\t\t\tlet url = `${environment.nodeServer}${environment.purchasesBase}/approve_callcenter`;\n\t\t\t\tlet body = JSON.stringify(requestObject);\n\t\t\t\tlet token = `Bearer ${this.authorizationToken}`;\n\n\t\t\t\t// console.log(\"URL: \", url);\n\t\t\t\t// console.log(\"Body: \", body);\n\t\t\t\t// console.log(\"Token:\", token);\n\n\t\t\t\tfetch(\n\t\t\t\t\turl,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t'Authorization': token\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: body\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.then(response => response.json())\n\t\t\t\t\t.then(data => {\n\t\t\t\t\t\tresolve({ result: true, message: \"\", data: data });\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err) => {\n\t\t\t\t\t\tconsole.log(\"Catched Error.\");\n\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\treject({ result: false, message: \"\", data: err });\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject({ result: false, message: \"\", data: err });\n\t\t\t}\n\t\t});\n\t}\n\n\tRejectReceipt(receiptid, updateuser, reason) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\t// Builds the request object\n\t\t\t\tlet requestObject = new ReceiptRejectionRequest(receiptid, updateuser, reason, 0);\n\n\t\t\t\tfetch(this._rejectReceiptURL, {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(requestObject)\n\t\t\t\t})\n\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\treturn res.json();\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (data) {\n\t\t\t\t\t\tresolve({ result: true, message: \"\", data: data });\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err) => {\n\t\t\t\t\t\treject({ result: false, message: \"\", data: err });\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject({ result: false, message: \"\", data: err });\n\t\t\t}\n\t\t});\n\t}\n\n\tUpdateReceipt(updateObject) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tlet response = await fetch(this._approveReceiptServiceURL, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify(updateObject)\n\t\t\t})\n\t\t\t\t.then(function (res) {\n\t\t\t\t\treturn res.json();\n\t\t\t\t})\n\t\t\t\t.then(function (data) {\n\t\t\t\t\tresolve(data);\n\t\t\t\t})\n\t\t\t\t.catch((err) => {\n\t\t\t\t\tconsole.log(\"Fetch Error:\", err);\n\t\t\t\t});\n\t\t})\n\t}\n\n\tUpdateOCRAnalysis(receiptid, urlToProcess, ocrAnalysis) {\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tif (this.authorizationToken === \"\") {\n\t\t\t\treject(\"Invalid authorization token.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvar apiURl = this._updateOCRAnalysis;\n\n\t\t\t\taxios(apiURl,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\"billId\": receiptid,\n\t\t\t\t\t\t\t\"urlToProcess\": urlToProcess,\n\t\t\t\t\t\t\t\"ocrAnalysis\": ocrAnalysis\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (response) {\n\n\t\t\t\t\t\tresolve({ result: true, data: response.data.response, message: \"\" });\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tUpdateCRMReceipt(updateObject, encodedToken) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\ttry {\n\t\t\t\t// console.log(\"URL:\", this._updateCRMFactura);\n\t\t\t\t// console.log(\"Body:\", JSON.stringify(updateObject));\n\t\t\t\t// console.log(\"Token:\", encodedToken);\n\n\t\t\t\tawait fetch(this._updateCRMFactura, {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t'Authorization': encodedToken\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(updateObject)\n\t\t\t\t})\n\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\treturn res.json();\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (data) {\n\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err) => {\n\t\t\t\t\t\tconsole.log(\"Fetch Error:\", err);\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t})\n\t}\n\n\tUpdateReceiptImage(file, encodedToken) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tvar data = new FormData()\n\t\t\t\tdata.append('samplefile', file);\n\t\t\t\tdata.append('token', encodedToken);\n\t\t\t\tawait fetch(this._updateCRMFacturaImage, {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t// mode:'no-cors',\n\t\t\t\t\theaders: {},\n\t\t\t\t\tbody: data\n\t\t\t\t})\n\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\tconsole.log(res);\n\t\t\t\t\t\treturn res.json();\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (data) {\n\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err) => {\n\t\t\t\t\t\tconsole.log(\"Fetch Error:\", err);\n\t\t\t\t\t});\n\n\t\t\t\tresolve({});\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t})\n\t}\n\n\tasync NullifyReceipt(receiptid) {\n\t\ttry {\n\t\t\tlet token = `Bearer ${this.authorizationToken}`;\n\t\t\tlet url = `${environment.nodeServer}${environment.purchasesBase}/nullify_callcenter`;\n\t\t\treturn fetch(\n\t\t\t\turl,\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t'Authorization': token\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify({ idFactura: receiptid })\n\t\t\t\t}\n\t\t\t)\n\t\t\t\t.then(response => response.json())\n\t\t\t\t.then(data => {\n\t\t\t\t\treturn ({ result: true, message: \"\", data: data });\n\t\t\t\t})\n\t\t\t\t.catch((err) => {\n\t\t\t\t\tconsole.log(\"Catched Error.\");\n\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\treturn ({ result: false, message: \"\", data: err });\n\t\t\t\t});\n\t\t}\n\t\tcatch (err) {\n\t\t\treturn ({ result: false, message: \"Error while nullifying the receipt.\", data: err });\n\t\t}\n\t}\n\n\t// Search Methods\n\n\tFactura_Search_ProcessSearch(searchObject: Factura_Search_Object) {\n\t\tconsole.log(searchObject);\n\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tvar apiURl = \"http://localhost:9008/lectorfacturas/facturas_search\";\n\n\t\t\t\tlet response = await fetch(apiURl, {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(searchObject)\n\t\t\t\t})\n\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\treturn res.json();\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (data) {\n\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\n\t}\n\n\tasync Factura_Search_GetAuthToken(id_factura, callcenteruserid) {\n\t\t// Gets the token.\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\taxios('http://localhost:9000/authcrmocr',\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t'Authorization': 'Bearer ' + this.authorizationToken\n\t\t\t\t\t},\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t\"user\": \"aboxocradmin\",\n\t\t\t\t\t\t\"password\": \"4b0x0cr4dm1n\",\n\t\t\t\t\t\t\"receiptid\": id_factura,\n\t\t\t\t\t\t\"operatoruserid\": callcenteruserid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t\t.then(function (res) {\n\t\t\t\t\treturn res;\n\t\t\t\t})\n\t\t\t\t.then(function (response) {\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tresolve({ result: true, data: response.data, message: \"\" });\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve({ result: false, data: response.data, message: \"Error al traer los datos.\" });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t});\n\t}\n\n\t// Non Abbott Products\n\n\tasync get_non_abbott_products(country) {\n\t\ttry {\n\t\t\tvar apiURl = `${environment.nodeServer}${environment.receiptsBase}/ocr/imsproducts`; // `http://localhost:9008/ocr/imsproducts`; // \n\n\t\t\tlet response = await axios(apiURl,\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t'Authorization': `Bearer ${environment.api_token}`\n\t\t\t\t\t},\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t\"country\": country,\n\t\t\t\t\t\t\"search_text\": \"\",\n\t\t\t\t\t\t\"cache_reset\": 1\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// Processes the response\n\t\t\tlet response_body = response.data;\n\t\t\tif (!response_body.result) {\n\t\t\t\treturn {\n\t\t\t\t\tresult: false,\n\t\t\t\t\tmessage: response_body.message,\n\t\t\t\t\tdata: response_body.data\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\n\t\t\t\t// Extracts the products from the response\n\t\t\t\tlet products = response_body.data.data;\n\t\t\t\tlet count = response_body.data.count;\n\n\t\t\t\treturn {\n\t\t\t\t\tresult: true,\n\t\t\t\t\tmessage: \"\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcount: count,\n\t\t\t\t\t\tproducts: products\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\treturn {\n\t\t\t\tresult: false,\n\t\t\t\tmessage: \"\",\n\t\t\t\tdata: err\n\t\t\t}\n\t\t}\n\t}\n\n\t//Microsoft Dynamics Methods\n\tDynamicsUpdateReceipt(requestObject) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\n\t\t\t\t// Debug Logs\n\t\t\t\tlet url = `${environment.crmServer}/api/invoices/update`;\n\t\t\t\tlet token = `Bearer ${environment.dynamics_api_token}`\n\t\t\t\tlet body = JSON.stringify(requestObject);\n\n\t\t\t\t// console.log(\"Dynamics Update Service Call:\");\n\t\t\t\t// console.log(url);\n\t\t\t\t// console.log(token);\n\t\t\t\t// console.log(body);\n\n\t\t\t\tfetch(\n\t\t\t\t\turl,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t'Authorization': token\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: body\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.then(response => response.json())\n\t\t\t\t\t.then(data => {\n\t\t\t\t\t\tif (data.IsSuccessful) {\n\t\t\t\t\t\t\tresolve({ result: true, message: \"\", data: data });\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve({ result: false, message: \"\", data: data });\n\t\t\t\t\t\t}\n\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err) => {\n\t\t\t\t\t\tconsole.log(\"Catched Error.\");\n\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\treject({ result: false, message: \"\", data: err });\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\treject({ result: false, message: \"\", data: err });\n\t\t\t}\n\t\t});\n\t}\n\n\n\tasync validateLimitConsumptionMonthly(obj: LimitConsumption): Promise {\n\n\t\ttry {\n\n\n\n\t\t\tconst limitConsumptionUrl: string = this._getConsumptionLimitMonthlyUrl\n\t\t\tconst token = `Bearer ${environment.api_token}`;\n\t\t\tconst { data } = await axios(limitConsumptionUrl, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t'Authorization': token\n\t\t\t\t},\n\t\t\t\tdata: obj\n\t\t\t});\n\t\t\tconsole.log({ data })\n\t\t\treturn Promise.resolve(data);\n\n\t\t} catch (error) {\n\t\t\treturn Promise.reject({ result: false, message: \"\", data: error });\n\t\t}\n\t}\n\n\t//---\n\n\tasync validateLimitConsumptionYearly(obj: LimitConsumption): Promise {\n\n\t\ttry {\n\n\t\t\tconst limitConsumptionUrl: string = this._getConsumptionLimitYearlyUrl\n\t\t\tconst token = `Bearer ${environment.api_token}`;\n\t\t\tconst { data } = await axios(limitConsumptionUrl, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t'Authorization': token\n\t\t\t\t},\n\t\t\t\tdata: obj\n\t\t\t});\n\t\t\treturn Promise.resolve(data);\n\n\t\t} catch (error) {\n\t\t\treturn Promise.reject({ result: false, message: \"\", data: error });\n\t\t}\n\t}\n\n\n\t// Process the receipt:\n\t// - Resizes the image and stores it within the processed folder\n\t// - Reades the text within the image\n\t// - Compares the words found with the list of products available\n\t// - Marks any word with potential matches\n}","import { Injectable } from \"@angular/core\";\n\n@Injectable({ providedIn: 'root', })\nexport class SharedDataService {\n shared_data: any = [];\n\n fac_editor_user: string = \"\";\n fac_country: string = \"\";\n fac_details: any = {};\n fac_nap_products: any = [];\n fac_ap_products: any = [];\n fac_farmacias: any = [];\n fac_token: string = \"\";\n fac_ocr_details: any = {};\n\n fac_image_canvas: any = undefined;\n\n constructor() {}\n}","import { Injectable } from '@angular/core';\nimport { createInject } from '@angular/compiler/src/core';\nimport { CATCH_STACK_VAR } from '@angular/compiler/src/output/output_ast';\n\n@Injectable({ providedIn: 'root', })\nexport class TokenService {\n\n\tconstructor() {\n }\n \n Decode(_encodedtoken) {\n\n // console.log(\"Encoded Token: \", _encodedtoken);\n\n try {\n var decodedData = atob(_encodedtoken);\n\n if (decodedData.indexOf(\"/\") > 0) {\n let s = decodedData.split(\"/\");\n let response = {\n result: true,\n message: \"Token válido.\",\n data: {\n receiptid: s[0],\n token: s[1],\n user: s[2]\n }\n }\n return response;\n } else {\n return {\n result: false,\n message: \"Token inválido.\",\n data: {}\n }\n }\n }\n catch(err) {\n console.log(\"Error: \", err);\n }\n }\n}","import { Injectable } from '@angular/core';\n@Injectable({ providedIn: 'root', })\nexport class Utilities {\n\n\tconstructor() {\n }\n \n public Replace(stringToAnalize, charToFind, charReplaceValue) {\n if (stringToAnalize.indexOf(charToFind) >= 0) {\n stringToAnalize = stringToAnalize.replace(charToFind, charReplaceValue);\n return this.Replace(stringToAnalize, charToFind, charReplaceValue);\n }\n else {\n return stringToAnalize;\n }\n }\n\n public JSONDateParse(jsondate: string, defaultvalue: string) {\n let d: Date;\n if (jsondate === undefined || jsondate === null) return defaultvalue;\n d = new Date(jsondate);\n return `${d.getFullYear()}-${String(d.getMonth()+1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`;\n }\n\n public is_object_empty(empty) {\n if (Object.keys(empty).length === 0 && empty.constructor === Object) return true;\n return false;\n }\n}","export const environment = {\n production: true,\n nodeServer: 'https://apipub.aboxplan.com',\n crmServer: 'https://aboxcrmapi.aboxplan.com',\n env: 'prod',\n receiptsBase: '/receipts',\n purchasesBase: '/purchases',\n generalBase: '/general',\n crmBase: '/crm',\n api_token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImxveW1hcmthcGkiLCJhcGkiOnRydWUsImlhdCI6MTYwNTA3NjE0NX0.ADfqKywDLWCC5TZd18Mix7_GQPFwwEZJvtFa_roafL8',\n dynamics_api_token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6ImFkbWluIiwibmJmIjoxNjI0OTM0ODc2LCJleHAiOjE2MjQ5Mzg0NzYsImlhdCI6MTYyNDkzNDg3NiwiaXNzIjoiaHR0cHM6Ly9hYm94Y3JtYXBpLmFib3hwbGFuLmNvbSIsImF1ZCI6Imh0dHBzOi8vYWJveGNybWFwaS5hYm94cGxhbi5jb20vIn0.m9cHpEZPQCHxmy5RJqFSVPZLTWlD2zlZU1Ohndcb6ic'\n};\n\n\n","import './polyfills';\n\nimport {platformBrowserDynamic} from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .then(ref => {\n // Ensure Angular destroys itself on hot reloads.\n if (window['ngRef']) {\n window['ngRef'].destroy();\n }\n window['ngRef'] = ref;\n\n // Otherwise, log the boot error\n })\n .catch(err => console.error(err));\n","/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\n * file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\n// import 'core-js/es6/symbol';\n// import 'core-js/es6/object';\n// import 'core-js/es6/function';\n// import 'core-js/es6/parse-int';\n// import 'core-js/es6/parse-float';\n// import 'core-js/es6/number';\n// import 'core-js/es6/math';\n// import 'core-js/es6/string';\n// import 'core-js/es6/date';\n// import 'core-js/es6/array';\n// import 'core-js/es6/regexp';\n// import 'core-js/es6/map';\n// import 'core-js/es6/set';\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js'; // Run `npm install --save classlist.js`.\n\n/** IE10 and IE11 requires the following to support `@angular/animation`. */\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\n\n\n/** Evergreen browsers require these. **/\nimport 'core-js/es6/reflect';\nimport 'core-js/es7/reflect';\n\n\n/** ALL Firefox browsers require the following to support `@angular/animation`. **/\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\n\n\n\n/***************************************************************************************************\n * Zone JS is required by Angular itself.\n */\nimport 'zone.js/dist/zone'; // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n\n/**\n * Date, currency, decimal and percent pipes.\n * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10\n */\n// import 'intl'; // Run `npm install --save intl`."],"sourceRoot":""}