{"version":3,"mappings":"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","names":["layoutFeature","createFeatureSelector","LAYOUT_FEATURE_KEY","selectLoading","createSelector","state","product_details","isLoading","selectResponse","data","shortText","summaryText","split","slice","join","showDescriptionSummary","selectVariations","r","a","_a","_b","variations","d","c","_c","_d","selectAttributes","dimensions","productAttributes","selectShippings","allowedShippingTypes","selectShippingType","shippingType","selectAttibutes","attributes","selectQuantity","currentKey","o","quantity","SelectLocationComponent","constructor","modal","store","this","initProvinces","FormControl","Validators","ngOnInit","item","text","code","selectLocation","locationType","LocationTypeEnum","locationForm","invalid","dispatch","locationsActions","locations","close","onChange","$event","location","setValue","dirty","markAsDirty","document","body","click","i0","selectors","ctx","ProductAttributesComponent","router","attributes$","select","origin","homeDetailsSelector","getPrice","attribute","value","disable","actions","attr","attrId","id","attrText","valId","valText","active","ngOnDestroy","ProductDetailsDlgComponent","PushToCartComponent","modalService","storageService","urlService","metaService","titleService","route","toastr","platformId","super","background","contactsActions","payload","pageIndex","pageSize","isLoadingPushToCart$","cartSelectors","location$","locationSelectors","provider$","searchSelectors","selectedContact$","contactSelectors","pagingStrategy","data$","detailsSelectors","isLoading$","shipping$","quantity$","isPlatformBrowser","window","scroll","provider","subscribe","result","console","log","success","title","l","name","updateMetaTags","changeUrl","url","footer","emit","getShakeAnimation","transform","getShakeAnimationTiming","duration","iterations","validateAttr","attibutes","pipe","take","toPromise","info","pushToCart","product","length","matched","find","p","targetAttrElement","nativeElement","animate","error","toLowerCase","shipping","targetElement","availability","attributesToShow","map","forEach","itemImg","$","eq","flyToElement","ViewTypeEnum","showActive","count","i","removeClass","addClass","isAuthenticated","modalRef","open","ContactsComponent","size","componentInstance","firstContact","finally","loadContacts","goToDetails","_subscriptions","x","unsubscribe","cancelRequest","DOCUMENT","PLATFORM_ID","ProductShippingComponent","shippings$","selectedShippingType$"],"sources":["webpack:///src/app/market-shein/state/product-detail.selector.ts","webpack:///src/app/marketplace/locations/select-location/select-location.component.ts","webpack:///src/app/marketplace/locations/select-location/select-location.component.html","webpack:///src/app/marketplace/products/product-attributes/product-attributes.component.html","webpack:///src/app/marketplace/products/product-attributes/product-attributes.component.ts","webpack:///src/app/marketplace/products/product-details-dlg/product-details-dlg.component.html","webpack:///src/app/marketplace/products/product-details-dlg/product-details-dlg.component.ts","webpack:///src/app/marketplace/products/product-shipping/product-shipping.component.html","webpack:///src/app/marketplace/products/product-shipping/product-shipping.component.ts"],"sourcesContent":["import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { LAYOUT_FEATURE_KEY } from '@app/marketplace/storage/storage.state';\r\nimport * as fromStorage from '@app/marketplace/storage/storage.state';\r\nimport {productsFeature} from '@app/marketplace/products/state/product-details/details-selectors';\r\nimport {AppStorageState} from '@app/marketplace/storage/storage.state';\r\nimport {AppState} from '@app/marketplace/app.state';\r\n\r\nexport const layoutFeature = createFeatureSelector<fromStorage.AppStorageState>(LAYOUT_FEATURE_KEY);\r\nexport const selectLoading = createSelector(\r\n  layoutFeature,\r\n  (state: AppStorageState) => state.product_details.isLoading\r\n);\r\n/*  export const  selectResponse = createSelector(\r\n productsFeature,\r\n (state: AppState) => state.product_details.data\r\n); */\r\n\r\nexport const selectResponse = createSelector(\r\n  layoutFeature,\r\n  (state: AppStorageState) => {\r\n    if (state.product_details.data.data) {\r\n      if (state.product_details.data.data.shortText) {\r\n        state.product_details.data.data['summaryText'] = state.product_details.data.data.shortText.split(' ').slice(0, 40).join(' ') + '...';\r\n        state.product_details.data.data['showDescriptionSummary'] = true;\r\n      } else {\r\n        state.product_details.data.data['summaryText'] = '';\r\n        state.product_details.data.data['showDescriptionSummary'] = false;\r\n      }\r\n    }\r\n    return state.product_details.data;\r\n  }\r\n);\r\n\r\nexport const selectVariations = createSelector(\r\n  layoutFeature,\r\n  (state: AppStorageState) => {\r\n    if (state.product_details.data?.data?.variations) {\r\n      return state.product_details.data?.data?.variations;\r\n    } else { return []; }\r\n  }\r\n);\r\nexport const selectDimensions = createSelector(\r\n  selectVariations,\r\n  (state: any) =>{\r\n    if (state.dimensions) {\r\n      return state.dimensions;\r\n    } else { return []; }\r\n  }\r\n);\r\n\r\nexport const selectAttributes = createSelector(\r\n  layoutFeature,\r\n  (state: AppStorageState) => {\r\n    if (state.product_details.data?.data?.productAttributes) {\r\n      return state.product_details.data?.data?.productAttributes;\r\n    } else { return []; }\r\n  }\r\n);\r\n\r\nexport const  selectShippings = createSelector(\r\n  layoutFeature,\r\n  (state: AppStorageState) => state.product_details.data.data.allowedShippingTypes\r\n);\r\nexport const  selectShippingType = createSelector(\r\n  layoutFeature,\r\n  (state: AppStorageState) =>  state.product_details.shippingType\r\n);\r\nexport const  selectAttibutes = createSelector(\r\n  layoutFeature,\r\n  (state: AppStorageState) =>  state.product_details.attributes\r\n);\r\n\r\nexport const selectCurrentKey = createSelector(\r\n  selectVariations,\r\n  (state: any) => {\r\n    if (state.currentKey) {\r\n      return state.currentKey;\r\n    }\r\n    else { return ''; }\r\n  }\r\n);\r\nexport const  selectQuantity = createSelector(\r\n  layoutFeature,\r\n  (state: AppStorageState) =>  state?.product_details?.quantity ?? 1\r\n);\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {initProvinces} from '@app/marketplace/locations/locations';\r\nimport {MunicipalityModel} from '@app/models/market-supplier/supplier-request.model';\r\nimport {FormControl, Validators} from '@angular/forms';\r\nimport {Observable} from 'rxjs';\r\nimport {LocationTypeEnum} from '@app/marketplace/shared/_models/location.model';\r\nimport {Store} from '@ngrx/store';\r\nimport * as locationSelectors from '@app/marketplace/locations/state/locations-selectors';\r\nimport * as locationsActions from '@app/marketplace/locations/state/locations-actions';\r\nimport {DefaultTreeviewI18n, TreeviewConfig, TreeviewI18n, TreeviewItem, TreeviewPipe} from 'ngx-treeview';\r\nimport {CustomTreeviewI18n} from '@app/services/treeview-I18n.service';\r\n@Component({\r\n  selector: 'app-select-location',\r\n  templateUrl: './select-location.component.html',\r\n  styleUrls: ['./select-location.component.css'],\r\n})\r\nexport class SelectLocationComponent implements OnInit {\r\n\r\n  item: MunicipalityModel;\r\n  locations = initProvinces;\r\n  locationForm = new FormControl(0, Validators.required);\r\n\r\n  constructor(public modal: NgbActiveModal, private store: Store<any>) {\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.item = {text: '', code: 0};\r\n  }\r\n\r\n  selectLocation(locationType: LocationTypeEnum = LocationTypeEnum.Municipality) {\r\n    if (this.locationForm.invalid) {\r\n      return;\r\n    }\r\n    this.store.dispatch(locationsActions.UpdatedLocation({ locationType: locationType, locations: [this.item.code] }));\r\n    this.modal.close();\r\n  }\r\n\r\n  onChange($event, location = true) {\r\n    if (location) {\r\n      this.locationForm.setValue(this.item.code);\r\n      if (!this.locationForm.dirty) {\r\n        this.locationForm.markAsDirty();\r\n      }\r\n    }\r\n    document.body.click();\r\n  }\r\n}\r\n","<div class=\"modal-header\">\r\n  <h6 class=\"modal-title \"><i class=\"fa fa-map-marker text-primary mr-2\"></i>Elige una ubicación</h6>\r\n  <span class=\"cursor-pointer\" (click)=\"modal.dismiss()\"><i class=\"fa fa-times text-secondary\"></i></span>\r\n</div>\r\n<div class=\"modal-body\">\r\n  <div class=\"row\" id=\"select-location\">\r\n    <div class=\"col-12\">\r\n      <label class=\"mb-2\">Provincia/Municipio*</label>\r\n      <app-dropdown-treeview-select [class]=\"'select-location'\" [items]=\"locations\"\r\n                                    [(value)]=\"item.code\" (valueChange)=\"onChange($event)\">\r\n      </app-dropdown-treeview-select>\r\n    </div>\r\n  </div>\r\n</div>\r\n<div class=\"modal-footer\">\r\n  <button [disabled]=\"locationForm.invalid || locationForm.pristine\" type=\"button\" class=\"btn btn-primary\" data-dismiss=\"modal\"\r\n          (click)=\"selectLocation()\">Aplicar\r\n  </button>\r\n</div>\r\n","<div *ngIf=\"(attributes$ | async).length>0\" style=\"padding-top: 12px\" class=\"pro-tag\">\r\n  <!-- <hr/> -->\r\n  <ng-container *ngFor=\"let attribute of attributes$ | async; let index = index;\">\r\n    <strong>\r\n      {{attribute.text}}\r\n    </strong>\r\n    <div class=\"box\">\r\n      <ng-container *ngFor=\"let item of attribute.values;\">\r\n\r\n        <div [ngbTooltip]=\"item.text\" (click)=\"getPrice(attribute,item)\"  [class.active]=\"item.active\" [class.disable]=\"item.disable\" class=\"item\">\r\n          <span style=\"max-width: 70px;\">\r\n            {{item.value}}\r\n          </span>\r\n        </div>\r\n\r\n      </ng-container>\r\n    </div>\r\n  </ng-container>\r\n</div>\r\n\r\n\r\n","\r\nimport {Component,Input,OnDestroy,OnInit,PLATFORM_ID,ViewChild,} from \"@angular/core\";\r\nimport { select, Store } from \"@ngrx/store\";\r\nimport { Router } from \"@angular/router\";\r\nimport { _seoContent } from \"@app/marketplace/seo-content/utils\";\r\nimport { Observable } from \"rxjs\";\r\nimport * as selectors from \"../state/product-details/details-selectors\";\r\nimport * as actions from \"../state/product-details/details-actions\";\r\nimport { take } from \"rxjs/operators\";\r\nimport * as homeDetailsSelector from '@app/market-shein/state/product-detail.selector';\r\n\r\n@Component({\r\n  selector: \"app-product-attributes\",\r\n  templateUrl: \"./product-attributes.component.html\",\r\n  styleUrls: [\"./product-attributes.component.css\"],\r\n})\r\nexport class ProductAttributesComponent  implements OnInit, OnDestroy {\r\n  @Input() provider:number;\r\n  @Input() origin: string;\r\n  attributes$ :Observable<any>;\r\n  constructor(private store: Store<any>,private router: Router,) {\r\n  }\r\n  ngOnInit(): void {\r\n    this.attributes$ = this.store.select(this.origin === 'home' ? homeDetailsSelector.selectAttributes : selectors.selectAttributes);\r\n  }\r\n\r\n  public async getPrice(attribute:any,value: any) {\r\n    if(value.disable) return;\r\n    var attrId:string=attribute.id;\r\n    var attrText:string=attribute.text;\r\n    var valId:string=value.id;\r\n    var valText:string=value.value;\r\n    var active:boolean=value.active;\r\n    this.store.dispatch(actions.SetActiveAttributeValue({attr:{attrId,attrText,valId,valText},active}));\r\n  }\r\n  ngOnDestroy(): void {;}\r\n}\r\n","<div class=\"modal-header\">\r\n  <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modal.dismiss()\">\r\n    <span aria-hidden=\"true\">&times;</span>\r\n  </button>\r\n</div>\r\n<div class=\"modal-body\">\r\n\r\n  <!-- Loader -->\r\n  <ng-container *ngIf=\"isLoading$ | async ; else template\">\r\n    <section class=\"sg-product\">\r\n      <div class=\"container\">\r\n        <div class=\"row\">\r\n          <div class=\"col-md-12\">\r\n            <div class=\"row\">\r\n              <div class=\"col-md-3\">\r\n                <div class=\"sg-img\">\r\n                  <!-- Tab panes -->\r\n                  <div style=\"border: none !important;\" class=\"tab-content\">\r\n\r\n                    <ngx-skeleton-loader animation=\"progress\" animation=\"true\" appearance=\"line\" [theme]=\"theme\">\r\n                    </ngx-skeleton-loader>\r\n\r\n                  </div>\r\n\r\n                </div>\r\n              </div>\r\n              <div class=\"col-md-4\" style=\"border-right: 1px solid #e5e5e5!important;\">\r\n                <div class=\"sg-content\">\r\n\r\n                  <div class=\"pro-name\">\r\n                    <ngx-skeleton-loader animation=\"progress\" appearance=\"line\"\r\n                      [theme]=\"{ margin: '5px 0 0 0px', width: '300px', height: '30px',background: '#f1f1f1'}\">\r\n                    </ngx-skeleton-loader>\r\n                  </div>\r\n\r\n                  <div class=\"pro-tag\">\r\n                    <ngx-skeleton-loader animation=\"progress\" appearance=\"line\"\r\n                      [theme]=\"{ margin: '5px 0 0 0px', width: '250px', height: '60px',background: '#f1f1f1'}\">\r\n                    </ngx-skeleton-loader>\r\n                  </div>\r\n\r\n                  <div style=\"padding-top: 5px;\" class=\"pro-rating\">\r\n                    <ngx-skeleton-loader animation=\"progress\" appearance=\"line\"\r\n                      [theme]=\"{ margin: '5px 0 0 0px', width: '150px', height: '20px',background: '#f1f1f1'}\">\r\n                    </ngx-skeleton-loader>\r\n                  </div>\r\n\r\n                  <div class=\"colo-siz\">\r\n\r\n                    <div class=\"pro-btns\">\r\n                      <ngx-skeleton-loader animation=\"progress\" appearance=\"line\"\r\n                        [theme]=\"{ margin: '5px 0 0 0px', width: '110px', height: '30px',background: '#f1f1f1'}\">\r\n                      </ngx-skeleton-loader>\r\n                    </div>\r\n\r\n                  </div>\r\n\r\n                </div>\r\n              </div>\r\n              <div class=\"col-md-5\">\r\n                <div class=\"sg-content\">\r\n\r\n                  <div class=\"pro-tag\">\r\n                    <ngx-skeleton-loader animation=\"progress\" appearance=\"line\"\r\n                      [theme]=\"{ margin: '5px 0 0 0px', width: '300px', height: '30px',background: '#f1f1f1'}\">\r\n                    </ngx-skeleton-loader>\r\n                  </div>\r\n\r\n                  <div style=\"padding-top: 3px\" class=\"pro-tag\">\r\n                    <ngx-skeleton-loader animation=\"progress\" appearance=\"line\"\r\n                      [theme]=\"{ margin: '5px 0 0 0px', width: '250px', height: '20px',background: '#f1f1f1'}\">\r\n                    </ngx-skeleton-loader>\r\n                  </div>\r\n\r\n                  <div style=\"padding-top: 3px\" class=\"pro-tag\">\r\n                    <ngx-skeleton-loader animation=\"progress\" appearance=\"line\"\r\n                      [theme]=\"{ margin: '5px 0 0 0px', width: '240px', height: '20px',background: '#f1f1f1'}\">\r\n                    </ngx-skeleton-loader>\r\n                  </div>\r\n\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n\r\n        </div>\r\n      </div>\r\n    </section>\r\n  </ng-container>\r\n  <!-- End Loader -->\r\n\r\n  <ng-template #template>\r\n    <div *ngIf=\"(isLoadingPushToCart$ | async)\" class=\"progress-bar progress-bar-striped progress-bar-animated\"\r\n      style=\"width:100%; height: 5px;\"></div>\r\n    <section class=\"sg-product\">\r\n      <div *ngIf=\"(data$ | async).data as product\" class=\"container\">\r\n        <div class=\"row\">\r\n          <div class=\"col-md-12 col-sm-12 col-xs-12\">\r\n            <div class=\"row\">\r\n              <div class=\"col-md-5 col-sm-12 col-xs-12\">\r\n                <div class=\"sg-img\">\r\n\r\n                  <div id=\"{{product.code}}\" class=\"tab-content\">\r\n\r\n                    <ngx-skeleton-loader [hidden]=\"product.loaded\" animation=\"progress\" appearance=\"line\"\r\n                      [theme]=\"theme\">\r\n                    </ngx-skeleton-loader>\r\n\r\n                    <ng-container *ngFor=\"let img of product.pictures; let index = index;\">\r\n                      <div [hidden]=\"!product.loaded\" id=\"previewImg{{index}}\"\r\n                        [ngClass]=\"index==0 ? 'tab-pane active' : 'tab-pane'\" role=\"tabpanel\">\r\n\r\n                        <ng-container *ngIf=\"img.previewUrl.length>0; else withoutUrl\">\r\n                          <img style=\"cursor: pointer !important; width:100%\" [hidden]=\"!product.loaded\"\r\n                            class=\"img-fluid pict\" src=\"{{img.imageUrl}}\" (load)=\"product.loaded=true\">\r\n                        </ng-container>\r\n                        <ng-template #withoutUrl>\r\n                          <img class=\"img-fluid\" src=\"assets/xemart/images/notImg.png\">\r\n                        </ng-template>\r\n\r\n                      </div>\r\n                    </ng-container>\r\n\r\n\r\n                    <div class=\"nav d-flex\" style=\"padding: 5px;\">\r\n\r\n                      <a *ngFor=\"let img of product.pictures; let index = index;\" class=\"nav-item nav-link mx-1\"\r\n                        data-toggle=\"tab\" href=\"javascript:;\" (click)=\"showActive(index,product.pictures.length)\">\r\n                        <img id=\"itemImg{{index}}\" src=\"{{img.imageUrl}}\" alt=\"\">\r\n                      </a>\r\n                    </div>\r\n                  </div>\r\n\r\n                </div>\r\n\r\n              </div>\r\n              <div class=\"col-md-7 col-sm-12 col-xs-12\" style=\"border-right: 1px solid #e5e5e5!important;\">\r\n                <div class=\"sg-content\">\r\n\r\n                  <div class=\"pro-name\">\r\n                    <h1>{{product.name}}</h1>\r\n                  </div>\r\n\r\n                  <div class=\"pro-tag\">\r\n                    <ul class=\"list-unstyled list-inline\">\r\n                      <li class=\"list-inline-item\">\r\n                        <a\r\n                          routerLink=\"/market/tiendas-asociadas/{{product.supplierCode}}\">{{product.supplierLinkToShow}}</a>\r\n                      </li>\r\n                    </ul>\r\n\r\n                    <p *ngIf=\"product.summaryText && product.showDescriptionSummary\" style=\"max-width: 550px;\"\r\n                      align=\"justify\" class=\"t-heading pr-md-4\">\r\n                      {{product.summaryText}}<span class=\"show-more cursor-pointer\"\r\n                        (click)=\"product.showDescriptionSummary = false\"> Ver más</span>\r\n                    </p>\r\n                    <p *ngIf=\"!product.summaryText || (product.summaryText && !product.showDescriptionSummary)\"\r\n                      style=\"max-width: 550px;padding-right: 20px;\" align=\"justify\" class=\"t-heading\">\r\n                      {{product.shortText}}<span class=\"show-more cursor-pointer\" *ngIf=\"product.summaryText\"\r\n                        (click)=\"product.showDescriptionSummary = true\"> Ver menos</span>\r\n                    </p>\r\n\r\n                  </div>\r\n\r\n                  <div *ngIf=\"product.grossWeightToShow.length>0\">\r\n                    <img src=\"assets/icon_peso minimo.svg\" style=\"width: 20px;margin-bottom: 10px;\">\r\n                    <span style=\"font-weight: bold;font-size: 14px;color: #555;letter-spacing: .2px;\">\r\n                      {{product.grossWeightToShow}}\r\n                    </span>\r\n                  </div>\r\n\r\n                  <div *ngIf=\"product.rating>0\" style=\"padding-top: 5px;\" class=\"pro-rating\">\r\n                    <ul title=\"{{product.rating}}\" [innerHtml]=\"product.rating | start\"\r\n                      class=\"list-unstyled list-inline\"></ul>\r\n                  </div>\r\n\r\n                  <div class=\"pro-price\">\r\n                    <ul class=\"list-unstyled list-inline price\">\r\n                      <li class=\"list-inline-item\">{{product.priceToShow}}</li>\r\n                      <li class=\"list-inline-item\">{{product.oldPriceToShow}}</li>\r\n                    </ul>\r\n\r\n                  </div>\r\n\r\n                  <div class=\"colo-siz\">\r\n                    <div class=\"details-actions\">\r\n\r\n                      <div class=\"pro-btns\">\r\n                        <a disabled=\"disabled\" href=\"javascript:void(0)\" class=\"cart\" (click)=\"pushToCart(product)\">\r\n                          <span class=\"it-img\">\r\n                            <img src=\"assets/xemart/images/it-cart.png\" alt=\"\">\r\n                          </span>\r\n                          <span class=\"it-title\">\r\n                            Añadir al carrito\r\n                          </span>\r\n                        </a>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n\r\n                  <div #targetAttrElement>\r\n                    <app-product-attributes [origin]=\"origin\" [provider]=\"product.provider\">\r\n                    </app-product-attributes>\r\n                  </div>\r\n\r\n\r\n                  <p *ngIf=\"product.showAvailability && product.availabilityToShow?.value\"\r\n                  style=\"margin-top:15px; color:#555;border: 1px solid #e0e5f8;background-color: #e0e5f8;border-radius: 5px;padding: 3px; font-size: 14px;\">\r\n                 {{product.availabilityToShow.value}}\r\n              </p>\r\n\r\n                  <div #targetElement>\r\n                    <app-product-shipping [origin]=\"origin\">\r\n                    </app-product-shipping>\r\n                  </div>\r\n\r\n\r\n                  <div style=\"margin-top: 15px;\" *ngIf=\"provider==2\">\r\n                    <a style=\"cursor: pointer;color: #5677fc;\" href=\"javascript:void(0)\"\r\n                      (click)=\"goToDetails()\">\r\n                      Ver todos los detalles\r\n                      <i class=\"fa fa-arrow-circle-o-right\"></i>\r\n                    </a>\r\n                  </div>\r\n\r\n\r\n\r\n                </div>\r\n              </div>\r\n\r\n            </div>\r\n          </div>\r\n\r\n        </div>\r\n      </div>\r\n    </section>\r\n  </ng-template>\r\n\r\n\r\n</div>\r\n","import {Component,ElementRef,Inject,Input,OnDestroy,OnInit,PLATFORM_ID,ViewChild,} from \"@angular/core\";\r\nimport { Store, select } from \"@ngrx/store\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { Meta, Title } from \"@angular/platform-browser\";\r\nimport { UrlService } from \"@app/services/url.service\";\r\nimport { _seoContent } from \"@app/marketplace/seo-content/utils\";\r\nimport { Observable, Subscription, of } from \"rxjs\";\r\nimport * as actions from \"../state/product-details/details-actions\";\r\nimport * as detailsSelectors from '@app/marketplace/products/state/product-details/details-selectors';\r\nimport * as cartSelectors from '../state/shopping-cart/cart-selectors';\r\nimport * as locationSelectors from '@app/marketplace/locations/state/locations-selectors';\r\nimport * as contactSelectors from '../../checkout/state/contacts/contacts-selectors';\r\nimport { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\r\nimport { PushToCartComponent } from \"@app/marketplace/shared/_components/push-cart.component\";\r\nimport { NgbActiveModal, NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {SelectLocationComponent} from '@app/marketplace/locations/select-location/select-location.component';\r\nimport {StorageService} from '@app/services/storage.service';\r\nimport {ContactsComponent} from '@app/marketplace/checkout/contacts/contacts.component';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { take } from 'rxjs/operators';\r\nimport { ViewTypeEnum } from '@app/marketplace/core/enum/viewTypeEnum';\r\nimport * as searchSelectors from '@app/marketplace/products/state/product-search/search-selectors';\r\nimport {ContactOutputInterface} from '@app/marketplace/checkout/_models/contact.model';\r\nimport * as contactsActions from '@app/marketplace/checkout/state/contacts/contacts-actions';\r\nimport * as homeDetailsSelector from '@app/market-shein/state/product-detail.selector';\r\nimport { ProductAttribute } from \"../_models/product.interface\";\r\n@Component({\r\n  selector: \"app-product-details-dlg\",\r\n  templateUrl: \"./product-details-dlg.component.html\",\r\n  styleUrls: [\"./product-details-dlg.component.css\"],\r\n})\r\nexport class ProductDetailsDlgComponent extends PushToCartComponent implements OnInit, OnDestroy {\r\n  @Input() code: string;\r\n  @Input() provider: number;\r\n  @Input() origin: string;\r\n  @ViewChild(\"selectItems\", { static: false })\r\n  payload: any;\r\n  data$ :Observable<any>;\r\n  selectedShippingType$: Observable<any>;\r\n  shipping$: Observable<any>;\r\n  isLoading$ :Observable<any>;\r\n  isLoadingPushToCart$ :Observable<any>;\r\n  quantity$:Observable<number>;\r\n  theme = {'min-width': '253px','min-height' : '151px',background: '#f1f1f1'};\r\n  location$:Observable<any>;\r\n  provider$: Observable<any>;\r\n  protected _subscriptions: Subscription[] = [];\r\n  title = 'Cubatel Market | Tu tienda de envíos a Cuba';\r\n  description = '¡Somos el Amazon cubano! Descubre nuestras tiendas online para comprar en Cuba desde el exterior. Entregamos a domicilio en todas las provincias cubanas.';\r\n  keywords = 'tiendas online para envíos a cuba, amazon cubano, amazon en cuba, tiendas de envíos a cuba, tienda de envíos a cuba, envío a cuba online, tiendas online con envío a cuba, compras online en cuba desde el exterior, tiendas online en cuba para comprar desde el exterior, tiendas de envíos a cuba online, tiendas virtuales en cuba para comprar desde el exterior, compras online para cuba desde el exterior, tiendas online para comprar en cuba desde el exterior, compras desde el exterior para cuba';\r\n  product: any = {};\r\n  selectedContact$: Observable<ContactOutputInterface>;\r\n  @ViewChild('targetElement') targetElement: ElementRef;\r\n  @ViewChild('targetAttrElement') targetAttrElement: ElementRef;\r\n  constructor(\r\n    private store: Store<any>,\r\n    private modalService: NgbModal,\r\n    private storageService: StorageService,\r\n    private urlService: UrlService,\r\n    public modal: NgbActiveModal,\r\n    private metaService: Meta,\r\n    private titleService: Title,\r\n    private route: ActivatedRoute,\r\n    private router: Router,\r\n    private toastr: ToastrService,\r\n    @Inject(DOCUMENT) document: Document,\r\n    @Inject(PLATFORM_ID) private platformId\r\n  ) {\r\n     super(route,metaService,titleService,router);\r\n     this.isLoadingPushToCart$ = this.store.select(cartSelectors.selectIsLoading);\r\n     this.location$ = this.store.select(locationSelectors.selectLocation);\r\n     this.store.dispatch(actions.ResetQuantityAction());\r\n     this.provider$ = this.store.select(searchSelectors.selectProvider);\r\n     this.selectedContact$ = this.store.select(contactSelectors.selectDefaultContact);\r\n    this.payload = {\r\n      pageIndex: 1,\r\n      pageSize: 5,\r\n      pagingStrategy: 0,\r\n    };\r\n  }\r\n\r\n  increaseQuantity = () => this.store.dispatch(actions.IncreaseQuantityAction());\r\n  reduceQuantity = () => this.store.dispatch(actions.ReduceQuantityAction());\r\n\r\n  cancelRequest = () => this.store.dispatch(actions.CancelProductDetailsRequestAction());\r\n  ngOnInit(): void {\r\n    this.data$ = this.store.select(this.origin === 'home' ? homeDetailsSelector.selectResponse : detailsSelectors.selectResponse);\r\n    this.isLoading$ = this.store.select(this.origin === 'home' ? homeDetailsSelector.selectLoading : detailsSelectors.selectLoading);\r\n    this.shipping$ = this.store.select(this.origin === 'home' ? homeDetailsSelector.selectShippingType : detailsSelectors.selectShippingType);\r\n    this.quantity$ = this.store.select(this.origin === 'home' ? homeDetailsSelector.selectQuantity : detailsSelectors.selectQuantity);\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      window.scroll(0, 0);\r\n      //this.loadContacts();\r\n    }\r\n    this.store.dispatch(actions.LoadingProductDetailDlgAction({code:this.code,provider:this.provider}));\r\n    this.selectedContact$.subscribe(result => console.log(result));\r\n    this.data$.subscribe((result: any) => {\r\n      if (result && result.success && result.data) {\r\n        let title = 'Cubatel Market';\r\n        if (result.data?.name) {title += ` | ${result.data.name}`; }\r\n        this.updateMetaTags(title, result.data.shortText);\r\n      }\r\n    });\r\n    this.urlService.changeUrl(this.router.url);\r\n    this.urlService.footer.emit();\r\n  }\r\n\r\n  getShakeAnimation() {\r\n    return [\r\n      { transform: 'translateX(0)' },\r\n      { transform: 'translateX(5px)' },\r\n      { transform: 'translateX(-5px)' },\r\n      { transform: 'translateX(5px)' },\r\n      { transform: 'translateX(0)' },\r\n    ];\r\n  }\r\n  getShakeAnimationTiming() {\r\n    return {\r\n      duration: 300,\r\n      iterations: 3,\r\n    };\r\n  }\r\n  public async validateAttr() {\r\n    const attibutes = await this.store.pipe(select(this.origin === 'home' ? homeDetailsSelector.selectAttibutes : detailsSelectors.selectAttibutes),take(1)).toPromise();\r\n    console.info(attibutes);\r\n    return false;\r\n  }\r\n  public async pushToCart(product:any) {\r\n    const attributes = await this.store.pipe(select(this.origin === 'home' ? homeDetailsSelector.selectAttibutes : detailsSelectors.selectAttibutes),take(1)).toPromise();\r\n    if(attributes.length>0) {\r\n      const matched = attributes.find(p => p.valId.length==0);\r\n      if(matched){\r\n        this.targetAttrElement.nativeElement.animate(this.getShakeAnimation(), this.getShakeAnimationTiming());\r\n        this.toastr.error(`${\"Debe especificar\"} ${matched.attrText?.toLowerCase()}`);\r\n        return;\r\n      }\r\n    }\r\n    const shipping = await this.store.pipe(select(this.origin === 'home' ? homeDetailsSelector.selectShippingType : detailsSelectors.selectShippingType),take(1)).toPromise();\r\n    if(shipping==0 && product.provider>0){\r\n      this.targetElement.nativeElement.animate(this.getShakeAnimation(), this.getShakeAnimationTiming());\r\n      this.toastr.error(\"Debe especificar tipo de envío.\");\r\n      return;\r\n    }\r\n\r\n    if(product.availability<=0){\r\n      this.toastr.error(\"Lo sentimos, no hay disponibilidad para este producto.\");\r\n      return;\r\n    }\r\n\r\n    //var itemImg = $(`#${product.code}>`).find('img').eq(0);\r\n    product.shippingType=shipping;\r\n    product.attributes= {};\r\n    product.attributesToShow= attributes.map(p => `${p.attrText} (${p.valText})`).join('/');\r\n    attributes.forEach(function(item){product.attributes[item.attrId] = item.valId})\r\n\r\n    var itemImg = $(`.active`).find('img').eq(0);\r\n    this.flyToElement($(itemImg),product,ViewTypeEnum.ProductDetails,this.store);\r\n  }\r\n\r\n  showActive(id: string,count) {\r\n    var i = count;\r\n    while (i>0) {i -= 1; $(`#previewImg${i}`).removeClass('fade show active'); }\r\n    $(`#previewImg${id}`).addClass(\"fade show active\");\r\n  }\r\n  selectLocation() {\r\n    if (this.storageService.isAuthenticated()) {\r\n      const modalRef = this.modalService.open(ContactsComponent, {size: 'lg'});\r\n      modalRef.componentInstance.firstContact = true;\r\n      modalRef.componentInstance.selectLocation = true;\r\n      modalRef.result.finally(() => {});\r\n      this.loadContacts();\r\n    } else {\r\n      const modalRef = this.modalService.open(SelectLocationComponent, {size: 'sm'});\r\n      modalRef.result.finally(() => {});\r\n    }\r\n  }\r\n\r\n  loadContacts = () => {\r\n    const payload = {\r\n      pageIndex: 1,\r\n      pageSize: 10\r\n    };\r\n    this.store.dispatch(contactsActions.LoadingContacts({payload: payload}));\r\n  };\r\n\r\n  goToDetails() {\r\n    this.modal.close(true);\r\n   /*  this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => {\r\n        this.router.navigate([`/market/productos-compras-cuba-online/shein/${this.code}`]);\r\n    });\r\n    this.router.navigate([`/market/productos-compras-cuba-online/shein/${this.code}`]);\r\n    this.modal.dismiss(); */\r\n  }\r\n  ngOnDestroy(): void { this._subscriptions.forEach(x => x.unsubscribe()); this.cancelRequest(); }\r\n}\r\n","<hr *ngIf=\"(shippings$ | async).length>0\" />\r\n<strong *ngIf=\"(shippings$ | async).length>0\">\r\n  Selecciona el tipo de envío\r\n</strong>\r\n\r\n<div class=\"box\">\r\n  <ng-container *ngFor=\"let shipping of shippings$ | async; let index = index;\">\r\n\r\n    <div [class.active]=\"(selectedShippingType$ | async)==shipping.shippingType\" class=\"item\"\r\n      (click)=\"setShippingType(shipping.shippingType)\">\r\n      <div *ngIf=\"shipping.minWeightToShow?.value?.length>0\" class=\"min-weight\">\r\n        {{shipping.minWeightToShow?.value}}\r\n      </div>\r\n      <i class=\"fa fa-check check\" *ngIf=\"(selectedShippingType$ | async)==shipping.shippingType\"></i>\r\n      <div class=\"delivery-type-title\" *ngIf=\"shipping.shippingType==1; else ship\">\r\n        <img src=\"assets/aereo.svg\" style=\"width: 40px;\">\r\n        {{shipping.text}}\r\n        <div class=\"delivery-type-time\">\r\n          {{shipping.deliveryTimeToShow}}\r\n        </div>\r\n      </div>\r\n      <ng-template #ship>\r\n        <div class=\"delivery-type-title\" else ship>\r\n          <img src=\"assets/maritimo.svg\" style=\"width: 40px;\">\r\n          {{shipping.text}}\r\n          <div class=\"delivery-type-time\">\r\n            {{shipping.deliveryTimeToShow}}\r\n          </div>\r\n        </div>\r\n      </ng-template>\r\n      <span class=\"delivery-type-price\">\r\n        <strong>\r\n          {{shipping.value | currency}}\r\n        </strong>\r\n      </span>\r\n    </div>\r\n\r\n  </ng-container>\r\n</div>\r\n","import {Component, Inject, Input, OnDestroy, OnInit, PLATFORM_ID, ViewChild,} from '@angular/core';\r\nimport { Store } from \"@ngrx/store\";\r\nimport { _seoContent } from \"@app/marketplace/seo-content/utils\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport * as actions from \"../state/product-details/details-actions\";\r\nimport * as selectors from \"../state/product-details/details-selectors\";\r\nimport { ShippingTypeEnum } from \"@app/marketplace/core/enum/shippingType\";\r\nimport * as homeDetailsSelector from '@app/market-shein/state/product-detail.selector';\r\n@Component({\r\n  selector: \"app-product-shipping\",\r\n  templateUrl: \"./product-shipping.component.html\",\r\n  styleUrls: [\"./product-shipping.component.css\"],\r\n})\r\nexport class ProductShippingComponent  implements OnInit, OnDestroy {\r\n  @Input() origin: string;\r\n  shippings$ :Observable<any>;\r\n  selectedShippingType$: Observable<any>;\r\n  constructor(private store: Store<any>) {\r\n\r\n  }\r\n  ngOnInit(): void {\r\n    this.shippings$ = this.store.select(this.origin === 'home' ? homeDetailsSelector.selectShippings : selectors.selectShippings);\r\n    this.selectedShippingType$=this.store.select(this.origin === 'home' ? homeDetailsSelector.selectShippingType : selectors.selectShippingType);\r\n  }\r\n  public setShippingType=(shippingType:ShippingTypeEnum)=> this.store.dispatch(actions.SetShippingType({shippingType}));\r\n  ngOnDestroy(): void {;}\r\n}\r\n"]}