@maplander/components 0.19.14 → 0.20.2
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/_theming.scss +4 -0
- package/bundles/maplander-components.umd.js +171 -39
- package/bundles/maplander-components.umd.js.map +1 -1
- package/bundles/maplander-components.umd.min.js +2 -2
- package/bundles/maplander-components.umd.min.js.map +1 -1
- package/esm2015/lib/components/filters/filters.component.js +8 -5
- package/esm2015/lib/components/filters/filters.module.js +3 -1
- package/esm2015/lib/components/property/components/details/details.component.js +3 -3
- package/esm2015/lib/components/property/components/editor/editor.component.js +13 -3
- package/esm2015/lib/components/property/components/multimedia-uploader/multimedia-uploader.component.js +7 -1
- package/esm2015/lib/components/property/components/property/property.component.js +12 -4
- package/esm2015/lib/components/property/validators/currency-filter-validator.js +36 -0
- package/esm2015/lib/components/property-card/property-card.component.js +70 -3
- package/esm5/lib/components/filters/filters.component.js +8 -5
- package/esm5/lib/components/filters/filters.module.js +3 -1
- package/esm5/lib/components/property/components/details/details.component.js +3 -3
- package/esm5/lib/components/property/components/editor/editor.component.js +13 -3
- package/esm5/lib/components/property/components/multimedia-uploader/multimedia-uploader.component.js +7 -1
- package/esm5/lib/components/property/components/property/property.component.js +12 -4
- package/esm5/lib/components/property/validators/currency-filter-validator.js +36 -0
- package/esm5/lib/components/property-card/property-card.component.js +84 -3
- package/fesm2015/maplander-components.js +158 -40
- package/fesm2015/maplander-components.js.map +1 -1
- package/fesm5/maplander-components.js +172 -40
- package/fesm5/maplander-components.js.map +1 -1
- package/lib/components/property/components/editor/editor.component.d.ts +1 -0
- package/lib/components/property/components/property/property.component.d.ts +3 -1
- package/lib/components/property/validators/currency-filter-validator.d.ts +2 -0
- package/lib/components/property-card/property-card.component.d.ts +7 -2
- package/maplander-components.metadata.json +1 -1
- package/package.json +12 -12
|
@@ -33,6 +33,7 @@ var PropertyEventType = {
|
|
|
33
33
|
CLIENTS: 'CLIENTS',
|
|
34
34
|
BACK: 'BACK',
|
|
35
35
|
SHOW_AGENTS: 'SHOW_AGENTS',
|
|
36
|
+
TARPS: 'TARPS',
|
|
36
37
|
};
|
|
37
38
|
export { PropertyEventType };
|
|
38
39
|
/**
|
|
@@ -80,6 +81,7 @@ var PropertyComponent = /** @class */ (function () {
|
|
|
80
81
|
* @return {?}
|
|
81
82
|
*/
|
|
82
83
|
function () {
|
|
84
|
+
// this.agentActions('SHOW_AGENTS');
|
|
83
85
|
};
|
|
84
86
|
/**
|
|
85
87
|
* @param {?} changes
|
|
@@ -140,7 +142,10 @@ var PropertyComponent = /** @class */ (function () {
|
|
|
140
142
|
*/
|
|
141
143
|
function () {
|
|
142
144
|
this.agentActions('SHARE');
|
|
143
|
-
this._share.open(
|
|
145
|
+
this._share.open({
|
|
146
|
+
url: this.completeProperty.property.url,
|
|
147
|
+
urlUser: this.userUrl
|
|
148
|
+
});
|
|
144
149
|
};
|
|
145
150
|
/**
|
|
146
151
|
* @return {?}
|
|
@@ -540,8 +545,8 @@ var PropertyComponent = /** @class */ (function () {
|
|
|
540
545
|
PropertyComponent.decorators = [
|
|
541
546
|
{ type: Component, args: [{
|
|
542
547
|
selector: 'lib-property',
|
|
543
|
-
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 Asesores\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'))\">\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 <!-- 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 </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",
|
|
544
|
-
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:calc((100% - 25%)/ 4 * 3);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:calc(100% / 3);width:calc(100% / 3);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:calc(100% / 4 * 3);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:calc(100% / 4 * 3)}}.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:
|
|
548
|
+
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",
|
|
549
|
+
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:calc((100% - 25%)/ 4 * 3);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:calc(100% / 3);width:calc(100% / 3);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:calc(100% / 4 * 3);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:calc(100% / 4 * 3)}}.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}"]
|
|
545
550
|
}] }
|
|
546
551
|
];
|
|
547
552
|
/** @nocollapse */
|
|
@@ -567,6 +572,7 @@ var PropertyComponent = /** @class */ (function () {
|
|
|
567
572
|
isFavorite: [{ type: Input }],
|
|
568
573
|
disableConfirmAnnounce: [{ type: Input }],
|
|
569
574
|
currencyConverted: [{ type: Input }],
|
|
575
|
+
userUrl: [{ type: Input }],
|
|
570
576
|
change: [{ type: Output }],
|
|
571
577
|
modeChange: [{ type: Output }]
|
|
572
578
|
};
|
|
@@ -597,6 +603,8 @@ if (false) {
|
|
|
597
603
|
/** @type {?} */
|
|
598
604
|
PropertyComponent.prototype.currencyConverted;
|
|
599
605
|
/** @type {?} */
|
|
606
|
+
PropertyComponent.prototype.userUrl;
|
|
607
|
+
/** @type {?} */
|
|
600
608
|
PropertyComponent.prototype.change;
|
|
601
609
|
/** @type {?} */
|
|
602
610
|
PropertyComponent.prototype.modeChange;
|
|
@@ -680,4 +688,4 @@ if (false) {
|
|
|
680
688
|
*/
|
|
681
689
|
PropertyComponent.prototype._statsService;
|
|
682
690
|
}
|
|
683
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1hcGxhbmRlci9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcHJvcGVydHkvY29tcG9uZW50cy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFDTCxPQUFPLEVBRVAsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixXQUFXLEVBRVgsYUFBYSxFQUNiLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsY0FBYyxFQUVmLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBSWhELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN4QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7SUFHbEQsUUFBUyxRQUFRO0lBQ2pCLFFBQVMsUUFBUTtJQUNqQixVQUFXLFVBQVU7SUFDckIsTUFBTyxNQUFNO0lBQ2IsTUFBTyxNQUFNO0lBQ2IsU0FBVSxTQUFTO0lBQ25C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Z0JBTHRCLGVBQWU7Z0JBUWYsWUFBWTtnQkFDWixjQUFjO2dCQUhkLG9CQUFvQjtnQkFLcEIsWUFBWTs7OzJCQWtDakIsS0FBSzt3QkFDTCxLQUFLOytCQUNMLEtBQUs7dUJBQ0wsS0FBSztpQ0FDTCxLQUFLOzBCQUNMLEtBQUs7MkJBQ0wsS0FBSzt5Q0FDTCxLQUFLOzZCQUNMLEtBQUs7eUNBQ0wsS0FBSztvQ0FDTCxLQUFLO3lCQUNMLE1BQU07NkJBQ04sTUFBTTs7SUFnU1Qsd0JBQUM7Q0FBQSxBQWxURCxJQWtUQztTQTdTWSxpQkFBaUI7OztJQUM1QixxQ0FBdUM7O0lBQ3ZDLGtDQUF3Qjs7SUFDeEIseUNBQXdDOztJQUN4QyxpQ0FBMkM7O0lBQzNDLDJDQUFrSDs7SUFDbEgsb0NBQTBCOztJQUMxQixxQ0FBMEI7O0lBQzFCLG1EQUF5Qzs7SUFDekMsdUNBQTZCOztJQUM3QixtREFBeUM7O0lBQ3pDLDhDQUFnRTs7SUFDaEUsbUNBQW9EOztJQUNwRCx1Q0FBZ0U7O0lBQ2hFLHVDQUEyQjs7SUFDM0Isa0NBQXNCOztJQUN0Qix5Q0FBNEI7O0lBQzVCLDRDQUFnQzs7SUFDaEMsd0NBQWtDOztJQUNsQyw0Q0FJRTs7SUFDRiw2Q0FBNkM7Ozs7O0lBQzdDLDJDQUFnQzs7Ozs7SUFDaEMsc0NBQStCOzs7OztJQUMvQiw0Q0FBeUM7Ozs7O0lBQ3pDLDJDQUEyQzs7Ozs7SUFDM0MsK0NBQStDOzs7OztJQUc3QyxvQ0FBNEQ7Ozs7O0lBQzVELDZDQUFtRDs7Ozs7SUFDbkQsNkNBQWdEOzs7OztJQUNoRCxzQ0FBa0M7Ozs7O0lBQ2xDLG1DQUE0Qjs7Ozs7SUFDNUIscUNBQWdDOzs7OztJQUNoQyw2Q0FBOEM7Ozs7O0lBQzlDLDBDQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBZGRyZXNzLFxyXG4gIEFwcFV0aWwsXHJcbiAgRGlhbG9nUmVzcG9uc2VUeXBlLFxyXG4gIE5ld0NvbXBsZXRlUHJvcGVydHksXHJcbiAgTmV3UHJvcGVydHksXHJcbiAgUEZpbGUsXHJcbiAgUEZpbGVUeXBlRW51bSxcclxuICBQcm9wZXJ0eUluZm8sXHJcbiAgUHJvcGVydHlUeXBlRW51bSxcclxuICBTdGF0dXNUeXBlRW51bSxcclxuICBVc2VyTWVkaWFcclxufSBmcm9tICdAbWFwbGFuZGVyL3R5cGVzJztcclxuaW1wb3J0IHtTbmFja0JhclNlcnZpY2V9IGZyb20gJ0BtYXBsYW5kZXIvY29yZSc7XHJcbmltcG9ydCB7RWRpdG9yQ29tcG9uZW50fSBmcm9tICcuLi9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7T3duZXJJbmZvQ29tcG9uZW50fSBmcm9tICcuLi9vd25lci1pbmZvL293bmVyLWluZm8uY29tcG9uZW50JztcclxuaW1wb3J0IHtEb2N1bWVudHNDb21wb25lbnR9IGZyb20gJy4uL2RvY3VtZW50cy9kb2N1bWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHtNdWx0aW1lZGlhVXBsb2FkZXJTZXJ2aWNlfSBmcm9tICcuLi9tdWx0aW1lZGlhLXVwbG9hZGVyL211bHRpbWVkaWEtdXBsb2FkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7QW5ub3VuY2VDb25maXJtU2VydmljZX0gZnJvbSAnLi4vYW5ub3VuY2UtY29uZmlybS9hbm5vdW5jZS1jb25maXJtLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RvY3VtZW50Vmlzb3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9kb2N1bWVudC12aXNvci9kb2N1bWVudC12aXNvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQge1NoYXJlU2VydmljZX0gZnJvbSAnQG1hcGxhbmRlci9zaGFyZWQnO1xyXG5pbXBvcnQge0dhbGxlcnlTZXJ2aWNlfSBmcm9tICcuLi9nYWxsZXJ5L2dhbGxlcnkuc2VydmljZSc7XHJcbmltcG9ydCB7UFJPUEVSVFlfVE9LRU59IGZyb20gJy4uLy4uL3Rva2VuJztcclxuaW1wb3J0IHtTdGF0c1NlcnZpY2V9IGZyb20gJy4uL3N0YXRzL3N0YXRzLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGVudW0gUHJvcGVydHlFdmVudFR5cGUge1xyXG4gIENSRUFURSA9ICdDUkVBVEUnLFxyXG4gIFVQREFURSA9ICdVUERBVEUnLFxyXG4gIEFOTk9VTkNFID0gJ0FOTk9VTkNFJyxcclxuICBISURFID0gJ0hJREUnLFxyXG4gIFNIT1cgPSAnU0hPVycsXHJcbiAgQUREUkVTUyA9ICdBRERSRVNTJyxcclxuICBPRkZFUiA9ICdPRkZFUicsXHJcbiAgRkFWT1JJVEUgPSAnRkFWT1JJVEUnLFxyXG4gIFJFUVVFU1RfSU5GTyA9ICdSRVFVRVNUX0lORk8nLFxyXG4gIFNIQVJFID0gJ1NIQVJFJyxcclxuICBBUkNISVZFID0gJ0FSQ0hJVkUnLFxyXG4gIFJFQUxfRVNUQVRFX0VYQ0hBTkdFID0gJ1JFQUxfRVNUQVRFX0VYQ0hBTkdFJyxcclxuICBTSEFSRV9DT01NSVNTSU9OID0gJ1NIQVJFX0NPTU1JU1NJT04nLFxyXG4gIEJST0NIVVJFID0gJ0JST0NIVVJFJyxcclxuICBQT1NURVIgPSAnUE9TVEVSJyxcclxuICBDTElFTlRTID0gJ0NMSUVOVFMnLFxyXG4gIEJBQ0sgPSAnQkFDSycsXHJcbiAgU0hPV19BR0VOVFMgPSAnU0hPV19BR0VOVFMnXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlFdmVudENoYW5nZSB7XHJcbiAgdHlwZTogUHJvcGVydHlFdmVudFR5cGU7XHJcbiAgcGF5bG9hZD86IGFueTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcHJvcGVydHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHJvcGVydHkuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgcHJvcGVydHk6IE5ld0NvbXBsZXRlUHJvcGVydHk7XHJcbiAgQElucHV0KCkgdXRpbHM6IEFwcFV0aWw7XHJcbiAgQElucHV0KCkgcHJvcGVydHlUeXBlOiBQcm9wZXJ0eVR5cGVFbnVtO1xyXG4gIEBJbnB1dCgpIG1vZGU6ICdkZXRhaWwnIHwgJ3JlY29yZCcgfCAnYWRkJztcclxuICBASW5wdXQoKSBzaGFyZWRQcm9wZXJ0eTogeyBpc1NoYXJlZDogYm9vbGVhbiwgb3duZXJBdmFpbGFibGU6IGJvb2xlYW4gfSA9IHtpc1NoYXJlZDogZmFsc2UsIG93bmVyQXZhaWxhYmxlOiB0cnVlfTtcclxuICBASW5wdXQoKSBhZGRyZXNzOiBBZGRyZXNzO1xyXG4gIEBJbnB1dCgpIG1sc0xhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzYWJsZVNoYXJlQ29tbWlzc2lvbjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpc0Zhdm9yaXRlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVDb25maXJtQW5ub3VuY2U6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VycmVuY3lDb252ZXJ0ZWQ6IHsgY3VycmVuY3k6IHN0cmluZywgcHJpY2U6IG51bWJlciB9O1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxQcm9wZXJ0eUV2ZW50Q2hhbmdlPjtcclxuICBAT3V0cHV0KCkgbW9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPCdkZXRhaWwnIHwgJ3JlY29yZCcgfCAnYWRkJz47XHJcbiAgcHVibGljIG11bHRpbWVkaWE6IFBGaWxlW107XHJcbiAgcHVibGljIGlzT1BJOiBib29sZWFuO1xyXG4gIHB1YmxpYyBjdXJyZW50SW5kZXg6IG51bWJlcjtcclxuICBwdWJsaWMgZnJvbnRJbWFnZUVycm9yOiBib29sZWFuO1xyXG4gIHB1YmxpYyBjdXJyZW50VHlwZTogUEZpbGVUeXBlRW51bTtcclxuICBwdWJsaWMgbXVsdGltZWRpYUNvdW50OiB7XHJcbiAgICBpbWFnZXM6IG51bWJlcixcclxuICAgIGltYWdlczM2MDogbnVtYmVyLFxyXG4gICAgdmlkZW9zOiBudW1iZXJcclxuICB9O1xyXG4gIHB1YmxpYyBjb21wbGV0ZVByb3BlcnR5OiBOZXdDb21wbGV0ZVByb3BlcnR5O1xyXG4gIHByaXZhdGUgX2FsbE11bHRpbWVkaWE6IFBGaWxlW107XHJcbiAgcHJpdmF0ZSBfbmV3TWVkaWE6IFVzZXJNZWRpYVtdO1xyXG4gIHByaXZhdGUgX2VkaXRvckluc3RhbmNlOiBFZGl0b3JDb21wb25lbnQ7XHJcbiAgcHJpdmF0ZSBfb3duZXJJbnN0YW5jZTogT3duZXJJbmZvQ29tcG9uZW50O1xyXG4gIHByaXZhdGUgX2RvY3VtZW50c0luc3RhbmNlOiBEb2N1bWVudHNDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChQUk9QRVJUWV9UT0tFTikgcHJpdmF0ZSBfY29uZmlnOiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBfdXBsb2FkZXJTZXJ2aWNlOiBNdWx0aW1lZGlhVXBsb2FkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYW5ub3VuY2VTZXJ2aWNlOiBBbm5vdW5jZUNvbmZpcm1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NoYXJlOiBTaGFyZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9nYWxsZXJ5OiBHYWxsZXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX2RvY3VtZW50U2VydmljZTogRG9jdW1lbnRWaXNvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zdGF0c1NlcnZpY2U6IFN0YXRzU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0Q29tcGxldGVQcm9wZXJ0eSgpO1xyXG4gICAgdGhpcy5jaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFByb3BlcnR5RXZlbnRDaGFuZ2U+KCk7XHJcbiAgICB0aGlzLm1vZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPCdkZXRhaWwnIHwgJ3JlY29yZCcgfCAnYWRkJz4oKTtcclxuICAgIHRoaXMuZGlzYWJsZVNoYXJlQ29tbWlzc2lvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaXNhYmxlQ29uZmlybUFubm91bmNlID0gZmFsc2U7XHJcbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7XHJcbiAgICB0aGlzLm11bHRpbWVkaWEgPSBbXTtcclxuICAgIHRoaXMuX2FsbE11bHRpbWVkaWEgPSBbXTtcclxuICAgIHRoaXMuX25ld01lZGlhID0gW107XHJcbiAgICB0aGlzLm11bHRpbWVkaWFDb3VudCA9IHtcclxuICAgICAgaW1hZ2VzOiAwLFxyXG4gICAgICBpbWFnZXMzNjA6IDAsXHJcbiAgICAgIHZpZGVvczogMFxyXG4gICAgfTtcclxuICAgIHRoaXMuaXNPUEkgPSB0aGlzLl9jb25maWcgfHwgZmFsc2U7XHJcbiAgICB0aGlzLmN1cnJlbnRUeXBlID0gUEZpbGVUeXBlRW51bS5JTUFHRTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BlcnR5J10gJiYgY2hhbmdlc1sncHJvcGVydHknXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgdGhpcy5jb21wbGV0ZVByb3BlcnR5ID0gbmV3IE5ld0NvbXBsZXRlUHJvcGVydHkoY2hhbmdlc1sncHJvcGVydHknXS5jdXJyZW50VmFsdWUgfHwgbnVsbCk7XHJcbiAgICAgIHRoaXMucGFyc2VNdWx0aW1lZGlhKCk7XHJcbiAgICAgIHRoaXMuYXNzaWduTXVsdGltZWRpYUJ5VHlwZSgpO1xyXG4gICAgICB0aGlzLnZhbGlkYXRlTXVsdGltZWRpYVR5cGVDb3VudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2F2ZURhdGEoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlc3RvcmVGcm9udEltYWdlRXJyb3IoKTtcclxuICAgIGlmICh0aGlzLl9lZGl0b3JJbnN0YW5jZS52YWxpZGF0ZUZvcm1JbnZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5fc25hY2tCYXIuc2V0TWVzc2FnZSgnVmVyaWZpcXVlIHRvZG9zIGxvcyBjYW1wb3Mgb2JsaWdhdG9yaW9zJywgJ09LJywgNTAwMCwgJ2xlZnQnLCAnYm90dG9tJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucGFyc2VEYXRhQnlDb21wb25lbnRzKCk7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHtcclxuICAgICAgdHlwZTogdGhpcy5jb21wbGV0ZVByb3BlcnR5LnByb3BlcnR5LmlkID8gUHJvcGVydHlFdmVudFR5cGUuVVBEQVRFIDogUHJvcGVydHlFdmVudFR5cGUuQ1JFQVRFLFxyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgcHJvcGVydHk6IHRoaXMuY29tcGxldGVQcm9wZXJ0eSxcclxuICAgICAgICBuZXdNZWRpYTogdGhpcy5fbmV3TWVkaWFcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZ2VudEFjdGlvbnModHlwZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHtcclxuICAgICAgdHlwZTogdHlwZSBhcyBQcm9wZXJ0eUV2ZW50VHlwZSxcclxuICAgICAgcGF5bG9hZDoge3Byb3BlcnR5OiB0aGlzLmNvbXBsZXRlUHJvcGVydHksIG5ld01lZGlhOiB0aGlzLl9uZXdNZWRpYX1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2hhcmVQcm9wZXJ0eSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWdlbnRBY3Rpb25zKCdTSEFSRScpO1xyXG4gICAgdGhpcy5fc2hhcmUub3Blbih0aGlzLmNvbXBsZXRlUHJvcGVydHkucHJvcGVydHkudXJsKTtcclxuICB9XHJcblxyXG4gIG9wZW5HYWxsZXJ5KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2FsbE11bHRpbWVkaWEubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCB0eXBlID0gbnVsbDtcclxuICAgIGlmICh0aGlzLm11bHRpbWVkaWEubGVuZ3RoID4gMCkge1xyXG4gICAgICB0eXBlID0gdGhpcy5tdWx0aW1lZGlhWzBdLnR5cGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9nYWxsZXJ5Lm9wZW4odGhpcy5fYWxsTXVsdGltZWRpYSwgdGhpcy5jdXJyZW50SW5kZXgsIHR5cGUpO1xyXG4gIH1cclxuXHJcbiAgZ29Ub1N0YXRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RhdHNTZXJ2aWNlLm9wZW4odGhpcy5jb21wbGV0ZVByb3BlcnR5LmxlYWRJbmZvIHx8IG51bGwpO1xyXG4gIH1cclxuXHJcbiAgZ29Ub0VkaXRQcm9wZXJ0eSgpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kZSA9ICdhZGQnO1xyXG4gICAgdGhpcy5tb2RlQ2hhbmdlLmVtaXQodGhpcy5tb2RlKTtcclxuICB9XHJcblxyXG4gIGdvVG9CYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXN0b3JlRnJvbnRJbWFnZUVycm9yKCk7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHtcclxuICAgICAgdHlwZTogUHJvcGVydHlFdmVudFR5cGUuQkFDS1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnb1RvQ2xpZW50cygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQoe1xyXG4gICAgICB0eXBlOiBQcm9wZXJ0eUV2ZW50VHlwZS5DTElFTlRTXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdvVG9VcGRhdGVWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh7XHJcbiAgICAgIHR5cGU6IHRoaXMuY29tcGxldGVQcm9wZXJ0eS5wcm9wZXJ0eS5zdGF0dXMgPT09IFN0YXR1c1R5cGVFbnVtLkFOTk9VTkNFRCA/IFByb3BlcnR5RXZlbnRUeXBlLkhJREUgOiBQcm9wZXJ0eUV2ZW50VHlwZS5TSE9XLFxyXG4gICAgICBwYXlsb2FkOiB7cHJvcGVydHk6IHRoaXMuY29tcGxldGVQcm9wZXJ0eSwgbmV3TWVkaWE6IHRoaXMuX25ld01lZGlhfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnb1RvUHVibGlzaCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdhZGQnKSB7XHJcbiAgICAgIHRoaXMucGFyc2VEYXRhQnlDb21wb25lbnRzKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBlcnJvcnMgPSBVdGlscy5nZXRFcnJvcnNGb3JQdWJsaXNoKHRoaXMuY29tcGxldGVQcm9wZXJ0eS5wcm9wZXJ0eSk7XHJcbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5tb2RlID0gJ2FkZCc7XHJcbiAgICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KHRoaXMubW9kZSk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGVGcm9udEltYWdlT25FcnJvcnMoZXJyb3JzKTtcclxuICAgICAgICB0aGlzLl9lZGl0b3JJbnN0YW5jZS5zZXRFcnJvcnNPbkZpZWxkcyhlcnJvcnMpO1xyXG4gICAgICB9LCAyMDApO1xyXG4gICAgICB0aGlzLl9zbmFja0Jhci5zZXRNZXNzYWdlKCdDb21wbGV0ZSBsb3MgY2FtcG9zIGZhbHRhbnRlcyBwYXJhIHBvZGVyIHB1YmxpY2FyJywgJ09LJywgNTAwMCwgJ2xlZnQnLCAnYm90dG9tJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5kaXNhYmxlQ29uZmlybUFubm91bmNlKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgICB0eXBlOiBQcm9wZXJ0eUV2ZW50VHlwZS5BTk5PVU5DRSxcclxuICAgICAgICAgIHBheWxvYWQ6IHtwcm9wZXJ0eTogdGhpcy5jb21wbGV0ZVByb3BlcnR5LCBuZXdNZWRpYTogdGhpcy5fbmV3TWVkaWF9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2Fubm91bmNlU2VydmljZS5vcGVuKCkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLmNvZGUgPT09IERpYWxvZ1Jlc3BvbnNlVHlwZS5BQ0NFUFQpIHtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgICB0eXBlOiBQcm9wZXJ0eUV2ZW50VHlwZS5BTk5PVU5DRSxcclxuICAgICAgICAgICAgcGF5bG9hZDoge3Byb3BlcnR5OiB0aGlzLmNvbXBsZXRlUHJvcGVydHksIG5ld01lZGlhOiB0aGlzLl9uZXdNZWRpYX1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk11bHRpbWVkaWFJbmRleENoYW5nZWQoZXY6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50SW5kZXggPSBldjtcclxuICB9XHJcblxyXG4gIGNoYW5nZU11bHRpbWVkaWFUeXBlKHR5cGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50VHlwZSA9IHR5cGUgYXMgUEZpbGVUeXBlRW51bTtcclxuICAgIHRoaXMuYXNzaWduTXVsdGltZWRpYUJ5VHlwZSgpO1xyXG4gIH1cclxuXHJcbiAgb3BlblVwbG9hZGVyTXVsdGltZWRpYSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VwbG9hZGVyU2VydmljZS5vcGVuKHRoaXMuY3VycmVudFR5cGUsIHRoaXMuX2FsbE11bHRpbWVkaWEsIHRoaXMuX25ld01lZGlhKS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgdGhpcy5fbmV3TWVkaWEgPSByZXNwb25zZS5uZXdNZWRpYSB8fCBbXTtcclxuICAgICAgICB0aGlzLl9hbGxNdWx0aW1lZGlhID0gT2JqZWN0LmFzc2lnbihbXSwgcmVzcG9uc2UubXVsdGltZWRpYSB8fCBbXSk7XHJcbiAgICAgICAgdGhpcy5hc3NpZ25Gcm9udEltYWdlKCk7XHJcbiAgICAgICAgdGhpcy5hc3NpZ25NdWx0aW1lZGlhQnlUeXBlKCk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZU11bHRpbWVkaWFUeXBlQ291bnQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkVkaXRvckluc3RhbmNlKGV2OiBFZGl0b3JDb21wb25lbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX2VkaXRvckluc3RhbmNlID0gZXY7XHJcbiAgfVxyXG5cclxuICBvbk93bmVySW5zdGFuY2UoZXY6IE93bmVySW5mb0NvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fb3duZXJJbnN0YW5jZSA9IGV2O1xyXG4gIH1cclxuXHJcbiAgb25Eb2N1bWVudHNJbnN0YW5jZShldjogRG9jdW1lbnRzQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9kb2N1bWVudHNJbnN0YW5jZSA9IGV2O1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RBZGRyZXNzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh7XHJcbiAgICAgIHR5cGU6IFByb3BlcnR5RXZlbnRUeXBlLkFERFJFU1NcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXN0b3JlRnJvbnRJbWFnZUVycm9yKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mcm9udEltYWdlRXJyb3IgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VNdWx0aW1lZGlhKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYWxsTXVsdGltZWRpYSA9IFtdO1xyXG4gICAgdGhpcy5fYWxsTXVsdGltZWRpYSA9IHRoaXMuX2FsbE11bHRpbWVkaWEuY29uY2F0KHRoaXMuY29tcGxldGVQcm9wZXJ0eS5pbWFnZXMgfHwgW10pO1xyXG4gICAgdGhpcy5fYWxsTXVsdGltZWRpYSA9IHRoaXMuX2FsbE11bHRpbWVkaWEuY29uY2F0KHRoaXMuY29tcGxldGVQcm9wZXJ0eS52aWRlb3MgfHwgW10pO1xyXG4gICAgdGhpcy5fYWxsTXVsdGltZWRpYSA9IHRoaXMuX2FsbE11bHRpbWVkaWEuY29uY2F0KHRoaXMuY29tcGxldGVQcm9wZXJ0eS5zcGhlcmljcyB8fCBbXSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE11bHRpbWVkaWFCeVR5cGUodHlwZTogUEZpbGVUeXBlRW51bSk6IFBGaWxlW10ge1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBbXTtcclxuICAgIHRoaXMuX2FsbE11bHRpbWVkaWEuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gdHlwZSkge1xyXG4gICAgICAgIHJlc3BvbnNlLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3NpZ25Gcm9udEltYWdlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW1hZ2VzOiBQRmlsZVtdID0gW107XHJcbiAgICB0aGlzLl9hbGxNdWx0aW1lZGlhLmZvckVhY2gobXVsdGltZWRpYSA9PiB7XHJcbiAgICAgIGlmIChtdWx0aW1lZGlhLnR5cGUgPT09IFBGaWxlVHlwZUVudW0uSU1BR0UpIHtcclxuICAgICAgICBpbWFnZXMucHVzaChtdWx0aW1lZGlhKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoaW1hZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5jb21wbGV0ZVByb3BlcnR5LnByb3BlcnR5LmltYWdlID0gaW1hZ2VzWzBdLmZpbGVDUy50aHVtYm5haWw7XHJcbiAgICAgIHRoaXMuZnJvbnRJbWFnZUVycm9yID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbXBsZXRlUHJvcGVydHkucHJvcGVydHkuaW1hZ2UgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb21wbGV0ZVByb3BlcnR5ID0gbmV3IE5ld0NvbXBsZXRlUHJvcGVydHkodGhpcy5jb21wbGV0ZVByb3BlcnR5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXNzaWduTXVsdGltZWRpYUJ5VHlwZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gW107XHJcbiAgICB0aGlzLl9hbGxNdWx0aW1lZGlhLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLnR5cGUgPT09IHRoaXMuY3VycmVudFR5cGUpIHtcclxuICAgICAgICByZXNwb25zZS5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMubXVsdGltZWRpYSA9IE9iamVjdC5hc3NpZ24oW10sIHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVGcm9udEltYWdlT25FcnJvcnMoZXJyb3JzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgZXJyb3JzLmZvckVhY2goZXJyb3IgPT4ge1xyXG4gICAgICBpZiAoZXJyb3IgPT09ICdpbWFnZScpIHtcclxuICAgICAgICB0aGlzLmZyb250SW1hZ2VFcnJvciA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZU11bHRpbWVkaWFUeXBlQ291bnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm11bHRpbWVkaWFDb3VudC5pbWFnZXMgPSAwO1xyXG4gICAgdGhpcy5tdWx0aW1lZGlhQ291bnQuaW1hZ2VzMzYwID0gMDtcclxuICAgIHRoaXMubXVsdGltZWRpYUNvdW50LnZpZGVvcyA9IDA7XHJcbiAgICB0aGlzLl9hbGxNdWx0aW1lZGlhLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIHN3aXRjaCAoaXRlbS50eXBlKSB7XHJcbiAgICAgICAgY2FzZSBQRmlsZVR5cGVFbnVtLklNQUdFOlxyXG4gICAgICAgICAgdGhpcy5tdWx0aW1lZGlhQ291bnQuaW1hZ2VzKys7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFBGaWxlVHlwZUVudW0uU1BIRVJJQzpcclxuICAgICAgICAgIHRoaXMubXVsdGltZWRpYUNvdW50LmltYWdlczM2MCsrO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBQRmlsZVR5cGVFbnVtLlZJREVPOlxyXG4gICAgICAgICAgdGhpcy5tdWx0aW1lZGlhQ291bnQudmlkZW9zKys7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlRGF0YUJ5Q29tcG9uZW50cygpOiB2b2lkIHtcclxuICAgIHRoaXMuY29tcGxldGVQcm9wZXJ0eS5wcm9wZXJ0eSA9IHRoaXMuX2VkaXRvckluc3RhbmNlLmdldFByb3BlcnR5KCk7XHJcbiAgICB0aGlzLmNvbXBsZXRlUHJvcGVydHkucHJvcGVydHkucHJvcGVydHlJbmZvLm93bmVyID0gdGhpcy5fb3duZXJJbnN0YW5jZS5nZXRPd25lcigpO1xyXG4gICAgY29uc3QgZG9jdW1lbnRzUmVzcG9uc2UgPSB0aGlzLl9kb2N1bWVudHNJbnN0YW5jZS5nZXREb2N1bWVudHMoKTtcclxuICAgIHRoaXMuY29tcGxldGVQcm9wZXJ0eS5maWxlcyA9IGRvY3VtZW50c1Jlc3BvbnNlLmRvY3VtZW50cztcclxuICAgIHRoaXMuX25ld01lZGlhID0gdGhpcy5fbmV3TWVkaWEuY29uY2F0KGRvY3VtZW50c1Jlc3BvbnNlLm5ld01lZGlhKTtcclxuICAgIHRoaXMuY29tcGxldGVQcm9wZXJ0eS5pbWFnZXMgPSB0aGlzLmdldE11bHRpbWVkaWFCeVR5cGUoUEZpbGVUeXBlRW51bS5JTUFHRSk7XHJcbiAgICB0aGlzLmNvbXBsZXRlUHJvcGVydHkuc3BoZXJpY3MgPSB0aGlzLmdldE11bHRpbWVkaWFCeVR5cGUoUEZpbGVUeXBlRW51bS5TUEhFUklDKTtcclxuICAgIHRoaXMuY29tcGxldGVQcm9wZXJ0eS52aWRlb3MgPSB0aGlzLmdldE11bHRpbWVkaWFCeVR5cGUoUEZpbGVUeXBlRW51bS5WSURFTyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRDb21wbGV0ZVByb3BlcnR5KCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29tcGxldGUgPSBuZXcgTmV3Q29tcGxldGVQcm9wZXJ0eSgpO1xyXG4gICAgY29tcGxldGUucHJvcGVydHkgPSBuZXcgTmV3UHJvcGVydHkoKTtcclxuICAgIGNvbXBsZXRlLnByb3BlcnR5LnByb3BlcnR5SW5mbyA9IG5ldyBQcm9wZXJ0eUluZm8oKTtcclxuICAgIHRoaXMuY29tcGxldGVQcm9wZXJ0eSA9IGNvbXBsZXRlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
691
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1hcGxhbmRlci9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcHJvcGVydHkvY29tcG9uZW50cy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFDTCxPQUFPLEVBRVAsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixXQUFXLEVBRVgsYUFBYSxFQUNiLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsY0FBYyxFQUVmLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBSWhELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN4QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7SUFHbEQsUUFBUyxRQUFRO0lBQ2pCLFFBQVMsUUFBUTtJQUNqQixVQUFXLFVBQVU7SUFDckIsTUFBTyxNQUFNO0lBQ2IsTUFBTyxNQUFNO0lBQ2IsU0FBVSxTQUFTO0lBQ25C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aXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBZGRyZXNzLFxyXG4gIEFwcFV0aWwsXHJcbiAgRGlhbG9nUmVzcG9uc2VUeXBlLFxyXG4gIE5ld0NvbXBsZXRlUHJvcGVydHksXHJcbiAgTmV3UHJvcGVydHksXHJcbiAgUEZpbGUsXHJcbiAgUEZpbGVUeXBlRW51bSxcclxuICBQcm9wZXJ0eUluZm8sXHJcbiAgUHJvcGVydHlUeXBlRW51bSxcclxuICBTdGF0dXNUeXBlRW51bSxcclxuICBVc2VyTWVkaWFcclxufSBmcm9tICdAbWFwbGFuZGVyL3R5cGVzJztcclxuaW1wb3J0IHtTbmFja0JhclNlcnZpY2V9IGZyb20gJ0BtYXBsYW5kZXIvY29yZSc7XHJcbmltcG9ydCB7RWRpdG9yQ29tcG9uZW50fSBmcm9tICcuLi9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7T3duZXJJbmZvQ29tcG9uZW50fSBmcm9tICcuLi9vd25lci1pbmZvL293bmVyLWluZm8uY29tcG9uZW50JztcclxuaW1wb3J0IHtEb2N1bWVudHNDb21wb25lbnR9IGZyb20gJy4uL2RvY3VtZW50cy9kb2N1bWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHtNdWx0aW1lZGlhVXBsb2FkZXJTZXJ2aWNlfSBmcm9tICcuLi9tdWx0aW1lZGlhLXVwbG9hZGVyL211bHRpbWVkaWEtdXBsb2FkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7QW5ub3VuY2VDb25maXJtU2VydmljZX0gZnJvbSAnLi4vYW5ub3VuY2UtY29uZmlybS9hbm5vdW5jZS1jb25maXJtLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RvY3VtZW50Vmlzb3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9kb2N1bWVudC12aXNvci9kb2N1bWVudC12aXNvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQge1NoYXJlU2VydmljZX0gZnJvbSAnQG1hcGxhbmRlci9zaGFyZWQnO1xyXG5pbXBvcnQge0dhbGxlcnlTZXJ2aWNlfSBmcm9tICcuLi9nYWxsZXJ5L2dhbGxlcnkuc2VydmljZSc7XHJcbmltcG9ydCB7UFJPUEVSVFlfVE9LRU59IGZyb20gJy4uLy4uL3Rva2VuJztcclxuaW1wb3J0IHtTdGF0c1NlcnZpY2V9IGZyb20gJy4uL3N0YXRzL3N0YXRzLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGVudW0gUHJvcGVydHlFdmVudFR5cGUge1xyXG4gIENSRUFURSA9ICdDUkVBVEUnLFxyXG4gIFVQREFURSA9ICdVUERBVEUnLFxyXG4gIEFOTk9VTkNFID0gJ0FOTk9VTkNFJyxcclxuICBISURFID0gJ0hJREUnLFxyXG4gIFNIT1cgPSAnU0hPVycsXHJcbiAgQUREUkVTUyA9ICdBRERSRVNTJyxcclxuICBPRkZFUiA9ICdPRkZFUicsXHJcbiAgRkFWT1JJVEUgPSAnRkFWT1JJVEUnLFxyXG4gIFJFUVVFU1RfSU5GTyA9ICdSRVFVRVNUX0lORk8nLFxyXG4gIFNIQVJFID0gJ1NIQVJFJyxcclxuICBBUkNISVZFID0gJ0FSQ0hJVkUnLFxyXG4gIFJFQUxfRVNUQVRFX0VYQ0hBTkdFID0gJ1JFQUxfRVNUQVRFX0VYQ0hBTkdFJyxcclxuICBTSEFSRV9DT01NSVNTSU9OID0gJ1NIQVJFX0NPTU1JU1NJT04nLFxyXG4gIEJST0NIVVJFID0gJ0JST0NIVVJFJyxcclxuICBQT1NURVIgPSAnUE9TVEVSJyxcclxuICBDTElFTlRTID0gJ0NMSUVOVFMnLFxyXG4gIEJBQ0sgPSAnQkFDSycsXHJcbiAgU0hPV19BR0VOVFMgPSAnU0hPV19BR0VOVFMnLFxyXG4gIFRBUlBTID0gJ1RBUlBTJ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5RXZlbnRDaGFuZ2Uge1xyXG4gIHR5cGU6IFByb3BlcnR5RXZlbnRUeXBlO1xyXG4gIHBheWxvYWQ/OiBhbnk7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXByb3BlcnR5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb3BlcnR5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb3BlcnR5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIHByb3BlcnR5OiBOZXdDb21wbGV0ZVByb3BlcnR5O1xyXG4gIEBJbnB1dCgpIHV0aWxzOiBBcHBVdGlsO1xyXG4gIEBJbnB1dCgpIHByb3BlcnR5VHlwZTogUHJvcGVydHlUeXBlRW51bTtcclxuICBASW5wdXQoKSBtb2RlOiAnZGV0YWlsJyB8ICdyZWNvcmQnIHwgJ2FkZCc7XHJcbiAgQElucHV0KCkgc2hhcmVkUHJvcGVydHk6IHsgaXNTaGFyZWQ6IGJvb2xlYW4sIG93bmVyQXZhaWxhYmxlOiBib29sZWFuIH0gPSB7aXNTaGFyZWQ6IGZhbHNlLCBvd25lckF2YWlsYWJsZTogdHJ1ZX07XHJcbiAgQElucHV0KCkgYWRkcmVzczogQWRkcmVzcztcclxuICBASW5wdXQoKSBtbHNMYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVTaGFyZUNvbW1pc3Npb246IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXNGYXZvcml0ZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkaXNhYmxlQ29uZmlybUFubm91bmNlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1cnJlbmN5Q29udmVydGVkOiB7IGN1cnJlbmN5OiBzdHJpbmcsIHByaWNlOiBudW1iZXIgfTtcclxuICBASW5wdXQoKSB1c2VyVXJsOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPFByb3BlcnR5RXZlbnRDaGFuZ2U+O1xyXG4gIEBPdXRwdXQoKSBtb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8J2RldGFpbCcgfCAncmVjb3JkJyB8ICdhZGQnPjtcclxuICBwdWJsaWMgbXVsdGltZWRpYTogUEZpbGVbXTtcclxuICBwdWJsaWMgaXNPUEk6IGJvb2xlYW47XHJcbiAgcHVibGljIGN1cnJlbnRJbmRleDogbnVtYmVyO1xyXG4gIHB1YmxpYyBmcm9udEltYWdlRXJyb3I6IGJvb2xlYW47XHJcbiAgcHVibGljIGN1cnJlbnRUeXBlOiBQRmlsZVR5cGVFbnVtO1xyXG4gIHB1YmxpYyBtdWx0aW1lZGlhQ291bnQ6IHtcclxuICAgIGltYWdlczogbnVtYmVyLFxyXG4gICAgaW1hZ2VzMzYwOiBudW1iZXIsXHJcbiAgICB2aWRlb3M6IG51bWJlclxyXG4gIH07XHJcbiAgcHVibGljIGNvbXBsZXRlUHJvcGVydHk6IE5ld0NvbXBsZXRlUHJvcGVydHk7XHJcbiAgcHJpdmF0ZSBfYWxsTXVsdGltZWRpYTogUEZpbGVbXTtcclxuICBwcml2YXRlIF9uZXdNZWRpYTogVXNlck1lZGlhW107XHJcbiAgcHJpdmF0ZSBfZWRpdG9ySW5zdGFuY2U6IEVkaXRvckNvbXBvbmVudDtcclxuICBwcml2YXRlIF9vd25lckluc3RhbmNlOiBPd25lckluZm9Db21wb25lbnQ7XHJcbiAgcHJpdmF0ZSBfZG9jdW1lbnRzSW5zdGFuY2U6IERvY3VtZW50c0NvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBST1BFUlRZX1RPS0VOKSBwcml2YXRlIF9jb25maWc6IGJvb2xlYW4sXHJcbiAgICBwcml2YXRlIF91cGxvYWRlclNlcnZpY2U6IE11bHRpbWVkaWFVcGxvYWRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hbm5vdW5jZVNlcnZpY2U6IEFubm91bmNlQ29uZmlybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2hhcmU6IFNoYXJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2dhbGxlcnk6IEdhbGxlcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFZpc29yU2VydmljZSxcclxuICAgIHByaXZhdGUgX3N0YXRzU2VydmljZTogU3RhdHNTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmluaXRDb21wbGV0ZVByb3BlcnR5KCk7XHJcbiAgICB0aGlzLmNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvcGVydHlFdmVudENoYW5nZT4oKTtcclxuICAgIHRoaXMubW9kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8J2RldGFpbCcgfCAncmVjb3JkJyB8ICdhZGQnPigpO1xyXG4gICAgdGhpcy5kaXNhYmxlU2hhcmVDb21taXNzaW9uID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpc2FibGVDb25maXJtQW5ub3VuY2UgPSBmYWxzZTtcclxuICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDtcclxuICAgIHRoaXMubXVsdGltZWRpYSA9IFtdO1xyXG4gICAgdGhpcy5fYWxsTXVsdGltZWRpYSA9IFtdO1xyXG4gICAgdGhpcy5fbmV3TWVkaWEgPSBbXTtcclxuICAgIHRoaXMubXVsdGltZWRpYUNvdW50ID0ge1xyXG4gICAgICBpbWFnZXM6IDAsXHJcbiAgICAgIGltYWdlczM2MDogMCxcclxuICAgICAgdmlkZW9zOiAwXHJcbiAgICB9O1xyXG4gICAgdGhpcy5pc09QSSA9IHRoaXMuX2NvbmZpZyB8fCBmYWxzZTtcclxuICAgIHRoaXMuY3VycmVudFR5cGUgPSBQRmlsZVR5cGVFbnVtLklNQUdFO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyB0aGlzLmFnZW50QWN0aW9ucygnU0hPV19BR0VOVFMnKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydwcm9wZXJ0eSddICYmIGNoYW5nZXNbJ3Byb3BlcnR5J10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29tcGxldGVQcm9wZXJ0eSA9IG5ldyBOZXdDb21wbGV0ZVByb3BlcnR5KGNoYW5nZXNbJ3Byb3BlcnR5J10uY3VycmVudFZhbHVlIHx8IG51bGwpO1xyXG4gICAgICB0aGlzLnBhcnNlTXVsdGltZWRpYSgpO1xyXG4gICAgICB0aGlzLmFzc2lnbk11bHRpbWVkaWFCeVR5cGUoKTtcclxuICAgICAgdGhpcy52YWxpZGF0ZU11bHRpbWVkaWFUeXBlQ291bnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNhdmVEYXRhKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXN0b3JlRnJvbnRJbWFnZUVycm9yKCk7XHJcbiAgICBpZiAodGhpcy5fZWRpdG9ySW5zdGFuY2UudmFsaWRhdGVGb3JtSW52YWxpZCgpKSB7XHJcbiAgICAgIHRoaXMuX3NuYWNrQmFyLnNldE1lc3NhZ2UoJ1ZlcmlmaXF1ZSB0b2RvcyBsb3MgY2FtcG9zIG9ibGlnYXRvcmlvcycsICdPSycsIDUwMDAsICdsZWZ0JywgJ2JvdHRvbScpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnBhcnNlRGF0YUJ5Q29tcG9uZW50cygpO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh7XHJcbiAgICAgIHR5cGU6IHRoaXMuY29tcGxldGVQcm9wZXJ0eS5wcm9wZXJ0eS5pZCA/IFByb3BlcnR5RXZlbnRUeXBlLlVQREFURSA6IFByb3BlcnR5RXZlbnRUeXBlLkNSRUFURSxcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIHByb3BlcnR5OiB0aGlzLmNvbXBsZXRlUHJvcGVydHksXHJcbiAgICAgICAgbmV3TWVkaWE6IHRoaXMuX25ld01lZGlhXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWdlbnRBY3Rpb25zKHR5cGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh7XHJcbiAgICAgIHR5cGU6IHR5cGUgYXMgUHJvcGVydHlFdmVudFR5cGUsXHJcbiAgICAgIHBheWxvYWQ6IHtwcm9wZXJ0eTogdGhpcy5jb21wbGV0ZVByb3BlcnR5LCBuZXdNZWRpYTogdGhpcy5fbmV3TWVkaWF9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNoYXJlUHJvcGVydHkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFnZW50QWN0aW9ucygnU0hBUkUnKTtcclxuICAgIHRoaXMuX3NoYXJlLm9wZW4oe1xyXG4gICAgICB1cmw6IHRoaXMuY29tcGxldGVQcm9wZXJ0eS5wcm9wZXJ0eS51cmwsXHJcbiAgICAgIHVybFVzZXI6IHRoaXMudXNlclVybFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuR2FsbGVyeSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9hbGxNdWx0aW1lZGlhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgdHlwZSA9IG51bGw7XHJcbiAgICBpZiAodGhpcy5tdWx0aW1lZGlhLmxlbmd0aCA+IDApIHtcclxuICAgICAgdHlwZSA9IHRoaXMubXVsdGltZWRpYVswXS50eXBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZ2FsbGVyeS5vcGVuKHRoaXMuX2FsbE11bHRpbWVkaWEsIHRoaXMuY3VycmVudEluZGV4LCB0eXBlKTtcclxuICB9XHJcblxyXG4gIGdvVG9TdGF0cygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0YXRzU2VydmljZS5vcGVuKHRoaXMuY29tcGxldGVQcm9wZXJ0eS5sZWFkSW5mbyB8fCBudWxsKTtcclxuICB9XHJcblxyXG4gIGdvVG9FZGl0UHJvcGVydHkoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGUgPSAnYWRkJztcclxuICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KHRoaXMubW9kZSk7XHJcbiAgfVxyXG5cclxuICBnb1RvQmFjaygpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzdG9yZUZyb250SW1hZ2VFcnJvcigpO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh7XHJcbiAgICAgIHR5cGU6IFByb3BlcnR5RXZlbnRUeXBlLkJBQ0tcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ29Ub0NsaWVudHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHtcclxuICAgICAgdHlwZTogUHJvcGVydHlFdmVudFR5cGUuQ0xJRU5UU1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnb1RvVXBkYXRlVmlzaWJpbGl0eSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQoe1xyXG4gICAgICB0eXBlOiB0aGlzLmNvbXBsZXRlUHJvcGVydHkucHJvcGVydHkuc3RhdHVzID09PSBTdGF0dXNUeXBlRW51bS5BTk5PVU5DRUQgPyBQcm9wZXJ0eUV2ZW50VHlwZS5ISURFIDogUHJvcGVydHlFdmVudFR5cGUuU0hPVyxcclxuICAgICAgcGF5bG9hZDoge3Byb3BlcnR5OiB0aGlzLmNvbXBsZXRlUHJvcGVydHksIG5ld01lZGlhOiB0aGlzLl9uZXdNZWRpYX1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ29Ub1B1Ymxpc2goKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnYWRkJykge1xyXG4gICAgICB0aGlzLnBhcnNlRGF0YUJ5Q29tcG9uZW50cygpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZXJyb3JzID0gVXRpbHMuZ2V0RXJyb3JzRm9yUHVibGlzaCh0aGlzLmNvbXBsZXRlUHJvcGVydHkucHJvcGVydHkpO1xyXG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubW9kZSA9ICdhZGQnO1xyXG4gICAgICB0aGlzLm1vZGVDaGFuZ2UuZW1pdCh0aGlzLm1vZGUpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlRnJvbnRJbWFnZU9uRXJyb3JzKGVycm9ycyk7XHJcbiAgICAgICAgdGhpcy5fZWRpdG9ySW5zdGFuY2Uuc2V0RXJyb3JzT25GaWVsZHMoZXJyb3JzKTtcclxuICAgICAgfSwgMjAwKTtcclxuICAgICAgdGhpcy5fc25hY2tCYXIuc2V0TWVzc2FnZSgnQ29tcGxldGUgbG9zIGNhbXBvcyBmYWx0YW50ZXMgcGFyYSBwb2RlciBwdWJsaWNhcicsICdPSycsIDUwMDAsICdsZWZ0JywgJ2JvdHRvbScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZGlzYWJsZUNvbmZpcm1Bbm5vdW5jZSkge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgdHlwZTogUHJvcGVydHlFdmVudFR5cGUuQU5OT1VOQ0UsXHJcbiAgICAgICAgICBwYXlsb2FkOiB7cHJvcGVydHk6IHRoaXMuY29tcGxldGVQcm9wZXJ0eSwgbmV3TWVkaWE6IHRoaXMuX25ld01lZGlhfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9hbm5vdW5jZVNlcnZpY2Uub3BlbigpLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5jb2RlID09PSBEaWFsb2dSZXNwb25zZVR5cGUuQUNDRVBUKSB7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHtcclxuICAgICAgICAgICAgdHlwZTogUHJvcGVydHlFdmVudFR5cGUuQU5OT1VOQ0UsXHJcbiAgICAgICAgICAgIHBheWxvYWQ6IHtwcm9wZXJ0eTogdGhpcy5jb21wbGV0ZVByb3BlcnR5LCBuZXdNZWRpYTogdGhpcy5fbmV3TWVkaWF9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25NdWx0aW1lZGlhSW5kZXhDaGFuZ2VkKGV2OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudEluZGV4ID0gZXY7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VNdWx0aW1lZGlhVHlwZSh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFR5cGUgPSB0eXBlIGFzIFBGaWxlVHlwZUVudW07XHJcbiAgICB0aGlzLmFzc2lnbk11bHRpbWVkaWFCeVR5cGUoKTtcclxuICB9XHJcblxyXG4gIG9wZW5VcGxvYWRlck11bHRpbWVkaWEoKTogdm9pZCB7XHJcbiAgICB0aGlzLl91cGxvYWRlclNlcnZpY2Uub3Blbih0aGlzLmN1cnJlbnRUeXBlLCB0aGlzLl9hbGxNdWx0aW1lZGlhLCB0aGlzLl9uZXdNZWRpYSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZSkge1xyXG4gICAgICAgIHRoaXMuX25ld01lZGlhID0gcmVzcG9uc2UubmV3TWVkaWEgfHwgW107XHJcbiAgICAgICAgdGhpcy5fYWxsTXVsdGltZWRpYSA9IE9iamVjdC5hc3NpZ24oW10sIHJlc3BvbnNlLm11bHRpbWVkaWEgfHwgW10pO1xyXG4gICAgICAgIHRoaXMuYXNzaWduRnJvbnRJbWFnZSgpO1xyXG4gICAgICAgIHRoaXMuYXNzaWduTXVsdGltZWRpYUJ5VHlwZSgpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGVNdWx0aW1lZGlhVHlwZUNvdW50KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25FZGl0b3JJbnN0YW5jZShldjogRWRpdG9yQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9lZGl0b3JJbnN0YW5jZSA9IGV2O1xyXG4gIH1cclxuXHJcbiAgb25Pd25lckluc3RhbmNlKGV2OiBPd25lckluZm9Db21wb25lbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX293bmVySW5zdGFuY2UgPSBldjtcclxuICB9XHJcblxyXG4gIG9uRG9jdW1lbnRzSW5zdGFuY2UoZXY6IERvY3VtZW50c0NvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZG9jdW1lbnRzSW5zdGFuY2UgPSBldjtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0QWRkcmVzcygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQoe1xyXG4gICAgICB0eXBlOiBQcm9wZXJ0eUV2ZW50VHlwZS5BRERSRVNTXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzdG9yZUZyb250SW1hZ2VFcnJvcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZnJvbnRJbWFnZUVycm9yID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlTXVsdGltZWRpYSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2FsbE11bHRpbWVkaWEgPSBbXTtcclxuICAgIHRoaXMuX2FsbE11bHRpbWVkaWEgPSB0aGlzLl9hbGxNdWx0aW1lZGlhLmNvbmNhdCh0aGlzLmNvbXBsZXRlUHJvcGVydHkuaW1hZ2VzIHx8IFtdKTtcclxuICAgIHRoaXMuX2FsbE11bHRpbWVkaWEgPSB0aGlzLl9hbGxNdWx0aW1lZGlhLmNvbmNhdCh0aGlzLmNvbXBsZXRlUHJvcGVydHkudmlkZW9zIHx8IFtdKTtcclxuICAgIHRoaXMuX2FsbE11bHRpbWVkaWEgPSB0aGlzLl9hbGxNdWx0aW1lZGlhLmNvbmNhdCh0aGlzLmNvbXBsZXRlUHJvcGVydHkuc3BoZXJpY3MgfHwgW10pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRNdWx0aW1lZGlhQnlUeXBlKHR5cGU6IFBGaWxlVHlwZUVudW0pOiBQRmlsZVtdIHtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gW107XHJcbiAgICB0aGlzLl9hbGxNdWx0aW1lZGlhLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLnR5cGUgPT09IHR5cGUpIHtcclxuICAgICAgICByZXNwb25zZS5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZXNwb25zZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXNzaWduRnJvbnRJbWFnZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGltYWdlczogUEZpbGVbXSA9IFtdO1xyXG4gICAgdGhpcy5fYWxsTXVsdGltZWRpYS5mb3JFYWNoKG11bHRpbWVkaWEgPT4ge1xyXG4gICAgICBpZiAobXVsdGltZWRpYS50eXBlID09PSBQRmlsZVR5cGVFbnVtLklNQUdFKSB7XHJcbiAgICAgICAgaW1hZ2VzLnB1c2gobXVsdGltZWRpYSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGltYWdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY29tcGxldGVQcm9wZXJ0eS5wcm9wZXJ0eS5pbWFnZSA9IGltYWdlc1swXS5maWxlQ1MudGh1bWJuYWlsO1xyXG4gICAgICB0aGlzLmZyb250SW1hZ2VFcnJvciA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb21wbGV0ZVByb3BlcnR5LnByb3BlcnR5LmltYWdlID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuY29tcGxldGVQcm9wZXJ0eSA9IG5ldyBOZXdDb21wbGV0ZVByb3BlcnR5KHRoaXMuY29tcGxldGVQcm9wZXJ0eSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzc2lnbk11bHRpbWVkaWFCeVR5cGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IFtdO1xyXG4gICAgdGhpcy5fYWxsTXVsdGltZWRpYS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAoaXRlbS50eXBlID09PSB0aGlzLmN1cnJlbnRUeXBlKSB7XHJcbiAgICAgICAgcmVzcG9uc2UucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm11bHRpbWVkaWEgPSBPYmplY3QuYXNzaWduKFtdLCByZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHZhbGlkYXRlRnJvbnRJbWFnZU9uRXJyb3JzKGVycm9yczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIGVycm9ycy5mb3JFYWNoKGVycm9yID0+IHtcclxuICAgICAgaWYgKGVycm9yID09PSAnaW1hZ2UnKSB7XHJcbiAgICAgICAgdGhpcy5mcm9udEltYWdlRXJyb3IgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVNdWx0aW1lZGlhVHlwZUNvdW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tdWx0aW1lZGlhQ291bnQuaW1hZ2VzID0gMDtcclxuICAgIHRoaXMubXVsdGltZWRpYUNvdW50LmltYWdlczM2MCA9IDA7XHJcbiAgICB0aGlzLm11bHRpbWVkaWFDb3VudC52aWRlb3MgPSAwO1xyXG4gICAgdGhpcy5fYWxsTXVsdGltZWRpYS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBzd2l0Y2ggKGl0ZW0udHlwZSkge1xyXG4gICAgICAgIGNhc2UgUEZpbGVUeXBlRW51bS5JTUFHRTpcclxuICAgICAgICAgIHRoaXMubXVsdGltZWRpYUNvdW50LmltYWdlcysrO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBQRmlsZVR5cGVFbnVtLlNQSEVSSUM6XHJcbiAgICAgICAgICB0aGlzLm11bHRpbWVkaWFDb3VudC5pbWFnZXMzNjArKztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgUEZpbGVUeXBlRW51bS5WSURFTzpcclxuICAgICAgICAgIHRoaXMubXVsdGltZWRpYUNvdW50LnZpZGVvcysrO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZURhdGFCeUNvbXBvbmVudHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbXBsZXRlUHJvcGVydHkucHJvcGVydHkgPSB0aGlzLl9lZGl0b3JJbnN0YW5jZS5nZXRQcm9wZXJ0eSgpO1xyXG4gICAgdGhpcy5jb21wbGV0ZVByb3BlcnR5LnByb3BlcnR5LnByb3BlcnR5SW5mby5vd25lciA9IHRoaXMuX293bmVySW5zdGFuY2UuZ2V0T3duZXIoKTtcclxuICAgIGNvbnN0IGRvY3VtZW50c1Jlc3BvbnNlID0gdGhpcy5fZG9jdW1lbnRzSW5zdGFuY2UuZ2V0RG9jdW1lbnRzKCk7XHJcbiAgICB0aGlzLmNvbXBsZXRlUHJvcGVydHkuZmlsZXMgPSBkb2N1bWVudHNSZXNwb25zZS5kb2N1bWVudHM7XHJcbiAgICB0aGlzLl9uZXdNZWRpYSA9IHRoaXMuX25ld01lZGlhLmNvbmNhdChkb2N1bWVudHNSZXNwb25zZS5uZXdNZWRpYSk7XHJcbiAgICB0aGlzLmNvbXBsZXRlUHJvcGVydHkuaW1hZ2VzID0gdGhpcy5nZXRNdWx0aW1lZGlhQnlUeXBlKFBGaWxlVHlwZUVudW0uSU1BR0UpO1xyXG4gICAgdGhpcy5jb21wbGV0ZVByb3BlcnR5LnNwaGVyaWNzID0gdGhpcy5nZXRNdWx0aW1lZGlhQnlUeXBlKFBGaWxlVHlwZUVudW0uU1BIRVJJQyk7XHJcbiAgICB0aGlzLmNvbXBsZXRlUHJvcGVydHkudmlkZW9zID0gdGhpcy5nZXRNdWx0aW1lZGlhQnlUeXBlKFBGaWxlVHlwZUVudW0uVklERU8pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0Q29tcGxldGVQcm9wZXJ0eSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbXBsZXRlID0gbmV3IE5ld0NvbXBsZXRlUHJvcGVydHkoKTtcclxuICAgIGNvbXBsZXRlLnByb3BlcnR5ID0gbmV3IE5ld1Byb3BlcnR5KCk7XHJcbiAgICBjb21wbGV0ZS5wcm9wZXJ0eS5wcm9wZXJ0eUluZm8gPSBuZXcgUHJvcGVydHlJbmZvKCk7XHJcbiAgICB0aGlzLmNvbXBsZXRlUHJvcGVydHkgPSBjb21wbGV0ZTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { removeError } from './remove-error';
|
|
6
|
+
/**
|
|
7
|
+
* @param {?} controlName
|
|
8
|
+
* @param {?} controlName2
|
|
9
|
+
* @return {?}
|
|
10
|
+
*/
|
|
11
|
+
export function CurrencyFilterValidator(controlName, controlName2) {
|
|
12
|
+
return (/**
|
|
13
|
+
* @param {?} control
|
|
14
|
+
* @return {?}
|
|
15
|
+
*/
|
|
16
|
+
function (control) {
|
|
17
|
+
if (control) {
|
|
18
|
+
/** @type {?} */
|
|
19
|
+
var peerControl = control.controls[controlName];
|
|
20
|
+
/** @type {?} */
|
|
21
|
+
var peerControl2 = control.controls[controlName2];
|
|
22
|
+
if (peerControl2.value) {
|
|
23
|
+
if (peerControl.value >= peerControl2.value) {
|
|
24
|
+
peerControl2.setErrors({
|
|
25
|
+
currency: true
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if (peerControl.value < peerControl2.value) {
|
|
29
|
+
removeError(peerControl2, 'currency');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmlsdGVyLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtYXBsYW5kZXIvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3Byb3BlcnR5L3ZhbGlkYXRvcnMvY3VycmVuY3ktZmlsdGVyLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFHM0MsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFdBQW1CLEVBQUUsWUFBb0I7SUFDL0U7Ozs7SUFBTyxVQUFDLE9BQWtCO1FBQ3hCLElBQUksT0FBTyxFQUFFOztnQkFDTCxXQUFXLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7O2dCQUMzQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDbkQsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFO2dCQUN0QixJQUFJLFdBQVcsQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRTtvQkFDM0MsWUFBWSxDQUFDLFNBQVMsQ0FBQzt3QkFDckIsUUFBUSxFQUFFLElBQUk7cUJBQ2YsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELElBQUksV0FBVyxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFO29CQUMxQyxXQUFXLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2lCQUN2QzthQUNGO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge3JlbW92ZUVycm9yfSBmcm9tICcuL3JlbW92ZS1lcnJvcic7XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEN1cnJlbmN5RmlsdGVyVmFsaWRhdG9yKGNvbnRyb2xOYW1lOiBzdHJpbmcsIGNvbnRyb2xOYW1lMjogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogRm9ybUdyb3VwKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsID0+IHtcclxuICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgIGNvbnN0IHBlZXJDb250cm9sID0gY29udHJvbC5jb250cm9sc1tjb250cm9sTmFtZV07XHJcbiAgICAgIGNvbnN0IHBlZXJDb250cm9sMiA9IGNvbnRyb2wuY29udHJvbHNbY29udHJvbE5hbWUyXTtcclxuICAgICAgaWYgKHBlZXJDb250cm9sMi52YWx1ZSkge1xyXG4gICAgICAgIGlmIChwZWVyQ29udHJvbC52YWx1ZSA+PSBwZWVyQ29udHJvbDIudmFsdWUpIHtcclxuICAgICAgICAgIHBlZXJDb250cm9sMi5zZXRFcnJvcnMoe1xyXG4gICAgICAgICAgICBjdXJyZW5jeTogdHJ1ZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwZWVyQ29udHJvbC52YWx1ZSA8IHBlZXJDb250cm9sMi52YWx1ZSkge1xyXG4gICAgICAgICAgcmVtb3ZlRXJyb3IocGVlckNvbnRyb2wyLCAnY3VycmVuY3knKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH07XHJcbn1cclxuIl19
|
|
@@ -13,6 +13,17 @@ var PropertyCardComponent = /** @class */ (function () {
|
|
|
13
13
|
this.favoriteChanged = new EventEmitter();
|
|
14
14
|
this.propertyDiscarded = new EventEmitter();
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* @return {?}
|
|
18
|
+
*/
|
|
19
|
+
PropertyCardComponent.prototype.ngOnInit = /**
|
|
20
|
+
* @return {?}
|
|
21
|
+
*/
|
|
22
|
+
function () {
|
|
23
|
+
if (this.positionLatLng) {
|
|
24
|
+
this.latLng(this.positionLatLng.latitude, this.positionLatLng.longitude);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
16
27
|
/**
|
|
17
28
|
* @param {?} changes
|
|
18
29
|
* @return {?}
|
|
@@ -67,11 +78,76 @@ var PropertyCardComponent = /** @class */ (function () {
|
|
|
67
78
|
function () {
|
|
68
79
|
this.propertyDiscarded.emit(this.info.propertyId);
|
|
69
80
|
};
|
|
81
|
+
/**
|
|
82
|
+
* @private
|
|
83
|
+
* @param {?} deg
|
|
84
|
+
* @return {?}
|
|
85
|
+
*/
|
|
86
|
+
PropertyCardComponent.prototype.deg2rad = /**
|
|
87
|
+
* @private
|
|
88
|
+
* @param {?} deg
|
|
89
|
+
* @return {?}
|
|
90
|
+
*/
|
|
91
|
+
function (deg) {
|
|
92
|
+
return deg * (Math.PI / 180);
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* @private
|
|
96
|
+
* @param {?} lat
|
|
97
|
+
* @param {?} lng
|
|
98
|
+
* @return {?}
|
|
99
|
+
*/
|
|
100
|
+
PropertyCardComponent.prototype.latLng = /**
|
|
101
|
+
* @private
|
|
102
|
+
* @param {?} lat
|
|
103
|
+
* @param {?} lng
|
|
104
|
+
* @return {?}
|
|
105
|
+
*/
|
|
106
|
+
function (lat, lng) {
|
|
107
|
+
/** @type {?} */
|
|
108
|
+
var lat1 = lat;
|
|
109
|
+
/** @type {?} */
|
|
110
|
+
var lon1 = lng;
|
|
111
|
+
/** @type {?} */
|
|
112
|
+
var lat2 = this.marker.location.latitude;
|
|
113
|
+
/** @type {?} */
|
|
114
|
+
var lon2 = this.marker.location.longitude;
|
|
115
|
+
/** @type {?} */
|
|
116
|
+
var R = 6371;
|
|
117
|
+
// Radius of the earth in km
|
|
118
|
+
/** @type {?} */
|
|
119
|
+
var dLat = this.deg2rad(lat2 - lat1);
|
|
120
|
+
// deg2rad below
|
|
121
|
+
/** @type {?} */
|
|
122
|
+
var dLon = this.deg2rad(lon2 - lon1);
|
|
123
|
+
/** @type {?} */
|
|
124
|
+
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
|
|
125
|
+
Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) *
|
|
126
|
+
Math.sin(dLon / 2) * Math.sin(dLon / 2);
|
|
127
|
+
/** @type {?} */
|
|
128
|
+
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
129
|
+
/** @type {?} */
|
|
130
|
+
var d = R * c;
|
|
131
|
+
if (Math.trunc(d) < 1) {
|
|
132
|
+
d = d * 1000;
|
|
133
|
+
d = Math.trunc(d);
|
|
134
|
+
if (d < 10) {
|
|
135
|
+
this.distance = 10 + ' m de su búsqueda';
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
d = d - (d % 10);
|
|
139
|
+
this.distance = d + ' m de su búsqueda';
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
this.distance = d.toFixed(2) + ' km de su búsqueda';
|
|
144
|
+
}
|
|
145
|
+
};
|
|
70
146
|
PropertyCardComponent.decorators = [
|
|
71
147
|
{ type: Component, args: [{
|
|
72
148
|
selector: 'lib-property-card',
|
|
73
|
-
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 <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 <h2 class=\"property-card__price\">\r\n
|
|
74
|
-
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}.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:calc(100% / 4 * 3);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__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}"]
|
|
149
|
+
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 <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",
|
|
150
|
+
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}.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:calc(100% / 4 * 3);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}"]
|
|
75
151
|
}] }
|
|
76
152
|
];
|
|
77
153
|
/** @nocollapse */
|
|
@@ -84,6 +160,7 @@ var PropertyCardComponent = /** @class */ (function () {
|
|
|
84
160
|
target: [{ type: Input }],
|
|
85
161
|
queryParams: [{ type: Input }],
|
|
86
162
|
state: [{ type: Input }],
|
|
163
|
+
positionLatLng: [{ type: Input }],
|
|
87
164
|
isFavorite: [{ type: Input }],
|
|
88
165
|
currency: [{ type: Input }],
|
|
89
166
|
showDiscard: [{ type: Input }],
|
|
@@ -107,6 +184,8 @@ if (false) {
|
|
|
107
184
|
/** @type {?} */
|
|
108
185
|
PropertyCardComponent.prototype.state;
|
|
109
186
|
/** @type {?} */
|
|
187
|
+
PropertyCardComponent.prototype.positionLatLng;
|
|
188
|
+
/** @type {?} */
|
|
110
189
|
PropertyCardComponent.prototype.isFavorite;
|
|
111
190
|
/** @type {?} */
|
|
112
191
|
PropertyCardComponent.prototype.currency;
|
|
@@ -123,6 +202,8 @@ if (false) {
|
|
|
123
202
|
/** @type {?} */
|
|
124
203
|
PropertyCardComponent.prototype.info;
|
|
125
204
|
/** @type {?} */
|
|
205
|
+
PropertyCardComponent.prototype.distance;
|
|
206
|
+
/** @type {?} */
|
|
126
207
|
PropertyCardComponent.prototype.isOPI;
|
|
127
208
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWFwbGFuZGVyL2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wcm9wZXJ0eS1jYXJkL3Byb3BlcnR5LWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLFFBQVEsRUFBRSxNQUFNLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUlwRDtJQTBCRSwrQkFDMEQsS0FBYztRQUFkLFVBQUssR0FBTCxLQUFLLENBQVM7UUFSL0QsU0FBSSxHQUF1QixNQUFNLENBQUM7UUFVekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2hELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNsRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUN0RCxDQUFDOzs7O0lBRUQsd0NBQVE7OztJQUFSO1FBQ0UsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMxRTtJQUNILENBQUM7Ozs7O0lBRUQsMkNBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLEVBQUU7WUFDM0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMs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QUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLEdBQUcsbUJBQW1CLENBQUM7YUFDMUM7aUJBQU07Z0JBQ0wsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsbUJBQW1CLENBQUM7YUFDekM7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLG9CQUFvQixDQUFDO1NBQ3JEO0lBQ0gsQ0FBQzs7Z0JBbkdGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3Qiw2aElBQTZDOztpQkFFOUM7Ozs7OENBdUJJLFFBQVEsWUFBSSxNQUFNLFNBQUMsMkJBQTJCOzs7eUJBckJoRCxLQUFLO3VCQUNMLEtBQUs7eUJBQ0wsS0FBSzs4QkFDTCxLQUFLO3dCQUdMLEtBQUs7aUNBR0wsS0FBSzs2QkFDTCxLQUFLOzJCQUNMLEtBQUs7OEJBQ0wsS0FBSzt1QkFDTCxLQUFLO2dDQUNMLE1BQU07a0NBQ04sTUFBTTtvQ0FDTixNQUFNOztJQThFVCw0QkFBQztDQUFBLEFBcEdELElBb0dDO1NBL0ZZLHFCQUFxQjs7O0lBQ2hDLHVDQUF3Qjs7SUFDeEIscUNBQXNCOztJQUN0Qix1Q0FBd0I7O0lBQ3hCLDRDQUVFOztJQUNGLHNDQUVFOztJQUNGLCtDQUE2Qjs7SUFDN0IsMkNBQTZCOztJQUM3Qix5Q0FBMEI7O0lBQzFCLDRDQUE4Qjs7SUFDOUIscUNBQTJDOztJQUMzQyw4Q0FBOEM7O0lBQzlDLGdEQUFnRDs7SUFDaEQsa0RBQWtEOztJQUNsRCxxQ0FBOEI7O0lBQzlCLHlDQUFxQjs7SUFHbkIsc0NBQXNFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPcHRpb25hbCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1BST1BFUlRZX0NBUkRfQ09ORklHX01PRFVMRX0gZnJvbSAnLi90b2tlbic7XHJcbmltcG9ydCB7TWFya2VyfSBmcm9tICcuLi8uLi91dGlscy9tb2RlbHMvbWFya2VyJztcclxuaW1wb3J0IHtQcm9wZXJ0eUNhcmRJbmZvfSBmcm9tICcuLi8uLi91dGlscy9tb2RlbHMvcHJvcGVydHktY2FyZC1pbmZvJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXByb3BlcnR5LWNhcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wcm9wZXJ0eS1jYXJkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb3BlcnR5Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcclxuICBASW5wdXQoKSBtYXJrZXI6IE1hcmtlcjtcclxuICBASW5wdXQoKSBocmVmOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGFyZ2V0OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcXVlcnlQYXJhbXM6IHtcclxuICAgIFtrOiBzdHJpbmddOiBhbnk7XHJcbiAgfTtcclxuICBASW5wdXQoKSBzdGF0ZToge1xyXG4gICAgW2s6IHN0cmluZ106IGFueTtcclxuICB9O1xyXG4gIEBJbnB1dCgpIHBvc2l0aW9uTGF0TG5nOiBhbnk7XHJcbiAgQElucHV0KCkgaXNGYXZvcml0ZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjdXJyZW5jeTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dEaXNjYXJkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG1vZGU6ICdmdWxsJyB8ICdzdW1tYXJ5JyA9ICdmdWxsJztcclxuICBAT3V0cHV0KCkgbWFya2VyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPE1hcmtlcj47XHJcbiAgQE91dHB1dCgpIGZhdm9yaXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcbiAgQE91dHB1dCgpIHByb3BlcnR5RGlzY2FyZGVkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcclxuICBwdWJsaWMgaW5mbzogUHJvcGVydHlDYXJkSW5mbztcclxuICBwdWJsaWMgZGlzdGFuY2U6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBST1BFUlRZX0NBUkRfQ09ORklHX01PRFVMRSkgcHVibGljIGlzT1BJOiBib29sZWFuLFxyXG4gICkge1xyXG4gICAgdGhpcy5jdXJyZW5jeSA9IG51bGw7XHJcbiAgICB0aGlzLm1hcmtlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1hcmtlcj4oKTtcclxuICAgIHRoaXMuZmF2b3JpdGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgICB0aGlzLnByb3BlcnR5RGlzY2FyZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgaWYgKHRoaXMucG9zaXRpb25MYXRMbmcpIHtcclxuICAgICAgdGhpcy5sYXRMbmcodGhpcy5wb3NpdGlvbkxhdExuZy5sYXRpdHVkZSwgdGhpcy5wb3NpdGlvbkxhdExuZy5sb25naXR1ZGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2N1cnJlbmN5J10gJiYgY2hhbmdlc1snY3VycmVuY3knXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgdGhpcy5jdXJyZW5jeSA9IGNoYW5nZXNbJ2N1cnJlbmN5J10uY3VycmVudFZhbHVlICE9PSAnTVhOJyA/IGNoYW5nZXNbJ2N1cnJlbmN5J10uY3VycmVudFZhbHVlIDogbnVsbDtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydtYXJrZXInXSAmJiBjaGFuZ2VzWydtYXJrZXInXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgdGhpcy5pbmZvID0gY2hhbmdlc1snbWFya2VyJ10uY3VycmVudFZhbHVlLmluZm87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZyb250SW1hZ2VPdmVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYXJrZXIuaG92ZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5tYXJrZXJDaGFuZ2VkLmVtaXQodGhpcy5tYXJrZXIpO1xyXG4gIH1cclxuXHJcbiAgb25Gcm9udEltYWdlTGVhdmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hcmtlci5ob3ZlciA9IGZhbHNlO1xyXG4gICAgdGhpcy5tYXJrZXJDaGFuZ2VkLmVtaXQodGhpcy5tYXJrZXIpO1xyXG4gIH1cclxuXHJcbiAgZmF2b3JpdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZhdm9yaXRlQ2hhbmdlZC5lbWl0KHRoaXMuaW5mby5wcm9wZXJ0eUlkKTtcclxuICB9XHJcblxyXG4gIGRpc2NhcmQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BlcnR5RGlzY2FyZGVkLmVtaXQodGhpcy5pbmZvLnByb3BlcnR5SWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZWcycmFkKGRlZyk6IGFueSB7XHJcbiAgICByZXR1cm4gZGVnICogKE1hdGguUEkgLyAxODAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGF0TG5nKGxhdDogYW55LCBsbmc6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgbGF0MSA9IGxhdDtcclxuICAgIGNvbnN0IGxvbjEgPSBsbmc7XHJcbiAgICBjb25zdCBsYXQyID0gdGhpcy5tYXJrZXIubG9jYXRpb24ubGF0aXR1ZGU7XHJcbiAgICBjb25zdCBsb24yID0gdGhpcy5tYXJrZXIubG9jYXRpb24ubG9uZ2l0dWRlO1xyXG4gICAgY29uc3QgUiA9IDYzNzE7IC8vIFJhZGl1cyBvZiB0aGUgZWFydGggaW4ga21cclxuICAgIGNvbnN0IGRMYXQgPSB0aGlzLmRlZzJyYWQobGF0MiAtIGxhdDEgKTsgIC8vIGRlZzJyYWQgYmVsb3dcclxuICAgIGNvbnN0IGRMb24gPSB0aGlzLmRlZzJyYWQobG9uMiAtIGxvbjEgKTtcclxuICAgIGNvbnN0IGEgPVxyXG4gICAgICBNYXRoLnNpbihkTGF0IC8gMikgKiBNYXRoLnNpbihkTGF0IC8gMikgK1xyXG4gICAgICBNYXRoLmNvcyh0aGlzLmRlZzJyYWQobGF0MSkpICogTWF0aC5jb3ModGhpcy5kZWcycmFkKGxhdDIpKSAqXHJcbiAgICAgIE1hdGguc2luKGRMb24gLyAyKSAqIE1hdGguc2luKGRMb24gLyAyKVxyXG4gICAgO1xyXG4gICAgY29uc3QgYyA9IDIgKiBNYXRoLmF0YW4yKE1hdGguc3FydChhKSwgTWF0aC5zcXJ0KDEgLSBhKSk7XHJcbiAgICBsZXQgIGQgPSBSICogYzsgLy8gRGlzdGFuY2UgaW4ga21cclxuICAgIGlmIChNYXRoLnRydW5jKGQpIDwgMSkge1xyXG4gICAgICBkID0gZCAqIDEwMDA7XHJcbiAgICAgIGQgPSBNYXRoLnRydW5jKGQpO1xyXG4gICAgICBpZiAoZCA8IDEwKSB7XHJcbiAgICAgICAgdGhpcy5kaXN0YW5jZSA9IDEwICsgJyBtIGRlIHN1IGLDunNxdWVkYSc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZCA9IGQgLSAoZCAlIDEwKTtcclxuICAgICAgICB0aGlzLmRpc3RhbmNlID0gZCArICcgbSBkZSBzdSBiw7pzcXVlZGEnO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpc3RhbmNlID0gZC50b0ZpeGVkKDIpICsgJyBrbSBkZSBzdSBiw7pzcXVlZGEnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|