UNPKG

@hxui/angular

Version:

* * *

340 lines 20.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { InjectionToken } from '@angular/core'; import { Subject } from 'rxjs'; /** @enum {number} */ var ToastrPosition = { CENTER_CENTER: 0, TOP_CENTER: 1, BOTTOM_CENTER: 2, TOP_FULL_WIDTH: 3, BOTTOM_FULL_WIDTH: 4, TOP_LEFT: 5, TOP_RIGHT: 6, BOTTOM_LEFT: 7, BOTTOM_RIGHT: 8, }; export { ToastrPosition }; ToastrPosition[ToastrPosition.CENTER_CENTER] = 'CENTER_CENTER'; ToastrPosition[ToastrPosition.TOP_CENTER] = 'TOP_CENTER'; ToastrPosition[ToastrPosition.BOTTOM_CENTER] = 'BOTTOM_CENTER'; ToastrPosition[ToastrPosition.TOP_FULL_WIDTH] = 'TOP_FULL_WIDTH'; ToastrPosition[ToastrPosition.BOTTOM_FULL_WIDTH] = 'BOTTOM_FULL_WIDTH'; ToastrPosition[ToastrPosition.TOP_LEFT] = 'TOP_LEFT'; ToastrPosition[ToastrPosition.TOP_RIGHT] = 'TOP_RIGHT'; ToastrPosition[ToastrPosition.BOTTOM_LEFT] = 'BOTTOM_LEFT'; ToastrPosition[ToastrPosition.BOTTOM_RIGHT] = 'BOTTOM_RIGHT'; /** * Configuration for an individual toast. * @record */ export function IndividualConfig() { } if (false) { /** * disable both timeOut and extendedTimeOut * default: false * @type {?} */ IndividualConfig.prototype.disableTimeOut; /** * toast time to live in milliseconds * default: 5000 * @type {?} */ IndividualConfig.prototype.timeOut; /** * toast show close button * default: false * @type {?} */ IndividualConfig.prototype.closeButton; /** * time to close after a user hovers over toast * default: 1000 * @type {?} */ IndividualConfig.prototype.extendedTimeOut; /** * show toast progress bar * default: false * @type {?} */ IndividualConfig.prototype.progressBar; /** * changes toast progress bar animation * default: decreasing * @type {?} */ IndividualConfig.prototype.progressAnimation; /** * render html in toast message (possibly unsafe) * default: false * @type {?} */ IndividualConfig.prototype.enableHtml; /** * css class on toast component * default: toast * @type {?} */ IndividualConfig.prototype.toastClass; /** * Position of toastr container * default: ToastrPosition.TOP_RIGHT * @type {?} */ IndividualConfig.prototype.position; /** * css class on toast title * default: toast-title * @type {?} */ IndividualConfig.prototype.titleClass; /** * css class on toast message * default: toast-message * @type {?} */ IndividualConfig.prototype.messageClass; /** * animation easing on toast * default: ease-in * @type {?} */ IndividualConfig.prototype.easing; /** * animation ease time on toast * default: 300 * @type {?} */ IndividualConfig.prototype.easeTime; /** * clicking on toast dismisses it * default: true * @type {?} */ IndividualConfig.prototype.tapToDismiss; /** * Angular toast component to be shown * default: Toast * @type {?|undefined} */ IndividualConfig.prototype.toastComponent; /** * Helps show toast from a websocket or from event outside Angular * default: false * @type {?} */ IndividualConfig.prototype.onActivateTick; } /** * @record */ export function ToastrIconClasses() { } if (false) { /** @type {?} */ ToastrIconClasses.prototype.none; /** @type {?} */ ToastrIconClasses.prototype.error; /** @type {?} */ ToastrIconClasses.prototype.info; /** @type {?} */ ToastrIconClasses.prototype.success; /** @type {?} */ ToastrIconClasses.prototype.warning; } /** * Global Toast configuration * Includes all IndividualConfig * @record */ export function GlobalConfig() { } if (false) { /** * max toasts opened. Toasts will be queued * Zero is unlimited * default: 0 * @type {?} */ GlobalConfig.prototype.maxOpened; /** * dismiss current toast when max is reached * default: false * @type {?} */ GlobalConfig.prototype.autoDismiss; /** @type {?} */ GlobalConfig.prototype.iconClasses; /** * New toast placement * default: true * @type {?} */ GlobalConfig.prototype.newestOnTop; /** * block duplicate messages * default: false * @type {?} */ GlobalConfig.prototype.preventDuplicates; /** * Reset toast timeout when there's a duplicate (preventDuplicates needs to be set to true) * default: false * @type {?} */ GlobalConfig.prototype.resetTimeoutOnDuplicate; } /** * Everything a toast needs to launch */ var /** * Everything a toast needs to launch */ ToastPackage = /** @class */ (function () { function ToastPackage(toastId, config, message, title, toastType, toastRef) { var _this = this; this.toastId = toastId; this.config = config; this.message = message; this.title = title; this.toastType = toastType; this.toastRef = toastRef; this._onTap = new Subject(); this._onAction = new Subject(); this.toastRef.afterClosed().subscribe(function () { _this._onAction.complete(); _this._onTap.complete(); }); } /** Fired on click */ /** * Fired on click * @return {?} */ ToastPackage.prototype.triggerTap = /** * Fired on click * @return {?} */ function () { this._onTap.next(); if (this.config.tapToDismiss) { this._onTap.complete(); } }; /** * @return {?} */ ToastPackage.prototype.onTap = /** * @return {?} */ function () { return this._onTap.asObservable(); }; /** available for use in custom toast */ /** * available for use in custom toast * @param {?=} action * @return {?} */ ToastPackage.prototype.triggerAction = /** * available for use in custom toast * @param {?=} action * @return {?} */ function (action) { this._onAction.next(action); }; /** * @return {?} */ ToastPackage.prototype.onAction = /** * @return {?} */ function () { return this._onAction.asObservable(); }; return ToastPackage; }()); /** * Everything a toast needs to launch */ export { ToastPackage }; if (false) { /** @type {?} */ ToastPackage.prototype._onTap; /** @type {?} */ ToastPackage.prototype._onAction; /** @type {?} */ ToastPackage.prototype.toastId; /** @type {?} */ ToastPackage.prototype.config; /** @type {?} */ ToastPackage.prototype.message; /** @type {?} */ ToastPackage.prototype.title; /** @type {?} */ ToastPackage.prototype.toastType; /** @type {?} */ ToastPackage.prototype.toastRef; } /** * @deprecated use GlobalConfig * @record */ export function GlobalToastrConfig() { } /** * @deprecated use IndividualConfig * @record */ export function IndividualToastrConfig() { } /** * @deprecated use IndividualConfig * @record */ export function ToastrConfig() { } /** @type {?} */ export var DefaultNoComponentGlobalConfig = { maxOpened: 0, autoDismiss: false, newestOnTop: true, preventDuplicates: false, resetTimeoutOnDuplicate: false, iconClasses: { none: '', error: 'is-error', info: 'is-info', success: 'is-success', warning: 'is-warning', }, // Individual closeButton: false, disableTimeOut: false, timeOut: 5000, extendedTimeOut: 1000, enableHtml: false, progressBar: false, toastClass: 'hx-alert', position: ToastrPosition.TOP_RIGHT, titleClass: 'toast-title', messageClass: 'toast-message', easing: 'ease-in', easeTime: 300, tapToDismiss: true, onActivateTick: false, progressAnimation: 'decreasing', }; /** * @record */ export function ToastrToken() { } if (false) { /** @type {?} */ ToastrToken.prototype.default; /** @type {?} */ ToastrToken.prototype.config; } /** @type {?} */ export var TOAST_CONFIG = new InjectionToken('ToastrConfig'); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3RyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoeHVpL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvdG9hc3RyL3RvYXN0ci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0lBUXpDLGdCQUFhO0lBQ2IsYUFBVTtJQUNWLGdCQUFhO0lBQ2IsaUJBQWM7SUFDZCxvQkFBaUI7SUFDakIsV0FBUTtJQUNSLFlBQVM7SUFDVCxjQUFXO0lBQ1gsZUFBWTs7Ozs7Ozs7Ozs7Ozs7OztBQU1kLHNDQW1GQzs7Ozs7OztJQTlFQywwQ0FBd0I7Ozs7OztJQUt4QixtQ0FBZ0I7Ozs7OztJQUtoQix1Q0FBcUI7Ozs7OztJQUtyQiwyQ0FBd0I7Ozs7OztJQUt4Qix1Q0FBcUI7Ozs7OztJQU1yQiw2Q0FBeUM7Ozs7OztJQU16QyxzQ0FBb0I7Ozs7OztJQUtwQixzQ0FBbUI7Ozs7OztJQUtuQixvQ0FBeUI7Ozs7OztJQUt6QixzQ0FBbUI7Ozs7OztJQUtuQix3Q0FBcUI7Ozs7OztJQUtyQixrQ0FBZTs7Ozs7O0lBS2Ysb0NBQTBCOzs7Ozs7SUFLMUIsd0NBQXNCOzs7Ozs7SUFLdEIsMENBQW9DOzs7Ozs7SUFLcEMsMENBQXdCOzs7OztBQUcxQix1Q0FNQzs7O0lBTEMsaUNBQWE7O0lBQ2Isa0NBQWM7O0lBQ2QsaUNBQWE7O0lBQ2Isb0NBQWdCOztJQUNoQixvQ0FBZ0I7Ozs7Ozs7QUFPbEIsa0NBNkJDOzs7Ozs7OztJQXZCQyxpQ0FBa0I7Ozs7OztJQUtsQixtQ0FBcUI7O0lBQ3JCLG1DQUF3Qzs7Ozs7O0lBS3hDLG1DQUFxQjs7Ozs7O0lBS3JCLHlDQUEyQjs7Ozs7O0lBTTNCLCtDQUFpQzs7Ozs7QUFNbkM7Ozs7SUFJRSxzQkFDUyxPQUFlLEVBQ2YsTUFBd0IsRUFDeEIsT0FBNkMsRUFDN0Ms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aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICcuL3BvcnRhbC9wb3J0YWwnO1xyXG5pbXBvcnQgeyBUb2FzdHJSZWYgfSBmcm9tICcuL3RvYXN0ci1pbmplY3Rvcic7XHJcblxyXG5leHBvcnQgdHlwZSBQcm9ncmVzc0FuaW1hdGlvblR5cGUgPSAnaW5jcmVhc2luZycgfCAnZGVjcmVhc2luZyc7XHJcblxyXG5leHBvcnQgZW51bSBUb2FzdHJQb3NpdGlvbiB7XHJcbiAgQ0VOVEVSX0NFTlRFUixcclxuICBUT1BfQ0VOVEVSLFxyXG4gIEJPVFRPTV9DRU5URVIsXHJcbiAgVE9QX0ZVTExfV0lEVEgsXHJcbiAgQk9UVE9NX0ZVTExfV0lEVEgsXHJcbiAgVE9QX0xFRlQsXHJcbiAgVE9QX1JJR0hULFxyXG4gIEJPVFRPTV9MRUZULFxyXG4gIEJPVFRPTV9SSUdIVFxyXG59XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBmb3IgYW4gaW5kaXZpZHVhbCB0b2FzdC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW5kaXZpZHVhbENvbmZpZyB7XHJcbiAgLyoqXHJcbiAgICogZGlzYWJsZSBib3RoIHRpbWVPdXQgYW5kIGV4dGVuZGVkVGltZU91dFxyXG4gICAqIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICovXHJcbiAgZGlzYWJsZVRpbWVPdXQ6IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogdG9hc3QgdGltZSB0byBsaXZlIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqIGRlZmF1bHQ6IDUwMDBcclxuICAgKi9cclxuICB0aW1lT3V0OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogdG9hc3Qgc2hvdyBjbG9zZSBidXR0b25cclxuICAgKiBkZWZhdWx0OiBmYWxzZVxyXG4gICAqL1xyXG4gIGNsb3NlQnV0dG9uOiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIHRpbWUgdG8gY2xvc2UgYWZ0ZXIgYSB1c2VyIGhvdmVycyBvdmVyIHRvYXN0XHJcbiAgICogZGVmYXVsdDogMTAwMFxyXG4gICAqL1xyXG4gIGV4dGVuZGVkVGltZU91dDogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIHNob3cgdG9hc3QgcHJvZ3Jlc3MgYmFyXHJcbiAgICogZGVmYXVsdDogZmFsc2VcclxuICAgKi9cclxuICBwcm9ncmVzc0JhcjogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogY2hhbmdlcyB0b2FzdCBwcm9ncmVzcyBiYXIgYW5pbWF0aW9uXHJcbiAgICogZGVmYXVsdDogZGVjcmVhc2luZ1xyXG4gICAqL1xyXG4gIHByb2dyZXNzQW5pbWF0aW9uOiBQcm9ncmVzc0FuaW1hdGlvblR5cGU7XHJcblxyXG4gIC8qKlxyXG4gICAqIHJlbmRlciBodG1sIGluIHRvYXN0IG1lc3NhZ2UgKHBvc3NpYmx5IHVuc2FmZSlcclxuICAgKiBkZWZhdWx0OiBmYWxzZVxyXG4gICAqL1xyXG4gIGVuYWJsZUh0bWw6IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogY3NzIGNsYXNzIG9uIHRvYXN0IGNvbXBvbmVudFxyXG4gICAqIGRlZmF1bHQ6IHRvYXN0XHJcbiAgICovXHJcbiAgdG9hc3RDbGFzczogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFBvc2l0aW9uIG9mIHRvYXN0ciBjb250YWluZXJcclxuICAgKiBkZWZhdWx0OiBUb2FzdHJQb3NpdGlvbi5UT1BfUklHSFRcclxuICAgKi9cclxuICBwb3NpdGlvbjogVG9hc3RyUG9zaXRpb247XHJcbiAgLyoqXHJcbiAgICogY3NzIGNsYXNzIG9uIHRvYXN0IHRpdGxlXHJcbiAgICogZGVmYXVsdDogdG9hc3QtdGl0bGVcclxuICAgKi9cclxuICB0aXRsZUNsYXNzOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogY3NzIGNsYXNzIG9uIHRvYXN0IG1lc3NhZ2VcclxuICAgKiBkZWZhdWx0OiB0b2FzdC1tZXNzYWdlXHJcbiAgICovXHJcbiAgbWVzc2FnZUNsYXNzOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogYW5pbWF0aW9uIGVhc2luZyBvbiB0b2FzdFxyXG4gICAqIGRlZmF1bHQ6IGVhc2UtaW5cclxuICAgKi9cclxuICBlYXNpbmc6IHN0cmluZztcclxuICAvKipcclxuICAgKiBhbmltYXRpb24gZWFzZSB0aW1lIG9uIHRvYXN0XHJcbiAgICogZGVmYXVsdDogMzAwXHJcbiAgICovXHJcbiAgZWFzZVRpbWU6IHN0cmluZyB8IG51bWJlcjtcclxuICAvKipcclxuICAgKiBjbGlja2luZyBvbiB0b2FzdCBkaXNtaXNzZXMgaXRcclxuICAgKiBkZWZhdWx0OiB0cnVlXHJcbiAgICovXHJcbiAgdGFwVG9EaXNtaXNzOiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEFuZ3VsYXIgdG9hc3QgY29tcG9uZW50IHRvIGJlIHNob3duXHJcbiAgICogZGVmYXVsdDogVG9hc3RcclxuICAgKi9cclxuICB0b2FzdENvbXBvbmVudD86IENvbXBvbmVudFR5cGU8YW55PjtcclxuICAvKipcclxuICAgKiBIZWxwcyBzaG93IHRvYXN0IGZyb20gYSB3ZWJzb2NrZXQgb3IgZnJvbSBldmVudCBvdXRzaWRlIEFuZ3VsYXJcclxuICAgKiBkZWZhdWx0OiBmYWxzZVxyXG4gICAqL1xyXG4gIG9uQWN0aXZhdGVUaWNrOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0ckljb25DbGFzc2VzIHtcclxuICBub25lOiBzdHJpbmc7XHJcbiAgZXJyb3I6IHN0cmluZztcclxuICBpbmZvOiBzdHJpbmc7XHJcbiAgc3VjY2Vzczogc3RyaW5nO1xyXG4gIHdhcm5pbmc6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIEdsb2JhbCBUb2FzdCBjb25maWd1cmF0aW9uXHJcbiAqIEluY2x1ZGVzIGFsbCBJbmRpdmlkdWFsQ29uZmlnXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbENvbmZpZyBleHRlbmRzIEluZGl2aWR1YWxDb25maWcge1xyXG4gIC8qKlxyXG4gICAqIG1heCB0b2FzdHMgb3BlbmVkLiBUb2FzdHMgd2lsbCBiZSBxdWV1ZWRcclxuICAgKiBaZXJvIGlzIHVubGltaXRlZFxyXG4gICAqIGRlZmF1bHQ6IDBcclxuICAgKi9cclxuICBtYXhPcGVuZWQ6IG51bWJlcjtcclxuICAvKipcclxuICAgKiBkaXNtaXNzIGN1cnJlbnQgdG9hc3Qgd2hlbiBtYXggaXMgcmVhY2hlZFxyXG4gICAqIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICovXHJcbiAgYXV0b0Rpc21pc3M6IGJvb2xlYW47XHJcbiAgaWNvbkNsYXNzZXM6IFBhcnRpYWw8VG9hc3RySWNvbkNsYXNzZXM+O1xyXG4gIC8qKlxyXG4gICAqIE5ldyB0b2FzdCBwbGFjZW1lbnRcclxuICAgKiBkZWZhdWx0OiB0cnVlXHJcbiAgICovXHJcbiAgbmV3ZXN0T25Ub3A6IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogYmxvY2sgZHVwbGljYXRlIG1lc3NhZ2VzXHJcbiAgICogZGVmYXVsdDogZmFsc2VcclxuICAgKi9cclxuICBwcmV2ZW50RHVwbGljYXRlczogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVzZXQgdG9hc3QgdGltZW91dCB3aGVuIHRoZXJlJ3MgYSBkdXBsaWNhdGUgKHByZXZlbnREdXBsaWNhdGVzIG5lZWRzIHRvIGJlIHNldCB0byB0cnVlKVxyXG4gICAqIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICovXHJcbiAgcmVzZXRUaW1lb3V0T25EdXBsaWNhdGU6IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBFdmVyeXRoaW5nIGEgdG9hc3QgbmVlZHMgdG8gbGF1bmNoXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVG9hc3RQYWNrYWdlIHtcclxuICBwcml2YXRlIF9vblRhcCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwcml2YXRlIF9vbkFjdGlvbiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdG9hc3RJZDogbnVtYmVyLFxyXG4gICAgcHVibGljIGNvbmZpZzogSW5kaXZpZHVhbENvbmZpZyxcclxuICAgIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcgfCBTYWZlSHRtbCB8IG51bGwgfCB1bmRlZmluZWQsXHJcbiAgICBwdWJsaWMgdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCxcclxuICAgIHB1YmxpYyB0b2FzdFR5cGU6IHN0cmluZyxcclxuICAgIHB1YmxpYyB0b2FzdFJlZjogVG9hc3RyUmVmPGFueT4sXHJcbiAgKSB7XHJcbiAgICB0aGlzLnRvYXN0UmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fb25BY3Rpb24uY29tcGxldGUoKTtcclxuICAgICAgdGhpcy5fb25UYXAuY29tcGxldGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEZpcmVkIG9uIGNsaWNrICovXHJcbiAgdHJpZ2dlclRhcCgpIHtcclxuICAgIHRoaXMuX29uVGFwLm5leHQoKTtcclxuICAgIGlmICh0aGlzLmNvbmZpZy50YXBUb0Rpc21pc3MpIHtcclxuICAgICAgdGhpcy5fb25UYXAuY29tcGxldGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVGFwKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fb25UYXAuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICAvKiogYXZhaWxhYmxlIGZvciB1c2UgaW4gY3VzdG9tIHRvYXN0ICovXHJcbiAgdHJpZ2dlckFjdGlvbihhY3Rpb24/OiBhbnkpIHtcclxuICAgIHRoaXMuX29uQWN0aW9uLm5leHQoYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIG9uQWN0aW9uKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fb25BY3Rpb24uYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG59XHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZTpuby1lbXB0eS1pbnRlcmZhY2UgKi9cclxuLyoqIEBkZXByZWNhdGVkIHVzZSBHbG9iYWxDb25maWcgKi9cclxuZXhwb3J0IGludGVyZmFjZSBHbG9iYWxUb2FzdHJDb25maWcgZXh0ZW5kcyBHbG9iYWxDb25maWcge31cclxuLyoqIEBkZXByZWNhdGVkIHVzZSBJbmRpdmlkdWFsQ29uZmlnICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW5kaXZpZHVhbFRvYXN0ckNvbmZpZyBleHRlbmRzIEluZGl2aWR1YWxDb25maWcge31cclxuLyoqIEBkZXByZWNhdGVkIHVzZSBJbmRpdmlkdWFsQ29uZmlnICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9hc3RyQ29uZmlnIGV4dGVuZHMgSW5kaXZpZHVhbENvbmZpZyB7fVxyXG5cclxuZXhwb3J0IGNvbnN0IERlZmF1bHROb0NvbXBvbmVudEdsb2JhbENvbmZpZzogR2xvYmFsQ29uZmlnID0ge1xyXG4gIG1heE9wZW5lZDogMCxcclxuICBhdXRvRGlzbWlzczogZmFsc2UsXHJcbiAgbmV3ZXN0T25Ub3A6IHRydWUsXHJcbiAgcHJldmVudER1cGxpY2F0ZXM6IGZhbHNlLFxyXG4gIHJlc2V0VGltZW91dE9uRHVwbGljYXRlOiBmYWxzZSxcclxuICBpY29uQ2xhc3Nlczoge1xyXG4gICAgbm9uZTogJycsXHJcbiAgICBlcnJvcjogJ2lzLWVycm9yJyxcclxuICAgIGluZm86ICdpcy1pbmZvJyxcclxuICAgIHN1Y2Nlc3M6ICdpcy1zdWNjZXNzJyxcclxuICAgIHdhcm5pbmc6ICdpcy13YXJuaW5nJyxcclxuICB9LFxyXG5cclxuICAvLyBJbmRpdmlkdWFsXHJcbiAgY2xvc2VCdXR0b246IGZhbHNlLFxyXG4gIGRpc2FibGVUaW1lT3V0OiBmYWxzZSxcclxuICB0aW1lT3V0OiA1MDAwLFxyXG4gIGV4dGVuZGVkVGltZU91dDogMTAwMCxcclxuICBlbmFibGVIdG1sOiBmYWxzZSxcclxuICBwcm9ncmVzc0JhcjogZmFsc2UsXHJcbiAgdG9hc3RDbGFzczogJ2h4LWFsZXJ0JyxcclxuICBwb3NpdGlvbjogVG9hc3RyUG9zaXRpb24uVE9QX1JJR0hULFxyXG4gIHRpdGxlQ2xhc3M6ICd0b2FzdC10aXRsZScsXHJcbiAgbWVzc2FnZUNsYXNzOiAndG9hc3QtbWVzc2FnZScsXHJcbiAgZWFzaW5nOiAnZWFzZS1pbicsXHJcbiAgZWFzZVRpbWU6IDMwMCxcclxuICB0YXBUb0Rpc21pc3M6IHRydWUsXHJcbiAgb25BY3RpdmF0ZVRpY2s6IGZhbHNlLFxyXG4gIHByb2dyZXNzQW5pbWF0aW9uOiAnZGVjcmVhc2luZycsXHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0clRva2VuIHtcclxuICBkZWZhdWx0OiBHbG9iYWxDb25maWc7XHJcbiAgY29uZmlnOiBQYXJ0aWFsPEdsb2JhbENvbmZpZz47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBUT0FTVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48VG9hc3RyVG9rZW4+KCdUb2FzdHJDb25maWcnKTtcclxuIl19