@maplander/components 0.21.46 → 0.21.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/maplander-components.umd.js +27 -14
- package/bundles/maplander-components.umd.js.map +1 -1
- package/bundles/maplander-components.umd.min.js +1 -1
- package/bundles/maplander-components.umd.min.js.map +1 -1
- package/esm2015/lib/components/fab-filters/fab-filters.component.js +15 -4
- package/esm2015/lib/components/filters/filters.component.js +4 -4
- package/esm2015/lib/components/panorama-visor/panorama-visor.component.js +1 -1
- package/esm2015/lib/components/property/components/details/details.component.js +1 -1
- package/esm2015/lib/components/property/components/editor/editor.component.js +1 -1
- package/esm2015/lib/components/property/components/gallery/gallery.component.js +1 -1
- package/esm2015/lib/components/property/components/multimedia-uploader/multimedia-uploader.component.js +1 -1
- package/esm2015/lib/components/property/components/property/property.component.js +1 -1
- package/esm2015/lib/components/property/components/slideshow/slide-show.component.js +1 -1
- package/esm2015/lib/components/property/components/stats/stats.component.js +1 -1
- package/esm2015/lib/components/property-card/property-card.component.js +1 -1
- package/esm5/lib/components/fab-filters/fab-filters.component.js +19 -4
- package/esm5/lib/components/filters/filters.component.js +4 -4
- package/esm5/lib/components/panorama-visor/panorama-visor.component.js +1 -1
- package/esm5/lib/components/property/components/details/details.component.js +1 -1
- package/esm5/lib/components/property/components/editor/editor.component.js +1 -1
- package/esm5/lib/components/property/components/gallery/gallery.component.js +1 -1
- package/esm5/lib/components/property/components/multimedia-uploader/multimedia-uploader.component.js +1 -1
- package/esm5/lib/components/property/components/property/property.component.js +1 -1
- package/esm5/lib/components/property/components/slideshow/slide-show.component.js +1 -1
- package/esm5/lib/components/property/components/stats/stats.component.js +1 -1
- package/esm5/lib/components/property-card/property-card.component.js +1 -1
- package/fesm2015/maplander-components.js +24 -15
- package/fesm2015/maplander-components.js.map +1 -1
- package/fesm5/maplander-components.js +28 -15
- package/fesm5/maplander-components.js.map +1 -1
- package/lib/components/fab-filters/fab-filters.component.d.ts +3 -1
- package/maplander-components.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -359,7 +359,7 @@ MultimediaUploaderComponent.decorators = [
|
|
|
359
359
|
{ type: Component, args: [{
|
|
360
360
|
selector: 'lib-property-multimedia-uploader',
|
|
361
361
|
template: "<div class=\"multimedia-uploader\">\r\n <p class=\"title\">\r\n Multimedia\r\n <ng-template [ngIf]=\"currentIndex !== 2\">\r\n <lib-upload-file [content]=\"buttonUploadTemplate\" [noCrop]=\"true\" [fab]=\"true\" [fileType]=\"fileType\" [aspectRatio]=\"4 / 3\"\r\n [multiple]=\"true\"\r\n (loadImage)=\"onUploadImage($event)\">\r\n <ng-template #buttonUploadTemplate>\r\n <button mat-icon-button color=\"primary\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </ng-template>\r\n </lib-upload-file>\r\n </ng-template>\r\n </p>\r\n <mat-tab-group class=\"multimedia-uploader__tab-group\" [selectedIndex]=\"currentIndex\"\r\n (selectedIndexChange)=\"onTabChanged($event)\">\r\n <mat-tab label=\"Fotografias\">\r\n <lib-custom-drag-and-drop [items]=\"images\" [content]=\"imageTemplate\" (itemsChanged)=\"onListChanged($event)\">\r\n <ng-template #imageTemplate let-image=\"image\" let-index=\"index\">\r\n <div class=\"list__item\" [ngClass]=\"{'first-photo': index === 0}\">\r\n <img alt=\"Property image\" [src]=\"image.fileCS.thumbnail\" class=\"list__item-img\">\r\n <button mat-icon-button class=\"list__item-button mat-elevation-z2\" (click)=\"removeMedia(image)\">\r\n <mat-icon class=\"list__item-icon\">close</mat-icon>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </lib-custom-drag-and-drop>\r\n </mat-tab>\r\n <mat-tab label=\"Esfericas\">\r\n <lib-custom-drag-and-drop [items]=\"images360\" [content]=\"image360Template\" (itemsChanged)=\"onListChanged($event)\">\r\n <ng-template #image360Template let-image=\"image\">\r\n <div class=\"list__item\">\r\n <img alt=\"Property image\" [src]=\"image.fileCS.thumbnail\" class=\"list__item-img\">\r\n <button mat-icon-button class=\"list__item-button mat-elevation-z2\" (click)=\"removeMedia(image)\">\r\n <mat-icon class=\"list__item-icon\">close</mat-icon>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </lib-custom-drag-and-drop>\r\n </mat-tab>\r\n <mat-tab label=\"Videos\">\r\n <div class=\"you-tube-container\">\r\n <span class=\"you-tube-container__searchbox\">\r\n <button *ngIf=\"inputYouTube.value !== ''\" mat-icon-button class=\"you-tube-container__close-btn\"\r\n (click)=\"inputYouTube.value = ''\"><mat-icon>close</mat-icon></button>\r\n <input class=\"you-tube-container__input\" #inputYouTube (input)=\"onYouTubeInputTextChanged(inputYouTube)\"\r\n title=\"YouTube URL\" placeholder=\"YouTube URL o YouTube Video ID\">\r\n </span>\r\n <a href=\"https://www.youtube.com\" target=\"_blank\" mat-button color=\"primary\">\r\n Ir a Youtube\r\n </a>\r\n </div>\r\n <lib-custom-drag-and-drop [items]=\"videos\" [content]=\"videosTemplate\" (itemsChanged)=\"onListChanged($event)\">\r\n <ng-template #videosTemplate let-image=\"image\">\r\n <div class=\"list__item\">\r\n <img alt=\"Property image\" [src]=\"'https://i3.ytimg.com/vi/'+image.fileCS.thumbnail+'/hqdefault.jpg'\"\r\n class=\"list__item-img\">\r\n <button mat-icon-button class=\"list__item-button mat-elevation-z2\" (click)=\"removeMedia(image)\">\r\n <mat-icon class=\"list__item-icon\">close</mat-icon>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </lib-custom-drag-and-drop>\r\n </mat-tab>\r\n </mat-tab-group>\r\n <div class=\"multimedia-uploader__actions\">\r\n <button mat-flat-button color=\"primary\" class=\"actions__button\" (click)=\"close()\">\r\n CERRAR\r\n </button>\r\n <button mat-flat-button color=\"primary\" class=\"actions__button\" (click)=\"accept()\">\r\n ACEPTAR\r\n </button>\r\n </div>\r\n</div>\r\n",
|
|
362
|
-
styles: [":host{display:block;width:100%;height:100%}::ng-deep .multimedia-uploader-panel-class{width:50%;height:70%}::ng-deep .multimedia-uploader-panel-class mat-dialog-container{width:100%;height:100%;padding:16px;overflow:hidden;position:relative}.multimedia-uploader{width:100%;height:100%}.multimedia-uploader__actions{position:absolute;left:0;bottom:0;width:100%;background:#fff;z-index:1}.actions__button{width:50%}.actions__button:first-child{border-radius:8px 0 0}.actions__button:last-child{border-radius:0 8px 0 0}.title{font-weight:700;display:flex;align-items:center;justify-content:space-between;padding:0 16px;margin:0}.multimedia-uploader__tab-group{width:100%;height:calc(100% - 36px)}.multimedia-uploader__list{width:100%;height:100%;overflow-x:hidden;overflow-y:auto;display:-ms-grid;display:grid;-ms-grid-columns:(
|
|
362
|
+
styles: [":host{display:block;width:100%;height:100%}::ng-deep .multimedia-uploader-panel-class{width:50%;height:70%}::ng-deep .multimedia-uploader-panel-class mat-dialog-container{width:100%;height:100%;padding:16px;overflow:hidden;position:relative}.multimedia-uploader{width:100%;height:100%}.multimedia-uploader__actions{position:absolute;left:0;bottom:0;width:100%;background:#fff;z-index:1}.actions__button{width:50%}.actions__button:first-child{border-radius:8px 0 0}.actions__button:last-child{border-radius:0 8px 0 0}.title{font-weight:700;display:flex;align-items:center;justify-content:space-between;padding:0 16px;margin:0}.multimedia-uploader__tab-group{width:100%;height:calc(100% - 36px)}.multimedia-uploader__list{width:100%;height:100%;overflow-x:hidden;overflow-y:auto;display:-ms-grid;display:grid;-ms-grid-columns:(33.3333333333%)[3];grid-template-columns:repeat(3,33.3333333333%)}@media screen and (max-width:600px){::ng-deep .multimedia-uploader-panel-class{width:100%!important;max-width:100%!important;height:100%!important}.multimedia-uploader__list{-ms-grid-columns:100%;grid-template-columns:100%}}.list__item{width:200px;height:150px;border-radius:8px;margin:16px auto;position:relative}.first-photo:after{content:\"Imagen principal del anuncio\";position:absolute;top:0;padding:8px;box-sizing:border-box;font-size:12px;width:100%;color:#fff;background:rgba(0,0,0,.3)}.list__item-img{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:8px}.list__item-button{position:absolute;width:24px;height:24px;top:-12px;right:-12px;background:#000;color:#fff}.list__item-icon{width:24px;height:24px;font-size:16px;line-height:8px}.you-tube-container{display:flex;padding:8px 0;box-sizing:border-box;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:5;background:#fff}.you-tube-container__searchbox{position:relative;width:calc(100% - 120px);box-sizing:border-box;display:flex;align-items:center}.you-tube-container__close-btn{position:absolute;right:0}.you-tube-container__input{width:100%;border:1px solid #d3d3d3;padding:8px 32px 8px 8px;border-radius:8px;outline:0}"]
|
|
363
363
|
}] }
|
|
364
364
|
];
|
|
365
365
|
/** @nocollapse */
|
|
@@ -450,7 +450,7 @@ PropertyComponent.decorators = [
|
|
|
450
450
|
{ type: Component, args: [{
|
|
451
451
|
selector: 'lib-property',
|
|
452
452
|
template: "<div class=\"property\">\r\n <div class=\"header\">\r\n <ng-container [ngSwitch]=\"mode\">\r\n <ng-container *ngSwitchCase=\"'add'\">\r\n <h1 class=\"title\">\r\n <span *ngIf=\"!completeProperty.property.id\">Cargar </span>\r\n <span *ngIf=\"completeProperty.property.id\">Editar </span>\r\n expediente de {{ propertyType | propertyType }}\r\n </h1>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'record'\">\r\n <h1 class=\"title\">Expediente de {{propertyType | propertyType}}</h1>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'detail'\">\r\n <div class=\"breadcrumb-list\">\r\n <p class=\"breadcrumb-content\">\r\n <span class=\"breadcrumb-item\">\r\n {{completeProperty.property.type | propertyType}}\r\n </span>\r\n <span class=\"breadcrumb-item\">\r\n {{completeProperty.property.offering | offeringType : ' ' | stringManipulation : 'capitalize'}}\r\n </span>\r\n <span *ngIf=\"completeProperty.property.address.city\" class=\"breadcrumb-item\">\r\n {{completeProperty.property.address.city}}\r\n </span>\r\n <span *ngIf=\"completeProperty.property.address.postalCode\" class=\"breadcrumb-item\">\r\n {{completeProperty.property.address.postalCode}}\r\n </span>\r\n <span *ngIf=\"completeProperty.property.address.colony\" class=\"breadcrumb-item\">\r\n {{completeProperty.property.address.colony}}\r\n </span>\r\n </p>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <div class=\"header__actions\">\r\n <!-- Button Publish [START] -->\r\n <ng-template\r\n [ngIf]=\"(mode === 'record' || mode === 'add') && (completeProperty.property.status !== 'ANNOUNCED' && completeProperty.property.status !== 'HIDDEN')\">\r\n <button mat-icon-button color=\"primary\" matTooltip=\"Publicar\" matTooltipPosition=\"left\"\r\n class=\"header__actions-button-publish\" (click)=\"goToPublish()\">\r\n <span class=\"header__actions-button-publish-icon ic-property-status-announce\"></span>\r\n </button>\r\n </ng-template>\r\n <!-- Button Publish [END] -->\r\n <ng-container [ngSwitch]=\"mode\">\r\n <ng-container *ngSwitchCase=\"'add'\">\r\n <ng-template [ngIf]=\"multimedia.length > 0\">\r\n <button mat-icon-button color=\"primary\" (click)=\"openUploaderMultimedia()\">\r\n <mat-icon>photo_library</mat-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template [ngIf]=\"completeProperty?.property?.id\">\r\n <button mat-icon-button color=\"primary\" matTooltip=\"Guardar\" matTooltipPosition=\"left\" (click)=\"saveData()\">\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'record'\">\r\n <ng-template\r\n [ngIf]=\"!sharedProperty.isShared && (completeProperty.property.status !== 'DRAFT' && completeProperty.property.status !== 'NONE')\">\r\n <button mat-icon-button color=\"primary\" matTooltip=\"Estad\u00EDsticas\" matTooltipPosition=\"left\"\r\n (click)=\"goToStats()\">\r\n <mat-icon>bar_chart</mat-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template\r\n [ngIf]=\"(completeProperty.property.status === 'ANNOUNCED' || completeProperty.property.status === 'HIDDEN') && !sharedProperty.isShared\">\r\n <button mat-icon-button color=\"primary\"\r\n matTooltip=\"{{completeProperty.property.status === 'ANNOUNCED' ? 'Ocultar' : 'Mostrar'}}\"\r\n matTooltipPosition=\"left\" (click)=\"goToUpdateVisibility()\">\r\n <mat-icon *ngIf=\"completeProperty.property.status === 'HIDDEN'\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"completeProperty.property.status === 'ANNOUNCED'\">visibility_off</mat-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template [ngIf]=\"!sharedProperty.isShared\">\r\n <button mat-icon-button color=\"primary\" matTooltip=\"Editar\" matTooltipPosition=\"left\"\r\n (click)=\"goToEditProperty()\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'detail'\">\r\n <ng-template [ngIf]=\"isOPI\" [ngIfElse]=\"maplanderActions\">\r\n <button mat-flat-button color=\"primary\" class=\"header__actions-button-commission\"\r\n [disabled]=\"disableShareCommission\"\r\n (click)=\"agentActions('SHARE_COMMISSION')\">\r\n <span *ngIf=\"!disableShareCommission\">Solicitar comisi\u00F3n compartida</span>\r\n <span *ngIf=\"disableShareCommission\">Solicitud pendiente</span>\r\n </button>\r\n </ng-template>\r\n <ng-template #maplanderActions>\r\n <button mat-flat-button color=\"primary\" class=\"header__actions-button-commission\"\r\n (click)=\"agentActions('SHOW_AGENTS')\">\r\n Mostrar Asesor\r\n </button>\r\n <button mat-icon-button color=\"primary\" class=\"header__actions-button-commission\"\r\n (click)=\"agentActions('FAVORITE')\">\r\n <mat-icon *ngIf=\"isFavorite\">favorite</mat-icon>\r\n <mat-icon *ngIf=\"!isFavorite\">favorite_border</mat-icon>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n <!-- Button Share [START] -->\r\n <ng-template\r\n [ngIf]=\"mode === 'detail' || (mode === 'record' && (completeProperty.property.status === 'READY' || completeProperty.property.status === 'ANNOUNCED'))\" [ngIfElse]=\"noShare\">\r\n <button mat-icon-button color=\"primary\" (click)=\"shareProperty()\">\r\n <mat-icon>share</mat-icon>\r\n </button>\r\n </ng-template>\r\n <!-- Button Share [END] -->\r\n <ng-template #noShare>\r\n <ng-template [ngIf]=\"sharedProperty.isShared\">\r\n <h1 class=\"title\">\r\n Propiedad oculta</h1>\r\n </ng-template>\r\n </ng-template>\r\n <!-- Button Back [START] -->\r\n <button mat-icon-button color=\"primary\" (click)=\"goToBack()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <!-- Button Back [END] -->\r\n </div>\r\n </div>\r\n <div class=\"body\">\r\n <div class=\"body__multimedia-wrapper\">\r\n <div class=\"multimedia-wrapper__list-thumbnails\">\r\n <div class=\"list-thumbnails__wrapper-thumbnails\">\r\n <div class=\"wrapper-thumbnails__header-types\">\r\n <button mat-button class=\"header-types__button-type\"\r\n [ngClass]=\"{'header-types__button-type--active': currentType === 'IMAGE'}\"\r\n (click)=\"changeMultimediaType('IMAGE')\">\r\n <span class=\"button-type__icon ic-component-property-file-image\"></span>\r\n <span class=\"button-type__label\">{{multimediaCount.images}}</span>\r\n </button>\r\n <button mat-button class=\"header-types__button-type\"\r\n [ngClass]=\"{'header-types__button-type--active': currentType === 'SPHERIC'}\"\r\n (click)=\"changeMultimediaType('SPHERIC')\">\r\n <span class=\"button-type__icon ic-component-property-sphere\"></span>\r\n <span class=\"button-type__label\">{{multimediaCount.images360}}</span>\r\n </button>\r\n <button mat-button class=\"header-types__button-type\"\r\n [ngClass]=\"{'header-types__button-type--active': currentType === 'VIDEO'}\"\r\n (click)=\"changeMultimediaType('VIDEO')\">\r\n <span class=\"button-type__icon ic-component-property-video\"></span>\r\n <span class=\"button-type__label\">{{multimediaCount.videos}}</span>\r\n </button>\r\n </div>\r\n <ng-template [ngIf]=\"multimedia && multimedia.length === 0\">\r\n <div class=\"wrapper-thumbnails__item-thumbnail\"></div>\r\n <div class=\"wrapper-thumbnails__item-thumbnail\"></div>\r\n <div class=\"wrapper-thumbnails__item-thumbnail\"></div>\r\n </ng-template>\r\n <ng-container *ngFor=\"let image of multimedia; let i = index;\">\r\n <div class=\"wrapper-thumbnails__item-thumbnail\"\r\n [ngClass]=\"{'wrapper-thumbnails__item-thumbnail--selected': i === currentIndex}\"\r\n (click)=\"onMultimediaIndexChanged(i)\">\r\n <ng-container [ngSwitch]=\"image.type\">\r\n <ng-container *ngSwitchCase=\"'VIDEO'\">\r\n <img class=\"item-thumbnail__img\" alt=\"Property image\"\r\n [src]=\"'https://i3.ytimg.com/vi/'+image.fileCS.thumbnail+'/hqdefault.jpg'\">\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <img class=\"item-thumbnail__img\" alt=\"Property image\" [src]=\"image.fileCS.thumbnail\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"multimedia-wrapper__front-image\">\r\n <lib-property-slide-show [multimedia]=\"multimedia\"\r\n [selectIndex]=\"currentIndex\"\r\n (currentIndex)=\"onMultimediaIndexChanged($event)\"\r\n [customActions]=\"customSlideShowActions\"\r\n ></lib-property-slide-show>\r\n <ng-template [ngIf]=\"mode === 'add' && multimedia.length === 0\">\r\n <div class=\"front-image__upload-multimedia\">\r\n <div class=\"upload-multimedia__container-add-multimedia\">\r\n <button class=\"container-add-multimedia__button\" mat-button color=\"primary\"\r\n (click)=\"openUploaderMultimedia()\">\r\n AGREGAR\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #customSlideShowActions>\r\n <button *ngIf=\"multimedia.length > 0\" mat-icon-button (click)=\"openGallery()\" matTooltip=\"Fullscreen\">\r\n <mat-icon>fullscreen</mat-icon>\r\n </button>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"body__additional-content\">\r\n <ng-template\r\n [ngIf]=\"mode === 'record' && property.property.status === 'ANNOUNCED' && property.property.propertyInfo.mls\">\r\n <div class=\"additional-content__mls\">\r\n <p class=\"mls__title\">\r\n Bolsa inmobiliaria\r\n </p>\r\n <button mat-flat-button color=\"primary\" class=\"mls__button\"\r\n (click)=\"agentActions('REAL_ESTATE_EXCHANGE')\">\r\n Mesa de comercializaci\u00F3n\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"body__content\">\r\n <ng-container [ngSwitch]=\"mode\">\r\n <ng-container *ngSwitchCase=\"'detail'\">\r\n <lib-property-details [property]=\"completeProperty.property\" [mlsLabel]=\"mlsLabel\"\r\n [currencyConverted]=\"currencyConverted\" [visibleTour]=\"!isOPI\"></lib-property-details>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'record'\">\r\n <lib-property-details [property]=\"completeProperty.property\" [mlsLabel]=\"mlsLabel\"\r\n [record]=\"true\"></lib-property-details>\r\n <ng-template [ngIf]=\"sharedProperty.ownerAvailable\">\r\n <div class=\"content__private-info\">\r\n <p class=\"private-info__title\">INFORMACI\u00D3N PRIVADA</p>\r\n <lib-property-owner-info [owner]=\"completeProperty.property.propertyInfo.owner\"\r\n [disabled]=\"true\"></lib-property-owner-info>\r\n <ng-template [ngIf]=\"!sharedProperty.isShared\">\r\n <lib-property-documents [files]=\"completeProperty.files\" [disabled]=\"true\"></lib-property-documents>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'add'\">\r\n <ng-template [ngIf]=\"frontImageError\">\r\n <p class=\"content__error-front-image\">\r\n * Debe subir al menos una imagen\r\n </p>\r\n </ng-template>\r\n <lib-property-editor [utils]=\"utils\" [propertyType]=\"propertyType\" [address]=\"address\"\r\n [mlsLabel]=\"mlsLabel\"\r\n [property]=\"completeProperty.property\"\r\n (editorInstance)=\"onEditorInstance($event)\"\r\n (selectAddress)=\"onSelectAddress()\"></lib-property-editor>\r\n <div class=\"content__private-info\">\r\n <p class=\"private-info__title\">INFORMACI\u00D3N PRIVADA</p>\r\n <lib-property-owner-info (ownerInstance)=\"onOwnerInstance($event)\"\r\n [owner]=\"completeProperty.property.propertyInfo.owner\"></lib-property-owner-info>\r\n <lib-property-documents (documentsInstance)=\"onDocumentsInstance($event)\"\r\n [files]=\"completeProperty.files\"></lib-property-documents>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"footer mat-elevation-z2\" [ngClass]=\"{'footer--primary': mode === 'record'}\"\r\n [ngStyle]=\"{'display': (mode === 'detail' && isOPI) ? 'none' : 'block'}\">\r\n <ng-container [ngSwitch]=\"mode\">\r\n <ng-container *ngSwitchCase=\"'detail'\">\r\n <div class=\"footer__footer-content\">\r\n <ng-template [ngIf]=\"!isOPI\">\r\n <button mat-raised-button color=\"primary\" class=\"footer-content__button-request-info mat-elevation-z2\"\r\n (click)=\"agentActions('REQUEST_INFO')\">\r\n Solicitar informaci\u00F3n\r\n </button>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'record'\">\r\n <div class=\"footer__footer-content\">\r\n <p class=\"footer-content__status-label\">\r\n <ng-container [ngSwitch]=\"completeProperty.property.status\">\r\n <ng-container *ngSwitchCase=\"'HIDDEN'\">\r\n Propiedad oculta\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'READY'\">\r\n Propiedad lista <br> para publicar\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'EXPIRED'\">\r\n Propiedad expirada desde el <br>\r\n {{completeProperty.property.propertyInfo.endPublishDate | libFormatDate : true : 'dd MMMMM yyyy'}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'ANNOUNCED'\">\r\n Anunciada\r\n <br> Anuncio valido hasta el\r\n {{completeProperty.property.propertyInfo.endPublishDate | libFormatDate : true : 'dd MMMMM yyyy'}}\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n Propiedad en borrador\r\n </ng-container>\r\n </ng-container>\r\n </p>\r\n <div class=\"footer-content__fab\">\r\n <eco-fab-speed-dial>\r\n <eco-fab-speed-dial-trigger>\r\n <button mat-fab color=\"primary\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </eco-fab-speed-dial-trigger>\r\n <eco-fab-speed-dial-actions>\r\n <button *ngIf=\"completeProperty.property.status !== 'NONE' && completeProperty.property.status !== 'DRAFT'\"\r\n mat-mini-fab color=\"primary\" matTooltip=\"Clientes\" matTooltipPosition=\"left\" (click)=\"goToClients()\">\r\n <mat-icon class=\"fab-button__icon\">people</mat-icon>\r\n </button>\r\n <button *ngIf=\"!sharedProperty.isShared\" mat-mini-fab color=\"primary\" matTooltip=\"Archivar propiedad\"\r\n matTooltipPosition=\"left\"\r\n (click)=\"agentActions('ARCHIVE')\">\r\n <mat-icon class=\"fab-button__icon\">archive</mat-icon>\r\n </button>\r\n <button mat-mini-fab color=\"primary\" matTooltip=\"Generar letrero\" matTooltipPosition=\"left\"\r\n (click)=\"agentActions('POSTER')\">\r\n <span class=\"fab-button__icon ic-component-property-poster\"></span>\r\n </button>\r\n <button mat-mini-fab color=\"primary\" matTooltip=\"Generar folleto\" matTooltipPosition=\"left\"\r\n (click)=\"agentActions('BROCHURE')\">\r\n <span class=\"fab-button__icon ic-component-property-brochure\"></span>\r\n </button>\r\n <button mat-mini-fab color=\"primary\" matTooltip=\"Generar lona\" matTooltipPosition=\"left\"\r\n (click)=\"agentActions('TARPS')\">\r\n <span class=\"fab-button__icon ic-component-property-canvas\"></span>\r\n </button>\r\n </eco-fab-speed-dial-actions>\r\n </eco-fab-speed-dial>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'add'\">\r\n <div class=\"footer__footer-content\">\r\n <button class=\"footer-content__button-save\" mat-flat-button color=\"primary\" (click)=\"saveData()\">Guardar\r\n </button>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n",
|
|
453
|
-
styles: [":host{width:100%;height:100%;display:block}.property{position:relative;width:100%;height:100%;z-index:5;border-radius:4px}.title{margin:0 16px;font-size:24px}.breadcrumb-list{width:50%;padding:4px 16px;box-sizing:border-box;border-radius:0 24px 24px 0}.breadcrumb-content{color:#fff;margin:4px 0;width:100%;line-height:21px}.breadcrumb-item{position:relative;display:inline-flex;padding:0 18px 0 4px}.breadcrumb-item:last-child:before{content:none}.divider{border-width:1px}.divider-vertical{display:block;border:.5px inset}.header{width:100%;position:-webkit-sticky;position:sticky;top:0;z-index:10;padding:8px 0;display:flex;align-items:center;justify-content:space-between}@media screen and (max-width:600px){.breadcrumb-list{width:100%;order:1}.header{flex-direction:column}}.header__actions{padding:8px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between}@media screen and (max-width:600px){.header__actions{order:0;width:100%;padding:4px 8px;justify-content:flex-end}}.header__actions button{margin-right:8px}.header__actions-button-commission{border-radius:16px}.actions-button-commission__icon{display:inline-block;width:24px;height:24px;font-size:24px;margin-left:8px}.header__actions-button-publish-icon{font-size:24px;width:24px;height:24px}.body{width:100%;height:calc(100% - 80px);overflow-x:hidden;overflow-y:auto;background:0 0;box-sizing:border-box;padding-bottom:56px}@media screen and (max-width:600px){.body{display:flex;flex-direction:column;padding:0 8px 56px}}.body__additional-content{width:25%;display:inline-block;padding:16px;box-sizing:border-box;background:#fff}@media screen and (max-width:600px){.body__additional-content{width:100%;order:2}}.mls__title{font-size:12px}.mls__button{width:100%;display:block;margin-bottom:8px;border-radius:16px}.body__content{width:75%;display:inline-block;padding:16px;box-sizing:border-box;float:right;background:#fff}.body__multimedia-wrapper{width:100%;background:#fff;display:flex}@media screen and (max-width:600px){.body__content{width:100%;order:1}.body__multimedia-wrapper{width:100%;order:0;flex-direction:column}}.multimedia-wrapper__list-thumbnails{width:25%;height:0;padding-bottom:
|
|
453
|
+
styles: [":host{width:100%;height:100%;display:block}.property{position:relative;width:100%;height:100%;z-index:5;border-radius:4px}.title{margin:0 16px;font-size:24px}.breadcrumb-list{width:50%;padding:4px 16px;box-sizing:border-box;border-radius:0 24px 24px 0}.breadcrumb-content{color:#fff;margin:4px 0;width:100%;line-height:21px}.breadcrumb-item{position:relative;display:inline-flex;padding:0 18px 0 4px}.breadcrumb-item:last-child:before{content:none}.divider{border-width:1px}.divider-vertical{display:block;border:.5px inset}.header{width:100%;position:-webkit-sticky;position:sticky;top:0;z-index:10;padding:8px 0;display:flex;align-items:center;justify-content:space-between}@media screen and (max-width:600px){.breadcrumb-list{width:100%;order:1}.header{flex-direction:column}}.header__actions{padding:8px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between}@media screen and (max-width:600px){.header__actions{order:0;width:100%;padding:4px 8px;justify-content:flex-end}}.header__actions button{margin-right:8px}.header__actions-button-commission{border-radius:16px}.actions-button-commission__icon{display:inline-block;width:24px;height:24px;font-size:24px;margin-left:8px}.header__actions-button-publish-icon{font-size:24px;width:24px;height:24px}.body{width:100%;height:calc(100% - 80px);overflow-x:hidden;overflow-y:auto;background:0 0;box-sizing:border-box;padding-bottom:56px}@media screen and (max-width:600px){.body{display:flex;flex-direction:column;padding:0 8px 56px}}.body__additional-content{width:25%;display:inline-block;padding:16px;box-sizing:border-box;background:#fff}@media screen and (max-width:600px){.body__additional-content{width:100%;order:2}}.mls__title{font-size:12px}.mls__button{width:100%;display:block;margin-bottom:8px;border-radius:16px}.body__content{width:75%;display:inline-block;padding:16px;box-sizing:border-box;float:right;background:#fff}.body__multimedia-wrapper{width:100%;background:#fff;display:flex}@media screen and (max-width:600px){.body__content{width:100%;order:1}.body__multimedia-wrapper{width:100%;order:0;flex-direction:column}}.multimedia-wrapper__list-thumbnails{width:25%;height:0;padding-bottom:56.25%;overflow:hidden;position:relative}@media screen and (max-width:600px){.multimedia-wrapper__list-thumbnails{width:100%;height:56px;padding:0}}.list-thumbnails__wrapper-thumbnails{position:absolute;width:100%;height:100%;background:#fff;overflow-x:hidden;overflow-y:scroll;padding:0 18px 8px;box-sizing:border-box}.wrapper-thumbnails__header-types{width:100%;height:40px;background:#fff;padding-top:8px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.header-types__button-type{min-width:33.3333333333%;width:33.3333333333%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0;height:100%;font-size:12px;line-height:16px}.button-type__icon{font-size:24px;width:24px;height:24px;display:inline-block}.button-type__label{display:inline-block;margin:0 4px}.wrapper-thumbnails__item-thumbnail{width:100%;padding-bottom:75%;margin-top:8px;border-radius:8px;position:relative;cursor:pointer}.item-thumbnail__img{position:absolute;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:inherit}.multimedia-wrapper__front-image{width:calc(75% - 16px);height:0;padding-bottom:calc((75% - 16px)/ 4 * 3);margin:auto;border-radius:8px;position:relative}@media screen and (max-width:600px){.wrapper-thumbnails__item-thumbnail{display:none}.multimedia-wrapper__front-image{width:100%;padding-bottom:75%}}.front-image__upload-multimedia{position:absolute;top:0;left:25%;width:50%;height:100%;z-index:1;display:flex}@media screen{.front-image__upload-multimedia{width:80%;left:10%}}.upload-multimedia__container-add-multimedia{margin:auto;width:200px;height:200px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;background:url(https://storage.googleapis.com/maplander-develop/public/file/front-end/cdn/360-image.svg) center/80% no-repeat}.container-add-multimedia__button{position:absolute;bottom:8px}.content__error-front-image{font-size:12px;margin:8px 0 8px 8px}.content__private-info{border-radius:8px}.private-info__title{font-weight:700;margin:0;padding:16px;border-radius:8px 8px 0 0}.footer{width:100%;height:43px;border-radius:16px 16px 0 0;padding:8px 16px;box-sizing:border-box;background:#fff;position:-webkit-sticky;position:sticky;z-index:2;bottom:0}.footer__footer-content{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.footer-content__status-label{margin:6px 0;font-size:14px;text-align:center}.footer-content__button-request-info{width:30%;border-radius:16px}@media screen and (max-width:600px){.footer-content__button-request-info{width:90%}}.footer-content__button-save{width:120px;border-radius:16px}.footer-content__fab{position:absolute;right:0;bottom:12px;padding:8px;border-radius:50%;background:linear-gradient(transparent 50%,#fff 50%)}.fab-button__icon{width:24px;height:24px;font-size:24px}"]
|
|
454
454
|
}] }
|
|
455
455
|
];
|
|
456
456
|
/** @nocollapse */
|
|
@@ -80,7 +80,7 @@ SlideShowComponent.decorators = [
|
|
|
80
80
|
{ type: Component, args: [{
|
|
81
81
|
selector: 'lib-property-slide-show',
|
|
82
82
|
template: "<div class=\"slide-show\">\r\n <div class=\"slide-show__actions\">\r\n <ng-container [ngTemplateOutlet]=\"customActions\"></ng-container>\r\n <p class=\"actions__count\" *ngIf=\"multimedia && multimedia.length > 0\">\r\n {{index + 1}}/{{count}}\r\n </p>\r\n </div>\r\n <button mat-button=\"\" class=\"button-previous\" [ngClass]=\"{'disabled':index===0}\" [disabled]=\"index===0\"\r\n (click)=\"moveImage()\">\r\n <mat-icon>keyboard_arrow_left</mat-icon>\r\n </button>\r\n <ul class=\"images-list\" #slider [ngStyle]=\"{'width':'calc(100% *' + count + ')'}\">\r\n <ng-template [ngIf]=\"multimedia && multimedia.length > 0\">\r\n <ng-container *ngFor=\"let m of multimedia\">\r\n <li class=\"images-item\" [ngStyle]=\"{'width':'calc(100% /' + count + ')'}\">\r\n <ng-container [ngSwitch]=\"m.type\">\r\n <ng-container *ngSwitchCase=\"'IMAGE'\">\r\n <img class=\"images-item__img\" [src]=\"m.fileCS.thumbnail\" alt=\"Property image\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'SPHERIC'\">\r\n <lib-panorama-visor class=\"images-item__panorama\" [url]=\"m.fileCS.thumbnail\"></lib-panorama-visor>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'VIDEO'\">\r\n <iframe class=\"images-item__video\"\r\n [src]=\"'https://www.youtube.com/embed/' + m.fileCS.thumbnail | safeUrl\"></iframe>\r\n </ng-container>\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template [ngIf]=\"multimedia && multimedia.length === 0\">\r\n <div class=\"no-items\"></div>\r\n </ng-template>\r\n </ul>\r\n <button mat-button=\"\" class=\"button-next\" [disabled]=\"multimedia.length === 0\" (click)=\"moveImage(true)\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n</div>\r\n",
|
|
83
|
-
styles: [":host{display:block;position:relative;width:100%;padding-bottom:
|
|
83
|
+
styles: [":host{display:block;position:relative;width:100%;padding-bottom:75%}.slide-show{width:100%;height:100%;overflow:hidden;position:absolute}.slide-show__actions{position:absolute;bottom:0;left:0;right:0;width:100%;color:#fff;padding:8px 24px;z-index:2;display:flex;align-items:center;justify-content:flex-end;box-sizing:border-box;background:linear-gradient(transparent,rgba(0,0,0,.4))}.actions__count{margin:4px 0 0 8px;font-size:14px}.images-list{width:100%;height:100%;list-style:none;padding:0;margin:0;display:flex;overflow:hidden;transition:250ms}.images-item{width:100%;height:100%}.images-item__img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;border-radius:8px}.images-item__panorama,.images-item__video{width:100%;height:100%;border:0;border-radius:8px}.button-next,.button-previous{position:absolute;min-width:30px;width:30px;height:80px;padding:0;z-index:1;color:#fff;top:calc(50% - 40px);background:rgba(0,0,0,.3)}.button-next mat-icon,.button-previous mat-icon{width:30px;height:30px;font-size:30px}.button-next:hover,.button-previous:hover{color:#000;background:#fff}.disabled{color:#d3d3d3}.button-previous{left:0;border-radius:0 16px 16px 0}.button-next{right:0;border-radius:16px 0 0 16px}.no-items{width:100%;height:100%;border-radius:8px}"]
|
|
84
84
|
}] }
|
|
85
85
|
];
|
|
86
86
|
/** @nocollapse */
|
|
@@ -31,7 +31,7 @@ StatsComponent.decorators = [
|
|
|
31
31
|
{ type: Component, args: [{
|
|
32
32
|
selector: 'lib-stats',
|
|
33
33
|
template: "<div class=\"stats\">\r\n <mat-toolbar class=\"stats__toolbar\" color=\"primary\">\r\n Estad\u00EDsticas\r\n <button mat-icon-button (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-toolbar>\r\n <div class=\"stats__content\">\r\n <div class=\"content__stat\">\r\n <div class=\"stat__icon-container\">\r\n <mat-icon>visibility</mat-icon>\r\n </div>\r\n <p class=\"stat__count\">\r\n {{data.views ? data.views['RV'] || 0 : 0}}\r\n </p>\r\n <p class=\"stat__label\">\r\n Vistas en Renta o Venta\r\n </p>\r\n <div class=\"stat__app-icon\">\r\n <img alt=\"Renta o Venta logo\" class=\"app-icon__img\" src=\"https://storage.googleapis.com/maplander-develop/public/file/front-end/email/rentaoventa.png\">\r\n </div>\r\n </div>\r\n <div class=\"content__stat\">\r\n <div class=\"stat__icon-container\">\r\n <mat-icon>visibility</mat-icon>\r\n </div>\r\n <p class=\"stat__count\">\r\n {{data.views ? data.views['FIABCI'] || 0 : 0}}\r\n </p>\r\n <p class=\"stat__label\">\r\n Vistas en GlobalMLS\r\n </p>\r\n <div class=\"stat__app-icon\">\r\n <img alt=\"GlobalMLS logo\" class=\"app-icon__img\" src=\"https://storage.googleapis.com/maplander-develop/public/file/front-end/email/globalmls.png\">\r\n </div>\r\n </div>\r\n <div class=\"content__stat\">\r\n <div class=\"stat__icon-container\">\r\n <mat-icon>favorite</mat-icon>\r\n </div>\r\n <p class=\"stat__count\">\r\n {{data.favorites || 0}}\r\n </p>\r\n <p class=\"stat__label\">\r\n Veces a\u00F1adida a favoritos\r\n </p>\r\n </div>\r\n <div class=\"content__stat\">\r\n <div class=\"stat__icon-container\">\r\n <mat-icon>share</mat-icon>\r\n </div>\r\n <p class=\"stat__count\">\r\n {{data.shared || 0}}\r\n </p>\r\n <p class=\"stat__label\">\r\n Veces compartida\r\n </p>\r\n </div>\r\n <div class=\"content__stat\">\r\n <div class=\"stat__icon-container\">\r\n <mat-icon>assignment</mat-icon>\r\n </div>\r\n <p class=\"stat__count\">\r\n {{data.requests || 0}}\r\n </p>\r\n <p class=\"stat__label\">\r\n Solicitudes de informaci\u00F3n\r\n </p>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
34
|
-
styles: ["::ng-deep .stats-panel-class{width:30%;height:80%}::ng-deep .stats-panel-class mat-dialog-container{padding:0;overflow:hidden}@media screen and (max-width:600px){::ng-deep .stats-panel-class{min-width:90%!important}}:host{display:block;width:100%;height:100%}.stats{width:100%;height:100%;overflow:auto}.stats__toolbar{width:100%;height:64px;display:flex;position:-webkit-sticky;position:sticky;top:0;z-index:2;justify-content:space-between}.stats__content{padding:16px;box-sizing:content-box;display:-ms-grid;display:grid;-ms-grid-columns:(
|
|
34
|
+
styles: ["::ng-deep .stats-panel-class{width:30%;height:80%}::ng-deep .stats-panel-class mat-dialog-container{padding:0;overflow:hidden}@media screen and (max-width:600px){::ng-deep .stats-panel-class{min-width:90%!important}}:host{display:block;width:100%;height:100%}.stats{width:100%;height:100%;overflow:auto}.stats__toolbar{width:100%;height:64px;display:flex;position:-webkit-sticky;position:sticky;top:0;z-index:2;justify-content:space-between}.stats__content{padding:16px;box-sizing:content-box;display:-ms-grid;display:grid;-ms-grid-columns:(50%)[2];grid-template-columns:repeat(2,50%)}.content__stat{border:1px solid #000;border-radius:8px;padding:16px;box-sizing:content-box;position:relative;margin:0 16px 16px 0}.stat__icon-container{position:absolute;top:16px;right:16px}.stat__app-icon{position:absolute;bottom:16px;right:16px}.app-icon__img{width:24px;height:24px;border-radius:4px}.stat__count{font-size:32px;font-weight:700;margin:0 0 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat__label{width:80%;margin:0}"]
|
|
35
35
|
}] }
|
|
36
36
|
];
|
|
37
37
|
/** @nocollapse */
|
|
@@ -121,7 +121,7 @@ PropertyCardComponent.decorators = [
|
|
|
121
121
|
{ type: Component, args: [{
|
|
122
122
|
selector: 'lib-property-card',
|
|
123
123
|
template: "<div class=\"property-card\">\r\n <ng-template [ngIf]=\"!isOPI\">\r\n <div class=\"property-card__favorite\">\r\n <button class=\"favorite__button\" mat-icon-button (click)=\"favorite()\">\r\n <ng-template [ngIf]=\"isFavorite\" [ngIfElse]=\"noIsFavorite\">\r\n <mat-icon>favorite</mat-icon>\r\n </ng-template>\r\n <ng-template #noIsFavorite>\r\n <mat-icon>favorite_border</mat-icon>\r\n </ng-template>\r\n </button>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"showDiscard\">\r\n <div class=\"property-card__discard\">\r\n <button class=\"discard__button\" mat-icon-button (click)=\"discard()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngIf]=\"isOPI && showAlert\">\r\n <div class=\"expiration-message\">\r\n <p>\r\n Aviso\r\n <br>\r\n Este anuncio expira el {{info.endPublishDate | libFormatDate : true : 'dd/MM/yyyy'}}\r\n </p>\r\n </div>\r\n </ng-template>\r\n <a routerLink=\"{{href || '/'}}\" [queryParams]=\"queryParams || null\" [target]=\"target || null\"\r\n [state]=\"state || null\"\r\n class=\"property-card__image\" (mouseover)=\"onFrontImageOver()\"\r\n (mouseleave)=\"onFrontImageLeave()\">\r\n <img [src]=\"info.image\" alt=\"Property image\" libImageError [typeImage]=\"info.type\">\r\n <ng-template [ngIf]=\"mode === 'summary'\">\r\n <div class=\"property-card__body-summary\">\r\n <h2 class=\"color--white property-card__price\">\r\n {{info.price | currency}} {{info.currency}}\r\n </h2>\r\n <p class=\"color--white property-card__type\">\r\n {{info.type | propertyType}} {{info.offering | offeringType}}\r\n </p>\r\n <p class=\"color--white property-card__address body-summary__address\">\r\n {{info.address.colony}}, {{info.address.city}}\r\n </p>\r\n </div>\r\n </ng-template>\r\n </a>\r\n <ng-template [ngIf]=\"mode === 'full'\">\r\n <div class=\"property-card__body\">\r\n <div class=\"property-card__location-title\">\r\n <h2 class=\"property-card__price\">\r\n {{info.price | currency : currency : 'symbol' : '1.0-0'}} {{info.currency}}\r\n </h2>\r\n <ng-container *ngIf=\"distance !== ''\" >\r\n <h2 class=\"property-card__location\" [hidden]=\"!distance\">\r\n {{distance}}\r\n </h2>\r\n </ng-container>\r\n </div>\r\n <p class=\"property-card__type\">\r\n {{info.type | propertyType}} {{info.offering | offeringType}}\r\n </p>\r\n <p class=\"property-card__address\">\r\n {{info.address.colony}}, {{info.address.city}}\r\n </p>\r\n <ng-template [ngIf]=\"info.features\">\r\n <div class=\"property-card__features\">\r\n <ng-template [ngIf]=\"info.features && info.features.bedrooms && info.features.bedrooms > 0\">\r\n <p class=\"property-card__feature\">\r\n <span class=\"property-card__icon ic-features-bedroom\"></span>\r\n {{info.features.bedrooms}}\r\n </p>\r\n <span class=\"property-card__divider\"></span>\r\n </ng-template>\r\n <ng-template [ngIf]=\"info.features && info.features.bathrooms && info.features.bathrooms > 0 \">\r\n <p class=\"property-card__feature\">\r\n <span class=\"property-card__icon ic-features-bathroom\"></span>\r\n {{info.features.bathrooms}}\r\n </p>\r\n <span class=\"property-card__divider\"></span>\r\n </ng-template>\r\n <ng-template [ngIf]=\"info.features && info.features.mainArea && info.features.mainArea > 0\">\r\n <p class=\"property-card__feature\">\r\n <span class=\"property-card__icon ic-features-surface\"></span>\r\n {{info.features.mainArea}}\r\n <ng-template [ngIf]=\"info.features.areaUnit && info.features.areaUnit === 'M2'\"\r\n [ngIfElse]=\"ftUnit\">\r\n m<sup>2</sup>\r\n </ng-template>\r\n <ng-template #ftUnit>\r\n sq ft\r\n </ng-template>\r\n </p>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n</div>\r\n",
|
|
124
|
-
styles: [":host{display:block;width:calc(100% - 16px);margin:16px auto;border-radius:16px}.property-card{width:100%;border-radius:16px;position:relative}.property-card__favorite{position:absolute;top:4px;right:4px;border-radius:50%;z-index:1;width:40px;height:40px;display:flex}.favorite__button{margin:auto}.expiration-message{position:absolute;top:0;background-color:#fff;width:100%;height:80px;z-index:1;text-align:center;color:red;font-size:16px;margin:auto;opacity:.9}.property-card__discard{position:absolute;right:8px;bottom:8px;z-index:1;width:40px;height:40px;border-radius:16px;display:flex}.discard__button{margin:auto}.property-card__image{width:100%;border-radius:16px;padding-bottom:
|
|
124
|
+
styles: [":host{display:block;width:calc(100% - 16px);margin:16px auto;border-radius:16px}.property-card{width:100%;border-radius:16px;position:relative}.property-card__favorite{position:absolute;top:4px;right:4px;border-radius:50%;z-index:1;width:40px;height:40px;display:flex}.favorite__button{margin:auto}.expiration-message{position:absolute;top:0;background-color:#fff;width:100%;height:80px;z-index:1;text-align:center;color:red;font-size:16px;margin:auto;opacity:.9}.property-card__discard{position:absolute;right:8px;bottom:8px;z-index:1;width:40px;height:40px;border-radius:16px;display:flex}.discard__button{margin:auto}.property-card__image{width:100%;border-radius:16px;padding-bottom:75%;position:relative;text-decoration:none;display:block}.property-card__image:hover{width:calc(100% - 6px);padding-bottom:calc((100% - 6px)/ 4 * 3)}.property-card__image img{border-radius:16px;position:absolute;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.property-card__body{padding:8px;box-sizing:border-box}.property-card__body-summary{padding:8px;box-sizing:border-box;position:absolute;bottom:0;width:100%;border-radius:16px;background:linear-gradient(transparent,rgba(0,0,0,.8))}.body-summary__address{width:80%!important}.property-card__location-title{display:flex;width:100%;flex-direction:row;flex-wrap:wrap}.property-card__location{font-size:12px;margin:4px;color:#707070}@media (min-width:1200px){.property-card__location{font-size:14px}}.property-card__location:empty{width:60%;height:14px;background:#e0e0e0;border-radius:16px}.property-card__price{margin:3px 0;font-size:16px}.property-card__price:empty{width:60%;height:16px;background:#e0e0e0;border-radius:16px}.property-card__type{margin:3px 0}.property-card__type:empty{width:70%;height:16px;border-radius:16px;background:#e0e0e0}.property-card__address{margin:3px 0;color:#707070;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.property-card__address:empty{width:80%;height:16px;border-radius:16px;background:#e0e0e0}.property-card__features{display:flex;margin:6px 0 0}.property-card__feature{margin:0 8px 0 0;display:flex;align-items:center;font-size:12px;color:#707070}.property-card__divider{display:block;margin:auto 8px;width:1px;height:16px;background:#9e9e9e}.property-card__icon{width:24px;height:24px;font-size:24px;margin:0 4px 0 0;color:#bdbdbd}"]
|
|
125
125
|
}] }
|
|
126
126
|
];
|
|
127
127
|
/** @nocollapse */
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
-
import { Component, Input } from '@angular/core';
|
|
5
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
6
6
|
import { PropertyTypeEnum } from '@maplander/types';
|
|
7
7
|
import { MarkerPricePipe } from './../../pipes/marker-price/marker-price.pipe';
|
|
8
8
|
import { OfferingTypePipe } from './../../pipes/offering-type/offering-type.pipe';
|
|
@@ -18,6 +18,7 @@ var FabFiltersComponent = /** @class */ (function () {
|
|
|
18
18
|
this.METERS_TO_SQ = 10.76391042;
|
|
19
19
|
this.chips = [];
|
|
20
20
|
this._subscription = new Subscription();
|
|
21
|
+
this.filterDeleted = new EventEmitter();
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
24
|
* @return {?}
|
|
@@ -77,6 +78,17 @@ var FabFiltersComponent = /** @class */ (function () {
|
|
|
77
78
|
this.openFilters();
|
|
78
79
|
}
|
|
79
80
|
};
|
|
81
|
+
/**
|
|
82
|
+
* @param {?} type
|
|
83
|
+
* @return {?}
|
|
84
|
+
*/
|
|
85
|
+
FabFiltersComponent.prototype.removeFilter = /**
|
|
86
|
+
* @param {?} type
|
|
87
|
+
* @return {?}
|
|
88
|
+
*/
|
|
89
|
+
function (type) {
|
|
90
|
+
this.filterDeleted.emit(type);
|
|
91
|
+
};
|
|
80
92
|
/**
|
|
81
93
|
* @private
|
|
82
94
|
* @param {?} filter
|
|
@@ -293,7 +305,7 @@ var FabFiltersComponent = /** @class */ (function () {
|
|
|
293
305
|
FabFiltersComponent.decorators = [
|
|
294
306
|
{ type: Component, args: [{
|
|
295
307
|
selector: 'lib-fab-filters',
|
|
296
|
-
template: "<div class=\"fab-filters\">\r\n <button mat-flat-button=\"\" color=\"primary\" class=\"btn_filters\" (click)=\"openFilters()\">\r\n Filtros\r\n </button>\r\n <div class=\"filters-container\">\r\n <ng-template [ngIf]=\"chips.length > 0\">\r\n <mat-chip-list aria-orientation=\"horizontal\">\r\n <ng-container *ngFor=\"let chip of chips\">\r\n <mat-chip (click)=\"onClickChip(chip.type)\">\r\n <ng-container [ngSwitch]=\"chip.type\">\r\n <ng-container *ngSwitchCase=\"'PROPERTY_TYPE'\">\r\n <span class=\"icon property-icon ic-property-{{chip.icon}}\"\r\n [ngStyle]=\"{'background': 'var(--' + chip.icon + ')'}\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'LISTING'\">\r\n <ng-template [ngIf]=\"chip.icon[0] !== 'mlm'\" [ngIfElse]=\"mlm\">\r\n <mat-icon class=\"listing-icon\">\r\n list\r\n </mat-icon>\r\n </ng-template>\r\n <ng-template #mlm>\r\n <mat-icon class=\"listing-icon\" svgIcon=\"opi:mlm\"></mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'AMENITIES'\">\r\n <span class=\"icon ic-amenities-{{chip.icon[0]}}\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngFor=\"let i of chip.icon\">\r\n <span class=\"icon ic-features-{{i}}\"></span>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n {{chip.text}}\r\n </mat-chip>\r\n </ng-container>\r\n </mat-chip-list>\r\n </ng-template>\r\n </div>\r\n</div>\r\n",
|
|
308
|
+
template: "<div class=\"fab-filters\">\r\n <button mat-flat-button=\"\" color=\"primary\" class=\"btn_filters\" (click)=\"openFilters()\">\r\n Filtros\r\n </button>\r\n <div class=\"filters-container\">\r\n <ng-template [ngIf]=\"chips.length > 0\">\r\n <mat-chip-list aria-orientation=\"horizontal\">\r\n <ng-container *ngFor=\"let chip of chips\">\r\n <mat-chip (click)=\"onClickChip(chip.type)\" [removable]=\"chip.type !== 'PROPERTY_TYPE' && chip.type !== 'OFFERING'\"\r\n (removed)=\"removeFilter(chip.type)\">\r\n <ng-container [ngSwitch]=\"chip.type\">\r\n <ng-container *ngSwitchCase=\"'PROPERTY_TYPE'\">\r\n <span class=\"icon property-icon ic-property-{{chip.icon}}\"\r\n [ngStyle]=\"{'background': 'var(--' + chip.icon + ')'}\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'LISTING'\">\r\n <ng-template [ngIf]=\"chip.icon[0] !== 'mlm'\" [ngIfElse]=\"mlm\">\r\n <mat-icon class=\"listing-icon\">\r\n list\r\n </mat-icon>\r\n </ng-template>\r\n <ng-template #mlm>\r\n <mat-icon class=\"listing-icon\" svgIcon=\"opi:mlm\"></mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'AMENITIES'\">\r\n <span class=\"icon ic-amenities-{{chip.icon[0]}}\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngFor=\"let i of chip.icon\">\r\n <span class=\"icon ic-features-{{i}}\"></span>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n {{chip.text}}\r\n <mat-icon matChipRemove *ngIf=\"chip.type !== 'PROPERTY_TYPE' && chip.type !== 'OFFERING'\">cancel</mat-icon>\r\n </mat-chip>\r\n </ng-container>\r\n </mat-chip-list>\r\n </ng-template>\r\n </div>\r\n</div>\r\n",
|
|
297
309
|
styles: [":host{display:block;position:inherit;top:inherit;bottom:inherit;left:inherit;right:inherit;z-index:inherit;width:inherit}.fab-filters{display:flex;width:100%;border-radius:8px 0 0 8px}.fab-filters .filters-container{width:calc(100% - 64px);height:40px;padding-right:8px;box-sizing:border-box;border-radius:4px 4px 4px 0;display:flex;align-items:center;transition:150ms}.fab-filters .filters-container mat-chip-list{width:100%;height:100%;overflow:hidden}.fab-filters .filters-container mat-chip-list mat-chip{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content}.fab-filters ::ng-deep .filters-container mat-chip-list .mat-chip-list-wrapper{width:100%;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding-bottom:16px;margin:0}.fab-filters .filters-container mat-chip-list mat-chip .icon{width:24px;height:24px;font-size:16px;border-radius:50%;margin-right:8px;display:flex;align-items:center;justify-content:center}"]
|
|
298
310
|
}] }
|
|
299
311
|
];
|
|
@@ -305,7 +317,8 @@ var FabFiltersComponent = /** @class */ (function () {
|
|
|
305
317
|
]; };
|
|
306
318
|
FabFiltersComponent.propDecorators = {
|
|
307
319
|
isOPI: [{ type: Input }],
|
|
308
|
-
mlsLabel: [{ type: Input }]
|
|
320
|
+
mlsLabel: [{ type: Input }],
|
|
321
|
+
filterDeleted: [{ type: Output }]
|
|
309
322
|
};
|
|
310
323
|
return FabFiltersComponent;
|
|
311
324
|
}());
|
|
@@ -315,6 +328,8 @@ if (false) {
|
|
|
315
328
|
FabFiltersComponent.prototype.isOPI;
|
|
316
329
|
/** @type {?} */
|
|
317
330
|
FabFiltersComponent.prototype.mlsLabel;
|
|
331
|
+
/** @type {?} */
|
|
332
|
+
FabFiltersComponent.prototype.filterDeleted;
|
|
318
333
|
/**
|
|
319
334
|
* @type {?}
|
|
320
335
|
* @private
|
|
@@ -353,4 +368,4 @@ if (false) {
|
|
|
353
368
|
*/
|
|
354
369
|
FabFiltersComponent.prototype._filtersService;
|
|
355
370
|
}
|
|
356
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1hcGxhbmRlci9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZmFiLWZpbHRlcnMvZmFiLWZpbHRlcnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFTLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBRWhGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUlsQztJQWNFLDZCQUNVLFNBQTBCLEVBQzFCLGFBQStCLEVBQy9CLGVBQStCO1FBRi9CLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFUeEIsaUJBQVksR0FBRyxXQUFXLENBQUM7UUFXMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7Ozs7SUFFRCxzQ0FBUTs7O0lBQVI7UUFBQSxpQkFXQztRQVZDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUMsU0FBUzs7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YSxDQUFDLFFBQVEsRUFBRTtnQkFDM0MsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDO2FBQ2xCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7Ozs7SUFFTyx1Q0FBUzs7OztJQUFqQjtRQUNFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDZCxJQUFJLEVBQUUsY0FBYyxDQUFDLFNBQVM7Z0JBQzlCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUMzQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O2dCQTdLRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IseXpEQUEyQzs7aUJBRTVDOzs7O2dCQWRPLGVBQWU7Z0JBQ2YsZ0JBQWdCO2dCQUloQixjQUFjOzs7d0JBV25CLEtBQUs7MkJBQ0wsS0FBSzs7SUF3S1IsMEJBQUM7Q0FBQSxBQS9LRCxJQStLQztTQTFLWSxtQkFBbUI7OztJQUM5QixvQ0FBd0I7O0lBQ3hCLHVDQUEwQjs7Ozs7SUFDMUIsMkNBQTRDOzs7OztJQUM1QyxzQ0FBd0I7Ozs7O0lBQ3hCLHVDQUFpQzs7Ozs7SUFDakMsNENBQW9DOztJQUNwQyxvQ0FBMkI7Ozs7O0lBR3pCLHdDQUFrQzs7Ozs7SUFDbEMsNENBQXVDOzs7OztJQUN2Qyw4Q0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGaWx0ZXIsIFByb3BlcnR5VHlwZUVudW19IGZyb20gJ0BtYXBsYW5kZXIvdHlwZXMnO1xyXG5pbXBvcnQge01hcmtlclByaWNlUGlwZX0gZnJvbSAnLi8uLi8uLi9waXBlcy9tYXJrZXItcHJpY2UvbWFya2VyLXByaWNlLnBpcGUnO1xyXG5pbXBvcnQge09mZmVyaW5nVHlwZVBpcGV9IGZyb20gJy4vLi4vLi4vcGlwZXMvb2ZmZXJpbmctdHlwZS9vZmZlcmluZy10eXBlLnBpcGUnO1xyXG5pbXBvcnQge0ZpbHRlckNoaXB9IGZyb20gJy4vLi4vLi4vdXRpbHMvbW9kZWxzL2ZpbHRlci1jaGlwJztcclxuaW1wb3J0IHtGaWx0ZXJDaGlwVHlwZX0gZnJvbSAnLi4vLi4vdXRpbHMvZW51bXMvZmlsdGVyLWNoaXAtdHlwZSc7XHJcbmltcG9ydCB7Q29uc3RhbnRzQ29tcG9uZW50c30gZnJvbSAnLi4vLi4vY29uc3RhbnRzQ29tcG9uZW50cyc7XHJcbmltcG9ydCB7RmlsdGVyc1NlcnZpY2V9IGZyb20gJy4vLi4vZmlsdGVycy9maWx0ZXJzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7RmlsdGVyc0NoYW5nZX0gZnJvbSAnLi8uLy4uLy4uL3V0aWxzL21vZGVscy9maWx0ZXJzLWNoYW5nZSc7XHJcbmltcG9ydCB7RmlsdGVyc1dyYXBwZXJ9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmFiLWZpbHRlcnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLWZpbHRlcnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmFiRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBpc09QSTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBtbHNMYWJlbDogc3RyaW5nO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgTUVURVJTX1RPX1NRID0gMTAuNzYzOTEwNDI7XHJcbiAgcHJpdmF0ZSBfZmlsdGVyOiBGaWx0ZXI7XHJcbiAgcHJpdmF0ZSBfd3JhcHBlcjogRmlsdGVyc1dyYXBwZXI7XHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHVibGljIGNoaXBzOiBGaWx0ZXJDaGlwW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfY3VycmVuY3k6IE1hcmtlclByaWNlUGlwZSxcclxuICAgIHByaXZhdGUgX29mZmVyaW5nUGlwZTogT2ZmZXJpbmdUeXBlUGlwZSxcclxuICAgIHByaXZhdGUgX2ZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jaGlwcyA9IFtdO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLl9maWx0ZXJzU2VydmljZS5vblN0YXJ0Q29tcG9uZW50KCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICB0aGlzLl93cmFwcGVyID0gcmVzcG9uc2U7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5fZmlsdGVyc1NlcnZpY2UuZ2V0Q2hhbmdlcygpLnN1YnNjcmliZSgocmVzcG9uc2U6IEZpbHRlcnNDaGFuZ2UpID0+IHtcclxuICAgICAgICB0aGlzLmluaXQocmVzcG9uc2UuZmlsdGVyLCByZXNwb25zZS5mdCwgcmVzcG9uc2UuaXNTaGFyZWRQcm9wZXJ0aWVzKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3dyYXBwZXIpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdbRmFiRmlsdGVyc0NvbXBvbmVudF0gd2FpdGluZyBvblN0YXJ0Q29tcG9uZW50Jyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3dyYXBwZXIub3BlbigpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NoaXAodHlwZTogRmlsdGVyQ2hpcFR5cGUpOiB2b2lkIHtcclxuICAgIGlmICh0eXBlID09PSBGaWx0ZXJDaGlwVHlwZS5QUk9QRVJUWV9UWVBFIHx8IHR5cGUgPT09IEZpbHRlckNoaXBUeXBlLk9GRkVSSU5HKSB7XHJcbiAgICAgIHRoaXMub3BlbkZpbHRlcnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdChmaWx0ZXI6IEZpbHRlciwgZnQ6IGJvb2xlYW4sIHNoYXJlZFByb3BlcnRpZXM/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoaXBzID0gW107XHJcbiAgICB0aGlzLl9maWx0ZXIgPSBmaWx0ZXI7XHJcbiAgICB0aGlzLmxpc3RpbmdUeXBlKHNoYXJlZFByb3BlcnRpZXMpO1xyXG4gICAgdGhpcy5wcm9wZXJ0eVR5cGUoKTtcclxuICAgIHRoaXMub2ZmZXJpbmdUeXBlKCk7XHJcbiAgICB0aGlzLnByaWNlKCk7XHJcbiAgICB0aGlzLnN1cmZhY2UoZnQpO1xyXG4gICAgdGhpcy5iZWRyb29tcygpO1xyXG4gICAgdGhpcy5iYXRocm9vbXMoKTtcclxuICAgIHRoaXMucGFya2luZ1BsYWNlcygpO1xyXG4gICAgdGhpcy5hbWVuaXRpZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdGluZ1R5cGUoc2hhcmVkUHJvcGVydGllcz86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc09QSSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoaXBzLnB1c2goe1xyXG4gICAgICB0eXBlOiBGaWx0ZXJDaGlwVHlwZS5MSVNUSU5HLFxyXG4gICAgICB0ZXh0OiBzaGFyZWRQcm9wZXJ0aWVzID8gJ0NvbXBhcnRpZGFzJyA6ICh0aGlzLl9maWx0ZXIubWxzID8gdGhpcy5tbHNMYWJlbCB8fCAnTUxTJyA6ICdNaSBsaXN0YScpLFxyXG4gICAgICBpY29uOiBbdGhpcy5fZmlsdGVyLm1scyA/ICdtbG0nIDogJ2xpc3QnXVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9mZmVyaW5nVHlwZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9maWx0ZXIub2ZmZXJpbmcgJiYgdGhpcy5fZmlsdGVyLnR5cGUgIT09IFByb3BlcnR5VHlwZUVudW0uTk9ORSkge1xyXG4gICAgICBsZXQgb2ZmZXJpbmcgPSB0aGlzLl9vZmZlcmluZ1BpcGUudHJhbnNmb3JtKHRoaXMuX2ZpbHRlci5vZmZlcmluZywgJyAnKS5yZXBsYWNlKC8gL2csICcnKTtcclxuICAgICAgY29uc3QgZmlyc3RMZXR0ZXIgPSBvZmZlcmluZy5zdWJzdHIoMCwgMSk7XHJcbiAgICAgIG9mZmVyaW5nID0gb2ZmZXJpbmcucmVwbGFjZShmaXJzdExldHRlciwgJycpO1xyXG4gICAgICBvZmZlcmluZyA9IGAke2ZpcnN0TGV0dGVyLnRvTG9jYWxlVXBwZXJDYXNlKCl9JHtvZmZlcmluZ31gO1xyXG4gICAgICB0aGlzLmNoaXBzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6IEZpbHRlckNoaXBUeXBlLk9GRkVSSU5HLFxyXG4gICAgICAgIHRleHQ6IG9mZmVyaW5nLFxyXG4gICAgICAgIGljb246IG51bGxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByb3BlcnR5VHlwZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9maWx0ZXIudHlwZSAmJiB0aGlzLl9maWx0ZXIudHlwZSAhPT0gUHJvcGVydHlUeXBlRW51bS5OT05FKSB7XHJcbiAgICAgIENvbnN0YW50c0NvbXBvbmVudHMuUHJvcGVydHlUeXBlTGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSB0aGlzLl9maWx0ZXIudHlwZSkge1xyXG4gICAgICAgICAgdGhpcy5jaGlwcy5wdXNoKHtcclxuICAgICAgICAgICAgdHlwZTogRmlsdGVyQ2hpcFR5cGUuUFJPUEVSVFlfVFlQRSxcclxuICAgICAgICAgICAgdGV4dDogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICBpY29uOiBbaXRlbS5pY29uTmFtZV1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByaWNlKCk6IHZvaWQge1xyXG4gICAgbGV0IG1pbiA9ICcnLCBtYXggPSAnJywgY3VycmVuY3k7XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyLmRvd25MaW1pdFByaWNlICE9PSAwKSB7XHJcbiAgICAgIG1pbiArPSB0aGlzLl9jdXJyZW5jeS50cmFuc2Zvcm0odGhpcy5fZmlsdGVyLmRvd25MaW1pdFByaWNlKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9maWx0ZXIudXBMaW1pdFByaWNlICE9PSAwKSB7XHJcbiAgICAgIG1heCArPSB0aGlzLl9jdXJyZW5jeS50cmFuc2Zvcm0odGhpcy5fZmlsdGVyLnVwTGltaXRQcmljZSk7XHJcbiAgICB9XHJcbiAgICBpZiAobWluICE9PSAnJyB8fCBtYXggIT09ICcnKSB7XHJcbiAgICAgIGN1cnJlbmN5ID0gdGhpcy5fZmlsdGVyLmN1cnJlbmN5ID8gdGhpcy5fZmlsdGVyLmN1cnJlbmN5IDogJyc7XHJcbiAgICAgIHRoaXMuY2hpcHMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogRmlsdGVyQ2hpcFR5cGUuUFJJQ0UsXHJcbiAgICAgICAgdGV4dDogYCR7bWlufSR7bWluICE9PSAnJyAmJiBtYXggIT09ICcnID8gJyAtICcgOiAnJ30ke21heH0gJHtjdXJyZW5jeX1gLFxyXG4gICAgICAgIGljb246IFsncHJpY2UnXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3VyZmFjZShmdDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2ZpbHRlci5tYWluQXJlYSAhPT0gMCkge1xyXG4gICAgICB0aGlzLmNoaXBzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6IEZpbHRlckNoaXBUeXBlLlNVUkZBQ0UsXHJcbiAgICAgICAgdGV4dDogKGZ0ID8gKHRoaXMuX2ZpbHRlci5tYWluQXJlYSAvIHRoaXMuTUVURVJTX1RPX1NRKS50b0ZpeGVkKDApLnRvU3RyaW5nKCkgOiB0aGlzLl9maWx0ZXIubWFpbkFyZWEudG9TdHJpbmcoKSkgKyAoZnQgPyAnIHNxIGZ0JyA6ICcgbTInKSxcclxuICAgICAgICBpY29uOiBbJ3N1cmZhY2UnXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYmVkcm9vbXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyLmJlZHJvb21zICE9PSAwKSB7XHJcbiAgICAgIHRoaXMuY2hpcHMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogRmlsdGVyQ2hpcFR5cGUuQkVEUk9PTVMsXHJcbiAgICAgICAgdGV4dDogdGhpcy5fZmlsdGVyLmJlZHJvb21zLnRvU3RyaW5nKCksXHJcbiAgICAgICAgaWNvbjogWydiZWRyb29tJ11cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJhdGhyb29tcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9maWx0ZXIuYmF0aHJvb21zICE9PSAwKSB7XHJcbiAgICAgIHRoaXMuY2hpcHMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogRmlsdGVyQ2hpcFR5cGUuQkFUSFJPT01TLFxyXG4gICAgICAgIHRleHQ6IHRoaXMuX2ZpbHRlci5iYXRocm9vbXMudG9TdHJpbmcoKSxcclxuICAgICAgICBpY29uOiBbJ2JhdGhyb29tJ11cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcmtpbmdQbGFjZXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyLnBhcmtpbmdQbGFjZXMgIT09IDApIHtcclxuICAgICAgdGhpcy5jaGlwcy5wdXNoKHtcclxuICAgICAgICB0eXBlOiBGaWx0ZXJDaGlwVHlwZS5QQVJLSU5HX1BMQUNFUyxcclxuICAgICAgICB0ZXh0OiB0aGlzLl9maWx0ZXIucGFya2luZ1BsYWNlcy50b1N0cmluZygpLFxyXG4gICAgICAgIGljb246IFsncGFya2luZyddXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhbWVuaXRpZXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyLmV4dHJhcyAmJiB0aGlzLl9maWx0ZXIuZXh0cmFzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5jaGlwcy5wdXNoKHtcclxuICAgICAgICB0eXBlOiBGaWx0ZXJDaGlwVHlwZS5BTUVOSVRJRVMsXHJcbiAgICAgICAgdGV4dDogdGhpcy5fZmlsdGVyLmV4dHJhcy5sZW5ndGgudG9TdHJpbmcoKSxcclxuICAgICAgICBpY29uOiBbdGhpcy5fZmlsdGVyLmV4dHJhc1swXV1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
371
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1hcGxhbmRlci9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZmFiLWZpbHRlcnMvZmFiLWZpbHRlcnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQVMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFFaEYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSWxDO0lBZUUsNkJBQ1UsU0FBMEIsRUFDMUIsYUFBK0IsRUFDL0IsZUFBK0I7UUFGL0IsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQVR4QixpQkFBWSxHQUFHLFdBQVcsQ0FBQztRQVcxQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztJQUMxRCxDQUFDOzs7O0lBRUQsc0NBQVE7OztJQUFSO1FBQUEsaUJBV0M7UUFWQyxJQUFJLENB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SUFHekIsd0NBQWtDOzs7OztJQUNsQyw0Q0FBdUM7Ozs7O0lBQ3ZDLDhDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGaWx0ZXIsIFByb3BlcnR5VHlwZUVudW19IGZyb20gJ0BtYXBsYW5kZXIvdHlwZXMnO1xyXG5pbXBvcnQge01hcmtlclByaWNlUGlwZX0gZnJvbSAnLi8uLi8uLi9waXBlcy9tYXJrZXItcHJpY2UvbWFya2VyLXByaWNlLnBpcGUnO1xyXG5pbXBvcnQge09mZmVyaW5nVHlwZVBpcGV9IGZyb20gJy4vLi4vLi4vcGlwZXMvb2ZmZXJpbmctdHlwZS9vZmZlcmluZy10eXBlLnBpcGUnO1xyXG5pbXBvcnQge0ZpbHRlckNoaXB9IGZyb20gJy4vLi4vLi4vdXRpbHMvbW9kZWxzL2ZpbHRlci1jaGlwJztcclxuaW1wb3J0IHtGaWx0ZXJDaGlwVHlwZX0gZnJvbSAnLi4vLi4vdXRpbHMvZW51bXMvZmlsdGVyLWNoaXAtdHlwZSc7XHJcbmltcG9ydCB7Q29uc3RhbnRzQ29tcG9uZW50c30gZnJvbSAnLi4vLi4vY29uc3RhbnRzQ29tcG9uZW50cyc7XHJcbmltcG9ydCB7RmlsdGVyc1NlcnZpY2V9IGZyb20gJy4vLi4vZmlsdGVycy9maWx0ZXJzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7RmlsdGVyc0NoYW5nZX0gZnJvbSAnLi8uLy4uLy4uL3V0aWxzL21vZGVscy9maWx0ZXJzLWNoYW5nZSc7XHJcbmltcG9ydCB7RmlsdGVyc1dyYXBwZXJ9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmFiLWZpbHRlcnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLWZpbHRlcnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmFiRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBpc09QSTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBtbHNMYWJlbDogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBmaWx0ZXJEZWxldGVkOiBFdmVudEVtaXR0ZXI8RmlsdGVyQ2hpcFR5cGU+O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgTUVURVJTX1RPX1NRID0gMTAuNzYzOTEwNDI7XHJcbiAgcHJpdmF0ZSBfZmlsdGVyOiBGaWx0ZXI7XHJcbiAgcHJpdmF0ZSBfd3JhcHBlcjogRmlsdGVyc1dyYXBwZXI7XHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHVibGljIGNoaXBzOiBGaWx0ZXJDaGlwW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfY3VycmVuY3k6IE1hcmtlclByaWNlUGlwZSxcclxuICAgIHByaXZhdGUgX29mZmVyaW5nUGlwZTogT2ZmZXJpbmdUeXBlUGlwZSxcclxuICAgIHByaXZhdGUgX2ZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jaGlwcyA9IFtdO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICAgdGhpcy5maWx0ZXJEZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJDaGlwVHlwZT4oKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5fZmlsdGVyc1NlcnZpY2Uub25TdGFydENvbXBvbmVudCgpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5fd3JhcHBlciA9IHJlc3BvbnNlO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLmdldENoYW5nZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBGaWx0ZXJzQ2hhbmdlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pbml0KHJlc3BvbnNlLmZpbHRlciwgcmVzcG9uc2UuZnQsIHJlc3BvbnNlLmlzU2hhcmVkUHJvcGVydGllcyk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG9wZW5GaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl93cmFwcGVyKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignW0ZhYkZpbHRlcnNDb21wb25lbnRdIHdhaXRpbmcgb25TdGFydENvbXBvbmVudCcpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl93cmFwcGVyLm9wZW4oKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tDaGlwKHR5cGU6IEZpbHRlckNoaXBUeXBlKTogdm9pZCB7XHJcbiAgICBpZiAodHlwZSA9PT0gRmlsdGVyQ2hpcFR5cGUuUFJPUEVSVFlfVFlQRSB8fCB0eXBlID09PSBGaWx0ZXJDaGlwVHlwZS5PRkZFUklORykge1xyXG4gICAgICB0aGlzLm9wZW5GaWx0ZXJzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlbW92ZUZpbHRlcih0eXBlOiBGaWx0ZXJDaGlwVHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJEZWxldGVkLmVtaXQodHlwZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXQoZmlsdGVyOiBGaWx0ZXIsIGZ0OiBib29sZWFuLCBzaGFyZWRQcm9wZXJ0aWVzPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5jaGlwcyA9IFtdO1xyXG4gICAgdGhpcy5fZmlsdGVyID0gZmlsdGVyO1xyXG4gICAgdGhpcy5saXN0aW5nVHlwZShzaGFyZWRQcm9wZXJ0aWVzKTtcclxuICAgIHRoaXMucHJvcGVydHlUeXBlKCk7XHJcbiAgICB0aGlzLm9mZmVyaW5nVHlwZSgpO1xyXG4gICAgdGhpcy5wcmljZSgpO1xyXG4gICAgdGhpcy5zdXJmYWNlKGZ0KTtcclxuICAgIHRoaXMuYmVkcm9vbXMoKTtcclxuICAgIHRoaXMuYmF0aHJvb21zKCk7XHJcbiAgICB0aGlzLnBhcmtpbmdQbGFjZXMoKTtcclxuICAgIHRoaXMuYW1lbml0aWVzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxpc3RpbmdUeXBlKHNoYXJlZFByb3BlcnRpZXM/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNPUEkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGlwcy5wdXNoKHtcclxuICAgICAgdHlwZTogRmlsdGVyQ2hpcFR5cGUuTElTVElORyxcclxuICAgICAgdGV4dDogc2hhcmVkUHJvcGVydGllcyA/ICdDb21wYXJ0aWRhcycgOiAodGhpcy5fZmlsdGVyLm1scyA/IHRoaXMubWxzTGFiZWwgfHwgJ01MUycgOiAnTWkgbGlzdGEnKSxcclxuICAgICAgaWNvbjogW3RoaXMuX2ZpbHRlci5tbHMgPyAnbWxtJyA6ICdsaXN0J11cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvZmZlcmluZ1R5cGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyLm9mZmVyaW5nICYmIHRoaXMuX2ZpbHRlci50eXBlICE9PSBQcm9wZXJ0eVR5cGVFbnVtLk5PTkUpIHtcclxuICAgICAgbGV0IG9mZmVyaW5nID0gdGhpcy5fb2ZmZXJpbmdQaXBlLnRyYW5zZm9ybSh0aGlzLl9maWx0ZXIub2ZmZXJpbmcsICcgJykucmVwbGFjZSgvIC9nLCAnJyk7XHJcbiAgICAgIGNvbnN0IGZpcnN0TGV0dGVyID0gb2ZmZXJpbmcuc3Vic3RyKDAsIDEpO1xyXG4gICAgICBvZmZlcmluZyA9IG9mZmVyaW5nLnJlcGxhY2UoZmlyc3RMZXR0ZXIsICcnKTtcclxuICAgICAgb2ZmZXJpbmcgPSBgJHtmaXJzdExldHRlci50b0xvY2FsZVVwcGVyQ2FzZSgpfSR7b2ZmZXJpbmd9YDtcclxuICAgICAgdGhpcy5jaGlwcy5wdXNoKHtcclxuICAgICAgICB0eXBlOiBGaWx0ZXJDaGlwVHlwZS5PRkZFUklORyxcclxuICAgICAgICB0ZXh0OiBvZmZlcmluZyxcclxuICAgICAgICBpY29uOiBudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9wZXJ0eVR5cGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyLnR5cGUgJiYgdGhpcy5fZmlsdGVyLnR5cGUgIT09IFByb3BlcnR5VHlwZUVudW0uTk9ORSkge1xyXG4gICAgICBDb25zdGFudHNDb21wb25lbnRzLlByb3BlcnR5VHlwZUxpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBpZiAoaXRlbS52YWx1ZSA9PT0gdGhpcy5fZmlsdGVyLnR5cGUpIHtcclxuICAgICAgICAgIHRoaXMuY2hpcHMucHVzaCh7XHJcbiAgICAgICAgICAgIHR5cGU6IEZpbHRlckNoaXBUeXBlLlBST1BFUlRZX1RZUEUsXHJcbiAgICAgICAgICAgIHRleHQ6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgICAgaWNvbjogW2l0ZW0uaWNvbk5hbWVdXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcmljZSgpOiB2b2lkIHtcclxuICAgIGxldCBtaW4gPSAnJywgbWF4ID0gJycsIGN1cnJlbmN5O1xyXG4gICAgaWYgKHRoaXMuX2ZpbHRlci5kb3duTGltaXRQcmljZSAhPT0gMCkge1xyXG4gICAgICBtaW4gKz0gdGhpcy5fY3VycmVuY3kudHJhbnNmb3JtKHRoaXMuX2ZpbHRlci5kb3duTGltaXRQcmljZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyLnVwTGltaXRQcmljZSAhPT0gMCkge1xyXG4gICAgICBtYXggKz0gdGhpcy5fY3VycmVuY3kudHJhbnNmb3JtKHRoaXMuX2ZpbHRlci51cExpbWl0UHJpY2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKG1pbiAhPT0gJycgfHwgbWF4ICE9PSAnJykge1xyXG4gICAgICBjdXJyZW5jeSA9IHRoaXMuX2ZpbHRlci5jdXJyZW5jeSA/IHRoaXMuX2ZpbHRlci5jdXJyZW5jeSA6ICcnO1xyXG4gICAgICB0aGlzLmNoaXBzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6IEZpbHRlckNoaXBUeXBlLlBSSUNFLFxyXG4gICAgICAgIHRleHQ6IGAke21pbn0ke21pbiAhPT0gJycgJiYgbWF4ICE9PSAnJyA/ICcgLSAnIDogJyd9JHttYXh9ICR7Y3VycmVuY3l9YCxcclxuICAgICAgICBpY29uOiBbJ3ByaWNlJ11cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1cmZhY2UoZnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9maWx0ZXIubWFpbkFyZWEgIT09IDApIHtcclxuICAgICAgdGhpcy5jaGlwcy5wdXNoKHtcclxuICAgICAgICB0eXBlOiBGaWx0ZXJDaGlwVHlwZS5TVVJGQUNFLFxyXG4gICAgICAgIHRleHQ6IChmdCA/ICh0aGlzLl9maWx0ZXIubWFpbkFyZWEgLyB0aGlzLk1FVEVSU19UT19TUSkudG9GaXhlZCgwKS50b1N0cmluZygpIDogdGhpcy5fZmlsdGVyLm1haW5BcmVhLnRvU3RyaW5nKCkpICsgKGZ0ID8gJyBzcSBmdCcgOiAnIG0yJyksXHJcbiAgICAgICAgaWNvbjogWydzdXJmYWNlJ11cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJlZHJvb21zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2ZpbHRlci5iZWRyb29tcyAhPT0gMCkge1xyXG4gICAgICB0aGlzLmNoaXBzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6IEZpbHRlckNoaXBUeXBlLkJFRFJPT01TLFxyXG4gICAgICAgIHRleHQ6IHRoaXMuX2ZpbHRlci5iZWRyb29tcy50b1N0cmluZygpLFxyXG4gICAgICAgIGljb246IFsnYmVkcm9vbSddXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBiYXRocm9vbXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyLmJhdGhyb29tcyAhPT0gMCkge1xyXG4gICAgICB0aGlzLmNoaXBzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6IEZpbHRlckNoaXBUeXBlLkJBVEhST09NUyxcclxuICAgICAgICB0ZXh0OiB0aGlzLl9maWx0ZXIuYmF0aHJvb21zLnRvU3RyaW5nKCksXHJcbiAgICAgICAgaWNvbjogWydiYXRocm9vbSddXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJraW5nUGxhY2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2ZpbHRlci5wYXJraW5nUGxhY2VzICE9PSAwKSB7XHJcbiAgICAgIHRoaXMuY2hpcHMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogRmlsdGVyQ2hpcFR5cGUuUEFSS0lOR19QTEFDRVMsXHJcbiAgICAgICAgdGV4dDogdGhpcy5fZmlsdGVyLnBhcmtpbmdQbGFjZXMudG9TdHJpbmcoKSxcclxuICAgICAgICBpY29uOiBbJ3BhcmtpbmcnXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYW1lbml0aWVzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2ZpbHRlci5leHRyYXMgJiYgdGhpcy5fZmlsdGVyLmV4dHJhcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY2hpcHMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogRmlsdGVyQ2hpcFR5cGUuQU1FTklUSUVTLFxyXG4gICAgICAgIHRleHQ6IHRoaXMuX2ZpbHRlci5leHRyYXMubGVuZ3RoLnRvU3RyaW5nKCksXHJcbiAgICAgICAgaWNvbjogW3RoaXMuX2ZpbHRlci5leHRyYXNbMF1dXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|