UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

211 lines 17.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /* * @license * Copyright Akveo. All Rights Reserved. * Licensed under the MIT License. See License.txt in the project root for license information. */ import { Component, EventEmitter, Input, Output, Type } from '@angular/core'; import { NbCalendarSize, NbCalendarViewMode } from '../calendar-kit'; /* * Calendar component provides a capability to choose a date. * * ```html * <nb-calendar [(date)]="date"></nb-calendar> * <nb-calendar [date]="date" (dateChange)="handleDateChange($event)"></nb-calendar> * ``` * * Basic usage example * @stacked-example(Showcase, calendar/calendar-showcase.component) * * ### Installation * * Import `NbCalendarModule` to your feature module. * ```ts * @NgModule({ * imports: [ * // ... * NbCalendarModule, * ], * }) * export class PageModule { } * ``` * ### Usage * * If you want to select ranges you can use `NbCalendarRangeComponent`. * * ```html * <nb-calendar-range [(range)]="range"></nb-calendar-range> * <nb-calendar-range [range]="range" (rangeChange)="handleRangeChange($event)"></nb-calendar-range> * ``` * * In order to use it, you have to import `NbCalendarRangeModule`. * @stacked-example(Range, calendar/calendar-range-showcase.component) * * The calendar component is supplied with a calendar header that contains navigate today button. * If you do not want to use it you can hide calendar header using `showHeader` property. * @stacked-example(Header, calendar/calendar-without-header.component) * * As you can see in the basic usage example calendar contains previous and next month days * which can be disabled using `boundingMonth` property. * @stacked-example(Bounding months, calendar/calendar-bounding-month.component) * * You can define starting view of the calendar by setting `startView` property. * Available values: year, month and date. * @stacked-example(Start view, calendar/calendar-start-view.component) * * You can use a larger version of the calendar by defining size property. * Available values: medium(which is default) and large. * @stacked-example(Size, calendar/calendar-size.component) * * Calendar supports min and max dates which disables values out of min-max range. * @stacked-example(Borders, calendar/calendar-min-max.component) * * Also, you can define custom filter property that should be predicate which receives * date and returns false if this date has to be disabled. In this example, we provide the filter * which disables weekdays. * @stacked-example(Filter, calendar/calendar-filter.component) * * If you need create custom cells you can easily provide custom components for * calendar. For examples if you want to show any average price under each date you can * just provide custom `dayCellComponent`. Custom cells for month and year can be provided * the same way, check API reference. * @stacked-example(Custom day cell, calendar/calendar-custom-day-cell-showcase.component) * * @styles * * calendar-width * calendar-body-height * calendar-header-title-font-size * calendar-header-title-font-weight * calendar-header-sub-title-font-size * calendar-header-sub-title-font-weight * calendar-navigation-button-width * calendar-selected-item-bg * calendar-hover-item-bg * calendar-today-item-bg * calendar-active-item-bg * calendar-fg * calendar-selected-fg * calendar-day-cell-width * calendar-day-cell-height * calendar-month-cell-width * calendar-month-cell-height * calendar-year-cell-width * calendar-year-cell-height * calendar-inactive-opacity * calendar-disabled-opacity * calendar-border-radius * calendar-weekday-width * calendar-weekday-height * calendar-weekday-font-size * calendar-weekday-font-weight * calendar-weekday-fg * calendar-weekday-holiday-fg * calendar-range-bg-in-range * calendar-large-width * calendar-large-body-height * calendar-day-cell-large-width * calendar-day-cell-large-height * calendar-month-cell-large-width * calendar-month-cell-large-height * calendar-year-cell-large-width * calendar-year-cell-large-height * */ /** * @template D */ export class NbCalendarComponent { constructor() { /* * Defines if we should render previous and next months * in the current month view. * */ this.boundingMonth = true; /* * Defines starting view for calendar. * */ this.startView = NbCalendarViewMode.DATE; /* * Size of the calendar and entire components. * Can be 'medium' which is default or 'large'. * */ this.size = NbCalendarSize.MEDIUM; /* * Determines should we show calendars header or not. * */ this.showHeader = true; /* * Emits date when selected. * */ this.dateChange = new EventEmitter(); } } NbCalendarComponent.decorators = [ { type: Component, args: [{ selector: 'nb-calendar', template: ` <nb-base-calendar [boundingMonth]="boundingMonth" [startView]="startView" [date]="date" [min]="min" [max]="max" [filter]="filter" [dayCellComponent]="dayCellComponent" [monthCellComponent]="monthCellComponent" [yearCellComponent]="yearCellComponent" [size]="size" [visibleDate]="visibleDate" [showHeader]="showHeader" (dateChange)="dateChange.emit($event)" ></nb-base-calendar> ` }] } ]; NbCalendarComponent.propDecorators = { boundingMonth: [{ type: Input }], startView: [{ type: Input }], min: [{ type: Input }], max: [{ type: Input }], filter: [{ type: Input }], dayCellComponent: [{ type: Input }], monthCellComponent: [{ type: Input }], yearCellComponent: [{ type: Input }], size: [{ type: Input }], visibleDate: [{ type: Input }], showHeader: [{ type: Input }], date: [{ type: Input }], dateChange: [{ type: Output }] }; if (false) { /** @type {?} */ NbCalendarComponent.prototype.boundingMonth; /** @type {?} */ NbCalendarComponent.prototype.startView; /** @type {?} */ NbCalendarComponent.prototype.min; /** @type {?} */ NbCalendarComponent.prototype.max; /** @type {?} */ NbCalendarComponent.prototype.filter; /** @type {?} */ NbCalendarComponent.prototype.dayCellComponent; /** @type {?} */ NbCalendarComponent.prototype.monthCellComponent; /** @type {?} */ NbCalendarComponent.prototype.yearCellComponent; /** @type {?} */ NbCalendarComponent.prototype.size; /** @type {?} */ NbCalendarComponent.prototype.visibleDate; /** @type {?} */ NbCalendarComponent.prototype.showHeader; /** @type {?} */ NbCalendarComponent.prototype.date; /** @type {?} */ NbCalendarComponent.prototype.dateChange; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGhlbWUtbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdFLE9BQU8sRUFBa0IsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnSXJGLE1BQU0sT0FBTyxtQkFBbUI7SUFwQmhDOzs7OztRQTBCVyxrQkFBYSxHQUFZLElBQUksQ0FBQzs7OztRQUs5QixjQUFTLEdBQXVCLGtCQUFrQixDQUFDLElBQUksQ0FBQzs7Ozs7UUFvQ3hELFNBQUksR0FBbUIsY0FBYyxDQUFDLE1BQU0sQ0FBQzs7OztRQU83QyxlQUFVLEdBQVksSUFBSSxDQUFDOzs7O1FBVTFCLGVBQVUsR0FBb0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUM3RCxDQUFDOzs7WUFyRkEsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7YUFDRjs7OzRCQU9FLEtBQUs7d0JBS0wsS0FBSztrQkFLTCxLQUFLO2tCQUtMLEtBQUs7cUJBS0wsS0FBSzsrQkFLTCxLQUFLO2lDQUtMLEtBQUs7Z0NBS0wsS0FBSzttQkFNTCxLQUFLOzBCQUVMLEtBQUs7eUJBS0wsS0FBSzttQkFLTCxLQUFLO3lCQUtMLE1BQU07Ozs7SUExRFAsNENBQXVDOztJQUt2Qyx3Q0FBaUU7O0lBS2pFLGtDQUFnQjs7SUFLaEIsa0NBQWdCOztJQUtoQixxQ0FBZ0M7O0lBS2hDLCtDQUFzRDs7SUFLdEQsaURBQXdEOztJQUt4RCxnREFBdUQ7O0lBTXZELG1DQUFzRDs7SUFFdEQsMENBQXdCOztJQUt4Qix5Q0FBb0M7O0lBS3BDLG1DQUFpQjs7SUFLakIseUNBQTJEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBOYkNhbGVuZGFyQ2VsbCwgTmJDYWxlbmRhclNpemUsIE5iQ2FsZW5kYXJWaWV3TW9kZSB9IGZyb20gJy4uL2NhbGVuZGFyLWtpdCc7XHJcblxyXG5cclxuLypcclxuICogQ2FsZW5kYXIgY29tcG9uZW50IHByb3ZpZGVzIGEgY2FwYWJpbGl0eSB0byBjaG9vc2UgYSBkYXRlLlxyXG4gKlxyXG4gKiBgYGBodG1sXHJcbiAqIDxuYi1jYWxlbmRhciBbKGRhdGUpXT1cImRhdGVcIj48L25iLWNhbGVuZGFyPlxyXG4gKiA8bmItY2FsZW5kYXIgW2RhdGVdPVwiZGF0ZVwiIChkYXRlQ2hhbmdlKT1cImhhbmRsZURhdGVDaGFuZ2UoJGV2ZW50KVwiPjwvbmItY2FsZW5kYXI+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBCYXNpYyB1c2FnZSBleGFtcGxlXHJcbiAqIEBzdGFja2VkLWV4YW1wbGUoU2hvd2Nhc2UsIGNhbGVuZGFyL2NhbGVuZGFyLXNob3djYXNlLmNvbXBvbmVudClcclxuICpcclxuICogIyMjIEluc3RhbGxhdGlvblxyXG4gKlxyXG4gKiBJbXBvcnQgYE5iQ2FsZW5kYXJNb2R1bGVgIHRvIHlvdXIgZmVhdHVyZSBtb2R1bGUuXHJcbiAqIGBgYHRzXHJcbiAqIEBOZ01vZHVsZSh7XHJcbiAqICAgaW1wb3J0czogW1xyXG4gKiAgIFx0Ly8gLi4uXHJcbiAqICAgICBOYkNhbGVuZGFyTW9kdWxlLFxyXG4gKiAgIF0sXHJcbiAqIH0pXHJcbiAqIGV4cG9ydCBjbGFzcyBQYWdlTW9kdWxlIHsgfVxyXG4gKiBgYGBcclxuICogIyMjIFVzYWdlXHJcbiAqXHJcbiAqIElmIHlvdSB3YW50IHRvIHNlbGVjdCByYW5nZXMgeW91IGNhbiB1c2UgYE5iQ2FsZW5kYXJSYW5nZUNvbXBvbmVudGAuXHJcbiAqXHJcbiAqIGBgYGh0bWxcclxuICogPG5iLWNhbGVuZGFyLXJhbmdlIFsocmFuZ2UpXT1cInJhbmdlXCI+PC9uYi1jYWxlbmRhci1yYW5nZT5cclxuICogPG5iLWNhbGVuZGFyLXJhbmdlIFtyYW5nZV09XCJyYW5nZVwiIChyYW5nZUNoYW5nZSk9XCJoYW5kbGVSYW5nZUNoYW5nZSgkZXZlbnQpXCI+PC9uYi1jYWxlbmRhci1yYW5nZT5cclxuICogYGBgXHJcbiAqXHJcbiAqIEluIG9yZGVyIHRvIHVzZSBpdCwgeW91IGhhdmUgdG8gaW1wb3J0IGBOYkNhbGVuZGFyUmFuZ2VNb2R1bGVgLlxyXG4gKiBAc3RhY2tlZC1leGFtcGxlKFJhbmdlLCBjYWxlbmRhci9jYWxlbmRhci1yYW5nZS1zaG93Y2FzZS5jb21wb25lbnQpXHJcbiAqXHJcbiAqIFRoZSBjYWxlbmRhciBjb21wb25lbnQgaXMgc3VwcGxpZWQgd2l0aCBhIGNhbGVuZGFyIGhlYWRlciB0aGF0IGNvbnRhaW5zIG5hdmlnYXRlIHRvZGF5IGJ1dHRvbi5cclxuICogSWYgeW91IGRvIG5vdCB3YW50IHRvIHVzZSBpdCB5b3UgY2FuIGhpZGUgY2FsZW5kYXIgaGVhZGVyIHVzaW5nIGBzaG93SGVhZGVyYCBwcm9wZXJ0eS5cclxuICogQHN0YWNrZWQtZXhhbXBsZShIZWFkZXIsIGNhbGVuZGFyL2NhbGVuZGFyLXdpdGhvdXQtaGVhZGVyLmNvbXBvbmVudClcclxuICpcclxuICogQXMgeW91IGNhbiBzZWUgaW4gdGhlIGJhc2ljIHVzYWdlIGV4YW1wbGUgY2FsZW5kYXIgY29udGFpbnMgcHJldmlvdXMgYW5kIG5leHQgbW9udGggZGF5c1xyXG4gKiB3aGljaCBjYW4gYmUgZGlzYWJsZWQgdXNpbmcgYGJvdW5kaW5nTW9udGhgIHByb3BlcnR5LlxyXG4gKiBAc3RhY2tlZC1leGFtcGxlKEJvdW5kaW5nIG1vbnRocywgY2FsZW5kYXIvY2FsZW5kYXItYm91bmRpbmctbW9udGguY29tcG9uZW50KVxyXG4gKlxyXG4gKiBZb3UgY2FuIGRlZmluZSBzdGFydGluZyB2aWV3IG9mIHRoZSBjYWxlbmRhciBieSBzZXR0aW5nIGBzdGFydFZpZXdgIHByb3BlcnR5LlxyXG4gKiBBdmFpbGFibGUgdmFsdWVzOiB5ZWFyLCBtb250aCBhbmQgZGF0ZS5cclxuICogQHN0YWNrZWQtZXhhbXBsZShTdGFydCB2aWV3LCBjYWxlbmRhci9jYWxlbmRhci1zdGFydC12aWV3LmNvbXBvbmVudClcclxuICpcclxuICogWW91IGNhbiB1c2UgYSBsYXJnZXIgdmVyc2lvbiBvZiB0aGUgY2FsZW5kYXIgYnkgZGVmaW5pbmcgc2l6ZSBwcm9wZXJ0eS5cclxuICogQXZhaWxhYmxlIHZhbHVlczogbWVkaXVtKHdoaWNoIGlzIGRlZmF1bHQpIGFuZCBsYXJnZS5cclxuICogQHN0YWNrZWQtZXhhbXBsZShTaXplLCBjYWxlbmRhci9jYWxlbmRhci1zaXplLmNvbXBvbmVudClcclxuICpcclxuICogQ2FsZW5kYXIgc3VwcG9ydHMgbWluIGFuZCBtYXggZGF0ZXMgd2hpY2ggZGlzYWJsZXMgdmFsdWVzIG91dCBvZiBtaW4tbWF4IHJhbmdlLlxyXG4gKiBAc3RhY2tlZC1leGFtcGxlKEJvcmRlcnMsIGNhbGVuZGFyL2NhbGVuZGFyLW1pbi1tYXguY29tcG9uZW50KVxyXG4gKlxyXG4gKiBBbHNvLCB5b3UgY2FuIGRlZmluZSBjdXN0b20gZmlsdGVyIHByb3BlcnR5IHRoYXQgc2hvdWxkIGJlIHByZWRpY2F0ZSB3aGljaCByZWNlaXZlc1xyXG4gKiBkYXRlIGFuZCByZXR1cm5zIGZhbHNlIGlmIHRoaXMgZGF0ZSBoYXMgdG8gYmUgZGlzYWJsZWQuIEluIHRoaXMgZXhhbXBsZSwgd2UgcHJvdmlkZSB0aGUgZmlsdGVyXHJcbiAqIHdoaWNoIGRpc2FibGVzIHdlZWtkYXlzLlxyXG4gKiBAc3RhY2tlZC1leGFtcGxlKEZpbHRlciwgY2FsZW5kYXIvY2FsZW5kYXItZmlsdGVyLmNvbXBvbmVudClcclxuICpcclxuICogSWYgeW91IG5lZWQgY3JlYXRlIGN1c3RvbSBjZWxscyB5b3UgY2FuIGVhc2lseSBwcm92aWRlIGN1c3RvbSBjb21wb25lbnRzIGZvclxyXG4gKiBjYWxlbmRhci4gRm9yIGV4YW1wbGVzIGlmIHlvdSB3YW50IHRvIHNob3cgYW55IGF2ZXJhZ2UgcHJpY2UgdW5kZXIgZWFjaCBkYXRlIHlvdSBjYW5cclxuICoganVzdCBwcm92aWRlIGN1c3RvbSBgZGF5Q2VsbENvbXBvbmVudGAuIEN1c3RvbSBjZWxscyBmb3IgbW9udGggYW5kIHllYXIgY2FuIGJlIHByb3ZpZGVkXHJcbiAqIHRoZSBzYW1lIHdheSwgY2hlY2sgQVBJIHJlZmVyZW5jZS5cclxuICogQHN0YWNrZWQtZXhhbXBsZShDdXN0b20gZGF5IGNlbGwsIGNhbGVuZGFyL2NhbGVuZGFyLWN1c3RvbS1kYXktY2VsbC1zaG93Y2FzZS5jb21wb25lbnQpXHJcbiAqXHJcbiAqIEBzdHlsZXNcclxuICpcclxuICogY2FsZW5kYXItd2lkdGhcclxuICogY2FsZW5kYXItYm9keS1oZWlnaHRcclxuICogY2FsZW5kYXItaGVhZGVyLXRpdGxlLWZvbnQtc2l6ZVxyXG4gKiBjYWxlbmRhci1oZWFkZXItdGl0bGUtZm9udC13ZWlnaHRcclxuICogY2FsZW5kYXItaGVhZGVyLXN1Yi10aXRsZS1mb250LXNpemVcclxuICogY2FsZW5kYXItaGVhZGVyLXN1Yi10aXRsZS1mb250LXdlaWdodFxyXG4gKiBjYWxlbmRhci1uYXZpZ2F0aW9uLWJ1dHRvbi13aWR0aFxyXG4gKiBjYWxlbmRhci1zZWxlY3RlZC1pdGVtLWJnXHJcbiAqIGNhbGVuZGFyLWhvdmVyLWl0ZW0tYmdcclxuICogY2FsZW5kYXItdG9kYXktaXRlbS1iZ1xyXG4gKiBjYWxlbmRhci1hY3RpdmUtaXRlbS1iZ1xyXG4gKiBjYWxlbmRhci1mZ1xyXG4gKiBjYWxlbmRhci1zZWxlY3RlZC1mZ1xyXG4gKiBjYWxlbmRhci1kYXktY2VsbC13aWR0aFxyXG4gKiBjYWxlbmRhci1kYXktY2VsbC1oZWlnaHRcclxuICogY2FsZW5kYXItbW9udGgtY2VsbC13aWR0aFxyXG4gKiBjYWxlbmRhci1tb250aC1jZWxsLWhlaWdodFxyXG4gKiBjYWxlbmRhci15ZWFyLWNlbGwtd2lkdGhcclxuICogY2FsZW5kYXIteWVhci1jZWxsLWhlaWdodFxyXG4gKiBjYWxlbmRhci1pbmFjdGl2ZS1vcGFjaXR5XHJcbiAqIGNhbGVuZGFyLWRpc2FibGVkLW9wYWNpdHlcclxuICogY2FsZW5kYXItYm9yZGVyLXJhZGl1c1xyXG4gKiBjYWxlbmRhci13ZWVrZGF5LXdpZHRoXHJcbiAqIGNhbGVuZGFyLXdlZWtkYXktaGVpZ2h0XHJcbiAqIGNhbGVuZGFyLXdlZWtkYXktZm9udC1zaXplXHJcbiAqIGNhbGVuZGFyLXdlZWtkYXktZm9udC13ZWlnaHRcclxuICogY2FsZW5kYXItd2Vla2RheS1mZ1xyXG4gKiBjYWxlbmRhci13ZWVrZGF5LWhvbGlkYXktZmdcclxuICogY2FsZW5kYXItcmFuZ2UtYmctaW4tcmFuZ2VcclxuICogY2FsZW5kYXItbGFyZ2Utd2lkdGhcclxuICogY2FsZW5kYXItbGFyZ2UtYm9keS1oZWlnaHRcclxuICogY2FsZW5kYXItZGF5LWNlbGwtbGFyZ2Utd2lkdGhcclxuICogY2FsZW5kYXItZGF5LWNlbGwtbGFyZ2UtaGVpZ2h0XHJcbiAqIGNhbGVuZGFyLW1vbnRoLWNlbGwtbGFyZ2Utd2lkdGhcclxuICogY2FsZW5kYXItbW9udGgtY2VsbC1sYXJnZS1oZWlnaHRcclxuICogY2FsZW5kYXIteWVhci1jZWxsLWxhcmdlLXdpZHRoXHJcbiAqIGNhbGVuZGFyLXllYXItY2VsbC1sYXJnZS1oZWlnaHRcclxuICogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduYi1jYWxlbmRhcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuYi1iYXNlLWNhbGVuZGFyXHJcbiAgICAgIFtib3VuZGluZ01vbnRoXT1cImJvdW5kaW5nTW9udGhcIlxyXG4gICAgICBbc3RhcnRWaWV3XT1cInN0YXJ0Vmlld1wiXHJcbiAgICAgIFtkYXRlXT1cImRhdGVcIlxyXG4gICAgICBbbWluXT1cIm1pblwiXHJcbiAgICAgIFttYXhdPVwibWF4XCJcclxuICAgICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxyXG4gICAgICBbZGF5Q2VsbENvbXBvbmVudF09XCJkYXlDZWxsQ29tcG9uZW50XCJcclxuICAgICAgW21vbnRoQ2VsbENvbXBvbmVudF09XCJtb250aENlbGxDb21wb25lbnRcIlxyXG4gICAgICBbeWVhckNlbGxDb21wb25lbnRdPVwieWVhckNlbGxDb21wb25lbnRcIlxyXG4gICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgW3Zpc2libGVEYXRlXT1cInZpc2libGVEYXRlXCJcclxuICAgICAgW3Nob3dIZWFkZXJdPVwic2hvd0hlYWRlclwiXHJcbiAgICAgIChkYXRlQ2hhbmdlKT1cImRhdGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgID48L25iLWJhc2UtY2FsZW5kYXI+XHJcbiAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5iQ2FsZW5kYXJDb21wb25lbnQ8RD4ge1xyXG5cclxuICAvKlxyXG4gICAqIERlZmluZXMgaWYgd2Ugc2hvdWxkIHJlbmRlciBwcmV2aW91cyBhbmQgbmV4dCBtb250aHNcclxuICAgKiBpbiB0aGUgY3VycmVudCBtb250aCB2aWV3LlxyXG4gICAqICovXHJcbiAgQElucHV0KCkgYm91bmRpbmdNb250aDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qXHJcbiAgICogRGVmaW5lcyBzdGFydGluZyB2aWV3IGZvciBjYWxlbmRhci5cclxuICAgKiAqL1xyXG4gIEBJbnB1dCgpIHN0YXJ0VmlldzogTmJDYWxlbmRhclZpZXdNb2RlID0gTmJDYWxlbmRhclZpZXdNb2RlLkRBVEU7XHJcblxyXG4gIC8qXHJcbiAgICogTWluaW11bSBhdmFpbGFibGUgZGF0ZSBmb3Igc2VsZWN0aW9uLlxyXG4gICAqICovXHJcbiAgQElucHV0KCkgbWluOiBEO1xyXG5cclxuICAvKlxyXG4gICAqIE1heGltdW0gYXZhaWxhYmxlIGRhdGUgZm9yIHNlbGVjdGlvbi5cclxuICAgKiAqL1xyXG4gIEBJbnB1dCgpIG1heDogRDtcclxuXHJcbiAgLypcclxuICAgKiBQcmVkaWNhdGUgdGhhdCBkZWNpZGVzIHdoaWNoIGNlbGxzIHdpbGwgYmUgZGlzYWJsZWQuXHJcbiAgICogKi9cclxuICBASW5wdXQoKSBmaWx0ZXI6IChEKSA9PiBib29sZWFuO1xyXG5cclxuICAvKlxyXG4gICAqIEN1c3RvbSBkYXkgY2VsbCBjb21wb25lbnQuIEhhdmUgdG8gaW1wbGVtZW50IGBOYkNhbGVuZGFyQ2VsbGAgaW50ZXJmYWNlLlxyXG4gICAqICovXHJcbiAgQElucHV0KCkgZGF5Q2VsbENvbXBvbmVudDogVHlwZTxOYkNhbGVuZGFyQ2VsbDxELCBEPj47XHJcblxyXG4gIC8qXHJcbiAgICogQ3VzdG9tIG1vbnRoIGNlbGwgY29tcG9uZW50LiBIYXZlIHRvIGltcGxlbWVudCBgTmJDYWxlbmRhckNlbGxgIGludGVyZmFjZS5cclxuICAgKiAqL1xyXG4gIEBJbnB1dCgpIG1vbnRoQ2VsbENvbXBvbmVudDogVHlwZTxOYkNhbGVuZGFyQ2VsbDxELCBEPj47XHJcblxyXG4gIC8qXHJcbiAgICogQ3VzdG9tIHllYXIgY2VsbCBjb21wb25lbnQuIEhhdmUgdG8gaW1wbGVtZW50IGBOYkNhbGVuZGFyQ2VsbGAgaW50ZXJmYWNlLlxyXG4gICAqICovXHJcbiAgQElucHV0KCkgeWVhckNlbGxDb21wb25lbnQ6IFR5cGU8TmJDYWxlbmRhckNlbGw8RCwgRD4+O1xyXG5cclxuICAvKlxyXG4gICAqIFNpemUgb2YgdGhlIGNhbGVuZGFyIGFuZCBlbnRpcmUgY29tcG9uZW50cy5cclxuICAgKiBDYW4gYmUgJ21lZGl1bScgd2hpY2ggaXMgZGVmYXVsdCBvciAnbGFyZ2UnLlxyXG4gICAqICovXHJcbiAgQElucHV0KCkgc2l6ZTogTmJDYWxlbmRhclNpemUgPSBOYkNhbGVuZGFyU2l6ZS5NRURJVU07XHJcblxyXG4gIEBJbnB1dCgpIHZpc2libGVEYXRlOiBEO1xyXG5cclxuICAvKlxyXG4gICAqIERldGVybWluZXMgc2hvdWxkIHdlIHNob3cgY2FsZW5kYXJzIGhlYWRlciBvciBub3QuXHJcbiAgICogKi9cclxuICBASW5wdXQoKSBzaG93SGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLypcclxuICAgKiBEYXRlIHdoaWNoIHdpbGwgYmUgcmVuZGVyZWQgYXMgc2VsZWN0ZWQuXHJcbiAgICogKi9cclxuICBASW5wdXQoKSBkYXRlOiBEO1xyXG5cclxuICAvKlxyXG4gICAqIEVtaXRzIGRhdGUgd2hlbiBzZWxlY3RlZC5cclxuICAgKiAqL1xyXG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbn1cclxuIl19