@dbg-riskit/angular-error 12.3.0 → 9999.9999.9999-rc.12148
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dbg-riskit-angular-error.d.ts +1 -2
- package/docs/README.md +1 -11
- package/esm2020/dbg-riskit-angular-error.mjs +5 -0
- package/esm2020/lib/error.collector.mjs +65 -0
- package/esm2020/lib/error.menu.component.mjs +205 -0
- package/esm2020/lib/error.message.component.mjs +119 -0
- package/{esm2015/lib/error.message.wrapper.js → esm2020/lib/error.message.wrapper.mjs} +1 -1
- package/esm2020/lib/error.module.mjs +47 -0
- package/{esm2015/lib/rxjs.utils.js → esm2020/lib/rxjs.utils.mjs} +0 -0
- package/esm2020/public_api.mjs +5 -0
- package/fesm2015/dbg-riskit-angular-error.mjs +468 -0
- package/fesm2015/dbg-riskit-angular-error.mjs.map +1 -0
- package/fesm2020/dbg-riskit-angular-error.mjs +462 -0
- package/fesm2020/dbg-riskit-angular-error.mjs.map +1 -0
- package/lib/error.collector.d.ts +3 -0
- package/lib/error.menu.component.d.ts +3 -0
- package/lib/error.message.component.d.ts +3 -0
- package/lib/error.module.d.ts +8 -0
- package/package.json +26 -14
- package/public_api.d.ts +1 -0
- package/bundles/dbg-riskit-angular-error.umd.js +0 -767
- package/bundles/dbg-riskit-angular-error.umd.js.map +0 -1
- package/dbg-riskit-angular-error.metadata.json +0 -1
- package/esm2015/dbg-riskit-angular-error.js +0 -7
- package/esm2015/lib/error.collector.js +0 -60
- package/esm2015/lib/error.menu.component.js +0 -185
- package/esm2015/lib/error.message.component.js +0 -84
- package/esm2015/lib/error.module.js +0 -31
- package/esm2015/public_api.js +0 -4
- package/fesm2015/dbg-riskit-angular-error.js +0 -393
- package/fesm2015/dbg-riskit-angular-error.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dbg-riskit-angular-error.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../pkg/dbg-riskit/angular-error/src/lib/error.collector.ts","../../../../pkg/dbg-riskit/angular-error/src/lib/error.message.component.ts","../../../../pkg/dbg-riskit/angular-error/src/lib/error.message.wrapper.ts","../../../../pkg/dbg-riskit/angular-error/src/lib/error.menu.component.ts","../../../../pkg/dbg-riskit/angular-error/src/lib/error.module.ts","../../../../pkg/dbg-riskit/angular-error/src/lib/rxjs.utils.ts","../../../../pkg/dbg-riskit/angular-error/src/dbg-riskit-angular-error.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {ErrorHandler, Inject, Injectable, Optional} from '@angular/core';\nimport {AUTH_PROVIDER} from '@dbg-riskit/angular-common';\nimport {AuthProvider, ErrorMessage, ErrorType, toString} from '@dbg-riskit/common';\nimport {EMPTY, Observable, ReplaySubject} from 'rxjs';\n\nexport type ErrorTypes = ErrorMessage | Error | object | string;\n\nexport function toErrorMessage(err: ErrorTypes): ErrorMessage {\n let errorMessage: ErrorMessage;\n if ('errorType' in (err as ErrorMessage)) {\n errorMessage = err as ErrorMessage;\n } else {\n if ('message' in (err as Error)) {\n err = (err as Error).message || toString(err);\n } else {\n err = toString(err);\n }\n errorMessage = {\n message : err,\n status : 0,\n errorType: ErrorType.ERROR\n };\n }\n return errorMessage;\n}\n\n@Injectable()\nexport class ErrorCollectorService extends ErrorHandler {\n\n private _errorObservable: ReplaySubject<ErrorMessage> = new ReplaySubject(10);\n\n public constructor(@Optional() @Inject(AUTH_PROVIDER) authProvider: AuthProvider) {\n super();\n if (authProvider) {\n authProvider.loggedInStream.subscribe((auth: boolean) => {\n this._errorObservable = new ReplaySubject(10);\n });\n }\n }\n\n public error(err: ErrorMessage) {\n this._errorObservable.next(err);\n }\n\n public get errorStream(): Observable<ErrorMessage> {\n return this._errorObservable.asObservable();\n }\n\n public handleError(err: ErrorTypes): void {\n try {\n super.handleError(err);\n } finally {\n this.error(toErrorMessage(err));\n }\n }\n\n public handleStreamError<T>(err: ErrorTypes): Observable<T> {\n this.handleError(err);\n return EMPTY;\n }\n}\n","import {animate, AnimationEvent, keyframes, state, style, transition, trigger} from '@angular/animations';\nimport {ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input} from '@angular/core';\nimport {DATE_FORMAT} from '@dbg-riskit/angular-common';\nimport {ErrorMessageWrapper} from './error.message.wrapper';\n\n@Component({\n selector : 'risk-error-message',\n templateUrl: 'error.message.component.html',\n styleUrls : [\n '../../../component.scss',\n 'error.message.component.scss'\n ],\n animations : [\n trigger('readState', [\n state('read', style({background: 'transparent'})),\n transition(':enter', [\n style({\n height : 0,\n transform: 'scale(0)'\n }),\n animate('200ms ease-in', style({\n height : '*',\n transform: 'scale(1)'\n }))\n ]),\n transition('* => read', [\n style({\n background: 'transparent'\n }),\n animate('1500ms', keyframes([\n style({\n background: 'rgba(204, 51, 51, .5)',\n offset : 0.25\n }),\n style({\n background: 'transparent',\n offset : 0.5\n }),\n style({\n background: 'rgba(204, 51, 51, .5)',\n offset : 0.75\n }),\n style({\n background: 'transparent',\n offset : 1\n })\n ]))\n ])\n ])\n ],\n host : {\n '[class.risk-error-message]': 'true'\n },\n changeDetection : ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false\n})\nexport class ErrorMessageComponent {\n\n public readState: 'read' | null = null;\n\n @Input()\n public error?: ErrorMessageWrapper;\n\n @Input()\n public isLast: boolean = false;\n\n public constructor(@Inject(DATE_FORMAT) public readonly dateFormat: string,\n private readonly changeDetectorRef: ChangeDetectorRef) {\n }\n\n public animate(): void {\n if (this.error != null && !this.error.read && this.readState !== 'read') {\n setTimeout(() => {\n this.readState = 'read';\n this.changeDetectorRef.markForCheck();\n });\n }\n }\n\n public markRead(event: AnimationEvent): void {\n if (this.error != null && event.toState === 'read') {\n this.error.markRead();\n this.changeDetectorRef.markForCheck();\n }\n }\n}\n","import {EventEmitter} from '@angular/core';\n\nimport {ErrorMessage, ErrorType} from '@dbg-riskit/common';\n\nexport class ErrorMessageWrapper {\n private readonly _error: ErrorMessage;\n private readonly _date: Date = new Date();\n private _read: boolean = false;\n\n public readonly readStateChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n public constructor(error: ErrorMessage) {\n this._error = error;\n }\n\n public get message(): string {\n return this._error.message;\n }\n\n public get type(): ErrorType {\n return this._error.errorType;\n }\n\n public get statusCode(): number {\n return this._error.status;\n }\n\n public get date(): Date {\n return this._date;\n }\n\n public get read(): boolean {\n return this._read;\n }\n\n public markRead(): void {\n if (!this._read) {\n this._read = true;\n this.readStateChanged.emit(this._read);\n this.readStateChanged.complete();\n }\n }\n}\n","import {\n animate,\n AnimationAnimateMetadata,\n AnimationEvent,\n keyframes,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnInit,\n Optional,\n QueryList,\n ViewChildren,\n Input\n} from '@angular/core';\nimport {AUTH_PROVIDER, MatColorTheme} from '@dbg-riskit/angular-common';\nimport {BaseComponent} from '@dbg-riskit/angular-view';\nimport {AuthProvider, ErrorMessage} from '@dbg-riskit/common';\nimport {merge, Observable, Subject, timer} from 'rxjs';\nimport {filter, map, takeUntil} from 'rxjs/operators';\nimport {ErrorCollectorService} from './error.collector';\nimport {ErrorMessageComponent} from './error.message.component';\nimport {ErrorMessageWrapper} from './error.message.wrapper';\n\nexport const JIGGLE_ANIMATION: AnimationAnimateMetadata = animate('1s ease-in', keyframes([\n style({\n transform: 'scale(0.8) translateX(-1px) rotate(0)',\n offset : 0.1\n }),\n style({\n transform: 'scale(1) translateX(2px) rotate(4deg)',\n offset : 0.2\n }),\n style({\n transform: 'scale(1.2) translateX(-4px) rotate(0)',\n offset : 0.3\n }),\n style({\n transform: 'scale(1.5) translateX(4px) rotate(0)',\n offset : 0.4\n }),\n style({\n transform: 'scale(1.5) translateX(-4px) rotate(-8deg)',\n offset : 0.5\n }),\n style({\n transform: 'scale(1.5) translateX(4px) rotate(0)',\n offset : 0.6\n }),\n style({\n transform: 'scale(1.2) translateX(-4px) rotate(0)',\n offset : 0.7\n }),\n style({\n transform: 'scale(1) translateX(2px) rotate(4deg)',\n offset : 0.8\n }),\n style({\n transform: 'scale(1) translateX(-1px) rotate(0)',\n offset : 0.9\n })\n]));\n\n@Component({\n selector : 'risk-error-menu',\n templateUrl : 'error.menu.component.html',\n styleUrls : [\n '../../../component.scss',\n 'error.menu.component.scss'\n ],\n animations : [\n trigger('buttonState', [\n state('inactive', style({transform: 'translateX(0) scale(0)'})),\n state('active', style({transform: 'translateX(0) scale(1)'})),\n state('newError', style({transform: 'translateX(0) scale(1)'})),\n transition('void => active', [\n style({transform: 'scale(0) translateX(0) rotate(0)'}),\n JIGGLE_ANIMATION\n ]),\n transition('void => newError', [\n style({transform: 'scale(0) translateX(0) rotate(0)'}),\n JIGGLE_ANIMATION\n ]),\n transition('active => newError', [\n style({transform: 'scale(1) translateX(0) rotate(0)'}),\n JIGGLE_ANIMATION\n ])\n ])\n ],\n host : {\n '[class.risk-error-menu]': 'true'\n },\n changeDetection : ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false\n})\nexport class ErrorComponent extends BaseComponent implements OnInit {\n\n public state: 'active' | 'newError' | null = null;\n\n @Input() public keepVisibleOnClick?: boolean;\n\n private readonly _errors: ErrorMessageWrapper[] = [];\n\n private readonly _menuState: Subject<boolean> = new Subject();\n\n @ViewChildren(ErrorMessageComponent)\n public errorMessages?: QueryList<ErrorMessageComponent>;\n\n public constructor(private readonly errorCollector: ErrorCollectorService,\n @Optional() @Inject(AUTH_PROVIDER) private readonly authProvider: AuthProvider,\n private readonly changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n public ngOnInit(): void {\n // Init Jiggle animation loop\n this.initAnimation();\n\n // Subscribe to error stream\n this.subscribeToErrors();\n\n // Once opened animate messages and set as read after animation\n this._menuState.pipe(\n filter((opened: boolean) => opened),\n takeUntil(this.destroyed)\n ).subscribe(() => this.animateOnMenuOpened());\n\n // Refresh on \"logged-in\" state changes\n if (this.authProvider) {\n this.authProvider.loggedInStream.pipe(\n takeUntil(this.destroyed)\n ).subscribe((auth: boolean) => this.loggedInChanged(auth));\n }\n }\n\n private animateOnMenuOpened() {\n const animateMessages = () => this.errorMessages!.forEach(\n (message: ErrorMessageComponent) => message.animate());\n animateMessages();\n this.errorMessages!.changes.pipe(\n takeUntil(merge(this.destroyed, this._menuState))\n ).subscribe(() => animateMessages());\n }\n\n private loggedInChanged(auth: boolean) {\n // Subscribe to errors once logged in again\n if (auth) {\n this.subscribeToErrors();\n } else {\n while (this._errors.length > 0) {\n this._errors.pop();\n }\n }\n this.changeDetectorRef.markForCheck();\n }\n\n private subscribeToErrors() {\n let until: Observable<void> = this.destroyed;\n // Stop receiving errors once user was logged out\n if (this.authProvider) {\n until = merge(\n until,\n this.authProvider.loggedInStream.pipe(\n filter((auth: boolean) => !auth),\n map(() => undefined)\n )\n );\n }\n this.errorCollector.errorStream.pipe(\n takeUntil(until)\n ).subscribe((error: ErrorMessage) => this.errorReceived(error, until));\n }\n\n private errorReceived(error: ErrorMessage, until: Observable<unknown>) {\n const errorMessageWrapper = new ErrorMessageWrapper(error);\n\n // Subscribe for state changes\n errorMessageWrapper.readStateChanged.pipe(\n takeUntil(until)\n ).subscribe(() => this.changeDetectorRef.detectChanges());\n\n this._errors.unshift(errorMessageWrapper);\n while (this._errors.length > 10) {\n this._errors.pop();\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n public get color(): MatColorTheme {\n if (this.errors.some((error: ErrorMessageWrapper) => !error.read)) {\n return 'warn';\n }\n return null;\n }\n\n public menuOpened(): void {\n this._menuState.next(true);\n }\n\n public menuClosed(): void {\n this._menuState.next(false);\n }\n\n public get errors(): ErrorMessageWrapper[] {\n return this._errors;\n }\n\n // <editor-fold desc=\"Animation control\" defaultstate=\"collapsed\">\n public animationDone(event: AnimationEvent): void {\n if (event.toState === 'newError') {\n // Reset after annimation\n this.state = 'active';\n\n // Called from animation controller we need to re-check\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private initAnimation(): void {\n timer(100, 2000).pipe(\n // Run animation everytime we have non-read errors\n filter(() => this.errors.some((error: ErrorMessageWrapper) => !error.read)),\n takeUntil(this.destroyed)\n ).subscribe(() => {\n switch (this.state) {\n case null:\n this.state = 'active';\n break;\n case 'active':\n this.state = 'newError';\n break;\n }\n this.changeDetectorRef.markForCheck();\n });\n }\n\n // </editor-fold>\n}\n","import {CommonModule} from '@angular/common';\nimport {ErrorHandler, NgModule} from '@angular/core';\nimport {CommonViewModule} from '@dbg-riskit/angular-view';\nimport {ErrorCollectorService} from './error.collector';\nimport {ErrorComponent} from './error.menu.component';\nimport {ErrorMessageComponent} from './error.message.component';\n\n@NgModule({\n imports : [\n CommonModule,\n CommonViewModule\n ],\n exports : [\n ErrorComponent\n ],\n declarations: [\n ErrorComponent,\n ErrorMessageComponent\n ],\n providers : [\n ErrorCollectorService,\n {\n provide : ErrorHandler,\n useExisting: ErrorCollectorService\n }\n ]\n})\nexport class ErrorModule {\n}\n","import {MonoTypeOperatorFunction, Observable} from 'rxjs';\nimport {catchError, defaultIfEmpty} from 'rxjs/operators';\nimport {ErrorCollectorService} from './error.collector';\n\n/**\n * Collects all error using error collector and returns the \"otherwise\" error instead.\n * @param errorCollector Error collector service.\n * @param otherwise Value to be returned in case of error.\n */\nexport function collectErrors<T>(errorCollector: ErrorCollectorService, otherwise: T): MonoTypeOperatorFunction<T> {\n return (source: Observable<T>) => source.pipe(\n catchError((err) => errorCollector.handleStreamError<T>(err)),\n defaultIfEmpty(otherwise)\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {ErrorComponent as ɵb,JIGGLE_ANIMATION as ɵa} from './lib/error.menu.component';\nexport {ErrorMessageComponent as ɵc} from './lib/error.message.component';"],"names":["toString","ErrorType","ReplaySubject","EMPTY","ErrorHandler","Injectable","Optional","Inject","AUTH_PROVIDER","Component","trigger","state","style","transition","animate","keyframes","ChangeDetectionStrategy","DATE_FORMAT","ChangeDetectorRef","Input","EventEmitter","Subject","filter","takeUntil","merge","map","timer","BaseComponent","ViewChildren","NgModule","CommonModule","CommonViewModule","catchError","defaultIfEmpty"],"mappings":";;;;;;IAAA;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;QACxC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,EAAE;wBAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB;aACJ;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;aAEe,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;QACnL,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QAClL,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G;;aCvOgB,cAAc,CAAC,GAAe;QAC1C,IAAI,YAA0B,CAAC;QAC/B,IAAI,WAAW,IAAK,GAAoB,EAAE;YACtC,YAAY,GAAG,GAAmB,CAAC;SACtC;aAAM;YACH,IAAI,SAAS,IAAK,GAAa,EAAE;gBAC7B,GAAG,GAAI,GAAa,CAAC,OAAO,IAAIA,eAAQ,CAAC,GAAG,CAAC,CAAC;aACjD;iBAAM;gBACH,GAAG,GAAGA,eAAQ,CAAC,GAAG,CAAC,CAAC;aACvB;YACD,YAAY,GAAG;gBACX,OAAO,EAAI,GAAG;gBACd,MAAM,EAAK,CAAC;gBACZ,SAAS,EAAEC,gBAAS,CAAC,KAAK;aAC7B,CAAC;SACL;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;;QAG0C,yCAAY;QAInD,+BAAsD,YAA0B;YAAhF,YACI,iBAAO,SAMV;YATO,sBAAgB,GAAgC,IAAIC,kBAAa,CAAC,EAAE,CAAC,CAAC;YAI1E,IAAI,YAAY,EAAE;gBACd,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,UAAC,IAAa;oBAChD,KAAI,CAAC,gBAAgB,GAAG,IAAIA,kBAAa,CAAC,EAAE,CAAC,CAAC;iBACjD,CAAC,CAAC;aACN;;SACJ;QAEM,qCAAK,GAAL,UAAM,GAAiB;YAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnC;QAED,sBAAW,8CAAW;iBAAtB;gBACI,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;aAC/C;;;WAAA;QAEM,2CAAW,GAAX,UAAY,GAAe;YAC9B,IAAI;gBACA,iBAAM,WAAW,YAAC,GAAG,CAAC,CAAC;aAC1B;oBAAS;gBACN,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;aACnC;SACJ;QAEM,iDAAiB,GAAjB,UAAqB,GAAe;YACvC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtB,OAAOC,UAAK,CAAC;SAChB;;KAhCL,CAA2CC,iBAAY;;gBADtDC,eAAU;;;gDAKaC,aAAQ,YAAIC,WAAM,SAACC,2BAAa;;;;QCmCpD,+BAAwD,UAAkB,EACtC,iBAAoC;YADhB,eAAU,GAAV,UAAU,CAAQ;YACtC,sBAAiB,GAAjB,iBAAiB,CAAmB;YATjE,cAAS,GAAkB,IAAI,CAAC;YAMhC,WAAM,GAAY,KAAK,CAAC;SAI9B;QAEM,uCAAO,GAAP;YAAA,iBAON;YANG,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;gBACrE,UAAU,CAAC;oBACP,KAAI,CAAC,SAAS,GAAG,MAAM,CAAC;oBACxB,KAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;iBACzC,CAAC,CAAC;aACN;SACJ;QAEM,wCAAQ,GAAR,UAAS,KAAqB;YACjC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;gBAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;aACzC;SACJ;;;;gBA/EJC,cAAS,SAAC;oBACP,QAAQ,EAAK,oBAAoB;oBACjC,0hCAA2C;oBAK3C,UAAU,EAAG;wBACTC,kBAAO,CAAC,WAAW,EAAE;4BACjBC,gBAAK,CAAC,MAAM,EAAEC,gBAAK,CAAC,EAAC,UAAU,EAAE,aAAa,EAAC,CAAC,CAAC;4BACjDC,qBAAU,CAAC,QAAQ,EAAE;gCACjBD,gBAAK,CAAC;oCACF,MAAM,EAAK,CAAC;oCACZ,SAAS,EAAE,UAAU;iCACxB,CAAC;gCACFE,kBAAO,CAAC,eAAe,EAAEF,gBAAK,CAAC;oCAC3B,MAAM,EAAK,GAAG;oCACd,SAAS,EAAE,UAAU;iCACxB,CAAC,CAAC;6BACN,CAAC;4BACFC,qBAAU,CAAC,WAAW,EAAE;gCACpBD,gBAAK,CAAC;oCACF,UAAU,EAAE,aAAa;iCAC5B,CAAC;gCACFE,kBAAO,CAAC,QAAQ,EAAEC,oBAAS,CAAC;oCACxBH,gBAAK,CAAC;wCACF,UAAU,EAAE,uBAAuB;wCACnC,MAAM,EAAM,IAAI;qCACnB,CAAC;oCACFA,gBAAK,CAAC;wCACF,UAAU,EAAE,aAAa;wCACzB,MAAM,EAAM,GAAG;qCAClB,CAAC;oCACFA,gBAAK,CAAC;wCACF,UAAU,EAAE,uBAAuB;wCACnC,MAAM,EAAM,IAAI;qCACnB,CAAC;oCACFA,gBAAK,CAAC;wCACF,UAAU,EAAE,aAAa;wCACzB,MAAM,EAAM,CAAC;qCAChB,CAAC;iCACL,CAAC,CAAC;6BACN,CAAC;yBACL,CAAC;qBACL;oBACD,IAAI,EAAiB;wBACjB,4BAA4B,EAAE,MAAM;qBACvC;oBACD,eAAe,EAAMI,4BAAuB,CAAC,MAAM;oBACnD,mBAAmB,EAAE,KAAK;;iBAC7B;;;6CAWuBT,WAAM,SAACU,yBAAW;gBAjETC,sBAAiB;;;wBA2D7CC,UAAK;yBAGLA,UAAK;;;IC3DV;QAOI,6BAAmB,KAAmB;YALrB,UAAK,GAAS,IAAI,IAAI,EAAE,CAAC;YAClC,UAAK,GAAY,KAAK,CAAC;YAEf,qBAAgB,GAA0B,IAAIC,iBAAY,EAAW,CAAC;YAGlF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB;QAED,sBAAW,wCAAO;iBAAlB;gBACI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;aAC9B;;;WAAA;QAED,sBAAW,qCAAI;iBAAf;gBACI,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;aAChC;;;WAAA;QAED,sBAAW,2CAAU;iBAArB;gBACI,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;aAC7B;;;WAAA;QAED,sBAAW,qCAAI;iBAAf;gBACI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;;;WAAA;QAED,sBAAW,qCAAI;iBAAf;gBACI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;;;WAAA;QAEM,sCAAQ,GAAR;YACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;aACpC;SACJ;kCACJ;KAAA;;QCZY,gBAAgB,GAA6BN,kBAAO,CAAC,YAAY,EAAEC,oBAAS,CAAC;QACtFH,gBAAK,CAAC;YACF,SAAS,EAAE,uCAAuC;YAClD,MAAM,EAAK,GAAG;SACjB,CAAC;QACFA,gBAAK,CAAC;YACF,SAAS,EAAE,uCAAuC;YAClD,MAAM,EAAK,GAAG;SACjB,CAAC;QACFA,gBAAK,CAAC;YACF,SAAS,EAAE,uCAAuC;YAClD,MAAM,EAAK,GAAG;SACjB,CAAC;QACFA,gBAAK,CAAC;YACF,SAAS,EAAE,sCAAsC;YACjD,MAAM,EAAK,GAAG;SACjB,CAAC;QACFA,gBAAK,CAAC;YACF,SAAS,EAAE,2CAA2C;YACtD,MAAM,EAAK,GAAG;SACjB,CAAC;QACFA,gBAAK,CAAC;YACF,SAAS,EAAE,sCAAsC;YACjD,MAAM,EAAK,GAAG;SACjB,CAAC;QACFA,gBAAK,CAAC;YACF,SAAS,EAAE,uCAAuC;YAClD,MAAM,EAAK,GAAG;SACjB,CAAC;QACFA,gBAAK,CAAC;YACF,SAAS,EAAE,uCAAuC;YAClD,MAAM,EAAK,GAAG;SACjB,CAAC;QACFA,gBAAK,CAAC;YACF,SAAS,EAAE,qCAAqC;YAChD,MAAM,EAAK,GAAG;SACjB,CAAC;KACL,CAAC,EAAE;;QAkCgC,kCAAa;QAa7C,wBAAoC,cAAqC,EACF,YAA0B,EAC7D,iBAAoC;YAFxE,YAGI,iBAAO,SACV;YAJmC,oBAAc,GAAd,cAAc,CAAuB;YACF,kBAAY,GAAZ,YAAY,CAAc;YAC7D,uBAAiB,GAAjB,iBAAiB,CAAmB;YAbjE,WAAK,GAAiC,IAAI,CAAC;YAIjC,aAAO,GAA0B,EAAE,CAAC;YAEpC,gBAAU,GAAqB,IAAIS,YAAO,EAAE,CAAC;;SAS7D;QAEM,iCAAQ,GAAR;YAAA,iBAmBN;;YAjBG,IAAI,CAAC,aAAa,EAAE,CAAC;;YAGrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;;YAGzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAChBC,gBAAM,CAAC,UAAC,MAAe,IAAK,OAAA,MAAM,GAAA,CAAC,EACnCC,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B,CAAC,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,mBAAmB,EAAE,GAAA,CAAC,CAAC;;YAG9C,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CACjCA,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B,CAAC,SAAS,CAAC,UAAC,IAAa,IAAK,OAAA,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAA,CAAC,CAAC;aAC9D;SACJ;QAEO,4CAAmB,GAAnB;YAAA,iBAOP;YANG,IAAM,eAAe,GAAG,cAAM,OAAA,KAAI,CAAC,aAAc,CAAC,OAAO,CACrD,UAAC,OAA8B,IAAK,OAAA,OAAO,CAAC,OAAO,EAAE,GAAA,CAAC,GAAA,CAAC;YAC3D,eAAe,EAAE,CAAC;YAClB,IAAI,CAAC,aAAc,CAAC,OAAO,CAAC,IAAI,CAC5BA,mBAAS,CAACC,UAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CACpD,CAAC,SAAS,CAAC,cAAM,OAAA,eAAe,EAAE,GAAA,CAAC,CAAC;SACxC;QAEO,wCAAe,GAAf,UAAgB,IAAa;;YAEjC,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;iBAAM;gBACH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;iBACtB;aACJ;YACD,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;SACzC;QAEO,0CAAiB,GAAjB;YAAA,iBAeP;YAdG,IAAI,KAAK,GAAqB,IAAI,CAAC,SAAS,CAAC;;YAE7C,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,KAAK,GAAGA,UAAK,CACT,KAAK,EACL,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CACjCF,gBAAM,CAAC,UAAC,IAAa,IAAK,OAAA,CAAC,IAAI,GAAA,CAAC,EAChCG,aAAG,CAAC,cAAM,OAAA,SAAS,GAAA,CAAC,CACvB,CACJ,CAAC;aACL;YACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAChCF,mBAAS,CAAC,KAAK,CAAC,CACnB,CAAC,SAAS,CAAC,UAAC,KAAmB,IAAK,OAAA,KAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,GAAA,CAAC,CAAC;SAC1E;QAEO,sCAAa,GAAb,UAAc,KAAmB,EAAE,KAA0B;YAA7D,iBAcP;YAbG,IAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;;YAG3D,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CACrCA,mBAAS,CAAC,KAAK,CAAC,CACnB,CAAC,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,GAAA,CAAC,CAAC;YAE1D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE;gBAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;aACtB;YAED,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;SACzC;QAED,sBAAW,iCAAK;iBAAhB;gBACI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,KAA0B,IAAK,OAAA,CAAC,KAAK,CAAC,IAAI,GAAA,CAAC,EAAE;oBAC/D,OAAO,MAAM,CAAC;iBACjB;gBACD,OAAO,IAAI,CAAC;aACf;;;WAAA;QAEM,mCAAU,GAAV;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B;QAEM,mCAAU,GAAV;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B;QAED,sBAAW,kCAAM;iBAAjB;gBACI,OAAO,IAAI,CAAC,OAAO,CAAC;aACvB;;;WAAA;;QAGM,sCAAa,GAAb,UAAc,KAAqB;YACtC,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE;;gBAE9B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;;gBAGtB,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;aACzC;SACJ;QAEO,sCAAa,GAAb;YAAA,iBAgBP;YAfGG,UAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI;;YAEjBJ,gBAAM,CAAC,cAAM,OAAA,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,KAA0B,IAAK,OAAA,CAAC,KAAK,CAAC,IAAI,GAAA,CAAC,GAAA,CAAC,EAC3EC,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B,CAAC,SAAS,CAAC;gBACR,QAAQ,KAAI,CAAC,KAAK;oBACd,KAAK,IAAI;wBACL,KAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;wBACtB,MAAM;oBACV,KAAK,QAAQ;wBACT,KAAI,CAAC,KAAK,GAAG,UAAU,CAAC;wBACxB,MAAM;iBACb;gBACD,KAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;aACzC,CAAC,CAAC;SACN;;KA5IL,CAAoCI,yBAAa;;gBAhChDlB,cAAS,SAAC;oBACP,QAAQ,EAAa,iBAAiB;oBACtC,k4BAAgD;oBAKhD,UAAU,EAAW;wBACjBC,kBAAO,CAAC,aAAa,EAAE;4BACnBC,gBAAK,CAAC,UAAU,EAAEC,gBAAK,CAAC,EAAC,SAAS,EAAE,wBAAwB,EAAC,CAAC,CAAC;4BAC/DD,gBAAK,CAAC,QAAQ,EAAEC,gBAAK,CAAC,EAAC,SAAS,EAAE,wBAAwB,EAAC,CAAC,CAAC;4BAC7DD,gBAAK,CAAC,UAAU,EAAEC,gBAAK,CAAC,EAAC,SAAS,EAAE,wBAAwB,EAAC,CAAC,CAAC;4BAC/DC,qBAAU,CAAC,gBAAgB,EAAE;gCACzBD,gBAAK,CAAC,EAAC,SAAS,EAAE,kCAAkC,EAAC,CAAC;gCACtD,gBAAgB;6BACnB,CAAC;4BACFC,qBAAU,CAAC,kBAAkB,EAAE;gCAC3BD,gBAAK,CAAC,EAAC,SAAS,EAAE,kCAAkC,EAAC,CAAC;gCACtD,gBAAgB;6BACnB,CAAC;4BACFC,qBAAU,CAAC,oBAAoB,EAAE;gCAC7BD,gBAAK,CAAC,EAAC,SAAS,EAAE,kCAAkC,EAAC,CAAC;gCACtD,gBAAgB;6BACnB,CAAC;yBACL,CAAC;qBACL;oBACD,IAAI,EAAiB;wBACjB,yBAAyB,EAAE,MAAM;qBACpC;oBACD,eAAe,EAAMI,4BAAuB,CAAC,MAAM;oBACnD,mBAAmB,EAAE,KAAK;;iBAC7B;;;gBA1EO,qBAAqB;gDAyFLV,aAAQ,YAAIC,WAAM,SAACC,2BAAa;gBAvGpDU,sBAAiB;;;qCA6FhBC,UAAK;gCAMLS,iBAAY,SAAC,qBAAqB;;;;QCpFvC;;;;;gBApBCC,aAAQ,SAAC;oBACN,OAAO,EAAO;wBACVC,qBAAY;wBACZC,4BAAgB;qBACnB;oBACD,OAAO,EAAO;wBACV,cAAc;qBACjB;oBACD,YAAY,EAAE;wBACV,cAAc;wBACd,qBAAqB;qBACxB;oBACD,SAAS,EAAK;wBACV,qBAAqB;wBACrB;4BACI,OAAO,EAAM3B,iBAAY;4BACzB,WAAW,EAAE,qBAAqB;yBACrC;qBACJ;iBACJ;;;ICtBD;;;;;aAKgB,aAAa,CAAI,cAAqC,EAAE,SAAY;QAChF,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CACzC4B,oBAAU,CAAC,UAAC,GAAG,IAAK,OAAA,cAAc,CAAC,iBAAiB,CAAI,GAAG,CAAC,GAAA,CAAC,EAC7DC,wBAAc,CAAC,SAAS,CAAC,CAC5B,GAAA,CAAC;IACN;;ICdA;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"ErrorTypes":{"__symbolic":"interface"},"toErrorMessage":{"__symbolic":"function"},"ErrorCollectorService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":27,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":26,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":31,"character":24}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":31,"character":36},"arguments":[{"__symbolic":"reference","module":"@dbg-riskit/angular-common","name":"AUTH_PROVIDER","line":31,"character":43}]}]],"parameters":[{"__symbolic":"reference","module":"@dbg-riskit/common","name":"AuthProvider","line":31,"character":72}]}],"error":[{"__symbolic":"method"}],"handleError":[{"__symbolic":"method"}],"handleStreamError":[{"__symbolic":"method"}]}},"ErrorModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":8},{"__symbolic":"reference","module":"@dbg-riskit/angular-view","name":"CommonViewModule","line":10,"character":8}],"exports":[{"__symbolic":"reference","name":"ɵb"}],"declarations":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"providers":[{"__symbolic":"reference","name":"ErrorCollectorService"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":22,"character":25},"useExisting":{"__symbolic":"reference","name":"ErrorCollectorService"}}]}]}],"members":{}},"collectErrors":{"__symbolic":"function","parameters":["errorCollector","otherwise"],"value":{"__symbolic":"error","message":"Lambda not supported","line":10,"character":11,"module":"./lib/rxjs.utils"}},"ɵa":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":30,"character":58},"arguments":["1s ease-in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"keyframes","line":30,"character":80},"arguments":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":31,"character":4},"arguments":[{"transform":"scale(0.8) translateX(-1px) rotate(0)","offset":0.1}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":35,"character":4},"arguments":[{"transform":"scale(1) translateX(2px) rotate(4deg)","offset":0.2}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":39,"character":4},"arguments":[{"transform":"scale(1.2) translateX(-4px) rotate(0)","offset":0.3}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":43,"character":4},"arguments":[{"transform":"scale(1.5) translateX(4px) rotate(0)","offset":0.4}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":47,"character":4},"arguments":[{"transform":"scale(1.5) translateX(-4px) rotate(-8deg)","offset":0.5}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":51,"character":4},"arguments":[{"transform":"scale(1.5) translateX(4px) rotate(0)","offset":0.6}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":55,"character":4},"arguments":[{"transform":"scale(1.2) translateX(-4px) rotate(0)","offset":0.7}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":59,"character":4},"arguments":[{"transform":"scale(1) translateX(2px) rotate(4deg)","offset":0.8}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":63,"character":4},"arguments":[{"transform":"scale(1) translateX(-1px) rotate(0)","offset":0.9}]}]]}]},"ɵb":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@dbg-riskit/angular-view","name":"BaseComponent","line":101,"character":36},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":69,"character":1},"arguments":[{"selector":"risk-error-menu","animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":77,"character":8},"arguments":["buttonState",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":78,"character":12},"arguments":["inactive",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":78,"character":30},"arguments":[{"transform":"translateX(0) scale(0)"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":79,"character":12},"arguments":["active",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":79,"character":28},"arguments":[{"transform":"translateX(0) scale(1)"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":80,"character":12},"arguments":["newError",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":80,"character":30},"arguments":[{"transform":"translateX(0) scale(1)"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":81,"character":12},"arguments":["void => active",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":82,"character":16},"arguments":[{"transform":"scale(0) translateX(0) rotate(0)"}]},{"__symbolic":"reference","name":"ɵa"}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":85,"character":12},"arguments":["void => newError",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":86,"character":16},"arguments":[{"transform":"scale(0) translateX(0) rotate(0)"}]},{"__symbolic":"reference","name":"ɵa"}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":89,"character":12},"arguments":["active => newError",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":90,"character":16},"arguments":[{"transform":"scale(1) translateX(0) rotate(0)"}]},{"__symbolic":"reference","name":"ɵa"}]]}]]}],"host":{"[class.risk-error-menu]":"true","$quoted$":["[class.risk-error-menu]"]},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":98,"character":25},"member":"OnPush"},"preserveWhitespaces":false,"template":"<button *ngIf=\"state != null\"\n mat-icon-button\n [color]=\"color\"\n type=\"button\"\n [@buttonState]=\"state\"\n (@buttonState.done)=\"animationDone($event)\"\n [matMenuTriggerFor]=\"errorMenu\"\n #errorMenuTrigger=\"matMenuTrigger\"\n (menuOpened)=\"menuOpened()\"\n (menuClosed)=\"menuClosed()\"\n [class.risk-menu-open]=\"errorMenuTrigger.menuOpen\">\n <mat-icon>error_outline</mat-icon>\n</button>\n\n<mat-menu #errorMenu=\"matMenu\"\n class=\"risk-error-menu-mat-menu\"\n [overlapTrigger]=\"false\">\n <risk-error-message *ngFor=\"let error of errors; last as isLast\"\n [error]=\"error\"\n (click)=\"keepVisibleOnClick ? $event.stopPropagation() : null\"\n [isLast]=\"isLast\"></risk-error-message>\n</mat-menu>\n","styles":[":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n","::ng-deep .risk-error-menu-mat-menu{max-width:600px!important}\n"]}]}],"members":{"keepVisibleOnClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":5}}]}],"errorMessages":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":111,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵc"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":115,"character":24}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":115,"character":36},"arguments":[{"__symbolic":"reference","module":"@dbg-riskit/angular-common","name":"AUTH_PROVIDER","line":115,"character":43}]}],null],"parameters":[{"__symbolic":"reference","name":"ErrorCollectorService"},{"__symbolic":"reference","module":"@dbg-riskit/common","name":"AuthProvider","line":115,"character":89},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":116,"character":59}]}],"ngOnInit":[{"__symbolic":"method"}],"animateOnMenuOpened":[{"__symbolic":"method"}],"loggedInChanged":[{"__symbolic":"method"}],"subscribeToErrors":[{"__symbolic":"method"}],"errorReceived":[{"__symbolic":"method"}],"menuOpened":[{"__symbolic":"method"}],"menuClosed":[{"__symbolic":"method"}],"animationDone":[{"__symbolic":"method"}],"initAnimation":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"risk-error-message","animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":13,"character":8},"arguments":["readState",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":14,"character":12},"arguments":["read",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":14,"character":26},"arguments":[{"background":"transparent"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":15,"character":12},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":16,"character":16},"arguments":[{"height":0,"transform":"scale(0)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":20,"character":16},"arguments":["200ms ease-in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":20,"character":41},"arguments":[{"height":"*","transform":"scale(1)"}]}]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":25,"character":12},"arguments":["* => read",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":26,"character":16},"arguments":[{"background":"transparent"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":29,"character":16},"arguments":["1500ms",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"keyframes","line":29,"character":34},"arguments":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":30,"character":20},"arguments":[{"background":"rgba(204, 51, 51, .5)","offset":0.25}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":34,"character":20},"arguments":[{"background":"transparent","offset":0.5}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":38,"character":20},"arguments":[{"background":"rgba(204, 51, 51, .5)","offset":0.75}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":42,"character":20},"arguments":[{"background":"transparent","offset":1}]}]]}]}]]}]]}],"host":{"[class.risk-error-message]":"true","$quoted$":["[class.risk-error-message]"]},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":53,"character":25},"member":"OnPush"},"preserveWhitespaces":false,"template":"<mat-card [class.risk-error-message-last]=\"isLast\" [@readState]=\"readState\" (@readState.done)=\"markRead($event)\">\n <mat-card-header>\n <mat-icon color=\"warn\" mat-card-avatar>error_outline</mat-icon>\n <mat-card-title *ngIf=\"error?.type.isNetworkError()\">Network error</mat-card-title>\n <mat-card-title *ngIf=\"error?.type.isRequestError()\">API error</mat-card-title>\n <mat-card-title *ngIf=\"error?.type.isAuthError()\">Authorization error</mat-card-title>\n <mat-card-title\n *ngIf=\"!error?.type.isNetworkError() && !error?.type.isRequestError() && !error?.type.isAuthError()\">\n General error\n </mat-card-title>\n <mat-card-subtitle>{{error?.date | date:dateFormat}}</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <p *ngIf=\"error?.statusCode\" class=\"risk-error-message-code\">Error code: {{error?.statusCode}}</p>\n <p>\n {{error?.message}}\n </p>\n </mat-card-content>\n</mat-card>\n","styles":[":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n",":host .mat-card{margin:0 10px 7px}:host .mat-card.risk-error-message-last{margin-bottom:0}:host .mat-card .mat-card-subtitle{margin-bottom:5px}:host .mat-card p{margin:0}:host .mat-card p.risk-error-message-code{position:absolute;bottom:10px;right:10px}:host .mat-card p.risk-error-message-code+p:last-child{margin-bottom:3px}\n"]}]}],"members":{"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":5}}]}],"isLast":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":66,"character":24},"arguments":[{"__symbolic":"reference","module":"@dbg-riskit/angular-common","name":"DATE_FORMAT","line":66,"character":31}]}],null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":67,"character":59}]}],"animate":[{"__symbolic":"method"}],"markRead":[{"__symbolic":"method"}]}}},"origins":{"ErrorTypes":"./lib/error.collector","toErrorMessage":"./lib/error.collector","ErrorCollectorService":"./lib/error.collector","ErrorModule":"./lib/error.module","collectErrors":"./lib/rxjs.utils","ɵa":"./lib/error.menu.component","ɵb":"./lib/error.menu.component","ɵc":"./lib/error.message.component"},"importAs":"@dbg-riskit/angular-error"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
export { ErrorComponent as ɵb, JIGGLE_ANIMATION as ɵa } from './lib/error.menu.component';
|
|
6
|
-
export { ErrorMessageComponent as ɵc } from './lib/error.message.component';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJnLXJpc2tpdC1hbmd1bGFyLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1lcnJvci9zcmMvZGJnLXJpc2tpdC1hbmd1bGFyLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdkYsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0Vycm9yQ29tcG9uZW50IGFzIMm1YixKSUdHTEVfQU5JTUFUSU9OIGFzIMm1YX0gZnJvbSAnLi9saWIvZXJyb3IubWVudS5jb21wb25lbnQnO1xuZXhwb3J0IHtFcnJvck1lc3NhZ2VDb21wb25lbnQgYXMgybVjfSBmcm9tICcuL2xpYi9lcnJvci5tZXNzYWdlLmNvbXBvbmVudCc7Il19
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { ErrorHandler, Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
-
import { AUTH_PROVIDER } from '@dbg-riskit/angular-common';
|
|
3
|
-
import { ErrorType, toString } from '@dbg-riskit/common';
|
|
4
|
-
import { EMPTY, ReplaySubject } from 'rxjs';
|
|
5
|
-
export function toErrorMessage(err) {
|
|
6
|
-
let errorMessage;
|
|
7
|
-
if ('errorType' in err) {
|
|
8
|
-
errorMessage = err;
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
if ('message' in err) {
|
|
12
|
-
err = err.message || toString(err);
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
err = toString(err);
|
|
16
|
-
}
|
|
17
|
-
errorMessage = {
|
|
18
|
-
message: err,
|
|
19
|
-
status: 0,
|
|
20
|
-
errorType: ErrorType.ERROR
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
return errorMessage;
|
|
24
|
-
}
|
|
25
|
-
export class ErrorCollectorService extends ErrorHandler {
|
|
26
|
-
constructor(authProvider) {
|
|
27
|
-
super();
|
|
28
|
-
this._errorObservable = new ReplaySubject(10);
|
|
29
|
-
if (authProvider) {
|
|
30
|
-
authProvider.loggedInStream.subscribe((auth) => {
|
|
31
|
-
this._errorObservable = new ReplaySubject(10);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
error(err) {
|
|
36
|
-
this._errorObservable.next(err);
|
|
37
|
-
}
|
|
38
|
-
get errorStream() {
|
|
39
|
-
return this._errorObservable.asObservable();
|
|
40
|
-
}
|
|
41
|
-
handleError(err) {
|
|
42
|
-
try {
|
|
43
|
-
super.handleError(err);
|
|
44
|
-
}
|
|
45
|
-
finally {
|
|
46
|
-
this.error(toErrorMessage(err));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
handleStreamError(err) {
|
|
50
|
-
this.handleError(err);
|
|
51
|
-
return EMPTY;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
ErrorCollectorService.decorators = [
|
|
55
|
-
{ type: Injectable }
|
|
56
|
-
];
|
|
57
|
-
ErrorCollectorService.ctorParameters = () => [
|
|
58
|
-
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [AUTH_PROVIDER,] }] }
|
|
59
|
-
];
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuY29sbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1lcnJvci9zcmMvbGliL2Vycm9yLmNvbGxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQTZCLFNBQVMsRUFBRSxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRixPQUFPLEVBQUMsS0FBSyxFQUFjLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUl0RCxNQUFNLFVBQVUsY0FBYyxDQUFDLEdBQWU7SUFDMUMsSUFBSSxZQUEwQixDQUFDO0lBQy9CLElBQUksV0FBVyxJQUFLLEdBQW9CLEVBQUU7UUFDdEMsWUFBWSxHQUFHLEdBQW1CLENBQUM7S0FDdEM7U0FBTTtRQUNILElBQUksU0FBUyxJQUFLLEdBQWEsRUFBRTtZQUM3QixHQUFHLEdBQUksR0FBYSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDakQ7YUFBTTtZQUNILEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkI7UUFDRCxZQUFZLEdBQUc7WUFDWCxPQUFPLEVBQUksR0FBRztZQUNkLE1BQU0sRUFBSyxDQUFDO1lBQ1osU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1NBQzdCLENBQUM7S0FDTDtJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3hCLENBQUM7QUFHRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQUluRCxZQUFzRCxZQUEwQjtRQUM1RSxLQUFLLEVBQUUsQ0FBQztRQUhKLHFCQUFnQixHQUFnQyxJQUFJLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUkxRSxJQUFJLFlBQVksRUFBRTtZQUNkLFlBQVksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBYSxFQUFFLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFpQjtRQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxHQUFlO1FBQzlCLElBQUk7WUFDQSxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO2dCQUFTO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNuQztJQUNMLENBQUM7SUFFTSxpQkFBaUIsQ0FBSSxHQUFlO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs7O1lBakNKLFVBQVU7Ozs0Q0FLYSxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Vycm9ySGFuZGxlciwgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FVVEhfUFJPVklERVJ9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7QXV0aFByb3ZpZGVyLCBFcnJvck1lc3NhZ2UsIEVycm9yVHlwZSwgdG9TdHJpbmd9IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQge0VNUFRZLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgRXJyb3JUeXBlcyA9IEVycm9yTWVzc2FnZSB8IEVycm9yIHwgb2JqZWN0IHwgc3RyaW5nO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9FcnJvck1lc3NhZ2UoZXJyOiBFcnJvclR5cGVzKTogRXJyb3JNZXNzYWdlIHtcbiAgICBsZXQgZXJyb3JNZXNzYWdlOiBFcnJvck1lc3NhZ2U7XG4gICAgaWYgKCdlcnJvclR5cGUnIGluIChlcnIgYXMgRXJyb3JNZXNzYWdlKSkge1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnIgYXMgRXJyb3JNZXNzYWdlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICgnbWVzc2FnZScgaW4gKGVyciBhcyBFcnJvcikpIHtcbiAgICAgICAgICAgIGVyciA9IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfHwgdG9TdHJpbmcoZXJyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVyciA9IHRvU3RyaW5nKGVycik7XG4gICAgICAgIH1cbiAgICAgICAgZXJyb3JNZXNzYWdlID0ge1xuICAgICAgICAgICAgbWVzc2FnZSAgOiBlcnIsXG4gICAgICAgICAgICBzdGF0dXMgICA6IDAsXG4gICAgICAgICAgICBlcnJvclR5cGU6IEVycm9yVHlwZS5FUlJPUlxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3JNZXNzYWdlO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXJyb3JDb2xsZWN0b3JTZXJ2aWNlIGV4dGVuZHMgRXJyb3JIYW5kbGVyIHtcblxuICAgIHByaXZhdGUgX2Vycm9yT2JzZXJ2YWJsZTogUmVwbGF5U3ViamVjdDxFcnJvck1lc3NhZ2U+ID0gbmV3IFJlcGxheVN1YmplY3QoMTApO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoQVVUSF9QUk9WSURFUikgYXV0aFByb3ZpZGVyOiBBdXRoUHJvdmlkZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaWYgKGF1dGhQcm92aWRlcikge1xuICAgICAgICAgICAgYXV0aFByb3ZpZGVyLmxvZ2dlZEluU3RyZWFtLnN1YnNjcmliZSgoYXV0aDogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Vycm9yT2JzZXJ2YWJsZSA9IG5ldyBSZXBsYXlTdWJqZWN0KDEwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGVycm9yKGVycjogRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuX2Vycm9yT2JzZXJ2YWJsZS5uZXh0KGVycik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlcnJvclN0cmVhbSgpOiBPYnNlcnZhYmxlPEVycm9yTWVzc2FnZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXJyb3JPYnNlcnZhYmxlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVFcnJvcihlcnI6IEVycm9yVHlwZXMpOiB2b2lkIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN1cGVyLmhhbmRsZUVycm9yKGVycik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yKHRvRXJyb3JNZXNzYWdlKGVycikpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZVN0cmVhbUVycm9yPFQ+KGVycjogRXJyb3JUeXBlcyk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycik7XG4gICAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { animate, keyframes, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Optional, ViewChildren, Input } from '@angular/core';
|
|
3
|
-
import { AUTH_PROVIDER } from '@dbg-riskit/angular-common';
|
|
4
|
-
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
5
|
-
import { merge, Subject, timer } from 'rxjs';
|
|
6
|
-
import { filter, map, takeUntil } from 'rxjs/operators';
|
|
7
|
-
import { ErrorCollectorService } from './error.collector';
|
|
8
|
-
import { ErrorMessageComponent } from './error.message.component';
|
|
9
|
-
import { ErrorMessageWrapper } from './error.message.wrapper';
|
|
10
|
-
export const JIGGLE_ANIMATION = animate('1s ease-in', keyframes([
|
|
11
|
-
style({
|
|
12
|
-
transform: 'scale(0.8) translateX(-1px) rotate(0)',
|
|
13
|
-
offset: 0.1
|
|
14
|
-
}),
|
|
15
|
-
style({
|
|
16
|
-
transform: 'scale(1) translateX(2px) rotate(4deg)',
|
|
17
|
-
offset: 0.2
|
|
18
|
-
}),
|
|
19
|
-
style({
|
|
20
|
-
transform: 'scale(1.2) translateX(-4px) rotate(0)',
|
|
21
|
-
offset: 0.3
|
|
22
|
-
}),
|
|
23
|
-
style({
|
|
24
|
-
transform: 'scale(1.5) translateX(4px) rotate(0)',
|
|
25
|
-
offset: 0.4
|
|
26
|
-
}),
|
|
27
|
-
style({
|
|
28
|
-
transform: 'scale(1.5) translateX(-4px) rotate(-8deg)',
|
|
29
|
-
offset: 0.5
|
|
30
|
-
}),
|
|
31
|
-
style({
|
|
32
|
-
transform: 'scale(1.5) translateX(4px) rotate(0)',
|
|
33
|
-
offset: 0.6
|
|
34
|
-
}),
|
|
35
|
-
style({
|
|
36
|
-
transform: 'scale(1.2) translateX(-4px) rotate(0)',
|
|
37
|
-
offset: 0.7
|
|
38
|
-
}),
|
|
39
|
-
style({
|
|
40
|
-
transform: 'scale(1) translateX(2px) rotate(4deg)',
|
|
41
|
-
offset: 0.8
|
|
42
|
-
}),
|
|
43
|
-
style({
|
|
44
|
-
transform: 'scale(1) translateX(-1px) rotate(0)',
|
|
45
|
-
offset: 0.9
|
|
46
|
-
})
|
|
47
|
-
]));
|
|
48
|
-
export class ErrorComponent extends BaseComponent {
|
|
49
|
-
constructor(errorCollector, authProvider, changeDetectorRef) {
|
|
50
|
-
super();
|
|
51
|
-
this.errorCollector = errorCollector;
|
|
52
|
-
this.authProvider = authProvider;
|
|
53
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
54
|
-
this.state = null;
|
|
55
|
-
this._errors = [];
|
|
56
|
-
this._menuState = new Subject();
|
|
57
|
-
}
|
|
58
|
-
ngOnInit() {
|
|
59
|
-
// Init Jiggle animation loop
|
|
60
|
-
this.initAnimation();
|
|
61
|
-
// Subscribe to error stream
|
|
62
|
-
this.subscribeToErrors();
|
|
63
|
-
// Once opened animate messages and set as read after animation
|
|
64
|
-
this._menuState.pipe(filter((opened) => opened), takeUntil(this.destroyed)).subscribe(() => this.animateOnMenuOpened());
|
|
65
|
-
// Refresh on "logged-in" state changes
|
|
66
|
-
if (this.authProvider) {
|
|
67
|
-
this.authProvider.loggedInStream.pipe(takeUntil(this.destroyed)).subscribe((auth) => this.loggedInChanged(auth));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
animateOnMenuOpened() {
|
|
71
|
-
const animateMessages = () => this.errorMessages.forEach((message) => message.animate());
|
|
72
|
-
animateMessages();
|
|
73
|
-
this.errorMessages.changes.pipe(takeUntil(merge(this.destroyed, this._menuState))).subscribe(() => animateMessages());
|
|
74
|
-
}
|
|
75
|
-
loggedInChanged(auth) {
|
|
76
|
-
// Subscribe to errors once logged in again
|
|
77
|
-
if (auth) {
|
|
78
|
-
this.subscribeToErrors();
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
while (this._errors.length > 0) {
|
|
82
|
-
this._errors.pop();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
this.changeDetectorRef.markForCheck();
|
|
86
|
-
}
|
|
87
|
-
subscribeToErrors() {
|
|
88
|
-
let until = this.destroyed;
|
|
89
|
-
// Stop receiving errors once user was logged out
|
|
90
|
-
if (this.authProvider) {
|
|
91
|
-
until = merge(until, this.authProvider.loggedInStream.pipe(filter((auth) => !auth), map(() => undefined)));
|
|
92
|
-
}
|
|
93
|
-
this.errorCollector.errorStream.pipe(takeUntil(until)).subscribe((error) => this.errorReceived(error, until));
|
|
94
|
-
}
|
|
95
|
-
errorReceived(error, until) {
|
|
96
|
-
const errorMessageWrapper = new ErrorMessageWrapper(error);
|
|
97
|
-
// Subscribe for state changes
|
|
98
|
-
errorMessageWrapper.readStateChanged.pipe(takeUntil(until)).subscribe(() => this.changeDetectorRef.detectChanges());
|
|
99
|
-
this._errors.unshift(errorMessageWrapper);
|
|
100
|
-
while (this._errors.length > 10) {
|
|
101
|
-
this._errors.pop();
|
|
102
|
-
}
|
|
103
|
-
this.changeDetectorRef.markForCheck();
|
|
104
|
-
}
|
|
105
|
-
get color() {
|
|
106
|
-
if (this.errors.some((error) => !error.read)) {
|
|
107
|
-
return 'warn';
|
|
108
|
-
}
|
|
109
|
-
return null;
|
|
110
|
-
}
|
|
111
|
-
menuOpened() {
|
|
112
|
-
this._menuState.next(true);
|
|
113
|
-
}
|
|
114
|
-
menuClosed() {
|
|
115
|
-
this._menuState.next(false);
|
|
116
|
-
}
|
|
117
|
-
get errors() {
|
|
118
|
-
return this._errors;
|
|
119
|
-
}
|
|
120
|
-
// <editor-fold desc="Animation control" defaultstate="collapsed">
|
|
121
|
-
animationDone(event) {
|
|
122
|
-
if (event.toState === 'newError') {
|
|
123
|
-
// Reset after annimation
|
|
124
|
-
this.state = 'active';
|
|
125
|
-
// Called from animation controller we need to re-check
|
|
126
|
-
this.changeDetectorRef.markForCheck();
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
initAnimation() {
|
|
130
|
-
timer(100, 2000).pipe(
|
|
131
|
-
// Run animation everytime we have non-read errors
|
|
132
|
-
filter(() => this.errors.some((error) => !error.read)), takeUntil(this.destroyed)).subscribe(() => {
|
|
133
|
-
switch (this.state) {
|
|
134
|
-
case null:
|
|
135
|
-
this.state = 'active';
|
|
136
|
-
break;
|
|
137
|
-
case 'active':
|
|
138
|
-
this.state = 'newError';
|
|
139
|
-
break;
|
|
140
|
-
}
|
|
141
|
-
this.changeDetectorRef.markForCheck();
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
ErrorComponent.decorators = [
|
|
146
|
-
{ type: Component, args: [{
|
|
147
|
-
selector: 'risk-error-menu',
|
|
148
|
-
template: "<button *ngIf=\"state != null\"\n mat-icon-button\n [color]=\"color\"\n type=\"button\"\n [@buttonState]=\"state\"\n (@buttonState.done)=\"animationDone($event)\"\n [matMenuTriggerFor]=\"errorMenu\"\n #errorMenuTrigger=\"matMenuTrigger\"\n (menuOpened)=\"menuOpened()\"\n (menuClosed)=\"menuClosed()\"\n [class.risk-menu-open]=\"errorMenuTrigger.menuOpen\">\n <mat-icon>error_outline</mat-icon>\n</button>\n\n<mat-menu #errorMenu=\"matMenu\"\n class=\"risk-error-menu-mat-menu\"\n [overlapTrigger]=\"false\">\n <risk-error-message *ngFor=\"let error of errors; last as isLast\"\n [error]=\"error\"\n (click)=\"keepVisibleOnClick ? $event.stopPropagation() : null\"\n [isLast]=\"isLast\"></risk-error-message>\n</mat-menu>\n",
|
|
149
|
-
animations: [
|
|
150
|
-
trigger('buttonState', [
|
|
151
|
-
state('inactive', style({ transform: 'translateX(0) scale(0)' })),
|
|
152
|
-
state('active', style({ transform: 'translateX(0) scale(1)' })),
|
|
153
|
-
state('newError', style({ transform: 'translateX(0) scale(1)' })),
|
|
154
|
-
transition('void => active', [
|
|
155
|
-
style({ transform: 'scale(0) translateX(0) rotate(0)' }),
|
|
156
|
-
JIGGLE_ANIMATION
|
|
157
|
-
]),
|
|
158
|
-
transition('void => newError', [
|
|
159
|
-
style({ transform: 'scale(0) translateX(0) rotate(0)' }),
|
|
160
|
-
JIGGLE_ANIMATION
|
|
161
|
-
]),
|
|
162
|
-
transition('active => newError', [
|
|
163
|
-
style({ transform: 'scale(1) translateX(0) rotate(0)' }),
|
|
164
|
-
JIGGLE_ANIMATION
|
|
165
|
-
])
|
|
166
|
-
])
|
|
167
|
-
],
|
|
168
|
-
host: {
|
|
169
|
-
'[class.risk-error-menu]': 'true'
|
|
170
|
-
},
|
|
171
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
172
|
-
preserveWhitespaces: false,
|
|
173
|
-
styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", "::ng-deep .risk-error-menu-mat-menu{max-width:600px!important}\n"]
|
|
174
|
-
},] }
|
|
175
|
-
];
|
|
176
|
-
ErrorComponent.ctorParameters = () => [
|
|
177
|
-
{ type: ErrorCollectorService },
|
|
178
|
-
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [AUTH_PROVIDER,] }] },
|
|
179
|
-
{ type: ChangeDetectorRef }
|
|
180
|
-
];
|
|
181
|
-
ErrorComponent.propDecorators = {
|
|
182
|
-
keepVisibleOnClick: [{ type: Input }],
|
|
183
|
-
errorMessages: [{ type: ViewChildren, args: [ErrorMessageComponent,] }]
|
|
184
|
-
};
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IubWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWVycm9yL3NyYy9saWIvZXJyb3IubWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILE9BQU8sRUFHUCxTQUFTLEVBQ1QsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNWLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFFTixRQUFRLEVBRVIsWUFBWSxFQUNaLEtBQUssRUFDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsS0FBSyxFQUFjLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFNUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQTZCLE9BQU8sQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDO0lBQ3RGLEtBQUssQ0FBQztRQUNGLFNBQVMsRUFBRSx1Q0FBdUM7UUFDbEQsTUFBTSxFQUFLLEdBQUc7S0FDakIsQ0FBQztJQUNGLEtBQUssQ0FBQztRQUNGLFNBQVMsRUFBRSx1Q0FBdUM7UUFDbEQsTUFB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LENBQUM7cUJBQ0wsQ0FBQztpQkFDTDtnQkFDRCxJQUFJLEVBQWlCO29CQUNqQix5QkFBeUIsRUFBRSxNQUFNO2lCQUNwQztnQkFDRCxlQUFlLEVBQU0sdUJBQXVCLENBQUMsTUFBTTtnQkFDbkQsbUJBQW1CLEVBQUUsS0FBSzs7YUFDN0I7OztZQTFFTyxxQkFBcUI7NENBeUZMLFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYTtZQXZHcEQsaUJBQWlCOzs7aUNBNkZoQixLQUFLOzRCQU1MLFlBQVksU0FBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGFuaW1hdGUsXG4gICAgQW5pbWF0aW9uQW5pbWF0ZU1ldGFkYXRhLFxuICAgIEFuaW1hdGlvbkV2ZW50LFxuICAgIGtleWZyYW1lcyxcbiAgICBzdGF0ZSxcbiAgICBzdHlsZSxcbiAgICB0cmFuc2l0aW9uLFxuICAgIHRyaWdnZXJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3QsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgSW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FVVEhfUFJPVklERVIsIE1hdENvbG9yVGhlbWV9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudH0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci12aWV3JztcbmltcG9ydCB7QXV0aFByb3ZpZGVyLCBFcnJvck1lc3NhZ2V9IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQge21lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RXJyb3JDb2xsZWN0b3JTZXJ2aWNlfSBmcm9tICcuL2Vycm9yLmNvbGxlY3Rvcic7XG5pbXBvcnQge0Vycm9yTWVzc2FnZUNvbXBvbmVudH0gZnJvbSAnLi9lcnJvci5tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQge0Vycm9yTWVzc2FnZVdyYXBwZXJ9IGZyb20gJy4vZXJyb3IubWVzc2FnZS53cmFwcGVyJztcblxuZXhwb3J0IGNvbnN0IEpJR0dMRV9BTklNQVRJT046IEFuaW1hdGlvbkFuaW1hdGVNZXRhZGF0YSA9IGFuaW1hdGUoJzFzIGVhc2UtaW4nLCBrZXlmcmFtZXMoW1xuICAgIHN0eWxlKHtcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoMC44KSB0cmFuc2xhdGVYKC0xcHgpIHJvdGF0ZSgwKScsXG4gICAgICAgIG9mZnNldCAgIDogMC4xXG4gICAgfSksXG4gICAgc3R5bGUoe1xuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgxKSB0cmFuc2xhdGVYKDJweCkgcm90YXRlKDRkZWcpJyxcbiAgICAgICAgb2Zmc2V0ICAgOiAwLjJcbiAgICB9KSxcbiAgICBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDEuMikgdHJhbnNsYXRlWCgtNHB4KSByb3RhdGUoMCknLFxuICAgICAgICBvZmZzZXQgICA6IDAuM1xuICAgIH0pLFxuICAgIHN0eWxlKHtcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoMS41KSB0cmFuc2xhdGVYKDRweCkgcm90YXRlKDApJyxcbiAgICAgICAgb2Zmc2V0ICAgOiAwLjRcbiAgICB9KSxcbiAgICBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDEuNSkgdHJhbnNsYXRlWCgtNHB4KSByb3RhdGUoLThkZWcpJyxcbiAgICAgICAgb2Zmc2V0ICAgOiAwLjVcbiAgICB9KSxcbiAgICBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDEuNSkgdHJhbnNsYXRlWCg0cHgpIHJvdGF0ZSgwKScsXG4gICAgICAgIG9mZnNldCAgIDogMC42XG4gICAgfSksXG4gICAgc3R5bGUoe1xuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgxLjIpIHRyYW5zbGF0ZVgoLTRweCkgcm90YXRlKDApJyxcbiAgICAgICAgb2Zmc2V0ICAgOiAwLjdcbiAgICB9KSxcbiAgICBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDEpIHRyYW5zbGF0ZVgoMnB4KSByb3RhdGUoNGRlZyknLFxuICAgICAgICBvZmZzZXQgICA6IDAuOFxuICAgIH0pLFxuICAgIHN0eWxlKHtcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoMSkgdHJhbnNsYXRlWCgtMXB4KSByb3RhdGUoMCknLFxuICAgICAgICBvZmZzZXQgICA6IDAuOVxuICAgIH0pXG5dKSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yICAgICAgICAgICA6ICdyaXNrLWVycm9yLW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsICAgICAgICA6ICdlcnJvci5tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHMgICAgICAgICAgOiBbXG4gICAgICAgICcuLi8uLi8uLi9jb21wb25lbnQuc2NzcycsXG4gICAgICAgICdlcnJvci5tZW51LmNvbXBvbmVudC5zY3NzJ1xuICAgIF0sXG4gICAgYW5pbWF0aW9ucyAgICAgICAgIDogW1xuICAgICAgICB0cmlnZ2VyKCdidXR0b25TdGF0ZScsIFtcbiAgICAgICAgICAgIHN0YXRlKCdpbmFjdGl2ZScsIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApIHNjYWxlKDApJ30pKSxcbiAgICAgICAgICAgIHN0YXRlKCdhY3RpdmUnLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKSBzY2FsZSgxKSd9KSksXG4gICAgICAgICAgICBzdGF0ZSgnbmV3RXJyb3InLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKSBzY2FsZSgxKSd9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IGFjdGl2ZScsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7dHJhbnNmb3JtOiAnc2NhbGUoMCkgdHJhbnNsYXRlWCgwKSByb3RhdGUoMCknfSksXG4gICAgICAgICAgICAgICAgSklHR0xFX0FOSU1BVElPTlxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IG5ld0Vycm9yJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHt0cmFuc2Zvcm06ICdzY2FsZSgwKSB0cmFuc2xhdGVYKDApIHJvdGF0ZSgwKSd9KSxcbiAgICAgICAgICAgICAgICBKSUdHTEVfQU5JTUFUSU9OXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2FjdGl2ZSA9PiBuZXdFcnJvcicsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7dHJhbnNmb3JtOiAnc2NhbGUoMSkgdHJhbnNsYXRlWCgwKSByb3RhdGUoMCknfSksXG4gICAgICAgICAgICAgICAgSklHR0xFX0FOSU1BVElPTlxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSlcbiAgICBdLFxuICAgIGhvc3QgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgJ1tjbGFzcy5yaXNrLWVycm9yLW1lbnVdJzogJ3RydWUnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb24gICAgOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIHB1YmxpYyBzdGF0ZTogJ2FjdGl2ZScgfCAnbmV3RXJyb3InIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMga2VlcFZpc2libGVPbkNsaWNrPzogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Vycm9yczogRXJyb3JNZXNzYWdlV3JhcHBlcltdID0gW107XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZW51U3RhdGU6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgQFZpZXdDaGlsZHJlbihFcnJvck1lc3NhZ2VDb21wb25lbnQpXG4gICAgcHVibGljIGVycm9yTWVzc2FnZXM/OiBRdWVyeUxpc3Q8RXJyb3JNZXNzYWdlQ29tcG9uZW50PjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVycm9yQ29sbGVjdG9yOiBFcnJvckNvbGxlY3RvclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVVUSF9QUk9WSURFUikgcHJpdmF0ZSByZWFkb25seSBhdXRoUHJvdmlkZXI6IEF1dGhQcm92aWRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEluaXQgSmlnZ2xlIGFuaW1hdGlvbiBsb29wXG4gICAgICAgIHRoaXMuaW5pdEFuaW1hdGlvbigpO1xuXG4gICAgICAgIC8vIFN1YnNjcmliZSB0byBlcnJvciBzdHJlYW1cbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0Vycm9ycygpO1xuXG4gICAgICAgIC8vIE9uY2Ugb3BlbmVkIGFuaW1hdGUgbWVzc2FnZXMgYW5kIHNldCBhcyByZWFkIGFmdGVyIGFuaW1hdGlvblxuICAgICAgICB0aGlzLl9tZW51U3RhdGUucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigob3BlbmVkOiBib29sZWFuKSA9PiBvcGVuZWQpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFuaW1hdGVPbk1lbnVPcGVuZWQoKSk7XG5cbiAgICAgICAgLy8gUmVmcmVzaCBvbiBcImxvZ2dlZC1pblwiIHN0YXRlIGNoYW5nZXNcbiAgICAgICAgaWYgKHRoaXMuYXV0aFByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhQcm92aWRlci5sb2dnZWRJblN0cmVhbS5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKChhdXRoOiBib29sZWFuKSA9PiB0aGlzLmxvZ2dlZEluQ2hhbmdlZChhdXRoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFuaW1hdGVPbk1lbnVPcGVuZWQoKSB7XG4gICAgICAgIGNvbnN0IGFuaW1hdGVNZXNzYWdlcyA9ICgpID0+IHRoaXMuZXJyb3JNZXNzYWdlcyEuZm9yRWFjaChcbiAgICAgICAgICAgIChtZXNzYWdlOiBFcnJvck1lc3NhZ2VDb21wb25lbnQpID0+IG1lc3NhZ2UuYW5pbWF0ZSgpKTtcbiAgICAgICAgYW5pbWF0ZU1lc3NhZ2VzKCk7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcyEuY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKG1lcmdlKHRoaXMuZGVzdHJveWVkLCB0aGlzLl9tZW51U3RhdGUpKVxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiBhbmltYXRlTWVzc2FnZXMoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2dnZWRJbkNoYW5nZWQoYXV0aDogYm9vbGVhbikge1xuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gZXJyb3JzIG9uY2UgbG9nZ2VkIGluIGFnYWluXG4gICAgICAgIGlmIChhdXRoKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmliZVRvRXJyb3JzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5fZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnJvcnMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvRXJyb3JzKCkge1xuICAgICAgICBsZXQgdW50aWw6IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLmRlc3Ryb3llZDtcbiAgICAgICAgLy8gU3RvcCByZWNlaXZpbmcgZXJyb3JzIG9uY2UgdXNlciB3YXMgbG9nZ2VkIG91dFxuICAgICAgICBpZiAodGhpcy5hdXRoUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHVudGlsID0gbWVyZ2UoXG4gICAgICAgICAgICAgICAgdW50aWwsXG4gICAgICAgICAgICAgICAgdGhpcy5hdXRoUHJvdmlkZXIubG9nZ2VkSW5TdHJlYW0ucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChhdXRoOiBib29sZWFuKSA9PiAhYXV0aCksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVycm9yQ29sbGVjdG9yLmVycm9yU3RyZWFtLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodW50aWwpXG4gICAgICAgICkuc3Vic2NyaWJlKChlcnJvcjogRXJyb3JNZXNzYWdlKSA9PiB0aGlzLmVycm9yUmVjZWl2ZWQoZXJyb3IsIHVudGlsKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlcnJvclJlY2VpdmVkKGVycm9yOiBFcnJvck1lc3NhZ2UsIHVudGlsOiBPYnNlcnZhYmxlPHVua25vd24+KSB7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZVdyYXBwZXIgPSBuZXcgRXJyb3JNZXNzYWdlV3JhcHBlcihlcnJvcik7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIGZvciBzdGF0ZSBjaGFuZ2VzXG4gICAgICAgIGVycm9yTWVzc2FnZVdyYXBwZXIucmVhZFN0YXRlQ2hhbmdlZC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHVudGlsKVxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSk7XG5cbiAgICAgICAgdGhpcy5fZXJyb3JzLnVuc2hpZnQoZXJyb3JNZXNzYWdlV3JhcHBlcik7XG4gICAgICAgIHdoaWxlICh0aGlzLl9lcnJvcnMubGVuZ3RoID4gMTApIHtcbiAgICAgICAgICAgIHRoaXMuX2Vycm9ycy5wb3AoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2xvcigpOiBNYXRDb2xvclRoZW1lIHtcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JzLnNvbWUoKGVycm9yOiBFcnJvck1lc3NhZ2VXcmFwcGVyKSA9PiAhZXJyb3IucmVhZCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnd2Fybic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIG1lbnVPcGVuZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX21lbnVTdGF0ZS5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tZW51U3RhdGUubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlcnJvcnMoKTogRXJyb3JNZXNzYWdlV3JhcHBlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9ycztcbiAgICB9XG5cbiAgICAvLyA8ZWRpdG9yLWZvbGQgZGVzYz1cIkFuaW1hdGlvbiBjb250cm9sXCIgZGVmYXVsdHN0YXRlPVwiY29sbGFwc2VkXCI+XG4gICAgcHVibGljIGFuaW1hdGlvbkRvbmUoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnbmV3RXJyb3InKSB7XG4gICAgICAgICAgICAvLyBSZXNldCBhZnRlciBhbm5pbWF0aW9uXG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gJ2FjdGl2ZSc7XG5cbiAgICAgICAgICAgIC8vIENhbGxlZCBmcm9tIGFuaW1hdGlvbiBjb250cm9sbGVyIHdlIG5lZWQgdG8gcmUtY2hlY2tcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRBbmltYXRpb24oKTogdm9pZCB7XG4gICAgICAgIHRpbWVyKDEwMCwgMjAwMCkucGlwZShcbiAgICAgICAgICAgIC8vIFJ1biBhbmltYXRpb24gZXZlcnl0aW1lIHdlIGhhdmUgbm9uLXJlYWQgZXJyb3JzXG4gICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5lcnJvcnMuc29tZSgoZXJyb3I6IEVycm9yTWVzc2FnZVdyYXBwZXIpID0+ICFlcnJvci5yZWFkKSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgbnVsbDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICdhY3RpdmUnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdhY3RpdmUnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gJ25ld0Vycm9yJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyA8L2VkaXRvci1mb2xkPlxufVxuIl19
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { animate, keyframes, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input } from '@angular/core';
|
|
3
|
-
import { DATE_FORMAT } from '@dbg-riskit/angular-common';
|
|
4
|
-
export class ErrorMessageComponent {
|
|
5
|
-
constructor(dateFormat, changeDetectorRef) {
|
|
6
|
-
this.dateFormat = dateFormat;
|
|
7
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
8
|
-
this.readState = null;
|
|
9
|
-
this.isLast = false;
|
|
10
|
-
}
|
|
11
|
-
animate() {
|
|
12
|
-
if (this.error != null && !this.error.read && this.readState !== 'read') {
|
|
13
|
-
setTimeout(() => {
|
|
14
|
-
this.readState = 'read';
|
|
15
|
-
this.changeDetectorRef.markForCheck();
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
markRead(event) {
|
|
20
|
-
if (this.error != null && event.toState === 'read') {
|
|
21
|
-
this.error.markRead();
|
|
22
|
-
this.changeDetectorRef.markForCheck();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
ErrorMessageComponent.decorators = [
|
|
27
|
-
{ type: Component, args: [{
|
|
28
|
-
selector: 'risk-error-message',
|
|
29
|
-
template: "<mat-card [class.risk-error-message-last]=\"isLast\" [@readState]=\"readState\" (@readState.done)=\"markRead($event)\">\n <mat-card-header>\n <mat-icon color=\"warn\" mat-card-avatar>error_outline</mat-icon>\n <mat-card-title *ngIf=\"error?.type.isNetworkError()\">Network error</mat-card-title>\n <mat-card-title *ngIf=\"error?.type.isRequestError()\">API error</mat-card-title>\n <mat-card-title *ngIf=\"error?.type.isAuthError()\">Authorization error</mat-card-title>\n <mat-card-title\n *ngIf=\"!error?.type.isNetworkError() && !error?.type.isRequestError() && !error?.type.isAuthError()\">\n General error\n </mat-card-title>\n <mat-card-subtitle>{{error?.date | date:dateFormat}}</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <p *ngIf=\"error?.statusCode\" class=\"risk-error-message-code\">Error code: {{error?.statusCode}}</p>\n <p>\n {{error?.message}}\n </p>\n </mat-card-content>\n</mat-card>\n",
|
|
30
|
-
animations: [
|
|
31
|
-
trigger('readState', [
|
|
32
|
-
state('read', style({ background: 'transparent' })),
|
|
33
|
-
transition(':enter', [
|
|
34
|
-
style({
|
|
35
|
-
height: 0,
|
|
36
|
-
transform: 'scale(0)'
|
|
37
|
-
}),
|
|
38
|
-
animate('200ms ease-in', style({
|
|
39
|
-
height: '*',
|
|
40
|
-
transform: 'scale(1)'
|
|
41
|
-
}))
|
|
42
|
-
]),
|
|
43
|
-
transition('* => read', [
|
|
44
|
-
style({
|
|
45
|
-
background: 'transparent'
|
|
46
|
-
}),
|
|
47
|
-
animate('1500ms', keyframes([
|
|
48
|
-
style({
|
|
49
|
-
background: 'rgba(204, 51, 51, .5)',
|
|
50
|
-
offset: 0.25
|
|
51
|
-
}),
|
|
52
|
-
style({
|
|
53
|
-
background: 'transparent',
|
|
54
|
-
offset: 0.5
|
|
55
|
-
}),
|
|
56
|
-
style({
|
|
57
|
-
background: 'rgba(204, 51, 51, .5)',
|
|
58
|
-
offset: 0.75
|
|
59
|
-
}),
|
|
60
|
-
style({
|
|
61
|
-
background: 'transparent',
|
|
62
|
-
offset: 1
|
|
63
|
-
})
|
|
64
|
-
]))
|
|
65
|
-
])
|
|
66
|
-
])
|
|
67
|
-
],
|
|
68
|
-
host: {
|
|
69
|
-
'[class.risk-error-message]': 'true'
|
|
70
|
-
},
|
|
71
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
72
|
-
preserveWhitespaces: false,
|
|
73
|
-
styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host .mat-card{margin:0 10px 7px}:host .mat-card.risk-error-message-last{margin-bottom:0}:host .mat-card .mat-card-subtitle{margin-bottom:5px}:host .mat-card p{margin:0}:host .mat-card p.risk-error-message-code{position:absolute;bottom:10px;right:10px}:host .mat-card p.risk-error-message-code+p:last-child{margin-bottom:3px}\n"]
|
|
74
|
-
},] }
|
|
75
|
-
];
|
|
76
|
-
ErrorMessageComponent.ctorParameters = () => [
|
|
77
|
-
{ type: String, decorators: [{ type: Inject, args: [DATE_FORMAT,] }] },
|
|
78
|
-
{ type: ChangeDetectorRef }
|
|
79
|
-
];
|
|
80
|
-
ErrorMessageComponent.propDecorators = {
|
|
81
|
-
error: [{ type: Input }],
|
|
82
|
-
isLast: [{ type: Input }]
|
|
83
|
-
};
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IubWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWVycm9yL3NyYy9saWIvZXJyb3IubWVzc2FnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBa0IsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzFHLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFzRHZELE1BQU0sT0FBTyxxQkFBcUI7SUFVOUIsWUFBd0QsVUFBa0IsRUFDdEMsaUJBQW9DO1FBRGhCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVRqRSxjQUFTLEdBQWtCLElBQUksQ0FBQztRQU1oQyxXQUFNLEdBQVksS0FBSyxDQUFDO0lBSS9CLENBQUM7SUFFTSxPQUFPO1FBQ1YsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFO1lBQ3JFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFxQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO1lBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQzs7O1lBL0VKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUssb0JBQW9CO2dCQUNqQywwaENBQTJDO2dCQUszQyxVQUFVLEVBQUc7b0JBQ1QsT0FBTyxDQUFDLFdBQVcsRUFBRTt3QkFDakIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBQyxVQUFVLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQzt3QkFDakQsVUFBVSxDQUFDLFFBQVEsRUFBRTs0QkFDakIsS0FBSyxDQUFDO2dDQUNGLE1BQU0sRUFBSyxDQUFDO2dDQUNaLFNBQVMsRUFBRSxVQUFVOzZCQUN4QixDQUFDOzRCQUNGLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDO2dDQUMzQixNQUFNLEVBQUssR0FBRztnQ0FDZCxTQUFTLEVBQUUsVUFBVTs2QkFDeEIsQ0FBQyxDQUFDO3lCQUNOLENBQUM7d0JBQ0YsVUFBVSxDQUFDLFdBQVcsRUFBRTs0QkFDcEIsS0FBSyxDQUFDO2dDQUNGLFVBQVUsRUFBRSxhQUFhOzZCQUM1QixDQUFDOzRCQUNGLE9BQU8sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO2dDQUN4QixLQUFLLENBQUM7b0NBQ0YsVUFBVSxFQUFFLHVCQUF1QjtvQ0FDbkMsTUFBTSxFQUFNLElBQUk7aUNBQ25CLENBQUM7Z0NBQ0YsS0FBSyxDQUFDO29DQUNGLFVBQVUsRUFBRSxhQUFhO29DQUN6QixNQUFNLEVBQU0sR0FBRztpQ0FDbEIsQ0FBQztnQ0FDRixLQUFLLENBQUM7b0NBQ0YsVUFBVSxFQUFFLHVCQUF1QjtvQ0FDbkMsTUFBTSxFQUFNLElBQUk7aUNBQ25CLENBQUM7Z0NBQ0YsS0FBSyxDQUFDO29DQUNGLFVBQVUsRUFBRSxhQUFhO29DQUN6QixNQUFNLEVBQU0sQ0FBQztpQ0FDaEIsQ0FBQzs2QkFDTCxDQUFDLENBQUM7eUJBQ04sQ0FBQztxQkFDTCxDQUFDO2lCQUNMO2dCQUNELElBQUksRUFBaUI7b0JBQ2pCLDRCQUE0QixFQUFFLE1BQU07aUJBQ3ZDO2dCQUNELGVBQWUsRUFBTSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUNuRCxtQkFBbUIsRUFBRSxLQUFLOzthQUM3Qjs7O3lDQVd1QixNQUFNLFNBQUMsV0FBVztZQWpFVCxpQkFBaUI7OztvQkEyRDdDLEtBQUs7cUJBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YW5pbWF0ZSwgQW5pbWF0aW9uRXZlbnQsIGtleWZyYW1lcywgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEQVRFX0ZPUk1BVH0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHtFcnJvck1lc3NhZ2VXcmFwcGVyfSBmcm9tICcuL2Vycm9yLm1lc3NhZ2Uud3JhcHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yICAgOiAncmlzay1lcnJvci1tZXNzYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2Vycm9yLm1lc3NhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJscyAgOiBbXG4gICAgICAgICcuLi8uLi8uLi9jb21wb25lbnQuc2NzcycsXG4gICAgICAgICdlcnJvci5tZXNzYWdlLmNvbXBvbmVudC5zY3NzJ1xuICAgIF0sXG4gICAgYW5pbWF0aW9ucyA6IFtcbiAgICAgICAgdHJpZ2dlcigncmVhZFN0YXRlJywgW1xuICAgICAgICAgICAgc3RhdGUoJ3JlYWQnLCBzdHlsZSh7YmFja2dyb3VuZDogJ3RyYW5zcGFyZW50J30pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCAgIDogMCxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoMCknXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMjAwbXMgZWFzZS1pbicsIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ICAgOiAnKicsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDEpJ1xuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCcqID0+IHJlYWQnLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMTUwMG1zJywga2V5ZnJhbWVzKFtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3JnYmEoMjA0LCA1MSwgNTEsIC41KScsXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgICAgOiAwLjI1XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICAgIDogMC41XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAncmdiYSgyMDQsIDUxLCA1MSwgLjUpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAgICA6IDAuNzVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgICAgOiAxXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXSkpXG4gICAgICAgICAgICBdKVxuICAgICAgICBdKVxuICAgIF0sXG4gICAgaG9zdCAgICAgICAgICAgICAgIDoge1xuICAgICAgICAnW2NsYXNzLnJpc2stZXJyb3ItbWVzc2FnZV0nOiAndHJ1ZSdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbiAgICA6IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBFcnJvck1lc3NhZ2VDb21wb25lbnQge1xuXG4gICAgcHVibGljIHJlYWRTdGF0ZTogJ3JlYWQnIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlcnJvcj86IEVycm9yTWVzc2FnZVdyYXBwZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpc0xhc3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihASW5qZWN0KERBVEVfRk9STUFUKSBwdWJsaWMgcmVhZG9ubHkgZGF0ZUZvcm1hdDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIH1cblxuICAgIHB1YmxpYyBhbmltYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5lcnJvciAhPSBudWxsICYmICF0aGlzLmVycm9yLnJlYWQgJiYgdGhpcy5yZWFkU3RhdGUgIT09ICdyZWFkJykge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWFkU3RhdGUgPSAncmVhZCc7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG1hcmtSZWFkKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5lcnJvciAhPSBudWxsICYmIGV2ZW50LnRvU3RhdGUgPT09ICdyZWFkJykge1xuICAgICAgICAgICAgdGhpcy5lcnJvci5tYXJrUmVhZCgpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|