UNPKG

@sedeh/into-pipes

Version:

Have you ever wanted to transform data in different parts of your application into interactive objects without writing a single line of code?

131 lines 21.5 kB
import { Component, EventEmitter } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; export class ShareComponent { constructor() { this.shouldDisplay = false; this.shareList = []; // list of sites to show on share view. this.disabled = false; this.active = true; this.validate = (item, newValue) => true; this.onIntoComponentChange = new EventEmitter(); } shareInfo(type, address) { return { icon: 'fa fa-' + type, href: address, title: 'share with ' + type }; } keyup(event) { const code = event.which; event.stopPropagation(); event.preventDefault(); if (code === 13 && !this.disabled) { event.target.click(); } } change(event) { if (!this.disabled) { this.onIntoComponentChange.emit({ id: this.id, name: this.name, value: this.source, item: event.title }); } } toggleShare() { if (!this.disabled) { this.shouldDisplay = !this.shouldDisplay; this.onIntoComponentChange.emit({ id: this.id, name: this.name, value: 'Share options', type: 'share', item: this.shouldDisplay ? 'open' : 'close' }); } } static settingsPatterns() { return ['share:facebook:twitter:linkedin:google:pinterest:digg:get-pocket:xing:stumbleupon']; //options } transform(source, data, args) { this.source = source; const list = (args[0] instanceof Array) ? args[0] : args; list.map((arg) => { if (arg === 'facebook') { this.shareList.push(this.shareInfo('facebook', 'http://www.facebook.com/sharer.php?u=' + source)); } else if (arg === 'twitter') { this.shareList.push(this.shareInfo('twitter', 'https://twitter.com/share?title=&amp;url=' + source)); } else if (arg === 'linkedin') { this.shareList.push(this.shareInfo('linkedin', 'http://www.linkedin.com/shareArticle?title=&amp;url=' + source)); } else if (arg === 'google') { this.shareList.push(this.shareInfo('google-plus', 'https://plus.google.com/share?url=' + source)); } else if (arg === 'pinterest') { this.shareList.push(this.shareInfo('google-plus', 'http://pinterest.com/pin/create/link/?url=' + source)); } else if (arg === 'digg') { this.shareList.push(this.shareInfo('digg', 'http://digg.com/submit?url=' + source)); } else if (arg === 'get-pocket') { this.shareList.push(this.shareInfo('get-pocket', 'https://getpocket.com/edit?url=' + source)); } else if (arg === 'xing') { this.shareList.push(this.shareInfo('xing', 'https://www.xing.com/app/user?op=share&url=' + source)); } else if (arg === 'stumbleupon') { this.shareList.push(this.shareInfo('stumbleupon', 'http://www.stumbleupon.com/submit?url=' + source)); } }); } } ShareComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShareComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); ShareComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ShareComponent, selector: "share-component", ngImport: i0, template: ` <a id='share-comment-{{id}}' tabindex="{{active ? 0 : -1}}" class="share-item-tips {{disabled ? 'disabled' : ''}}" (keyup)='keyup($event)' (click)='toggleShare()'> <span class="fa fa-share-alt"></span> <span class="share">share</span> </a> <span id='share-comment-{{id}}-tips' class="tips {{disabled ? 'disabled' : ''}}" *ngIf='shouldDisplay'> <span class='social-referal'> <a *ngFor="let share of shareList" tabindex="{{active ? 0 : -1}}" (keyup)='keyup($event)' (click)='change(share)' class="{{disabled ? 'disabled' : ''}} {{share.icon}}" target='_blank' [href]="disabled ? '' : share.href"><span class='off-screen' [textContent]="share.title"></span></a> </span> </span> `, isInline: true, styles: [":host{display:table;float:left;min-height:var(--sedeh-min-height, 25px);position:relative}:host .share-item-tips:focus{outline:none}:host .share-item-tips:focus .fa{zoom:1.1;right:var(--sedeh-shift-right, 0);position:relative;color:var(--sedeh-focus-color, darkblue)}:host a.disabled{color:var(--sedeh-disabled-color, #888);cursor:default;pointer-events:none;text-decoration:none}:host a.disabled .fa{color:var(--sedeh-disabled-color, #888)}.share-item-tips{cursor:pointer}.share-item-tips .fa{margin:0}:host:hover .share-item-tips .fa,:host:hover .share-item-tips .share,.tips a:hover{opacity:var(--sedeh-hover-opacity, .5)}:host:hover .share-item-tips.disabled .fa,:host:hover .share-item-tips.disabled .share,.tips.disabled,.tips.disabled a{opacity:1;color:var(--sedeh-disabled-color, #888)!important}.share-item-tips .share{margin-left:var(--sedeh-margin-left, 5px)}.tips{position:absolute;display:flex;flex-direction:row;padding:5px;border:1px solid #aaa;border-radius:2px;background-color:#fff;z-index:2}.tips .social-referal{display:flex;flex-direction:row}.tips .social-referal a{min-width:20px;min-height:20px}.tips .social-referal .fa{float:left;padding:2px 4px;color:#00f;border:1px solid #ccc;border-radius:4px;text-decoration:none;margin:0 1px;width:20px;text-align:center}.tips .social-referal .fa:hover{color:#fff;background-color:#00f}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShareComponent, decorators: [{ type: Component, args: [{ selector: 'share-component', template: ` <a id='share-comment-{{id}}' tabindex="{{active ? 0 : -1}}" class="share-item-tips {{disabled ? 'disabled' : ''}}" (keyup)='keyup($event)' (click)='toggleShare()'> <span class="fa fa-share-alt"></span> <span class="share">share</span> </a> <span id='share-comment-{{id}}-tips' class="tips {{disabled ? 'disabled' : ''}}" *ngIf='shouldDisplay'> <span class='social-referal'> <a *ngFor="let share of shareList" tabindex="{{active ? 0 : -1}}" (keyup)='keyup($event)' (click)='change(share)' class="{{disabled ? 'disabled' : ''}} {{share.icon}}" target='_blank' [href]="disabled ? '' : share.href"><span class='off-screen' [textContent]="share.title"></span></a> </span> </span> `, styles: [":host{display:table;float:left;min-height:var(--sedeh-min-height, 25px);position:relative}:host .share-item-tips:focus{outline:none}:host .share-item-tips:focus .fa{zoom:1.1;right:var(--sedeh-shift-right, 0);position:relative;color:var(--sedeh-focus-color, darkblue)}:host a.disabled{color:var(--sedeh-disabled-color, #888);cursor:default;pointer-events:none;text-decoration:none}:host a.disabled .fa{color:var(--sedeh-disabled-color, #888)}.share-item-tips{cursor:pointer}.share-item-tips .fa{margin:0}:host:hover .share-item-tips .fa,:host:hover .share-item-tips .share,.tips a:hover{opacity:var(--sedeh-hover-opacity, .5)}:host:hover .share-item-tips.disabled .fa,:host:hover .share-item-tips.disabled .share,.tips.disabled,.tips.disabled a{opacity:1;color:var(--sedeh-disabled-color, #888)!important}.share-item-tips .share{margin-left:var(--sedeh-margin-left, 5px)}.tips{position:absolute;display:flex;flex-direction:row;padding:5px;border:1px solid #aaa;border-radius:2px;background-color:#fff;z-index:2}.tips .social-referal{display:flex;flex-direction:row}.tips .social-referal a{min-width:20px;min-height:20px}.tips .social-referal .fa{float:left;padding:2px 4px;color:#00f;border:1px solid #ccc;border-radius:4px;text-decoration:none;margin:0 1px;width:20px;text-align:center}.tips .social-referal .fa:hover{color:#fff;background-color:#00f}\n"] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW50by1waXBlcy9zcmMvbGliL3NoYXJlL3NoYXJlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBeUV4RCxNQUFNLE9BQU8sY0FBYztJQXRFM0I7UUF1RUksa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFJdEIsY0FBUyxHQUFVLEVBQUUsQ0FBQyxDQUFDLHVDQUF1QztRQUM5RCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxhQUFRLEdBQUcsQ0FBQyxJQUFTLEVBQUUsUUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFFakQsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQXNFM0M7SUFwRVcsU0FBUyxDQUFDLElBQVksRUFBRSxPQUFlO1FBQzNDLE9BQU87WUFDSCxJQUFJLEVBQUUsUUFBUSxHQUFHLElBQUk7WUFDckIsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsYUFBYSxHQUFFLElBQUk7U0FDN0IsQ0FBQTtJQUNMLENBQUM7SUFDRCxLQUFLLENBQUMsS0FBVTtRQUNaLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixJQUFJLElBQUksS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQy9CLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQVU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZ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YUFDOUY7aUJBQU0sSUFBSyxHQUFHLEtBQUssTUFBTSxFQUFFO2dCQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSw2Q0FBNkMsR0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO2FBQ3BHO2lCQUFNLElBQUssR0FBRyxLQUFLLGFBQWEsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsd0NBQXdDLEdBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTthQUN0RztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7NEdBL0VRLGNBQWM7Z0dBQWQsY0FBYyx1REFwRWI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FtQmI7NEZBaURZLGNBQWM7a0JBdEUxQixTQUFTOytCQUNJLGlCQUFpQixZQUNqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW1CYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBpcGVDb21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICcuLi9jb21tb24vcGlwZS5jb21wb25lbnQuaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzaGFyZS1jb21wb25lbnQnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxhIGlkPSdzaGFyZS1jb21tZW50LXt7aWR9fScgXHJcbiAgICAgICAgdGFiaW5kZXg9XCJ7e2FjdGl2ZSA/IDAgOiAtMX19XCIgXHJcbiAgICAgICAgY2xhc3M9XCJzaGFyZS1pdGVtLXRpcHMge3tkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiAnJ319XCIgXHJcbiAgICAgICAgKGtleXVwKT0na2V5dXAoJGV2ZW50KSdcclxuICAgICAgICAoY2xpY2spPSd0b2dnbGVTaGFyZSgpJz5cclxuICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtc2hhcmUtYWx0XCI+PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzaGFyZVwiPnNoYXJlPC9zcGFuPlxyXG4gICAgPC9hPlxyXG4gICAgPHNwYW4gaWQ9J3NoYXJlLWNvbW1lbnQte3tpZH19LXRpcHMnIGNsYXNzPVwidGlwcyB7e2Rpc2FibGVkID8gJ2Rpc2FibGVkJyA6ICcnfX1cIiAqbmdJZj0nc2hvdWxkRGlzcGxheSc+XHJcbiAgICAgIDxzcGFuIGNsYXNzPSdzb2NpYWwtcmVmZXJhbCc+XHJcbiAgICAgICAgPGEgKm5nRm9yPVwibGV0IHNoYXJlIG9mIHNoYXJlTGlzdFwiIFxyXG4gICAgICAgICAgICB0YWJpbmRleD1cInt7YWN0aXZlID8gMCA6IC0xfX1cIiBcclxuICAgICAgICAgICAgKGtleXVwKT0na2V5dXAoJGV2ZW50KSdcclxuICAgICAgICAgICAgKGNsaWNrKT0nY2hhbmdlKHNoYXJlKSdcclxuICAgICAgICAgICAgY2xhc3M9XCJ7e2Rpc2FibGVkID8gJ2Rpc2FibGVkJyA6ICcnfX0ge3tzaGFyZS5pY29ufX1cIiB0YXJnZXQ9J19ibGFuaycgXHJcbiAgICAgICAgICAgIFtocmVmXT1cImRpc2FibGVkID8gJycgOiBzaGFyZS5ocmVmXCI+PHNwYW4gY2xhc3M9J29mZi1zY3JlZW4nIFt0ZXh0Q29udGVudF09XCJzaGFyZS50aXRsZVwiPjwvc3Bhbj48L2E+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuYCxcclxuICAgIHN0eWxlczogW2BcclxuICAgIDpob3N0IHtkaXNwbGF5OnRhYmxlO2Zsb2F0OmxlZnQ7bWluLWhlaWdodDogdmFyKC0tc2VkZWgtbWluLWhlaWdodCwgMjVweCk7cG9zaXRpb246IHJlbGF0aXZlfVxyXG4gICAgOmhvc3QgLnNoYXJlLWl0ZW0tdGlwczpmb2N1c3tvdXRsaW5lOiBub25lO31cclxuICAgIDpob3N0IC5zaGFyZS1pdGVtLXRpcHM6Zm9jdXMgLmZhe3pvb206IDEuMTtyaWdodDogdmFyKC0tc2VkZWgtc2hpZnQtcmlnaHQsIDApO3Bvc2l0aW9uOiByZWxhdGl2ZTtjb2xvcjogdmFyKC0tc2VkZWgtZm9jdXMtY29sb3IsIGRhcmtibHVlKTt9XHJcbiAgICA6aG9zdCBhLmRpc2FibGVke2NvbG9yOiB2YXIoLS1zZWRlaC1kaXNhYmxlZC1jb2xvciwgIzg4OCk7Y3Vyc29yOmRlZmF1bHQ7cG9pbnRlci1ldmVudHM6bm9uZTt0ZXh0LWRlY29yYXRpb246IG5vbmU7fVxyXG4gICAgOmhvc3QgYS5kaXNhYmxlZCAuZmF7Y29sb3I6IHZhcigtLXNlZGVoLWRpc2FibGVkLWNvbG9yLCAjODg4KTt9XHJcbiAgICAuc2hhcmUtaXRlbS10aXBzIHtjdXJzb3I6IHBvaW50ZXI7fVxyXG4gICAgLnNoYXJlLWl0ZW0tdGlwcyAuZmEge21hcmdpbjogMDt9XHJcbiAgICA6aG9zdDpob3ZlciAuc2hhcmUtaXRlbS10aXBzIC5mYSwgOmhvc3Q6aG92ZXIgLnNoYXJlLWl0ZW0tdGlwcyAuc2hhcmUsIC50aXBzIGE6aG92ZXIge29wYWNpdHk6IHZhcigtLXNlZGVoLWhvdmVyLW9wYWNpdHksIDAuNSk7fVxyXG4gICAgOmhvc3Q6aG92ZXIgLnNoYXJlLWl0ZW0tdGlwcy5kaXNhYmxlZCAuZmEsIDpob3N0OmhvdmVyIC5zaGFyZS1pdGVtLXRpcHMuZGlzYWJsZWQgLnNoYXJlLCAudGlwcy5kaXNhYmxlZCwgLnRpcHMuZGlzYWJsZWQgYSB7b3BhY2l0eToxO2NvbG9yOiB2YXIoLS1zZWRlaC1kaXNhYmxlZC1jb2xvciwgIzg4OCkgIWltcG9ydGFudDt9XHJcblxyXG5cclxuICAgIC5zaGFyZS1pdGVtLXRpcHMgLnNoYXJle21hcmdpbi1sZWZ0OiB2YXIoLS1zZWRlaC1tYXJnaW4tbGVmdCwgNXB4KTt9XHJcbiAgICAudGlwcyB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICB6LWluZGV4OiAyO1xyXG4gICAgfVxyXG4gICAgLnRpcHMgLnNvY2lhbC1yZWZlcmFsIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICB9XHJcbiAgICAudGlwcyAuc29jaWFsLXJlZmVyYWwgYSB7XHJcbiAgICAgICAgbWluLXdpZHRoOiAyMHB4O1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDIwcHg7XHJcbiAgICB9XHJcbiAgICAudGlwcyAuc29jaWFsLXJlZmVyYWwgLmZhIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBwYWRkaW5nOiAycHggNHB4O1xyXG4gICAgICAgIGNvbG9yOiBibHVlO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICBtYXJnaW46IDAgMXB4O1xyXG4gICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuICAgIC50aXBzIC5zb2NpYWwtcmVmZXJhbCAuZmE6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7XHJcbiAgICB9XHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hhcmVDb21wb25lbnQgaW1wbGVtZW50cyBQaXBlQ29tcG9uZW50SW50ZXJmYWNlIHtcclxuICAgIHNob3VsZERpc3BsYXkgPSBmYWxzZTtcclxuICAgIHNvdXJjZSE6IHN0cmluZzsgLy8gaXQgc2hvdWxkIGJlIGEgbGluayByZWZlcmVuY2UgdG8gd2hhdCBpcyBiZWluZyBzaGFyZWQuXHJcblx0aWQhOiBzdHJpbmc7XHJcbiAgICBuYW1lITogc3RyaW5nO1xyXG4gICAgc2hhcmVMaXN0OiBhbnlbXSA9IFtdOyAvLyBsaXN0IG9mIHNpdGVzIHRvIHNob3cgb24gc2hhcmUgdmlldy5cclxuICAgIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBhY3RpdmUgPSB0cnVlO1xyXG4gICAgdmFsaWRhdGUgPSAoaXRlbTogYW55LCBuZXdWYWx1ZTogYW55KSA9PiB0cnVlO1xyXG5cclxuXHRvbkludG9Db21wb25lbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBcclxuICAgIHByaXZhdGUgc2hhcmVJbmZvKHR5cGU6IHN0cmluZywgYWRkcmVzczogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWNvbjogJ2ZhIGZhLScgKyB0eXBlLFxyXG4gICAgICAgICAgICBocmVmOiBhZGRyZXNzLFxyXG4gICAgICAgICAgICB0aXRsZTogJ3NoYXJlIHdpdGggJysgdHlwZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGtleXVwKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBjb25zdCBjb2RlID0gZXZlbnQud2hpY2g7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIFxyXG4gICAgICAgIGlmIChjb2RlID09PSAxMyAmJiAhdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLm9uSW50b0NvbXBvbmVudENoYW5nZS5lbWl0KHtcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmlkLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuc291cmNlLFxyXG4gICAgICAgICAgICAgICAgaXRlbTogZXZlbnQudGl0bGVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdG9nZ2xlU2hhcmUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvdWxkRGlzcGxheSA9ICF0aGlzLnNob3VsZERpc3BsYXk7XHJcbiAgICAgICAgICAgIHRoaXMub25JbnRvQ29tcG9uZW50Q2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuaWQsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ1NoYXJlIG9wdGlvbnMnLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ3NoYXJlJyxcclxuICAgICAgICAgICAgICAgIGl0ZW06IHRoaXMuc2hvdWxkRGlzcGxheSA/ICdvcGVuJyA6ICdjbG9zZSdcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSAgXHJcblxyXG4gICAgc3RhdGljIHNldHRpbmdzUGF0dGVybnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFsnc2hhcmU6ZmFjZWJvb2s6dHdpdHRlcjpsaW5rZWRpbjpnb29nbGU6cGludGVyZXN0OmRpZ2c6Z2V0LXBvY2tldDp4aW5nOnN0dW1ibGV1cG9uJ107IC8vb3B0aW9uc1xyXG4gICAgfVxyXG4gICAgdHJhbnNmb3JtKHNvdXJjZTogYW55LCBkYXRhOiBhbnksIGFyZ3M6IGFueVtdKSB7XHJcblxyXG4gICAgICAgIHRoaXMuc291cmNlID0gc291cmNlO1xyXG4gICAgICAgIGNvbnN0IGxpc3QgPSAoYXJnc1swXSBpbnN0YW5jZW9mIEFycmF5KSA/IGFyZ3NbMF0gOiBhcmdzO1xyXG4gICAgICAgIGxpc3QubWFwKCAoYXJnKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICggYXJnID09PSAnZmFjZWJvb2snKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNoYXJlTGlzdC5wdXNoKHRoaXMuc2hhcmVJbmZvKCdmYWNlYm9vaycsICdodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIucGhwP3U9Jytzb3VyY2UpKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBhcmcgPT09ICd0d2l0dGVyJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaGFyZUxpc3QucHVzaCh0aGlzLnNoYXJlSW5mbygndHdpdHRlcicsICdodHRwczovL3R3aXR0ZXIuY29tL3NoYXJlP3RpdGxlPSZhbXA7dXJsPScrc291cmNlKSlcclxuICAgICAgICAgICAgfSBlbHNlIGlmICggYXJnID09PSAnbGlua2VkaW4nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNoYXJlTGlzdC5wdXNoKHRoaXMuc2hhcmVJbmZvKCdsaW5rZWRpbicsJ2h0dHA6Ly93d3cubGlua2VkaW4uY29tL3NoYXJlQXJ0aWNsZT90aXRsZT0mYW1wO3VybD0nK3NvdXJjZSkpXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIGFyZyA9PT0gJ2dvb2dsZScpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hhcmVMaXN0LnB1c2godGhpcy5zaGFyZUluZm8oJ2dvb2dsZS1wbHVzJywgJ2h0dHBzOi8vcGx1cy5nb29nbGUuY29tL3NoYXJlP3VybD0nK3NvdXJjZSkpXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIGFyZyA9PT0gJ3BpbnRlcmVzdCcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hhcmVMaXN0LnB1c2godGhpcy5zaGFyZUluZm8oJ2dvb2dsZS1wbHVzJywgJ2h0dHA6Ly9waW50ZXJlc3QuY29tL3Bpbi9jcmVhdGUvbGluay8/dXJsPScrc291cmNlKSlcclxuICAgICAgICAgICAgfSBlbHNlIGlmICggYXJnID09PSAnZGlnZycpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hhcmVMaXN0LnB1c2godGhpcy5zaGFyZUluZm8oJ2RpZ2cnLCAnaHR0cDovL2RpZ2cuY29tL3N1Ym1pdD91cmw9Jytzb3VyY2UpKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBhcmcgPT09ICdnZXQtcG9ja2V0Jykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaGFyZUxpc3QucHVzaCh0aGlzLnNoYXJlSW5mbygnZ2V0LXBvY2tldCcsICdodHRwczovL2dldHBvY2tldC5jb20vZWRpdD91cmw9Jytzb3VyY2UpKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBhcmcgPT09ICd4aW5nJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaGFyZUxpc3QucHVzaCh0aGlzLnNoYXJlSW5mbygneGluZycsICdodHRwczovL3d3dy54aW5nLmNvbS9hcHAvdXNlcj9vcD1zaGFyZSZ1cmw9Jytzb3VyY2UpKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBhcmcgPT09ICdzdHVtYmxldXBvbicpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hhcmVMaXN0LnB1c2godGhpcy5zaGFyZUluZm8oJ3N0dW1ibGV1cG9uJywgJ2h0dHA6Ly93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Jytzb3VyY2UpKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19