@abp/ng.account 5.0.0-rc.1 → 5.1.1
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/README.md +3 -3
- package/config/package.json +5 -5
- package/{esm2015/abp-ng.account.js → esm2020/abp-ng.account.mjs} +0 -0
- package/{esm2015/config/abp-ng.account-config.js → esm2020/config/abp-ng.account-config.mjs} +0 -0
- package/{esm2015/config/account-config.module.js → esm2020/config/account-config.module.mjs} +5 -5
- package/{esm2015/config/enums/index.js → esm2020/config/enums/index.mjs} +1 -1
- package/esm2020/config/enums/route-names.mjs +2 -0
- package/{esm2015/config/providers/index.js → esm2020/config/providers/index.mjs} +1 -1
- package/{esm2015/config/providers/route.provider.js → esm2020/config/providers/route.provider.mjs} +1 -1
- package/{esm2015/config/public-api.js → esm2020/config/public-api.mjs} +1 -1
- package/{esm2015/config/utils/factories.js → esm2020/config/utils/factories.mjs} +1 -1
- package/{esm2015/lib/account-routing.module.js → esm2020/lib/account-routing.module.mjs} +7 -7
- package/{esm2015/lib/account.module.js → esm2020/lib/account.module.mjs} +5 -5
- package/esm2020/lib/components/change-password/change-password.component.mjs +87 -0
- package/esm2020/lib/components/forgot-password/forgot-password.component.mjs +43 -0
- package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +1 -1
- package/esm2020/lib/components/login/login.component.mjs +64 -0
- package/esm2020/lib/components/manage-profile/manage-profile.component.mjs +45 -0
- package/esm2020/lib/components/personal-settings/personal-settings.component.mjs +55 -0
- package/esm2020/lib/components/register/register.component.mjs +83 -0
- package/esm2020/lib/components/reset-password/reset-password.component.mjs +68 -0
- package/esm2020/lib/enums/components.mjs +2 -0
- package/{esm2015/lib/enums/index.js → esm2020/lib/enums/index.mjs} +1 -1
- package/{esm2015/lib/guards/authentication-flow.guard.js → esm2020/lib/guards/authentication-flow.guard.mjs} +4 -4
- package/{esm2015/lib/guards/index.js → esm2020/lib/guards/index.mjs} +1 -1
- package/esm2020/lib/models/account.mjs +3 -0
- package/{esm2015/lib/models/config-options.js → esm2020/lib/models/config-options.mjs} +1 -1
- package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +1 -1
- package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +1 -1
- package/{esm2015/lib/services/manage-profile.state.service.js → esm2020/lib/services/manage-profile.state.service.mjs} +4 -4
- package/{esm2015/lib/tokens/config-options.token.js → esm2020/lib/tokens/config-options.token.mjs} +1 -1
- package/{esm2015/lib/tokens/index.js → esm2020/lib/tokens/index.mjs} +1 -1
- package/{esm2015/lib/utils/auth-utils.js → esm2020/lib/utils/auth-utils.mjs} +1 -1
- package/esm2020/lib/utils/factory-utils.mjs +7 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +1 -1
- package/fesm2015/{abp-ng.account-config.js → abp-ng.account-config.mjs} +5 -5
- package/fesm2015/abp-ng.account-config.mjs.map +1 -0
- package/fesm2015/abp-ng.account.mjs +571 -0
- package/fesm2015/abp-ng.account.mjs.map +1 -0
- package/fesm2020/abp-ng.account-config.mjs +90 -0
- package/fesm2020/abp-ng.account-config.mjs.map +1 -0
- package/fesm2020/abp-ng.account.mjs +575 -0
- package/fesm2020/abp-ng.account.mjs.map +1 -0
- package/package.json +30 -9
- package/bundles/abp-ng.account-config.umd.js +0 -120
- package/bundles/abp-ng.account-config.umd.js.map +0 -1
- package/bundles/abp-ng.account.umd.js +0 -974
- package/bundles/abp-ng.account.umd.js.map +0 -1
- package/esm2015/config/enums/route-names.js +0 -2
- package/esm2015/lib/components/change-password/change-password.component.js +0 -90
- package/esm2015/lib/components/forgot-password/forgot-password.component.js +0 -46
- package/esm2015/lib/components/login/login.component.js +0 -68
- package/esm2015/lib/components/manage-profile/manage-profile.component.js +0 -50
- package/esm2015/lib/components/personal-settings/personal-settings.component.js +0 -59
- package/esm2015/lib/components/register/register.component.js +0 -87
- package/esm2015/lib/components/reset-password/reset-password.component.js +0 -71
- package/esm2015/lib/enums/components.js +0 -2
- package/esm2015/lib/models/account.js +0 -3
- package/esm2015/lib/utils/factory-utils.js +0 -4
- package/fesm2015/abp-ng.account-config.js.map +0 -1
- package/fesm2015/abp-ng.account.js +0 -598
- package/fesm2015/abp-ng.account.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abp-ng.account.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../packages/account/src/lib/components/forgot-password/forgot-password.component.ts","../../../../packages/account/src/lib/components/forgot-password/forgot-password.component.html","../../../../packages/account/src/lib/tokens/config-options.token.ts","../../../../packages/account/src/lib/utils/auth-utils.ts","../../../../packages/account/src/lib/components/login/login.component.ts","../../../../packages/account/src/lib/components/login/login.component.html","../../../../packages/account/src/lib/services/manage-profile.state.service.ts","../../../../packages/account/src/lib/components/change-password/change-password.component.ts","../../../../packages/account/src/lib/components/change-password/change-password.component.html","../../../../packages/account/src/lib/components/personal-settings/personal-settings.component.ts","../../../../packages/account/src/lib/components/personal-settings/personal-settings.component.html","../../../../packages/account/src/lib/components/manage-profile/manage-profile.component.ts","../../../../packages/account/src/lib/components/manage-profile/manage-profile.component.html","../../../../packages/account/src/lib/components/register/register.component.ts","../../../../packages/account/src/lib/components/register/register.component.html","../../../../packages/account/src/lib/components/reset-password/reset-password.component.ts","../../../../packages/account/src/lib/components/reset-password/reset-password.component.html","../../../../packages/account/src/lib/guards/authentication-flow.guard.ts","../../../../packages/account/src/lib/account-routing.module.ts","../../../../packages/account/src/lib/utils/factory-utils.ts","../../../../packages/account/src/lib/account.module.ts","../../../../packages/account/src/abp-ng.account.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 { AccountService } from '@abp/ng.account.core/proxy';\nimport { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { finalize } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-forgot-password',\n templateUrl: 'forgot-password.component.html',\n})\nexport class ForgotPasswordComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n isEmailSent = false;\n\n constructor(private fb: FormBuilder, private accountService: AccountService) {\n this.form = this.fb.group({\n email: ['', [Validators.required, Validators.email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.inProgress = true;\n\n this.accountService\n .sendPasswordResetCode({\n email: this.form.get('email').value,\n appName: 'Angular',\n })\n .pipe(finalize(() => (this.inProgress = false)))\n .subscribe(() => {\n this.isEmailSent = true;\n });\n }\n}\n","<h4>{{ 'AbpAccount::ForgotPassword' | abpLocalization }}</h4>\n\n<form\n *ngIf=\"!isEmailSent; else emailSentTemplate\"\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit()\"\n validateOnSubmit\n>\n <p>{{ 'AbpAccount::SendPasswordResetLink_Information' | abpLocalization }}</p>\n <div class=\"mb-3 form-group\">\n <label for=\"input-email-address\" class=\"form-label\">{{\n 'AbpAccount::EmailAddress' | abpLocalization\n }}</label\n ><span> * </span>\n <input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <abp-button\n class=\"d-block\"\n buttonClass=\"mt-2 mb-3 btn btn-primary btn-block\"\n [loading]=\"inProgress\"\n buttonType=\"submit\"\n [disabled]=\"form?.invalid\"\n >\n {{ 'AbpAccount::Submit' | abpLocalization }}\n </abp-button>\n <a routerLink=\"/account/login\"\n ><i class=\"fa fa-long-arrow-left me-1\"></i>{{ 'AbpAccount::Login' | abpLocalization }}</a\n >\n</form>\n\n<ng-template #emailSentTemplate>\n <p>\n {{ 'AbpAccount::PasswordResetMailSentMessage' | abpLocalization }}\n </p>\n\n <a routerLink=\"/account/login\">\n <button class=\"d-block mt-2 mb-3 btn btn-primary btn-block\">\n <i class=\"fa fa-long-arrow-left me-1\"></i>\n {{ 'AbpAccount::BackToLogin' | abpLocalization }}\n </button>\n </a>\n</ng-template>\n","import { InjectionToken } from '@angular/core';\nimport { AccountConfigOptions } from '../models/config-options';\n\nexport const ACCOUNT_CONFIG_OPTIONS = new InjectionToken<AccountConfigOptions>(\n 'ACCOUNT_CONFIG_OPTIONS',\n);\n","import { Injector } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ACCOUNT_CONFIG_OPTIONS } from '../tokens/config-options.token';\n\nexport function getRedirectUrl(injector: Injector) {\n const route = injector.get(ActivatedRoute);\n const options = injector.get(ACCOUNT_CONFIG_OPTIONS);\n return route.snapshot.queryParams.returnUrl || options.redirectUrl || '/';\n}\n","import { AuthService, ConfigStateService } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, Injector, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { throwError } from 'rxjs';\nimport { catchError, finalize } from 'rxjs/operators';\nimport { eAccountComponents } from '../../enums/components';\nimport { getRedirectUrl } from '../../utils/auth-utils';\n\nconst { maxLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent implements OnInit {\n form: FormGroup;\n\n inProgress: boolean;\n\n isSelfRegistrationEnabled = true;\n\n authWrapperKey = eAccountComponents.AuthWrapper;\n\n constructor(\n protected injector: Injector,\n protected fb: FormBuilder,\n protected toasterService: ToasterService,\n protected authService: AuthService,\n protected configState: ConfigStateService,\n ) {}\n\n ngOnInit() {\n this.init();\n this.buildForm();\n }\n\n protected init() {\n this.isSelfRegistrationEnabled =\n (\n (this.configState.getSetting('Abp.Account.IsSelfRegistrationEnabled') as string) || ''\n ).toLowerCase() !== 'false';\n }\n\n protected buildForm() {\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(128)]],\n rememberMe: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.inProgress = true;\n\n const { username, password, rememberMe } = this.form.value;\n\n const redirectUrl = getRedirectUrl(this.injector);\n\n this.authService\n .login({ username, password, rememberMe, redirectUrl })\n .pipe(\n catchError(err => {\n this.toasterService.error(\n err.error?.error_description ||\n err.error?.error.message ||\n 'AbpAccount::DefaultErrorMessage',\n null,\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","<h4>{{ 'AbpAccount::Login' | abpLocalization }}</h4>\n<strong *ngIf=\"isSelfRegistrationEnabled\">\n {{ 'AbpAccount::AreYouANewUser' | abpLocalization }}\n <a class=\"text-decoration-none\" routerLink=\"/account/register\" queryParamsHandling=\"preserve\">{{\n 'AbpAccount::Register' | abpLocalization\n }}</a>\n</strong>\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" validateOnSubmit class=\"mt-4\">\n <div class=\"mb-3 form-group\">\n <label for=\"login-input-user-name-or-email-address\" class=\"form-label\">{{\n 'AbpAccount::UserNameOrEmailAddress' | abpLocalization\n }}</label>\n <input\n class=\"form-control\"\n type=\"text\"\n id=\"login-input-user-name-or-email-address\"\n formControlName=\"username\"\n autocomplete=\"username\"\n autofocus\n />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"login-input-password\" class=\"form-label\">{{ 'AbpAccount::Password' | abpLocalization }}</label>\n <input\n class=\"form-control\"\n type=\"password\"\n id=\"login-input-password\"\n formControlName=\"password\"\n autocomplete=\"current-password\"\n />\n </div>\n\n <div class=\"row\">\n <div class=\"col\">\n <div class=\"form-check\">\n <label class=\"form-check-label mb-2\" for=\"login-input-remember-me\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n id=\"login-input-remember-me\"\n formControlName=\"rememberMe\"\n />\n {{ 'AbpAccount::RememberMe' | abpLocalization }}\n </label>\n </div>\n </div>\n <div class=\"text-end col\">\n <a routerLink=\"/account/forgot-password\">{{\n 'AbpAccount::ForgotPassword' | abpLocalization\n }}</a>\n </div>\n </div>\n\n <abp-button\n [loading]=\"inProgress\"\n buttonType=\"submit\"\n name=\"Action\"\n buttonClass=\"btn-block btn-lg mt-3 btn btn-primary\"\n >\n {{ 'AbpAccount::Login' | abpLocalization }}\n </abp-button>\n</form>\n","import { InternalStore } from '@abp/ng.core';\nimport { ProfileDto } from '@abp/ng.account.core/proxy';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface ManageProfileState {\n profile: ProfileDto;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ManageProfileStateService {\n private readonly store = new InternalStore({} as ManageProfileState);\n\n get createOnUpdateStream() {\n return this.store.sliceUpdate;\n }\n\n getProfile$(): Observable<ProfileDto> {\n return this.store.sliceState(state => state.profile);\n }\n\n getProfile(): ProfileDto {\n return this.store.state.profile;\n }\n\n setProfile(profile: ProfileDto) {\n this.store.patch({ profile });\n }\n}\n","import { ProfileService } from '@abp/ng.account.core/proxy';\nimport { getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';\nimport { Component, Injector, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { comparePasswords, Validation } from '@ngx-validate/core';\nimport { finalize } from 'rxjs/operators';\nimport { Account } from '../../models/account';\nimport { ManageProfileStateService } from '../../services/manage-profile.state.service';\n\nconst { required } = Validators;\n\nconst PASSWORD_FIELDS = ['newPassword', 'repeatNewPassword'];\n\n@Component({\n selector: 'abp-change-password-form',\n templateUrl: './change-password.component.html',\n exportAs: 'abpChangePasswordForm',\n})\nexport class ChangePasswordComponent\n implements OnInit, Account.ChangePasswordComponentInputs, Account.ChangePasswordComponentOutputs\n{\n form: FormGroup;\n\n inProgress: boolean;\n\n hideCurrentPassword: boolean;\n\n mapErrorsFn: Validation.MapErrorsFn = (errors, groupErrors, control) => {\n if (PASSWORD_FIELDS.indexOf(String(control.name)) < 0) return errors;\n\n return errors.concat(groupErrors.filter(({ key }) => key === 'passwordMismatch'));\n };\n\n constructor(\n private fb: FormBuilder,\n private injector: Injector,\n private toasterService: ToasterService,\n private profileService: ProfileService,\n private manageProfileState: ManageProfileStateService,\n ) {}\n\n ngOnInit(): void {\n this.hideCurrentPassword = !this.manageProfileState.getProfile()?.hasPassword;\n\n const passwordValidations = getPasswordValidators(this.injector);\n\n this.form = this.fb.group(\n {\n password: ['', required],\n newPassword: [\n '',\n {\n validators: [required, ...passwordValidations],\n },\n ],\n repeatNewPassword: [\n '',\n {\n validators: [required, ...passwordValidations],\n },\n ],\n },\n {\n validators: [comparePasswords(PASSWORD_FIELDS)],\n },\n );\n\n if (this.hideCurrentPassword) this.form.removeControl('password');\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n this.inProgress = true;\n this.profileService\n .changePassword({\n ...(!this.hideCurrentPassword && { currentPassword: this.form.get('password').value }),\n newPassword: this.form.get('newPassword').value,\n })\n .pipe(finalize(() => (this.inProgress = false)))\n .subscribe({\n next: () => {\n this.form.reset();\n this.toasterService.success('AbpAccount::PasswordChangedMessage', '', {\n life: 5000,\n });\n\n if (this.hideCurrentPassword) {\n this.hideCurrentPassword = false;\n this.form.addControl('password', new FormControl('', [required]));\n }\n },\n error: err => {\n this.toasterService.error(err.error?.error?.message || 'AbpAccount::DefaultErrorMessage');\n },\n });\n }\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [mapErrorsFn]=\"mapErrorsFn\" validateOnSubmit>\n <div *ngIf=\"!hideCurrentPassword\" class=\"mb-3 form-group\">\n <label for=\"current-password\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:CurrentPassword' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n type=\"password\"\n id=\"current-password\"\n class=\"form-control\"\n formControlName=\"password\"\n autofocus\n autocomplete=\"current-password\"\n />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"new-password\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:NewPassword' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n type=\"password\"\n id=\"new-password\"\n class=\"form-control\"\n formControlName=\"newPassword\"\n autocomplete=\"new-password\"\n />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"confirm-new-password\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:NewPasswordConfirm' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n type=\"password\"\n id=\"confirm-new-password\"\n class=\"form-control\"\n formControlName=\"repeatNewPassword\"\n autocomplete=\"new-password\"\n />\n </div>\n <abp-button\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary color-white\"\n buttonType=\"submit\"\n [loading]=\"inProgress\"\n [disabled]=\"form?.invalid\"\n >{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\n >\n</form>\n","import { ProfileService } from '@abp/ng.account.core/proxy';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { finalize } from 'rxjs/operators';\nimport { Account } from '../../models/account';\nimport { ManageProfileStateService } from '../../services/manage-profile.state.service';\n\nconst { maxLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-personal-settings-form',\n templateUrl: './personal-settings.component.html',\n exportAs: 'abpPersonalSettingsForm',\n})\nexport class PersonalSettingsComponent\n implements\n OnInit,\n Account.PersonalSettingsComponentInputs,\n Account.PersonalSettingsComponentOutputs\n{\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private toasterService: ToasterService,\n private profileService: ProfileService,\n private manageProfileState: ManageProfileStateService,\n ) {}\n\n ngOnInit() {\n this.buildForm();\n }\n\n buildForm() {\n const profile = this.manageProfileState.getProfile();\n this.form = this.fb.group({\n userName: [profile.userName, [required, maxLength(256)]],\n email: [profile.email, [required, email, maxLength(256)]],\n name: [profile.name || '', [maxLength(64)]],\n surname: [profile.surname || '', [maxLength(64)]],\n phoneNumber: [profile.phoneNumber || '', [maxLength(16)]],\n });\n }\n\n submit() {\n if (this.form.invalid) return;\n this.inProgress = true;\n this.profileService\n .update(this.form.value)\n .pipe(finalize(() => (this.inProgress = false)))\n .subscribe(profile => {\n this.manageProfileState.setProfile(profile);\n this.toasterService.success('AbpAccount::PersonalSettingsSaved', 'Success', { life: 5000 });\n });\n }\n}\n","<form validateOnSubmit *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"mb-3 form-group\">\n <label for=\"username\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:UserName' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n type=\"text\"\n id=\"username\"\n class=\"form-control\"\n formControlName=\"userName\"\n autofocus\n (keydown.space)=\"$event.preventDefault()\"\n />\n </div>\n <div class=\"row\">\n <div class=\"col col-md-6\">\n <div class=\"mb-3 form-group\">\n <label for=\"name\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:Name' | abpLocalization\n }}</label\n ><input type=\"text\" id=\"name\" class=\"form-control\" formControlName=\"name\" />\n </div>\n </div>\n <div class=\"col col-md-6\">\n <div class=\"mb-3 form-group\">\n <label for=\"surname\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:Surname' | abpLocalization\n }}</label\n ><input type=\"text\" id=\"surname\" class=\"form-control\" formControlName=\"surname\" />\n </div>\n </div>\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"email-address\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:Email' | abpLocalization\n }}</label\n ><span> * </span\n ><input type=\"text\" id=\"email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"phone-number\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:PhoneNumber' | abpLocalization\n }}</label\n ><input type=\"text\" id=\"phone-number\" class=\"form-control\" formControlName=\"phoneNumber\" />\n </div>\n <abp-button\n buttonType=\"submit\"\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary color-white\"\n [loading]=\"inProgress\"\n [disabled]=\"form?.invalid\"\n >\n {{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\n >\n</form>\n","import { ProfileService } from '@abp/ng.account.core/proxy';\nimport { fadeIn } from '@abp/ng.theme.shared';\nimport { transition, trigger, useAnimation } from '@angular/animations';\nimport { Component, OnInit } from '@angular/core';\nimport { eAccountComponents } from '../../enums/components';\nimport { ManageProfileStateService } from '../../services/manage-profile.state.service';\n\n@Component({\n selector: 'abp-manage-profile',\n templateUrl: './manage-profile.component.html',\n animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])],\n styles: [\n `\n .min-h-400 {\n min-height: 400px;\n }\n `,\n ],\n})\nexport class ManageProfileComponent implements OnInit {\n selectedTab = 0;\n\n changePasswordKey = eAccountComponents.ChangePassword;\n\n personalSettingsKey = eAccountComponents.PersonalSettings;\n\n profile$ = this.manageProfileState.getProfile$();\n\n hideChangePasswordTab: boolean;\n\n constructor(\n protected profileService: ProfileService,\n protected manageProfileState: ManageProfileStateService,\n ) {}\n\n ngOnInit() {\n this.profileService.get().subscribe(profile => {\n this.manageProfileState.setProfile(profile);\n if (profile.isExternal) {\n this.hideChangePasswordTab = true;\n this.selectedTab = 1;\n }\n });\n }\n}\n","<div id=\"AbpContentToolbar\"></div>\n\n<div class=\"card border-0 shadow-sm min-h-400\" [abpLoading]=\"!(profile$ | async)?.userName\">\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-12 col-md-3\">\n <ul class=\"nav flex-column nav-pills\" id=\"nav-tab\" role=\"tablist\">\n <li\n *ngIf=\"!hideChangePasswordTab && (profile$ | async)\"\n class=\"nav-item\"\n (click)=\"selectedTab = 0\"\n >\n <a\n class=\"nav-link\"\n [ngClass]=\"{ active: selectedTab === 0 }\"\n role=\"tab\"\n href=\"javascript:void(0)\"\n >{{ 'AbpUi::ChangePassword' | abpLocalization }}</a\n >\n </li>\n <li class=\"nav-item mb-2\" (click)=\"selectedTab = 1\">\n <a\n class=\"nav-link\"\n [ngClass]=\"{ active: selectedTab === 1 }\"\n role=\"tab\"\n href=\"javascript:void(0)\"\n >{{ 'AbpAccount::PersonalSettings' | abpLocalization }}</a\n >\n </li>\n </ul>\n </div>\n <div *ngIf=\"profile$ | async\" class=\"col-12 col-md-9\">\n <div class=\"tab-content\" *ngIf=\"selectedTab === 0\" [@fadeIn]>\n <div class=\"tab-pane active\" role=\"tabpanel\">\n <h4>\n {{ 'AbpIdentity::ChangePassword' | abpLocalization }}\n <hr />\n </h4>\n <abp-change-password-form\n *abpReplaceableTemplate=\"{\n componentKey: changePasswordKey\n }\"\n ></abp-change-password-form>\n </div>\n </div>\n <div class=\"tab-content\" *ngIf=\"selectedTab === 1\" [@fadeIn]>\n <div class=\"tab-pane active\" role=\"tabpanel\">\n <h4>\n {{ 'AbpIdentity::PersonalSettings' | abpLocalization }}\n <hr />\n </h4>\n <abp-personal-settings-form\n *abpReplaceableTemplate=\"{\n componentKey: personalSettingsKey\n }\"\n ></abp-personal-settings-form>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { AccountService, RegisterDto } from '@abp/ng.account.core/proxy';\nimport { AuthService, ConfigStateService } from '@abp/ng.core';\nimport { getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';\nimport { Component, Injector, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { throwError } from 'rxjs';\nimport { catchError, finalize, switchMap } from 'rxjs/operators';\nimport { eAccountComponents } from '../../enums/components';\nimport { getRedirectUrl } from '../../utils/auth-utils';\n\nconst { maxLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent implements OnInit {\n form: FormGroup;\n\n inProgress: boolean;\n\n isSelfRegistrationEnabled = true;\n\n authWrapperKey = eAccountComponents.AuthWrapper;\n\n constructor(\n protected fb: FormBuilder,\n protected accountService: AccountService,\n protected configState: ConfigStateService,\n protected toasterService: ToasterService,\n protected authService: AuthService,\n protected injector: Injector,\n ) {}\n\n ngOnInit() {\n this.init();\n this.buildForm();\n }\n\n protected init() {\n this.isSelfRegistrationEnabled =\n (this.configState.getSetting('Abp.Account.IsSelfRegistrationEnabled') || '').toLowerCase() !==\n 'false';\n\n if (!this.isSelfRegistrationEnabled) {\n this.toasterService.warn(\n {\n key: 'AbpAccount::SelfRegistrationDisabledMessage',\n defaultValue: 'Self registration is disabled.',\n },\n null,\n { life: 10000 },\n );\n return;\n }\n }\n\n protected buildForm() {\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, ...getPasswordValidators(this.injector)]],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.inProgress = true;\n\n const newUser = {\n userName: this.form.get('username').value,\n password: this.form.get('password').value,\n emailAddress: this.form.get('email').value,\n appName: 'Angular',\n } as RegisterDto;\n\n this.accountService\n .register(newUser)\n .pipe(\n switchMap(() =>\n this.authService.login({\n username: newUser.userName,\n password: newUser.password,\n redirectUrl: getRedirectUrl(this.injector),\n }),\n ),\n catchError(err => {\n this.toasterService.error(\n err.error?.error_description ||\n err.error?.error.message ||\n 'AbpAccount::DefaultErrorMessage',\n null,\n { life: 7000 },\n );\n\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","<h4>{{ 'AbpAccount::Register' | abpLocalization }}</h4>\n<strong>\n {{ 'AbpAccount::AlreadyRegistered' | abpLocalization }}\n <a class=\"text-decoration-none\" routerLink=\"/account/login\">{{\n 'AbpAccount::Login' | abpLocalization\n }}</a>\n</strong>\n<form\n *ngIf=\"isSelfRegistrationEnabled\"\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit()\"\n validateOnSubmit\n class=\"mt-4\"\n>\n <div class=\"mb-3 form-group\">\n <label for=\"input-user-name\" class=\"form-label\">{{\n 'AbpAccount::UserName' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n autofocus\n type=\"text\"\n id=\"input-user-name\"\n class=\"form-control\"\n formControlName=\"username\"\n autocomplete=\"username\"\n />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"input-email-address\" class=\"form-label\">{{\n 'AbpAccount::EmailAddress' | abpLocalization\n }}</label\n ><span> * </span\n ><input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"input-password\" class=\"form-label\">{{\n 'AbpAccount::Password' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n type=\"password\"\n id=\"input-password\"\n class=\"form-control\"\n formControlName=\"password\"\n autocomplete=\"current-password\"\n />\n </div>\n <abp-button\n [loading]=\"inProgress\"\n buttonType=\"submit\"\n name=\"Action\"\n buttonClass=\"btn-block btn-lg mt-3 btn btn-primary\"\n >\n {{ 'AbpAccount::Register' | abpLocalization }}\n </abp-button>\n</form>\n","import { AccountService } from '@abp/ng.account.core/proxy';\nimport { getPasswordValidators } from '@abp/ng.theme.shared';\nimport { Component, Injector, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { comparePasswords, Validation } from '@ngx-validate/core';\nimport { finalize } from 'rxjs/operators';\n\nconst PASSWORD_FIELDS = ['password', 'confirmPassword'];\n\n@Component({\n selector: 'abp-reset-password',\n templateUrl: './reset-password.component.html',\n})\nexport class ResetPasswordComponent implements OnInit {\n form: FormGroup;\n\n inProgress = false;\n\n isPasswordReset = false;\n\n mapErrorsFn: Validation.MapErrorsFn = (errors, groupErrors, control) => {\n if (PASSWORD_FIELDS.indexOf(String(control.name)) < 0) return errors;\n\n return errors.concat(groupErrors.filter(({ key }) => key === 'passwordMismatch'));\n };\n\n constructor(\n private fb: FormBuilder,\n private accountService: AccountService,\n private route: ActivatedRoute,\n private router: Router,\n private injector: Injector,\n ) {}\n\n ngOnInit(): void {\n this.route.queryParams.subscribe(({ userId, resetToken }) => {\n if (!userId || !resetToken) this.router.navigateByUrl('/account/login');\n\n this.form = this.fb.group(\n {\n userId: [userId, [Validators.required]],\n resetToken: [resetToken, [Validators.required]],\n password: ['', [Validators.required, ...getPasswordValidators(this.injector)]],\n confirmPassword: ['', [Validators.required, ...getPasswordValidators(this.injector)]],\n },\n {\n validators: [comparePasswords(PASSWORD_FIELDS)],\n },\n );\n });\n }\n\n onSubmit() {\n if (this.form.invalid || this.inProgress) return;\n\n this.inProgress = true;\n\n this.accountService\n .resetPassword({\n userId: this.form.get('userId').value,\n resetToken: this.form.get('resetToken').value,\n password: this.form.get('password').value,\n })\n .pipe(finalize(() => (this.inProgress = false)))\n .subscribe(() => {\n this.isPasswordReset = true;\n });\n }\n}\n","<h4>{{ 'AbpAccount::ResetPassword' | abpLocalization }}</h4>\n\n<form\n *ngIf=\"!isPasswordReset; else passwordResetTemplate\"\n [formGroup]=\"form\"\n [mapErrorsFn]=\"mapErrorsFn\"\n (ngSubmit)=\"onSubmit()\"\n validateOnSubmit\n>\n <p>{{ 'AbpAccount::ResetPassword_Information' | abpLocalization }}</p>\n <div class=\"mb-3 form-group\">\n <label for=\"input-password\" class=\"form-label\">{{\n 'AbpAccount::Password' | abpLocalization\n }}</label\n ><span> * </span>\n <input type=\"password\" id=\"input-password\" class=\"form-control\" formControlName=\"password\" />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"input-confirm-password\" class=\"form-label\">{{\n 'AbpAccount::ConfirmPassword' | abpLocalization\n }}</label\n ><span> * </span>\n <input\n type=\"password\"\n id=\"input-confirm-password\"\n class=\"form-control\"\n formControlName=\"confirmPassword\"\n />\n </div>\n <button class=\"me-2 btn btn-secondary\" type=\"button\" routerLink=\"/account/login\">\n {{ 'AbpAccount::Cancel' | abpLocalization }}\n </button>\n <abp-button\n buttonType=\"submit\"\n buttonClass=\"me-2 btn btn-primary\"\n [loading]=\"inProgress\"\n (click)=\"onSubmit()\"\n >\n {{ 'AbpAccount::Submit' | abpLocalization }}\n </abp-button>\n</form>\n\n<ng-template #passwordResetTemplate>\n <p>\n {{ 'AbpAccount::YourPasswordIsSuccessfullyReset' | abpLocalization }}\n </p>\n\n <a routerLink=\"/account/login\">\n <button class=\"d-block mt-2 mb-3 btn btn-primary\">\n {{ 'AbpAccount::BackToLogin' | abpLocalization }}\n </button>\n </a>\n</ng-template>\n","import { AuthService } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\n\n@Injectable()\nexport class AuthenticationFlowGuard implements CanActivate {\n constructor(private authService: AuthService) {}\n\n canActivate() {\n if (this.authService.isInternalAuth) return true;\n\n this.authService.navigateToLogin();\n return false;\n }\n}\n","import {\n AuthGuard,\n DynamicLayoutComponent,\n ReplaceableComponents,\n ReplaceableRouteContainerComponent,\n} from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\nimport { LoginComponent } from './components/login/login.component';\nimport { ManageProfileComponent } from './components/manage-profile/manage-profile.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { ResetPasswordComponent } from './components/reset-password/reset-password.component';\nimport { eAccountComponents } from './enums/components';\nimport { AuthenticationFlowGuard } from './guards/authentication-flow.guard';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [\n {\n path: 'login',\n component: ReplaceableRouteContainerComponent,\n canActivate: [AuthenticationFlowGuard],\n data: {\n replaceableComponent: {\n key: eAccountComponents.Login,\n defaultComponent: LoginComponent,\n } as ReplaceableComponents.RouteData<LoginComponent>,\n },\n },\n {\n path: 'register',\n component: ReplaceableRouteContainerComponent,\n canActivate: [AuthenticationFlowGuard],\n data: {\n replaceableComponent: {\n key: eAccountComponents.Register,\n defaultComponent: RegisterComponent,\n } as ReplaceableComponents.RouteData<RegisterComponent>,\n },\n },\n {\n path: 'forgot-password',\n component: ReplaceableRouteContainerComponent,\n canActivate: [AuthenticationFlowGuard],\n data: {\n replaceableComponent: {\n key: eAccountComponents.ForgotPassword,\n defaultComponent: ForgotPasswordComponent,\n } as ReplaceableComponents.RouteData<ForgotPasswordComponent>,\n },\n },\n {\n path: 'reset-password',\n component: ReplaceableRouteContainerComponent,\n canActivate: [],\n data: {\n tenantBoxVisible: false,\n replaceableComponent: {\n key: eAccountComponents.ResetPassword,\n defaultComponent: ResetPasswordComponent,\n } as ReplaceableComponents.RouteData<ResetPasswordComponent>,\n },\n },\n {\n path: 'manage',\n component: ReplaceableRouteContainerComponent,\n canActivate: [AuthGuard],\n data: {\n replaceableComponent: {\n key: eAccountComponents.ManageProfile,\n defaultComponent: ManageProfileComponent,\n } as ReplaceableComponents.RouteData<ManageProfileComponent>,\n },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { AccountConfigOptions } from '../models/config-options';\n\nexport function accountConfigOptionsFactory(options: AccountConfigOptions) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n","import { CoreModule, LazyModuleFactory } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { ChangePasswordComponent } from './components/change-password/change-password.component';\nimport { LoginComponent } from './components/login/login.component';\nimport { ManageProfileComponent } from './components/manage-profile/manage-profile.component';\nimport { PersonalSettingsComponent } from './components/personal-settings/personal-settings.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { AccountConfigOptions } from './models/config-options';\nimport { ACCOUNT_CONFIG_OPTIONS } from './tokens/config-options.token';\nimport { accountConfigOptionsFactory } from './utils/factory-utils';\nimport { AuthenticationFlowGuard } from './guards/authentication-flow.guard';\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\nimport { ResetPasswordComponent } from './components/reset-password/reset-password.component';\n\nconst declarations = [\n LoginComponent,\n RegisterComponent,\n ChangePasswordComponent,\n ManageProfileComponent,\n PersonalSettingsComponent,\n ForgotPasswordComponent,\n ResetPasswordComponent,\n];\n\n@NgModule({\n declarations: [...declarations],\n imports: [\n CoreModule,\n AccountRoutingModule,\n ThemeSharedModule,\n NgbDropdownModule,\n NgxValidateCoreModule,\n ],\n exports: [...declarations],\n})\nexport class AccountModule {\n static forChild(options = {} as AccountConfigOptions): ModuleWithProviders<AccountModule> {\n return {\n ngModule: AccountModule,\n providers: [\n AuthenticationFlowGuard,\n { provide: ACCOUNT_CONFIG_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: accountConfigOptionsFactory,\n deps: [ACCOUNT_CONFIG_OPTIONS],\n },\n ],\n };\n }\n\n static forLazy(options = {} as AccountConfigOptions): NgModuleFactory<AccountModule> {\n return new LazyModuleFactory(AccountModule.forChild(options));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Validators","finalize","Component","InjectionToken","ActivatedRoute","maxLength","required","catchError","throwError","InternalStore","Injectable","PASSWORD_FIELDS","getPasswordValidators","comparePasswords","FormControl","email","trigger","transition","useAnimation","fadeIn","switchMap","DynamicLayoutComponent","ReplaceableRouteContainerComponent","AuthGuard","RouterModule","NgModule","LazyModuleFactory","CoreModule","ThemeSharedModule","NgbDropdownModule","NgxValidateCoreModule"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hY2NvdW50L2NvbmZpZy9zcmMvZW51bXMvcm91dGUtbmFtZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVBY2NvdW50Um91dGVOYW1lcyB7XG4gIEFjY291bnQgPSAnQWJwQWNjb3VudDo6TWVudTpBY2NvdW50JyxcbiAgTG9naW4gPSAnQWJwQWNjb3VudDo6TG9naW4nLFxuICBSZWdpc3RlciA9ICdBYnBBY2NvdW50OjpSZWdpc3RlcicsXG4gIE1hbmFnZVByb2ZpbGUgPSAnQWJwQWNjb3VudDo6TXlBY2NvdW50JyxcbiAgRm9yZ290UGFzc3dvcmQgPSAnQWJwQWNjb3VudDo6Rm9yZ290UGFzc3dvcmQnLFxuICBSZXNldFBhc3N3b3JkID0gJ0FicEFjY291bnQ6OlJlc2V0UGFzc3dvcmQnLFxufVxuIl19
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { ProfileService } from '@abp/ng.account.core/proxy';
|
|
2
|
-
import { getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';
|
|
3
|
-
import { Component, Injector } from '@angular/core';
|
|
4
|
-
import { FormBuilder, FormControl, Validators } from '@angular/forms';
|
|
5
|
-
import { comparePasswords } from '@ngx-validate/core';
|
|
6
|
-
import { finalize } from 'rxjs/operators';
|
|
7
|
-
import { ManageProfileStateService } from '../../services/manage-profile.state.service';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/forms";
|
|
10
|
-
import * as i2 from "@abp/ng.theme.shared";
|
|
11
|
-
import * as i3 from "@abp/ng.account.core/proxy";
|
|
12
|
-
import * as i4 from "../../services/manage-profile.state.service";
|
|
13
|
-
import * as i5 from "@abp/ng.core";
|
|
14
|
-
import * as i6 from "@ngx-validate/core";
|
|
15
|
-
import * as i7 from "@angular/common";
|
|
16
|
-
const { required } = Validators;
|
|
17
|
-
const PASSWORD_FIELDS = ['newPassword', 'repeatNewPassword'];
|
|
18
|
-
export class ChangePasswordComponent {
|
|
19
|
-
constructor(fb, injector, toasterService, profileService, manageProfileState) {
|
|
20
|
-
this.fb = fb;
|
|
21
|
-
this.injector = injector;
|
|
22
|
-
this.toasterService = toasterService;
|
|
23
|
-
this.profileService = profileService;
|
|
24
|
-
this.manageProfileState = manageProfileState;
|
|
25
|
-
this.mapErrorsFn = (errors, groupErrors, control) => {
|
|
26
|
-
if (PASSWORD_FIELDS.indexOf(String(control.name)) < 0)
|
|
27
|
-
return errors;
|
|
28
|
-
return errors.concat(groupErrors.filter(({ key }) => key === 'passwordMismatch'));
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
var _a;
|
|
33
|
-
this.hideCurrentPassword = !((_a = this.manageProfileState.getProfile()) === null || _a === void 0 ? void 0 : _a.hasPassword);
|
|
34
|
-
const passwordValidations = getPasswordValidators(this.injector);
|
|
35
|
-
this.form = this.fb.group({
|
|
36
|
-
password: ['', required],
|
|
37
|
-
newPassword: [
|
|
38
|
-
'',
|
|
39
|
-
{
|
|
40
|
-
validators: [required, ...passwordValidations],
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
|
-
repeatNewPassword: [
|
|
44
|
-
'',
|
|
45
|
-
{
|
|
46
|
-
validators: [required, ...passwordValidations],
|
|
47
|
-
},
|
|
48
|
-
],
|
|
49
|
-
}, {
|
|
50
|
-
validators: [comparePasswords(PASSWORD_FIELDS)],
|
|
51
|
-
});
|
|
52
|
-
if (this.hideCurrentPassword)
|
|
53
|
-
this.form.removeControl('password');
|
|
54
|
-
}
|
|
55
|
-
onSubmit() {
|
|
56
|
-
if (this.form.invalid)
|
|
57
|
-
return;
|
|
58
|
-
this.inProgress = true;
|
|
59
|
-
this.profileService
|
|
60
|
-
.changePassword(Object.assign(Object.assign({}, (!this.hideCurrentPassword && { currentPassword: this.form.get('password').value })), { newPassword: this.form.get('newPassword').value }))
|
|
61
|
-
.pipe(finalize(() => (this.inProgress = false)))
|
|
62
|
-
.subscribe({
|
|
63
|
-
next: () => {
|
|
64
|
-
this.form.reset();
|
|
65
|
-
this.toasterService.success('AbpAccount::PasswordChangedMessage', '', {
|
|
66
|
-
life: 5000,
|
|
67
|
-
});
|
|
68
|
-
if (this.hideCurrentPassword) {
|
|
69
|
-
this.hideCurrentPassword = false;
|
|
70
|
-
this.form.addControl('password', new FormControl('', [required]));
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
error: err => {
|
|
74
|
-
var _a, _b;
|
|
75
|
-
this.toasterService.error(((_b = (_a = err.error) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.message) || 'AbpAccount::DefaultErrorMessage');
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
ChangePasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChangePasswordComponent, deps: [{ token: i1.FormBuilder }, { token: i0.Injector }, { token: i2.ToasterService }, { token: i3.ProfileService }, { token: i4.ManageProfileStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
-
ChangePasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ChangePasswordComponent, selector: "abp-change-password-form", exportAs: ["abpChangePasswordForm"], ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [mapErrorsFn]=\"mapErrorsFn\" validateOnSubmit>\n <div *ngIf=\"!hideCurrentPassword\" class=\"mb-3 form-group\">\n <label for=\"current-password\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:CurrentPassword' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n type=\"password\"\n id=\"current-password\"\n class=\"form-control\"\n formControlName=\"password\"\n autofocus\n autocomplete=\"current-password\"\n />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"new-password\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:NewPassword' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n type=\"password\"\n id=\"new-password\"\n class=\"form-control\"\n formControlName=\"newPassword\"\n autocomplete=\"new-password\"\n />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"confirm-new-password\" class=\"form-label\">{{\n 'AbpIdentity::DisplayName:NewPasswordConfirm' | abpLocalization\n }}</label\n ><span> * </span\n ><input\n type=\"password\"\n id=\"confirm-new-password\"\n class=\"form-control\"\n formControlName=\"repeatNewPassword\"\n autocomplete=\"new-password\"\n />\n </div>\n <abp-button\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary color-white\"\n buttonType=\"submit\"\n [loading]=\"inProgress\"\n [disabled]=\"form?.invalid\"\n >{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\n >\n</form>\n", components: [{ type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit"], outputs: ["ngSubmit"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ValidationDirective, selector: "[formControl],[formControlName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }, { type: i5.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }], pipes: { "abpLocalization": i5.LocalizationPipe } });
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChangePasswordComponent, decorators: [{
|
|
83
|
-
type: Component,
|
|
84
|
-
args: [{
|
|
85
|
-
selector: 'abp-change-password-form',
|
|
86
|
-
templateUrl: './change-password.component.html',
|
|
87
|
-
exportAs: 'abpChangePasswordForm',
|
|
88
|
-
}]
|
|
89
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.Injector }, { type: i2.ToasterService }, { type: i3.ProfileService }, { type: i4.ManageProfileStateService }]; } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FjY291bnQvc3JjL2xpYi9jb21wb25lbnRzL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7O0FBRXhGLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLENBQUM7QUFFaEMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQU83RCxNQUFNLE9BQU8sdUJBQXVCO0lBZWxDLFlBQ1UsRUFBZSxFQUNmLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLGtCQUE2QztRQUo3QyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNs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Q0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUEsTUFBQSxNQUFBLEdBQUcsQ0FBQyxLQUFLLDBDQUFFLEtBQUssMENBQUUsT0FBTyxLQUFJLGlDQUFpQyxDQUFDLENBQUM7WUFDNUYsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7O3FIQTdFVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixxR0NsQnBDLGtrREFrREE7NEZEaENhLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxXQUFXLEVBQUUsa0NBQWtDO29CQUMvQyxRQUFRLEVBQUUsdUJBQXVCO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5hY2NvdW50LmNvcmUvcHJveHknO1xuaW1wb3J0IHsgZ2V0UGFzc3dvcmRWYWxpZGF0b3JzLCBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb21wYXJlUGFzc3dvcmRzLCBWYWxpZGF0aW9uIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWNjb3VudCB9IGZyb20gJy4uLy4uL21vZGVscy9hY2NvdW50JztcbmltcG9ydCB7IE1hbmFnZVByb2ZpbGVTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYW5hZ2UtcHJvZmlsZS5zdGF0ZS5zZXJ2aWNlJztcblxuY29uc3QgeyByZXF1aXJlZCB9ID0gVmFsaWRhdG9ycztcblxuY29uc3QgUEFTU1dPUkRfRklFTERTID0gWyduZXdQYXNzd29yZCcsICdyZXBlYXROZXdQYXNzd29yZCddO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtY2hhbmdlLXBhc3N3b3JkLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdhYnBDaGFuZ2VQYXNzd29yZEZvcm0nLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFuZ2VQYXNzd29yZENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWNjb3VudC5DaGFuZ2VQYXNzd29yZENvbXBvbmVudElucHV0cywgQWNjb3VudC5DaGFuZ2VQYXNzd29yZENvbXBvbmVudE91dHB1dHNcbntcbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW47XG5cbiAgaGlkZUN1cnJlbnRQYXNzd29yZDogYm9vbGVhbjtcblxuICBtYXBFcnJvcnNGbjogVmFsaWRhdGlvbi5NYXBFcnJvcnNGbiA9IChlcnJvcnMsIGdyb3VwRXJyb3JzLCBjb250cm9sKSA9PiB7XG4gICAgaWYgKFBBU1NXT1JEX0ZJRUxEUy5pbmRleE9mKFN0cmluZyhjb250cm9sLm5hbWUpKSA8IDApIHJldHVybiBlcnJvcnM7XG5cbiAgICByZXR1cm4gZXJyb3JzLmNvbmNhdChncm91cEVycm9ycy5maWx0ZXIoKHsga2V5IH0pID0+IGtleSA9PT0gJ3Bhc3N3b3JkTWlzbWF0Y2gnKSk7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9maWxlU2VydmljZTogUHJvZmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYW5hZ2VQcm9maWxlU3RhdGU6IE1hbmFnZVByb2ZpbGVTdGF0ZVNlcnZpY2UsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVDdXJyZW50UGFzc3dvcmQgPSAhdGhpcy5tYW5hZ2VQcm9maWxlU3RhdGUuZ2V0UHJvZmlsZSgpPy5oYXNQYXNzd29yZDtcblxuICAgIGNvbnN0IHBhc3N3b3JkVmFsaWRhdGlvbnMgPSBnZXRQYXNzd29yZFZhbGlkYXRvcnModGhpcy5pbmplY3Rvcik7XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKFxuICAgICAge1xuICAgICAgICBwYXNzd29yZDogWycnLCByZXF1aXJlZF0sXG4gICAgICAgIG5ld1Bhc3N3b3JkOiBbXG4gICAgICAgICAgJycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsaWRhdG9yczogW3JlcXVpcmVkLCAuLi5wYXNzd29yZFZhbGlkYXRpb25zXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICByZXBlYXROZXdQYXNzd29yZDogW1xuICAgICAgICAgICcnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtyZXF1aXJlZCwgLi4ucGFzc3dvcmRWYWxpZGF0aW9uc10sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbGlkYXRvcnM6IFtjb21wYXJlUGFzc3dvcmRzKFBBU1NXT1JEX0ZJRUxEUyldLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuaGlkZUN1cnJlbnRQYXNzd29yZCkgdGhpcy5mb3JtLnJlbW92ZUNvbnRyb2woJ3Bhc3N3b3JkJyk7XG4gIH1cblxuICBvblN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIHRoaXMucHJvZmlsZVNlcnZpY2VcbiAgICAgIC5jaGFuZ2VQYXNzd29yZCh7XG4gICAgICAgIC4uLighdGhpcy5oaWRlQ3VycmVudFBhc3N3b3JkICYmIHsgY3VycmVudFBhc3N3b3JkOiB0aGlzLmZvcm0uZ2V0KCdwYXNzd29yZCcpLnZhbHVlIH0pLFxuICAgICAgICBuZXdQYXNzd29yZDogdGhpcy5mb3JtLmdldCgnbmV3UGFzc3dvcmQnKS52YWx1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5pblByb2dyZXNzID0gZmFsc2UpKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKCdBYnBBY2NvdW50OjpQYXNzd29yZENoYW5nZWRNZXNzYWdlJywgJycsIHtcbiAgICAgICAgICAgIGxpZmU6IDUwMDAsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAodGhpcy5oaWRlQ3VycmVudFBhc3N3b3JkKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVDdXJyZW50UGFzc3dvcmQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdwYXNzd29yZCcsIG5ldyBGb3JtQ29udHJvbCgnJywgW3JlcXVpcmVkXSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnIuZXJyb3I/LmVycm9yPy5tZXNzYWdlIHx8ICdBYnBBY2NvdW50OjpEZWZhdWx0RXJyb3JNZXNzYWdlJyk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiBbbWFwRXJyb3JzRm5dPVwibWFwRXJyb3JzRm5cIiB2YWxpZGF0ZU9uU3VibWl0PlxuICA8ZGl2ICpuZ0lmPVwiIWhpZGVDdXJyZW50UGFzc3dvcmRcIiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBmb3I9XCJjdXJyZW50LXBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcbiAgICAgICdBYnBJZGVudGl0eTo6RGlzcGxheU5hbWU6Q3VycmVudFBhc3N3b3JkJyB8IGFicExvY2FsaXphdGlvblxuICAgIH19PC9sYWJlbFxuICAgID48c3Bhbj4gKiA8L3NwYW5cbiAgICA+PGlucHV0XG4gICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgaWQ9XCJjdXJyZW50LXBhc3N3b3JkXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcbiAgICAgIGF1dG9mb2N1c1xuICAgICAgYXV0b2NvbXBsZXRlPVwiY3VycmVudC1wYXNzd29yZFwiXG4gICAgLz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cbiAgICA8bGFiZWwgZm9yPVwibmV3LXBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcbiAgICAgICdBYnBJZGVudGl0eTo6RGlzcGxheU5hbWU6TmV3UGFzc3dvcmQnIHwgYWJwTG9jYWxpemF0aW9uXG4gICAgfX08L2xhYmVsXG4gICAgPjxzcGFuPiAqIDwvc3BhblxuICAgID48aW5wdXRcbiAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICBpZD1cIm5ldy1wYXNzd29yZFwiXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJuZXdQYXNzd29yZFwiXG4gICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgIC8+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWdyb3VwXCI+XG4gICAgPGxhYmVsIGZvcj1cImNvbmZpcm0tbmV3LXBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcbiAgICAgICdBYnBJZGVudGl0eTo6RGlzcGxheU5hbWU6TmV3UGFzc3dvcmRDb25maXJtJyB8IGFicExvY2FsaXphdGlvblxuICAgIH19PC9sYWJlbFxuICAgID48c3Bhbj4gKiA8L3NwYW5cbiAgICA+PGlucHV0XG4gICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgaWQ9XCJjb25maXJtLW5ldy1wYXNzd29yZFwiXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXBlYXROZXdQYXNzd29yZFwiXG4gICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgIC8+XG4gIDwvZGl2PlxuICA8YWJwLWJ1dHRvblxuICAgIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCJcbiAgICBidXR0b25DbGFzcz1cImJ0biBidG4tcHJpbWFyeSBjb2xvci13aGl0ZVwiXG4gICAgYnV0dG9uVHlwZT1cInN1Ym1pdFwiXG4gICAgW2xvYWRpbmddPVwiaW5Qcm9ncmVzc1wiXG4gICAgW2Rpc2FibGVkXT1cImZvcm0/LmludmFsaWRcIlxuICAgID57eyAnQWJwSWRlbnRpdHk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9hYnAtYnV0dG9uXG4gID5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { AccountService } from '@abp/ng.account.core/proxy';
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import { FormBuilder, Validators } from '@angular/forms';
|
|
4
|
-
import { finalize } from 'rxjs/operators';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/forms";
|
|
7
|
-
import * as i2 from "@abp/ng.account.core/proxy";
|
|
8
|
-
import * as i3 from "@abp/ng.theme.shared";
|
|
9
|
-
import * as i4 from "@angular/common";
|
|
10
|
-
import * as i5 from "@abp/ng.core";
|
|
11
|
-
import * as i6 from "@ngx-validate/core";
|
|
12
|
-
import * as i7 from "@angular/router";
|
|
13
|
-
export class ForgotPasswordComponent {
|
|
14
|
-
constructor(fb, accountService) {
|
|
15
|
-
this.fb = fb;
|
|
16
|
-
this.accountService = accountService;
|
|
17
|
-
this.isEmailSent = false;
|
|
18
|
-
this.form = this.fb.group({
|
|
19
|
-
email: ['', [Validators.required, Validators.email]],
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
onSubmit() {
|
|
23
|
-
if (this.form.invalid)
|
|
24
|
-
return;
|
|
25
|
-
this.inProgress = true;
|
|
26
|
-
this.accountService
|
|
27
|
-
.sendPasswordResetCode({
|
|
28
|
-
email: this.form.get('email').value,
|
|
29
|
-
appName: 'Angular',
|
|
30
|
-
})
|
|
31
|
-
.pipe(finalize(() => (this.inProgress = false)))
|
|
32
|
-
.subscribe(() => {
|
|
33
|
-
this.isEmailSent = true;
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
ForgotPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AccountService }], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
-
ForgotPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ForgotPasswordComponent, selector: "abp-forgot-password", ngImport: i0, template: "<h4>{{ 'AbpAccount::ForgotPassword' | abpLocalization }}</h4>\n\n<form\n *ngIf=\"!isEmailSent; else emailSentTemplate\"\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit()\"\n validateOnSubmit\n>\n <p>{{ 'AbpAccount::SendPasswordResetLink_Information' | abpLocalization }}</p>\n <div class=\"mb-3 form-group\">\n <label for=\"input-email-address\" class=\"form-label\">{{\n 'AbpAccount::EmailAddress' | abpLocalization\n }}</label\n ><span> * </span>\n <input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\n </div>\n <abp-button\n class=\"d-block\"\n buttonClass=\"mt-2 mb-3 btn btn-primary btn-block\"\n [loading]=\"inProgress\"\n buttonType=\"submit\"\n [disabled]=\"form?.invalid\"\n >\n {{ 'AbpAccount::Submit' | abpLocalization }}\n </abp-button>\n <a routerLink=\"/account/login\"\n ><i class=\"fa fa-long-arrow-left me-1\"></i>{{ 'AbpAccount::Login' | abpLocalization }}</a\n >\n</form>\n\n<ng-template #emailSentTemplate>\n <p>\n {{ 'AbpAccount::PasswordResetMailSentMessage' | abpLocalization }}\n </p>\n\n <a routerLink=\"/account/login\">\n <button class=\"d-block mt-2 mb-3 btn btn-primary btn-block\">\n <i class=\"fa fa-long-arrow-left me-1\"></i>\n {{ 'AbpAccount::BackToLogin' | abpLocalization }}\n </button>\n </a>\n</ng-template>\n", components: [{ type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit"], outputs: ["ngSubmit"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ValidationDirective, selector: "[formControl],[formControlName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }, { type: i7.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "abpLocalization": i5.LocalizationPipe } });
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
|
|
40
|
-
type: Component,
|
|
41
|
-
args: [{
|
|
42
|
-
selector: 'abp-forgot-password',
|
|
43
|
-
templateUrl: 'forgot-password.component.html',
|
|
44
|
-
}]
|
|
45
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.AccountService }]; } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FjY291bnQvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBTTFDLE1BQU0sT0FBTyx1QkFBdUI7SUFPbEMsWUFBb0IsRUFBZSxFQUFVLGNBQThCO1FBQXZELE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFGM0UsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFHbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUU5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsY0FBYzthQUNoQixxQkFBcUIsQ0FBQztZQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSztZQUNuQyxPQUFPLEVBQUUsU0FBUztTQUNuQixDQUFDO2FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUMvQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztxSEEzQlUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsMkRDVHBDLDAxQ0EwQ0E7NEZEakNhLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixXQUFXLEVBQUUsZ0NBQWdDO2lCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5hY2NvdW50LmNvcmUvcHJveHknO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1mb3Jnb3QtcGFzc3dvcmQnLFxuICB0ZW1wbGF0ZVVybDogJ2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcmdvdFBhc3N3b3JkQ29tcG9uZW50IHtcbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW47XG5cbiAgaXNFbWFpbFNlbnQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGVtYWlsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXV0sXG4gICAgfSk7XG4gIH1cblxuICBvblN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcblxuICAgIHRoaXMuaW5Qcm9ncmVzcyA9IHRydWU7XG5cbiAgICB0aGlzLmFjY291bnRTZXJ2aWNlXG4gICAgICAuc2VuZFBhc3N3b3JkUmVzZXRDb2RlKHtcbiAgICAgICAgZW1haWw6IHRoaXMuZm9ybS5nZXQoJ2VtYWlsJykudmFsdWUsXG4gICAgICAgIGFwcE5hbWU6ICdBbmd1bGFyJyxcbiAgICAgIH0pXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5pblByb2dyZXNzID0gZmFsc2UpKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmlzRW1haWxTZW50ID0gdHJ1ZTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8aDQ+e3sgJ0FicEFjY291bnQ6OkZvcmdvdFBhc3N3b3JkJyB8IGFicExvY2FsaXphdGlvbiB9fTwvaDQ+XG5cbjxmb3JtXG4gICpuZ0lmPVwiIWlzRW1haWxTZW50OyBlbHNlIGVtYWlsU2VudFRlbXBsYXRlXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIlxuICB2YWxpZGF0ZU9uU3VibWl0XG4+XG4gIDxwPnt7ICdBYnBBY2NvdW50OjpTZW5kUGFzc3dvcmRSZXNldExpbmtfSW5mb3JtYXRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9wPlxuICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWdyb3VwXCI+XG4gICAgPGxhYmVsIGZvcj1cImlucHV0LWVtYWlsLWFkZHJlc3NcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xuICAgICAgJ0FicEFjY291bnQ6OkVtYWlsQWRkcmVzcycgfCBhYnBMb2NhbGl6YXRpb25cbiAgICB9fTwvbGFiZWxcbiAgICA+PHNwYW4+ICogPC9zcGFuPlxuICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBpZD1cImlucHV0LWVtYWlsLWFkZHJlc3NcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgLz5cbiAgPC9kaXY+XG4gIDxhYnAtYnV0dG9uXG4gICAgY2xhc3M9XCJkLWJsb2NrXCJcbiAgICBidXR0b25DbGFzcz1cIm10LTIgbWItMyBidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrXCJcbiAgICBbbG9hZGluZ109XCJpblByb2dyZXNzXCJcbiAgICBidXR0b25UeXBlPVwic3VibWl0XCJcbiAgICBbZGlzYWJsZWRdPVwiZm9ybT8uaW52YWxpZFwiXG4gID5cbiAgICB7eyAnQWJwQWNjb3VudDo6U3VibWl0JyB8IGFicExvY2FsaXphdGlvbiB9fVxuICA8L2FicC1idXR0b24+XG4gIDxhIHJvdXRlckxpbms9XCIvYWNjb3VudC9sb2dpblwiXG4gICAgPjxpIGNsYXNzPVwiZmEgZmEtbG9uZy1hcnJvdy1sZWZ0IG1lLTFcIj48L2k+e3sgJ0FicEFjY291bnQ6OkxvZ2luJyB8IGFicExvY2FsaXphdGlvbiB9fTwvYVxuICA+XG48L2Zvcm0+XG5cbjxuZy10ZW1wbGF0ZSAjZW1haWxTZW50VGVtcGxhdGU+XG4gIDxwPlxuICAgIHt7ICdBYnBBY2NvdW50OjpQYXNzd29yZFJlc2V0TWFpbFNlbnRNZXNzYWdlJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICA8L3A+XG5cbiAgPGEgcm91dGVyTGluaz1cIi9hY2NvdW50L2xvZ2luXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImQtYmxvY2sgbXQtMiBtYi0zIGJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2tcIj5cbiAgICAgIDxpIGNsYXNzPVwiZmEgZmEtbG9uZy1hcnJvdy1sZWZ0IG1lLTFcIj48L2k+XG4gICAgICB7eyAnQWJwQWNjb3VudDo6QmFja1RvTG9naW4nIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgPC9idXR0b24+XG4gIDwvYT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { AuthService, ConfigStateService } from '@abp/ng.core';
|
|
2
|
-
import { ToasterService } from '@abp/ng.theme.shared';
|
|
3
|
-
import { Component, Injector } from '@angular/core';
|
|
4
|
-
import { FormBuilder, Validators } from '@angular/forms';
|
|
5
|
-
import { throwError } from 'rxjs';
|
|
6
|
-
import { catchError, finalize } from 'rxjs/operators';
|
|
7
|
-
import { getRedirectUrl } from '../../utils/auth-utils';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/forms";
|
|
10
|
-
import * as i2 from "@abp/ng.theme.shared";
|
|
11
|
-
import * as i3 from "@abp/ng.core";
|
|
12
|
-
import * as i4 from "@angular/common";
|
|
13
|
-
import * as i5 from "@angular/router";
|
|
14
|
-
import * as i6 from "@ngx-validate/core";
|
|
15
|
-
const { maxLength, required } = Validators;
|
|
16
|
-
export class LoginComponent {
|
|
17
|
-
constructor(injector, fb, toasterService, authService, configState) {
|
|
18
|
-
this.injector = injector;
|
|
19
|
-
this.fb = fb;
|
|
20
|
-
this.toasterService = toasterService;
|
|
21
|
-
this.authService = authService;
|
|
22
|
-
this.configState = configState;
|
|
23
|
-
this.isSelfRegistrationEnabled = true;
|
|
24
|
-
this.authWrapperKey = "Account.AuthWrapperComponent" /* AuthWrapper */;
|
|
25
|
-
}
|
|
26
|
-
ngOnInit() {
|
|
27
|
-
this.init();
|
|
28
|
-
this.buildForm();
|
|
29
|
-
}
|
|
30
|
-
init() {
|
|
31
|
-
this.isSelfRegistrationEnabled =
|
|
32
|
-
(this.configState.getSetting('Abp.Account.IsSelfRegistrationEnabled') || '').toLowerCase() !== 'false';
|
|
33
|
-
}
|
|
34
|
-
buildForm() {
|
|
35
|
-
this.form = this.fb.group({
|
|
36
|
-
username: ['', [required, maxLength(255)]],
|
|
37
|
-
password: ['', [required, maxLength(128)]],
|
|
38
|
-
rememberMe: [false],
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
onSubmit() {
|
|
42
|
-
if (this.form.invalid)
|
|
43
|
-
return;
|
|
44
|
-
this.inProgress = true;
|
|
45
|
-
const { username, password, rememberMe } = this.form.value;
|
|
46
|
-
const redirectUrl = getRedirectUrl(this.injector);
|
|
47
|
-
this.authService
|
|
48
|
-
.login({ username, password, rememberMe, redirectUrl })
|
|
49
|
-
.pipe(catchError(err => {
|
|
50
|
-
var _a, _b;
|
|
51
|
-
this.toasterService.error(((_a = err.error) === null || _a === void 0 ? void 0 : _a.error_description) ||
|
|
52
|
-
((_b = err.error) === null || _b === void 0 ? void 0 : _b.error.message) ||
|
|
53
|
-
'AbpAccount::DefaultErrorMessage', null, { life: 7000 });
|
|
54
|
-
return throwError(err);
|
|
55
|
-
}), finalize(() => (this.inProgress = false)))
|
|
56
|
-
.subscribe();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
LoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LoginComponent, deps: [{ token: i0.Injector }, { token: i1.FormBuilder }, { token: i2.ToasterService }, { token: i3.AuthService }, { token: i3.ConfigStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
-
LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LoginComponent, selector: "abp-login", ngImport: i0, template: "<h4>{{ 'AbpAccount::Login' | abpLocalization }}</h4>\n<strong *ngIf=\"isSelfRegistrationEnabled\">\n {{ 'AbpAccount::AreYouANewUser' | abpLocalization }}\n <a class=\"text-decoration-none\" routerLink=\"/account/register\" queryParamsHandling=\"preserve\">{{\n 'AbpAccount::Register' | abpLocalization\n }}</a>\n</strong>\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" validateOnSubmit class=\"mt-4\">\n <div class=\"mb-3 form-group\">\n <label for=\"login-input-user-name-or-email-address\" class=\"form-label\">{{\n 'AbpAccount::UserNameOrEmailAddress' | abpLocalization\n }}</label>\n <input\n class=\"form-control\"\n type=\"text\"\n id=\"login-input-user-name-or-email-address\"\n formControlName=\"username\"\n autocomplete=\"username\"\n autofocus\n />\n </div>\n <div class=\"mb-3 form-group\">\n <label for=\"login-input-password\" class=\"form-label\">{{ 'AbpAccount::Password' | abpLocalization }}</label>\n <input\n class=\"form-control\"\n type=\"password\"\n id=\"login-input-password\"\n formControlName=\"password\"\n autocomplete=\"current-password\"\n />\n </div>\n\n <div class=\"row\">\n <div class=\"col\">\n <div class=\"form-check\">\n <label class=\"form-check-label mb-2\" for=\"login-input-remember-me\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n id=\"login-input-remember-me\"\n formControlName=\"rememberMe\"\n />\n {{ 'AbpAccount::RememberMe' | abpLocalization }}\n </label>\n </div>\n </div>\n <div class=\"text-end col\">\n <a routerLink=\"/account/forgot-password\">{{\n 'AbpAccount::ForgotPassword' | abpLocalization\n }}</a>\n </div>\n </div>\n\n <abp-button\n [loading]=\"inProgress\"\n buttonType=\"submit\"\n name=\"Action\"\n buttonClass=\"btn-block btn-lg mt-3 btn btn-primary\"\n >\n {{ 'AbpAccount::Login' | abpLocalization }}\n </abp-button>\n</form>\n", components: [{ type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit"], outputs: ["ngSubmit"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ValidationDirective, selector: "[formControl],[formControlName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }, { type: i3.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }], pipes: { "abpLocalization": i3.LocalizationPipe } });
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LoginComponent, decorators: [{
|
|
62
|
-
type: Component,
|
|
63
|
-
args: [{
|
|
64
|
-
selector: 'abp-login',
|
|
65
|
-
templateUrl: './login.component.html',
|
|
66
|
-
}]
|
|
67
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.FormBuilder }, { type: i2.ToasterService }, { type: i3.AuthService }, { type: i3.ConfigStateService }]; } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztBQUV4RCxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQztBQU0zQyxNQUFNLE9BQU8sY0FBYztJQVN6QixZQUNZLFFBQWtCLEVBQ2xCLEVBQWUsRUFDZixjQUE4QixFQUM5QixXQUF3QixFQUN4QixXQUErQjtRQUovQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBVDNDLDhCQUF5QixHQUFHLElBQUksQ0FBQztRQUVqQyxtQkFBYyxvREFBa0M7SUFRN0MsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVTLElBQUk7UUFDWixJQUFJLENBQUMseUJBQXlCO1lBQzVCLENBQ0csSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsdUNBQXVDLENBQVksSUFBSSxFQUFFLENBQ3ZGLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxDQUFDO0lBQ2hDLENBQUM7SUFFUyxTQUFTO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFdkIsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFM0QsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsV0FBVzthQUNiLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQ3RELElBQUksQ0FDSCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7O1lBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQ3ZCLENBQUEsTUFBQSxHQUFHLENBQUMsS0FBSywwQ0FBRSxpQkFBaUI7aUJBQzFCLE1BQUEsR0FBRyxDQUFDLEtBQUssMENBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQTtnQkFDeEIsaUNBQWlDLEVBQ25DLElBQUksRUFDSixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FDZixDQUFDO1lBQ0YsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUMxQzthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7OzRHQTlEVSxjQUFjO2dHQUFkLGNBQWMsaURDZjNCLHdnRUE4REE7NEZEL0NhLGNBQWM7a0JBSjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFdBQVcsRUFBRSx3QkFBd0I7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aFNlcnZpY2UsIENvbmZpZ1N0YXRlU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZUFjY291bnRDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vZW51bXMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBnZXRSZWRpcmVjdFVybCB9IGZyb20gJy4uLy4uL3V0aWxzL2F1dGgtdXRpbHMnO1xuXG5jb25zdCB7IG1heExlbmd0aCwgcmVxdWlyZWQgfSA9IFZhbGlkYXRvcnM7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1sb2dpbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW47XG5cbiAgaXNTZWxmUmVnaXN0cmF0aW9uRW5hYmxlZCA9IHRydWU7XG5cbiAgYXV0aFdyYXBwZXJLZXkgPSBlQWNjb3VudENvbXBvbmVudHMuQXV0aFdyYXBwZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcm90ZWN0ZWQgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByb3RlY3RlZCB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdCgpO1xuICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdCgpIHtcbiAgICB0aGlzLmlzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWQgPVxuICAgICAgKFxuICAgICAgICAodGhpcy5jb25maWdTdGF0ZS5nZXRTZXR0aW5nKCdBYnAuQWNjb3VudC5Jc1NlbGZSZWdpc3RyYXRpb25FbmFibGVkJykgYXMgc3RyaW5nKSB8fCAnJ1xuICAgICAgKS50b0xvd2VyQ2FzZSgpICE9PSAnZmFsc2UnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHVzZXJuYW1lOiBbJycsIFtyZXF1aXJlZCwgbWF4TGVuZ3RoKDI1NSldXSxcbiAgICAgIHBhc3N3b3JkOiBbJycsIFtyZXF1aXJlZCwgbWF4TGVuZ3RoKDEyOCldXSxcbiAgICAgIHJlbWVtYmVyTWU6IFtmYWxzZV0sXG4gICAgfSk7XG4gIH1cblxuICBvblN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcblxuICAgIHRoaXMuaW5Qcm9ncmVzcyA9IHRydWU7XG5cbiAgICBjb25zdCB7IHVzZXJuYW1lLCBwYXNzd29yZCwgcmVtZW1iZXJNZSB9ID0gdGhpcy5mb3JtLnZhbHVlO1xuXG4gICAgY29uc3QgcmVkaXJlY3RVcmwgPSBnZXRSZWRpcmVjdFVybCh0aGlzLmluamVjdG9yKTtcblxuICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgIC5sb2dpbih7IHVzZXJuYW1lLCBwYXNzd29yZCwgcmVtZW1iZXJNZSwgcmVkaXJlY3RVcmwgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihcbiAgICAgICAgICAgIGVyci5lcnJvcj8uZXJyb3JfZGVzY3JpcHRpb24gfHxcbiAgICAgICAgICAgICAgZXJyLmVycm9yPy5lcnJvci5tZXNzYWdlIHx8XG4gICAgICAgICAgICAgICdBYnBBY2NvdW50OjpEZWZhdWx0RXJyb3JNZXNzYWdlJyxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICB7IGxpZmU6IDcwMDAgfSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pblByb2dyZXNzID0gZmFsc2UpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGg0Pnt7ICdBYnBBY2NvdW50OjpMb2dpbicgfCBhYnBMb2NhbGl6YXRpb24gfX08L2g0PlxuPHN0cm9uZyAqbmdJZj1cImlzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWRcIj5cbiAge3sgJ0FicEFjY291bnQ6OkFyZVlvdUFOZXdVc2VyJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICA8YSBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi1ub25lXCIgcm91dGVyTGluaz1cIi9hY2NvdW50L3JlZ2lzdGVyXCIgcXVlcnlQYXJhbXNIYW5kbGluZz1cInByZXNlcnZlXCI+e3tcbiAgICAnQWJwQWNjb3VudDo6UmVnaXN0ZXInIHwgYWJwTG9jYWxpemF0aW9uXG4gIH19PC9hPlxuPC9zdHJvbmc+XG48Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiIHZhbGlkYXRlT25TdWJtaXQgY2xhc3M9XCJtdC00XCI+XG4gIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cbiAgICA8bGFiZWwgZm9yPVwibG9naW4taW5wdXQtdXNlci1uYW1lLW9yLWVtYWlsLWFkZHJlc3NcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xuICAgICAgJ0FicEFjY291bnQ6OlVzZXJOYW1lT3JFbWFpbEFkZHJlc3MnIHwgYWJwTG9jYWxpemF0aW9uXG4gICAgfX08L2xhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgaWQ9XCJsb2dpbi1pbnB1dC11c2VyLW5hbWUtb3ItZW1haWwtYWRkcmVzc1wiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VybmFtZVwiXG4gICAgICBhdXRvY29tcGxldGU9XCJ1c2VybmFtZVwiXG4gICAgICBhdXRvZm9jdXNcbiAgICAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBmb3I9XCJsb2dpbi1pbnB1dC1wYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7ICdBYnBBY2NvdW50OjpQYXNzd29yZCcgfCBhYnBMb2NhbGl6YXRpb24gfX08L2xhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgIGlkPVwibG9naW4taW5wdXQtcGFzc3dvcmRcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwiY3VycmVudC1wYXNzd29yZFwiXG4gICAgLz5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgbWItMlwiIGZvcj1cImxvZ2luLWlucHV0LXJlbWVtYmVyLW1lXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIGlkPVwibG9naW4taW5wdXQtcmVtZW1iZXItbWVcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVtZW1iZXJNZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICB7eyAnQWJwQWNjb3VudDo6UmVtZW1iZXJNZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZCBjb2xcIj5cbiAgICAgIDxhIHJvdXRlckxpbms9XCIvYWNjb3VudC9mb3Jnb3QtcGFzc3dvcmRcIj57e1xuICAgICAgICAnQWJwQWNjb3VudDo6Rm9yZ290UGFzc3dvcmQnIHwgYWJwTG9jYWxpemF0aW9uXG4gICAgICB9fTwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGFicC1idXR0b25cbiAgICBbbG9hZGluZ109XCJpblByb2dyZXNzXCJcbiAgICBidXR0b25UeXBlPVwic3VibWl0XCJcbiAgICBuYW1lPVwiQWN0aW9uXCJcbiAgICBidXR0b25DbGFzcz1cImJ0bi1ibG9jayBidG4tbGcgbXQtMyBidG4gYnRuLXByaW1hcnlcIlxuICA+XG4gICAge3sgJ0FicEFjY291bnQ6OkxvZ2luJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICA8L2FicC1idXR0b24+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { ProfileService } from '@abp/ng.account.core/proxy';
|
|
2
|
-
import { fadeIn } from '@abp/ng.theme.shared';
|
|
3
|
-
import { transition, trigger, useAnimation } from '@angular/animations';
|
|
4
|
-
import { Component } from '@angular/core';
|
|
5
|
-
import { ManageProfileStateService } from '../../services/manage-profile.state.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@abp/ng.account.core/proxy";
|
|
8
|
-
import * as i2 from "../../services/manage-profile.state.service";
|
|
9
|
-
import * as i3 from "../change-password/change-password.component";
|
|
10
|
-
import * as i4 from "../personal-settings/personal-settings.component";
|
|
11
|
-
import * as i5 from "@abp/ng.theme.shared";
|
|
12
|
-
import * as i6 from "@angular/common";
|
|
13
|
-
import * as i7 from "@abp/ng.core";
|
|
14
|
-
export class ManageProfileComponent {
|
|
15
|
-
constructor(profileService, manageProfileState) {
|
|
16
|
-
this.profileService = profileService;
|
|
17
|
-
this.manageProfileState = manageProfileState;
|
|
18
|
-
this.selectedTab = 0;
|
|
19
|
-
this.changePasswordKey = "Account.ChangePasswordComponent" /* ChangePassword */;
|
|
20
|
-
this.personalSettingsKey = "Account.PersonalSettingsComponent" /* PersonalSettings */;
|
|
21
|
-
this.profile$ = this.manageProfileState.getProfile$();
|
|
22
|
-
}
|
|
23
|
-
ngOnInit() {
|
|
24
|
-
this.profileService.get().subscribe(profile => {
|
|
25
|
-
this.manageProfileState.setProfile(profile);
|
|
26
|
-
if (profile.isExternal) {
|
|
27
|
-
this.hideChangePasswordTab = true;
|
|
28
|
-
this.selectedTab = 1;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
ManageProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ManageProfileComponent, deps: [{ token: i1.ProfileService }, { token: i2.ManageProfileStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
ManageProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ManageProfileComponent, selector: "abp-manage-profile", ngImport: i0, template: "<div id=\"AbpContentToolbar\"></div>\n\n<div class=\"card border-0 shadow-sm min-h-400\" [abpLoading]=\"!(profile$ | async)?.userName\">\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-12 col-md-3\">\n <ul class=\"nav flex-column nav-pills\" id=\"nav-tab\" role=\"tablist\">\n <li\n *ngIf=\"!hideChangePasswordTab && (profile$ | async)\"\n class=\"nav-item\"\n (click)=\"selectedTab = 0\"\n >\n <a\n class=\"nav-link\"\n [ngClass]=\"{ active: selectedTab === 0 }\"\n role=\"tab\"\n href=\"javascript:void(0)\"\n >{{ 'AbpUi::ChangePassword' | abpLocalization }}</a\n >\n </li>\n <li class=\"nav-item mb-2\" (click)=\"selectedTab = 1\">\n <a\n class=\"nav-link\"\n [ngClass]=\"{ active: selectedTab === 1 }\"\n role=\"tab\"\n href=\"javascript:void(0)\"\n >{{ 'AbpAccount::PersonalSettings' | abpLocalization }}</a\n >\n </li>\n </ul>\n </div>\n <div *ngIf=\"profile$ | async\" class=\"col-12 col-md-9\">\n <div class=\"tab-content\" *ngIf=\"selectedTab === 0\" [@fadeIn]>\n <div class=\"tab-pane active\" role=\"tabpanel\">\n <h4>\n {{ 'AbpIdentity::ChangePassword' | abpLocalization }}\n <hr />\n </h4>\n <abp-change-password-form\n *abpReplaceableTemplate=\"{\n componentKey: changePasswordKey\n }\"\n ></abp-change-password-form>\n </div>\n </div>\n <div class=\"tab-content\" *ngIf=\"selectedTab === 1\" [@fadeIn]>\n <div class=\"tab-pane active\" role=\"tabpanel\">\n <h4>\n {{ 'AbpIdentity::PersonalSettings' | abpLocalization }}\n <hr />\n </h4>\n <abp-personal-settings-form\n *abpReplaceableTemplate=\"{\n componentKey: personalSettingsKey\n }\"\n ></abp-personal-settings-form>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["\n .min-h-400 {\n min-height: 400px;\n }\n "], components: [{ type: i3.ChangePasswordComponent, selector: "abp-change-password-form", exportAs: ["abpChangePasswordForm"] }, { type: i4.PersonalSettingsComponent, selector: "abp-personal-settings-form", exportAs: ["abpPersonalSettingsForm"] }], directives: [{ type: i5.LoadingDirective, selector: "[abpLoading]", inputs: ["abpLoading", "abpLoadingTargetElement", "abpLoadingDelay"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }], pipes: { "async": i6.AsyncPipe, "abpLocalization": i7.LocalizationPipe }, animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])] });
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ManageProfileComponent, decorators: [{
|
|
36
|
-
type: Component,
|
|
37
|
-
args: [{
|
|
38
|
-
selector: 'abp-manage-profile',
|
|
39
|
-
templateUrl: './manage-profile.component.html',
|
|
40
|
-
animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])],
|
|
41
|
-
styles: [
|
|
42
|
-
`
|
|
43
|
-
.min-h-400 {
|
|
44
|
-
min-height: 400px;
|
|
45
|
-
}
|
|
46
|
-
`,
|
|
47
|
-
],
|
|
48
|
-
}]
|
|
49
|
-
}], ctorParameters: function () { return [{ type: i1.ProfileService }, { type: i2.ManageProfileStateService }]; } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbWFuYWdlLXByb2ZpbGUvbWFuYWdlLXByb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbWFuYWdlLXByb2ZpbGUvbWFuYWdlLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7QUFjeEYsTUFBTSxPQUFPLHNCQUFzQjtJQVdqQyxZQUNZLGNBQThCLEVBQzlCLGtCQUE2QztRQUQ3QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUEyQjtRQVp6RCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQixzQkFBaUIsMERBQXFDO1FBRXRELHdCQUFtQiw4REFBdUM7UUFFMUQsYUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQU85QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUN0QixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBeEJVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLDBEQ25CbkMsb3NFQThEQSx5ekJEcERjLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRGQVNsRSxzQkFBc0I7a0JBWmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM3RSxNQUFNLEVBQUU7d0JBQ047Ozs7S0FJQztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5hY2NvdW50LmNvcmUvcHJveHknO1xuaW1wb3J0IHsgZmFkZUluIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZUFjY291bnRDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vZW51bXMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBNYW5hZ2VQcm9maWxlU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFuYWdlLXByb2ZpbGUuc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1tYW5hZ2UtcHJvZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYW5hZ2UtcHJvZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdmYWRlSW4nLCBbdHJhbnNpdGlvbignOmVudGVyJywgdXNlQW5pbWF0aW9uKGZhZGVJbikpXSldLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAubWluLWgtNDAwIHtcbiAgICAgICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFuYWdlUHJvZmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlbGVjdGVkVGFiID0gMDtcblxuICBjaGFuZ2VQYXNzd29yZEtleSA9IGVBY2NvdW50Q29tcG9uZW50cy5DaGFuZ2VQYXNzd29yZDtcblxuICBwZXJzb25hbFNldHRpbmdzS2V5ID0gZUFjY291bnRDb21wb25lbnRzLlBlcnNvbmFsU2V0dGluZ3M7XG5cbiAgcHJvZmlsZSQgPSB0aGlzLm1hbmFnZVByb2ZpbGVTdGF0ZS5nZXRQcm9maWxlJCgpO1xuXG4gIGhpZGVDaGFuZ2VQYXNzd29yZFRhYjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBtYW5hZ2VQcm9maWxlU3RhdGU6IE1hbmFnZVByb2ZpbGVTdGF0ZVNlcnZpY2UsXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldCgpLnN1YnNjcmliZShwcm9maWxlID0+IHtcbiAgICAgIHRoaXMubWFuYWdlUHJvZmlsZVN0YXRlLnNldFByb2ZpbGUocHJvZmlsZSk7XG4gICAgICBpZiAocHJvZmlsZS5pc0V4dGVybmFsKSB7XG4gICAgICAgIHRoaXMuaGlkZUNoYW5nZVBhc3N3b3JkVGFiID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IDE7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJBYnBDb250ZW50VG9vbGJhclwiPjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY2FyZCBib3JkZXItMCBzaGFkb3ctc20gbWluLWgtNDAwXCIgW2FicExvYWRpbmddPVwiIShwcm9maWxlJCB8IGFzeW5jKT8udXNlck5hbWVcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTNcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwibmF2IGZsZXgtY29sdW1uIG5hdi1waWxsc1wiIGlkPVwibmF2LXRhYlwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdJZj1cIiFoaWRlQ2hhbmdlUGFzc3dvcmRUYWIgJiYgKHByb2ZpbGUkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgIGNsYXNzPVwibmF2LWl0ZW1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkVGFiID0gMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBzZWxlY3RlZFRhYiA9PT0gMCB9XCJcbiAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAgICAgICA+e3sgJ0FicFVpOjpDaGFuZ2VQYXNzd29yZCcgfCBhYnBMb2NhbGl6YXRpb24gfX08L2FcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG1iLTJcIiAoY2xpY2spPVwic2VsZWN0ZWRUYWIgPSAxXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IHNlbGVjdGVkVGFiID09PSAxIH1cIlxuICAgICAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgICAgID57eyAnQWJwQWNjb3VudDo6UGVyc29uYWxTZXR0aW5ncycgfCBhYnBMb2NhbGl6YXRpb24gfX08L2FcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwicHJvZmlsZSQgfCBhc3luY1wiIGNsYXNzPVwiY29sLTEyIGNvbC1tZC05XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09IDBcIiBbQGZhZGVJbl0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGFjdGl2ZVwiIHJvbGU9XCJ0YWJwYW5lbFwiPlxuICAgICAgICAgICAgPGg0PlxuICAgICAgICAgICAgICB7eyAnQWJwSWRlbnRpdHk6OkNoYW5nZVBhc3N3b3JkJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICA8YWJwLWNoYW5nZS1wYXNzd29yZC1mb3JtXG4gICAgICAgICAgICAgICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwie1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudEtleTogY2hhbmdlUGFzc3dvcmRLZXlcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+PC9hYnAtY2hhbmdlLXBhc3N3b3JkLWZvcm0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIiAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAxXCIgW0BmYWRlSW5dPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZSBhY3RpdmVcIiByb2xlPVwidGFicGFuZWxcIj5cbiAgICAgICAgICAgIDxoND5cbiAgICAgICAgICAgICAge3sgJ0FicElkZW50aXR5OjpQZXJzb25hbFNldHRpbmdzJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICA8YWJwLXBlcnNvbmFsLXNldHRpbmdzLWZvcm1cbiAgICAgICAgICAgICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50S2V5OiBwZXJzb25hbFNldHRpbmdzS2V5XG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPjwvYWJwLXBlcnNvbmFsLXNldHRpbmdzLWZvcm0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|