@kolektor/nucleus-material 0.0.8-pre.5672 → 0.0.9-pre.5707

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.
Files changed (31) hide show
  1. package/{esm2015/kolektor-nucleus-material.js → esm2020/kolektor-nucleus-material.mjs} +0 -0
  2. package/{esm2015/lib/dialog/dialog.component.js → esm2020/lib/dialog/dialog.component.mjs} +5 -10
  3. package/{esm2015/lib/dialog/dialog.module.js → esm2020/lib/dialog/dialog.module.mjs} +4 -4
  4. package/esm2020/lib/dialog/dialog.service.mjs +40 -0
  5. package/{esm2015/lib/dialog/models.js → esm2020/lib/dialog/models.mjs} +0 -0
  6. package/esm2020/lib/loaded-content/loaded-content-component.mjs +71 -0
  7. package/{esm2015/lib/loaded-content/loaded-content-directive.js → esm2020/lib/loaded-content/loaded-content-directive.mjs} +3 -3
  8. package/{esm2015/lib/loaded-content/loaded-content-module.js → esm2020/lib/loaded-content/loaded-content-module.mjs} +4 -4
  9. package/esm2020/lib/loaded-content/loading-state.mjs +93 -0
  10. package/{esm2015/lib/native-styling/models.js → esm2020/lib/native-styling/models.mjs} +0 -0
  11. package/{esm2015/lib/native-styling/native-styling.service.js → esm2020/lib/native-styling/native-styling.service.mjs} +3 -3
  12. package/{esm2015/lib/snackbar/models.js → esm2020/lib/snackbar/models.mjs} +0 -0
  13. package/{esm2015/lib/snackbar/snackbar.module.js → esm2020/lib/snackbar/snackbar.module.mjs} +4 -4
  14. package/{esm2015/lib/snackbar/snackbar.service.js → esm2020/lib/snackbar/snackbar.service.mjs} +3 -3
  15. package/{esm2015/lib/swipe-tabs/swipe-tabs-directive.js → esm2020/lib/swipe-tabs/swipe-tabs-directive.mjs} +3 -3
  16. package/{esm2015/lib/swipe-tabs/swipe-tabs-module.js → esm2020/lib/swipe-tabs/swipe-tabs-module.mjs} +4 -4
  17. package/esm2020/lib/user-avatar/user-avatar-component.mjs +50 -0
  18. package/{esm2015/lib/user-avatar/user-avatar-module.js → esm2020/lib/user-avatar/user-avatar-module.mjs} +4 -4
  19. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  20. package/fesm2015/{kolektor-nucleus-material.js → kolektor-nucleus-material.mjs} +56 -70
  21. package/fesm2015/kolektor-nucleus-material.mjs.map +1 -0
  22. package/fesm2020/kolektor-nucleus-material.mjs +663 -0
  23. package/fesm2020/kolektor-nucleus-material.mjs.map +1 -0
  24. package/package.json +22 -9
  25. package/bundles/kolektor-nucleus-material.umd.js +0 -1135
  26. package/bundles/kolektor-nucleus-material.umd.js.map +0 -1
  27. package/esm2015/lib/dialog/dialog.service.js +0 -43
  28. package/esm2015/lib/loaded-content/loaded-content-component.js +0 -76
  29. package/esm2015/lib/loaded-content/loading-state.js +0 -93
  30. package/esm2015/lib/user-avatar/user-avatar-component.js +0 -55
  31. package/fesm2015/kolektor-nucleus-material.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"kolektor-nucleus-material.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/nucleus-material/src/lib/dialog/dialog.component.ts","../../../projects/nucleus-material/src/lib/dialog/dialog.component.html","../../../projects/nucleus-material/src/lib/dialog/dialog.service.ts","../../../projects/nucleus-material/src/lib/dialog/dialog.module.ts","../../../projects/nucleus-material/src/lib/dialog/models.ts","../../../projects/nucleus-material/src/lib/loaded-content/loading-state.ts","../../../projects/nucleus-material/src/lib/loaded-content/loaded-content-component.ts","../../../projects/nucleus-material/src/lib/loaded-content/loaded-content-component.html","../../../projects/nucleus-material/src/lib/loaded-content/loaded-content-directive.ts","../../../projects/nucleus-material/src/lib/loaded-content/loaded-content-module.ts","../../../projects/nucleus-material/src/lib/native-styling/native-styling.service.ts","../../../projects/nucleus-material/src/lib/native-styling/models.ts","../../../projects/nucleus-material/src/lib/swipe-tabs/swipe-tabs-directive.ts","../../../projects/nucleus-material/src/lib/swipe-tabs/swipe-tabs-module.ts","../../../projects/nucleus-material/src/lib/snackbar/snackbar.service.ts","../../../projects/nucleus-material/src/lib/snackbar/snackbar.module.ts","../../../projects/nucleus-material/src/lib/snackbar/models.ts","../../../projects/nucleus-material/src/lib/user-avatar/user-avatar-component.ts","../../../projects/nucleus-material/src/lib/user-avatar/user-avatar-component.html","../../../projects/nucleus-material/src/lib/user-avatar/user-avatar-module.ts","../../../projects/nucleus-material/src/public-api.ts","../../../projects/nucleus-material/src/kolektor-nucleus-material.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 { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NucDialogData } from './models';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'nuc-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss']\r\n})\r\n\r\nexport class NucDialogComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef<NucDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: NucDialogData\r\n ) { }\r\n}\r\n","<ng-container *ngIf=\"dialogData\">\r\n <h2 mat-dialog-title *ngIf=\"dialogData.title\">\r\n {{dialogData.title}}\r\n </h2>\r\n <mat-dialog-content>{{dialogData.message}}</mat-dialog-content>\r\n <mat-dialog-actions>\r\n <ng-container *ngFor=\"let action of dialogData.actions\">\r\n <button color=\"{{action.color || 'primary'}}\" *ngIf=\"action.value === undefined\" mat-button mat-dialog-close>{{action.text}}</button>\r\n <button color=\"{{action.color || 'primary'}}\" *ngIf=\"action.value !== undefined\" mat-button [mat-dialog-close]=\"action.value\">{{action.text}}</button>\r\n </ng-container>\r\n </mat-dialog-actions>\r\n</ng-container>\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\r\nimport { NucDialogData } from './models';\r\nimport { NucDialogComponent } from './dialog.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NucDialogService {\r\n constructor(private _matDialog: MatDialog) { }\r\n\r\n /**\r\n * Opens a NucDialog with content from dialogData.\r\n *\r\n * @param dialogData NucDialogData containing title, message and possible actions.\r\n * @param dialogConfig Extra configuration options. Data property is ignored, since it will be set to dialogData.\r\n * @returns a promise with value that was specified inside pressed Nucleus action.\r\n */\r\n public async open(dialogData: NucDialogData, dialogConfig?: MatDialogConfig): Promise<any> {\r\n if (dialogData.actions && dialogData.actions.length > 0) {\r\n if (dialogConfig) {\r\n dialogConfig.data = dialogData;\r\n } else {\r\n dialogConfig = { data: dialogData };\r\n }\r\n return await this._matDialog.open(NucDialogComponent, dialogConfig).beforeClosed().toPromise();\r\n } else {\r\n console.error('Nucleus.AppCore: NucDialogData requires at least one action.');\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { NucDialogComponent } from './dialog.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n NucDialogComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatDialogModule,\r\n MatButtonModule\r\n ],\r\n entryComponents: [\r\n NucDialogComponent\r\n ]\r\n})\r\n\r\nexport class NucDialogModule { }\r\n","export interface NucDialogData {\r\n /** Optional title for the dialog. */\r\n title?: string;\r\n /** Message for the dialog. */\r\n message: string;\r\n /** Action(s) (buttons) for the dialog. At least one is required. */\r\n actions: NucAction[];\r\n}\r\n\r\nexport interface NucAction {\r\n /** Text for the action (button). */\r\n text: string;\r\n /** Return value for the action (button). */\r\n value?: any;\r\n /** Optional color of the action (button). */\r\n color?: NucColor;\r\n}\r\n\r\nexport enum NucColor {\r\n /** Primary color of the theme. */\r\n primary = 'primary',\r\n /** Accent color of the theme. */\r\n accent = 'accent',\r\n /** Warning color of the theme. */\r\n warn = 'warn'\r\n}\r\n","import { Observable, Subscription } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nexport enum LoadingStatus { completed, inProgress, failed, undefined }\r\n\r\nexport class LoadingState {\r\n private _status: LoadingStatus = LoadingStatus.undefined;\r\n private _message: string = null;\r\n private _errorDetails: string = null;\r\n private _resultFunction: (result: any) => void;\r\n private _errorFunction: (error: HttpErrorResponse) => void;\r\n private _completeFunction: () => void;\r\n private _loadObservable: Observable<any>;\r\n private _lastSubscription: Subscription = null;\r\n\r\n get status(): LoadingStatus {\r\n return this._status;\r\n }\r\n\r\n get message(): string {\r\n return this._message;\r\n }\r\n\r\n get errorDetails(): string {\r\n return this._errorDetails;\r\n }\r\n\r\n public load<T>(\r\n observable: Observable<T>,\r\n resultFunction?: (result: T) => void,\r\n errorFunction?: (error: HttpErrorResponse) => void,\r\n completeFunction?: () => void\r\n ): Subscription {\r\n return this._load(true, null, observable, resultFunction, errorFunction, completeFunction);\r\n }\r\n\r\n public loadWithMessage<T>(\r\n observable: Observable<T>,\r\n message: string,\r\n resultFunction?: (result: T) => void,\r\n errorFunction?: (error: HttpErrorResponse) => void,\r\n completeFunction?: () => void\r\n ): Subscription {\r\n return this._load(true, message, observable, resultFunction, errorFunction, completeFunction);\r\n }\r\n\r\n public invoke<T>(\r\n observable: Observable<T>,\r\n resultFunction?: (result: T) => void,\r\n errorFunction?: (error: HttpErrorResponse) => void,\r\n completeFunction?: () => void\r\n ): Subscription {\r\n return this._load(false, null, observable, resultFunction, errorFunction, completeFunction);\r\n }\r\n\r\n public invokeWithMessage<T>(\r\n observable: Observable<T>,\r\n message: string,\r\n resultFunction?: (result: T) => void,\r\n errorFunction?: (error: HttpErrorResponse) => void,\r\n completeFunction?: () => void\r\n ): Subscription {\r\n return this._load(false, message, observable, resultFunction, errorFunction, completeFunction);\r\n }\r\n\r\n public retry() {\r\n if (this._lastSubscription) {\r\n this._lastSubscription.unsubscribe();\r\n }\r\n this.setInProgress();\r\n this._lastSubscription = this._loadObservable.subscribe(this._resultFunction, this._errorFunction, this._completeFunction);\r\n return this._lastSubscription;\r\n }\r\n\r\n public setInProgress(message: string = null) {\r\n this._status = LoadingStatus.inProgress;\r\n this._message = message;\r\n }\r\n\r\n public setCompleted() {\r\n this._status = LoadingStatus.completed;\r\n }\r\n\r\n public setFailed(message: string = null, error: string = null) {\r\n this._status = LoadingStatus.failed;\r\n this._message = message;\r\n this._errorDetails = error;\r\n }\r\n\r\n private _load<T>(\r\n saveAsLoadObservable: boolean,\r\n progressMessage: string,\r\n observable: Observable<T>,\r\n resultFunction?: (result: T) => void,\r\n errorFunction?: (error: HttpErrorResponse) => void,\r\n completeFunction?: () => void\r\n ): Subscription {\r\n if (this._lastSubscription) {\r\n this._lastSubscription.unsubscribe();\r\n }\r\n\r\n this.setInProgress(progressMessage);\r\n const obs = observable.pipe(\r\n tap(\r\n () => {\r\n if (!saveAsLoadObservable && this.message) { // if message was used one time we clear it\r\n this._message = null;\r\n }\r\n this.setCompleted();\r\n },\r\n (err) => {\r\n this.setFailed(null, LoadingState.getErrorDetails(err));\r\n }\r\n )\r\n );\r\n\r\n if (saveAsLoadObservable) {\r\n this._loadObservable = obs;\r\n this._resultFunction = resultFunction;\r\n this._errorFunction = errorFunction;\r\n this._completeFunction = completeFunction;\r\n }\r\n\r\n this._lastSubscription = this._loadObservable.subscribe(this._resultFunction, this._errorFunction, this._completeFunction);\r\n return this._lastSubscription;\r\n }\r\n\r\n public static getErrorDetails(error: any) {\r\n // this routine tries to get the best error details from:\r\n // - standard rfc7807 http error: https://datatracker.ietf.org/doc/html/rfc7807\r\n // - angular HttpError\r\n // - JS Error object\r\n\r\n const problem = error?.error;\r\n if (problem?.title && problem?.detail) {\r\n return `${problem.title}: ${problem.detail}`;\r\n } else {\r\n return problem?.title || problem?.detail || error.message || error;\r\n }\r\n }\r\n}\r\n","import { Component, Input, TemplateRef } from '@angular/core';\r\nimport { LoadingState, LoadingStatus } from './loading-state';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'nuc-loaded-content-component',\r\n templateUrl: './loaded-content-component.html',\r\n styleUrls: ['./loaded-content-component.scss']\r\n})\r\nexport class NucLoadedContentComponent {\r\n\r\n private _errorDetailsVisible = false;\r\n\r\n @Input()\r\n completedTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n errorTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n inProgressTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public state: LoadingState;\r\n\r\n @Input()\r\n public inProgressMessage: string;\r\n\r\n @Input()\r\n public errorMessage = 'We are having trouble loading the data.';\r\n\r\n @Input()\r\n public showRetry = true;\r\n\r\n public get message() {\r\n if (this.state.message != null) {\r\n return this.state.message;\r\n } else {\r\n if (this.state.status === LoadingStatus.failed) {\r\n return this.errorMessage;\r\n } else if (this.state.status === LoadingStatus.inProgress) {\r\n return this.inProgressMessage;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public get showRetryButton() {\r\n return this.showRetry;\r\n }\r\n\r\n public get inProgress() {\r\n const inProgress = this.state.status === LoadingStatus.inProgress;\r\n if (inProgress) {\r\n this._errorDetailsVisible = false;\r\n }\r\n return inProgress;\r\n }\r\n\r\n public get failed() {\r\n return this.state.status === LoadingStatus.failed;\r\n }\r\n\r\n public get completed() {\r\n return this.state.status === LoadingStatus.completed;\r\n }\r\n\r\n public get errorDetailsVisible() {\r\n return this._errorDetailsVisible;\r\n }\r\n\r\n public showErrorDetails() {\r\n this._errorDetailsVisible = true;\r\n }\r\n}\r\n","<ng-container *ngIf=\"completed\">\r\n <ng-container *ngTemplateOutlet=\"completedTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div class=\"indicators-container\" *ngIf=\"inProgress || failed\">\r\n <ng-container *ngIf=\"inProgress\">\r\n <ng-container *ngTemplateOutlet=\"inProgressTemplate ? inProgressTemplate: defaultInProgressTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"failed\">\r\n <ng-container *ngTemplateOutlet=\"errorTemplate ? errorTemplate: defaultErrorTemplate\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #defaultInProgressTemplate>\r\n <div class=\"spinner\">\r\n <mat-spinner [diameter]=\"45\"></mat-spinner>\r\n </div>\r\n <p>\r\n {{message}}\r\n </p>\r\n</ng-template>\r\n\r\n<ng-template #defaultErrorTemplate>\r\n <div>\r\n <p>\r\n {{message}}\r\n </p>\r\n\r\n <div *ngIf=\"state.errorDetails\">\r\n <button *ngIf=\"!errorDetailsVisible\" mat-button color=\"warn\" (click)=\"showErrorDetails()\">show details</button>\r\n\r\n <div *ngIf=\"errorDetailsVisible\" class=\"error-details mat-small\">\r\n <strong>details:</strong><br />\r\n <p>{{state.errorDetails}}</p>\r\n </div>\r\n </div>\r\n\r\n <p *ngIf=\"showRetryButton\">\r\n <button mat-mini-fab color=\"primary\" (click)=\"state.retry()\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n </p>\r\n\r\n </div>\r\n</ng-template>\r\n","import {\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n Directive,\r\n Input,\r\n TemplateRef,\r\n ViewContainerRef } from '@angular/core';\r\nimport { NucLoadedContentComponent } from './loaded-content-component';\r\nimport { LoadingState } from './loading-state';\r\n\r\n// eslint-disable-next-line @angular-eslint/directive-selector\r\n@Directive({ selector: '[nucLoadedContent]' })\r\nexport class NucLoadedContentDirective {\r\n\r\n private _state: LoadingState;\r\n private _completedTemplateRef: TemplateRef<any> | null = null;\r\n private _errorTemplateRef: TemplateRef<any> | null = null;\r\n private _inProgressTemplateRef: TemplateRef<any> | null = null;\r\n private _component: ComponentRef<NucLoadedContentComponent> = null;\r\n\r\n constructor(\r\n private _viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>,\r\n private _componentResolver: ComponentFactoryResolver) {\r\n this._completedTemplateRef = templateRef;\r\n }\r\n\r\n @Input()\r\n set nucLoadedContent(state: LoadingState) {\r\n // add some error handling if state is null, etc.\r\n this._state = state;\r\n this._updateView();\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/no-input-rename\r\n @Input('nucLoadedContentError')\r\n set errorTemplate(templateRef: TemplateRef<any> | null) {\r\n this._errorTemplateRef = templateRef;\r\n this._updateView();\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/no-input-rename\r\n @Input('nucLoadedContentInProgress')\r\n set inProgressTemplate(templateRef: TemplateRef<any> | null) {\r\n this._inProgressTemplateRef = templateRef;\r\n this._updateView();\r\n }\r\n\r\n @Input('nucLoadedContentInProgressMessage')\r\n set inProgressMessage(inProgressMessage: string) {\r\n this._component.instance.inProgressMessage = inProgressMessage;\r\n }\r\n\r\n @Input('nucLoadedContentErrorMessage')\r\n set errorMessage(errorMessage: string) {\r\n this._component.instance.errorMessage = errorMessage;\r\n }\r\n\r\n @Input('nucLoadedContentShowRetry')\r\n set showRetry(showRetry: boolean) {\r\n this._component.instance.showRetry = showRetry;\r\n }\r\n\r\n private _updateView() {\r\n if (this._component == null) {\r\n const fac = this._componentResolver.resolveComponentFactory(NucLoadedContentComponent);\r\n this._component = this._viewContainer.createComponent(fac);\r\n }\r\n\r\n this._component.instance.state = this._state;\r\n this._component.instance.completedTemplate = this._completedTemplateRef;\r\n\r\n if (this._inProgressTemplateRef) {\r\n this._component.instance.inProgressTemplate = this._inProgressTemplateRef;\r\n }\r\n\r\n if (this._errorTemplateRef) {\r\n this._component.instance.errorTemplate = this._errorTemplateRef;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NucLoadedContentComponent } from './loaded-content-component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NucLoadedContentDirective } from './loaded-content-directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n NucLoadedContentDirective,\r\n NucLoadedContentComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatProgressSpinnerModule,\r\n MatButtonModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n NucLoadedContentDirective\r\n ],\r\n entryComponents: [\r\n NucLoadedContentComponent\r\n ]\r\n})\r\nexport class NucLoadedContentModule { }\r\n","/* eslint-disable no-undef */\r\n/// <reference path=\"../../../../../node_modules/@types/winrt-uwp/index.d.ts\" />\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { WindowsTitleBarSyle } from './models';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NativeStylingService {\r\n\r\n constructor(private router: Router) { }\r\n\r\n public styleWindowsTitleBar(style: WindowsTitleBarSyle) {\r\n\r\n if ((window as any).Windows) {\r\n const accentColor = this.convertColor(style.backgroundColor);\r\n const hoverColor = style.hoverBackgroundColor ? this.convertColor(style.hoverBackgroundColor) : this.makeDarker(accentColor);\r\n const foregroundColor = style.foreground === 'light' ? Windows.UI.Colors.white : Windows.UI.Colors.black;\r\n const titleColor = style.hideTitle ? accentColor : foregroundColor;\r\n\r\n const appView = Windows.UI.ViewManagement.ApplicationView.getForCurrentView();\r\n const titleBar = appView.titleBar;\r\n\r\n titleBar.foregroundColor = titleColor;\r\n titleBar.inactiveForegroundColor = titleColor;\r\n\r\n titleBar.buttonHoverBackgroundColor = hoverColor;\r\n titleBar.buttonBackgroundColor = accentColor;\r\n titleBar.buttonInactiveBackgroundColor = accentColor;\r\n\r\n titleBar.buttonHoverForegroundColor = foregroundColor;\r\n titleBar.buttonForegroundColor = foregroundColor;\r\n titleBar.buttonInactiveForegroundColor = foregroundColor;\r\n\r\n titleBar.backgroundColor = accentColor;\r\n titleBar.inactiveBackgroundColor = accentColor;\r\n\r\n if (style.hideBackButton) {\r\n this.hideBackButton();\r\n const subscription = this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd && event.id > 1) {\r\n this.hideBackButton();\r\n subscription.unsubscribe();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n private hideBackButton() {\r\n const systemNavigation = Windows.UI.Core.SystemNavigationManager.getForCurrentView();\r\n systemNavigation.appViewBackButtonVisibility = Windows.UI.Core.AppViewBackButtonVisibility.collapsed;\r\n }\r\n\r\n private convertColor(colorStr: string): Windows.UI.Color {\r\n const regEx = new RegExp('^#([A-Fa-f0-9]{6})$');\r\n if (! regEx.test(colorStr)) {\r\n throw new Error('Color is not in the right format. Should be #RRGGBB.');\r\n }\r\n\r\n const r = parseInt(colorStr.substr(1, 2), 16);\r\n const g = parseInt(colorStr.substr(3, 2), 16);\r\n const b = parseInt(colorStr.substr(5, 2), 16);\r\n\r\n return Windows.UI.ColorHelper.fromArgb(255, r, g, b);\r\n }\r\n\r\n private makeDarker(color: Windows.UI.Color, factor = 0.80) {\r\n return Windows.UI.ColorHelper.fromArgb(color.a, color.r * factor, color.g * factor, color.b * factor);\r\n }\r\n}\r\n","export class WindowsTitleBarSyle {\r\n backgroundColor: string;\r\n hoverBackgroundColor?: string = null;\r\n foreground?: 'dark' | 'light' = 'dark';\r\n hideTitle ? = false;\r\n hideBackButton ?= false;\r\n}\r\n","import { Directive, ElementRef, OnInit } from '@angular/core';\r\nimport { MatTabGroup } from '@angular/material/tabs';\r\nimport * as Hammer from 'hammerjs';\r\n\r\n// eslint-disable-next-line @angular-eslint/directive-selector\r\n@Directive({ selector: '[nucSwipe]' })\r\n\r\nexport class NucSwipeTabsDirective implements OnInit {\r\n constructor(\r\n private element: ElementRef, // ElementRef<MatTabGroup> causes errors.\r\n private tabGroup: MatTabGroup) { }\r\n\r\n ngOnInit() {\r\n const hammerJs = new Hammer.Manager(this.element.nativeElement, {\r\n inputClass: Hammer.TouchInput\r\n });\r\n\r\n hammerJs.add(new Hammer.Pan({\r\n direction: Hammer.DIRECTION_HORIZONTAL,\r\n threshold: 30\r\n }));\r\n\r\n hammerJs.on('panleft panright', (event) => {\r\n if (event.isFinal) {\r\n // Check if any of the tabs are set to disabled\r\n const tabs = this.tabGroup._tabs.map(x => x.disabled);\r\n const anyTabDisabled = tabs.some(disabled => disabled);\r\n\r\n if (event.type === 'panleft' && event.direction === 2 && this.tabGroup.selectedIndex < (this.tabGroup._tabs.length - 1)) {\r\n // Go to next tab\r\n if (anyTabDisabled) {\r\n const tabsToRight = tabs.slice(this.tabGroup.selectedIndex + 1);\r\n this.tabGroup.selectedIndex += this.getOffset(tabsToRight);\r\n } else {\r\n this.tabGroup.selectedIndex++;\r\n }\r\n } else if (event.type === 'panright' && event.direction === 4 && this.tabGroup.selectedIndex > 0) {\r\n // Go to previous tab\r\n if (anyTabDisabled) {\r\n const tabsToLeft = tabs.slice().reverse().slice(-this.tabGroup.selectedIndex);\r\n this.tabGroup.selectedIndex -= this.getOffset(tabsToLeft);\r\n } else {\r\n this.tabGroup.selectedIndex--;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getOffset(tabs: boolean[]) {\r\n // Find offset to the first enabled tab\r\n const offset = tabs.indexOf(tabs.find(disabled => !disabled)) + 1;\r\n return offset;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NucSwipeTabsDirective } from './swipe-tabs-directive';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [\r\n NucSwipeTabsDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n NucSwipeTabsDirective\r\n ]\r\n})\r\n\r\nexport class NucSwipeTabsModule {\r\n\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { MatSnackBar, MatSnackBarConfig, MatSnackBarRef, TextOnlySnackBar } from '@angular/material/snack-bar';\r\nimport { NucSnackbarType } from './models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class NucSnackbarService {\r\n\r\n constructor(private _matSnackBar: MatSnackBar, private _zone: NgZone) {\r\n\r\n }\r\n\r\n public openSnackbar(type: NucSnackbarType, message: string, action: string | null, duration: number): MatSnackBarRef<TextOnlySnackBar> {\r\n let snackbarRef: MatSnackBarRef<TextOnlySnackBar>;\r\n\r\n this._zone.run(() => {\r\n snackbarRef = this._matSnackBar.open(message, action, {\r\n duration,\r\n panelClass: `${type}-snackbar`\r\n });\r\n });\r\n\r\n return snackbarRef;\r\n }\r\n\r\n\r\n public openSnackbarWithConfig(message: string, action: string | null, config: MatSnackBarConfig): MatSnackBarRef<TextOnlySnackBar> {\r\n let snackbarRef: MatSnackBarRef<TextOnlySnackBar>;\r\n\r\n this._zone.run(() => {\r\n snackbarRef = this._matSnackBar.open(message, action, config);\r\n });\r\n\r\n return snackbarRef;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatSnackBarModule\r\n ],\r\n exports: [\r\n ]\r\n})\r\n\r\nexport class NucSnackbarModule {\r\n\r\n}\r\n","export enum NucSnackbarType {\r\n Info = 'info',\r\n Warning = 'warning',\r\n Danger = 'danger',\r\n Success = 'success'\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nexport type AvatarSize = 'small' | 'medium' | 'large' | 'xlarge';\r\nexport type Background = true | false;\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'nuc-user-avatar',\r\n templateUrl: './user-avatar-component.html',\r\n styleUrls: ['./user-avatar-component.scss']\r\n})\r\n\r\nexport class NucUserAvatarComponent {\r\n\r\n @Input() name: string;\r\n @Input() image: string;\r\n @Input() size: AvatarSize = 'medium';\r\n @Input() background: Background = false;\r\n\r\n constructor() {\r\n }\r\n\r\n getUserInitials() {\r\n const nameParts = this.name.split(' ');\r\n return nameParts[0].charAt(0).toUpperCase() + '' + nameParts[nameParts.length - 1].charAt(0).toUpperCase();\r\n }\r\n\r\n getHslString(): string {\r\n if (!this.background) {\r\n return `hsl(${0},${0}%,${100}%)`;\r\n }\r\n\r\n\r\n let hash = 0;\r\n for (let i = 0; i < this.name.length; i++) {\r\n /*\r\n * Javascript uses double precision floating-point format for all numerical datatypes.\r\n * Except when using bitwise operations, where operators are converted to 32-bit signed integers.\r\n * Result of bitwise operations are then converted back to double precision floating-point format.\r\n *\r\n * We make a bitwise OR operation between the new hash and 0.\r\n * This keeps only the lower 32 bits in the new hash value.\r\n */\r\n // eslint-disable-next-line no-bitwise\r\n hash = (this.name.charCodeAt(i) + ((hash << 15) - hash)) | 0;\r\n }\r\n\r\n const hue = Math.abs(hash % 360);\r\n\r\n const lightness = 49.2;\r\n const saturation = 42.6;\r\n\r\n return `hsl(${hue},${saturation}%,${lightness}%)`;\r\n }\r\n}\r\n","<ng-container *ngIf=\"image\">\r\n <div class=\"user-avatar size-{{size}}\">\r\n <img src=\"{{image}}\" />\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!image\">\r\n <div class=\"user-avatar size-{{size}} unselectable\" [style.background-color]=\"getHslString()\" [ngClass]=\"{'white-text': background, 'black-text border': !background}\">\r\n {{getUserInitials()}}\r\n </div>\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NucUserAvatarComponent } from './user-avatar-component';\r\n\r\n@NgModule({\r\n declarations: [\r\n NucUserAvatarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [\r\n NucUserAvatarComponent\r\n ]\r\n})\r\n\r\nexport class NucUserAvatarModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of nucleus-material\r\n */\r\n\r\n// dialog\r\nexport * from './lib/dialog/dialog.service';\r\nexport * from './lib/dialog/dialog.module';\r\nexport * from './lib/dialog/models';\r\n\r\n// loaded-content\r\nexport * from './lib/loaded-content/loading-state';\r\nexport * from './lib/loaded-content/loaded-content-component';\r\nexport * from './lib/loaded-content/loaded-content-directive';\r\nexport * from './lib/loaded-content/loaded-content-module';\r\n\r\n// native-styling\r\nexport * from './lib/native-styling/native-styling.service';\r\nexport * from './lib/native-styling/models';\r\n\r\n// swipe-tabs\r\nexport * from './lib/swipe-tabs/swipe-tabs-directive';\r\nexport * from './lib/swipe-tabs/swipe-tabs-module';\r\n\r\n// dialog component\r\nexport * from './lib/dialog/dialog.service';\r\nexport * from './lib/dialog/dialog.module';\r\nexport * from './lib/dialog/models';\r\n\r\n// snackbar component\r\nexport * from './lib/snackbar/snackbar.service';\r\nexport * from './lib/snackbar/snackbar.module';\r\nexport * from './lib/snackbar/models';\r\n\r\n// user-avatar\r\nexport * from './lib/user-avatar/user-avatar-component';\r\nexport * from './lib/user-avatar/user-avatar-module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["MAT_DIALOG_DATA","Component","Inject","Injectable","CommonModule","MatDialogModule","MatButtonModule","NgModule","NucColor","LoadingStatus","tap","Input","Directive","MatProgressSpinnerModule","MatIconModule","NavigationEnd","Hammer","MatSnackBarModule","NucSnackbarType"],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { MatDialog } from '@angular/material/dialog';
