UNPKG

@hxui/angular

Version:

* * *

322 lines 19.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { InjectionToken } from '@angular/core'; import { Subject } from 'rxjs'; /** @enum {number} */ const 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 */ export class ToastPackage { /** * @param {?} toastId * @param {?} config * @param {?} message * @param {?} title * @param {?} toastType * @param {?} toastRef */ constructor(toastId, config, message, title, toastType, toastRef) { 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(() => { this._onAction.complete(); this._onTap.complete(); }); } /** * Fired on click * @return {?} */ triggerTap() { this._onTap.next(); if (this.config.tapToDismiss) { this._onTap.complete(); } } /** * @return {?} */ onTap() { return this._onTap.asObservable(); } /** * available for use in custom toast * @param {?=} action * @return {?} */ triggerAction(action) { this._onAction.next(action); } /** * @return {?} */ onAction() { return this._onAction.asObservable(); } } 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 const 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 const TOAST_CONFIG = new InjectionToken('ToastrConfig'); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3RyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoeHVpL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvdG9hc3RyL3RvYXN0ci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0lBUXpDLGdCQUFhO0lBQ2IsYUFBVTtJQUNWLGdCQUFhO0lBQ2IsaUJBQWM7SUFDZCxvQkFBaUI7SUFDakIsV0FBUTtJQUNSLFlBQVM7SUFDVCxjQUFXO0lBQ1gsZUFBWTs7Ozs7Ozs7Ozs7Ozs7OztBQU1kLHNDQW1GQzs7Ozs7OztJQTlFQywwQ0FBd0I7Ozs7OztJQUt4QixtQ0FBZ0I7Ozs7OztJQUtoQix1Q0FBcUI7Ozs7OztJQUtyQiwyQ0FBd0I7Ozs7OztJQUt4Qix1Q0FBcUI7Ozs7OztJQU1yQiw2Q0FBeUM7Ozs7OztJQU16QyxzQ0FBb0I7Ozs7OztJQUtwQixzQ0FBbUI7Ozs7OztJQUtuQixvQ0FBeUI7Ozs7OztJQUt6QixzQ0FBbUI7Ozs7OztJQUtuQix3Q0FBcUI7Ozs7OztJQUtyQixrQ0FBZTs7Ozs7O0lBS2Ysb0NBQTBCOzs7Ozs7SUFLMUIsd0NBQXNCOzs7Ozs7SUFLdEIsMENBQW9DOzs7Ozs7SUFLcEMsMENBQXdCOzs7OztBQUcxQix1Q0FNQzs7O0lBTEMsaUNBQWE7O0lBQ2Isa0NBQWM7O0lBQ2QsaUNBQWE7O0lBQ2Isb0NBQWdCOztJQUNoQixvQ0FBZ0I7Ozs7Ozs7QUFPbEIsa0NBNkJDOzs7Ozs7OztJQXZCQyxpQ0FBa0I7Ozs7OztJQUtsQixtQ0FBcUI7O0lBQ3JCLG1DQUF3Qzs7Ozs7O0lBS3hDLG1DQUFxQjs7Ozs7O0lBS3JCLHlDQUEyQjs7Ozs7O0lBTTNCLCtDQUFpQzs7Ozs7QUFNbkMsTUFBTSxPQUFPLFlBQVk7Ozs7Ozs7OztJQUl2QixZQUNTLE9BQWUsRUFDZixNQUF3QixFQUN4QixPQUE2QyxFQUM3QyxLQUF5QixFQUN6QixTQUFpQixFQUNqQixRQUF3QjtRQUx4QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBc0M7UUFDN0MsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFDekIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQVR6QixXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUM1QixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQVVyQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFHRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDOzs7O0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7Ozs7SUFHRCxhQUFhLENBQUMsTUFBWTtRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7OztJQXJDQyw4QkFBb0M7O0lBQ3BDLGlDQUF1Qzs7SUFHckMsK0JBQXNCOztJQUN0Qiw4QkFBK0I7O0lBQy9CLCtCQUFvRDs7SUFDcEQsNkJBQWdDOztJQUNoQyxpQ0FBd0I7O0lBQ3hCLGdDQUErQjs7Ozs7O0FBZ0NuQyx3Q0FBMkQ7Ozs7O0FBRTNELDRDQUFtRTs7Ozs7QUFFbkUsa0NBQXlEOztBQUV6RCxNQUFNLE9BQU8sOEJBQThCLEdBQWlCO0lBQzFELFNBQVMsRUFBRSxDQUFDO0lBQ1osV0FBVyxFQUFFLEtBQUs7SUFDbEIsV0FBVyxFQUFFLElBQUk7SUFDakIsaUJBQWlCLEVBQUUsS0FBSztJQUN4Qix1QkFBdUIsRUFBRSxLQUFLO0lBQzlCLFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxFQUFFO1FBQ1IsS0FBSyxFQUFFLFVBQVU7UUFDakIsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsWUFBWTtRQUNyQixPQUFPLEVBQUUsWUFBWTtLQUN0Qjs7SUFHRCxXQUFXLEVBQUUsS0FBSztJQUNsQixjQUFjLEVBQUUsS0FBSztJQUNyQixPQUFPLEVBQUUsSUFBSTtJQUNiLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFFBQVEsRUFBRSxjQUFjLENBQUMsU0FBUztJQUNsQyxVQUFVLEVBQUUsYUFBYTtJQUN6QixZQUFZLEVBQUUsZUFBZTtJQUM3QixNQUFNLEVBQUUsU0FBUztJQUNqQixRQUFRLEVBQUUsR0FBRztJQUNiLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGlCQUFpQixFQUFFLFlBQVk7Q0FDaEM7Ozs7QUFFRCxpQ0FHQzs7O0lBRkMsOEJBQXNCOztJQUN0Qiw2QkFBOEI7OztBQUdoQyxNQUFNLE9BQU8sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnLi9wb3J0YWwvcG9ydGFsJztcclxuaW1wb3J0IHsgVG9hc3RyUmVmIH0gZnJvbSAnLi90b2FzdHItaW5qZWN0b3InO1xyXG5cclxuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NBbmltYXRpb25UeXBlID0gJ2luY3JlYXNpbmcnIHwgJ2RlY3JlYXNpbmcnO1xyXG5cclxuZXhwb3J0IGVudW0gVG9hc3RyUG9zaXRpb24ge1xyXG4gIENFTlRFUl9DRU5URVIsXHJcbiAgVE9QX0NFTlRFUixcclxuICBCT1RUT01fQ0VOVEVSLFxyXG4gIFRPUF9GVUxMX1dJRFRILFxyXG4gIEJPVFRPTV9GVUxMX1dJRFRILFxyXG4gIFRPUF9MRUZULFxyXG4gIFRPUF9SSUdIVCxcclxuICBCT1RUT01fTEVGVCxcclxuICBCT1RUT01fUklHSFRcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGluZGl2aWR1YWwgdG9hc3QuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEluZGl2aWR1YWxDb25maWcge1xyXG4gIC8qKlxyXG4gICAqIGRpc2FibGUgYm90aCB0aW1lT3V0IGFuZCBleHRlbmRlZFRpbWVPdXRcclxuICAgKiBkZWZhdWx0OiBmYWxzZVxyXG4gICAqL1xyXG4gIGRpc2FibGVUaW1lT3V0OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIHRvYXN0IHRpbWUgdG8gbGl2ZSBpbiBtaWxsaXNlY29uZHNcclxuICAgKiBkZWZhdWx0OiA1MDAwXHJcbiAgICovXHJcbiAgdGltZU91dDogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIHRvYXN0IHNob3cgY2xvc2UgYnV0dG9uXHJcbiAgICogZGVmYXVsdDogZmFsc2VcclxuICAgKi9cclxuICBjbG9zZUJ1dHRvbjogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiB0aW1lIHRvIGNsb3NlIGFmdGVyIGEgdXNlciBob3ZlcnMgb3ZlciB0b2FzdFxyXG4gICAqIGRlZmF1bHQ6IDEwMDBcclxuICAgKi9cclxuICBleHRlbmRlZFRpbWVPdXQ6IG51bWJlcjtcclxuICAvKipcclxuICAgKiBzaG93IHRvYXN0IHByb2dyZXNzIGJhclxyXG4gICAqIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICovXHJcbiAgcHJvZ3Jlc3NCYXI6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoYW5nZXMgdG9hc3QgcHJvZ3Jlc3MgYmFyIGFuaW1hdGlvblxyXG4gICAqIGRlZmF1bHQ6IGRlY3JlYXNpbmdcclxuICAgKi9cclxuICBwcm9ncmVzc0FuaW1hdGlvbjogUHJvZ3Jlc3NBbmltYXRpb25UeXBlO1xyXG5cclxuICAvKipcclxuICAgKiByZW5kZXIgaHRtbCBpbiB0b2FzdCBtZXNzYWdlIChwb3NzaWJseSB1bnNhZmUpXHJcbiAgICogZGVmYXVsdDogZmFsc2VcclxuICAgKi9cclxuICBlbmFibGVIdG1sOiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIGNzcyBjbGFzcyBvbiB0b2FzdCBjb21wb25lbnRcclxuICAgKiBkZWZhdWx0OiB0b2FzdFxyXG4gICAqL1xyXG4gIHRvYXN0Q2xhc3M6IHN0cmluZztcclxuICAvKipcclxuICAgKiBQb3NpdGlvbiBvZiB0b2FzdHIgY29udGFpbmVyXHJcbiAgICogZGVmYXVsdDogVG9hc3RyUG9zaXRpb24uVE9QX1JJR0hUXHJcbiAgICovXHJcbiAgcG9zaXRpb246IFRvYXN0clBvc2l0aW9uO1xyXG4gIC8qKlxyXG4gICAqIGNzcyBjbGFzcyBvbiB0b2FzdCB0aXRsZVxyXG4gICAqIGRlZmF1bHQ6IHRvYXN0LXRpdGxlXHJcbiAgICovXHJcbiAgdGl0bGVDbGFzczogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIGNzcyBjbGFzcyBvbiB0b2FzdCBtZXNzYWdlXHJcbiAgICogZGVmYXVsdDogdG9hc3QtbWVzc2FnZVxyXG4gICAqL1xyXG4gIG1lc3NhZ2VDbGFzczogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIGFuaW1hdGlvbiBlYXNpbmcgb24gdG9hc3RcclxuICAgKiBkZWZhdWx0OiBlYXNlLWluXHJcbiAgICovXHJcbiAgZWFzaW5nOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogYW5pbWF0aW9uIGVhc2UgdGltZSBvbiB0b2FzdFxyXG4gICAqIGRlZmF1bHQ6IDMwMFxyXG4gICAqL1xyXG4gIGVhc2VUaW1lOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogY2xpY2tpbmcgb24gdG9hc3QgZGlzbWlzc2VzIGl0XHJcbiAgICogZGVmYXVsdDogdHJ1ZVxyXG4gICAqL1xyXG4gIHRhcFRvRGlzbWlzczogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBBbmd1bGFyIHRvYXN0IGNvbXBvbmVudCB0byBiZSBzaG93blxyXG4gICAqIGRlZmF1bHQ6IFRvYXN0XHJcbiAgICovXHJcbiAgdG9hc3RDb21wb25lbnQ/OiBDb21wb25lbnRUeXBlPGFueT47XHJcbiAgLyoqXHJcbiAgICogSGVscHMgc2hvdyB0b2FzdCBmcm9tIGEgd2Vic29ja2V0IG9yIGZyb20gZXZlbnQgb3V0c2lkZSBBbmd1bGFyXHJcbiAgICogZGVmYXVsdDogZmFsc2VcclxuICAgKi9cclxuICBvbkFjdGl2YXRlVGljazogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUb2FzdHJJY29uQ2xhc3NlcyB7XHJcbiAgbm9uZTogc3RyaW5nO1xyXG4gIGVycm9yOiBzdHJpbmc7XHJcbiAgaW5mbzogc3RyaW5nO1xyXG4gIHN1Y2Nlc3M6IHN0cmluZztcclxuICB3YXJuaW5nOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHbG9iYWwgVG9hc3QgY29uZmlndXJhdGlvblxyXG4gKiBJbmNsdWRlcyBhbGwgSW5kaXZpZHVhbENvbmZpZ1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBHbG9iYWxDb25maWcgZXh0ZW5kcyBJbmRpdmlkdWFsQ29uZmlnIHtcclxuICAvKipcclxuICAgKiBtYXggdG9hc3RzIG9wZW5lZC4gVG9hc3RzIHdpbGwgYmUgcXVldWVkXHJcbiAgICogWmVybyBpcyB1bmxpbWl0ZWRcclxuICAgKiBkZWZhdWx0OiAwXHJcbiAgICovXHJcbiAgbWF4T3BlbmVkOiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogZGlzbWlzcyBjdXJyZW50IHRvYXN0IHdoZW4gbWF4IGlzIHJlYWNoZWRcclxuICAgKiBkZWZhdWx0OiBmYWxzZVxyXG4gICAqL1xyXG4gIGF1dG9EaXNtaXNzOiBib29sZWFuO1xyXG4gIGljb25DbGFzc2VzOiBQYXJ0aWFsPFRvYXN0ckljb25DbGFzc2VzPjtcclxuICAvKipcclxuICAgKiBOZXcgdG9hc3QgcGxhY2VtZW50XHJcbiAgICogZGVmYXVsdDogdHJ1ZVxyXG4gICAqL1xyXG4gIG5ld2VzdE9uVG9wOiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIGJsb2NrIGR1cGxpY2F0ZSBtZXNzYWdlc1xyXG4gICAqIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICovXHJcbiAgcHJldmVudER1cGxpY2F0ZXM6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IHRvYXN0IHRpbWVvdXQgd2hlbiB0aGVyZSdzIGEgZHVwbGljYXRlIChwcmV2ZW50RHVwbGljYXRlcyBuZWVkcyB0byBiZSBzZXQgdG8gdHJ1ZSlcclxuICAgKiBkZWZhdWx0OiBmYWxzZVxyXG4gICAqL1xyXG4gIHJlc2V0VGltZW91dE9uRHVwbGljYXRlOiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogRXZlcnl0aGluZyBhIHRvYXN0IG5lZWRzIHRvIGxhdW5jaFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRvYXN0UGFja2FnZSB7XHJcbiAgcHJpdmF0ZSBfb25UYXAgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJpdmF0ZSBfb25BY3Rpb24gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRvYXN0SWQ6IG51bWJlcixcclxuICAgIHB1YmxpYyBjb25maWc6IEluZGl2aWR1YWxDb25maWcsXHJcbiAgICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nIHwgU2FmZUh0bWwgfCBudWxsIHwgdW5kZWZpbmVkLFxyXG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQsXHJcbiAgICBwdWJsaWMgdG9hc3RUeXBlOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgdG9hc3RSZWY6IFRvYXN0clJlZjxhbnk+LFxyXG4gICkge1xyXG4gICAgdGhpcy50b2FzdFJlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX29uQWN0aW9uLmNvbXBsZXRlKCk7XHJcbiAgICAgIHRoaXMuX29uVGFwLmNvbXBsZXRlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBGaXJlZCBvbiBjbGljayAqL1xyXG4gIHRyaWdnZXJUYXAoKSB7XHJcbiAgICB0aGlzLl9vblRhcC5uZXh0KCk7XHJcbiAgICBpZiAodGhpcy5jb25maWcudGFwVG9EaXNtaXNzKSB7XHJcbiAgICAgIHRoaXMuX29uVGFwLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRhcCgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX29uVGFwLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIGF2YWlsYWJsZSBmb3IgdXNlIGluIGN1c3RvbSB0b2FzdCAqL1xyXG4gIHRyaWdnZXJBY3Rpb24oYWN0aW9uPzogYW55KSB7XHJcbiAgICB0aGlzLl9vbkFjdGlvbi5uZXh0KGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX29uQWN0aW9uLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxufVxyXG5cclxuLyogdHNsaW50OmRpc2FibGU6bm8tZW1wdHktaW50ZXJmYWNlICovXHJcbi8qKiBAZGVwcmVjYXRlZCB1c2UgR2xvYmFsQ29uZmlnICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsVG9hc3RyQ29uZmlnIGV4dGVuZHMgR2xvYmFsQ29uZmlnIHt9XHJcbi8qKiBAZGVwcmVjYXRlZCB1c2UgSW5kaXZpZHVhbENvbmZpZyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEluZGl2aWR1YWxUb2FzdHJDb25maWcgZXh0ZW5kcyBJbmRpdmlkdWFsQ29uZmlnIHt9XHJcbi8qKiBAZGVwcmVjYXRlZCB1c2UgSW5kaXZpZHVhbENvbmZpZyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0ckNvbmZpZyBleHRlbmRzIEluZGl2aWR1YWxDb25maWcge31cclxuXHJcbmV4cG9ydCBjb25zdCBEZWZhdWx0Tm9Db21wb25lbnRHbG9iYWxDb25maWc6IEdsb2JhbENvbmZpZyA9IHtcclxuICBtYXhPcGVuZWQ6IDAsXHJcbiAgYXV0b0Rpc21pc3M6IGZhbHNlLFxyXG4gIG5ld2VzdE9uVG9wOiB0cnVlLFxyXG4gIHByZXZlbnREdXBsaWNhdGVzOiBmYWxzZSxcclxuICByZXNldFRpbWVvdXRPbkR1cGxpY2F0ZTogZmFsc2UsXHJcbiAgaWNvbkNsYXNzZXM6IHtcclxuICAgIG5vbmU6ICcnLFxyXG4gICAgZXJyb3I6ICdpcy1lcnJvcicsXHJcbiAgICBpbmZvOiAnaXMtaW5mbycsXHJcbiAgICBzdWNjZXNzOiAnaXMtc3VjY2VzcycsXHJcbiAgICB3YXJuaW5nOiAnaXMtd2FybmluZycsXHJcbiAgfSxcclxuXHJcbiAgLy8gSW5kaXZpZHVhbFxyXG4gIGNsb3NlQnV0dG9uOiBmYWxzZSxcclxuICBkaXNhYmxlVGltZU91dDogZmFsc2UsXHJcbiAgdGltZU91dDogNTAwMCxcclxuICBleHRlbmRlZFRpbWVPdXQ6IDEwMDAsXHJcbiAgZW5hYmxlSHRtbDogZmFsc2UsXHJcbiAgcHJvZ3Jlc3NCYXI6IGZhbHNlLFxyXG4gIHRvYXN0Q2xhc3M6ICdoeC1hbGVydCcsXHJcbiAgcG9zaXRpb246IFRvYXN0clBvc2l0aW9uLlRPUF9SSUdIVCxcclxuICB0aXRsZUNsYXNzOiAndG9hc3QtdGl0bGUnLFxyXG4gIG1lc3NhZ2VDbGFzczogJ3RvYXN0LW1lc3NhZ2UnLFxyXG4gIGVhc2luZzogJ2Vhc2UtaW4nLFxyXG4gIGVhc2VUaW1lOiAzMDAsXHJcbiAgdGFwVG9EaXNtaXNzOiB0cnVlLFxyXG4gIG9uQWN0aXZhdGVUaWNrOiBmYWxzZSxcclxuICBwcm9ncmVzc0FuaW1hdGlvbjogJ2RlY3JlYXNpbmcnLFxyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUb2FzdHJUb2tlbiB7XHJcbiAgZGVmYXVsdDogR2xvYmFsQ29uZmlnO1xyXG4gIGNvbmZpZzogUGFydGlhbDxHbG9iYWxDb25maWc+O1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgVE9BU1RfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPFRvYXN0clRva2VuPignVG9hc3RyQ29uZmlnJyk7XHJcbiJdfQ==