@ngx-performance-ui/ui
Version:
Ngx Performance UI - UI
183 lines • 17.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ViewChild, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
import { GoogleChartComponent } from '../google-chart/google-chart.component';
import { Store } from '@ngxs/store';
import { ToasterShow } from '../../actions';
var AnnotationChartComponent = /** @class */ (function () {
function AnnotationChartComponent(store) {
this.store = store;
// https://developers.google.com/chart/interactive/docs/gallery/annotationchart
this.annotationChartColumns = [
{ type: 'date', label: 'Date' },
{ type: 'number', label: 'Kepler-22b mission' },
{ type: 'string', label: 'Kepler title' },
{ type: 'string', label: 'Kepler text' },
{ type: 'number', label: 'Gliese 163 mission' },
{ type: 'string', label: 'Gliese title' },
{ type: 'string', label: 'Gliese text' },
];
this.annotationChartRows = [
[new Date(2314, 2, 15), 12400, undefined, undefined, 10645, undefined, undefined],
[new Date(2314, 2, 16), 24045, 'Lalibertines', 'First encounter', 12374, undefined, undefined],
[new Date(2314, 2, 17), 35022, 'Lalibertines', 'They are very tall', 15766, 'Gallantors', 'First Encounter'],
[
new Date(2314, 2, 18),
12284,
'Lalibertines',
'Attack on our crew!',
34334,
'Gallantors',
'Statement of shared principles',
],
[new Date(2314, 2, 19), 8476, 'Lalibertines', 'Heavy casualties', 66467, 'Gallantors', 'Mysteries revealed'],
[new Date(2314, 2, 20), 0, 'Lalibertines', 'All crew lost', 79463, 'Gallantors', 'Omniscience achieved'],
];
this.annotationChartOptions = {
displayAnnotations: true,
};
}
Object.defineProperty(AnnotationChartComponent.prototype, "chart", {
get: /**
* @return {?}
*/
function () {
return this.annotationChart.chart;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
AnnotationChartComponent.prototype.rangeChangeHandler = /**
* @return {?}
*/
function () {
google.visualization.events.addListener(this.chart, 'rangechange', (/**
* @param {?} event
* @return {?}
*/
function (event) {
console.log('You changed the range to ', event['start'], ' and ', event['end']);
}));
};
/**
* @return {?}
*/
AnnotationChartComponent.prototype.clearChart = /**
* @return {?}
*/
function () {
this.chart.clearChart();
};
/**
* @return {?}
*/
AnnotationChartComponent.prototype.getContainer = /**
* @return {?}
*/
function () {
console.log(this.chart.getContainer());
this.showToaster();
};
/**
* @return {?}
*/
AnnotationChartComponent.prototype.getSelection = /**
* @return {?}
*/
function () {
console.log(this.chart.getSelection());
this.showToaster();
};
/**
* @return {?}
*/
AnnotationChartComponent.prototype.getVisibleChartRange = /**
* @return {?}
*/
function () {
console.log(this.chart.getVisibleChartRange());
this.showToaster();
};
/**
* @param {?} index
* @return {?}
*/
AnnotationChartComponent.prototype.hideDataColumns = /**
* @param {?} index
* @return {?}
*/
function (index) {
this.chart.hideDataColumns(index);
};
/**
* @param {?} index
* @return {?}
*/
AnnotationChartComponent.prototype.showDataColumns = /**
* @param {?} index
* @return {?}
*/
function (index) {
this.chart.showDataColumns(index);
};
/**
* @param {?} start
* @param {?} end
* @return {?}
*/
AnnotationChartComponent.prototype.setVisibleChartRange = /**
* @param {?} start
* @param {?} end
* @return {?}
*/
function (start, end) {
this.chart.setVisibleChartRange(start, end);
};
/**
* @return {?}
*/
AnnotationChartComponent.prototype.showToaster = /**
* @return {?}
*/
function () {
this.store.dispatch(new ToasterShow({ body: 'Check the console' }));
};
AnnotationChartComponent.decorators = [
{ type: Component, args: [{
selector: 'p-annotation-chart',
template: "\n <p-google-chart\n #annotationChart\n chartType=\"AnnotationChart\"\n [columns]=\"annotationChartColumns\"\n [rows]=\"annotationChartRows\"\n [options]=\"annotationChartOptions\"\n (ready)=\"rangeChangeHandler()\"\n ></p-google-chart>\n\n <div *ngIf=\"chart\" class=\"row mt-2\">\n <div class=\"col-12\">\n <h4>Methods</h4>\n <button (click)=\"clearChart()\" class=\"btn btn-sm btn-secondary m-1\">clearChart()</button>\n <button (click)=\"hideDataColumns([1, 2, 3])\" class=\"btn btn-sm btn-secondary m-1\">\n hideDataColumns(columnIndexes)\n </button>\n <button (click)=\"showDataColumns([1, 2, 3])\" class=\"btn btn-sm btn-secondary m-1\">\n showDataColumns(columnIndexes)\n </button>\n <button (click)=\"getContainer()\" class=\"btn btn-sm btn-secondary m-1\">getContainer()</button>\n <button (click)=\"getSelection()\" class=\"btn btn-sm btn-secondary m-1\">getSelection()</button>\n <button (click)=\"getVisibleChartRange()\" class=\"btn btn-sm btn-secondary m-1\">getVisibleChartRange()</button>\n <button\n (click)=\"setVisibleChartRange(annotationChartRows[0][0], annotationChartRows[1][0])\"\n class=\"btn btn-sm btn-secondary m-1\"\n >\n setVisibleChartRange(start, end)\n </button>\n </div>\n </div>\n ",
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None
}] }
];
/** @nocollapse */
AnnotationChartComponent.ctorParameters = function () { return [
{ type: Store }
]; };
AnnotationChartComponent.propDecorators = {
annotationChart: [{ type: ViewChild, args: ['annotationChart',] }]
};
return AnnotationChartComponent;
}());
export { AnnotationChartComponent };
if (false) {
/** @type {?} */
AnnotationChartComponent.prototype.annotationChartColumns;
/** @type {?} */
AnnotationChartComponent.prototype.annotationChartRows;
/** @type {?} */
AnnotationChartComponent.prototype.annotationChartOptions;
/** @type {?} */
AnnotationChartComponent.prototype.annotationChart;
/**
* @type {?}
* @private
*/
AnnotationChartComponent.prototype.store;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbi1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LXBlcmZvcm1hbmNlLXVpL3VpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2hhcnRzL2Fubm90YXRpb24tY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJNUM7SUE0RUUsa0NBQW9CLEtBQVk7UUFBWixVQUFLLEdBQUwsS0FBSyxDQUFPOztRQXJDaEMsMkJBQXNCLEdBQXlCO1lBQzdDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQy9CLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7WUFDL0MsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUU7WUFDekMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7WUFDeEMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtZQUMvQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRTtZQUN6QyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtTQUN6QyxDQUFDO1FBRUYsd0JBQW1CLEdBQWlCO1lBQ2xDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFF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LEdBQVM7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7OztJQUVELDhDQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7O2dCQXJIRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLHkzQ0ErQlQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7OztnQkF6Q1EsS0FBSzs7O2tDQTJFWCxTQUFTLFNBQUMsaUJBQWlCOztJQWdEOUIsK0JBQUM7Q0FBQSxBQXRIRCxJQXNIQztTQWpGWSx3QkFBd0I7OztJQUVuQywwREFRRTs7SUFFRix1REFlRTs7SUFFRiwwREFFRTs7SUFFRixtREFBb0U7Ozs7O0lBTXhELHlDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdvb2dsZUNoYXJ0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEdvb2dsZUNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vZ29vZ2xlLWNoYXJ0L2dvb2dsZS1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2hvdyB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuXG5kZWNsYXJlIHZhciBnb29nbGU7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtYW5ub3RhdGlvbi1jaGFydCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHAtZ29vZ2xlLWNoYXJ0XG4gICAgICAjYW5ub3RhdGlvbkNoYXJ0XG4gICAgICBjaGFydFR5cGU9XCJBbm5vdGF0aW9uQ2hhcnRcIlxuICAgICAgW2NvbHVtbnNdPVwiYW5ub3RhdGlvbkNoYXJ0Q29sdW1uc1wiXG4gICAgICBbcm93c109XCJhbm5vdGF0aW9uQ2hhcnRSb3dzXCJcbiAgICAgIFtvcHRpb25zXT1cImFubm90YXRpb25DaGFydE9wdGlvbnNcIlxuICAgICAgKHJlYWR5KT1cInJhbmdlQ2hhbmdlSGFuZGxlcigpXCJcbiAgICA+PC9wLWdvb2dsZS1jaGFydD5cblxuICAgIDxkaXYgKm5nSWY9XCJjaGFydFwiIGNsYXNzPVwicm93IG10LTJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgPGg0Pk1ldGhvZHM8L2g0PlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbGVhckNoYXJ0KClcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXNlY29uZGFyeSBtLTFcIj5jbGVhckNoYXJ0KCk8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGlkZURhdGFDb2x1bW5zKFsxLCAyLCAzXSlcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXNlY29uZGFyeSBtLTFcIj5cbiAgICAgICAgICBoaWRlRGF0YUNvbHVtbnMoY29sdW1uSW5kZXhlcylcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNob3dEYXRhQ29sdW1ucyhbMSwgMiwgM10pXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1zZWNvbmRhcnkgbS0xXCI+XG4gICAgICAgICAgc2hvd0RhdGFDb2x1bW5zKGNvbHVtbkluZGV4ZXMpXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJnZXRDb250YWluZXIoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tc2Vjb25kYXJ5IG0tMVwiPmdldENvbnRhaW5lcigpPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdldFNlbGVjdGlvbigpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1zZWNvbmRhcnkgbS0xXCI+Z2V0U2VsZWN0aW9uKCk8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZ2V0VmlzaWJsZUNoYXJ0UmFuZ2UoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tc2Vjb25kYXJ5IG0tMVwiPmdldFZpc2libGVDaGFydFJhbmdlKCk8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJzZXRWaXNpYmxlQ2hhcnRSYW5nZShhbm5vdGF0aW9uQ2hhcnRSb3dzWzBdWzBdLCBhbm5vdGF0aW9uQ2hhcnRSb3dzWzFdWzBdKVwiXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1zZWNvbmRhcnkgbS0xXCJcbiAgICAgICAgPlxuICAgICAgICAgIHNldFZpc2libGVDaGFydFJhbmdlKHN0YXJ0LCBlbmQpXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBbm5vdGF0aW9uQ2hhcnRDb21wb25lbnQge1xuICAvLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9jaGFydC9pbnRlcmFjdGl2ZS9kb2NzL2dhbGxlcnkvYW5ub3RhdGlvbmNoYXJ0XG4gIGFubm90YXRpb25DaGFydENvbHVtbnM6IEdvb2dsZUNoYXJ0LkNvbHVtbltdID0gW1xuICAgIHsgdHlwZTogJ2RhdGUnLCBsYWJlbDogJ0RhdGUnIH0sXG4gICAgeyB0eXBlOiAnbnVtYmVyJywgbGFiZWw6ICdLZXBsZXItMjJiIG1pc3Npb24nIH0sXG4gICAgeyB0eXBlOiAnc3RyaW5nJywgbGFiZWw6ICdLZXBsZXIgdGl0bGUnIH0sXG4gICAgeyB0eXBlOiAnc3RyaW5nJywgbGFiZWw6ICdLZXBsZXIgdGV4dCcgfSxcbiAgICB7IHR5cGU6ICdudW1iZXInLCBsYWJlbDogJ0dsaWVzZSAxNjMgbWlzc2lvbicgfSxcbiAgICB7IHR5cGU6ICdzdHJpbmcnLCBsYWJlbDogJ0dsaWVzZSB0aXRsZScgfSxcbiAgICB7IHR5cGU6ICdzdHJpbmcnLCBsYWJlbDogJ0dsaWVzZSB0ZXh0JyB9LFxuICBdO1xuXG4gIGFubm90YXRpb25DaGFydFJvd3M6IEFycmF5PGFueVtdPiA9IFtcbiAgICBbbmV3IERhdGUoMjMxNCwgMiwgMTUpLCAxMjQwMCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDEwNjQ1LCB1bmRlZmluZWQsIHVuZGVmaW5lZF0sXG4gICAgW25ldyBEYXRlKDIzMTQsIDIsIDE2KSwgMjQwNDUsICdMYWxpYmVydGluZXMnLCAnRmlyc3QgZW5jb3VudGVyJywgMTIzNzQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkXSxcbiAgICBbbmV3IERhdGUoMjMxNCwgMiwgMTcpLCAzNTAyMiwgJ0xhbGliZXJ0aW5lcycsICdUaGV5IGFyZSB2ZXJ5IHRhbGwnLCAxNTc2NiwgJ0dhbGxhbnRvcnMnLCAnRmlyc3QgRW5jb3VudGVyJ10sXG4gICAgW1xuICAgICAgbmV3IERhdGUoMjMxNCwgMiwgMTgpLFxuICAgICAgMTIyODQsXG4gICAgICAnTGFsaWJlcnRpbmVzJyxcbiAgICAgICdBdHRhY2sgb24gb3VyIGNyZXchJyxcbiAgICAgIDM0MzM0LFxuICAgICAgJ0dhbGxhbnRvcnMnLFxuICAgICAgJ1N0YXRlbWVudCBvZiBzaGFyZWQgcHJpbmNpcGxlcycsXG4gICAgXSxcbiAgICBbbmV3IERhdGUoMjMxNCwgMiwgMTkpLCA4NDc2LCAnTGFsaWJlcnRpbmVzJywgJ0hlYXZ5IGNhc3VhbHRpZXMnLCA2NjQ2NywgJ0dhbGxhbnRvcnMnLCAnTXlzdGVyaWVzIHJldmVhbGVkJ10sXG4gICAgW25ldyBEYXRlKDIzMTQsIDIsIDIwKSwgMCwgJ0xhbGliZXJ0aW5lcycsICdBbGwgY3JldyBsb3N0JywgNzk0NjMsICdHYWxsYW50b3JzJywgJ09tbmlzY2llbmNlIGFjaGlldmVkJ10sXG4gIF07XG5cbiAgYW5ub3RhdGlvbkNoYXJ0T3B0aW9uczogR29vZ2xlQ2hhcnQuQW5ub3RhdGlvbk9wdGlvbiA9IHtcbiAgICBkaXNwbGF5QW5ub3RhdGlvbnM6IHRydWUsXG4gIH07XG5cbiAgQFZpZXdDaGlsZCgnYW5ub3RhdGlvbkNoYXJ0JykgYW5ub3RhdGlvbkNoYXJ0OiBHb29nbGVDaGFydENvbXBvbmVudDtcblxuICBnZXQgY2hhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYW5ub3RhdGlvbkNoYXJ0LmNoYXJ0O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgcmFuZ2VDaGFuZ2VIYW5kbGVyKCkge1xuICAgIGdvb2dsZS52aXN1YWxpemF0aW9uLmV2ZW50cy5hZGRMaXN0ZW5lcih0aGlzLmNoYXJ0LCAncmFuZ2VjaGFuZ2UnLCBldmVudCA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnWW91IGNoYW5nZWQgdGhlIHJhbmdlIHRvICcsIGV2ZW50WydzdGFydCddLCAnIGFuZCAnLCBldmVudFsnZW5kJ10pO1xuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJDaGFydCgpIHtcbiAgICB0aGlzLmNoYXJ0LmNsZWFyQ2hhcnQoKTtcbiAgfVxuXG4gIGdldENvbnRhaW5lcigpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNoYXJ0LmdldENvbnRhaW5lcigpKTtcbiAgICB0aGlzLnNob3dUb2FzdGVyKCk7XG4gIH1cblxuICBnZXRTZWxlY3Rpb24oKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5jaGFydC5nZXRTZWxlY3Rpb24oKSk7XG4gICAgdGhpcy5zaG93VG9hc3RlcigpO1xuICB9XG5cbiAgZ2V0VmlzaWJsZUNoYXJ0UmFuZ2UoKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5jaGFydC5nZXRWaXNpYmxlQ2hhcnRSYW5nZSgpKTtcbiAgICB0aGlzLnNob3dUb2FzdGVyKCk7XG4gIH1cblxuICBoaWRlRGF0YUNvbHVtbnMoaW5kZXg6IG51bWJlciB8IG51bWJlcltdKSB7XG4gICAgdGhpcy5jaGFydC5oaWRlRGF0YUNvbHVtbnMoaW5kZXgpO1xuICB9XG5cbiAgc2hvd0RhdGFDb2x1bW5zKGluZGV4OiBudW1iZXIgfCBudW1iZXJbXSkge1xuICAgIHRoaXMuY2hhcnQuc2hvd0RhdGFDb2x1bW5zKGluZGV4KTtcbiAgfVxuXG4gIHNldFZpc2libGVDaGFydFJhbmdlKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUpIHtcbiAgICB0aGlzLmNoYXJ0LnNldFZpc2libGVDaGFydFJhbmdlKHN0YXJ0LCBlbmQpO1xuICB9XG5cbiAgc2hvd1RvYXN0ZXIoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVG9hc3RlclNob3coeyBib2R5OiAnQ2hlY2sgdGhlIGNvbnNvbGUnIH0pKTtcbiAgfVxufVxuIl19