4
- import { NucDialogComponent } from './dialog.component';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/dialog";
7
- export class NucDialogService {
8
- constructor(_matDialog) {
9
- this._matDialog = _matDialog;
10
- }
11
- /**
12
- * Opens a NucDialog with content from dialogData.
13
- *
14
- * @param dialogData NucDialogData containing title, message and possible actions.
15
- * @param dialogConfig Extra configuration options. Data property is ignored, since it will be set to dialogData.
16
- * @returns a promise with value that was specified inside pressed Nucleus action.
17
- */
18
- open(dialogData, dialogConfig) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- if (dialogData.actions && dialogData.actions.length > 0) {
21
- if (dialogConfig) {
22
- dialogConfig.data = dialogData;
23
- }
24
- else {
25
- dialogConfig = { data: dialogData };
26
- }
27
- return yield this._matDialog.open(NucDialogComponent, dialogConfig).beforeClosed().toPromise();
28
- }
29
- else {
30
- console.error('Nucleus.AppCore: NucDialogData requires at least one action.');
31
- }
32
- });
33
- }
34
- }
35
- NucDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.3", ngImport: i0, type: NucDialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
36
- NucDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.3", ngImport: i0, type: NucDialogService, providedIn: 'root' });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.3", ngImport: i0, type: NucDialogService, decorators: [{
38
- type: Injectable,
39
- args: [{
40
- providedIn: 'root'
41
- }]
42
- }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udWNsZXVzLW1hdGVyaWFsL3NyYy9saWIvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sMEJBQTBCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUt4RCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQW9CLFVBQXFCO1FBQXJCLGVBQVUsR0FBVixVQUFVLENBQVc7SUFBSSxDQUFDO0lBRTlDOzs7Ozs7T0FNRztJQUNVLElBQUksQ0FBQyxVQUF5QixFQUFFLFlBQThCOztZQUN6RSxJQUFJLFVBQVUsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLFlBQVksRUFBRTtvQkFDaEIsWUFBWSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7aUJBQ2hDO3FCQUFNO29CQUNMLFlBQVksR0FBRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztpQkFDckM7Z0JBQ0QsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ2hHO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQzthQUMvRTtRQUNILENBQUM7S0FBQTs7NkdBckJVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE51Y0RpYWxvZ0RhdGEgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IE51Y0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOdWNEaWFsb2dTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9tYXREaWFsb2c6IE1hdERpYWxvZykgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIGEgTnVjRGlhbG9nIHdpdGggY29udGVudCBmcm9tIGRpYWxvZ0RhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZGlhbG9nRGF0YSBOdWNEaWFsb2dEYXRhIGNvbnRhaW5pbmcgdGl0bGUsIG1lc3NhZ2UgYW5kIHBvc3NpYmxlIGFjdGlvbnMuXHJcbiAgICogQHBhcmFtIGRpYWxvZ0NvbmZpZyBFeHRyYSBjb25maWd1cmF0aW9uIG9wdGlvbnMuIERhdGEgcHJvcGVydHkgaXMgaWdub3JlZCwgc2luY2UgaXQgd2lsbCBiZSBzZXQgdG8gZGlhbG9nRGF0YS5cclxuICAgKiBAcmV0dXJucyBhIHByb21pc2Ugd2l0aCB2YWx1ZSB0aGF0IHdhcyBzcGVjaWZpZWQgaW5zaWRlIHByZXNzZWQgTnVjbGV1cyBhY3Rpb24uXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIG9wZW4oZGlhbG9nRGF0YTogTnVjRGlhbG9nRGF0YSwgZGlhbG9nQ29uZmlnPzogTWF0RGlhbG9nQ29uZmlnKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmIChkaWFsb2dEYXRhLmFjdGlvbnMgJiYgZGlhbG9nRGF0YS5hY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKGRpYWxvZ0NvbmZpZykge1xyXG4gICAgICAgIGRpYWxvZ0NvbmZpZy5kYXRhID0gZGlhbG9nRGF0YTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkaWFsb2dDb25maWcgPSB7IGRhdGE6IGRpYWxvZ0RhdGEgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5fbWF0RGlhbG9nLm9wZW4oTnVjRGlhbG9nQ29tcG9uZW50LCBkaWFsb2dDb25maWcpLmJlZm9yZUNsb3NlZCgpLnRvUHJvbWlzZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcignTnVjbGV1cy5BcHBDb3JlOiBOdWNEaWFsb2dEYXRhIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBhY3Rpb24uJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,76 +0,0 @@
1
- import { Component, Input, TemplateRef } from '@angular/core';
2
- import { LoadingState, LoadingStatus } from './loading-state';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/progress-spinner";
5
- import * as i2 from "@angular/material/button";
6
- import * as i3 from "@angular/material/icon";
7
- import * as i4 from "@angular/common";
8
- export class NucLoadedContentComponent {
9
- constructor() {
10
- this._errorDetailsVisible = false;
11
- this.errorMessage = 'We are having trouble loading the data.';
12
- this.showRetry = true;
13
- }
14
- get message() {
15
- if (this.state.message != null) {
16
- return this.state.message;
17
- }
18
- else {
19
- if (this.state.status === LoadingStatus.failed) {
20
- return this.errorMessage;
21
- }
22
- else if (this.state.status === LoadingStatus.inProgress) {
23
- return this.inProgressMessage;
24
- }
25
- }
26
- return null;
27
- }
28
- get showRetryButton() {
29
- return this.showRetry;
30
- }
31
- get inProgress() {
32
- const inProgress = this.state.status === LoadingStatus.inProgress;
33
- if (inProgress) {
34
- this._errorDetailsVisible = false;
35
- }
36
- return inProgress;
37
- }
38
- get failed() {
39
- return this.state.status === LoadingStatus.failed;
40
- }
41
- get completed() {
42
- return this.state.status === LoadingStatus.completed;
43
- }
44
- get errorDetailsVisible() {
45
- return this._errorDetailsVisible;
46
- }
47
- showErrorDetails() {
48
- this._errorDetailsVisible = true;
49
- }
50
- }
51
- NucLoadedContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.3", ngImport: i0, type: NucLoadedContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
- NucLoadedContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.3", type: NucLoadedContentComponent, selector: "nuc-loaded-content-component", inputs: { completedTemplate: "completedTemplate", errorTemplate: "errorTemplate", inProgressTemplate: "inProgressTemplate", state: "state", inProgressMessage: "inProgressMessage", errorMessage: "errorMessage", showRetry: "showRetry" }, ngImport: i0, template: "<ng-container *ngIf=\"completed\">\r\n <ng-container *ngTemplateOutlet=\"completedTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div class=\"indicators-container\" *ngIf=\"inProgress || failed\">\r\n <ng-container *ngIf=\"inProgress\">\r\n <ng-container *ngTemplateOutlet=\"inProgressTemplate ? inProgressTemplate: defaultInProgressTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"failed\">\r\n <ng-container *ngTemplateOutlet=\"errorTemplate ? errorTemplate: defaultErrorTemplate\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #defaultInProgressTemplate>\r\n <div class=\"spinner\">\r\n <mat-spinner [diameter]=\"45\"></mat-spinner>\r\n </div>\r\n <p>\r\n {{message}}\r\n </p>\r\n</ng-template>\r\n\r\n<ng-template #defaultErrorTemplate>\r\n <div>\r\n <p>\r\n {{message}}\r\n </p>\r\n\r\n <div *ngIf=\"state.errorDetails\">\r\n <button *ngIf=\"!errorDetailsVisible\" mat-button color=\"warn\" (click)=\"showErrorDetails()\">show details</button>\r\n\r\n <div *ngIf=\"errorDetailsVisible\" class=\"error-details mat-small\">\r\n <strong>details:</strong><br />\r\n <p>{{state.errorDetails}}</p>\r\n </div>\r\n </div>\r\n\r\n <p *ngIf=\"showRetryButton\">\r\n <button mat-mini-fab color=\"primary\" (click)=\"state.retry()\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n </p>\r\n\r\n </div>\r\n</ng-template>\r\n", styles: [".indicators-container{text-align:center;margin:0 auto;padding-top:4rem}.error-details{margin-top:1rem}.spinner{display:flex;justify-content:center;align-items:center;margin-bottom:.5rem}\n"], components: [{ type: i1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.3", ngImport: i0, type: NucLoadedContentComponent, decorators: [{
54
- type: Component,
55
- args: [{
56
- // eslint-disable-next-line @angular-eslint/component-selector
57
- selector: 'nuc-loaded-content-component',
58
- templateUrl: './loaded-content-component.html',
59
- styleUrls: ['./loaded-content-component.scss']
60
- }]
61
- }], propDecorators: { completedTemplate: [{
62
- type: Input
63
- }], errorTemplate: [{
64
- type: Input
65
- }], inProgressTemplate: [{
66
- type: Input
67
- }], state: [{
68
- type: Input
69
- }], inProgressMessage: [{
70
- type: Input
71
- }], errorMessage: [{
72
- type: Input
73
- }], showRetry: [{
74
- type: Input
75
- }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVkLWNvbnRlbnQtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnVjbGV1cy1tYXRlcmlhbC9zcmMvbGliL2xvYWRlZC1jb250ZW50L2xvYWRlZC1jb250ZW50LWNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251Y2xldXMtbWF0ZXJpYWwvc3JjL2xpYi9sb2FkZWQtY29udGVudC9sb2FkZWQtY29udGVudC1jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBUTlELE1BQU0sT0FBTyx5QkFBeUI7SUFOdEM7UUFRVSx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFrQjlCLGlCQUFZLEdBQUcseUNBQXlDLENBQUM7UUFHekQsY0FBUyxHQUFHLElBQUksQ0FBQztLQTBDekI7SUF4Q0MsSUFBVyxPQUFPO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7U0FDM0I7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLE1BQU0sRUFBRTtnQkFDOUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzFCO2lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLFVBQVUsRUFBRTtnQkFDekQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7YUFDL0I7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQ2xFLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztTQUNuQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxTQUFTLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUNuQyxDQUFDOztzSEFoRVUseUJBQXlCOzBHQUF6Qix5QkFBeUIsZ1RDVHRDLHU3Q0E2Q0E7MkZEcENhLHlCQUF5QjtrQkFOckMsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2lCQUMvQzs4QkFNQyxpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9hZGluZ1N0YXRlLCBMb2FkaW5nU3RhdHVzIH0gZnJvbSAnLi9sb2FkaW5nLXN0YXRlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdudWMtbG9hZGVkLWNvbnRlbnQtY29tcG9uZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGVkLWNvbnRlbnQtY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvYWRlZC1jb250ZW50LWNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE51Y0xvYWRlZENvbnRlbnRDb21wb25lbnQge1xyXG5cclxuICBwcml2YXRlIF9lcnJvckRldGFpbHNWaXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29tcGxldGVkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZXJyb3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQElucHV0KClcclxuICBpblByb2dyZXNzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHN0YXRlOiBMb2FkaW5nU3RhdGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGluUHJvZ3Jlc3NNZXNzYWdlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGVycm9yTWVzc2FnZSA9ICdXZSBhcmUgaGF2aW5nIHRyb3VibGUgbG9hZGluZyB0aGUgZGF0YS4nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93UmV0cnkgPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgZ2V0IG1lc3NhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5tZXNzYWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUubWVzc2FnZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXRlLnN0YXR1cyA9PT0gTG9hZGluZ1N0YXR1cy5mYWlsZWQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5zdGF0dXMgPT09IExvYWRpbmdTdGF0dXMuaW5Qcm9ncmVzcykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmluUHJvZ3Jlc3NNZXNzYWdlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd1JldHJ5QnV0dG9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd1JldHJ5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpblByb2dyZXNzKCkge1xyXG4gICAgY29uc3QgaW5Qcm9ncmVzcyA9IHRoaXMuc3RhdGUuc3RhdHVzID09PSBMb2FkaW5nU3RhdHVzLmluUHJvZ3Jlc3M7XHJcbiAgICBpZiAoaW5Qcm9ncmVzcykge1xyXG4gICAgICB0aGlzLl9lcnJvckRldGFpbHNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaW5Qcm9ncmVzcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmFpbGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc3RhdHVzID09PSBMb2FkaW5nU3RhdHVzLmZhaWxlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29tcGxldGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc3RhdHVzID09PSBMb2FkaW5nU3RhdHVzLmNvbXBsZXRlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZXJyb3JEZXRhaWxzVmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9lcnJvckRldGFpbHNWaXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dFcnJvckRldGFpbHMoKSB7XHJcbiAgICB0aGlzLl9lcnJvckRldGFpbHNWaXNpYmxlID0gdHJ1ZTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbXBsZXRlZFwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb21wbGV0ZWRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxkaXYgY2xhc3M9XCJpbmRpY2F0b3JzLWNvbnRhaW5lclwiICpuZ0lmPVwiaW5Qcm9ncmVzcyB8fCBmYWlsZWRcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5Qcm9ncmVzc1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImluUHJvZ3Jlc3NUZW1wbGF0ZSA/IGluUHJvZ3Jlc3NUZW1wbGF0ZTogZGVmYXVsdEluUHJvZ3Jlc3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJmYWlsZWRcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvclRlbXBsYXRlID8gZXJyb3JUZW1wbGF0ZTogZGVmYXVsdEVycm9yVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRJblByb2dyZXNzVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cInNwaW5uZXJcIj5cclxuICAgIDxtYXQtc3Bpbm5lciBbZGlhbWV0ZXJdPVwiNDVcIj48L21hdC1zcGlubmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxwPlxyXG4gICAge3ttZXNzYWdlfX1cclxuICA8L3A+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRFcnJvclRlbXBsYXRlPlxyXG4gIDxkaXY+XHJcbiAgICA8cD5cclxuICAgICAge3ttZXNzYWdlfX1cclxuICAgIDwvcD5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwic3RhdGUuZXJyb3JEZXRhaWxzXCI+XHJcbiAgICAgIDxidXR0b24gKm5nSWY9XCIhZXJyb3JEZXRhaWxzVmlzaWJsZVwiIG1hdC1idXR0b24gY29sb3I9XCJ3YXJuXCIgKGNsaWNrKT1cInNob3dFcnJvckRldGFpbHMoKVwiPnNob3cgZGV0YWlsczwvYnV0dG9uPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cImVycm9yRGV0YWlsc1Zpc2libGVcIiBjbGFzcz1cImVycm9yLWRldGFpbHMgbWF0LXNtYWxsXCI+XHJcbiAgICAgICAgPHN0cm9uZz5kZXRhaWxzOjwvc3Ryb25nPjxiciAvPlxyXG4gICAgICAgIDxwPnt7c3RhdGUuZXJyb3JEZXRhaWxzfX08L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHAgKm5nSWY9XCJzaG93UmV0cnlCdXR0b25cIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInN0YXRlLnJldHJ5KClcIj5cclxuICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9wPlxyXG5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -1,93 +0,0 @@
1
- import { tap } from 'rxjs/operators';
2
- export var LoadingStatus;
3
- (function (LoadingStatus) {
4
- LoadingStatus[LoadingStatus["completed"] = 0] = "completed";
5
- LoadingStatus[LoadingStatus["inProgress"] = 1] = "inProgress";
6
- LoadingStatus[LoadingStatus["failed"] = 2] = "failed";
7
- LoadingStatus[LoadingStatus["undefined"] = 3] = "undefined";
8
- })(LoadingStatus || (LoadingStatus = {}));
9
- export class LoadingState {
10
- constructor() {
11
- this._status = LoadingStatus.undefined;
12
- this._message = null;
13
- this._errorDetails = null;
14
- this._lastSubscription = null;
15
- }
16
- get status() {
17
- return this._status;
18
- }
19
- get message() {
20
- return this._message;
21
- }
22
- get errorDetails() {
23
- return this._errorDetails;
24
- }
25
- load(observable, resultFunction, errorFunction, completeFunction) {
26
- return this._load(true, null, observable, resultFunction, errorFunction, completeFunction);
27
- }
28
- loadWithMessage(observable, message, resultFunction, errorFunction, completeFunction) {
29
- return this._load(true, message, observable, resultFunction, errorFunction, completeFunction);
30
- }
31
- invoke(observable, resultFunction, errorFunction, completeFunction) {
32
- return this._load(false, null, observable, resultFunction, errorFunction, completeFunction);
33
- }
34
- invokeWithMessage(observable, message, resultFunction, errorFunction, completeFunction) {
35
- return this._load(false, message, observable, resultFunction, errorFunction, completeFunction);
36
- }
37
- retry() {
38
- if (this._lastSubscription) {
39
- this._lastSubscription.unsubscribe();
40
- }
41
- this.setInProgress();
42
- this._lastSubscription = this._loadObservable.subscribe(this._resultFunction, this._errorFunction, this._completeFunction);
43
- return this._lastSubscription;
44
- }
45
- setInProgress(message = null) {
46
- this._status = LoadingStatus.inProgress;
47
- this._message = message;
48
- }
49
- setCompleted() {
50
- this._status = LoadingStatus.completed;
51
- }
52
- setFailed(message = null, error = null) {
53
- this._status = LoadingStatus.failed;
54
- this._message = message;
55
- this._errorDetails = error;
56
- }
57
- _load(saveAsLoadObservable, progressMessage, observable, resultFunction, errorFunction, completeFunction) {
58
- if (this._lastSubscription) {
59
- this._lastSubscription.unsubscribe();
60
- }
61
- this.setInProgress(progressMessage);
62
- const obs = observable.pipe(tap(() => {
63
- if (!saveAsLoadObservable && this.message) { // if message was used one time we clear it
64
- this._message = null;
65
- }
66
- this.setCompleted();
67
- }, (err) => {
68
- this.setFailed(null, LoadingState.getErrorDetails(err));
69
- }));
70
- if (saveAsLoadObservable) {
71
- this._loadObservable = obs;
72
- this._resultFunction = resultFunction;
73
- this._errorFunction = errorFunction;
74
- this._completeFunction = completeFunction;
75
- }
76
- this._lastSubscription = this._loadObservable.subscribe(this._resultFunction, this._errorFunction, this._completeFunction);
77
- return this._lastSubscription;
78
- }
79
- static getErrorDetails(error) {
80
- // this routine tries to get the best error details from:
81
- // - standard rfc7807 http error: https://datatracker.ietf.org/doc/html/rfc7807
82
- // - angular HttpError
83
- // - JS Error object
84
- const problem = error === null || error === void 0 ? void 0 : error.error;
85
- if ((problem === null || problem === void 0 ? void 0 : problem.title) && (problem === null || problem === void 0 ? void 0 : problem.detail)) {
86
- return `${problem.title}: ${problem.detail}`;
87
- }
88
- else {
89
- return (problem === null || problem === void 0 ? void 0 : problem.title) || (problem === null || problem === void 0 ? void 0 : problem.detail) || error.message || error;
90
- }
91
- }
92
- }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251Y2xldXMtbWF0ZXJpYWwvc3JjL2xpYi9sb2FkZWQtY29udGVudC9sb2FkaW5nLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxNQUFNLENBQU4sSUFBWSxhQUEwRDtBQUF0RSxXQUFZLGFBQWE7SUFBRywyREFBUyxDQUFBO0lBQUUsNkRBQVUsQ0FBQTtJQUFFLHFEQUFNLENBQUE7SUFBRSwyREFBUyxDQUFBO0FBQUMsQ0FBQyxFQUExRCxhQUFhLEtBQWIsYUFBYSxRQUE2QztBQUV0RSxNQUFNLE9BQU8sWUFBWTtJQUF6QjtRQUNVLFlBQU8sR0FBa0IsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUNqRCxhQUFRLEdBQVcsSUFBSSxDQUFDO1FBQ3hCLGtCQUFhLEdBQVcsSUFBSSxDQUFDO1FBSzdCLHNCQUFpQixHQUFpQixJQUFJLENBQUM7SUErSGpELENBQUM7SUE3SEMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRU0sSUFBSSxDQUNQLFVBQXlCLEVBQ3pCLGNBQW9DLEVBQ3BDLGFBQWtELEVBQ2xELGdCQUE2QjtRQUUvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFTSxlQUFlLENBQ2xCLFVBQXlCLEVBQ3pCLE9BQWUsRUFDZixjQUFvQyxFQUNw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LENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7U0FDM0M7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzNILE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQVU7UUFDdEMseURBQXlEO1FBQ3pELCtFQUErRTtRQUMvRSxzQkFBc0I7UUFDdEIsb0JBQW9CO1FBRXBCLE1BQU0sT0FBTyxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLE1BQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sQ0FBQSxFQUFFO1lBQ3JDLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM5QzthQUFNO1lBQ0wsT0FBTyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLE1BQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sQ0FBQSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5leHBvcnQgZW51bSBMb2FkaW5nU3RhdHVzIHsgY29tcGxldGVkLCBpblByb2dyZXNzLCBmYWlsZWQsIHVuZGVmaW5lZCB9XHJcblxyXG5leHBvcnQgY2xhc3MgTG9hZGluZ1N0YXRlIHtcclxuICBwcml2YXRlIF9zdGF0dXM6IExvYWRpbmdTdGF0dXMgPSBMb2FkaW5nU3RhdHVzLnVuZGVmaW5lZDtcclxuICBwcml2YXRlIF9tZXNzYWdlOiBzdHJpbmcgPSBudWxsO1xyXG4gIHByaXZhdGUgX2Vycm9yRGV0YWlsczogc3RyaW5nID0gbnVsbDtcclxuICBwcml2YXRlIF9yZXN1bHRGdW5jdGlvbjogKHJlc3VsdDogYW55KSA9PiB2b2lkO1xyXG4gIHByaXZhdGUgX2Vycm9yRnVuY3Rpb246IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHZvaWQ7XHJcbiAgcHJpdmF0ZSBfY29tcGxldGVGdW5jdGlvbjogKCkgPT4gdm9pZDtcclxuICBwcml2YXRlIF9sb2FkT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIHByaXZhdGUgX2xhc3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gIGdldCBzdGF0dXMoKTogTG9hZGluZ1N0YXR1cyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1lc3NhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9tZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVycm9yRGV0YWlscygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Vycm9yRGV0YWlscztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkPFQ+KFxyXG4gICAgICBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFQ+LFxyXG4gICAgICByZXN1bHRGdW5jdGlvbj86IChyZXN1bHQ6IFQpID0+IHZvaWQsXHJcbiAgICAgIGVycm9yRnVuY3Rpb24/OiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkLFxyXG4gICAgICBjb21wbGV0ZUZ1bmN0aW9uPzogKCkgPT4gdm9pZFxyXG4gICk6IFN1YnNjcmlwdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9hZCh0cnVlLCBudWxsLCBvYnNlcnZhYmxlLCByZXN1bHRGdW5jdGlvbiwgZXJyb3JGdW5jdGlvbiwgY29tcGxldGVGdW5jdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9hZFdpdGhNZXNzYWdlPFQ+KFxyXG4gICAgICBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFQ+LFxyXG4gICAgICBtZXNzYWdlOiBzdHJpbmcsXHJcbiAgICAgIHJlc3VsdEZ1bmN0aW9uPzogKHJlc3VsdDogVCkgPT4gdm9pZCxcclxuICAgICAgZXJyb3JGdW5jdGlvbj86IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHZvaWQsXHJcbiAgICAgIGNvbXBsZXRlRnVuY3Rpb24/OiAoKSA9PiB2b2lkXHJcbiAgKTogU3Vic2NyaXB0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLl9sb2FkKHRydWUsIG1lc3NhZ2UsIG9ic2VydmFibGUsIHJlc3VsdEZ1bmN0aW9uLCBlcnJvckZ1bmN0aW9uLCBjb21wbGV0ZUZ1bmN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnZva2U8VD4oXHJcbiAgICAgIG9ic2VydmFibGU6IE9ic2VydmFibGU8VD4sXHJcbiAgICAgIHJlc3VsdEZ1bmN0aW9uPzogKHJlc3VsdDogVCkgPT4gdm9pZCxcclxuICAgICAgZXJyb3JGdW5jdGlvbj86IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHZvaWQsXHJcbiAgICAgIGNvbXBsZXRlRnVuY3Rpb24/OiAoKSA9PiB2b2lkXHJcbiAgKTogU3Vic2NyaXB0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLl9sb2FkKGZhbHNlLCBudWxsLCBvYnNlcnZhYmxlLCByZXN1bHRGdW5jdGlvbiwgZXJyb3JGdW5jdGlvbiwgY29tcGxldGVGdW5jdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW52b2tlV2l0aE1lc3NhZ2U8VD4oXHJcbiAgICAgIG9ic2VydmFibGU6IE9ic2VydmFibGU8VD4sXHJcbiAgICAgIG1lc3NhZ2U6IHN0cmluZyxcclxuICAgICAgcmVzdWx0RnVuY3Rpb24/OiAocmVzdWx0OiBUKSA9PiB2b2lkLFxyXG4gICAgICBlcnJvckZ1bmN0aW9uPzogKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdm9pZCxcclxuICAgICAgY29tcGxldGVGdW5jdGlvbj86ICgpID0+IHZvaWRcclxuICApOiBTdWJzY3JpcHRpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvYWQoZmFsc2UsIG1lc3NhZ2UsIG9ic2VydmFibGUsIHJlc3VsdEZ1bmN0aW9uLCBlcnJvckZ1bmN0aW9uLCBjb21wbGV0ZUZ1bmN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXRyeSgpIHtcclxuICAgIGlmICh0aGlzLl9sYXN0U3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuX2xhc3RTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0SW5Qcm9ncmVzcygpO1xyXG4gICAgdGhpcy5fbGFzdFN1YnNjcmlwdGlvbiA9IHRoaXMuX2xvYWRPYnNlcnZhYmxlLnN1YnNjcmliZSh0aGlzLl9yZXN1bHRGdW5jdGlvbiwgdGhpcy5fZXJyb3JGdW5jdGlvbiwgdGhpcy5fY29tcGxldGVGdW5jdGlvbik7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFzdFN1YnNjcmlwdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRJblByb2dyZXNzKG1lc3NhZ2U6IHN0cmluZyA9IG51bGwpIHtcclxuICAgIHRoaXMuX3N0YXR1cyA9IExvYWRpbmdTdGF0dXMuaW5Qcm9ncmVzcztcclxuICAgIHRoaXMuX21lc3NhZ2UgPSBtZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldENvbXBsZXRlZCgpIHtcclxuICAgIHRoaXMuX3N0YXR1cyA9IExvYWRpbmdTdGF0dXMuY29tcGxldGVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEZhaWxlZChtZXNzYWdlOiBzdHJpbmcgPSBudWxsLCBlcnJvcjogc3RyaW5nID0gbnVsbCkge1xyXG4gICAgdGhpcy5fc3RhdHVzID0gTG9hZGluZ1N0YXR1cy5mYWlsZWQ7XHJcbiAgICB0aGlzLl9tZXNzYWdlID0gbWVzc2FnZTtcclxuICAgIHRoaXMuX2Vycm9yRGV0YWlscyA9IGVycm9yO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9hZDxUPihcclxuICAgICAgc2F2ZUFzTG9hZE9ic2VydmFibGU6IGJvb2xlYW4sXHJcbiAgICAgIHByb2dyZXNzTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgICBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFQ+LFxyXG4gICAgICByZXN1bHRGdW5jdGlvbj86IChyZXN1bHQ6IFQpID0+IHZvaWQsXHJcbiAgICAgIGVycm9yRnVuY3Rpb24/OiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkLFxyXG4gICAgICBjb21wbGV0ZUZ1bmN0aW9uPzogKCkgPT4gdm9pZFxyXG4gICk6IFN1YnNjcmlwdGlvbiB7XHJcbiAgICBpZiAodGhpcy5fbGFzdFN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLl9sYXN0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXRJblByb2dyZXNzKHByb2dyZXNzTWVzc2FnZSk7XHJcbiAgICBjb25zdCBvYnMgPSBvYnNlcnZhYmxlLnBpcGUoXHJcbiAgICAgIHRhcChcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXNhdmVBc0xvYWRPYnNlcnZhYmxlICYmIHRoaXMubWVzc2FnZSkgeyAvLyBpZiBtZXNzYWdlIHdhcyB1c2VkIG9uZSB0aW1lIHdlIGNsZWFyIGl0XHJcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRDb21wbGV0ZWQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0RmFpbGVkKG51bGwsIExvYWRpbmdTdGF0ZS5nZXRFcnJvckRldGFpbHMoZXJyKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChzYXZlQXNMb2FkT2JzZXJ2YWJsZSkge1xyXG4gICAgICB0aGlzLl9sb2FkT2JzZXJ2YWJsZSA9IG9icztcclxuICAgICAgdGhpcy5fcmVzdWx0RnVuY3Rpb24gPSByZXN1bHRGdW5jdGlvbjtcclxuICAgICAgdGhpcy5fZXJyb3JGdW5jdGlvbiA9IGVycm9yRnVuY3Rpb247XHJcbiAgICAgIHRoaXMuX2NvbXBsZXRlRnVuY3Rpb24gPSBjb21wbGV0ZUZ1bmN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2xhc3RTdWJzY3JpcHRpb24gPSB0aGlzLl9sb2FkT2JzZXJ2YWJsZS5zdWJzY3JpYmUodGhpcy5fcmVzdWx0RnVuY3Rpb24sIHRoaXMuX2Vycm9yRnVuY3Rpb24sIHRoaXMuX2NvbXBsZXRlRnVuY3Rpb24pO1xyXG4gICAgcmV0dXJuIHRoaXMuX2xhc3RTdWJzY3JpcHRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEVycm9yRGV0YWlscyhlcnJvcjogYW55KSB7XHJcbiAgICAvLyB0aGlzIHJvdXRpbmUgdHJpZXMgdG8gZ2V0IHRoZSBiZXN0IGVycm9yIGRldGFpbHMgZnJvbTpcclxuICAgIC8vIC0gc3RhbmRhcmQgcmZjNzgwNyBodHRwIGVycm9yOiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzc4MDdcclxuICAgIC8vIC0gYW5ndWxhciBIdHRwRXJyb3JcclxuICAgIC8vIC0gSlMgRXJyb3Igb2JqZWN0XHJcblxyXG4gICAgY29uc3QgcHJvYmxlbSA9IGVycm9yPy5lcnJvcjtcclxuICAgIGlmIChwcm9ibGVtPy50aXRsZSAmJiBwcm9ibGVtPy5kZXRhaWwpIHtcclxuICAgICAgcmV0dXJuIGAke3Byb2JsZW0udGl0bGV9OiAke3Byb2JsZW0uZGV0YWlsfWA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gcHJvYmxlbT8udGl0bGUgfHwgcHJvYmxlbT8uZGV0YWlsIHx8IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3I7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,55 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- export class NucUserAvatarComponent {
5
- constructor() {
6
- this.size = 'medium';
7
- this.background = false;
8
- }
9
- getUserInitials() {
10
- const nameParts = this.name.split(' ');
11
- return nameParts[0].charAt(0).toUpperCase() + '' + nameParts[nameParts.length - 1].charAt(0).toUpperCase();
12
- }
13
- getHslString() {
14
- if (!this.background) {
15
- return `hsl(${0},${0}%,${100}%)`;
16
- }
17
- let hash = 0;
18
- for (let i = 0; i < this.name.length; i++) {
19
- /*
20
- * Javascript uses double precision floating-point format for all numerical datatypes.
21
- * Except when using bitwise operations, where operators are converted to 32-bit signed integers.
22
- * Result of bitwise operations are then converted back to double precision floating-point format.
23
- *
24
- * We make a bitwise OR operation between the new hash and 0.
25
- * This keeps only the lower 32 bits in the new hash value.
26
- */
27
- // eslint-disable-next-line no-bitwise
28
- hash = (this.name.charCodeAt(i) + ((hash << 15) - hash)) | 0;
29
- }
30
- const hue = Math.abs(hash % 360);
31
- const lightness = 49.2;
32
- const saturation = 42.6;
33
- return `hsl(${hue},${saturation}%,${lightness}%)`;
34
- }
35
- }
36
- NucUserAvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.3", ngImport: i0, type: NucUserAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
- NucUserAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.3", type: NucUserAvatarComponent, selector: "nuc-user-avatar", inputs: { name: "name", image: "image", size: "size", background: "background" }, ngImport: i0, template: "<ng-container *ngIf=\"image\">\r\n <div class=\"user-avatar size-{{size}}\">\r\n <img src=\"{{image}}\" />\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!image\">\r\n <div class=\"user-avatar size-{{size}} unselectable\" [style.background-color]=\"getHslString()\" [ngClass]=\"{'white-text': background, 'black-text border': !background}\">\r\n {{getUserInitials()}}\r\n </div>\r\n</ng-container>\r\n", styles: [".user-avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;position:relative;text-align:center;font-weight:400}.user-avatar img{-o-object-fit:contain;object-fit:contain;width:inherit;height:inherit;border-radius:50%}.white-text{color:#fff}.black-text{color:#333}.unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.border{border:2px solid #333333}.user-avatar.size-small{height:24px;width:24px;font-size:.8em;line-height:24px}.user-avatar.size-medium{height:40px;width:40px;font-size:1.2em;line-height:40px}.user-avatar.size-large{height:64px;width:64px;font-size:2em;line-height:64px}.user-avatar.size-xlarge{height:90px;width:90px;font-size:3em;line-height:90px}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.3", ngImport: i0, type: NucUserAvatarComponent, decorators: [{
39
- type: Component,
40
- args: [{
41
- // eslint-disable-next-line @angular-eslint/component-selector
42
- selector: 'nuc-user-avatar',
43
- templateUrl: './user-avatar-component.html',
44
- styleUrls: ['./user-avatar-component.scss']
45
- }]
46
- }], ctorParameters: function () { return []; }, propDecorators: { name: [{
47
- type: Input
48
- }], image: [{
49
- type: Input
50
- }], size: [{
51
- type: Input
52
- }], background: [{
53
- type: Input
54
- }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnVjbGV1cy1tYXRlcmlhbC9zcmMvbGliL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLWNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251Y2xldXMtbWF0ZXJpYWwvc3JjL2xpYi91c2VyLWF2YXRhci91c2VyLWF2YXRhci1jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBV2pELE1BQU0sT0FBTyxzQkFBc0I7SUFPakM7UUFIUyxTQUFJLEdBQWUsUUFBUSxDQUFDO1FBQzVCLGVBQVUsR0FBZSxLQUFLLENBQUM7SUFHeEMsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3RyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ2xDO1FBR0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pDOzs7Ozs7O2VBT0c7WUFDSCxzQ0FBc0M7WUFDdEMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM5RDtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQztRQUN2QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFeEIsT0FBTyxPQUFPLEdBQUcsSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLENBQUM7SUFDcEQsQ0FBQzs7bUhBekNVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHlJQ1huQywwYUFXQTsyRkRBYSxzQkFBc0I7a0JBUGxDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsOEJBQThCO29CQUMzQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztpQkFDNUM7MEVBSVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuZXhwb3J0IHR5cGUgQXZhdGFyU2l6ZSA9ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneGxhcmdlJztcclxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZCA9IHRydWUgfCBmYWxzZTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdudWMtdXNlci1hdmF0YXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWF2YXRhci1jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1hdmF0YXItY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE51Y1VzZXJBdmF0YXJDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaW1hZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBzaXplOiBBdmF0YXJTaXplID0gJ21lZGl1bSc7XHJcbiAgQElucHV0KCkgYmFja2dyb3VuZDogQmFja2dyb3VuZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcblxyXG4gIGdldFVzZXJJbml0aWFscygpIHtcclxuICAgIGNvbnN0IG5hbWVQYXJ0cyA9IHRoaXMubmFtZS5zcGxpdCgnICcpO1xyXG4gICAgcmV0dXJuIG5hbWVQYXJ0c1swXS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArICcnICsgbmFtZVBhcnRzW25hbWVQYXJ0cy5sZW5ndGggLSAxXS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIGdldEhzbFN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLmJhY2tncm91bmQpIHtcclxuICAgICAgcmV0dXJuIGBoc2woJHswfSwkezB9JSwkezEwMH0lKWA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGxldCBoYXNoID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5uYW1lLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIC8qXHJcbiAgICAgICAqIEphdmFzY3JpcHQgdXNlcyBkb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IGZvcm1hdCBmb3IgYWxsIG51bWVyaWNhbCBkYXRhdHlwZXMuXHJcbiAgICAgICAqIEV4Y2VwdCB3aGVuIHVzaW5nIGJpdHdpc2Ugb3BlcmF0aW9ucywgd2hlcmUgb3BlcmF0b3JzIGFyZSBjb252ZXJ0ZWQgdG8gMzItYml0IHNpZ25lZCBpbnRlZ2Vycy5cclxuICAgICAgICogUmVzdWx0IG9mIGJpdHdpc2Ugb3BlcmF0aW9ucyBhcmUgdGhlbiBjb252ZXJ0ZWQgYmFjayB0byBkb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IGZvcm1hdC5cclxuICAgICAgICpcclxuICAgICAgICogV2UgbWFrZSBhIGJpdHdpc2UgT1Igb3BlcmF0aW9uIGJldHdlZW4gdGhlIG5ldyBoYXNoIGFuZCAwLlxyXG4gICAgICAgKiBUaGlzIGtlZXBzIG9ubHkgdGhlIGxvd2VyIDMyIGJpdHMgaW4gdGhlIG5ldyBoYXNoIHZhbHVlLlxyXG4gICAgICAgKi9cclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcclxuICAgICAgaGFzaCA9ICh0aGlzLm5hbWUuY2hhckNvZGVBdChpKSArICgoaGFzaCA8PCAxNSkgLSBoYXNoKSkgfCAwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGh1ZSA9IE1hdGguYWJzKGhhc2ggJSAzNjApO1xyXG5cclxuICAgIGNvbnN0IGxpZ2h0bmVzcyA9IDQ5LjI7XHJcbiAgICBjb25zdCBzYXR1cmF0aW9uID0gNDIuNjtcclxuXHJcbiAgICByZXR1cm4gYGhzbCgke2h1ZX0sJHtzYXR1cmF0aW9ufSUsJHtsaWdodG5lc3N9JSlgO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaW1hZ2VcIj5cclxuICA8ZGl2IGNsYXNzPVwidXNlci1hdmF0YXIgc2l6ZS17e3NpemV9fVwiPlxyXG4gICAgPGltZyBzcmM9XCJ7e2ltYWdlfX1cIiAgLz5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWltYWdlXCI+XHJcbiAgPGRpdiBjbGFzcz1cInVzZXItYXZhdGFyIHNpemUte3tzaXplfX0gdW5zZWxlY3RhYmxlXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0SHNsU3RyaW5nKClcIiBbbmdDbGFzc109XCJ7J3doaXRlLXRleHQnOiBiYWNrZ3JvdW5kLCAnYmxhY2stdGV4dCBib3JkZXInOiAhYmFja2dyb3VuZH1cIj5cclxuICAgIHt7Z2V0VXNlckluaXRpYWxzKCl9fVxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19