diff --git a/npm/packs/ng/.editorconfig b/npm/packs/ng/.editorconfig new file mode 100644 index 0000000000..e89330a618 --- /dev/null +++ b/npm/packs/ng/.editorconfig @@ -0,0 +1,13 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/npm/packs/ng/.gitignore b/npm/packs/ng/.gitignore new file mode 100644 index 0000000000..7f282e1aa3 --- /dev/null +++ b/npm/packs/ng/.gitignore @@ -0,0 +1,49 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/tmp +/out-tsc +# Only exists if Bazel was run +/bazel-out + +# dependencies +/node_modules + +# profiling files +chrome-profiler-events.json +speed-measure-plugin.json + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings +yarn.lock + +# System Files +.DS_Store +Thumbs.db + +# Packages +!**/[Pp]ackages/* diff --git a/npm/packs/ng/README.md b/npm/packs/ng/README.md new file mode 100644 index 0000000000..454e4ec858 --- /dev/null +++ b/npm/packs/ng/README.md @@ -0,0 +1 @@ +

Abp Ng Packages

diff --git a/npm/packs/ng/angular.json b/npm/packs/ng/angular.json new file mode 100644 index 0000000000..09c07777df --- /dev/null +++ b/npm/packs/ng/angular.json @@ -0,0 +1,252 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "packages", + "projects": { + "core": { + "projectType": "library", + "root": "packages/core", + "sourceRoot": "packages/core/src", + "prefix": "abp", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "packages/core/tsconfig.lib.json", + "project": "packages/core/ng-package.json" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "packages/core/src/test.ts", + "tsConfig": "packages/core/tsconfig.spec.json", + "karmaConfig": "packages/core/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "packages/core/tsconfig.lib.json", + "packages/core/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "theme-shared": { + "projectType": "library", + "root": "packages/theme-shared", + "sourceRoot": "packages/theme-shared/src", + "prefix": "abp", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "packages/theme-shared/tsconfig.lib.json", + "project": "packages/theme-shared/ng-package.json" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "packages/theme-shared/src/test.ts", + "tsConfig": "packages/theme-shared/tsconfig.spec.json", + "karmaConfig": "packages/theme-shared/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "packages/theme-shared/tsconfig.lib.json", + "packages/theme-shared/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "account": { + "projectType": "library", + "root": "packages/account", + "sourceRoot": "packages/account/src", + "prefix": "abp", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "packages/account/tsconfig.lib.json", + "project": "packages/account/ng-package.json" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "packages/account/src/test.ts", + "tsConfig": "packages/account/tsconfig.spec.json", + "karmaConfig": "packages/account/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "packages/account/tsconfig.lib.json", + "packages/account/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "permission-management": { + "projectType": "library", + "root": "packages/permission-management", + "sourceRoot": "packages/permission-management/src", + "prefix": "abp", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "packages/permission-management/tsconfig.lib.json", + "project": "packages/permission-management/ng-package.json" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "packages/permission-management/src/test.ts", + "tsConfig": "packages/permission-management/tsconfig.spec.json", + "karmaConfig": "packages/permission-management/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "packages/permission-management/tsconfig.lib.json", + "packages/permission-management/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "identity": { + "projectType": "library", + "root": "packages/identity", + "sourceRoot": "packages/identity/src", + "prefix": "abp", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "packages/identity/tsconfig.lib.json", + "project": "packages/identity/ng-package.json" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "packages/identity/src/test.ts", + "tsConfig": "packages/identity/tsconfig.spec.json", + "karmaConfig": "packages/identity/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "packages/identity/tsconfig.lib.json", + "packages/identity/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "theme-basic": { + "projectType": "library", + "root": "packages/theme-basic", + "sourceRoot": "packages/theme-basic/src", + "prefix": "abp", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "packages/theme-basic/tsconfig.lib.json", + "project": "packages/theme-basic/ng-package.json" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "packages/theme-basic/src/test.ts", + "tsConfig": "packages/theme-basic/tsconfig.spec.json", + "karmaConfig": "packages/theme-basic/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "packages/theme-basic/tsconfig.lib.json", + "packages/theme-basic/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "tenant-management": { + "projectType": "library", + "root": "packages/tenant-management", + "sourceRoot": "packages/tenant-management/src", + "prefix": "abp", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "packages/tenant-management/tsconfig.lib.json", + "project": "packages/tenant-management/ng-package.json" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "packages/tenant-management/src/test.ts", + "tsConfig": "packages/tenant-management/tsconfig.spec.json", + "karmaConfig": "packages/tenant-management/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "packages/tenant-management/tsconfig.lib.json", + "packages/tenant-management/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }}, + "defaultProject": "core" +} diff --git a/npm/packs/ng/dist/account/README.md b/npm/packs/ng/dist/account/README.md new file mode 100644 index 0000000000..dc2cd4534a --- /dev/null +++ b/npm/packs/ng/dist/account/README.md @@ -0,0 +1 @@ +

@abp/ng.account

diff --git a/npm/packs/ng/dist/account/abp-ng.account.d.ts b/npm/packs/ng/dist/account/abp-ng.account.d.ts new file mode 100644 index 0000000000..d0a8886eab --- /dev/null +++ b/npm/packs/ng/dist/account/abp-ng.account.d.ts @@ -0,0 +1,10 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './public-api'; +export { AccountRoutingModule as ɵe } from './lib/account-routing.module'; +export { LoginComponent as ɵa } from './lib/components/login/login.component'; +export { RegisterComponent as ɵc } from './lib/components/register/register.component'; +export { TenantBoxComponent as ɵd } from './lib/components/tenant-box/tenant-box.component'; +export { Options as ɵb } from './lib/models/options'; +export { ACCOUNT_OPTIONS as ɵg, optionsFactory as ɵf } from './lib/tokens/options.token'; diff --git a/npm/packs/ng/dist/account/abp-ng.account.metadata.json b/npm/packs/ng/dist/account/abp-ng.account.metadata.json new file mode 100644 index 0000000000..a788e4fc25 --- /dev/null +++ b/npm/packs/ng/dist/account/abp-ng.account.metadata.json @@ -0,0 +1 @@ +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/options"},{"from":"./lib/register/register.component"}],"metadata":{"AccountModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":15,"character":12},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":15,"character":46},{"__symbolic":"reference","module":"primeng/table","name":"TableModule","line":15,"character":65},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":15,"character":78},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":15,"character":97}],"exports":[]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"defaults":[{}],"value":{"ngModule":{"__symbolic":"reference","name":"AccountModule"},"providers":[{"provide":{"__symbolic":"reference","name":"ɵg"},"useValue":{"__symbolic":"reference","name":"options"}},{"provide":"ACCOUNT_OPTIONS","useFactory":{"__symbolic":"reference","name":"ɵf"},"deps":[{"__symbolic":"reference","name":"ɵg"}]}]}}}},"ACCOUNT_ROUTES":[{"name":"Account","path":"account","invisible":true,"layout":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":7,"character":12},"member":"application"},"children":[{"path":"login","name":"Login","order":1},{"path":"register","name":"Register","order":2}]}],"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"abp-login","template":"
\n
\n \n\n \n
\n
\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":22,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":17},"arguments":["ACCOUNT_OPTIONS"]}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":19,"character":16},{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":20,"character":26},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":21,"character":19},{"__symbolic":"reference","name":"ɵb"}]}],"onSubmit":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"interface"},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"abp-register","template":"
\n
\n \n\n \n
\n
\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":15,"character":26},{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":15,"character":61},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":15,"character":91}]}],"onSubmit":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"abp-tenant-box","template":"\n {{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: \n \n {{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}\n \n ({{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }})\n\n\n\n
\n
\n SwitchTenant\n
\n \n
\n
\n
\n
\n
\n \n \n
\n

{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}

\n
\n
\n\n
\n \n \n
\n
\n
\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbModal","line":10,"character":36},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":10,"character":58}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":16,"character":3},"arguments":["modalContent",{"static":false}]}]}],"createForm":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"onSwitch":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":16,"character":12},"member":"forChild"},"arguments":[[{"path":"","pathMatch":"full","redirectTo":"login"},{"path":"","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":10,"character":15},"children":[{"path":"login","component":{"__symbolic":"reference","name":"ɵa"}},{"path":"register","component":{"__symbolic":"reference","name":"ɵc"}}]}]]}],"exports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":17,"character":12}]}]}],"members":{}},"ɵf":{"__symbolic":"function","parameters":["options"],"value":{"redirectUrl":"/"}},"ɵg":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":10,"character":35},"arguments":["ACCOUNT_OPTIONS"]}},"origins":{"AccountModule":"./lib/account.module","ACCOUNT_ROUTES":"./lib/constants/routes","ɵa":"./lib/components/login/login.component","ɵb":"./lib/models/options","ɵc":"./lib/components/register/register.component","ɵd":"./lib/components/tenant-box/tenant-box.component","ɵe":"./lib/account-routing.module","ɵf":"./lib/tokens/options.token","ɵg":"./lib/tokens/options.token"},"importAs":"@abp/ng.account"} \ No newline at end of file diff --git a/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.js b/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.js new file mode 100644 index 0000000000..45d3466088 --- /dev/null +++ b/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.js @@ -0,0 +1,319 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@angular/core'), require('@angular/router'), require('@angular/forms'), require('@ngxs/router-plugin'), require('@ngxs/store'), require('angular-oauth2-oidc'), require('rxjs'), require('@ngx-validate/core'), require('@abp/ng.theme.shared'), require('@ng-bootstrap/ng-bootstrap'), require('primeng/table')) : + typeof define === 'function' && define.amd ? define('@abp/ng.account', ['exports', '@abp/ng.core', '@angular/core', '@angular/router', '@angular/forms', '@ngxs/router-plugin', '@ngxs/store', 'angular-oauth2-oidc', 'rxjs', '@ngx-validate/core', '@abp/ng.theme.shared', '@ng-bootstrap/ng-bootstrap', 'primeng/table'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.account = {}), global.ng_core, global.ng.core, global.ng.router, global.ng.forms, global.routerPlugin, global.store, global.angularOauth2Oidc, global.rxjs, global.core$1, global.ng_theme_shared, global.ngBootstrap, global.table)); +}(this, function (exports, ng_core, core, router, forms, routerPlugin, store, angularOauth2Oidc, rxjs, core$1, ng_theme_shared, ngBootstrap, table) { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var maxLength = forms.Validators.maxLength, minLength = forms.Validators.minLength, required = forms.Validators.required; + var LoginComponent = /** @class */ (function () { + function LoginComponent(fb, oauthService, store, options) { + this.fb = fb; + this.oauthService = oauthService; + this.store = store; + this.options = options; + this.oauthService.configure(this.store.selectSnapshot(ng_core.ConfigState.getOne('environment')).oAuthConfig); + this.oauthService.loadDiscoveryDocument(); + this.form = this.fb.group({ + username: ['', [required, maxLength(255)]], + password: ['', [required, maxLength(32)]], + remember: [false], + }); + } + /** + * @return {?} + */ + LoginComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.form.invalid) + return; + this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage); + rxjs.from(this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value)).subscribe({ + next: (/** + * @return {?} + */ + function () { + /** @type {?} */ + var redirectUrl = window.history.state.redirectUrl || _this.options.redirectUrl; + _this.store + .dispatch(new ng_core.ConfigGetAppConfiguration()) + .subscribe((/** + * @return {?} + */ + function () { return _this.store.dispatch(new routerPlugin.Navigate([redirectUrl || '/'])); })); + }), + error: (/** + * @return {?} + */ + function () { return console.error('an error occured'); }), + }); + }; + LoginComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-login', + template: "
\n \n
\n" + }] } + ]; + /** @nocollapse */ + LoginComponent.ctorParameters = function () { return [ + { type: forms.FormBuilder }, + { type: angularOauth2Oidc.OAuthService }, + { type: store.Store }, + { type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: ['ACCOUNT_OPTIONS',] }] } + ]; }; + return LoginComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var maxLength$1 = forms.Validators.maxLength, minLength$1 = forms.Validators.minLength, required$1 = forms.Validators.required, email = forms.Validators.email; + var RegisterComponent = /** @class */ (function () { + function RegisterComponent(fb, oauthService, router) { + this.fb = fb; + this.oauthService = oauthService; + this.router = router; + this.form = this.fb.group({ + username: ['', [required$1, maxLength$1(255)]], + password: [ + '', + [required$1, maxLength$1(32), minLength$1(6), core$1.validatePassword(['small', 'capital', 'number', 'special'])], + ], + email: ['', [required$1, email]], + }); + } + /** + * @return {?} + */ + RegisterComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + if (this.form.invalid) + return; + }; + RegisterComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-register', + template: "
\n
\n \n\n \n
\n
\n" + }] } + ]; + /** @nocollapse */ + RegisterComponent.ctorParameters = function () { return [ + { type: forms.FormBuilder }, + { type: angularOauth2Oidc.OAuthService }, + { type: router.Router } + ]; }; + return RegisterComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var routes = [ + { path: '', pathMatch: 'full', redirectTo: 'login' }, + { + path: '', + component: ng_core.DynamicLayoutComponent, + children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }], + }, + ]; + var AccountRoutingModule = /** @class */ (function () { + function AccountRoutingModule() { + } + AccountRoutingModule.decorators = [ + { type: core.NgModule, args: [{ + imports: [router.RouterModule.forChild(routes)], + exports: [router.RouterModule], + },] } + ]; + return AccountRoutingModule; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TenantBoxComponent = /** @class */ (function () { + function TenantBoxComponent(modalService, fb) { + this.modalService = modalService; + this.fb = fb; + } + /** + * @return {?} + */ + TenantBoxComponent.prototype.createForm = /** + * @return {?} + */ + function () { + this.form = this.fb.group({ + name: [this.selected.name], + }); + }; + /** + * @return {?} + */ + TenantBoxComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.createForm(); + this.modalService.open(this.modalContent); + }; + /** + * @return {?} + */ + TenantBoxComponent.prototype.onSwitch = /** + * @return {?} + */ + function () { + this.selected = (/** @type {?} */ ({})); + this.openModal(); + }; + /** + * @return {?} + */ + TenantBoxComponent.prototype.save = /** + * @return {?} + */ + function () { + this.selected = this.form.value; + this.modalService.dismissAll(); + }; + TenantBoxComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-tenant-box', + template: "\n {{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: \n \n {{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}\n \n ({{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }})\n\n\n\n
\n
\n SwitchTenant\n
\n \n
\n
\n
\n
\n
\n \n \n
\n

{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}

\n
\n
\n\n
\n \n \n
\n
\n
\n" + }] } + ]; + /** @nocollapse */ + TenantBoxComponent.ctorParameters = function () { return [ + { type: ngBootstrap.NgbModal }, + { type: forms.FormBuilder } + ]; }; + TenantBoxComponent.propDecorators = { + modalContent: [{ type: core.ViewChild, args: ['modalContent', { static: false },] }] + }; + return TenantBoxComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @param {?} options + * @return {?} + */ + function optionsFactory(options) { + return __assign({ redirectUrl: '/' }, options); + } + /** @type {?} */ + var ACCOUNT_OPTIONS = new core.InjectionToken('ACCOUNT_OPTIONS'); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var AccountModule = /** @class */ (function () { + function AccountModule() { + } + /** + * @param {?=} options + * @return {?} + */ + AccountModule.forRoot = /** + * @param {?=} options + * @return {?} + */ + function (options) { + if (options === void 0) { options = (/** @type {?} */ ({})); } + return { + ngModule: AccountModule, + providers: [ + { provide: ACCOUNT_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: optionsFactory, + deps: [ACCOUNT_OPTIONS], + }, + ], + }; + }; + AccountModule.decorators = [ + { type: core.NgModule, args: [{ + declarations: [LoginComponent, RegisterComponent, TenantBoxComponent], + imports: [ng_core.CoreModule, AccountRoutingModule, ng_theme_shared.ThemeSharedModule, table.TableModule, ngBootstrap.NgbDropdownModule, core$1.NgxValidateCoreModule], + exports: [], + },] } + ]; + return AccountModule; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var ACCOUNT_ROUTES = (/** @type {?} */ ([ + { + name: 'Account', + path: 'account', + invisible: true, + layout: "application" /* application */, + children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], + }, + ])); + + exports.ACCOUNT_OPTIONS = ACCOUNT_OPTIONS; + exports.ACCOUNT_ROUTES = ACCOUNT_ROUTES; + exports.AccountModule = AccountModule; + exports.LoginComponent = LoginComponent; + exports.RegisterComponent = RegisterComponent; + exports.optionsFactory = optionsFactory; + exports.ɵa = LoginComponent; + exports.ɵc = RegisterComponent; + exports.ɵd = TenantBoxComponent; + exports.ɵe = AccountRoutingModule; + exports.ɵf = optionsFactory; + exports.ɵg = ACCOUNT_OPTIONS; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=abp-ng.account.umd.js.map diff --git a/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.js.map b/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.js.map new file mode 100644 index 0000000000..9d122c752b --- /dev/null +++ b/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.account.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { ConfigGetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from } from 'rxjs';\nimport { Options } from '../../models/options';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n ).subscribe({\n next: () => {\n const redirectUrl = window.history.state.redirectUrl || this.options.redirectUrl;\n\n this.store\n .dispatch(new ConfigGetAppConfiguration())\n .subscribe(() => this.store.dispatch(new Navigate([redirectUrl || '/'])));\n },\n error: () => console.error('an error occured'),\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { validatePassword } from '@ngx-validate/core';\nimport { OAuthService } from 'angular-oauth2-oidc';\n\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n constructor(private fb: FormBuilder, private oauthService: OAuthService, private router: Router) {\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: [\n '',\n [required, maxLength(32), minLength(6), validatePassword(['small', 'capital', 'number', 'special'])],\n ],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent {\n constructor(private modalService: NgbModal, private fb: FormBuilder) {}\n\n form: FormGroup;\n\n selected: ABP.BasicItem;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n createForm() {\n this.form = this.fb.group({\n name: [this.selected.name],\n });\n }\n\n openModal() {\n this.createForm();\n this.modalService.open(this.modalContent);\n }\n\n onSwitch() {\n this.selected = {} as ABP.BasicItem;\n this.openModal();\n }\n\n save() {\n this.selected = this.form.value;\n this.modalService.dismissAll();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\nimport { TableModule } from 'primeng/table';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {\n static forRoot(options = {} as Options): ModuleWithProviders {\n return {\n ngModule: AccountModule,\n providers: [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ],\n };\n }\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n] as ABP.FullRoute[];\n"],"names":["ConfigState","from","ConfigGetAppConfiguration","Navigate","Component","FormBuilder","OAuthService","Store","Optional","Inject","maxLength","minLength","required","validatePassword","Router","DynamicLayoutComponent","NgModule","RouterModule","NgbModal","ViewChild","InjectionToken","CoreModule","ThemeSharedModule","TableModule","NgbDropdownModule","NgxValidateCoreModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.min.js b/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.min.js new file mode 100644 index 0000000000..9415991e2d --- /dev/null +++ b/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.min.js @@ -0,0 +1,2 @@ +!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@abp/ng.core"),require("@angular/core"),require("@angular/router"),require("@angular/forms"),require("@ngxs/router-plugin"),require("@ngxs/store"),require("angular-oauth2-oidc"),require("rxjs"),require("@ngx-validate/core"),require("@abp/ng.theme.shared"),require("@ng-bootstrap/ng-bootstrap"),require("primeng/table")):"function"==typeof define&&define.amd?define("@abp/ng.account",["exports","@abp/ng.core","@angular/core","@angular/router","@angular/forms","@ngxs/router-plugin","@ngxs/store","angular-oauth2-oidc","rxjs","@ngx-validate/core","@abp/ng.theme.shared","@ng-bootstrap/ng-bootstrap","primeng/table"],e):e(((n=n||self).abp=n.abp||{},n.abp.ng=n.abp.ng||{},n.abp.ng.account={}),n.ng_core,n.ng.core,n.ng.router,n.ng.forms,n.routerPlugin,n.store,n.angularOauth2Oidc,n.rxjs,n.core$1,n.ng_theme_shared,n.ngBootstrap,n.table)}(this,function(n,e,t,o,a,r,i,s,l,c,p,u,d){"use strict";var m=function(){return(m=Object.assign||function(n){for(var e,t=1,o=arguments.length;t\n
\n\n'}]}],n.ctorParameters=function(){return[{type:a.FormBuilder},{type:s.OAuthService},{type:i.Store},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:["ACCOUNT_OPTIONS"]}]}]},n}(),h=a.Validators.maxLength,v=a.Validators.minLength,y=a.Validators.required,C=a.Validators.email,S=function(){function n(n,e,t){this.fb=n,this.oauthService=e,this.router=t,this.form=this.fb.group({username:["",[y,h(255)]],password:["",[y,h(32),v(6),c.validatePassword(["small","capital","number","special"])]],email:["",[y,C]]})}return n.prototype.onSubmit=function(){this.form.invalid},n.decorators=[{type:t.Component,args:[{selector:"abp-register",template:'
\n
\n \n\n \n
\n
\n'}]}],n.ctorParameters=function(){return[{type:a.FormBuilder},{type:s.OAuthService},{type:o.Router}]},n}(),A=[{path:"",pathMatch:"full",redirectTo:"login"},{path:"",component:e.DynamicLayoutComponent,children:[{path:"login",component:f},{path:"register",component:S}]}],w=function(){function n(){}return n.decorators=[{type:t.NgModule,args:[{imports:[o.RouterModule.forChild(A)],exports:[o.RouterModule]}]}],n}(),x=function(){function n(n,e){this.modalService=n,this.fb=e}return n.prototype.createForm=function(){this.form=this.fb.group({name:[this.selected.name]})},n.prototype.openModal=function(){this.createForm(),this.modalService.open(this.modalContent)},n.prototype.onSwitch=function(){this.selected={},this.openModal()},n.prototype.save=function(){this.selected=this.form.value,this.modalService.dismissAll()},n.decorators=[{type:t.Component,args:[{selector:"abp-tenant-box",template:'\n {{ \'AbpUiMultiTenancy::Tenant\' | abpLocalization }}: \n \n {{ selected?.name ? selected.name : (\'AbpUiMultiTenancy::NotSelected\' | abpLocalization) }}\n \n ({{\n \'AbpUiMultiTenancy::Switch\' | abpLocalization\n }})\n\n\n\n \n
\n \n\n \n
\n
\n'}]}],n.ctorParameters=function(){return[{type:u.NgbModal},{type:a.FormBuilder}]},n.propDecorators={modalContent:[{type:t.ViewChild,args:["modalContent",{static:!1}]}]},n}();function T(n){return m({redirectUrl:"/"},n)}var L=new t.InjectionToken("ACCOUNT_OPTIONS"),N=function(){function n(){}return n.forRoot=function(e){return void 0===e&&(e={}),{ngModule:n,providers:[{provide:L,useValue:e},{provide:"ACCOUNT_OPTIONS",useFactory:T,deps:[L]}]}},n.decorators=[{type:t.NgModule,args:[{declarations:[f,S,x],imports:[e.CoreModule,w,p.ThemeSharedModule,d.TableModule,u.NgbDropdownModule,c.NgxValidateCoreModule],exports:[]}]}],n}();n.ACCOUNT_OPTIONS=L,n.ACCOUNT_ROUTES=[{name:"Account",path:"account",invisible:!0,layout:"application",children:[{path:"login",name:"Login",order:1},{path:"register",name:"Register",order:2}]}],n.AccountModule=N,n.LoginComponent=f,n.RegisterComponent=S,n.optionsFactory=T,n.ɵa=f,n.ɵc=S,n.ɵd=x,n.ɵe=w,n.ɵf=T,n.ɵg=L,Object.defineProperty(n,"__esModule",{value:!0})}); +//# sourceMappingURL=abp-ng.account.umd.min.js.map \ No newline at end of file diff --git a/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.min.js.map b/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.min.js.map new file mode 100644 index 0000000000..d24ee15daa --- /dev/null +++ b/npm/packs/ng/dist/account/bundles/abp-ng.account.umd.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","maxLength","forms","Validators","required","minLength","LoginComponent","fb","oauthService","store","options","configure","selectSnapshot","ConfigState","getOne","oAuthConfig","loadDiscoveryDocument","form","group","username","password","remember","onSubmit","_this","invalid","setStorage","value","localStorage","sessionStorage","from","fetchTokenUsingPasswordFlow","get","subscribe","next","redirectUrl","window","history","state","dispatch","ConfigGetAppConfiguration","Navigate","error","console","Component","args","selector","template","FormBuilder","OAuthService","Store","Optional","type","Inject","email","RegisterComponent","router","validatePassword","Router","routes","path","pathMatch","redirectTo","component","DynamicLayoutComponent","children","AccountRoutingModule","NgModule","imports","RouterModule","forChild","exports","TenantBoxComponent","modalService","createForm","name","selected","openModal","open","modalContent","onSwitch","save","dismissAll","NgbModal","ViewChild","static","optionsFactory","ACCOUNT_OPTIONS","InjectionToken","AccountModule","forRoot","ngModule","providers","provide","useValue","useFactory","deps","declarations","CoreModule","ThemeSharedModule","TableModule","NgbDropdownModule","NgxValidateCoreModule","invisible","layout","order"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { ConfigGetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from } from 'rxjs';\nimport { Options } from '../../models/options';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n ).subscribe({\n next: () => {\n const redirectUrl = window.history.state.redirectUrl || this.options.redirectUrl;\n\n this.store\n .dispatch(new ConfigGetAppConfiguration())\n .subscribe(() => this.store.dispatch(new Navigate([redirectUrl || '/'])));\n },\n error: () => console.error('an error occured'),\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { validatePassword } from '@ngx-validate/core';\nimport { OAuthService } from 'angular-oauth2-oidc';\n\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n constructor(private fb: FormBuilder, private oauthService: OAuthService, private router: Router) {\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: [\n '',\n [required, maxLength(32), minLength(6), validatePassword(['small', 'capital', 'number', 'special'])],\n ],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent {\n constructor(private modalService: NgbModal, private fb: FormBuilder) {}\n\n form: FormGroup;\n\n selected: ABP.BasicItem;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n createForm() {\n this.form = this.fb.group({\n name: [this.selected.name],\n });\n }\n\n openModal() {\n this.createForm();\n this.modalService.open(this.modalContent);\n }\n\n onSwitch() {\n this.selected = {} as ABP.BasicItem;\n this.openModal();\n }\n\n save() {\n this.selected = this.form.value;\n this.modalService.dismissAll();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\nimport { TableModule } from 'primeng/table';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {\n static forRoot(options = {} as Options): ModuleWithProviders {\n return {\n ngModule: AccountModule,\n providers: [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ],\n };\n }\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n] as ABP.FullRoute[];\n"]} \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/abp-ng.account.js b/npm/packs/ng/dist/account/esm2015/abp-ng.account.js new file mode 100644 index 0000000000..296db7f041 --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/abp-ng.account.js @@ -0,0 +1,14 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { AccountModule, LoginComponent, RegisterComponent, ACCOUNT_ROUTES, optionsFactory, ACCOUNT_OPTIONS } from './public-api'; +export { AccountRoutingModule as ɵe } from './lib/account-routing.module'; +export { LoginComponent as ɵa } from './lib/components/login/login.component'; +export { RegisterComponent as ɵc } from './lib/components/register/register.component'; +export { TenantBoxComponent as ɵd } from './lib/components/tenant-box/tenant-box.component'; +export { ACCOUNT_OPTIONS as ɵg, optionsFactory as ɵf } from './lib/tokens/options.token'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmFjY291bnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJhYnAtbmcuYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsa0hBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFFMUYsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0FjY291bnRSb3V0aW5nTW9kdWxlIGFzIMm1ZX0gZnJvbSAnLi9saWIvYWNjb3VudC1yb3V0aW5nLm1vZHVsZSc7XG5leHBvcnQge0xvZ2luQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xuZXhwb3J0IHtSZWdpc3RlckNvbXBvbmVudCBhcyDJtWN9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7VGVuYW50Qm94Q29tcG9uZW50IGFzIMm1ZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50JztcbmV4cG9ydCB7T3B0aW9ucyBhcyDJtWJ9IGZyb20gJy4vbGliL21vZGVscy9vcHRpb25zJztcbmV4cG9ydCB7QUNDT1VOVF9PUFRJT05TIGFzIMm1ZyxvcHRpb25zRmFjdG9yeSBhcyDJtWZ9IGZyb20gJy4vbGliL3Rva2Vucy9vcHRpb25zLnRva2VuJzsiXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/lib/account-routing.module.js b/npm/packs/ng/dist/account/esm2015/lib/account-routing.module.js new file mode 100644 index 0000000000..8e133376f8 --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/lib/account-routing.module.js @@ -0,0 +1,27 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { LoginComponent } from './components/login/login.component'; +import { RegisterComponent } from './components/register/register.component'; +import { DynamicLayoutComponent } from '@abp/ng.core'; +/** @type {?} */ +const routes = [ + { path: '', pathMatch: 'full', redirectTo: 'login' }, + { + path: '', + component: DynamicLayoutComponent, + children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }], + }, +]; +export class AccountRoutingModule { +} +AccountRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + },] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi9hY2NvdW50LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDOztNQUVoRCxNQUFNLEdBQVc7SUFDckIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRTtJQUNwRDtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLHNCQUFzQjtRQUNqQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztLQUM3RztDQUNGO0FBTUQsTUFBTSxPQUFPLG9CQUFvQjs7O1lBSmhDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVzLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTG9naW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50JztcbmltcG9ydCB7IFJlZ2lzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHsgcGF0aDogJycsIHBhdGhNYXRjaDogJ2Z1bGwnLCByZWRpcmVjdFRvOiAnbG9naW4nIH0sXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgY2hpbGRyZW46IFt7IHBhdGg6ICdsb2dpbicsIGNvbXBvbmVudDogTG9naW5Db21wb25lbnQgfSwgeyBwYXRoOiAncmVnaXN0ZXInLCBjb21wb25lbnQ6IFJlZ2lzdGVyQ29tcG9uZW50IH1dLFxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRSb3V0aW5nTW9kdWxlIHt9XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/lib/account.module.js b/npm/packs/ng/dist/account/esm2015/lib/account.module.js new file mode 100644 index 0000000000..6ef606c818 --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/lib/account.module.js @@ -0,0 +1,42 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CoreModule } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { AccountRoutingModule } from './account-routing.module'; +import { LoginComponent } from './components/login/login.component'; +import { RegisterComponent } from './components/register/register.component'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { TenantBoxComponent } from './components/tenant-box/tenant-box.component'; +import { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token'; +import { TableModule } from 'primeng/table'; +import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; +export class AccountModule { + /** + * @param {?=} options + * @return {?} + */ + static forRoot(options = (/** @type {?} */ ({}))) { + return { + ngModule: AccountModule, + providers: [ + { provide: ACCOUNT_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: optionsFactory, + deps: [ACCOUNT_OPTIONS], + }, + ], + }; + } +} +AccountModule.decorators = [ + { type: NgModule, args: [{ + declarations: [LoginComponent, RegisterComponent, TenantBoxComponent], + imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule], + exports: [], + },] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvYWNjb3VudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU8zRCxNQUFNLE9BQU8sYUFBYTs7Ozs7SUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsbUJBQUEsRUFBRSxFQUFXO1FBQ3BDLE9BQU87WUFDTCxRQUFRLEVBQUUsYUFBYTtZQUN2QixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQy9DO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFVBQVUsRUFBRSxjQUFjO29CQUMxQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQ3hCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBbEJGLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUM7Z0JBQ3JFLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7Z0JBQ3JILE9BQU8sRUFBRSxFQUFFO2FBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY2NvdW50Um91dGluZ01vZHVsZSB9IGZyb20gJy4vYWNjb3VudC1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBMb2dpbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVnaXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgVGVuYW50Qm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RlbmFudC1ib3gvdGVuYW50LWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzL29wdGlvbnMnO1xuaW1wb3J0IHsgQUNDT1VOVF9PUFRJT05TLCBvcHRpb25zRmFjdG9yeSB9IGZyb20gJy4vdG9rZW5zL29wdGlvbnMudG9rZW4nO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTG9naW5Db21wb25lbnQsIFJlZ2lzdGVyQ29tcG9uZW50LCBUZW5hbnRCb3hDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgQWNjb3VudFJvdXRpbmdNb2R1bGUsIFRoZW1lU2hhcmVkTW9kdWxlLCBUYWJsZU1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUsIE5neFZhbGlkYXRlQ29yZU1vZHVsZV0sXG4gIGV4cG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3Qob3B0aW9ucyA9IHt9IGFzIE9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFjY291bnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBBQ0NPVU5UX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQUNDT1VOVF9PUFRJT05TJyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBvcHRpb25zRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbQUNDT1VOVF9PUFRJT05TXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/lib/components/index.js b/npm/packs/ng/dist/account/esm2015/lib/components/index.js new file mode 100644 index 0000000000..13392b51fc --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/lib/components/index.js @@ -0,0 +1,7 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { LoginComponent } from './login/login.component'; +export { RegisterComponent } from './register/register.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsK0JBQWMseUJBQXlCLENBQUM7QUFDeEMsa0NBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/lib/components/login/login.component.js b/npm/packs/ng/dist/account/esm2015/lib/components/login/login.component.js new file mode 100644 index 0000000000..2e5a877630 --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/lib/components/login/login.component.js @@ -0,0 +1,98 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { ConfigGetAppConfiguration, ConfigState } from '@abp/ng.core'; +import { Component, Inject, Optional } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; +import { Navigate } from '@ngxs/router-plugin'; +import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { from } from 'rxjs'; +const { maxLength, minLength, required } = Validators; +export class LoginComponent { + /** + * @param {?} fb + * @param {?} oauthService + * @param {?} store + * @param {?} options + */ + constructor(fb, oauthService, store, options) { + this.fb = fb; + this.oauthService = oauthService; + this.store = store; + this.options = options; + this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig); + this.oauthService.loadDiscoveryDocument(); + this.form = this.fb.group({ + username: ['', [required, maxLength(255)]], + password: ['', [required, maxLength(32)]], + remember: [false], + }); + } + /** + * @return {?} + */ + onSubmit() { + if (this.form.invalid) + return; + this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage); + from(this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value)).subscribe({ + next: (/** + * @return {?} + */ + () => { + /** @type {?} */ + const redirectUrl = window.history.state.redirectUrl || this.options.redirectUrl; + this.store + .dispatch(new ConfigGetAppConfiguration()) + .subscribe((/** + * @return {?} + */ + () => this.store.dispatch(new Navigate([redirectUrl || '/'])))); + }), + error: (/** + * @return {?} + */ + () => console.error('an error occured')), + }); + } +} +LoginComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-login', + template: "
\n" + }] } +]; +/** @nocollapse */ +LoginComponent.ctorParameters = () => [ + { type: FormBuilder }, + { type: OAuthService }, + { type: Store }, + { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: ['ACCOUNT_OPTIONS',] }] } +]; +if (false) { + /** @type {?} */ + LoginComponent.prototype.form; + /** + * @type {?} + * @private + */ + LoginComponent.prototype.fb; + /** + * @type {?} + * @private + */ + LoginComponent.prototype.oauthService; + /** + * @type {?} + * @private + */ + LoginComponent.prototype.store; + /** + * @type {?} + * @private + */ + LoginComponent.prototype.options; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO01BR3RCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVO0FBTXJELE1BQU0sT0FBTyxjQUFjOzs7Ozs7O0lBR3pCLFlBQ1UsRUFBZSxFQUNmLFlBQTBCLEVBQzFCLEtBQVksRUFDMkIsT0FBZ0I7UUFIdkQsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQU87UUFDMkIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUUvRCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6QyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZGLElBQUksQ0FDRixJQUFJLENBQUMsWUFBWSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDaEgsQ0FBQyxTQUFTLENBQUM7WUFDVixJQUFJOzs7WUFBRSxHQUFHLEVBQUU7O3NCQUNILFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO2dCQUVoRixJQUFJLENBQUMsS0FBSztxQkFDUCxRQUFRLENBQUMsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO3FCQUN6QyxTQUFTOzs7Z0JBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7WUFDOUUsQ0FBQyxDQUFBO1lBQ0QsS0FBSzs7O1lBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1NBQy9DLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQXhDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLG81REFBcUM7YUFDdEM7Ozs7WUFaUSxXQUFXO1lBR1gsWUFBWTtZQURaLEtBQUs7NENBa0JULFFBQVEsWUFBSSxNQUFNLFNBQUMsaUJBQWlCOzs7O0lBTnZDLDhCQUFnQjs7Ozs7SUFHZCw0QkFBdUI7Ozs7O0lBQ3ZCLHNDQUFrQzs7Ozs7SUFDbEMsK0JBQW9COzs7OztJQUNwQixpQ0FBK0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdHZXRBcHBDb25maWd1cmF0aW9uLCBDb25maWdTdGF0ZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOYXZpZ2F0ZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICcuLi8uLi9tb2RlbHMvb3B0aW9ucyc7XG5cbmNvbnN0IHsgbWF4TGVuZ3RoLCBtaW5MZW5ndGgsIHJlcXVpcmVkIH0gPSBWYWxpZGF0b3JzO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtbG9naW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9naW4uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCB7XG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoJ0FDQ09VTlRfT1BUSU9OUycpIHByaXZhdGUgb3B0aW9uczogT3B0aW9ucyxcbiAgKSB7XG4gICAgdGhpcy5vYXV0aFNlcnZpY2UuY29uZmlndXJlKHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoQ29uZmlnU3RhdGUuZ2V0T25lKCdlbnZpcm9ubWVudCcpKS5vQXV0aENvbmZpZyk7XG4gICAgdGhpcy5vYXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50KCk7XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHVzZXJuYW1lOiBbJycsIFtyZXF1aXJlZCwgbWF4TGVuZ3RoKDI1NSldXSxcbiAgICAgIHBhc3N3b3JkOiBbJycsIFtyZXF1aXJlZCwgbWF4TGVuZ3RoKDMyKV1dLFxuICAgICAgcmVtZW1iZXI6IFtmYWxzZV0sXG4gICAgfSk7XG4gIH1cblxuICBvblN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcblxuICAgIHRoaXMub2F1dGhTZXJ2aWNlLnNldFN0b3JhZ2UodGhpcy5mb3JtLnZhbHVlLnJlbWVtYmVyID8gbG9jYWxTdG9yYWdlIDogc2Vzc2lvblN0b3JhZ2UpO1xuXG4gICAgZnJvbShcbiAgICAgIHRoaXMub2F1dGhTZXJ2aWNlLmZldGNoVG9rZW5Vc2luZ1Bhc3N3b3JkRmxvdyh0aGlzLmZvcm0uZ2V0KCd1c2VybmFtZScpLnZhbHVlLCB0aGlzLmZvcm0uZ2V0KCdwYXNzd29yZCcpLnZhbHVlKSxcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gd2luZG93Lmhpc3Rvcnkuc3RhdGUucmVkaXJlY3RVcmwgfHwgdGhpcy5vcHRpb25zLnJlZGlyZWN0VXJsO1xuXG4gICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAuZGlzcGF0Y2gobmV3IENvbmZpZ0dldEFwcENvbmZpZ3VyYXRpb24oKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IE5hdmlnYXRlKFtyZWRpcmVjdFVybCB8fCAnLyddKSkpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiBjb25zb2xlLmVycm9yKCdhbiBlcnJvciBvY2N1cmVkJyksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/lib/components/register/register.component.js b/npm/packs/ng/dist/account/esm2015/lib/components/register/register.component.js new file mode 100644 index 0000000000..6b43d2db2c --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/lib/components/register/register.component.js @@ -0,0 +1,69 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; +import { Router } from '@angular/router'; +import { validatePassword } from '@ngx-validate/core'; +import { OAuthService } from 'angular-oauth2-oidc'; +const { maxLength, minLength, required, email } = Validators; +export class RegisterComponent { + /** + * @param {?} fb + * @param {?} oauthService + * @param {?} router + */ + constructor(fb, oauthService, router) { + this.fb = fb; + this.oauthService = oauthService; + this.router = router; + this.form = this.fb.group({ + username: ['', [required, maxLength(255)]], + password: [ + '', + [required, maxLength(32), minLength(6), validatePassword(['small', 'capital', 'number', 'special'])], + ], + email: ['', [required, email]], + }); + } + /** + * @return {?} + */ + onSubmit() { + if (this.form.invalid) + return; + } +} +RegisterComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-register', + template: "
\n
\n \n\n \n
\n
\n" + }] } +]; +/** @nocollapse */ +RegisterComponent.ctorParameters = () => [ + { type: FormBuilder }, + { type: OAuthService }, + { type: Router } +]; +if (false) { + /** @type {?} */ + RegisterComponent.prototype.form; + /** + * @type {?} + * @private + */ + RegisterComponent.prototype.fb; + /** + * @type {?} + * @private + */ + RegisterComponent.prototype.oauthService; + /** + * @type {?} + * @private + */ + RegisterComponent.prototype.router; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztNQUU3QyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVU7QUFNNUQsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7O0lBRzVCLFlBQW9CLEVBQWUsRUFBVSxZQUEwQixFQUFVLE1BQWM7UUFBM0UsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUM3RixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxRQUFRLEVBQUU7Z0JBQ1IsRUFBRTtnQkFDRixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUNyRztZQUNELEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztJQUNoQyxDQUFDOzs7WUFwQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxjQUFjO2dCQUN4QiwybENBQXdDO2FBQ3pDOzs7O1lBVlEsV0FBVztZQUdYLFlBQVk7WUFGWixNQUFNOzs7O0lBV2IsaUNBQWdCOzs7OztJQUVKLCtCQUF1Qjs7Ozs7SUFBRSx5Q0FBa0M7Ozs7O0lBQUUsbUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHZhbGlkYXRlUGFzc3dvcmQgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5cbmNvbnN0IHsgbWF4TGVuZ3RoLCBtaW5MZW5ndGgsIHJlcXVpcmVkLCBlbWFpbCB9ID0gVmFsaWRhdG9ycztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXJlZ2lzdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZ2lzdGVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJDb21wb25lbnQge1xuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgb2F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHVzZXJuYW1lOiBbJycsIFtyZXF1aXJlZCwgbWF4TGVuZ3RoKDI1NSldXSxcbiAgICAgIHBhc3N3b3JkOiBbXG4gICAgICAgICcnLFxuICAgICAgICBbcmVxdWlyZWQsIG1heExlbmd0aCgzMiksIG1pbkxlbmd0aCg2KSwgdmFsaWRhdGVQYXNzd29yZChbJ3NtYWxsJywgJ2NhcGl0YWwnLCAnbnVtYmVyJywgJ3NwZWNpYWwnXSldLFxuICAgICAgXSxcbiAgICAgIGVtYWlsOiBbJycsIFtyZXF1aXJlZCwgZW1haWxdXSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uU3VibWl0KCkge1xuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/lib/components/tenant-box/tenant-box.component.js b/npm/packs/ng/dist/account/esm2015/lib/components/tenant-box/tenant-box.component.js new file mode 100644 index 0000000000..078e56c9cd --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/lib/components/tenant-box/tenant-box.component.js @@ -0,0 +1,79 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { FormBuilder } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +export class TenantBoxComponent { + /** + * @param {?} modalService + * @param {?} fb + */ + constructor(modalService, fb) { + this.modalService = modalService; + this.fb = fb; + } + /** + * @return {?} + */ + createForm() { + this.form = this.fb.group({ + name: [this.selected.name], + }); + } + /** + * @return {?} + */ + openModal() { + this.createForm(); + this.modalService.open(this.modalContent); + } + /** + * @return {?} + */ + onSwitch() { + this.selected = (/** @type {?} */ ({})); + this.openModal(); + } + /** + * @return {?} + */ + save() { + this.selected = this.form.value; + this.modalService.dismissAll(); + } +} +TenantBoxComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-tenant-box', + template: "\n {{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: \n \n {{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}\n \n ({{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }})\n\n\n\n
\n
\n SwitchTenant\n
\n \n
\n
\n
\n
\n
\n \n \n
\n

{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}

\n
\n
\n\n
\n \n \n
\n
\n
\n" + }] } +]; +/** @nocollapse */ +TenantBoxComponent.ctorParameters = () => [ + { type: NgbModal }, + { type: FormBuilder } +]; +TenantBoxComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; +if (false) { + /** @type {?} */ + TenantBoxComponent.prototype.form; + /** @type {?} */ + TenantBoxComponent.prototype.selected; + /** @type {?} */ + TenantBoxComponent.prototype.modalContent; + /** + * @type {?} + * @private + */ + TenantBoxComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + TenantBoxComponent.prototype.fb; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU90RCxNQUFNLE9BQU8sa0JBQWtCOzs7OztJQUM3QixZQUFvQixZQUFzQixFQUFVLEVBQWU7UUFBL0MsaUJBQVksR0FBWixZQUFZLENBQVU7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO0lBQUcsQ0FBQzs7OztJQVN2RSxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFBLEVBQUUsRUFBaUIsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7OztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7O1lBakNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQiwydkRBQTBDO2FBQzNDOzs7O1lBTlEsUUFBUTtZQURSLFdBQVc7OzsyQkFlakIsU0FBUyxTQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Ozs7SUFKNUMsa0NBQWdCOztJQUVoQixzQ0FBd0I7O0lBRXhCLDBDQUMrQjs7Ozs7SUFQbkIsMENBQThCOzs7OztJQUFFLGdDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXRlbmFudC1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50LWJveC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudEJveENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHt9XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIHNlbGVjdGVkOiBBQlAuQmFzaWNJdGVtO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFt0aGlzLnNlbGVjdGVkLm5hbWVdLFxuICAgIH0pO1xuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5tb2RhbENvbnRlbnQpO1xuICB9XG5cbiAgb25Td2l0Y2goKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9IGFzIEFCUC5CYXNpY0l0ZW07XG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/lib/constants/routes.js b/npm/packs/ng/dist/account/esm2015/lib/constants/routes.js new file mode 100644 index 0000000000..9a32a8a71c --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/lib/constants/routes.js @@ -0,0 +1,15 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +export const ACCOUNT_ROUTES = (/** @type {?} */ ([ + { + name: 'Account', + path: 'account', + invisible: true, + layout: "application" /* application */, + children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], + }, +])); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbnN0YW50cy9yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxNQUFNLE9BQU8sY0FBYyxHQUFHLG1CQUFBO0lBQzVCO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLFNBQVMsRUFBRSxJQUFJO1FBQ2YsTUFBTSxpQ0FBeUI7UUFDL0IsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztLQUN6RztDQUNGLEVBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBQ0NPVU5UX1JPVVRFUyA9IFtcbiAge1xuICAgIG5hbWU6ICdBY2NvdW50JyxcbiAgICBwYXRoOiAnYWNjb3VudCcsXG4gICAgaW52aXNpYmxlOiB0cnVlLFxuICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXG4gICAgY2hpbGRyZW46IFt7IHBhdGg6ICdsb2dpbicsIG5hbWU6ICdMb2dpbicsIG9yZGVyOiAxIH0sIHsgcGF0aDogJ3JlZ2lzdGVyJywgbmFtZTogJ1JlZ2lzdGVyJywgb3JkZXI6IDIgfV0sXG4gIH0sXG5dIGFzIEFCUC5GdWxsUm91dGVbXTtcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/lib/models/index.js b/npm/packs/ng/dist/account/esm2015/lib/models/index.js new file mode 100644 index 0000000000..2c32b7ae5c --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/lib/models/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './options'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxlQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucyc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/lib/models/options.js b/npm/packs/ng/dist/account/esm2015/lib/models/options.js new file mode 100644 index 0000000000..085067c71d --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/lib/models/options.js @@ -0,0 +1,13 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @record + */ +export function Options() { } +if (false) { + /** @type {?|undefined} */ + Options.prototype.redirectUrl; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsNkJBRUM7OztJQURDLDhCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gIHJlZGlyZWN0VXJsPzogc3RyaW5nO1xufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/lib/tokens/index.js b/npm/packs/ng/dist/account/esm2015/lib/tokens/index.js new file mode 100644 index 0000000000..7336809f0a --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/lib/tokens/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { optionsFactory, ACCOUNT_OPTIONS } from './options.token'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxnREFBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucy50b2tlbic7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/lib/tokens/options.token.js b/npm/packs/ng/dist/account/esm2015/lib/tokens/options.token.js new file mode 100644 index 0000000000..68576d9382 --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/lib/tokens/options.token.js @@ -0,0 +1,15 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { InjectionToken } from '@angular/core'; +/** + * @param {?} options + * @return {?} + */ +export function optionsFactory(options) { + return Object.assign({ redirectUrl: '/' }, options); +} +/** @type {?} */ +export const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi90b2tlbnMvb3B0aW9ucy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFHL0MsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFnQjtJQUM3Qyx1QkFDRSxXQUFXLEVBQUUsR0FBRyxJQUNiLE9BQU8sRUFDVjtBQUNKLENBQUM7O0FBRUQsTUFBTSxPQUFPLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29wdGlvbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gb3B0aW9uc0ZhY3Rvcnkob3B0aW9uczogT3B0aW9ucykge1xuICByZXR1cm4ge1xuICAgIHJlZGlyZWN0VXJsOiAnLycsXG4gICAgLi4ub3B0aW9ucyxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEFDQ09VTlRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignQUNDT1VOVF9PUFRJT05TJyk7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm2015/public-api.js b/npm/packs/ng/dist/account/esm2015/public-api.js new file mode 100644 index 0000000000..420e775c78 --- /dev/null +++ b/npm/packs/ng/dist/account/esm2015/public-api.js @@ -0,0 +1,13 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/* + * Public API Surface of auth + */ +export { AccountModule } from './lib/account.module'; +export { LoginComponent, RegisterComponent } from './lib/components'; +export { ACCOUNT_ROUTES } from './lib/constants/routes'; +export { optionsFactory, ACCOUNT_OPTIONS } from './lib/tokens'; +export {} from './lib/models'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLDhCQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGtEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLCtCQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGdEQUFjLGNBQWMsQ0FBQztBQUM3QixlQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYXV0aFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/abp-ng.account.js b/npm/packs/ng/dist/account/esm5/abp-ng.account.js new file mode 100644 index 0000000000..296db7f041 --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/abp-ng.account.js @@ -0,0 +1,14 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { AccountModule, LoginComponent, RegisterComponent, ACCOUNT_ROUTES, optionsFactory, ACCOUNT_OPTIONS } from './public-api'; +export { AccountRoutingModule as ɵe } from './lib/account-routing.module'; +export { LoginComponent as ɵa } from './lib/components/login/login.component'; +export { RegisterComponent as ɵc } from './lib/components/register/register.component'; +export { TenantBoxComponent as ɵd } from './lib/components/tenant-box/tenant-box.component'; +export { ACCOUNT_OPTIONS as ɵg, optionsFactory as ɵf } from './lib/tokens/options.token'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmFjY291bnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJhYnAtbmcuYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsa0hBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFFMUYsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0FjY291bnRSb3V0aW5nTW9kdWxlIGFzIMm1ZX0gZnJvbSAnLi9saWIvYWNjb3VudC1yb3V0aW5nLm1vZHVsZSc7XG5leHBvcnQge0xvZ2luQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xuZXhwb3J0IHtSZWdpc3RlckNvbXBvbmVudCBhcyDJtWN9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7VGVuYW50Qm94Q29tcG9uZW50IGFzIMm1ZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50JztcbmV4cG9ydCB7T3B0aW9ucyBhcyDJtWJ9IGZyb20gJy4vbGliL21vZGVscy9vcHRpb25zJztcbmV4cG9ydCB7QUNDT1VOVF9PUFRJT05TIGFzIMm1ZyxvcHRpb25zRmFjdG9yeSBhcyDJtWZ9IGZyb20gJy4vbGliL3Rva2Vucy9vcHRpb25zLnRva2VuJzsiXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/lib/account-routing.module.js b/npm/packs/ng/dist/account/esm5/lib/account-routing.module.js new file mode 100644 index 0000000000..2d6afc188a --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/lib/account-routing.module.js @@ -0,0 +1,31 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { LoginComponent } from './components/login/login.component'; +import { RegisterComponent } from './components/register/register.component'; +import { DynamicLayoutComponent } from '@abp/ng.core'; +/** @type {?} */ +var routes = [ + { path: '', pathMatch: 'full', redirectTo: 'login' }, + { + path: '', + component: DynamicLayoutComponent, + children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }], + }, +]; +var AccountRoutingModule = /** @class */ (function () { + function AccountRoutingModule() { + } + AccountRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + },] } + ]; + return AccountRoutingModule; +}()); +export { AccountRoutingModule }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi9hY2NvdW50LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDOztJQUVoRCxNQUFNLEdBQVc7SUFDckIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRTtJQUNwRDtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLHNCQUFzQjtRQUNqQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztLQUM3RztDQUNGO0FBRUQ7SUFBQTtJQUltQyxDQUFDOztnQkFKbkMsUUFBUSxTQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEI7O0lBQ2tDLDJCQUFDO0NBQUEsQUFKcEMsSUFJb0M7U0FBdkIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlcywgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExvZ2luQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWdpc3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0xheW91dENvbXBvbmVudCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7IHBhdGg6ICcnLCBwYXRoTWF0Y2g6ICdmdWxsJywgcmVkaXJlY3RUbzogJ2xvZ2luJyB9LFxuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxuICAgIGNoaWxkcmVuOiBbeyBwYXRoOiAnbG9naW4nLCBjb21wb25lbnQ6IExvZ2luQ29tcG9uZW50IH0sIHsgcGF0aDogJ3JlZ2lzdGVyJywgY29tcG9uZW50OiBSZWdpc3RlckNvbXBvbmVudCB9XSxcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50Um91dGluZ01vZHVsZSB7fVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/lib/account.module.js b/npm/packs/ng/dist/account/esm5/lib/account.module.js new file mode 100644 index 0000000000..29e32a120c --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/lib/account.module.js @@ -0,0 +1,51 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CoreModule } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { AccountRoutingModule } from './account-routing.module'; +import { LoginComponent } from './components/login/login.component'; +import { RegisterComponent } from './components/register/register.component'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { TenantBoxComponent } from './components/tenant-box/tenant-box.component'; +import { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token'; +import { TableModule } from 'primeng/table'; +import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; +var AccountModule = /** @class */ (function () { + function AccountModule() { + } + /** + * @param {?=} options + * @return {?} + */ + AccountModule.forRoot = /** + * @param {?=} options + * @return {?} + */ + function (options) { + if (options === void 0) { options = (/** @type {?} */ ({})); } + return { + ngModule: AccountModule, + providers: [ + { provide: ACCOUNT_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: optionsFactory, + deps: [ACCOUNT_OPTIONS], + }, + ], + }; + }; + AccountModule.decorators = [ + { type: NgModule, args: [{ + declarations: [LoginComponent, RegisterComponent, TenantBoxComponent], + imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule], + exports: [], + },] } + ]; + return AccountModule; +}()); +export { AccountModule }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvYWNjb3VudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRDtJQUFBO0lBbUJBLENBQUM7Ozs7O0lBYlEscUJBQU87Ozs7SUFBZCxVQUFlLE9BQXVCO1FBQXZCLHdCQUFBLEVBQUEsNkJBQVUsRUFBRSxFQUFXO1FBQ3BDLE9BQU87WUFDTCxRQUFRLEVBQUUsYUFBYTtZQUN2QixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQy9DO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFVBQVUsRUFBRSxjQUFjO29CQUMxQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQ3hCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7Z0JBbEJGLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3JFLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7b0JBQ3JILE9BQU8sRUFBRSxFQUFFO2lCQUNaOztJQWVELG9CQUFDO0NBQUEsQUFuQkQsSUFtQkM7U0FkWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjb3VudFJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2FjY291bnQtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgTG9naW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50JztcbmltcG9ydCB7IFJlZ2lzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IFRlbmFudEJveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICcuL21vZGVscy9vcHRpb25zJztcbmltcG9ydCB7IEFDQ09VTlRfT1BUSU9OUywgb3B0aW9uc0ZhY3RvcnkgfSBmcm9tICcuL3Rva2Vucy9vcHRpb25zLnRva2VuJztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0xvZ2luQ29tcG9uZW50LCBSZWdpc3RlckNvbXBvbmVudCwgVGVuYW50Qm94Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEFjY291bnRSb3V0aW5nTW9kdWxlLCBUaGVtZVNoYXJlZE1vZHVsZSwgVGFibGVNb2R1bGUsIE5nYkRyb3Bkb3duTW9kdWxlLCBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGVdLFxuICBleHBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KG9wdGlvbnMgPSB7fSBhcyBPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBY2NvdW50TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQUNDT1VOVF9PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9ucyB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogJ0FDQ09VTlRfT1BUSU9OUycsXG4gICAgICAgICAgdXNlRmFjdG9yeTogb3B0aW9uc0ZhY3RvcnksXG4gICAgICAgICAgZGVwczogW0FDQ09VTlRfT1BUSU9OU10sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/lib/components/index.js b/npm/packs/ng/dist/account/esm5/lib/components/index.js new file mode 100644 index 0000000000..13392b51fc --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/lib/components/index.js @@ -0,0 +1,7 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { LoginComponent } from './login/login.component'; +export { RegisterComponent } from './register/register.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsK0JBQWMseUJBQXlCLENBQUM7QUFDeEMsa0NBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/lib/components/login/login.component.js b/npm/packs/ng/dist/account/esm5/lib/components/login/login.component.js new file mode 100644 index 0000000000..22179cc721 --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/lib/components/login/login.component.js @@ -0,0 +1,98 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { ConfigGetAppConfiguration, ConfigState } from '@abp/ng.core'; +import { Component, Inject, Optional } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; +import { Navigate } from '@ngxs/router-plugin'; +import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { from } from 'rxjs'; +var maxLength = Validators.maxLength, minLength = Validators.minLength, required = Validators.required; +var LoginComponent = /** @class */ (function () { + function LoginComponent(fb, oauthService, store, options) { + this.fb = fb; + this.oauthService = oauthService; + this.store = store; + this.options = options; + this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig); + this.oauthService.loadDiscoveryDocument(); + this.form = this.fb.group({ + username: ['', [required, maxLength(255)]], + password: ['', [required, maxLength(32)]], + remember: [false], + }); + } + /** + * @return {?} + */ + LoginComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.form.invalid) + return; + this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage); + from(this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value)).subscribe({ + next: (/** + * @return {?} + */ + function () { + /** @type {?} */ + var redirectUrl = window.history.state.redirectUrl || _this.options.redirectUrl; + _this.store + .dispatch(new ConfigGetAppConfiguration()) + .subscribe((/** + * @return {?} + */ + function () { return _this.store.dispatch(new Navigate([redirectUrl || '/'])); })); + }), + error: (/** + * @return {?} + */ + function () { return console.error('an error occured'); }), + }); + }; + LoginComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-login', + template: "
\n" + }] } + ]; + /** @nocollapse */ + LoginComponent.ctorParameters = function () { return [ + { type: FormBuilder }, + { type: OAuthService }, + { type: Store }, + { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: ['ACCOUNT_OPTIONS',] }] } + ]; }; + return LoginComponent; +}()); +export { LoginComponent }; +if (false) { + /** @type {?} */ + LoginComponent.prototype.form; + /** + * @type {?} + * @private + */ + LoginComponent.prototype.fb; + /** + * @type {?} + * @private + */ + LoginComponent.prototype.oauthService; + /** + * @type {?} + * @private + */ + LoginComponent.prototype.store; + /** + * @type {?} + * @private + */ + LoginComponent.prototype.options; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BCLElBQUEsZ0NBQVMsRUFBRSxnQ0FBUyxFQUFFLDhCQUFRO0FBRXRDO0lBT0Usd0JBQ1UsRUFBZSxFQUNmLFlBQTBCLEVBQzFCLEtBQVksRUFDMkIsT0FBZ0I7UUFIdkQsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQU87UUFDMkIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUUvRCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6QyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELGlDQUFROzs7SUFBUjtRQUFBLGlCQWlCQztRQWhCQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZGLElBQUksQ0FDRixJQUFJLENBQUMsWUFBWSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDaEgsQ0FBQyxTQUFTLENBQUM7WUFDVixJQUFJOzs7WUFBRTs7b0JBQ0UsV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7Z0JBRWhGLEtBQUksQ0FBQyxLQUFLO3FCQUNQLFFBQVEsQ0FBQyxJQUFJLHlCQUF5QixFQUFFLENBQUM7cUJBQ3pDLFNBQVM7OztnQkFBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUF2RCxDQUF1RCxFQUFDLENBQUM7WUFDOUUsQ0FBQyxDQUFBO1lBQ0QsS0FBSzs7O1lBQUUsY0FBTSxPQUFBLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBakMsQ0FBaUMsQ0FBQTtTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDOztnQkF4Q0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixvNURBQXFDO2lCQUN0Qzs7OztnQkFaUSxXQUFXO2dCQUdYLFlBQVk7Z0JBRFosS0FBSztnREFrQlQsUUFBUSxZQUFJLE1BQU0sU0FBQyxpQkFBaUI7O0lBOEJ6QyxxQkFBQztDQUFBLEFBekNELElBeUNDO1NBckNZLGNBQWM7OztJQUN6Qiw4QkFBZ0I7Ozs7O0lBR2QsNEJBQXVCOzs7OztJQUN2QixzQ0FBa0M7Ozs7O0lBQ2xDLCtCQUFvQjs7Ozs7SUFDcEIsaUNBQStEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlnR2V0QXBwQ29uZmlndXJhdGlvbiwgQ29uZmlnU3RhdGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmF2aWdhdGUgfSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL29wdGlvbnMnO1xuXG5jb25zdCB7IG1heExlbmd0aCwgbWluTGVuZ3RoLCByZXF1aXJlZCB9ID0gVmFsaWRhdG9ycztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLWxvZ2luJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQge1xuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBvYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdBQ0NPVU5UX09QVElPTlMnKSBwcml2YXRlIG9wdGlvbnM6IE9wdGlvbnMsXG4gICkge1xuICAgIHRoaXMub2F1dGhTZXJ2aWNlLmNvbmZpZ3VyZSh0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KENvbmZpZ1N0YXRlLmdldE9uZSgnZW52aXJvbm1lbnQnKSkub0F1dGhDb25maWcpO1xuICAgIHRoaXMub2F1dGhTZXJ2aWNlLmxvYWREaXNjb3ZlcnlEb2N1bWVudCgpO1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB1c2VybmFtZTogWycnLCBbcmVxdWlyZWQsIG1heExlbmd0aCgyNTUpXV0sXG4gICAgICBwYXNzd29yZDogWycnLCBbcmVxdWlyZWQsIG1heExlbmd0aCgzMildXSxcbiAgICAgIHJlbWVtYmVyOiBbZmFsc2VdLFxuICAgIH0pO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG5cbiAgICB0aGlzLm9hdXRoU2VydmljZS5zZXRTdG9yYWdlKHRoaXMuZm9ybS52YWx1ZS5yZW1lbWJlciA/IGxvY2FsU3RvcmFnZSA6IHNlc3Npb25TdG9yYWdlKTtcblxuICAgIGZyb20oXG4gICAgICB0aGlzLm9hdXRoU2VydmljZS5mZXRjaFRva2VuVXNpbmdQYXNzd29yZEZsb3codGhpcy5mb3JtLmdldCgndXNlcm5hbWUnKS52YWx1ZSwgdGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKS52YWx1ZSksXG4gICAgKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICBjb25zdCByZWRpcmVjdFVybCA9IHdpbmRvdy5oaXN0b3J5LnN0YXRlLnJlZGlyZWN0VXJsIHx8IHRoaXMub3B0aW9ucy5yZWRpcmVjdFVybDtcblxuICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgLmRpc3BhdGNoKG5ldyBDb25maWdHZXRBcHBDb25maWd1cmF0aW9uKCkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZShbcmVkaXJlY3RVcmwgfHwgJy8nXSkpKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gY29uc29sZS5lcnJvcignYW4gZXJyb3Igb2NjdXJlZCcpLFxuICAgIH0pO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/lib/components/register/register.component.js b/npm/packs/ng/dist/account/esm5/lib/components/register/register.component.js new file mode 100644 index 0000000000..2034a3fa9e --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/lib/components/register/register.component.js @@ -0,0 +1,69 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; +import { Router } from '@angular/router'; +import { validatePassword } from '@ngx-validate/core'; +import { OAuthService } from 'angular-oauth2-oidc'; +var maxLength = Validators.maxLength, minLength = Validators.minLength, required = Validators.required, email = Validators.email; +var RegisterComponent = /** @class */ (function () { + function RegisterComponent(fb, oauthService, router) { + this.fb = fb; + this.oauthService = oauthService; + this.router = router; + this.form = this.fb.group({ + username: ['', [required, maxLength(255)]], + password: [ + '', + [required, maxLength(32), minLength(6), validatePassword(['small', 'capital', 'number', 'special'])], + ], + email: ['', [required, email]], + }); + } + /** + * @return {?} + */ + RegisterComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + if (this.form.invalid) + return; + }; + RegisterComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-register', + template: "
\n
\n \n\n \n
\n
\n" + }] } + ]; + /** @nocollapse */ + RegisterComponent.ctorParameters = function () { return [ + { type: FormBuilder }, + { type: OAuthService }, + { type: Router } + ]; }; + return RegisterComponent; +}()); +export { RegisterComponent }; +if (false) { + /** @type {?} */ + RegisterComponent.prototype.form; + /** + * @type {?} + * @private + */ + RegisterComponent.prototype.fb; + /** + * @type {?} + * @private + */ + RegisterComponent.prototype.oauthService; + /** + * @type {?} + * @private + */ + RegisterComponent.prototype.router; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQyxJQUFBLGdDQUFTLEVBQUUsZ0NBQVMsRUFBRSw4QkFBUSxFQUFFLHdCQUFLO0FBRTdDO0lBT0UsMkJBQW9CLEVBQWUsRUFBVSxZQUEwQixFQUFVLE1BQWM7UUFBM0UsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUM3RixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxRQUFRLEVBQUU7Z0JBQ1IsRUFBRTtnQkFDRixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUNyRztZQUNELEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsb0NBQVE7OztJQUFSO1FBQ0UsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO0lBQ2hDLENBQUM7O2dCQXBCRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLDJsQ0FBd0M7aUJBQ3pDOzs7O2dCQVZRLFdBQVc7Z0JBR1gsWUFBWTtnQkFGWixNQUFNOztJQTJCZix3QkFBQztDQUFBLEFBckJELElBcUJDO1NBakJZLGlCQUFpQjs7O0lBQzVCLGlDQUFnQjs7Ozs7SUFFSiwrQkFBdUI7Ozs7O0lBQUUseUNBQWtDOzs7OztJQUFFLG1DQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB2YWxpZGF0ZVBhc3N3b3JkIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuXG5jb25zdCB7IG1heExlbmd0aCwgbWluTGVuZ3RoLCByZXF1aXJlZCwgZW1haWwgfSA9IFZhbGlkYXRvcnM7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1yZWdpc3RlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWdpc3Rlci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyQ29tcG9uZW50IHtcbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB1c2VybmFtZTogWycnLCBbcmVxdWlyZWQsIG1heExlbmd0aCgyNTUpXV0sXG4gICAgICBwYXNzd29yZDogW1xuICAgICAgICAnJyxcbiAgICAgICAgW3JlcXVpcmVkLCBtYXhMZW5ndGgoMzIpLCBtaW5MZW5ndGgoNiksIHZhbGlkYXRlUGFzc3dvcmQoWydzbWFsbCcsICdjYXBpdGFsJywgJ251bWJlcicsICdzcGVjaWFsJ10pXSxcbiAgICAgIF0sXG4gICAgICBlbWFpbDogWycnLCBbcmVxdWlyZWQsIGVtYWlsXV0sXG4gICAgfSk7XG4gIH1cblxuICBvblN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/lib/components/tenant-box/tenant-box.component.js b/npm/packs/ng/dist/account/esm5/lib/components/tenant-box/tenant-box.component.js new file mode 100644 index 0000000000..5a20c66ee8 --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/lib/components/tenant-box/tenant-box.component.js @@ -0,0 +1,89 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { FormBuilder } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +var TenantBoxComponent = /** @class */ (function () { + function TenantBoxComponent(modalService, fb) { + this.modalService = modalService; + this.fb = fb; + } + /** + * @return {?} + */ + TenantBoxComponent.prototype.createForm = /** + * @return {?} + */ + function () { + this.form = this.fb.group({ + name: [this.selected.name], + }); + }; + /** + * @return {?} + */ + TenantBoxComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.createForm(); + this.modalService.open(this.modalContent); + }; + /** + * @return {?} + */ + TenantBoxComponent.prototype.onSwitch = /** + * @return {?} + */ + function () { + this.selected = (/** @type {?} */ ({})); + this.openModal(); + }; + /** + * @return {?} + */ + TenantBoxComponent.prototype.save = /** + * @return {?} + */ + function () { + this.selected = this.form.value; + this.modalService.dismissAll(); + }; + TenantBoxComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-tenant-box', + template: "\n {{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: \n \n {{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}\n \n ({{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }})\n\n\n\n
\n
\n SwitchTenant\n
\n \n
\n
\n
\n
\n
\n \n \n
\n

{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}

\n
\n
\n\n
\n \n \n
\n
\n
\n" + }] } + ]; + /** @nocollapse */ + TenantBoxComponent.ctorParameters = function () { return [ + { type: NgbModal }, + { type: FormBuilder } + ]; }; + TenantBoxComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + return TenantBoxComponent; +}()); +export { TenantBoxComponent }; +if (false) { + /** @type {?} */ + TenantBoxComponent.prototype.form; + /** @type {?} */ + TenantBoxComponent.prototype.selected; + /** @type {?} */ + TenantBoxComponent.prototype.modalContent; + /** + * @type {?} + * @private + */ + TenantBoxComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + TenantBoxComponent.prototype.fb; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUd0RDtJQUtFLDRCQUFvQixZQUFzQixFQUFVLEVBQWU7UUFBL0MsaUJBQVksR0FBWixZQUFZLENBQVU7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO0lBQUcsQ0FBQzs7OztJQVN2RSx1Q0FBVTs7O0lBQVY7UUFDRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxzQ0FBUzs7O0lBQVQ7UUFDRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVDLENBQUM7Ozs7SUFFRCxxQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFBLEVBQUUsRUFBaUIsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7OztJQUVELGlDQUFJOzs7SUFBSjtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQyxDQUFDOztnQkFqQ0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLDJ2REFBMEM7aUJBQzNDOzs7O2dCQU5RLFFBQVE7Z0JBRFIsV0FBVzs7OytCQWVqQixTQUFTLFNBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7SUF1QjlDLHlCQUFDO0NBQUEsQUFsQ0QsSUFrQ0M7U0E5Qlksa0JBQWtCOzs7SUFHN0Isa0NBQWdCOztJQUVoQixzQ0FBd0I7O0lBRXhCLDBDQUMrQjs7Ozs7SUFQbkIsMENBQThCOzs7OztJQUFFLGdDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXRlbmFudC1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50LWJveC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudEJveENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHt9XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIHNlbGVjdGVkOiBBQlAuQmFzaWNJdGVtO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFt0aGlzLnNlbGVjdGVkLm5hbWVdLFxuICAgIH0pO1xuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5tb2RhbENvbnRlbnQpO1xuICB9XG5cbiAgb25Td2l0Y2goKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9IGFzIEFCUC5CYXNpY0l0ZW07XG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/lib/constants/routes.js b/npm/packs/ng/dist/account/esm5/lib/constants/routes.js new file mode 100644 index 0000000000..28d2240800 --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/lib/constants/routes.js @@ -0,0 +1,15 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +export var ACCOUNT_ROUTES = (/** @type {?} */ ([ + { + name: 'Account', + path: 'account', + invisible: true, + layout: "application" /* application */, + children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], + }, +])); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbnN0YW50cy9yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxNQUFNLEtBQU8sY0FBYyxHQUFHLG1CQUFBO0lBQzVCO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLFNBQVMsRUFBRSxJQUFJO1FBQ2YsTUFBTSxpQ0FBeUI7UUFDL0IsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztLQUN6RztDQUNGLEVBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBQ0NPVU5UX1JPVVRFUyA9IFtcbiAge1xuICAgIG5hbWU6ICdBY2NvdW50JyxcbiAgICBwYXRoOiAnYWNjb3VudCcsXG4gICAgaW52aXNpYmxlOiB0cnVlLFxuICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXG4gICAgY2hpbGRyZW46IFt7IHBhdGg6ICdsb2dpbicsIG5hbWU6ICdMb2dpbicsIG9yZGVyOiAxIH0sIHsgcGF0aDogJ3JlZ2lzdGVyJywgbmFtZTogJ1JlZ2lzdGVyJywgb3JkZXI6IDIgfV0sXG4gIH0sXG5dIGFzIEFCUC5GdWxsUm91dGVbXTtcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/lib/models/index.js b/npm/packs/ng/dist/account/esm5/lib/models/index.js new file mode 100644 index 0000000000..2c32b7ae5c --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/lib/models/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './options'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxlQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucyc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/lib/models/options.js b/npm/packs/ng/dist/account/esm5/lib/models/options.js new file mode 100644 index 0000000000..085067c71d --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/lib/models/options.js @@ -0,0 +1,13 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @record + */ +export function Options() { } +if (false) { + /** @type {?|undefined} */ + Options.prototype.redirectUrl; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsNkJBRUM7OztJQURDLDhCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gIHJlZGlyZWN0VXJsPzogc3RyaW5nO1xufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/lib/tokens/index.js b/npm/packs/ng/dist/account/esm5/lib/tokens/index.js new file mode 100644 index 0000000000..7336809f0a --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/lib/tokens/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { optionsFactory, ACCOUNT_OPTIONS } from './options.token'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxnREFBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucy50b2tlbic7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/lib/tokens/options.token.js b/npm/packs/ng/dist/account/esm5/lib/tokens/options.token.js new file mode 100644 index 0000000000..f5241eb365 --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/lib/tokens/options.token.js @@ -0,0 +1,16 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { InjectionToken } from '@angular/core'; +/** + * @param {?} options + * @return {?} + */ +export function optionsFactory(options) { + return tslib_1.__assign({ redirectUrl: '/' }, options); +} +/** @type {?} */ +export var ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi90b2tlbnMvb3B0aW9ucy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBRy9DLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0I7SUFDN0MsMEJBQ0UsV0FBVyxFQUFFLEdBQUcsSUFDYixPQUFPLEVBQ1Y7QUFDSixDQUFDOztBQUVELE1BQU0sS0FBTyxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQUMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJy4uL21vZGVscy9vcHRpb25zJztcblxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbnNGYWN0b3J5KG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgcmV0dXJuIHtcbiAgICByZWRpcmVjdFVybDogJy8nLFxuICAgIC4uLm9wdGlvbnMsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBBQ0NPVU5UX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0FDQ09VTlRfT1BUSU9OUycpO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/account/esm5/public-api.js b/npm/packs/ng/dist/account/esm5/public-api.js new file mode 100644 index 0000000000..420e775c78 --- /dev/null +++ b/npm/packs/ng/dist/account/esm5/public-api.js @@ -0,0 +1,13 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/* + * Public API Surface of auth + */ +export { AccountModule } from './lib/account.module'; +export { LoginComponent, RegisterComponent } from './lib/components'; +export { ACCOUNT_ROUTES } from './lib/constants/routes'; +export { optionsFactory, ACCOUNT_OPTIONS } from './lib/tokens'; +export {} from './lib/models'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLDhCQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGtEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLCtCQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGdEQUFjLGNBQWMsQ0FBQztBQUM3QixlQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYXV0aFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/account/fesm2015/abp-ng.account.js b/npm/packs/ng/dist/account/fesm2015/abp-ng.account.js new file mode 100644 index 0000000000..bea4ef1ac4 --- /dev/null +++ b/npm/packs/ng/dist/account/fesm2015/abp-ng.account.js @@ -0,0 +1,267 @@ +import { ConfigState, ConfigGetAppConfiguration, DynamicLayoutComponent, CoreModule } from '@abp/ng.core'; +import { Component, Optional, Inject, NgModule, ViewChild, InjectionToken } from '@angular/core'; +import { Router, RouterModule } from '@angular/router'; +import { FormBuilder, Validators } from '@angular/forms'; +import { Navigate } from '@ngxs/router-plugin'; +import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { from } from 'rxjs'; +import { validatePassword, NgxValidateCoreModule } from '@ngx-validate/core'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { NgbModal, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { TableModule } from 'primeng/table'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +const { maxLength, minLength, required } = Validators; +class LoginComponent { + /** + * @param {?} fb + * @param {?} oauthService + * @param {?} store + * @param {?} options + */ + constructor(fb, oauthService, store, options) { + this.fb = fb; + this.oauthService = oauthService; + this.store = store; + this.options = options; + this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig); + this.oauthService.loadDiscoveryDocument(); + this.form = this.fb.group({ + username: ['', [required, maxLength(255)]], + password: ['', [required, maxLength(32)]], + remember: [false], + }); + } + /** + * @return {?} + */ + onSubmit() { + if (this.form.invalid) + return; + this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage); + from(this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value)).subscribe({ + next: (/** + * @return {?} + */ + () => { + /** @type {?} */ + const redirectUrl = window.history.state.redirectUrl || this.options.redirectUrl; + this.store + .dispatch(new ConfigGetAppConfiguration()) + .subscribe((/** + * @return {?} + */ + () => this.store.dispatch(new Navigate([redirectUrl || '/'])))); + }), + error: (/** + * @return {?} + */ + () => console.error('an error occured')), + }); + } +} +LoginComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-login', + template: "
\n" + }] } +]; +/** @nocollapse */ +LoginComponent.ctorParameters = () => [ + { type: FormBuilder }, + { type: OAuthService }, + { type: Store }, + { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: ['ACCOUNT_OPTIONS',] }] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +const { maxLength: maxLength$1, minLength: minLength$1, required: required$1, email } = Validators; +class RegisterComponent { + /** + * @param {?} fb + * @param {?} oauthService + * @param {?} router + */ + constructor(fb, oauthService, router) { + this.fb = fb; + this.oauthService = oauthService; + this.router = router; + this.form = this.fb.group({ + username: ['', [required$1, maxLength$1(255)]], + password: [ + '', + [required$1, maxLength$1(32), minLength$1(6), validatePassword(['small', 'capital', 'number', 'special'])], + ], + email: ['', [required$1, email]], + }); + } + /** + * @return {?} + */ + onSubmit() { + if (this.form.invalid) + return; + } +} +RegisterComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-register', + template: "
\n
\n \n\n \n
\n
\n" + }] } +]; +/** @nocollapse */ +RegisterComponent.ctorParameters = () => [ + { type: FormBuilder }, + { type: OAuthService }, + { type: Router } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +const routes = [ + { path: '', pathMatch: 'full', redirectTo: 'login' }, + { + path: '', + component: DynamicLayoutComponent, + children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }], + }, +]; +class AccountRoutingModule { +} +AccountRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + },] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class TenantBoxComponent { + /** + * @param {?} modalService + * @param {?} fb + */ + constructor(modalService, fb) { + this.modalService = modalService; + this.fb = fb; + } + /** + * @return {?} + */ + createForm() { + this.form = this.fb.group({ + name: [this.selected.name], + }); + } + /** + * @return {?} + */ + openModal() { + this.createForm(); + this.modalService.open(this.modalContent); + } + /** + * @return {?} + */ + onSwitch() { + this.selected = (/** @type {?} */ ({})); + this.openModal(); + } + /** + * @return {?} + */ + save() { + this.selected = this.form.value; + this.modalService.dismissAll(); + } +} +TenantBoxComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-tenant-box', + template: "\n {{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: \n \n {{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}\n \n ({{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }})\n\n\n\n
\n
\n SwitchTenant\n
\n \n
\n
\n
\n
\n
\n \n \n
\n

{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}

\n
\n
\n\n
\n \n \n
\n
\n
\n" + }] } +]; +/** @nocollapse */ +TenantBoxComponent.ctorParameters = () => [ + { type: NgbModal }, + { type: FormBuilder } +]; +TenantBoxComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} options + * @return {?} + */ +function optionsFactory(options) { + return Object.assign({ redirectUrl: '/' }, options); +} +/** @type {?} */ +const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class AccountModule { + /** + * @param {?=} options + * @return {?} + */ + static forRoot(options = (/** @type {?} */ ({}))) { + return { + ngModule: AccountModule, + providers: [ + { provide: ACCOUNT_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: optionsFactory, + deps: [ACCOUNT_OPTIONS], + }, + ], + }; + } +} +AccountModule.decorators = [ + { type: NgModule, args: [{ + declarations: [LoginComponent, RegisterComponent, TenantBoxComponent], + imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule], + exports: [], + },] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +const ACCOUNT_ROUTES = (/** @type {?} */ ([ + { + name: 'Account', + path: 'account', + invisible: true, + layout: "application" /* application */, + children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], + }, +])); + +export { ACCOUNT_OPTIONS, ACCOUNT_ROUTES, AccountModule, LoginComponent, RegisterComponent, optionsFactory, LoginComponent as ɵa, RegisterComponent as ɵc, TenantBoxComponent as ɵd, AccountRoutingModule as ɵe, optionsFactory as ɵf, ACCOUNT_OPTIONS as ɵg }; +//# sourceMappingURL=abp-ng.account.js.map diff --git a/npm/packs/ng/dist/account/fesm2015/abp-ng.account.js.map b/npm/packs/ng/dist/account/fesm2015/abp-ng.account.js.map new file mode 100644 index 0000000000..4c77d44603 --- /dev/null +++ b/npm/packs/ng/dist/account/fesm2015/abp-ng.account.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.account.js","sources":["ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts"],"sourcesContent":["import { ConfigGetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from } from 'rxjs';\nimport { Options } from '../../models/options';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n ).subscribe({\n next: () => {\n const redirectUrl = window.history.state.redirectUrl || this.options.redirectUrl;\n\n this.store\n .dispatch(new ConfigGetAppConfiguration())\n .subscribe(() => this.store.dispatch(new Navigate([redirectUrl || '/'])));\n },\n error: () => console.error('an error occured'),\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { validatePassword } from '@ngx-validate/core';\nimport { OAuthService } from 'angular-oauth2-oidc';\n\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n constructor(private fb: FormBuilder, private oauthService: OAuthService, private router: Router) {\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: [\n '',\n [required, maxLength(32), minLength(6), validatePassword(['small', 'capital', 'number', 'special'])],\n ],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent {\n constructor(private modalService: NgbModal, private fb: FormBuilder) {}\n\n form: FormGroup;\n\n selected: ABP.BasicItem;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n createForm() {\n this.form = this.fb.group({\n name: [this.selected.name],\n });\n }\n\n openModal() {\n this.createForm();\n this.modalService.open(this.modalContent);\n }\n\n onSwitch() {\n this.selected = {} as ABP.BasicItem;\n this.openModal();\n }\n\n save() {\n this.selected = this.form.value;\n this.modalService.dismissAll();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\nimport { TableModule } from 'primeng/table';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {\n static forRoot(options = {} as Options): ModuleWithProviders {\n return {\n ngModule: AccountModule,\n providers: [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ],\n };\n }\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n] as ABP.FullRoute[];\n"],"names":["maxLength","minLength","required"],"mappings":";;;;;;;;;;;;;;;;;AAAA,MASM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU;AAMrD,MAAa,cAAc;;;;;;;IAGzB,YACU,EAAe,EACf,YAA0B,EAC1B,KAAY,EAC2B,OAAgB;QAHvD,OAAE,GAAF,EAAE,CAAa;QACf,iBAAY,GAAZ,YAAY,CAAc;QAC1B,UAAK,GAAL,KAAK,CAAO;QAC2B,YAAO,GAAP,OAAO,CAAS;QAE/D,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;QAE1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB,CAAC,CAAC;KACJ;;;;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE9B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,GAAG,cAAc,CAAC,CAAC;QAEvF,IAAI,CACF,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAChH,CAAC,SAAS,CAAC;YACV,IAAI;;;YAAE;;sBACE,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW;gBAEhF,IAAI,CAAC,KAAK;qBACP,QAAQ,CAAC,IAAI,yBAAyB,EAAE,CAAC;qBACzC,SAAS;;;gBAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC;aAC7E,CAAA;YACD,KAAK;;;YAAE,MAAM,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;SAC/C,CAAC,CAAC;KACJ;;;YAxCF,SAAS,SAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,o5DAAqC;aACtC;;;;YAZQ,WAAW;YAGX,YAAY;YADZ,KAAK;4CAkBT,QAAQ,YAAI,MAAM,SAAC,iBAAiB;;;;;;;ACtBzC,MAMM,aAAEA,WAAS,aAAEC,WAAS,YAAEC,UAAQ,EAAE,KAAK,EAAE,GAAG,UAAU;AAM5D,MAAa,iBAAiB;;;;;;IAG5B,YAAoB,EAAe,EAAU,YAA0B,EAAU,MAAc;QAA3E,OAAE,GAAF,EAAE,CAAa;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAAU,WAAM,GAAN,MAAM,CAAQ;QAC7F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,CAACA,UAAQ,EAAEF,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,QAAQ,EAAE;gBACR,EAAE;gBACF,CAACE,UAAQ,EAAEF,WAAS,CAAC,EAAE,CAAC,EAAEC,WAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;aACrG;YACD,KAAK,EAAE,CAAC,EAAE,EAAE,CAACC,UAAQ,EAAE,KAAK,CAAC,CAAC;SAC/B,CAAC,CAAC;KACJ;;;;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;KAC/B;;;YApBF,SAAS,SAAC;gBACT,QAAQ,EAAE,cAAc;gBACxB,2lCAAwC;aACzC;;;;YAVQ,WAAW;YAGX,YAAY;YAFZ,MAAM;;;;;;;ACFf;MAMM,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE;IACpD;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,sBAAsB;QACjC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;KAC7G;CACF;AAMD,MAAa,oBAAoB;;;YAJhC,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;aACxB;;;;;;;AClBD,MASa,kBAAkB;;;;;IAC7B,YAAoB,YAAsB,EAAU,EAAe;QAA/C,iBAAY,GAAZ,YAAY,CAAU;QAAU,OAAE,GAAF,EAAE,CAAa;KAAI;;;;IASvE,UAAU;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;KACJ;;;;IAED,SAAS;QACP,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC3C;;;;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,sBAAG,EAAE,EAAiB,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;;;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;KAChC;;;YAjCF,SAAS,SAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,2vDAA0C;aAC3C;;;;YANQ,QAAQ;YADR,WAAW;;;2BAejB,SAAS,SAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;;;;;AChB9C;;;;AAGA,SAAgB,cAAc,CAAC,OAAgB;IAC7C,uBACE,WAAW,EAAE,GAAG,IACb,OAAO,EACV;CACH;;AAED,MAAa,eAAe,GAAG,IAAI,cAAc,CAAC,iBAAiB,CAAC;;;;;;ACVpE,MAkBa,aAAa;;;;;IACxB,OAAO,OAAO,CAAC,OAAO,sBAAG,EAAE,EAAW;QACpC,OAAO;YACL,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAC/C;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,UAAU,EAAE,cAAc;oBAC1B,IAAI,EAAE,CAAC,eAAe,CAAC;iBACxB;aACF;SACF,CAAC;KACH;;;YAlBF,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;gBACrE,OAAO,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;gBACrH,OAAO,EAAE,EAAE;aACZ;;;;;;;;ACfD,MAAa,cAAc,sBAAG;IAC5B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,IAAI;QACf,MAAM;QACN,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACzG;CACF,EAAmB;;;;"} \ No newline at end of file diff --git a/npm/packs/ng/dist/account/fesm5/abp-ng.account.js b/npm/packs/ng/dist/account/fesm5/abp-ng.account.js new file mode 100644 index 0000000000..0feeb3a164 --- /dev/null +++ b/npm/packs/ng/dist/account/fesm5/abp-ng.account.js @@ -0,0 +1,286 @@ +import { ConfigGetAppConfiguration, ConfigState, DynamicLayoutComponent, CoreModule } from '@abp/ng.core'; +import { Component, Optional, Inject, NgModule, ViewChild, InjectionToken } from '@angular/core'; +import { Router, RouterModule } from '@angular/router'; +import { Validators, FormBuilder } from '@angular/forms'; +import { Navigate } from '@ngxs/router-plugin'; +import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { from } from 'rxjs'; +import { validatePassword, NgxValidateCoreModule } from '@ngx-validate/core'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { NgbModal, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { __assign } from 'tslib'; +import { TableModule } from 'primeng/table'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var maxLength = Validators.maxLength, minLength = Validators.minLength, required = Validators.required; +var LoginComponent = /** @class */ (function () { + function LoginComponent(fb, oauthService, store, options) { + this.fb = fb; + this.oauthService = oauthService; + this.store = store; + this.options = options; + this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig); + this.oauthService.loadDiscoveryDocument(); + this.form = this.fb.group({ + username: ['', [required, maxLength(255)]], + password: ['', [required, maxLength(32)]], + remember: [false], + }); + } + /** + * @return {?} + */ + LoginComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.form.invalid) + return; + this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage); + from(this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value)).subscribe({ + next: (/** + * @return {?} + */ + function () { + /** @type {?} */ + var redirectUrl = window.history.state.redirectUrl || _this.options.redirectUrl; + _this.store + .dispatch(new ConfigGetAppConfiguration()) + .subscribe((/** + * @return {?} + */ + function () { return _this.store.dispatch(new Navigate([redirectUrl || '/'])); })); + }), + error: (/** + * @return {?} + */ + function () { return console.error('an error occured'); }), + }); + }; + LoginComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-login', + template: "
\n" + }] } + ]; + /** @nocollapse */ + LoginComponent.ctorParameters = function () { return [ + { type: FormBuilder }, + { type: OAuthService }, + { type: Store }, + { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: ['ACCOUNT_OPTIONS',] }] } + ]; }; + return LoginComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var maxLength$1 = Validators.maxLength, minLength$1 = Validators.minLength, required$1 = Validators.required, email = Validators.email; +var RegisterComponent = /** @class */ (function () { + function RegisterComponent(fb, oauthService, router) { + this.fb = fb; + this.oauthService = oauthService; + this.router = router; + this.form = this.fb.group({ + username: ['', [required$1, maxLength$1(255)]], + password: [ + '', + [required$1, maxLength$1(32), minLength$1(6), validatePassword(['small', 'capital', 'number', 'special'])], + ], + email: ['', [required$1, email]], + }); + } + /** + * @return {?} + */ + RegisterComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + if (this.form.invalid) + return; + }; + RegisterComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-register', + template: "
\n
\n \n\n \n
\n
\n" + }] } + ]; + /** @nocollapse */ + RegisterComponent.ctorParameters = function () { return [ + { type: FormBuilder }, + { type: OAuthService }, + { type: Router } + ]; }; + return RegisterComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +var routes = [ + { path: '', pathMatch: 'full', redirectTo: 'login' }, + { + path: '', + component: DynamicLayoutComponent, + children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }], + }, +]; +var AccountRoutingModule = /** @class */ (function () { + function AccountRoutingModule() { + } + AccountRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + },] } + ]; + return AccountRoutingModule; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var TenantBoxComponent = /** @class */ (function () { + function TenantBoxComponent(modalService, fb) { + this.modalService = modalService; + this.fb = fb; + } + /** + * @return {?} + */ + TenantBoxComponent.prototype.createForm = /** + * @return {?} + */ + function () { + this.form = this.fb.group({ + name: [this.selected.name], + }); + }; + /** + * @return {?} + */ + TenantBoxComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.createForm(); + this.modalService.open(this.modalContent); + }; + /** + * @return {?} + */ + TenantBoxComponent.prototype.onSwitch = /** + * @return {?} + */ + function () { + this.selected = (/** @type {?} */ ({})); + this.openModal(); + }; + /** + * @return {?} + */ + TenantBoxComponent.prototype.save = /** + * @return {?} + */ + function () { + this.selected = this.form.value; + this.modalService.dismissAll(); + }; + TenantBoxComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-tenant-box', + template: "\n {{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: \n \n {{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}\n \n ({{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }})\n\n\n\n
\n
\n SwitchTenant\n
\n \n
\n
\n
\n
\n
\n \n \n
\n

{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}

\n
\n
\n\n
\n \n \n
\n
\n
\n" + }] } + ]; + /** @nocollapse */ + TenantBoxComponent.ctorParameters = function () { return [ + { type: NgbModal }, + { type: FormBuilder } + ]; }; + TenantBoxComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + return TenantBoxComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} options + * @return {?} + */ +function optionsFactory(options) { + return __assign({ redirectUrl: '/' }, options); +} +/** @type {?} */ +var ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var AccountModule = /** @class */ (function () { + function AccountModule() { + } + /** + * @param {?=} options + * @return {?} + */ + AccountModule.forRoot = /** + * @param {?=} options + * @return {?} + */ + function (options) { + if (options === void 0) { options = (/** @type {?} */ ({})); } + return { + ngModule: AccountModule, + providers: [ + { provide: ACCOUNT_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: optionsFactory, + deps: [ACCOUNT_OPTIONS], + }, + ], + }; + }; + AccountModule.decorators = [ + { type: NgModule, args: [{ + declarations: [LoginComponent, RegisterComponent, TenantBoxComponent], + imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule], + exports: [], + },] } + ]; + return AccountModule; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +var ACCOUNT_ROUTES = (/** @type {?} */ ([ + { + name: 'Account', + path: 'account', + invisible: true, + layout: "application" /* application */, + children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], + }, +])); + +export { ACCOUNT_OPTIONS, ACCOUNT_ROUTES, AccountModule, LoginComponent, RegisterComponent, optionsFactory, LoginComponent as ɵa, RegisterComponent as ɵc, TenantBoxComponent as ɵd, AccountRoutingModule as ɵe, optionsFactory as ɵf, ACCOUNT_OPTIONS as ɵg }; +//# sourceMappingURL=abp-ng.account.js.map diff --git a/npm/packs/ng/dist/account/fesm5/abp-ng.account.js.map b/npm/packs/ng/dist/account/fesm5/abp-ng.account.js.map new file mode 100644 index 0000000000..930e041e42 --- /dev/null +++ b/npm/packs/ng/dist/account/fesm5/abp-ng.account.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.account.js","sources":["ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts"],"sourcesContent":["import { ConfigGetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from } from 'rxjs';\nimport { Options } from '../../models/options';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n ).subscribe({\n next: () => {\n const redirectUrl = window.history.state.redirectUrl || this.options.redirectUrl;\n\n this.store\n .dispatch(new ConfigGetAppConfiguration())\n .subscribe(() => this.store.dispatch(new Navigate([redirectUrl || '/'])));\n },\n error: () => console.error('an error occured'),\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { validatePassword } from '@ngx-validate/core';\nimport { OAuthService } from 'angular-oauth2-oidc';\n\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n constructor(private fb: FormBuilder, private oauthService: OAuthService, private router: Router) {\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: [\n '',\n [required, maxLength(32), minLength(6), validatePassword(['small', 'capital', 'number', 'special'])],\n ],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent {\n constructor(private modalService: NgbModal, private fb: FormBuilder) {}\n\n form: FormGroup;\n\n selected: ABP.BasicItem;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n createForm() {\n this.form = this.fb.group({\n name: [this.selected.name],\n });\n }\n\n openModal() {\n this.createForm();\n this.modalService.open(this.modalContent);\n }\n\n onSwitch() {\n this.selected = {} as ABP.BasicItem;\n this.openModal();\n }\n\n save() {\n this.selected = this.form.value;\n this.modalService.dismissAll();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\nimport { TableModule } from 'primeng/table';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {\n static forRoot(options = {} as Options): ModuleWithProviders {\n return {\n ngModule: AccountModule,\n providers: [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ],\n };\n }\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n] as ABP.FullRoute[];\n"],"names":["maxLength","minLength","required"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/account/lib/account-routing.module.d.ts b/npm/packs/ng/dist/account/lib/account-routing.module.d.ts new file mode 100644 index 0000000000..7909dc0d71 --- /dev/null +++ b/npm/packs/ng/dist/account/lib/account-routing.module.d.ts @@ -0,0 +1,2 @@ +export declare class AccountRoutingModule { +} diff --git a/npm/packs/ng/dist/account/lib/account.module.d.ts b/npm/packs/ng/dist/account/lib/account.module.d.ts new file mode 100644 index 0000000000..5d54404161 --- /dev/null +++ b/npm/packs/ng/dist/account/lib/account.module.d.ts @@ -0,0 +1,5 @@ +import { ModuleWithProviders } from '@angular/core'; +import { Options } from './models/options'; +export declare class AccountModule { + static forRoot(options?: Options): ModuleWithProviders; +} diff --git a/npm/packs/ng/dist/account/lib/components/index.d.ts b/npm/packs/ng/dist/account/lib/components/index.d.ts new file mode 100644 index 0000000000..8e943f0bad --- /dev/null +++ b/npm/packs/ng/dist/account/lib/components/index.d.ts @@ -0,0 +1,2 @@ +export * from './login/login.component'; +export * from './register/register.component'; diff --git a/npm/packs/ng/dist/account/lib/components/login/login.component.d.ts b/npm/packs/ng/dist/account/lib/components/login/login.component.d.ts new file mode 100644 index 0000000000..58f4e4905f --- /dev/null +++ b/npm/packs/ng/dist/account/lib/components/login/login.component.d.ts @@ -0,0 +1,13 @@ +import { FormBuilder, FormGroup } from '@angular/forms'; +import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Options } from '../../models/options'; +export declare class LoginComponent { + private fb; + private oauthService; + private store; + private options; + form: FormGroup; + constructor(fb: FormBuilder, oauthService: OAuthService, store: Store, options: Options); + onSubmit(): void; +} diff --git a/npm/packs/ng/dist/account/lib/components/register/register.component.d.ts b/npm/packs/ng/dist/account/lib/components/register/register.component.d.ts new file mode 100644 index 0000000000..bc5154f095 --- /dev/null +++ b/npm/packs/ng/dist/account/lib/components/register/register.component.d.ts @@ -0,0 +1,11 @@ +import { FormBuilder, FormGroup } from '@angular/forms'; +import { Router } from '@angular/router'; +import { OAuthService } from 'angular-oauth2-oidc'; +export declare class RegisterComponent { + private fb; + private oauthService; + private router; + form: FormGroup; + constructor(fb: FormBuilder, oauthService: OAuthService, router: Router); + onSubmit(): void; +} diff --git a/npm/packs/ng/dist/account/lib/components/tenant-box/tenant-box.component.d.ts b/npm/packs/ng/dist/account/lib/components/tenant-box/tenant-box.component.d.ts new file mode 100644 index 0000000000..779fd7f5b7 --- /dev/null +++ b/npm/packs/ng/dist/account/lib/components/tenant-box/tenant-box.component.d.ts @@ -0,0 +1,16 @@ +import { TemplateRef } from '@angular/core'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { ABP } from '@abp/ng.core'; +export declare class TenantBoxComponent { + private modalService; + private fb; + constructor(modalService: NgbModal, fb: FormBuilder); + form: FormGroup; + selected: ABP.BasicItem; + modalContent: TemplateRef; + createForm(): void; + openModal(): void; + onSwitch(): void; + save(): void; +} diff --git a/npm/packs/ng/dist/account/lib/constants/routes.d.ts b/npm/packs/ng/dist/account/lib/constants/routes.d.ts new file mode 100644 index 0000000000..8407711441 --- /dev/null +++ b/npm/packs/ng/dist/account/lib/constants/routes.d.ts @@ -0,0 +1,2 @@ +import { ABP } from '@abp/ng.core'; +export declare const ACCOUNT_ROUTES: ABP.FullRoute[]; diff --git a/npm/packs/ng/dist/account/lib/models/index.d.ts b/npm/packs/ng/dist/account/lib/models/index.d.ts new file mode 100644 index 0000000000..5f30ef383a --- /dev/null +++ b/npm/packs/ng/dist/account/lib/models/index.d.ts @@ -0,0 +1 @@ +export * from './options'; diff --git a/npm/packs/ng/dist/account/lib/models/options.d.ts b/npm/packs/ng/dist/account/lib/models/options.d.ts new file mode 100644 index 0000000000..3bcfa0bb68 --- /dev/null +++ b/npm/packs/ng/dist/account/lib/models/options.d.ts @@ -0,0 +1,3 @@ +export interface Options { + redirectUrl?: string; +} diff --git a/npm/packs/ng/dist/account/lib/tokens/index.d.ts b/npm/packs/ng/dist/account/lib/tokens/index.d.ts new file mode 100644 index 0000000000..683bc4b3db --- /dev/null +++ b/npm/packs/ng/dist/account/lib/tokens/index.d.ts @@ -0,0 +1 @@ +export * from './options.token'; diff --git a/npm/packs/ng/dist/account/lib/tokens/options.token.d.ts b/npm/packs/ng/dist/account/lib/tokens/options.token.d.ts new file mode 100644 index 0000000000..e1248cb387 --- /dev/null +++ b/npm/packs/ng/dist/account/lib/tokens/options.token.d.ts @@ -0,0 +1,6 @@ +import { InjectionToken } from '@angular/core'; +import { Options } from '../models/options'; +export declare function optionsFactory(options: Options): { + redirectUrl: string; +}; +export declare const ACCOUNT_OPTIONS: InjectionToken<{}>; diff --git a/npm/packs/ng/dist/account/package.json b/npm/packs/ng/dist/account/package.json new file mode 100644 index 0000000000..1fe5116417 --- /dev/null +++ b/npm/packs/ng/dist/account/package.json @@ -0,0 +1,18 @@ +{ + "name": "@abp/ng.account", + "version": "0.5.0", + "dependencies": { + "@abp/ng.theme.shared": "^0.5.0", + "tslib": "^1.9.0" + }, + "main": "bundles/abp-ng.account.umd.js", + "module": "fesm5/abp-ng.account.js", + "es2015": "fesm2015/abp-ng.account.js", + "esm5": "esm5/abp-ng.account.js", + "esm2015": "esm2015/abp-ng.account.js", + "fesm5": "fesm5/abp-ng.account.js", + "fesm2015": "fesm2015/abp-ng.account.js", + "typings": "abp-ng.account.d.ts", + "metadata": "abp-ng.account.metadata.json", + "sideEffects": false +} diff --git a/npm/packs/ng/dist/account/public-api.d.ts b/npm/packs/ng/dist/account/public-api.d.ts new file mode 100644 index 0000000000..0e845f0768 --- /dev/null +++ b/npm/packs/ng/dist/account/public-api.d.ts @@ -0,0 +1,5 @@ +export * from './lib/account.module'; +export * from './lib/components'; +export * from './lib/constants/routes'; +export * from './lib/tokens'; +export * from './lib/models'; diff --git a/npm/packs/ng/dist/core/README.md b/npm/packs/ng/dist/core/README.md new file mode 100644 index 0000000000..aeef2da412 --- /dev/null +++ b/npm/packs/ng/dist/core/README.md @@ -0,0 +1 @@ +

@abp/ng.core

diff --git a/npm/packs/ng/dist/core/abp-ng.core.d.ts b/npm/packs/ng/dist/core/abp-ng.core.d.ts new file mode 100644 index 0000000000..8b35b66a2e --- /dev/null +++ b/npm/packs/ng/dist/core/abp-ng.core.d.ts @@ -0,0 +1,23 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './public-api'; +export { ConfigGetAppConfiguration as ɵm, PatchRouteByName as ɵl } from './lib/actions/config.actions'; +export { ProfileChangePassword as ɵf, ProfileGet as ɵd, ProfileUpdate as ɵe } from './lib/actions/profile.actions'; +export { SessionSetLanguage as ɵi } from './lib/actions/session.actions'; +export { DynamicLayoutComponent as ɵo } from './lib/components/dynamic-layout.component'; +export { RouterOutletComponent as ɵn } from './lib/components/router-outlet.component'; +export { PermissionDirective as ɵq } from './lib/directives/permission.directive'; +export { VisibilityDirective as ɵr } from './lib/directives/visibility.directive'; +export { ApiInterceptor as ɵw } from './lib/interceptors/api.interceptor'; +export { ABP as ɵv, Profile as ɵg } from './lib/models'; +export { LocalizationPipe as ɵs } from './lib/pipes/localization.pipe'; +export { ConfigPlugin as ɵu, NGXS_CONFIG_PLUGIN_OPTIONS as ɵt } from './lib/plugins/config.plugin'; +export { ApplicationConfigurationService as ɵk } from './lib/services/application-configuration.service'; +export { ProfileService as ɵb } from './lib/services/profile.service'; +export { RestService as ɵc } from './lib/services/rest.service'; +export { ConfigState as ɵp } from './lib/states'; +export { ConfigState as ɵj } from './lib/states/config.state'; +export { ProfileState as ɵa } from './lib/states/profile.state'; +export { SessionState as ɵh } from './lib/states/session.state'; +export { getInitialData as ɵx } from './lib/utils/initial-utils'; diff --git a/npm/packs/ng/dist/core/abp-ng.core.metadata.json b/npm/packs/ng/dist/core/abp-ng.core.metadata.json new file mode 100644 index 0000000000..6fd5d40a32 --- /dev/null +++ b/npm/packs/ng/dist/core/abp-ng.core.metadata.json @@ -0,0 +1 @@ +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/generator-utils"},{"from":"./lib/initial-utils"},{"from":"./lib/route-utils"},{"from":"./lib/rxjs-utils"},{"from":"./lib/profile.service"},{"from":"./lib/rest.service"}],"metadata":{"CoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":21,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":23,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵj"}]]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/storage-plugin","name":"NgxsStoragePluginModule","line":24,"character":4},"member":"forRoot"},"arguments":[{"key":"SessionState"}]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/router-plugin","name":"NgxsRouterPluginModule","line":25,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":30,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"}],"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":40,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":41,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":42,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":43,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":44,"character":4},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"}],"providers":[{"__symbolic":"reference","name":"ɵs"}],"entryComponents":[{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵo"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"defaults":[{}],"value":{"ngModule":{"__symbolic":"reference","name":"CoreModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@ngxs/store","name":"NGXS_PLUGINS","line":60,"character":19},"useClass":{"__symbolic":"reference","name":"ɵu"},"multi":true},{"provide":{"__symbolic":"reference","name":"ɵt"},"useValue":{"__symbolic":"reference","name":"options"}},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":69,"character":19},"useClass":{"__symbolic":"reference","name":"ɵw"},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":74,"character":19},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":76,"character":17}],"useFactory":{"__symbolic":"reference","name":"ɵx"}}]}}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":6,"character":1},"arguments":[{"name":"ProfileState","defaults":{}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"profileGet":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":18,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}]}],"profileUpdate":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":29,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"changePassword":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":40,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵf"}]}]}]},"statics":{"getProfile":{"__symbolic":"function","parameters":["profile"],"value":{"__symbolic":"reference","name":"profile"}}}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"get":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"changePassword":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":13,"character":28},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":13,"character":55}]}],"handleError":[{"__symbolic":"method"}],"request":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","members":{},"statics":{"type":"[Profile] Get"}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵg"},"member":"Response"}]}]},"statics":{"type":"[Profile] Update"}},"ɵf":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵg"},"member":"ChangePasswordRequest"}]}]},"statics":{"type":"[Profile] Change Password"}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":4,"character":1},"arguments":[{"name":"SessionState","defaults":{}}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"sessionSetLanguage":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":16,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵi"}]}]}]},"statics":{"getLanguage":{"__symbolic":"function","parameters":["language"],"value":{"__symbolic":"reference","name":"language"}}}},"ɵi":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Session] Set Language"}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":11,"character":1},"arguments":[{"name":"ConfigState","defaults":{}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":151,"character":95}]}],"addData":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":153,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵm"}]}]}],"patchRoute":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":171,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵl"}]}]}]},"statics":{"getAll":{"__symbolic":"function","parameters":["state"],"value":{"__symbolic":"reference","name":"state"}}}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"getConfiguration":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵl":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Could not resolve type","line":4,"character":52,"context":{"typeName":"Partial"},"module":"./lib/actions/config.actions"}]}]},"statics":{"type":"[Config] Patch Route By Name"}},"ɵm":{"__symbolic":"class","members":{},"statics":{"type":"[Config] Get App Configuration"}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"abp-router-outlet","template":"\n \n "}]}],"members":{}},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"abp-dynamic-layout","template":"\n \n\n \n \n "}]}],"members":{"requirements$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":20,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵp"},"member":"getOne"},"arguments":["requirements"]}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":25,"character":30},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":25,"character":53}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵq":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[abpPermission]"}]}],"members":{"condition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3},"arguments":["abpPermission"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":11,"character":15}}],null,null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":11,"character":41},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":11,"character":71},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":11,"character":97}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[abpVisibility]"}]}],"members":{"focusedElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3},"arguments":["abpVisibility"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":13,"character":15}}],null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":13,"character":41},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":13,"character":71}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":6,"character":1},"arguments":[{"name":"abpLocalization","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":15,"character":29}]}],"transform":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵt":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":7,"character":46},"arguments":["NGXS_CONFIG_PLUGIN_OPTIONS"]},"ɵu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":13,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵt"}]}],null],"parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵv"},"member":"Root"},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":13,"character":93}]}],"handle":[{"__symbolic":"method"}]}},"ɵw":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":8,"character":36},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":8,"character":65}]}],"intercept":[{"__symbolic":"method"}]}},"ɵx":{"__symbolic":"function"}},"origins":{"CoreModule":"./lib/core.module","ɵa":"./lib/states/profile.state","ɵb":"./lib/services/profile.service","ɵc":"./lib/services/rest.service","ɵd":"./lib/actions/profile.actions","ɵe":"./lib/actions/profile.actions","ɵf":"./lib/actions/profile.actions","ɵg":"./lib/models","ɵh":"./lib/states/session.state","ɵi":"./lib/actions/session.actions","ɵj":"./lib/states/config.state","ɵk":"./lib/services/application-configuration.service","ɵl":"./lib/actions/config.actions","ɵm":"./lib/actions/config.actions","ɵn":"./lib/components/router-outlet.component","ɵo":"./lib/components/dynamic-layout.component","ɵp":"./lib/states","ɵq":"./lib/directives/permission.directive","ɵr":"./lib/directives/visibility.directive","ɵs":"./lib/pipes/localization.pipe","ɵt":"./lib/plugins/config.plugin","ɵu":"./lib/plugins/config.plugin","ɵv":"./lib/models","ɵw":"./lib/interceptors/api.interceptor","ɵx":"./lib/utils/initial-utils"},"importAs":"@abp/ng.core"} \ No newline at end of file diff --git a/npm/packs/ng/dist/core/bundles/abp-ng.core.umd.js b/npm/packs/ng/dist/core/bundles/abp-ng.core.umd.js new file mode 100644 index 0000000000..f1655df334 --- /dev/null +++ b/npm/packs/ng/dist/core/bundles/abp-ng.core.umd.js @@ -0,0 +1,1992 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/router'), require('@ngxs/store'), require('rxjs'), require('@angular/common/http'), require('rxjs/operators'), require('snq'), require('angular-oauth2-oidc'), require('@ngxs/router-plugin'), require('@angular/common'), require('@angular/forms'), require('@ngxs/storage-plugin')) : + typeof define === 'function' && define.amd ? define('@abp/ng.core', ['exports', '@angular/core', '@angular/router', '@ngxs/store', 'rxjs', '@angular/common/http', 'rxjs/operators', 'snq', 'angular-oauth2-oidc', '@ngxs/router-plugin', '@angular/common', '@angular/forms', '@ngxs/storage-plugin'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.core = {}), global.ng.core, global.ng.router, global.store, global.rxjs, global.ng.common.http, global.rxjs.operators, global.snq, global.angularOauth2Oidc, global.routerPlugin, global.ng.common, global.ng.forms, global.storagePlugin)); +}(this, function (exports, core, router, store, rxjs, http, operators, snq, angularOauth2Oidc, routerPlugin, common, forms, storagePlugin) { 'use strict'; + + snq = snq && snq.hasOwnProperty('default') ? snq['default'] : snq; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + } + + function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + 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; + return c > 3 && r && Object.defineProperty(target, key, r), r; + } + + function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); + } + + function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; + } + + function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PatchRouteByName = /** @class */ (function () { + function PatchRouteByName(name, newValue) { + this.name = name; + this.newValue = newValue; + } + PatchRouteByName.type = '[Config] Patch Route By Name'; + return PatchRouteByName; + }()); + var ConfigGetAppConfiguration = /** @class */ (function () { + function ConfigGetAppConfiguration() { + } + ConfigGetAppConfiguration.type = '[Config] Get App Configuration'; + return ConfigGetAppConfiguration; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ProfileGet = /** @class */ (function () { + function ProfileGet() { + } + ProfileGet.type = '[Profile] Get'; + return ProfileGet; + }()); + var ProfileUpdate = /** @class */ (function () { + function ProfileUpdate(payload) { + this.payload = payload; + } + ProfileUpdate.type = '[Profile] Update'; + return ProfileUpdate; + }()); + var ProfileChangePassword = /** @class */ (function () { + function ProfileChangePassword(payload) { + this.payload = payload; + } + ProfileChangePassword.type = '[Profile] Change Password'; + return ProfileChangePassword; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var RestOccurError = /** @class */ (function () { + function RestOccurError(payload) { + this.payload = payload; + } + RestOccurError.type = '[Rest] Error'; + return RestOccurError; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var SessionSetLanguage = /** @class */ (function () { + function SessionSetLanguage(payload) { + this.payload = payload; + } + SessionSetLanguage.type = '[Session] Set Language'; + return SessionSetLanguage; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var RestService = /** @class */ (function () { + function RestService(http, store) { + this.http = http; + this.store = store; + } + /** + * @param {?} err + * @return {?} + */ + RestService.prototype.handleError = /** + * @param {?} err + * @return {?} + */ + function (err) { + this.store.dispatch(new RestOccurError(err)); + console.error(err); + return rxjs.NEVER; + }; + /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + RestService.prototype.request = /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + function (request, config, api) { + var _this = this; + if (config === void 0) { config = {}; } + var _a = config.observe, observe = _a === void 0 ? "body" /* Body */ : _a, throwErr = config.throwErr; + /** @type {?} */ + var url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; + var method = request.method, options = __rest(request, ["method"]); + return this.http.request(method, url, (/** @type {?} */ (__assign({ observe: observe }, options)))).pipe(observe === "body" /* Body */ ? operators.take(1) : null, operators.catchError((/** + * @param {?} err + * @return {?} + */ + function (err) { + if (throwErr) { + return rxjs.throwError(err); + } + return _this.handleError(err); + }))); + }; + RestService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + RestService.ctorParameters = function () { return [ + { type: http.HttpClient }, + { type: store.Store } + ]; }; + /** @nocollapse */ RestService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function RestService_Factory() { return new RestService(core.ɵɵinject(http.HttpClient), core.ɵɵinject(store.Store)); }, token: RestService, providedIn: "root" }); + return RestService; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ProfileService = /** @class */ (function () { + function ProfileService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + ProfileService.prototype.get = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/identity/profile', + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + ProfileService.prototype.update = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'PUT', + url: '/api/identity/profile', + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + ProfileService.prototype.changePassword = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: '/api/identity/profile/changePassword', + body: body, + }; + return this.rest.request(request); + }; + ProfileService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + ProfileService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ ProfileService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ProfileService_Factory() { return new ProfileService(core.ɵɵinject(RestService)); }, token: ProfileService, providedIn: "root" }); + return ProfileService; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ProfileState = /** @class */ (function () { + function ProfileState(profileService) { + this.profileService = profileService; + } + /** + * @param {?} __0 + * @return {?} + */ + ProfileState.getProfile = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var profile = _a.profile; + return profile; + }; + /** + * @param {?} __0 + * @return {?} + */ + ProfileState.prototype.profileGet = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var patchState = _a.patchState; + return this.profileService.get().pipe(operators.tap((/** + * @param {?} profile + * @return {?} + */ + function (profile) { + return patchState({ + profile: profile, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + ProfileState.prototype.profileUpdate = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.profileService.update(payload).pipe(operators.tap((/** + * @param {?} profile + * @return {?} + */ + function (profile) { + return patchState({ + profile: profile, + }); + }))); + }; + /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + ProfileState.prototype.changePassword = /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + function (_, _a) { + var payload = _a.payload; + return this.profileService.changePassword(payload); + }; + __decorate([ + store.Action(ProfileGet), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], ProfileState.prototype, "profileGet", null); + __decorate([ + store.Action(ProfileUpdate), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, ProfileUpdate]), + __metadata("design:returntype", void 0) + ], ProfileState.prototype, "profileUpdate", null); + __decorate([ + store.Action(ProfileChangePassword), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, ProfileChangePassword]), + __metadata("design:returntype", void 0) + ], ProfileState.prototype, "changePassword", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Object) + ], ProfileState, "getProfile", null); + ProfileState = __decorate([ + store.State({ + name: 'ProfileState', + defaults: (/** @type {?} */ ({})), + }), + __metadata("design:paramtypes", [ProfileService]) + ], ProfileState); + return ProfileState; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ApplicationConfigurationService = /** @class */ (function () { + function ApplicationConfigurationService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + ApplicationConfigurationService.prototype.getConfiguration = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/abp/application-configuration', + }; + return this.rest.request(request); + }; + ApplicationConfigurationService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + ApplicationConfigurationService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ ApplicationConfigurationService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ApplicationConfigurationService_Factory() { return new ApplicationConfigurationService(core.ɵɵinject(RestService)); }, token: ApplicationConfigurationService, providedIn: "root" }); + return ApplicationConfigurationService; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var SessionState = /** @class */ (function () { + function SessionState() { + } + /** + * @param {?} __0 + * @return {?} + */ + SessionState.getLanguage = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var language = _a.language; + return language; + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + SessionState.prototype.sessionSetLanguage = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + patchState({ + language: payload, + }); + }; + __decorate([ + store.Action(SessionSetLanguage), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, SessionSetLanguage]), + __metadata("design:returntype", void 0) + ], SessionState.prototype, "sessionSetLanguage", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", String) + ], SessionState, "getLanguage", null); + SessionState = __decorate([ + store.State({ + name: 'SessionState', + defaults: (/** @type {?} */ ({})), + }), + __metadata("design:paramtypes", []) + ], SessionState); + return SessionState; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @param {?} routes + * @param {?=} wrappers + * @param {?=} parentNameArr + * @param {?=} parentName + * @return {?} + */ + function organizeRoutes(routes, wrappers, parentNameArr, parentName) { + if (wrappers === void 0) { wrappers = []; } + if (parentNameArr === void 0) { parentNameArr = (/** @type {?} */ ([])); } + if (parentName === void 0) { parentName = null; } + /** @type {?} */ + var filter = (/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.children) { + route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name); + } + if (route.parentName && route.parentName !== parentName) { + parentNameArr.push(route); + return false; + } + return true; + }); + if (parentName) { + // recursive block + return routes.filter(filter); + } + /** @type {?} */ + var filteredRoutes = routes.filter(filter); + if (parentNameArr.length) { + return sortRoutes(setChildRoute(__spread(filteredRoutes, wrappers), parentNameArr)); + } + return filteredRoutes; + } + /** + * @param {?} routes + * @param {?} parentNameArr + * @return {?} + */ + function setChildRoute(routes, parentNameArr) { + return routes + .map((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.children && route.children.length) { + route.children = setChildRoute(route.children, parentNameArr); + } + /** @type {?} */ + var foundedChildren = parentNameArr.filter((/** + * @param {?} parent + * @return {?} + */ + function (parent) { return parent.parentName === route.name; })); + if (foundedChildren && foundedChildren.length) { + route.children = __spread((route.children || []), foundedChildren); + } + return route; + })) + .filter((/** + * @param {?} route + * @return {?} + */ + function (route) { return route.path || (route.children && route.children.length); })); + } + /** + * @param {?=} routes + * @return {?} + */ + function sortRoutes(routes) { + if (routes === void 0) { routes = []; } + if (!routes.length) + return []; + return routes + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + function (a, b) { return a.order - b.order; })) + .map((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.children && route.children.length) { + route.children = sortRoutes(route.children); + } + return route; + })); + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ConfigState = /** @class */ (function () { + function ConfigState(appConfigurationService, store) { + this.appConfigurationService = appConfigurationService; + this.store = store; + } + ConfigState_1 = ConfigState; + /** + * @param {?} state + * @return {?} + */ + ConfigState.getAll = /** + * @param {?} state + * @return {?} + */ + function (state) { + return state; + }; + /** + * @param {?} key + * @return {?} + */ + ConfigState.getOne = /** + * @param {?} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var selector = store.createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return state[key]; + })); + return selector; + }; + /** + * @param {?} keys + * @return {?} + */ + ConfigState.getDeep = /** + * @param {?} keys + * @return {?} + */ + function (keys) { + if (typeof keys === 'string') { + keys = keys.split('.'); + } + if (!Array.isArray(keys)) { + throw new Error('The argument must be a dot string or an string array.'); + } + /** @type {?} */ + var selector = store.createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return ((/** @type {?} */ (keys))).reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + if (acc) { + return acc[val]; + } + return undefined; + }), state); + })); + return selector; + }; + /** + * @param {?=} key + * @return {?} + */ + ConfigState.getApiUrl = /** + * @param {?=} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var selector = store.createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return state.environment.apis[key || 'default'].url; + })); + return selector; + }; + /** + * @param {?} key + * @return {?} + */ + ConfigState.getSetting = /** + * @param {?} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var selector = store.createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return snq((/** + * @return {?} + */ + function () { return state.setting.values[key]; })); + })); + return selector; + }; + /** + * @param {?=} condition + * @return {?} + */ + ConfigState.getGrantedPolicy = /** + * @param {?=} condition + * @return {?} + */ + function (condition) { + if (condition === void 0) { condition = ''; } + /** @type {?} */ + var keys = condition + .replace(/\(|\)|\!|\s/g, '') + .split(/\|\||&&/) + .filter((/** + * @param {?} key + * @return {?} + */ + function (key) { return key; })); + /** @type {?} */ + var selector = store.createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + if (!keys.length) + return true; + /** @type {?} */ + var getPolicy = (/** + * @param {?} key + * @return {?} + */ + function (key) { return snq((/** + * @return {?} + */ + function () { return state.auth.grantedPolicies[key]; }), false); }); + if (keys.length > 1) { + keys.forEach((/** + * @param {?} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var value = getPolicy(key); + condition = condition.replace(key, value); + })); + // tslint:disable-next-line: no-eval + return eval("!!" + condition); + } + return getPolicy(condition); + })); + return selector; + }; + /** + * @param {?} key + * @param {...?} interpolateParams + * @return {?} + */ + ConfigState.getCopy = /** + * @param {?} key + * @param {...?} interpolateParams + * @return {?} + */ + function (key) { + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + /** @type {?} */ + var keys = (/** @type {?} */ (key.split('::'))); + /** @type {?} */ + var selector = store.createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + var defaultResourceName = state.environment.localization.defaultResourceName; + if (keys[0] === '') { + if (!defaultResourceName) { + throw new Error("Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }"); + } + keys[0] = snq((/** + * @return {?} + */ + function () { return defaultResourceName; })); + } + /** @type {?} */ + var copy = keys.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + if (acc) { + return acc[val]; + } + return undefined; + }), state.localization.values); + if (copy && interpolateParams && interpolateParams.length) { + interpolateParams.forEach((/** + * @param {?} param + * @param {?} index + * @return {?} + */ + function (param, index) { + copy = copy.replace("'{" + index + "}'", param); + })); + } + return copy || key; + })); + return selector; + }; + /** + * @param {?} __0 + * @return {?} + */ + ConfigState.prototype.addData = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _this = this; + var patchState = _a.patchState, dispatch = _a.dispatch; + return this.appConfigurationService.getConfiguration().pipe(operators.tap((/** + * @param {?} configuration + * @return {?} + */ + function (configuration) { + return patchState(__assign({}, configuration)); + })), operators.switchMap((/** + * @param {?} configuration + * @return {?} + */ + function (configuration) { + return _this.store.selectSnapshot(SessionState.getLanguage) + ? rxjs.of(null) + : dispatch(new SessionSetLanguage(snq((/** + * @return {?} + */ + function () { return configuration.setting.values['Abp.Localization.DefaultLanguage']; })))); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + ConfigState.prototype.patchRoute = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState, getState = _a.getState; + var name = _b.name, newValue = _b.newValue; + /** @type {?} */ + var routes = getState().routes; + /** @type {?} */ + var index = routes.findIndex((/** + * @param {?} route + * @return {?} + */ + function (route) { return route.name === name; })); + routes = patchRouteDeep(routes, name, newValue); + return patchState({ + routes: routes, + }); + }; + var ConfigState_1; + __decorate([ + store.Action(ConfigGetAppConfiguration), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], ConfigState.prototype, "addData", null); + __decorate([ + store.Action(PatchRouteByName), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, PatchRouteByName]), + __metadata("design:returntype", void 0) + ], ConfigState.prototype, "patchRoute", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], ConfigState, "getAll", null); + ConfigState = ConfigState_1 = __decorate([ + store.State({ + name: 'ConfigState', + defaults: (/** @type {?} */ ({})), + }), + __metadata("design:paramtypes", [ApplicationConfigurationService, store.Store]) + ], ConfigState); + return ConfigState; + }()); + /** + * @param {?} routes + * @param {?} name + * @param {?} newValue + * @param {?=} parentUrl + * @return {?} + */ + function patchRouteDeep(routes, name, newValue, parentUrl) { + if (parentUrl === void 0) { parentUrl = null; } + routes = routes.map((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.name === name) { + if (newValue.path) { + newValue.url = parentUrl + "/" + newValue.path; + } + if (newValue.children && newValue.children.length) { + newValue.children = newValue.children.map((/** + * @param {?} child + * @return {?} + */ + function (child) { return (__assign({}, child, { url: parentUrl + "/" + route.path + "/" + child.path })); })); + } + return __assign({}, route, newValue); + } + else if (route.children && route.children.length) { + route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path); + } + return route; + })); + if (parentUrl) { + // recursive block + return routes; + } + return organizeRoutes(routes); + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @param {?=} a + * @return {?} + */ + function uuid(a) { + return a + ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) + : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @param {?} injector + * @return {?} + */ + function getInitialData(injector) { + /** @type {?} */ + var fn = (/** + * @return {?} + */ + function () { + /** @type {?} */ + var store$1 = injector.get(store.Store); + return store$1.dispatch(new ConfigGetAppConfiguration()).toPromise(); + }); + return fn; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @param {?} value + * @return {?} + */ + function isFunction(value) { + return typeof value === 'function'; + } + /** @type {?} */ + var takeUntilDestroy = (/** + * @param {?} componentInstance + * @param {?=} destroyMethodName + * @return {?} + */ + function (componentInstance, destroyMethodName) { + if (destroyMethodName === void 0) { destroyMethodName = 'ngOnDestroy'; } + return (/** + * @template T + * @param {?} source + * @return {?} + */ + function (source) { + /** @type {?} */ + var originalDestroy = componentInstance[destroyMethodName]; + if (isFunction(originalDestroy) === false) { + throw new Error(componentInstance.constructor.name + " is using untilDestroyed but doesn't implement " + destroyMethodName); + } + if (!componentInstance['__takeUntilDestroy']) { + componentInstance['__takeUntilDestroy'] = new rxjs.Subject(); + componentInstance[destroyMethodName] = (/** + * @return {?} + */ + function () { + isFunction(originalDestroy) && originalDestroy.apply(this, arguments); + componentInstance['__takeUntilDestroy'].next(true); + componentInstance['__takeUntilDestroy'].complete(); + }); + } + return source.pipe(operators.takeUntil(componentInstance['__takeUntilDestroy'])); + }); + }); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var DynamicLayoutComponent = /** @class */ (function () { + function DynamicLayoutComponent(router$1, store) { + var _this = this; + this.router = router$1; + this.store = store; + this.router.events.pipe(takeUntilDestroy(this)).subscribe((/** + * @param {?} event + * @return {?} + */ + function (event) { + if (event instanceof router.NavigationEnd) { + var segments = _this.router.parseUrl(event.url).root.children.primary.segments; + var _a = _this.store.selectSnapshot(ConfigState.getAll), layouts = _a.requirements.layouts, routes = _a.routes; + /** @type {?} */ + var layout_1 = findLayout(segments, routes); + _this.layout = layouts.filter((/** + * @param {?} l + * @return {?} + */ + function (l) { return !!l; })).find((/** + * @param {?} l + * @return {?} + */ + function (l) { return snq((/** + * @return {?} + */ + function () { return l.type.toLowerCase().indexOf(layout_1); }), -1) > -1; })); + } + })); + } + /** + * @return {?} + */ + DynamicLayoutComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + DynamicLayoutComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-dynamic-layout', + template: "\n \n\n \n \n " + }] } + ]; + /** @nocollapse */ + DynamicLayoutComponent.ctorParameters = function () { return [ + { type: router.Router }, + { type: store.Store } + ]; }; + __decorate([ + store.Select(ConfigState.getOne('requirements')), + __metadata("design:type", rxjs.Observable) + ], DynamicLayoutComponent.prototype, "requirements$", void 0); + return DynamicLayoutComponent; + }()); + /** + * @param {?} segments + * @param {?} routes + * @return {?} + */ + function findLayout(segments, routes) { + /** @type {?} */ + var layout = "empty" /* empty */; + /** @type {?} */ + var route = routes + .reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return (val.wrapper ? __spread(acc, val.children) : __spread(acc, [val])); }), []) + .find((/** + * @param {?} r + * @return {?} + */ + function (r) { return r.path === segments[0].path; })); + if (route) { + if (route.layout) { + layout = route.layout; + } + if (route.children && route.children.length) { + /** @type {?} */ + var child = route.children.find((/** + * @param {?} c + * @return {?} + */ + function (c) { return c.path === segments[1].path; })); + if (child.layout) { + layout = child.layout; + } + } + } + return layout; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var RouterOutletComponent = /** @class */ (function () { + function RouterOutletComponent() { + } + RouterOutletComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-router-outlet', + template: "\n \n " + }] } + ]; + return RouterOutletComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PermissionDirective = /** @class */ (function () { + function PermissionDirective(elRef, renderer, store) { + this.elRef = elRef; + this.renderer = renderer; + this.store = store; + } + /** + * @return {?} + */ + PermissionDirective.prototype.ngOnInit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.condition) { + this.store + .select(ConfigState.getGrantedPolicy(this.condition)) + .pipe(takeUntilDestroy(this)) + .subscribe((/** + * @param {?} isGranted + * @return {?} + */ + function (isGranted) { + if (!isGranted) { + _this.renderer.removeChild(((/** @type {?} */ (_this.elRef.nativeElement))).parentElement, _this.elRef.nativeElement); + } + })); + } + }; + /** + * @return {?} + */ + PermissionDirective.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + PermissionDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[abpPermission]', + },] } + ]; + /** @nocollapse */ + PermissionDirective.ctorParameters = function () { return [ + { type: core.ElementRef, decorators: [{ type: core.Optional }] }, + { type: core.Renderer2 }, + { type: store.Store } + ]; }; + PermissionDirective.propDecorators = { + condition: [{ type: core.Input, args: ['abpPermission',] }] + }; + return PermissionDirective; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var VisibilityDirective = /** @class */ (function () { + function VisibilityDirective(elRef, renderer) { + this.elRef = elRef; + this.renderer = renderer; + this.completed$ = new rxjs.Subject(); + } + /** + * @return {?} + */ + VisibilityDirective.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var observer = new MutationObserver((/** + * @param {?} mutations + * @return {?} + */ + function (mutations) { + mutations.forEach((/** + * @param {?} mutation + * @return {?} + */ + function (mutation) { + if (!mutation.target) + return; + /** @type {?} */ + var htmlNodes = snq((/** + * @return {?} + */ + function () { return Array.from(mutation.target.childNodes).filter((/** + * @param {?} node + * @return {?} + */ + function (node) { return node instanceof HTMLElement; })); }), []); + if (!htmlNodes.length) { + _this.renderer.removeChild(_this.elRef.nativeElement.parentElement, _this.elRef.nativeElement); + _this.disconnect(); + } + else { + setTimeout((/** + * @return {?} + */ + function () { + _this.disconnect(); + }), 0); + } + })); + })); + observer.observe(this.focusedElement, { + childList: true, + }); + this.completed$.subscribe((/** + * @return {?} + */ + function () { return observer.disconnect(); })); + }; + /** + * @return {?} + */ + VisibilityDirective.prototype.disconnect = /** + * @return {?} + */ + function () { + this.completed$.next(); + this.completed$.complete(); + }; + VisibilityDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[abpVisibility]', + },] } + ]; + /** @nocollapse */ + VisibilityDirective.ctorParameters = function () { return [ + { type: core.ElementRef, decorators: [{ type: core.Optional }] }, + { type: core.Renderer2 } + ]; }; + VisibilityDirective.propDecorators = { + focusedElement: [{ type: core.Input, args: ['abpVisibility',] }] + }; + return VisibilityDirective; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var AuthGuard = /** @class */ (function () { + function AuthGuard(oauthService, store) { + this.oauthService = oauthService; + this.store = store; + } + /** + * @param {?} _ + * @param {?} state + * @return {?} + */ + AuthGuard.prototype.canActivate = /** + * @param {?} _ + * @param {?} state + * @return {?} + */ + function (_, state) { + /** @type {?} */ + var hasValidAccessToken = this.oauthService.hasValidAccessToken(); + if (hasValidAccessToken) { + return hasValidAccessToken; + } + this.store.dispatch(new routerPlugin.Navigate(['/account/login'], null, { state: { redirectUrl: state.url } })); + return false; + }; + AuthGuard.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + AuthGuard.ctorParameters = function () { return [ + { type: angularOauth2Oidc.OAuthService }, + { type: store.Store } + ]; }; + /** @nocollapse */ AuthGuard.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(core.ɵɵinject(angularOauth2Oidc.OAuthService), core.ɵɵinject(store.Store)); }, token: AuthGuard, providedIn: "root" }); + return AuthGuard; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PermissionGuard = /** @class */ (function () { + function PermissionGuard(store) { + this.store = store; + } + /** + * @param {?} __0 + * @return {?} + */ + PermissionGuard.prototype.canActivate = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var data = _a.data; + /** @type {?} */ + var resource = (/** @type {?} */ (data.requiredPolicy)); + return this.store.select(ConfigState.getGrantedPolicy(resource)); + }; + PermissionGuard.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + PermissionGuard.ctorParameters = function () { return [ + { type: store.Store } + ]; }; + /** @nocollapse */ PermissionGuard.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function PermissionGuard_Factory() { return new PermissionGuard(core.ɵɵinject(store.Store)); }, token: PermissionGuard, providedIn: "root" }); + return PermissionGuard; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ApiInterceptor = /** @class */ (function () { + function ApiInterceptor(oAuthService, store) { + this.oAuthService = oAuthService; + this.store = store; + } + /** + * @param {?} request + * @param {?} next + * @return {?} + */ + ApiInterceptor.prototype.intercept = /** + * @param {?} request + * @param {?} next + * @return {?} + */ + function (request, next) { + /** @type {?} */ + var headers = (/** @type {?} */ ({})); + /** @type {?} */ + var token = this.oAuthService.getAccessToken(); + if (!request.headers.has('Authorization') && token) { + headers['Authorization'] = "Bearer " + token; + } + /** @type {?} */ + var lang = this.store.selectSnapshot(SessionState.getLanguage); + if (!request.headers.has('Accept-Language') && lang) { + headers['Accept-Language'] = lang; + } + return next.handle(request.clone({ + setHeaders: headers, + })); + }; + ApiInterceptor.decorators = [ + { type: core.Injectable } + ]; + /** @nocollapse */ + ApiInterceptor.ctorParameters = function () { return [ + { type: angularOauth2Oidc.OAuthService }, + { type: store.Store } + ]; }; + return ApiInterceptor; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + + (function (Rest) { + /** + * @record + */ + function Config() { } + Rest.Config = Config; + /** + * @record + * @template T + */ + function Request() { } + Rest.Request = Request; + })(exports.Rest || (exports.Rest = {})); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var NGXS_CONFIG_PLUGIN_OPTIONS = new core.InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS'); + var ConfigPlugin = /** @class */ (function () { + function ConfigPlugin(options, router) { + this.options = options; + this.router = router; + this.initialized = false; + } + /** + * @param {?} state + * @param {?} event + * @param {?} next + * @return {?} + */ + ConfigPlugin.prototype.handle = /** + * @param {?} state + * @param {?} event + * @param {?} next + * @return {?} + */ + function (state, event, next) { + /** @type {?} */ + var matches = store.actionMatcher(event); + /** @type {?} */ + var isInitAction = matches(store.InitState) || matches(store.UpdateState); + // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []); + if (isInitAction && !this.initialized) { + var _a = transformRoutes(this.router.config), routes = _a.routes, wrappers = _a.wrappers; + routes = organizeRoutes(routes, wrappers); + state = store.setValue(state, 'ConfigState', __assign({}, (state.ConfigState && __assign({}, state.ConfigState)), this.options, { routes: routes })); + this.initialized = true; + } + return next(state, event); + }; + ConfigPlugin.decorators = [ + { type: core.Injectable } + ]; + /** @nocollapse */ + ConfigPlugin.ctorParameters = function () { return [ + { type: undefined, decorators: [{ type: core.Inject, args: [NGXS_CONFIG_PLUGIN_OPTIONS,] }] }, + { type: router.Router } + ]; }; + return ConfigPlugin; + }()); + /** + * @param {?=} routes + * @param {?=} wrappers + * @return {?} + */ + function transformRoutes(routes, wrappers) { + if (routes === void 0) { routes = []; } + if (wrappers === void 0) { wrappers = []; } + /** @type {?} */ + var abpRoutes = routes + .filter((/** + * @param {?} route + * @return {?} + */ + function (route) { + return snq((/** + * @return {?} + */ + function () { return route.data.routes.find((/** + * @param {?} r + * @return {?} + */ + function (r) { return r.path === route.path; })); }), false); + })) + .reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return __spread(acc, val.data.routes); }), []); + wrappers = abpRoutes.filter((/** + * @param {?} ar + * @return {?} + */ + function (ar) { return ar.wrapper; })); + /** @type {?} */ + var transformed = (/** @type {?} */ ([])); + routes + .filter((/** + * @param {?} route + * @return {?} + */ + function (route) { return route.component || route.loadChildren; })) + .forEach((/** + * @param {?} route + * @return {?} + */ + function (route) { + /** @type {?} */ + var abpPackage = abpRoutes.find((/** + * @param {?} abp + * @return {?} + */ + function (abp) { return abp.path.toLowerCase() === route.path.toLowerCase(); })); + var length = transformed.length; + if (abpPackage) { + transformed.push(abpPackage); + } + if (transformed.length === length) { + transformed.push((/** @type {?} */ ({ + path: route.path, + name: snq((/** + * @return {?} + */ + function () { return route.data.routes.name; }), route.path), + children: route.data.routes.children || [], + }))); + } + })); + return { routes: setUrls(transformed), wrappers: wrappers }; + } + /** + * @param {?} routes + * @param {?=} parentUrl + * @return {?} + */ + function setUrls(routes, parentUrl) { + if (parentUrl) { + // this if block using for only recursive call + return routes.map((/** + * @param {?} route + * @return {?} + */ + function (route) { return (__assign({}, route, { url: parentUrl + "/" + route.path }, (route.children && + route.children.length && { + children: setUrls(route.children, parentUrl + "/" + route.path), + }))); })); + } + return routes.map((/** + * @param {?} route + * @return {?} + */ + function (route) { return (__assign({}, route, { url: "/" + route.path }, (route.children && + route.children.length && { + children: setUrls(route.children, "/" + route.path), + }))); })); + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ConfigService = /** @class */ (function () { + function ConfigService(store) { + this.store = store; + } + /** + * @return {?} + */ + ConfigService.prototype.getAll = /** + * @return {?} + */ + function () { + return this.store.selectSnapshot(ConfigState.getAll); + }; + /** + * @param {?} key + * @return {?} + */ + ConfigService.prototype.getOne = /** + * @param {?} key + * @return {?} + */ + function (key) { + return this.store.selectSnapshot(ConfigState.getOne(key)); + }; + /** + * @param {?} keys + * @return {?} + */ + ConfigService.prototype.getDeep = /** + * @param {?} keys + * @return {?} + */ + function (keys) { + return this.store.selectSnapshot(ConfigState.getDeep(keys)); + }; + /** + * @param {?} key + * @return {?} + */ + ConfigService.prototype.getSetting = /** + * @param {?} key + * @return {?} + */ + function (key) { + return this.store.selectSnapshot(ConfigState.getSetting(key)); + }; + ConfigService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + ConfigService.ctorParameters = function () { return [ + { type: store.Store } + ]; }; + /** @nocollapse */ ConfigService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(core.ɵɵinject(store.Store)); }, token: ConfigService, providedIn: "root" }); + return ConfigService; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LazyLoadService = /** @class */ (function () { + function LazyLoadService() { + this.loadedLibraries = {}; + } + /** + * @param {?} url + * @param {?} type + * @param {?=} content + * @param {?=} targetQuery + * @param {?=} position + * @return {?} + */ + LazyLoadService.prototype.load = /** + * @param {?} url + * @param {?} type + * @param {?=} content + * @param {?=} targetQuery + * @param {?=} position + * @return {?} + */ + function (url, type, content, targetQuery, position) { + var _this = this; + if (content === void 0) { content = ''; } + if (targetQuery === void 0) { targetQuery = 'body'; } + if (position === void 0) { position = 'afterend'; } + if (!url && !content) + return; + /** @type {?} */ + var key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid(); + if (this.loadedLibraries[key]) { + return this.loadedLibraries[key].asObservable(); + } + this.loadedLibraries[key] = new rxjs.ReplaySubject(); + /** @type {?} */ + var library; + if (type === 'script') { + library = document.createElement('script'); + library.type = 'text/javascript'; + if (url) { + ((/** @type {?} */ (library))).src = url; + } + ((/** @type {?} */ (library))).text = content; + } + else if (url) { + library = document.createElement('link'); + library.type = 'text/css'; + ((/** @type {?} */ (library))).rel = 'stylesheet'; + if (url) { + ((/** @type {?} */ (library))).href = url; + } + } + else { + library = document.createElement('style'); + ((/** @type {?} */ (library))).textContent = content; + } + library.onload = (/** + * @return {?} + */ + function () { + _this.loadedLibraries[key].next(); + _this.loadedLibraries[key].complete(); + }); + document.querySelector(targetQuery).insertAdjacentElement(position, library); + return this.loadedLibraries[key].asObservable(); + }; + LazyLoadService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ LazyLoadService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function LazyLoadService_Factory() { return new LazyLoadService(); }, token: LazyLoadService, providedIn: "root" }); + return LazyLoadService; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LocalizationService = /** @class */ (function () { + function LocalizationService(store) { + this.store = store; + } + /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + LocalizationService.prototype.get = /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + function (keys) { + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + return this.store.select(ConfigState.getCopy.apply(ConfigState, __spread([keys], interpolateParams))); + }; + /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + LocalizationService.prototype.instant = /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + function (keys) { + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + return this.store.selectSnapshot(ConfigState.getCopy.apply(ConfigState, __spread([keys], interpolateParams))); + }; + LocalizationService.decorators = [ + { type: core.Injectable, args: [{ providedIn: 'root' },] } + ]; + /** @nocollapse */ + LocalizationService.ctorParameters = function () { return [ + { type: store.Store } + ]; }; + /** @nocollapse */ LocalizationService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(core.ɵɵinject(store.Store)); }, token: LocalizationService, providedIn: "root" }); + return LocalizationService; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @param {?} environment + * @return {?} + */ + function environmentFactory(environment) { + return __assign({}, environment); + } + /** + * @param {?} config + * @return {?} + */ + function configFactory(config) { + return __assign({}, config); + } + /** @type {?} */ + var ENVIRONMENT = new core.InjectionToken('ENVIRONMENT'); + /** @type {?} */ + var CONFIG = new core.InjectionToken('CONFIG'); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LocalizationPipe = /** @class */ (function () { + function LocalizationPipe(store) { + this.store = store; + this.initialized = false; + } + /** + * @param {?} value + * @param {...?} interpolateParams + * @return {?} + */ + LocalizationPipe.prototype.transform = /** + * @param {?} value + * @param {...?} interpolateParams + * @return {?} + */ + function (value) { + var _this = this; + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + if (!this.initialized) { + this.initialized = true; + this.store + .select(ConfigState.getCopy.apply(ConfigState, __spread([value], interpolateParams.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return (Array.isArray(val) ? __spread(acc, val) : __spread(acc, [val])); }), [])))) + .pipe(takeUntilDestroy(this), operators.distinctUntilChanged()) + .subscribe((/** + * @param {?} copy + * @return {?} + */ + function (copy) { return (_this.value = copy); })); + } + return this.value; + }; + /** + * @return {?} + */ + LocalizationPipe.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + LocalizationPipe.decorators = [ + { type: core.Pipe, args: [{ + name: 'abpLocalization', + pure: false, + },] } + ]; + /** @nocollapse */ + LocalizationPipe.ctorParameters = function () { return [ + { type: store.Store } + ]; }; + return LocalizationPipe; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var CoreModule = /** @class */ (function () { + function CoreModule() { + } + /** + * @param {?=} options + * @return {?} + */ + CoreModule.forRoot = /** + * @param {?=} options + * @return {?} + */ + function (options) { + if (options === void 0) { options = (/** @type {?} */ ({})); } + return { + ngModule: CoreModule, + providers: [ + { + provide: store.NGXS_PLUGINS, + useClass: ConfigPlugin, + multi: true, + }, + { + provide: NGXS_CONFIG_PLUGIN_OPTIONS, + useValue: options, + }, + { + provide: http.HTTP_INTERCEPTORS, + useClass: ApiInterceptor, + multi: true, + }, + { + provide: core.APP_INITIALIZER, + multi: true, + deps: [core.Injector], + useFactory: getInitialData, + }, + ], + }; + }; + CoreModule.decorators = [ + { type: core.NgModule, args: [{ + imports: [ + store.NgxsModule.forFeature([ProfileState, SessionState, ConfigState]), + storagePlugin.NgxsStoragePluginModule.forRoot({ key: 'SessionState' }), + routerPlugin.NgxsRouterPluginModule.forRoot(), + common.CommonModule, + http.HttpClientModule, + forms.FormsModule, + forms.ReactiveFormsModule, + router.RouterModule, + ], + declarations: [ + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + exports: [ + common.CommonModule, + http.HttpClientModule, + forms.FormsModule, + forms.ReactiveFormsModule, + router.RouterModule, + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + providers: [LocalizationPipe], + entryComponents: [RouterOutletComponent, DynamicLayoutComponent], + },] } + ]; + return CoreModule; + }()); + + exports.ApiInterceptor = ApiInterceptor; + exports.ApplicationConfigurationService = ApplicationConfigurationService; + exports.AuthGuard = AuthGuard; + exports.CONFIG = CONFIG; + exports.ConfigGetAppConfiguration = ConfigGetAppConfiguration; + exports.ConfigPlugin = ConfigPlugin; + exports.ConfigService = ConfigService; + exports.ConfigState = ConfigState; + exports.CoreModule = CoreModule; + exports.DynamicLayoutComponent = DynamicLayoutComponent; + exports.ENVIRONMENT = ENVIRONMENT; + exports.LazyLoadService = LazyLoadService; + exports.LocalizationService = LocalizationService; + exports.NGXS_CONFIG_PLUGIN_OPTIONS = NGXS_CONFIG_PLUGIN_OPTIONS; + exports.PatchRouteByName = PatchRouteByName; + exports.PermissionDirective = PermissionDirective; + exports.PermissionGuard = PermissionGuard; + exports.ProfileChangePassword = ProfileChangePassword; + exports.ProfileGet = ProfileGet; + exports.ProfileService = ProfileService; + exports.ProfileState = ProfileState; + exports.ProfileUpdate = ProfileUpdate; + exports.RestOccurError = RestOccurError; + exports.RestService = RestService; + exports.RouterOutletComponent = RouterOutletComponent; + exports.SessionSetLanguage = SessionSetLanguage; + exports.SessionState = SessionState; + exports.VisibilityDirective = VisibilityDirective; + exports.configFactory = configFactory; + exports.environmentFactory = environmentFactory; + exports.getInitialData = getInitialData; + exports.organizeRoutes = organizeRoutes; + exports.setChildRoute = setChildRoute; + exports.sortRoutes = sortRoutes; + exports.takeUntilDestroy = takeUntilDestroy; + exports.uuid = uuid; + exports.ɵa = ProfileState; + exports.ɵb = ProfileService; + exports.ɵc = RestService; + exports.ɵd = ProfileGet; + exports.ɵe = ProfileUpdate; + exports.ɵf = ProfileChangePassword; + exports.ɵh = SessionState; + exports.ɵi = SessionSetLanguage; + exports.ɵj = ConfigState; + exports.ɵk = ApplicationConfigurationService; + exports.ɵl = PatchRouteByName; + exports.ɵm = ConfigGetAppConfiguration; + exports.ɵn = RouterOutletComponent; + exports.ɵo = DynamicLayoutComponent; + exports.ɵp = ConfigState; + exports.ɵq = PermissionDirective; + exports.ɵr = VisibilityDirective; + exports.ɵs = LocalizationPipe; + exports.ɵt = NGXS_CONFIG_PLUGIN_OPTIONS; + exports.ɵu = ConfigPlugin; + exports.ɵw = ApiInterceptor; + exports.ɵx = getInitialData; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=abp-ng.core.umd.js.map diff --git a/npm/packs/ng/dist/core/bundles/abp-ng.core.umd.js.map b/npm/packs/ng/dist/core/bundles/abp-ng.core.umd.js.map new file mode 100644 index 0000000000..8233af431a --- /dev/null +++ b/npm/packs/ng/dist/core/bundles/abp-ng.core.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.core.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.core/lib/actions/config.actions.ts","ng://@abp/ng.core/lib/actions/profile.actions.ts","ng://@abp/ng.core/lib/actions/rest.actions.ts","ng://@abp/ng.core/lib/actions/session.actions.ts","ng://@abp/ng.core/lib/services/rest.service.ts","ng://@abp/ng.core/lib/services/profile.service.ts","ng://@abp/ng.core/lib/states/profile.state.ts","ng://@abp/ng.core/lib/services/application-configuration.service.ts","ng://@abp/ng.core/lib/states/session.state.ts","ng://@abp/ng.core/lib/utils/route-utils.ts","ng://@abp/ng.core/lib/states/config.state.ts","ng://@abp/ng.core/lib/utils/generator-utils.ts","ng://@abp/ng.core/lib/utils/initial-utils.ts","ng://@abp/ng.core/lib/utils/rxjs-utils.ts","ng://@abp/ng.core/lib/components/dynamic-layout.component.ts","ng://@abp/ng.core/lib/components/router-outlet.component.ts","ng://@abp/ng.core/lib/directives/permission.directive.ts","ng://@abp/ng.core/lib/directives/visibility.directive.ts","ng://@abp/ng.core/lib/guards/auth.guard.ts","ng://@abp/ng.core/lib/guards/permission.guard.ts","ng://@abp/ng.core/lib/interceptors/api.interceptor.ts","ng://@abp/ng.core/lib/models/rest.ts","ng://@abp/ng.core/lib/plugins/config.plugin.ts","ng://@abp/ng.core/lib/services/config.service.ts","ng://@abp/ng.core/lib/services/lazy-load.service.ts","ng://@abp/ng.core/lib/services/localization.service.ts","ng://@abp/ng.core/lib/tokens/common.token.ts","ng://@abp/ng.core/lib/pipes/localization.pipe.ts","ng://@abp/ng.core/lib/core.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class ConfigGetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { Profile } from '../models';\n\nexport class ProfileGet {\n static readonly type = '[Profile] Get';\n}\n\nexport class ProfileUpdate {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ProfileChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","export class SessionSetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return NEVER;\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, throwErr } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (throwErr) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/profile/changePassword',\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { ProfileGet, ProfileChangePassword, ProfileUpdate } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(ProfileGet)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ProfileUpdate)\n profileUpdate({ patchState }: StateContext, { payload }: ProfileUpdate) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ProfileChangePassword)\n changePassword(_, { payload }: ProfileChangePassword) {\n return this.profileService.changePassword(payload);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { SessionSetLanguage } from '../actions/session.actions';\nimport { Session } from '../models/session';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n constructor() {}\n\n @Action(SessionSetLanguage)\n sessionSetLanguage({ patchState }: StateContext, { payload }: SessionSetLanguage) {\n patchState({\n language: payload,\n });\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes\n .map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n })\n .filter(route => route.path || (route.children && route.children.length));\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { ConfigGetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SessionSetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(condition: string = '') {\n const keys = condition\n .replace(/\\(|\\)|\\!|\\s/g, '')\n .split(/\\|\\||&&/)\n .filter(key => key);\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!keys.length) return true;\n\n const getPolicy = key => snq(() => state.auth.grantedPolicies[key], false);\n if (keys.length > 1) {\n keys.forEach(key => {\n const value = getPolicy(key);\n condition = condition.replace(key, value);\n });\n\n // tslint:disable-next-line: no-eval\n return eval(`!!${condition}`);\n }\n\n return getPolicy(condition);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = keys.reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach((param, index) => {\n copy = copy.replace(`'{${index}}'`, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(ConfigGetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration =>\n this.store.selectSnapshot(SessionState.getLanguage)\n ? of(null)\n : dispatch(\n new SessionSetLanguage(snq(() => configuration.setting.values['Abp.Localization.DefaultLanguage'])),\n ),\n ),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigGetAppConfiguration } from '../actions/config.actions';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new ConfigGetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, OnDestroy, Type } from '@angular/core';\nimport { NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { eLayoutType } from '../enums';\nimport { ABP, Config } from '../models';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport snq from 'snq';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private store: Store) {\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n const layout = findLayout(segments, routes);\n\n this.layout = layouts.filter(l => !!l).find(l => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store) {}\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } }));\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n const headers = {} as any;\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n return next.handle(\n request.clone({\n setHeaders: headers,\n }),\n );\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n throwErr?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { Injectable, Inject, InjectionToken, Type } from '@angular/core';\nimport { NgxsPlugin, setValue, actionMatcher, InitState, UpdateState, NgxsNextPluginFn } from '@ngxs/store';\nimport { Router, Routes } from '@angular/router';\nimport { ABP } from '../models';\nimport snq from 'snq';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => route.component || route.loadChildren)\n .forEach(route => {\n const abpPackage = abpRoutes.find(abp => abp.path.toLowerCase() === route.path.toLowerCase());\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n constructor(private store: Store) {}\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialized: boolean = false;\n\n value: string;\n\n constructor(private store: Store) {}\n\n transform(value: string, ...interpolateParams: string[]): string {\n if (!this.initialized) {\n this.initialized = true;\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config.plugin';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData } from './utils/initial-utils';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n PermissionDirective,\n VisibilityDirective,\n LocalizationPipe,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n PermissionDirective,\n VisibilityDirective,\n LocalizationPipe,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n ],\n };\n }\n}\n"],"names":["NEVER","take","catchError","throwError","Injectable","HttpClient","Store","tap","tslib_1.__decorate","Action","Selector","State","createSelector","switchMap","of","store","Subject","takeUntil","router","NavigationEnd","Component","Router","Select","Observable","Directive","ElementRef","Optional","Renderer2","Input","Navigate","OAuthService","Rest","InjectionToken","actionMatcher","InitState","UpdateState","setValue","Inject","ReplaySubject","distinctUntilChanged","Pipe","NGXS_PLUGINS","HTTP_INTERCEPTORS","APP_INITIALIZER","Injector","NgModule","NgxsModule","NgxsStoragePluginModule","NgxsRouterPluginModule","CommonModule","HttpClientModule","FormsModule","ReactiveFormsModule","RouterModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/core/bundles/abp-ng.core.umd.min.js b/npm/packs/ng/dist/core/bundles/abp-ng.core.umd.min.js new file mode 100644 index 0000000000..95df932000 --- /dev/null +++ b/npm/packs/ng/dist/core/bundles/abp-ng.core.umd.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/router"),require("@ngxs/store"),require("rxjs"),require("@angular/common/http"),require("rxjs/operators"),require("snq"),require("angular-oauth2-oidc"),require("@ngxs/router-plugin"),require("@angular/common"),require("@angular/forms"),require("@ngxs/storage-plugin")):"function"==typeof define&&define.amd?define("@abp/ng.core",["exports","@angular/core","@angular/router","@ngxs/store","rxjs","@angular/common/http","rxjs/operators","snq","angular-oauth2-oidc","@ngxs/router-plugin","@angular/common","@angular/forms","@ngxs/storage-plugin"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng.core={}),e.ng.core,e.ng.router,e.store,e.rxjs,e.ng.common.http,e.rxjs.operators,e.snq,e.angularOauth2Oidc,e.routerPlugin,e.ng.common,e.ng.forms,e.storagePlugin)}(this,function(exports,core,router,store,rxjs,http,operators,snq,angularOauth2Oidc,routerPlugin,common,forms,storagePlugin){"use strict";snq=snq&&snq.hasOwnProperty("default")?snq.default:snq;var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function __metadata(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function __read(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function __spread(){for(var e=[],t=0;t1?(keys.forEach(function(e){var t=getPolicy(e);condition=condition.replace(e,t)}),eval("!!"+condition)):getPolicy(condition)});return selector},ConfigState.getCopy=function(e){for(var t=[],r=1;r>e/4).toString(16):(""+1e7+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,uuid)}function getInitialData(e){return function(){return e.get(store.Store).dispatch(new ConfigGetAppConfiguration).toPromise()}}function isFunction(e){return"function"==typeof e}var takeUntilDestroy=function(e,t){return void 0===t&&(t="ngOnDestroy"),function(r){var n=e[t];if(!1===isFunction(n))throw new Error(e.constructor.name+" is using untilDestroyed but doesn't implement "+t);return e.__takeUntilDestroy||(e.__takeUntilDestroy=new rxjs.Subject,e[t]=function(){isFunction(n)&&n.apply(this,arguments),e.__takeUntilDestroy.next(!0),e.__takeUntilDestroy.complete()}),r.pipe(operators.takeUntil(e.__takeUntilDestroy))}},DynamicLayoutComponent=function(){function e(e,t){var r=this;this.router=e,this.store=t,this.router.events.pipe(takeUntilDestroy(this)).subscribe(function(e){if(e instanceof router.NavigationEnd){var t=r.router.parseUrl(e.url).root.children.primary.segments,n=r.store.selectSnapshot(ConfigState.getAll),o=n.requirements.layouts,i=findLayout(t,n.routes);r.layout=o.filter(function(e){return!!e}).find(function(e){return snq(function(){return e.type.toLowerCase().indexOf(i)},-1)>-1})}})}return e.prototype.ngOnDestroy=function(){},e.decorators=[{type:core.Component,args:[{selector:"abp-dynamic-layout",template:'\n \n\n \n \n '}]}],e.ctorParameters=function(){return[{type:router.Router},{type:store.Store}]},__decorate([store.Select(ConfigState.getOne("requirements")),__metadata("design:type",rxjs.Observable)],e.prototype,"requirements$",void 0),e}();function findLayout(e,t){var r="empty",n=t.reduce(function(e,t){return t.wrapper?__spread(e,t.children):__spread(e,[t])},[]).find(function(t){return t.path===e[0].path});if(n&&(n.layout&&(r=n.layout),n.children&&n.children.length)){var o=n.children.find(function(t){return t.path===e[1].path});o.layout&&(r=o.layout)}return r}var RouterOutletComponent=function(){function e(){}return e.decorators=[{type:core.Component,args:[{selector:"abp-router-outlet",template:"\n \n "}]}],e}(),PermissionDirective=function(){function e(e,t,r){this.elRef=e,this.renderer=t,this.store=r}return e.prototype.ngOnInit=function(){var e=this;this.condition&&this.store.select(ConfigState.getGrantedPolicy(this.condition)).pipe(takeUntilDestroy(this)).subscribe(function(t){t||e.renderer.removeChild(e.elRef.nativeElement.parentElement,e.elRef.nativeElement)})},e.prototype.ngOnDestroy=function(){},e.decorators=[{type:core.Directive,args:[{selector:"[abpPermission]"}]}],e.ctorParameters=function(){return[{type:core.ElementRef,decorators:[{type:core.Optional}]},{type:core.Renderer2},{type:store.Store}]},e.propDecorators={condition:[{type:core.Input,args:["abpPermission"]}]},e}(),VisibilityDirective=function(){function e(e,t){this.elRef=e,this.renderer=t,this.completed$=new rxjs.Subject}return e.prototype.ngAfterViewInit=function(){var e=this,t=new MutationObserver(function(t){t.forEach(function(t){t.target&&(snq(function(){return Array.from(t.target.childNodes).filter(function(e){return e instanceof HTMLElement})},[]).length?setTimeout(function(){e.disconnect()},0):(e.renderer.removeChild(e.elRef.nativeElement.parentElement,e.elRef.nativeElement),e.disconnect()))})});t.observe(this.focusedElement,{childList:!0}),this.completed$.subscribe(function(){return t.disconnect()})},e.prototype.disconnect=function(){this.completed$.next(),this.completed$.complete()},e.decorators=[{type:core.Directive,args:[{selector:"[abpVisibility]"}]}],e.ctorParameters=function(){return[{type:core.ElementRef,decorators:[{type:core.Optional}]},{type:core.Renderer2}]},e.propDecorators={focusedElement:[{type:core.Input,args:["abpVisibility"]}]},e}(),AuthGuard=function(){function e(e,t){this.oauthService=e,this.store=t}return e.prototype.canActivate=function(e,t){var r=this.oauthService.hasValidAccessToken();return r||(this.store.dispatch(new routerPlugin.Navigate(["/account/login"],null,{state:{redirectUrl:t.url}})),!1)},e.decorators=[{type:core.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:angularOauth2Oidc.OAuthService},{type:store.Store}]},e.ngInjectableDef=core.ɵɵdefineInjectable({factory:function(){return new e(core.ɵɵinject(angularOauth2Oidc.OAuthService),core.ɵɵinject(store.Store))},token:e,providedIn:"root"}),e}(),PermissionGuard=function(){function e(e){this.store=e}return e.prototype.canActivate=function(e){var t=e.data.requiredPolicy;return this.store.select(ConfigState.getGrantedPolicy(t))},e.decorators=[{type:core.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:store.Store}]},e.ngInjectableDef=core.ɵɵdefineInjectable({factory:function(){return new e(core.ɵɵinject(store.Store))},token:e,providedIn:"root"}),e}(),ApiInterceptor=function(){function e(e,t){this.oAuthService=e,this.store=t}return e.prototype.intercept=function(e,t){var r={},n=this.oAuthService.getAccessToken();!e.headers.has("Authorization")&&n&&(r.Authorization="Bearer "+n);var o=this.store.selectSnapshot(SessionState.getLanguage);return!e.headers.has("Accept-Language")&&o&&(r["Accept-Language"]=o),t.handle(e.clone({setHeaders:r}))},e.decorators=[{type:core.Injectable}],e.ctorParameters=function(){return[{type:angularOauth2Oidc.OAuthService},{type:store.Store}]},e}(),Rest;Rest=exports.Rest||(exports.Rest={}),Rest.Config=function(){},Rest.Request=function(){};var NGXS_CONFIG_PLUGIN_OPTIONS=new core.InjectionToken("NGXS_CONFIG_PLUGIN_OPTIONS"),ConfigPlugin=function(){function e(e,t){this.options=e,this.router=t,this.initialized=!1}return e.prototype.handle=function(e,t,r){var n=store.actionMatcher(t);if((n(store.InitState)||n(store.UpdateState))&&!this.initialized){var o=transformRoutes(this.router.config),i=o.routes;i=organizeRoutes(i,o.wrappers),e=store.setValue(e,"ConfigState",__assign({},e.ConfigState&&__assign({},e.ConfigState),this.options,{routes:i})),this.initialized=!0}return r(e,t)},e.decorators=[{type:core.Injectable}],e.ctorParameters=function(){return[{type:void 0,decorators:[{type:core.Inject,args:[NGXS_CONFIG_PLUGIN_OPTIONS]}]},{type:router.Router}]},e}();function transformRoutes(e,t){void 0===e&&(e=[]),void 0===t&&(t=[]);var r=e.filter(function(e){return snq(function(){return e.data.routes.find(function(t){return t.path===e.path})},!1)}).reduce(function(e,t){return __spread(e,t.data.routes)},[]);t=r.filter(function(e){return e.wrapper});var n=[];return e.filter(function(e){return e.component||e.loadChildren}).forEach(function(e){var t=r.find(function(t){return t.path.toLowerCase()===e.path.toLowerCase()}),o=n.length;t&&n.push(t),n.length===o&&n.push({path:e.path,name:snq(function(){return e.data.routes.name},e.path),children:e.data.routes.children||[]})}),{routes:setUrls(n),wrappers:t}}function setUrls(e,t){return t?e.map(function(e){return __assign({},e,{url:t+"/"+e.path},e.children&&e.children.length&&{children:setUrls(e.children,t+"/"+e.path)})}):e.map(function(e){return __assign({},e,{url:"/"+e.path},e.children&&e.children.length&&{children:setUrls(e.children,"/"+e.path)})})}var ConfigService=function(){function e(e){this.store=e}return e.prototype.getAll=function(){return this.store.selectSnapshot(ConfigState.getAll)},e.prototype.getOne=function(e){return this.store.selectSnapshot(ConfigState.getOne(e))},e.prototype.getDeep=function(e){return this.store.selectSnapshot(ConfigState.getDeep(e))},e.prototype.getSetting=function(e){return this.store.selectSnapshot(ConfigState.getSetting(e))},e.decorators=[{type:core.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:store.Store}]},e.ngInjectableDef=core.ɵɵdefineInjectable({factory:function(){return new e(core.ɵɵinject(store.Store))},token:e,providedIn:"root"}),e}(),LazyLoadService=function(){function e(){this.loadedLibraries={}}return e.prototype.load=function(e,t,r,n,o){var i=this;if(void 0===r&&(r=""),void 0===n&&(n="body"),void 0===o&&(o="afterend"),e||r){var a,s=e?e.slice(e.lastIndexOf("/")+1):uuid();return this.loadedLibraries[s]?this.loadedLibraries[s].asObservable():(this.loadedLibraries[s]=new rxjs.ReplaySubject,"script"===t?((a=document.createElement("script")).type="text/javascript",e&&(a.src=e),a.text=r):e?((a=document.createElement("link")).type="text/css",a.rel="stylesheet",e&&(a.href=e)):(a=document.createElement("style")).textContent=r,a.onload=function(){i.loadedLibraries[s].next(),i.loadedLibraries[s].complete()},document.querySelector(n).insertAdjacentElement(o,a),this.loadedLibraries[s].asObservable())}},e.decorators=[{type:core.Injectable,args:[{providedIn:"root"}]}],e.ngInjectableDef=core.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(),LocalizationService=function(){function e(e){this.store=e}return e.prototype.get=function(e){for(var t=[],r=1;r= 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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class ConfigGetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { Profile } from '../models';\n\nexport class ProfileGet {\n static readonly type = '[Profile] Get';\n}\n\nexport class ProfileUpdate {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ProfileChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","export class SessionSetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return NEVER;\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, throwErr } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (throwErr) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/profile/changePassword',\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { ProfileGet, ProfileChangePassword, ProfileUpdate } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(ProfileGet)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ProfileUpdate)\n profileUpdate({ patchState }: StateContext, { payload }: ProfileUpdate) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ProfileChangePassword)\n changePassword(_, { payload }: ProfileChangePassword) {\n return this.profileService.changePassword(payload);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { SessionSetLanguage } from '../actions/session.actions';\nimport { Session } from '../models/session';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n constructor() {}\n\n @Action(SessionSetLanguage)\n sessionSetLanguage({ patchState }: StateContext, { payload }: SessionSetLanguage) {\n patchState({\n language: payload,\n });\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes\n .map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n })\n .filter(route => route.path || (route.children && route.children.length));\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { ConfigGetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SessionSetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(condition: string = '') {\n const keys = condition\n .replace(/\\(|\\)|\\!|\\s/g, '')\n .split(/\\|\\||&&/)\n .filter(key => key);\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!keys.length) return true;\n\n const getPolicy = key => snq(() => state.auth.grantedPolicies[key], false);\n if (keys.length > 1) {\n keys.forEach(key => {\n const value = getPolicy(key);\n condition = condition.replace(key, value);\n });\n\n // tslint:disable-next-line: no-eval\n return eval(`!!${condition}`);\n }\n\n return getPolicy(condition);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = keys.reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach((param, index) => {\n copy = copy.replace(`'{${index}}'`, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(ConfigGetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration =>\n this.store.selectSnapshot(SessionState.getLanguage)\n ? of(null)\n : dispatch(\n new SessionSetLanguage(snq(() => configuration.setting.values['Abp.Localization.DefaultLanguage'])),\n ),\n ),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigGetAppConfiguration } from '../actions/config.actions';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new ConfigGetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, OnDestroy, Type } from '@angular/core';\nimport { NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { eLayoutType } from '../enums';\nimport { ABP, Config } from '../models';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport snq from 'snq';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private store: Store) {\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n const layout = findLayout(segments, routes);\n\n this.layout = layouts.filter(l => !!l).find(l => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store) {}\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } }));\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n const headers = {} as any;\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n return next.handle(\n request.clone({\n setHeaders: headers,\n }),\n );\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n throwErr?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { Injectable, Inject, InjectionToken, Type } from '@angular/core';\nimport { NgxsPlugin, setValue, actionMatcher, InitState, UpdateState, NgxsNextPluginFn } from '@ngxs/store';\nimport { Router, Routes } from '@angular/router';\nimport { ABP } from '../models';\nimport snq from 'snq';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => route.component || route.loadChildren)\n .forEach(route => {\n const abpPackage = abpRoutes.find(abp => abp.path.toLowerCase() === route.path.toLowerCase());\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n constructor(private store: Store) {}\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialized: boolean = false;\n\n value: string;\n\n constructor(private store: Store) {}\n\n transform(value: string, ...interpolateParams: string[]): string {\n if (!this.initialized) {\n this.initialized = true;\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config.plugin';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData } from './utils/initial-utils';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n PermissionDirective,\n VisibilityDirective,\n LocalizationPipe,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n PermissionDirective,\n VisibilityDirective,\n LocalizationPipe,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n ],\n };\n }\n}\n"]} \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/abp-ng.core.js b/npm/packs/ng/dist/core/esm2015/abp-ng.core.js new file mode 100644 index 0000000000..2c15c49c0e --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/abp-ng.core.js @@ -0,0 +1,27 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { PatchRouteByName, ConfigGetAppConfiguration, ProfileGet, ProfileUpdate, ProfileChangePassword, RestOccurError, SessionSetLanguage, DynamicLayoutComponent, RouterOutletComponent, PermissionDirective, VisibilityDirective, AuthGuard, PermissionGuard, ApiInterceptor, Rest, NGXS_CONFIG_PLUGIN_OPTIONS, ConfigPlugin, ApplicationConfigurationService, ConfigService, LazyLoadService, LocalizationService, ProfileService, RestService, ProfileState, ConfigState, SessionState, environmentFactory, configFactory, ENVIRONMENT, CONFIG, uuid, getInitialData, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy, CoreModule } from './public-api'; +export { ConfigGetAppConfiguration as ɵm, PatchRouteByName as ɵl } from './lib/actions/config.actions'; +export { ProfileChangePassword as ɵf, ProfileGet as ɵd, ProfileUpdate as ɵe } from './lib/actions/profile.actions'; +export { SessionSetLanguage as ɵi } from './lib/actions/session.actions'; +export { DynamicLayoutComponent as ɵo } from './lib/components/dynamic-layout.component'; +export { RouterOutletComponent as ɵn } from './lib/components/router-outlet.component'; +export { PermissionDirective as ɵq } from './lib/directives/permission.directive'; +export { VisibilityDirective as ɵr } from './lib/directives/visibility.directive'; +export { ApiInterceptor as ɵw } from './lib/interceptors/api.interceptor'; +export { LocalizationPipe as ɵs } from './lib/pipes/localization.pipe'; +export { ConfigPlugin as ɵu, NGXS_CONFIG_PLUGIN_OPTIONS as ɵt } from './lib/plugins/config.plugin'; +export { ApplicationConfigurationService as ɵk } from './lib/services/application-configuration.service'; +export { ProfileService as ɵb } from './lib/services/profile.service'; +export { RestService as ɵc } from './lib/services/rest.service'; +export { ConfigState as ɵp } from './lib/states'; +export { ConfigState as ɵj } from './lib/states/config.state'; +export { ProfileState as ɵa } from './lib/states/profile.state'; +export { SessionState as ɵh } from './lib/states/session.state'; +export { getInitialData as ɵx } from './lib/utils/initial-utils'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJhYnAtbmcuY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMG5CQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3BHLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsVUFBVSxJQUFJLEVBQUUsRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDL0csT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN2RixPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRyxPQUFPLEVBQUMsK0JBQStCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDdkcsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQy9DLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7Q29uZmlnR2V0QXBwQ29uZmlndXJhdGlvbiBhcyDJtW0sUGF0Y2hSb3V0ZUJ5TmFtZSBhcyDJtWx9IGZyb20gJy4vbGliL2FjdGlvbnMvY29uZmlnLmFjdGlvbnMnO1xuZXhwb3J0IHtQcm9maWxlQ2hhbmdlUGFzc3dvcmQgYXMgybVmLFByb2ZpbGVHZXQgYXMgybVkLFByb2ZpbGVVcGRhdGUgYXMgybVlfSBmcm9tICcuL2xpYi9hY3Rpb25zL3Byb2ZpbGUuYWN0aW9ucyc7XG5leHBvcnQge1Nlc3Npb25TZXRMYW5ndWFnZSBhcyDJtWl9IGZyb20gJy4vbGliL2FjdGlvbnMvc2Vzc2lvbi5hY3Rpb25zJztcbmV4cG9ydCB7RHluYW1pY0xheW91dENvbXBvbmVudCBhcyDJtW99IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCB7Um91dGVyT3V0bGV0Q29tcG9uZW50IGFzIMm1bn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb3V0ZXItb3V0bGV0LmNvbXBvbmVudCc7XG5leHBvcnQge1Blcm1pc3Npb25EaXJlY3RpdmUgYXMgybVxfSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3Blcm1pc3Npb24uZGlyZWN0aXZlJztcbmV4cG9ydCB7VmlzaWJpbGl0eURpcmVjdGl2ZSBhcyDJtXJ9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvdmlzaWJpbGl0eS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtBcGlJbnRlcmNlcHRvciBhcyDJtXd9IGZyb20gJy4vbGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3InO1xuZXhwb3J0IHtBQlAgYXMgybV2LFByb2ZpbGUgYXMgybVnfSBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0IHtMb2NhbGl6YXRpb25QaXBlIGFzIMm1c30gZnJvbSAnLi9saWIvcGlwZXMvbG9jYWxpemF0aW9uLnBpcGUnO1xuZXhwb3J0IHtDb25maWdQbHVnaW4gYXMgybV1LE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TIGFzIMm1dH0gZnJvbSAnLi9saWIvcGx1Z2lucy9jb25maWcucGx1Z2luJztcbmV4cG9ydCB7QXBwbGljYXRpb25Db25maWd1cmF0aW9uU2VydmljZSBhcyDJtWt9IGZyb20gJy4vbGliL3NlcnZpY2VzL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5leHBvcnQge1Byb2ZpbGVTZXJ2aWNlIGFzIMm1Yn0gZnJvbSAnLi9saWIvc2VydmljZXMvcHJvZmlsZS5zZXJ2aWNlJztcbmV4cG9ydCB7UmVzdFNlcnZpY2UgYXMgybVjfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xuZXhwb3J0IHtDb25maWdTdGF0ZSBhcyDJtXB9IGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQge0NvbmZpZ1N0YXRlIGFzIMm1an0gZnJvbSAnLi9saWIvc3RhdGVzL2NvbmZpZy5zdGF0ZSc7XG5leHBvcnQge1Byb2ZpbGVTdGF0ZSBhcyDJtWF9IGZyb20gJy4vbGliL3N0YXRlcy9wcm9maWxlLnN0YXRlJztcbmV4cG9ydCB7U2Vzc2lvblN0YXRlIGFzIMm1aH0gZnJvbSAnLi9saWIvc3RhdGVzL3Nlc3Npb24uc3RhdGUnO1xuZXhwb3J0IHtnZXRJbml0aWFsRGF0YSBhcyDJtXh9IGZyb20gJy4vbGliL3V0aWxzL2luaXRpYWwtdXRpbHMnOyJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/actions/config.actions.js b/npm/packs/ng/dist/core/esm2015/lib/actions/config.actions.js new file mode 100644 index 0000000000..11aa8de879 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/actions/config.actions.js @@ -0,0 +1,31 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export class PatchRouteByName { + /** + * @param {?} name + * @param {?} newValue + */ + constructor(name, newValue) { + this.name = name; + this.newValue = newValue; + } +} +PatchRouteByName.type = '[Config] Patch Route By Name'; +if (false) { + /** @type {?} */ + PatchRouteByName.type; + /** @type {?} */ + PatchRouteByName.prototype.name; + /** @type {?} */ + PatchRouteByName.prototype.newValue; +} +export class ConfigGetAppConfiguration { +} +ConfigGetAppConfiguration.type = '[Config] Get App Configuration'; +if (false) { + /** @type {?} */ + ConfigGetAppConfiguration.type; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmFjdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvYWN0aW9ucy9jb25maWcuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsTUFBTSxPQUFPLGdCQUFnQjs7Ozs7SUFFM0IsWUFBbUIsSUFBWSxFQUFTLFFBQTRCO1FBQWpELFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFvQjtJQUFHLENBQUM7O0FBRHhELHFCQUFJLEdBQUcsOEJBQThCLENBQUM7OztJQUF0RCxzQkFBc0Q7O0lBQzFDLGdDQUFtQjs7SUFBRSxvQ0FBbUM7O0FBR3RFLE1BQU0sT0FBTyx5QkFBeUI7O0FBQ3BCLDhCQUFJLEdBQUcsZ0NBQWdDLENBQUM7OztJQUF4RCwrQkFBd0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY2xhc3MgUGF0Y2hSb3V0ZUJ5TmFtZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tDb25maWddIFBhdGNoIFJvdXRlIEJ5IE5hbWUnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nLCBwdWJsaWMgbmV3VmFsdWU6IFBhcnRpYWw8QUJQLlJvdXRlPikge31cbn1cblxuZXhwb3J0IGNsYXNzIENvbmZpZ0dldEFwcENvbmZpZ3VyYXRpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbQ29uZmlnXSBHZXQgQXBwIENvbmZpZ3VyYXRpb24nO1xufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/actions/index.js b/npm/packs/ng/dist/core/esm2015/lib/actions/index.js new file mode 100644 index 0000000000..82c1750339 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/actions/index.js @@ -0,0 +1,9 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PatchRouteByName, ConfigGetAppConfiguration } from './config.actions'; +export { ProfileGet, ProfileUpdate, ProfileChangePassword } from './profile.actions'; +export { RestOccurError } from './rest.actions'; +export { SessionSetLanguage } from './session.actions'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvYWN0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNERBQWMsa0JBQWtCLENBQUM7QUFDakMsaUVBQWMsbUJBQW1CLENBQUM7QUFDbEMsK0JBQWMsZ0JBQWdCLENBQUM7QUFDL0IsbUNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpZy5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZmlsZS5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzdC5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc2Vzc2lvbi5hY3Rpb25zJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/actions/profile.actions.js b/npm/packs/ng/dist/core/esm2015/lib/actions/profile.actions.js new file mode 100644 index 0000000000..cfa7bf35e4 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/actions/profile.actions.js @@ -0,0 +1,42 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export class ProfileGet { +} +ProfileGet.type = '[Profile] Get'; +if (false) { + /** @type {?} */ + ProfileGet.type; +} +export class ProfileUpdate { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +ProfileUpdate.type = '[Profile] Update'; +if (false) { + /** @type {?} */ + ProfileUpdate.type; + /** @type {?} */ + ProfileUpdate.prototype.payload; +} +export class ProfileChangePassword { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +ProfileChangePassword.type = '[Profile] Change Password'; +if (false) { + /** @type {?} */ + ProfileChangePassword.type; + /** @type {?} */ + ProfileChangePassword.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvcHJvZmlsZS5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLE9BQU8sVUFBVTs7QUFDTCxlQUFJLEdBQUcsZUFBZSxDQUFDOzs7SUFBdkMsZ0JBQXVDOztBQUd6QyxNQUFNLE9BQU8sYUFBYTs7OztJQUV4QixZQUFtQixPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtJQUFHLENBQUM7O0FBRGhDLGtCQUFJLEdBQUcsa0JBQWtCLENBQUM7OztJQUExQyxtQkFBMEM7O0lBQzlCLGdDQUFnQzs7QUFHOUMsTUFBTSxPQUFPLHFCQUFxQjs7OztJQUVoQyxZQUFtQixPQUFzQztRQUF0QyxZQUFPLEdBQVAsT0FBTyxDQUErQjtJQUFHLENBQUM7O0FBRDdDLDBCQUFJLEdBQUcsMkJBQTJCLENBQUM7OztJQUFuRCwyQkFBbUQ7O0lBQ3ZDLHdDQUE2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2ZpbGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY2xhc3MgUHJvZmlsZUdldCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tQcm9maWxlXSBHZXQnO1xufVxuXG5leHBvcnQgY2xhc3MgUHJvZmlsZVVwZGF0ZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tQcm9maWxlXSBVcGRhdGUnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogUHJvZmlsZS5SZXNwb25zZSkge31cbn1cblxuZXhwb3J0IGNsYXNzIFByb2ZpbGVDaGFuZ2VQYXNzd29yZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tQcm9maWxlXSBDaGFuZ2UgUGFzc3dvcmQnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogUHJvZmlsZS5DaGFuZ2VQYXNzd29yZFJlcXVlc3QpIHt9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/actions/rest.actions.js b/npm/packs/ng/dist/core/esm2015/lib/actions/rest.actions.js new file mode 100644 index 0000000000..119ca38e87 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/actions/rest.actions.js @@ -0,0 +1,20 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export class RestOccurError { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +RestOccurError.type = '[Rest] Error'; +if (false) { + /** @type {?} */ + RestOccurError.type; + /** @type {?} */ + RestOccurError.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvcmVzdC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLE9BQU8sY0FBYzs7OztJQUV6QixZQUFtQixPQUFnQztRQUFoQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtJQUFHLENBQUM7O0FBRHZDLG1CQUFJLEdBQUcsY0FBYyxDQUFDOzs7SUFBdEMsb0JBQXNDOztJQUMxQixpQ0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuZXhwb3J0IGNsYXNzIFJlc3RPY2N1ckVycm9yIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Jlc3RdIEVycm9yJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/actions/session.actions.js b/npm/packs/ng/dist/core/esm2015/lib/actions/session.actions.js new file mode 100644 index 0000000000..c50105a8bf --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/actions/session.actions.js @@ -0,0 +1,20 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export class SessionSetLanguage { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +SessionSetLanguage.type = '[Session] Set Language'; +if (false) { + /** @type {?} */ + SessionSetLanguage.type; + /** @type {?} */ + SessionSetLanguage.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvc2Vzc2lvbi5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNLE9BQU8sa0JBQWtCOzs7O0lBRTdCLFlBQW1CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQUcsQ0FBQzs7QUFEdEIsdUJBQUksR0FBRyx3QkFBd0IsQ0FBQzs7O0lBQWhELHdCQUFnRDs7SUFDcEMscUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFNlc3Npb25TZXRMYW5ndWFnZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBTZXQgTGFuZ3VhZ2UnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogc3RyaW5nKSB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/components/dynamic-layout.component.js b/npm/packs/ng/dist/core/esm2015/lib/components/dynamic-layout.component.js new file mode 100644 index 0000000000..f8aade9e9e --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/components/dynamic-layout.component.js @@ -0,0 +1,126 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component } from '@angular/core'; +import { NavigationEnd, Router } from '@angular/router'; +import { Select, Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { ConfigState } from '../states'; +import { takeUntilDestroy } from '../utils'; +import snq from 'snq'; +export class DynamicLayoutComponent { + /** + * @param {?} router + * @param {?} store + */ + constructor(router, store) { + this.router = router; + this.store = store; + this.router.events.pipe(takeUntilDestroy(this)).subscribe((/** + * @param {?} event + * @return {?} + */ + event => { + if (event instanceof NavigationEnd) { + const { segments } = this.router.parseUrl(event.url).root.children.primary; + const { requirements: { layouts }, routes, } = this.store.selectSnapshot(ConfigState.getAll); + /** @type {?} */ + const layout = findLayout(segments, routes); + this.layout = layouts.filter((/** + * @param {?} l + * @return {?} + */ + l => !!l)).find((/** + * @param {?} l + * @return {?} + */ + l => snq((/** + * @return {?} + */ + () => l.type.toLowerCase().indexOf(layout)), -1) > -1)); + } + })); + } + /** + * @return {?} + */ + ngOnDestroy() { } +} +DynamicLayoutComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-dynamic-layout', + template: ` + + + + + ` + }] } +]; +/** @nocollapse */ +DynamicLayoutComponent.ctorParameters = () => [ + { type: Router }, + { type: Store } +]; +tslib_1.__decorate([ + Select(ConfigState.getOne('requirements')), + tslib_1.__metadata("design:type", Observable) +], DynamicLayoutComponent.prototype, "requirements$", void 0); +if (false) { + /** @type {?} */ + DynamicLayoutComponent.prototype.requirements$; + /** @type {?} */ + DynamicLayoutComponent.prototype.layout; + /** + * @type {?} + * @private + */ + DynamicLayoutComponent.prototype.router; + /** + * @type {?} + * @private + */ + DynamicLayoutComponent.prototype.store; +} +/** + * @param {?} segments + * @param {?} routes + * @return {?} + */ +function findLayout(segments, routes) { + /** @type {?} */ + let layout = "empty" /* empty */; + /** @type {?} */ + const route = routes + .reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val])), []) + .find((/** + * @param {?} r + * @return {?} + */ + r => r.path === segments[0].path)); + if (route) { + if (route.layout) { + layout = route.layout; + } + if (route.children && route.children.length) { + /** @type {?} */ + const child = route.children.find((/** + * @param {?} c + * @return {?} + */ + c => c.path === segments[1].path)); + if (child.layout) { + layout = child.layout; + } + } + } + return layout; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQVd0QixNQUFNLE9BQU8sc0JBQXNCOzs7OztJQU1qQyxZQUFvQixNQUFjLEVBQVUsS0FBWTtRQUFwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO3NCQUM1QixFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87c0JBQ3BFLEVBQ0osWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQ3pCLE1BQU0sR0FDUCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7O3NCQUUzQyxNQUFNLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7Z0JBRTNDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU07Ozs7Z0JBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSTs7OztnQkFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUc7OztnQkFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUM7YUFDNUc7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxXQUFXLEtBQUksQ0FBQzs7O1lBL0JqQixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFOzs7OztHQUtUO2FBQ0Y7Ozs7WUFqQnVCLE1BQU07WUFDYixLQUFLOztBQW1CcEI7SUFEQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztzQ0FDNUIsVUFBVTs2REFBc0I7OztJQUQvQywrQ0FDK0M7O0lBRS9DLHdDQUFrQjs7Ozs7SUFFTix3Q0FBc0I7Ozs7O0lBQUUsdUNBQW9COzs7Ozs7O0FBbUIxRCxTQUFTLFVBQVUsQ0FBQyxRQUFzQixFQUFFLE1BQXVCOztRQUM3RCxNQUFNLHNCQUFvQjs7VUFFeEIsS0FBSyxHQUFHLE1BQU07U0FDakIsTUFBTTs7Ozs7SUFBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFFLEVBQUUsQ0FBQztTQUNuRixJQUFJOzs7O0lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUM7SUFFekMsSUFBSSxLQUFLLEVBQUU7UUFDVCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDdkI7UUFFRCxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7O2tCQUNyQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUM7WUFFbkUsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUNoQixNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQzthQUN2QjtTQUNGO0tBQ0Y7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciwgVXJsU2VnbWVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZUxheW91dFR5cGUgfSBmcm9tICcuLi9lbnVtcyc7XG5pbXBvcnQgeyBBQlAsIENvbmZpZyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHNucSBmcm9tICdzbnEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtZHluYW1pYy1sYXlvdXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYXlvdXQgPyBjb21wb25lbnRPdXRsZXQgOiByb3V0ZXJPdXRsZXRcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcm91dGVyT3V0bGV0Pjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD48L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50T3V0bGV0PjxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwibGF5b3V0XCI+PC9uZy1jb250YWluZXI+PC9uZy10ZW1wbGF0ZT5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBTZWxlY3QoQ29uZmlnU3RhdGUuZ2V0T25lKCdyZXF1aXJlbWVudHMnKSlcbiAgcmVxdWlyZW1lbnRzJDogT2JzZXJ2YWJsZTxDb25maWcuUmVxdWlyZW1lbnRzPjtcblxuICBsYXlvdXQ6IFR5cGU8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge1xuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKHRha2VVbnRpbERlc3Ryb3kodGhpcykpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIGNvbnN0IHsgc2VnbWVudHMgfSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKGV2ZW50LnVybCkucm9vdC5jaGlsZHJlbi5wcmltYXJ5O1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgcmVxdWlyZW1lbnRzOiB7IGxheW91dHMgfSxcbiAgICAgICAgICByb3V0ZXMsXG4gICAgICAgIH0gPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KENvbmZpZ1N0YXRlLmdldEFsbCk7XG5cbiAgICAgICAgY29uc3QgbGF5b3V0ID0gZmluZExheW91dChzZWdtZW50cywgcm91dGVzKTtcblxuICAgICAgICB0aGlzLmxheW91dCA9IGxheW91dHMuZmlsdGVyKGwgPT4gISFsKS5maW5kKGwgPT4gc25xKCgpID0+IGwudHlwZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YobGF5b3V0KSwgLTEpID4gLTEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7fVxufVxuXG5mdW5jdGlvbiBmaW5kTGF5b3V0KHNlZ21lbnRzOiBVcmxTZWdtZW50W10sIHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdKTogZUxheW91dFR5cGUge1xuICBsZXQgbGF5b3V0ID0gZUxheW91dFR5cGUuZW1wdHk7XG5cbiAgY29uc3Qgcm91dGUgPSByb3V0ZXNcbiAgICAucmVkdWNlKChhY2MsIHZhbCkgPT4gKHZhbC53cmFwcGVyID8gWy4uLmFjYywgLi4udmFsLmNoaWxkcmVuXSA6IFsuLi5hY2MsIHZhbF0pLCBbXSlcbiAgICAuZmluZChyID0+IHIucGF0aCA9PT0gc2VnbWVudHNbMF0ucGF0aCk7XG5cbiAgaWYgKHJvdXRlKSB7XG4gICAgaWYgKHJvdXRlLmxheW91dCkge1xuICAgICAgbGF5b3V0ID0gcm91dGUubGF5b3V0O1xuICAgIH1cblxuICAgIGlmIChyb3V0ZS5jaGlsZHJlbiAmJiByb3V0ZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGNoaWxkID0gcm91dGUuY2hpbGRyZW4uZmluZChjID0+IGMucGF0aCA9PT0gc2VnbWVudHNbMV0ucGF0aCk7XG5cbiAgICAgIGlmIChjaGlsZC5sYXlvdXQpIHtcbiAgICAgICAgbGF5b3V0ID0gY2hpbGQubGF5b3V0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsYXlvdXQ7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/components/index.js b/npm/packs/ng/dist/core/esm2015/lib/components/index.js new file mode 100644 index 0000000000..ddc4caca23 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/components/index.js @@ -0,0 +1,7 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { DynamicLayoutComponent } from './dynamic-layout.component'; +export { RouterOutletComponent } from './router-outlet.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsdUNBQWMsNEJBQTRCLENBQUM7QUFDM0Msc0NBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRlci1vdXRsZXQuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/components/router-outlet.component.js b/npm/packs/ng/dist/core/esm2015/lib/components/router-outlet.component.js new file mode 100644 index 0000000000..a0d43f78d5 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/components/router-outlet.component.js @@ -0,0 +1,16 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +export class RouterOutletComponent { +} +RouterOutletComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-router-outlet', + template: ` + + ` + }] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLW91dGxldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9yb3V0ZXItb3V0bGV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVExQyxNQUFNLE9BQU8scUJBQXFCOzs7WUFOakMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLFFBQVEsRUFBRTs7R0FFVDthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1yb3V0ZXItb3V0bGV0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlck91dGxldENvbXBvbmVudCB7fVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/core.module.js b/npm/packs/ng/dist/core/esm2015/lib/core.module.js new file mode 100644 index 0000000000..bc03c2139b --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/core.module.js @@ -0,0 +1,92 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CommonModule } from '@angular/common'; +import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; +import { APP_INITIALIZER, Injector, NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { RouterModule } from '@angular/router'; +import { NgxsRouterPluginModule } from '@ngxs/router-plugin'; +import { NgxsStoragePluginModule } from '@ngxs/storage-plugin'; +import { NgxsModule, NGXS_PLUGINS } from '@ngxs/store'; +import { DynamicLayoutComponent } from './components/dynamic-layout.component'; +import { RouterOutletComponent } from './components/router-outlet.component'; +import { PermissionDirective } from './directives/permission.directive'; +import { VisibilityDirective } from './directives/visibility.directive'; +import { ApiInterceptor } from './interceptors/api.interceptor'; +import { LocalizationPipe } from './pipes/localization.pipe'; +import { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config.plugin'; +import { ConfigState } from './states/config.state'; +import { ProfileState } from './states/profile.state'; +import { SessionState } from './states/session.state'; +import { getInitialData } from './utils/initial-utils'; +export class CoreModule { + /** + * @param {?=} options + * @return {?} + */ + static forRoot(options = (/** @type {?} */ ({}))) { + return { + ngModule: CoreModule, + providers: [ + { + provide: NGXS_PLUGINS, + useClass: ConfigPlugin, + multi: true, + }, + { + provide: NGXS_CONFIG_PLUGIN_OPTIONS, + useValue: options, + }, + { + provide: HTTP_INTERCEPTORS, + useClass: ApiInterceptor, + multi: true, + }, + { + provide: APP_INITIALIZER, + multi: true, + deps: [Injector], + useFactory: getInitialData, + }, + ], + }; + } +} +CoreModule.decorators = [ + { type: NgModule, args: [{ + imports: [ + NgxsModule.forFeature([ProfileState, SessionState, ConfigState]), + NgxsStoragePluginModule.forRoot({ key: 'SessionState' }), + NgxsRouterPluginModule.forRoot(), + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + RouterModule, + ], + declarations: [ + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + exports: [ + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + RouterModule, + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + providers: [LocalizationPipe], + entryComponents: [RouterOutletComponent, DynamicLayoutComponent], + },] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFtQ3ZELE1BQU0sT0FBTyxVQUFVOzs7OztJQUNyQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxtQkFBQSxFQUFFLEVBQVk7UUFDckMsT0FBTztZQUNMLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSwwQkFBMEI7b0JBQ25DLFFBQVEsRUFBRSxPQUFPO2lCQUNsQjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLEtBQUssRUFBRSxJQUFJO29CQUNYLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztvQkFDaEIsVUFBVSxFQUFFLGNBQWM7aUJBQzNCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBNURGLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7b0JBQ2hFLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsQ0FBQztvQkFDeEQsc0JBQXNCLENBQUMsT0FBTyxFQUFFO29CQUNoQyxZQUFZO29CQUNaLGdCQUFnQjtvQkFDaEIsV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLFlBQVk7aUJBQ2I7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHFCQUFxQjtvQkFDckIsc0JBQXNCO29CQUN0QixtQkFBbUI7b0JBQ25CLG1CQUFtQjtvQkFDbkIsZ0JBQWdCO2lCQUNqQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixnQkFBZ0I7b0JBQ2hCLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixZQUFZO29CQUNaLHFCQUFxQjtvQkFDckIsc0JBQXNCO29CQUN0QixtQkFBbUI7b0JBQ25CLG1CQUFtQjtvQkFDbkIsZ0JBQWdCO2lCQUNqQjtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsZUFBZSxFQUFFLENBQUMscUJBQXFCLEVBQUUsc0JBQXNCLENBQUM7YUFDakUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmd4c1JvdXRlclBsdWdpbk1vZHVsZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgTmd4c1N0b3JhZ2VQbHVnaW5Nb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yYWdlLXBsdWdpbic7XG5pbXBvcnQgeyBOZ3hzTW9kdWxlLCBOR1hTX1BMVUdJTlMgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3V0ZXJPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm91dGVyLW91dGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWaXNpYmlsaXR5RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Zpc2liaWxpdHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFwaUludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvYXBpLmludGVyY2VwdG9yJztcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4vbW9kZWxzL2NvbW1vbic7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9sb2NhbGl6YXRpb24ucGlwZSc7XG5pbXBvcnQgeyBDb25maWdQbHVnaW4sIE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TIH0gZnJvbSAnLi9wbHVnaW5zL2NvbmZpZy5wbHVnaW4nO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGUgfSBmcm9tICcuL3N0YXRlcy9jb25maWcuc3RhdGUnO1xuaW1wb3J0IHsgUHJvZmlsZVN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvcHJvZmlsZS5zdGF0ZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuL3N0YXRlcy9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IGdldEluaXRpYWxEYXRhIH0gZnJvbSAnLi91dGlscy9pbml0aWFsLXV0aWxzJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIE5neHNNb2R1bGUuZm9yRmVhdHVyZShbUHJvZmlsZVN0YXRlLCBTZXNzaW9uU3RhdGUsIENvbmZpZ1N0YXRlXSksXG4gICAgTmd4c1N0b3JhZ2VQbHVnaW5Nb2R1bGUuZm9yUm9vdCh7IGtleTogJ1Nlc3Npb25TdGF0ZScgfSksXG4gICAgTmd4c1JvdXRlclBsdWdpbk1vZHVsZS5mb3JSb290KCksXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFJvdXRlck91dGxldENvbXBvbmVudCxcbiAgICBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXG4gICAgVmlzaWJpbGl0eURpcmVjdGl2ZSxcbiAgICBMb2NhbGl6YXRpb25QaXBlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgUm91dGVyT3V0bGV0Q29tcG9uZW50LFxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcbiAgICBWaXNpYmlsaXR5RGlyZWN0aXZlLFxuICAgIExvY2FsaXphdGlvblBpcGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW0xvY2FsaXphdGlvblBpcGVdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtSb3V0ZXJPdXRsZXRDb21wb25lbnQsIER5bmFtaWNMYXlvdXRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3Qob3B0aW9ucyA9IHt9IGFzIEFCUC5Sb290KTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBDb3JlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBOR1hTX1BMVUdJTlMsXG4gICAgICAgICAgdXNlQ2xhc3M6IENvbmZpZ1BsdWdpbixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TLFxuICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgICAgdXNlQ2xhc3M6IEFwaUludGVyY2VwdG9yLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl0sXG4gICAgICAgICAgdXNlRmFjdG9yeTogZ2V0SW5pdGlhbERhdGEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/directives/index.js b/npm/packs/ng/dist/core/esm2015/lib/directives/index.js new file mode 100644 index 0000000000..f6882062ee --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/directives/index.js @@ -0,0 +1,7 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PermissionDirective } from './permission.directive'; +export { VisibilityDirective } from './visibility.directive'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsb0NBQWMsd0JBQXdCLENBQUM7QUFDdkMsb0NBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdmlzaWJpbGl0eS5kaXJlY3RpdmUnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/directives/permission.directive.js b/npm/packs/ng/dist/core/esm2015/lib/directives/permission.directive.js new file mode 100644 index 0000000000..159ff2d2a3 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/directives/permission.directive.js @@ -0,0 +1,77 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Directive, ElementRef, Input, Optional, Renderer2 } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import { takeUntilDestroy } from '../utils'; +export class PermissionDirective { + /** + * @param {?} elRef + * @param {?} renderer + * @param {?} store + */ + constructor(elRef, renderer, store) { + this.elRef = elRef; + this.renderer = renderer; + this.store = store; + } + /** + * @return {?} + */ + ngOnInit() { + if (this.condition) { + this.store + .select(ConfigState.getGrantedPolicy(this.condition)) + .pipe(takeUntilDestroy(this)) + .subscribe((/** + * @param {?} isGranted + * @return {?} + */ + isGranted => { + if (!isGranted) { + this.renderer.removeChild(((/** @type {?} */ (this.elRef.nativeElement))).parentElement, this.elRef.nativeElement); + } + })); + } + } + /** + * @return {?} + */ + ngOnDestroy() { } +} +PermissionDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpPermission]', + },] } +]; +/** @nocollapse */ +PermissionDirective.ctorParameters = () => [ + { type: ElementRef, decorators: [{ type: Optional }] }, + { type: Renderer2 }, + { type: Store } +]; +PermissionDirective.propDecorators = { + condition: [{ type: Input, args: ['abpPermission',] }] +}; +if (false) { + /** @type {?} */ + PermissionDirective.prototype.condition; + /** + * @type {?} + * @private + */ + PermissionDirective.prototype.elRef; + /** + * @type {?} + * @private + */ + PermissionDirective.prototype.renderer; + /** + * @type {?} + * @private + */ + PermissionDirective.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFLNUMsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7O0lBRzlCLFlBQWdDLEtBQWlCLEVBQVUsUUFBbUIsRUFBVSxLQUFZO1FBQXBFLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7SUFFeEcsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSztpQkFDUCxNQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDcEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM1QixTQUFTOzs7O1lBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQ3ZCLENBQUMsbUJBQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQWUsQ0FBQyxDQUFDLGFBQWEsRUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQ3pCLENBQUM7aUJBQ0g7WUFDSCxDQUFDLEVBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQzs7OztJQUVELFdBQVcsS0FBVSxDQUFDOzs7WUF4QnZCLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCOzs7O1lBUG1CLFVBQVUsdUJBV2YsUUFBUTtZQVg2QyxTQUFTO1lBQ3BFLEtBQUs7Ozt3QkFRWCxLQUFLLFNBQUMsZUFBZTs7OztJQUF0Qix3Q0FBMEM7Ozs7O0lBRTlCLG9DQUFxQzs7Ozs7SUFBRSx1Q0FBMkI7Ozs7O0lBQUUsb0NBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveSB9IGZyb20gJy4uL3V0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FicFBlcm1pc3Npb25dJyxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCdhYnBQZXJtaXNzaW9uJykgY29uZGl0aW9uOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb25kaXRpb24pIHtcbiAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgLnNlbGVjdChDb25maWdTdGF0ZS5nZXRHcmFudGVkUG9saWN5KHRoaXMuY29uZGl0aW9uKSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveSh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZShpc0dyYW50ZWQgPT4ge1xuICAgICAgICAgIGlmICghaXNHcmFudGVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKFxuICAgICAgICAgICAgICAodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50LFxuICAgICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/directives/visibility.directive.js b/npm/packs/ng/dist/core/esm2015/lib/directives/visibility.directive.js new file mode 100644 index 0000000000..87d5635fcf --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/directives/visibility.directive.js @@ -0,0 +1,103 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Directive, Input, Optional, ElementRef, Renderer2 } from '@angular/core'; +import { Subject } from 'rxjs'; +import snq from 'snq'; +export class VisibilityDirective { + /** + * @param {?} elRef + * @param {?} renderer + */ + constructor(elRef, renderer) { + this.elRef = elRef; + this.renderer = renderer; + this.completed$ = new Subject(); + } + /** + * @return {?} + */ + ngAfterViewInit() { + /** @type {?} */ + const observer = new MutationObserver((/** + * @param {?} mutations + * @return {?} + */ + mutations => { + mutations.forEach((/** + * @param {?} mutation + * @return {?} + */ + mutation => { + if (!mutation.target) + return; + /** @type {?} */ + const htmlNodes = snq((/** + * @return {?} + */ + () => Array.from(mutation.target.childNodes).filter((/** + * @param {?} node + * @return {?} + */ + node => node instanceof HTMLElement))), []); + if (!htmlNodes.length) { + this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement); + this.disconnect(); + } + else { + setTimeout((/** + * @return {?} + */ + () => { + this.disconnect(); + }), 0); + } + })); + })); + observer.observe(this.focusedElement, { + childList: true, + }); + this.completed$.subscribe((/** + * @return {?} + */ + () => observer.disconnect())); + } + /** + * @return {?} + */ + disconnect() { + this.completed$.next(); + this.completed$.complete(); + } +} +VisibilityDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpVisibility]', + },] } +]; +/** @nocollapse */ +VisibilityDirective.ctorParameters = () => [ + { type: ElementRef, decorators: [{ type: Optional }] }, + { type: Renderer2 } +]; +VisibilityDirective.propDecorators = { + focusedElement: [{ type: Input, args: ['abpVisibility',] }] +}; +if (false) { + /** @type {?} */ + VisibilityDirective.prototype.focusedElement; + /** @type {?} */ + VisibilityDirective.prototype.completed$; + /** + * @type {?} + * @private + */ + VisibilityDirective.prototype.elRef; + /** + * @type {?} + * @private + */ + VisibilityDirective.prototype.renderer; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy92aXNpYmlsaXR5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBS3RCLE1BQU0sT0FBTyxtQkFBbUI7Ozs7O0lBTTlCLFlBQWdDLEtBQWlCLEVBQVUsUUFBbUI7UUFBOUMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFGOUUsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFFNkMsQ0FBQzs7OztJQUVsRixlQUFlOztjQUNQLFFBQVEsR0FBRyxJQUFJLGdCQUFnQjs7OztRQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2hELFNBQVMsQ0FBQyxPQUFPOzs7O1lBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtvQkFBRSxPQUFPOztzQkFFdkIsU0FBUyxHQUFHLEdBQUc7OztnQkFDbkIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU07Ozs7Z0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksV0FBVyxFQUFDLEdBQ3hGLEVBQUUsQ0FDSDtnQkFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtvQkFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQzVGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztpQkFDbkI7cUJBQU07b0JBQ0wsVUFBVTs7O29CQUFDLEdBQUcsRUFBRTt3QkFDZCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ3BCLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztpQkFDUDtZQUNILENBQUMsRUFBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDO1FBRUYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3BDLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFDLENBQUM7SUFDekQsQ0FBQzs7OztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7O1lBMUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCOzs7O1lBTm9DLFVBQVUsdUJBYWhDLFFBQVE7WUFiMEIsU0FBUzs7OzZCQVF2RCxLQUFLLFNBQUMsZUFBZTs7OztJQUF0Qiw2Q0FDNEI7O0lBRTVCLHlDQUFvQzs7Ozs7SUFFeEIsb0NBQXFDOzs7OztJQUFFLHVDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9wdGlvbmFsLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FicFZpc2liaWxpdHldJyxcbn0pXG5leHBvcnQgY2xhc3MgVmlzaWJpbGl0eURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoJ2FicFZpc2liaWxpdHknKVxuICBmb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgY29tcGxldGVkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PiB7XG4gICAgICBtdXRhdGlvbnMuZm9yRWFjaChtdXRhdGlvbiA9PiB7XG4gICAgICAgIGlmICghbXV0YXRpb24udGFyZ2V0KSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaHRtbE5vZGVzID0gc25xKFxuICAgICAgICAgICgpID0+IEFycmF5LmZyb20obXV0YXRpb24udGFyZ2V0LmNoaWxkTm9kZXMpLmZpbHRlcihub2RlID0+IG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCksXG4gICAgICAgICAgW10sXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFodG1sTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5mb2N1c2VkRWxlbWVudCwge1xuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb21wbGV0ZWQkLnN1YnNjcmliZSgoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCkpO1xuICB9XG5cbiAgZGlzY29ubmVjdCgpIHtcbiAgICB0aGlzLmNvbXBsZXRlZCQubmV4dCgpO1xuICAgIHRoaXMuY29tcGxldGVkJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/enums/common.js b/npm/packs/ng/dist/core/esm2015/lib/enums/common.js new file mode 100644 index 0000000000..335239be34 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/enums/common.js @@ -0,0 +1,12 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @enum {string} */ +const eLayoutType = { + account: 'account', + application: 'application', + empty: 'empty', +}; +export { eLayoutType }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2VudW1zL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7SUFDRSxTQUFVLFNBQVM7SUFDbkIsYUFBYyxhQUFhO0lBQzNCLE9BQVEsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVMYXlvdXRUeXBlIHtcbiAgYWNjb3VudCA9ICdhY2NvdW50JyxcbiAgYXBwbGljYXRpb24gPSAnYXBwbGljYXRpb24nLFxuICBlbXB0eSA9ICdlbXB0eScsXG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/enums/index.js b/npm/packs/ng/dist/core/esm2015/lib/enums/index.js new file mode 100644 index 0000000000..f4377e4d9c --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/enums/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './common'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGVBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tb24nO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/guards/auth.guard.js b/npm/packs/ng/dist/core/esm2015/lib/guards/auth.guard.js new file mode 100644 index 0000000000..62b4f7a2b3 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/guards/auth.guard.js @@ -0,0 +1,59 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Navigate } from '@ngxs/router-plugin'; +import * as i0 from "@angular/core"; +import * as i1 from "angular-oauth2-oidc"; +import * as i2 from "@ngxs/store"; +export class AuthGuard { + /** + * @param {?} oauthService + * @param {?} store + */ + constructor(oauthService, store) { + this.oauthService = oauthService; + this.store = store; + } + /** + * @param {?} _ + * @param {?} state + * @return {?} + */ + canActivate(_, state) { + /** @type {?} */ + const hasValidAccessToken = this.oauthService.hasValidAccessToken(); + if (hasValidAccessToken) { + return hasValidAccessToken; + } + this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } })); + return false; + } +} +AuthGuard.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +AuthGuard.ctorParameters = () => [ + { type: OAuthService }, + { type: Store } +]; +/** @nocollapse */ AuthGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(i0.ɵɵinject(i1.OAuthService), i0.ɵɵinject(i2.Store)); }, token: AuthGuard, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + AuthGuard.prototype.oauthService; + /** + * @type {?} + * @private + */ + AuthGuard.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ndWFyZHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFLL0MsTUFBTSxPQUFPLFNBQVM7Ozs7O0lBQ3BCLFlBQW9CLFlBQTBCLEVBQVUsS0FBWTtRQUFoRCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDOzs7Ozs7SUFDeEUsV0FBVyxDQUFDLENBQXlCLEVBQUUsS0FBMEI7O2NBQ3pELG1CQUFtQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUU7UUFDbkUsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixPQUFPLG1CQUFtQixDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbkcsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7WUFkRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFOUSxZQUFZO1lBRFosS0FBSzs7Ozs7Ozs7SUFTQSxpQ0FBa0M7Ozs7O0lBQUUsMEJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb2F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuICBjYW5BY3RpdmF0ZShfOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgY29uc3QgaGFzVmFsaWRBY2Nlc3NUb2tlbiA9IHRoaXMub2F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcbiAgICBpZiAoaGFzVmFsaWRBY2Nlc3NUb2tlbikge1xuICAgICAgcmV0dXJuIGhhc1ZhbGlkQWNjZXNzVG9rZW47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGUoWycvYWNjb3VudC9sb2dpbiddLCBudWxsLCB7IHN0YXRlOiB7IHJlZGlyZWN0VXJsOiBzdGF0ZS51cmwgfSB9KSk7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/guards/index.js b/npm/packs/ng/dist/core/esm2015/lib/guards/index.js new file mode 100644 index 0000000000..54f4b94a2f --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/guards/index.js @@ -0,0 +1,7 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { AuthGuard } from './auth.guard'; +export { PermissionGuard } from './permission.guard'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZ3VhcmRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwwQkFBYyxjQUFjLENBQUM7QUFDN0IsZ0NBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dGguZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uLmd1YXJkJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/guards/permission.guard.js b/npm/packs/ng/dist/core/esm2015/lib/guards/permission.guard.js new file mode 100644 index 0000000000..6193247499 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/guards/permission.guard.js @@ -0,0 +1,44 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import * as i0 from "@angular/core"; +import * as i1 from "@ngxs/store"; +export class PermissionGuard { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @param {?} __0 + * @return {?} + */ + canActivate({ data }) { + /** @type {?} */ + const resource = (/** @type {?} */ (data.requiredPolicy)); + return this.store.select(ConfigState.getGrantedPolicy(resource)); + } +} +PermissionGuard.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +PermissionGuard.ctorParameters = () => [ + { type: Store } +]; +/** @nocollapse */ PermissionGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PermissionGuard_Factory() { return new PermissionGuard(i0.ɵɵinject(i1.Store)); }, token: PermissionGuard, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + PermissionGuard.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ndWFyZHMvcGVybWlzc2lvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUt4QyxNQUFNLE9BQU8sZUFBZTs7OztJQUMxQixZQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7O0lBRXBDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBMEI7O2NBQ3BDLFFBQVEsR0FBRyxtQkFBQSxJQUFJLENBQUMsY0FBYyxFQUFVO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7O1lBVEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBTlEsS0FBSzs7Ozs7Ozs7SUFRQSxnQ0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZ1N0YXRlIH0gZnJvbSAnLi4vc3RhdGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25HdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgY2FuQWN0aXZhdGUoeyBkYXRhIH06IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCByZXNvdXJjZSA9IGRhdGEucmVxdWlyZWRQb2xpY3kgYXMgc3RyaW5nO1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTdGF0ZS5nZXRHcmFudGVkUG9saWN5KHJlc291cmNlKSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/interceptors/api.interceptor.js b/npm/packs/ng/dist/core/esm2015/lib/interceptors/api.interceptor.js new file mode 100644 index 0000000000..067e0b929c --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/interceptors/api.interceptor.js @@ -0,0 +1,61 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Store } from '@ngxs/store'; +import { SessionState } from '../states'; +export class ApiInterceptor { + /** + * @param {?} oAuthService + * @param {?} store + */ + constructor(oAuthService, store) { + this.oAuthService = oAuthService; + this.store = store; + } + /** + * @param {?} request + * @param {?} next + * @return {?} + */ + intercept(request, next) { + /** @type {?} */ + const headers = (/** @type {?} */ ({})); + /** @type {?} */ + const token = this.oAuthService.getAccessToken(); + if (!request.headers.has('Authorization') && token) { + headers['Authorization'] = `Bearer ${token}`; + } + /** @type {?} */ + const lang = this.store.selectSnapshot(SessionState.getLanguage); + if (!request.headers.has('Accept-Language') && lang) { + headers['Accept-Language'] = lang; + } + return next.handle(request.clone({ + setHeaders: headers, + })); + } +} +ApiInterceptor.decorators = [ + { type: Injectable } +]; +/** @nocollapse */ +ApiInterceptor.ctorParameters = () => [ + { type: OAuthService }, + { type: Store } +]; +if (false) { + /** + * @type {?} + * @private + */ + ApiInterceptor.prototype.oAuthService; + /** + * @type {?} + * @private + */ + ApiInterceptor.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUd6QyxNQUFNLE9BQU8sY0FBYzs7Ozs7SUFDekIsWUFBb0IsWUFBMEIsRUFBVSxLQUFZO1FBQWhELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7OztJQUV4RSxTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjs7Y0FDOUMsT0FBTyxHQUFHLG1CQUFBLEVBQUUsRUFBTzs7Y0FDbkIsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFO1FBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLEVBQUU7WUFDbEQsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLFVBQVUsS0FBSyxFQUFFLENBQUM7U0FDOUM7O2NBRUssSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7UUFDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxFQUFFO1lBQ25ELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUNuQztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNaLFVBQVUsRUFBRSxPQUFPO1NBQ3BCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7O1lBckJGLFVBQVU7Ozs7WUFKRixZQUFZO1lBQ1osS0FBSzs7Ozs7OztJQUtBLHNDQUFrQzs7Ozs7SUFBRSwrQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwSW50ZXJjZXB0b3IsIEh0dHBIYW5kbGVyLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXBpSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9BdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge31cblxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcbiAgICBjb25zdCBoZWFkZXJzID0ge30gYXMgYW55O1xuICAgIGNvbnN0IHRva2VuID0gdGhpcy5vQXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKTtcbiAgICBpZiAoIXJlcXVlc3QuaGVhZGVycy5oYXMoJ0F1dGhvcml6YXRpb24nKSAmJiB0b2tlbikge1xuICAgICAgaGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gYEJlYXJlciAke3Rva2VufWA7XG4gICAgfVxuXG4gICAgY29uc3QgbGFuZyA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2Vzc2lvblN0YXRlLmdldExhbmd1YWdlKTtcbiAgICBpZiAoIXJlcXVlc3QuaGVhZGVycy5oYXMoJ0FjY2VwdC1MYW5ndWFnZScpICYmIGxhbmcpIHtcbiAgICAgIGhlYWRlcnNbJ0FjY2VwdC1MYW5ndWFnZSddID0gbGFuZztcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUoXG4gICAgICByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgc2V0SGVhZGVyczogaGVhZGVycyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/interceptors/index.js b/npm/packs/ng/dist/core/esm2015/lib/interceptors/index.js new file mode 100644 index 0000000000..f1671a034e --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/interceptors/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { ApiInterceptor } from './api.interceptor'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvaW50ZXJjZXB0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwrQkFBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBpLmludGVyY2VwdG9yJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/models/application-configuration.js b/npm/packs/ng/dist/core/esm2015/lib/models/application-configuration.js new file mode 100644 index 0000000000..a1bc510083 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/models/application-configuration.js @@ -0,0 +1,105 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var ApplicationConfiguration; +(function (ApplicationConfiguration) { + /** + * @record + */ + function Response() { } + ApplicationConfiguration.Response = Response; + if (false) { + /** @type {?} */ + Response.prototype.localization; + /** @type {?} */ + Response.prototype.auth; + /** @type {?} */ + Response.prototype.setting; + /** @type {?} */ + Response.prototype.currentUser; + /** @type {?} */ + Response.prototype.features; + } + /** + * @record + */ + function Localization() { } + ApplicationConfiguration.Localization = Localization; + if (false) { + /** @type {?} */ + Localization.prototype.values; + /** @type {?} */ + Localization.prototype.languages; + } + /** + * @record + */ + function LocalizationValue() { } + ApplicationConfiguration.LocalizationValue = LocalizationValue; + /** + * @record + */ + function Language() { } + ApplicationConfiguration.Language = Language; + if (false) { + /** @type {?} */ + Language.prototype.cultureName; + /** @type {?} */ + Language.prototype.uiCultureName; + /** @type {?} */ + Language.prototype.displayName; + /** @type {?} */ + Language.prototype.flagIcon; + } + /** + * @record + */ + function Auth() { } + ApplicationConfiguration.Auth = Auth; + if (false) { + /** @type {?} */ + Auth.prototype.policies; + /** @type {?} */ + Auth.prototype.grantedPolicies; + } + /** + * @record + */ + function Policy() { } + ApplicationConfiguration.Policy = Policy; + /** + * @record + */ + function Setting() { } + ApplicationConfiguration.Setting = Setting; + if (false) { + /** @type {?} */ + Setting.prototype.values; + } + /** + * @record + */ + function CurrentUser() { } + ApplicationConfiguration.CurrentUser = CurrentUser; + if (false) { + /** @type {?} */ + CurrentUser.prototype.isAuthenticated; + /** @type {?} */ + CurrentUser.prototype.id; + /** @type {?} */ + CurrentUser.prototype.tenantId; + /** @type {?} */ + CurrentUser.prototype.userName; + } + /** + * @record + */ + function Features() { } + ApplicationConfiguration.Features = Features; + if (false) { + /** @type {?} */ + Features.prototype.values; + } +})(ApplicationConfiguration || (ApplicationConfiguration = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxLQUFXLHdCQUF3QixDQWdEeEM7QUFoREQsV0FBaUIsd0JBQXdCOzs7O0lBQ3ZDLHVCQU1DOzs7O1FBTEMsZ0NBQTJCOztRQUMzQix3QkFBVzs7UUFDWCwyQkFBaUI7O1FBQ2pCLCtCQUF5Qjs7UUFDekIsNEJBQW1COzs7OztJQUdyQiwyQkFHQzs7OztRQUZDLDhCQUEwQjs7UUFDMUIsaUNBQXNCOzs7OztJQUd4QixnQ0FFQzs7Ozs7SUFFRCx1QkFLQzs7OztRQUpDLCtCQUFvQjs7UUFDcEIsaUNBQXNCOztRQUN0QiwrQkFBb0I7O1FBQ3BCLDRCQUFpQjs7Ozs7SUFHbkIsbUJBR0M7Ozs7UUFGQyx3QkFBaUI7O1FBQ2pCLCtCQUF3Qjs7Ozs7SUFHMUIscUJBRUM7Ozs7O0lBRUQsc0JBRUM7Ozs7UUFEQyx5QkFBOEQ7Ozs7O0lBR2hFLDBCQUtDOzs7O1FBSkMsc0NBQXlCOztRQUN6Qix5QkFBVzs7UUFDWCwrQkFBaUI7O1FBQ2pCLCtCQUFpQjs7Ozs7SUFHbkIsdUJBRUM7Ozs7UUFEQywwQkFBZ0I7O0FBRXBCLENBQUMsRUFoRGdCLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFnRHhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24ge1xuICBleHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlIHtcbiAgICBsb2NhbGl6YXRpb246IExvY2FsaXphdGlvbjtcbiAgICBhdXRoOiBBdXRoO1xuICAgIHNldHRpbmc6IFNldHRpbmc7XG4gICAgY3VycmVudFVzZXI6IEN1cnJlbnRVc2VyO1xuICAgIGZlYXR1cmVzOiBGZWF0dXJlcztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemF0aW9uIHtcbiAgICB2YWx1ZXM6IExvY2FsaXphdGlvblZhbHVlO1xuICAgIGxhbmd1YWdlczogTGFuZ3VhZ2VbXTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemF0aW9uVmFsdWUge1xuICAgIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIExhbmd1YWdlIHtcbiAgICBjdWx0dXJlTmFtZTogc3RyaW5nO1xuICAgIHVpQ3VsdHVyZU5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgIGZsYWdJY29uOiBzdHJpbmc7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEF1dGgge1xuICAgIHBvbGljaWVzOiBQb2xpY3k7XG4gICAgZ3JhbnRlZFBvbGljaWVzOiBQb2xpY3k7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFBvbGljeSB7XG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgU2V0dGluZyB7XG4gICAgdmFsdWVzOiB7IFtrZXk6IHN0cmluZ106ICdBYnAuTG9jYWxpemF0aW9uLkRlZmF1bHRMYW5ndWFnZScgfTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudFVzZXIge1xuICAgIGlzQXV0aGVudGljYXRlZDogYm9vbGVhbjtcbiAgICBpZDogc3RyaW5nO1xuICAgIHRlbmFudElkOiBzdHJpbmc7XG4gICAgdXNlck5hbWU6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZXMge1xuICAgIHZhbHVlczogU2V0dGluZztcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/models/common.js b/npm/packs/ng/dist/core/esm2015/lib/models/common.js new file mode 100644 index 0000000000..5f4bc9a50a --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/models/common.js @@ -0,0 +1,89 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var ABP; +(function (ABP) { + /** + * @record + */ + function Root() { } + ABP.Root = Root; + if (false) { + /** @type {?} */ + Root.prototype.environment; + /** @type {?} */ + Root.prototype.requirements; + } + /** + * @record + * @template T + */ + function PagedItemsResponse() { } + ABP.PagedItemsResponse = PagedItemsResponse; + if (false) { + /** @type {?} */ + PagedItemsResponse.prototype.items; + } + /** + * @record + */ + function PageQueryParams() { } + ABP.PageQueryParams = PageQueryParams; + if (false) { + /** @type {?|undefined} */ + PageQueryParams.prototype.filter; + /** @type {?|undefined} */ + PageQueryParams.prototype.sorting; + /** @type {?|undefined} */ + PageQueryParams.prototype.skipCount; + /** @type {?|undefined} */ + PageQueryParams.prototype.maxResultCount; + } + /** + * @record + */ + function Route() { } + ABP.Route = Route; + if (false) { + /** @type {?|undefined} */ + Route.prototype.children; + /** @type {?|undefined} */ + Route.prototype.invisible; + /** @type {?|undefined} */ + Route.prototype.layout; + /** @type {?} */ + Route.prototype.name; + /** @type {?|undefined} */ + Route.prototype.order; + /** @type {?|undefined} */ + Route.prototype.parentName; + /** @type {?} */ + Route.prototype.path; + /** @type {?|undefined} */ + Route.prototype.requiredPolicy; + } + /** + * @record + */ + function FullRoute() { } + ABP.FullRoute = FullRoute; + if (false) { + /** @type {?|undefined} */ + FullRoute.prototype.url; + /** @type {?|undefined} */ + FullRoute.prototype.wrapper; + } + /** + * @record + */ + function BasicItem() { } + ABP.BasicItem = BasicItem; + if (false) { + /** @type {?} */ + BasicItem.prototype.id; + /** @type {?} */ + BasicItem.prototype.name; + } +})(ABP || (ABP = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQU0sS0FBVyxHQUFHLENBeUNuQjtBQXpDRCxXQUFpQixHQUFHOzs7O0lBQ2xCLG1CQUdDOzs7O1FBRkMsMkJBQXlDOztRQUN6Qyw0QkFBa0M7Ozs7OztJQU9wQyxpQ0FFQzs7OztRQURDLG1DQUFXOzs7OztJQUdiLDhCQUtDOzs7O1FBSkMsaUNBQWdCOztRQUNoQixrQ0FBaUI7O1FBQ2pCLG9DQUFtQjs7UUFDbkIseUNBQXdCOzs7OztJQUcxQixvQkFTQzs7OztRQVJDLHlCQUFtQjs7UUFDbkIsMEJBQW9COztRQUNwQix1QkFBcUI7O1FBQ3JCLHFCQUFhOztRQUNiLHNCQUFlOztRQUNmLDJCQUFvQjs7UUFDcEIscUJBQWE7O1FBQ2IsK0JBQXdCOzs7OztJQUcxQix3QkFHQzs7OztRQUZDLHdCQUFhOztRQUNiLDRCQUFrQjs7Ozs7SUFHcEIsd0JBR0M7Ozs7UUFGQyx1QkFBVzs7UUFDWCx5QkFBYTs7QUFFakIsQ0FBQyxFQXpDZ0IsR0FBRyxLQUFILEdBQUcsUUF5Q25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgZUxheW91dFR5cGUgfSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQUJQIHtcbiAgZXhwb3J0IGludGVyZmFjZSBSb290IHtcbiAgICBlbnZpcm9ubWVudDogUGFydGlhbDxDb25maWcuRW52aXJvbm1lbnQ+O1xuICAgIHJlcXVpcmVtZW50czogQ29uZmlnLlJlcXVpcmVtZW50cztcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIFBhZ2VkUmVzcG9uc2U8VD4gPSB7XG4gICAgdG90YWxDb3VudDogbnVtYmVyO1xuICB9ICYgUGFnZWRJdGVtc1Jlc3BvbnNlPFQ+O1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUGFnZWRJdGVtc1Jlc3BvbnNlPFQ+IHtcbiAgICBpdGVtczogVFtdO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBQYWdlUXVlcnlQYXJhbXMge1xuICAgIGZpbHRlcj86IHN0cmluZztcbiAgICBzb3J0aW5nPzogc3RyaW5nO1xuICAgIHNraXBDb3VudD86IG51bWJlcjtcbiAgICBtYXhSZXN1bHRDb3VudD86IG51bWJlcjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUm91dGUge1xuICAgIGNoaWxkcmVuPzogUm91dGVbXTtcbiAgICBpbnZpc2libGU/OiBib29sZWFuO1xuICAgIGxheW91dD86IGVMYXlvdXRUeXBlO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBwYXJlbnROYW1lPzogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICByZXF1aXJlZFBvbGljeT86IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgRnVsbFJvdXRlIGV4dGVuZHMgUm91dGUge1xuICAgIHVybD86IHN0cmluZztcbiAgICB3cmFwcGVyPzogYm9vbGVhbjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQmFzaWNJdGVtIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/models/config.js b/npm/packs/ng/dist/core/esm2015/lib/models/config.js new file mode 100644 index 0000000000..d79d225037 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/models/config.js @@ -0,0 +1,40 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Config; +(function (Config) { + /** + * @record + */ + function State() { } + Config.State = State; + /** + * @record + */ + function Environment() { } + Config.Environment = Environment; + if (false) { + /** @type {?} */ + Environment.prototype.production; + /** @type {?} */ + Environment.prototype.oAuthConfig; + /** @type {?} */ + Environment.prototype.apis; + } + /** + * @record + */ + function Apis() { } + Config.Apis = Apis; + /** + * @record + */ + function Requirements() { } + Config.Requirements = Requirements; + if (false) { + /** @type {?} */ + Requirements.prototype.layouts; + } +})(Config || (Config = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQU0sS0FBVyxNQUFNLENBa0J0QjtBQWxCRCxXQUFpQixNQUFNOzs7O0lBQ3JCLG9CQUVDOzs7OztJQUVELDBCQUlDOzs7O1FBSEMsaUNBQW9COztRQUNwQixrQ0FBd0I7O1FBQ3hCLDJCQUFXOzs7OztJQUdiLG1CQUVDOzs7OztJQUVELDJCQUVDOzs7O1FBREMsK0JBQXFCOztBQUV6QixDQUFDLEVBbEJnQixNQUFNLEtBQU4sTUFBTSxRQWtCdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoQ29uZmlnIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29uZmlnIHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG4gICAgcHJvZHVjdGlvbjogYm9vbGVhbjtcbiAgICBvQXV0aENvbmZpZzogQXV0aENvbmZpZztcbiAgICBhcGlzOiBBcGlzO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBBcGlzIHtcbiAgICBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBSZXF1aXJlbWVudHMge1xuICAgIGxheW91dHM6IFR5cGU8YW55PltdO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/models/index.js b/npm/packs/ng/dist/core/esm2015/lib/models/index.js new file mode 100644 index 0000000000..e5a0580819 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/models/index.js @@ -0,0 +1,11 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './application-configuration'; +export {} from './common'; +export {} from './config'; +export { Rest } from './rest'; +export {} from './session'; +export {} from './profile'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxlQUFjLDZCQUE2QixDQUFDO0FBQzVDLGVBQWMsVUFBVSxDQUFDO0FBQ3pCLGVBQWMsVUFBVSxDQUFDO0FBQ3pCLHFCQUFjLFFBQVEsQ0FBQztBQUN2QixlQUFjLFdBQVcsQ0FBQztBQUMxQixlQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb24tY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXNzaW9uJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZmlsZSc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/models/profile.js b/npm/packs/ng/dist/core/esm2015/lib/models/profile.js new file mode 100644 index 0000000000..63711ddf03 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/models/profile.js @@ -0,0 +1,45 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Profile; +(function (Profile) { + /** + * @record + */ + function State() { } + Profile.State = State; + if (false) { + /** @type {?} */ + State.prototype.profile; + } + /** + * @record + */ + function Response() { } + Profile.Response = Response; + if (false) { + /** @type {?} */ + Response.prototype.userName; + /** @type {?} */ + Response.prototype.email; + /** @type {?} */ + Response.prototype.name; + /** @type {?} */ + Response.prototype.surname; + /** @type {?} */ + Response.prototype.phoneNumber; + } + /** + * @record + */ + function ChangePasswordRequest() { } + Profile.ChangePasswordRequest = ChangePasswordRequest; + if (false) { + /** @type {?} */ + ChangePasswordRequest.prototype.currentPassword; + /** @type {?} */ + ChangePasswordRequest.prototype.newPassword; + } +})(Profile || (Profile = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvcHJvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxLQUFXLE9BQU8sQ0FpQnZCO0FBakJELFdBQWlCLE9BQU87Ozs7SUFDdEIsb0JBRUM7Ozs7UUFEQyx3QkFBa0I7Ozs7O0lBR3BCLHVCQU1DOzs7O1FBTEMsNEJBQWlCOztRQUNqQix5QkFBYzs7UUFDZCx3QkFBYTs7UUFDYiwyQkFBZ0I7O1FBQ2hCLCtCQUFvQjs7Ozs7SUFHdEIsb0NBR0M7Ozs7UUFGQyxnREFBd0I7O1FBQ3hCLDRDQUFvQjs7QUFFeEIsQ0FBQyxFQWpCZ0IsT0FBTyxLQUFQLE9BQU8sUUFpQnZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBQcm9maWxlIHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gICAgcHJvZmlsZTogUmVzcG9uc2U7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlIHtcbiAgICB1c2VyTmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHN1cm5hbWU6IHN0cmluZztcbiAgICBwaG9uZU51bWJlcjogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VQYXNzd29yZFJlcXVlc3Qge1xuICAgIGN1cnJlbnRQYXNzd29yZDogc3RyaW5nO1xuICAgIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/models/rest.js b/npm/packs/ng/dist/core/esm2015/lib/models/rest.js new file mode 100644 index 0000000000..5ae10ff110 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/models/rest.js @@ -0,0 +1,43 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Rest; +(function (Rest) { + /** + * @record + */ + function Config() { } + Rest.Config = Config; + if (false) { + /** @type {?|undefined} */ + Config.prototype.throwErr; + /** @type {?|undefined} */ + Config.prototype.observe; + } + /** + * @record + * @template T + */ + function Request() { } + Rest.Request = Request; + if (false) { + /** @type {?|undefined} */ + Request.prototype.body; + /** @type {?|undefined} */ + Request.prototype.headers; + /** @type {?} */ + Request.prototype.method; + /** @type {?|undefined} */ + Request.prototype.params; + /** @type {?|undefined} */ + Request.prototype.reportProgress; + /** @type {?|undefined} */ + Request.prototype.responseType; + /** @type {?} */ + Request.prototype.url; + /** @type {?|undefined} */ + Request.prototype.withCredentials; + } +})(Rest || (Rest = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvcmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsTUFBTSxLQUFXLElBQUksQ0FxQ3BCO0FBckNELFdBQWlCLElBQUk7Ozs7SUFDbkIscUJBR0M7Ozs7UUFGQywwQkFBbUI7O1FBQ25CLHlCQUFrQjs7Ozs7O0lBZ0JwQixzQkFpQkM7Ozs7UUFoQkMsdUJBQVM7O1FBQ1QsMEJBSU07O1FBQ04seUJBQWU7O1FBQ2YseUJBSU07O1FBQ04saUNBQXlCOztRQUN6QiwrQkFBNEI7O1FBQzVCLHNCQUFZOztRQUNaLGtDQUEwQjs7QUFFOUIsQ0FBQyxFQXJDZ0IsSUFBSSxLQUFKLElBQUksUUFxQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgUmVzdCB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnIHtcbiAgICB0aHJvd0Vycj86IGJvb2xlYW47XG4gICAgb2JzZXJ2ZT86IE9ic2VydmU7XG4gIH1cblxuICBleHBvcnQgY29uc3QgZW51bSBPYnNlcnZlIHtcbiAgICBCb2R5ID0gJ2JvZHknLFxuICAgIEV2ZW50cyA9ICdldmVudHMnLFxuICAgIFJlc3BvbnNlID0gJ3Jlc3BvbnNlJyxcbiAgfVxuXG4gIGV4cG9ydCBjb25zdCBlbnVtIFJlc3BvbnNlVHlwZSB7XG4gICAgQXJyYXlCdWZmZXIgPSAnYXJyYXlidWZmZXInLFxuICAgIEJsb2IgPSAnYmxvYicsXG4gICAgSlNPTiA9ICdqc29uJyxcbiAgICBUZXh0ID0gJ3RleHQnLFxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0PFQ+IHtcbiAgICBib2R5PzogVDtcbiAgICBoZWFkZXJzPzpcbiAgICAgIHwgSHR0cEhlYWRlcnNcbiAgICAgIHwge1xuICAgICAgICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgICB9O1xuICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIHBhcmFtcz86XG4gICAgICB8IEh0dHBQYXJhbXNcbiAgICAgIHwge1xuICAgICAgICAgIFtwYXJhbTogc3RyaW5nXTogYW55O1xuICAgICAgICB9O1xuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgICByZXNwb25zZVR5cGU/OiBSZXNwb25zZVR5cGU7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/models/session.js b/npm/packs/ng/dist/core/esm2015/lib/models/session.js new file mode 100644 index 0000000000..900196e920 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/models/session.js @@ -0,0 +1,17 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Session; +(function (Session) { + /** + * @record + */ + function State() { } + Session.State = State; + if (false) { + /** @type {?} */ + State.prototype.language; + } +})(Session || (Session = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxLQUFXLE9BQU8sQ0FJdkI7QUFKRCxXQUFpQixPQUFPOzs7O0lBQ3RCLG9CQUVDOzs7O1FBREMseUJBQWlCOztBQUVyQixDQUFDLEVBSmdCLE9BQU8sS0FBUCxPQUFPLFFBSXZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBTZXNzaW9uIHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gICAgbGFuZ3VhZ2U6IHN0cmluZztcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/pipes/localization.pipe.js b/npm/packs/ng/dist/core/esm2015/lib/pipes/localization.pipe.js new file mode 100644 index 0000000000..ee0673bbab --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/pipes/localization.pipe.js @@ -0,0 +1,68 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Pipe } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import { takeUntilDestroy } from '../utils'; +import { distinctUntilChanged } from 'rxjs/operators'; +export class LocalizationPipe { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + this.initialized = false; + } + /** + * @param {?} value + * @param {...?} interpolateParams + * @return {?} + */ + transform(value, ...interpolateParams) { + if (!this.initialized) { + this.initialized = true; + this.store + .select(ConfigState.getCopy(value, ...interpolateParams.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val])), []))) + .pipe(takeUntilDestroy(this), distinctUntilChanged()) + .subscribe((/** + * @param {?} copy + * @return {?} + */ + copy => (this.value = copy))); + } + return this.value; + } + /** + * @return {?} + */ + ngOnDestroy() { } +} +LocalizationPipe.decorators = [ + { type: Pipe, args: [{ + name: 'abpLocalization', + pure: false, + },] } +]; +/** @nocollapse */ +LocalizationPipe.ctorParameters = () => [ + { type: Store } +]; +if (false) { + /** @type {?} */ + LocalizationPipe.prototype.initialized; + /** @type {?} */ + LocalizationPipe.prototype.value; + /** + * @type {?} + * @private + */ + LocalizationPipe.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvcGlwZXMvbG9jYWxpemF0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNdEQsTUFBTSxPQUFPLGdCQUFnQjs7OztJQUszQixZQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztRQUpoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztJQUlNLENBQUM7Ozs7OztJQUVwQyxTQUFTLENBQUMsS0FBYSxFQUFFLEdBQUcsaUJBQTJCO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBRXhCLElBQUksQ0FBQyxLQUFLO2lCQUNQLE1BQU0sQ0FDTCxXQUFXLENBQUMsT0FBTyxDQUNqQixLQUFLLEVBQ0wsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNOzs7OztZQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRSxFQUFFLENBQUMsQ0FDdkcsQ0FDRjtpQkFDQSxJQUFJLENBQ0gsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQ3RCLG9CQUFvQixFQUFFLENBQ3ZCO2lCQUNBLFNBQVM7Ozs7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBQyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7Ozs7SUFFRCxXQUFXLEtBQUksQ0FBQzs7O1lBaENqQixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsSUFBSSxFQUFFLEtBQUs7YUFDWjs7OztZQVJRLEtBQUs7Ozs7SUFVWix1Q0FBNkI7O0lBRTdCLGlDQUFjOzs7OztJQUVGLGlDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FicExvY2FsaXphdGlvbicsXG4gIHB1cmU6IGZhbHNlLCAvLyByZXF1aXJlZCB0byB1cGRhdGUgdGhlIHZhbHVlXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBpbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcsIC4uLmludGVycG9sYXRlUGFyYW1zOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAuc2VsZWN0KFxuICAgICAgICAgIENvbmZpZ1N0YXRlLmdldENvcHkoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIC4uLmludGVycG9sYXRlUGFyYW1zLnJlZHVjZSgoYWNjLCB2YWwpID0+IChBcnJheS5pc0FycmF5KHZhbCkgPyBbLi4uYWNjLCAuLi52YWxdIDogWy4uLmFjYywgdmFsXSksIFtdKSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3kodGhpcyksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKGNvcHkgPT4gKHRoaXMudmFsdWUgPSBjb3B5KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHt9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/plugins/config.plugin.js b/npm/packs/ng/dist/core/esm2015/lib/plugins/config.plugin.js new file mode 100644 index 0000000000..e44693e4d1 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/plugins/config.plugin.js @@ -0,0 +1,163 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable, Inject, InjectionToken } from '@angular/core'; +import { setValue, actionMatcher, InitState, UpdateState } from '@ngxs/store'; +import { Router } from '@angular/router'; +import snq from 'snq'; +import { organizeRoutes } from '../utils/route-utils'; +/** @type {?} */ +export const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS'); +export class ConfigPlugin { + /** + * @param {?} options + * @param {?} router + */ + constructor(options, router) { + this.options = options; + this.router = router; + this.initialized = false; + } + /** + * @param {?} state + * @param {?} event + * @param {?} next + * @return {?} + */ + handle(state, event, next) { + /** @type {?} */ + const matches = actionMatcher(event); + /** @type {?} */ + const isInitAction = matches(InitState) || matches(UpdateState); + // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []); + if (isInitAction && !this.initialized) { + let { routes, wrappers } = transformRoutes(this.router.config); + routes = organizeRoutes(routes, wrappers); + state = setValue(state, 'ConfigState', Object.assign({}, (state.ConfigState && Object.assign({}, state.ConfigState)), this.options, { routes })); + this.initialized = true; + } + return next(state, event); + } +} +ConfigPlugin.decorators = [ + { type: Injectable } +]; +/** @nocollapse */ +ConfigPlugin.ctorParameters = () => [ + { type: undefined, decorators: [{ type: Inject, args: [NGXS_CONFIG_PLUGIN_OPTIONS,] }] }, + { type: Router } +]; +if (false) { + /** + * @type {?} + * @private + */ + ConfigPlugin.prototype.initialized; + /** + * @type {?} + * @private + */ + ConfigPlugin.prototype.options; + /** + * @type {?} + * @private + */ + ConfigPlugin.prototype.router; +} +/** + * @param {?=} routes + * @param {?=} wrappers + * @return {?} + */ +function transformRoutes(routes = [], wrappers = []) { + /** @type {?} */ + const abpRoutes = routes + .filter((/** + * @param {?} route + * @return {?} + */ + route => { + return snq((/** + * @return {?} + */ + () => route.data.routes.find((/** + * @param {?} r + * @return {?} + */ + r => r.path === route.path))), false); + })) + .reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => [...acc, ...val.data.routes]), []); + wrappers = abpRoutes.filter((/** + * @param {?} ar + * @return {?} + */ + ar => ar.wrapper)); + /** @type {?} */ + const transformed = (/** @type {?} */ ([])); + routes + .filter((/** + * @param {?} route + * @return {?} + */ + route => route.component || route.loadChildren)) + .forEach((/** + * @param {?} route + * @return {?} + */ + route => { + /** @type {?} */ + const abpPackage = abpRoutes.find((/** + * @param {?} abp + * @return {?} + */ + abp => abp.path.toLowerCase() === route.path.toLowerCase())); + const { length } = transformed; + if (abpPackage) { + transformed.push(abpPackage); + } + if (transformed.length === length) { + transformed.push((/** @type {?} */ ({ + path: route.path, + name: snq((/** + * @return {?} + */ + () => route.data.routes.name), route.path), + children: route.data.routes.children || [], + }))); + } + })); + return { routes: setUrls(transformed), wrappers }; +} +/** + * @param {?} routes + * @param {?=} parentUrl + * @return {?} + */ +function setUrls(routes, parentUrl) { + if (parentUrl) { + // this if block using for only recursive call + return routes.map((/** + * @param {?} route + * @return {?} + */ + route => (Object.assign({}, route, { url: `${parentUrl}/${route.path}` }, (route.children && + route.children.length && { + children: setUrls(route.children, `${parentUrl}/${route.path}`), + }))))); + } + return routes.map((/** + * @param {?} route + * @return {?} + */ + route => (Object.assign({}, route, { url: `/${route.path}` }, (route.children && + route.children.length && { + children: setUrls(route.children, `/${route.path}`), + }))))); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9wbHVnaW5zL2NvbmZpZy5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQWMsUUFBUSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUM1RyxPQUFPLEVBQUUsTUFBTSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQ3RCLE9BQU8sRUFBNkIsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRWpGLE1BQU0sT0FBTywwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQztBQUcxRixNQUFNLE9BQU8sWUFBWTs7Ozs7SUFHdkIsWUFBd0QsT0FBaUIsRUFBVSxNQUFjO1FBQXpDLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRnpGLGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBRStELENBQUM7Ozs7Ozs7SUFFckcsTUFBTSxDQUFDLEtBQVUsRUFBRSxLQUFVLEVBQUUsSUFBc0I7O2NBQzdDLE9BQU8sR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDOztjQUM5QixZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFFL0QsNkdBQTZHO1FBQzdHLElBQUksWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDakMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzlELE1BQU0sR0FBRyxjQUFjLENBQUMs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QVMsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQzlCLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDaEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUk7WUFDdkIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNoRSxDQUFDLEVBQ0osRUFBQyxDQUFDO0tBQ0w7SUFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHOzs7O0lBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxtQkFDdEIsS0FBSyxJQUNSLEdBQUcsRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFDbEIsQ0FBQyxLQUFLLENBQUMsUUFBUTtRQUNoQixLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSTtRQUN2QixRQUFRLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDcEQsQ0FBQyxFQUNKLEVBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIEluamVjdGlvblRva2VuLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hzUGx1Z2luLCBzZXRWYWx1ZSwgYWN0aW9uTWF0Y2hlciwgSW5pdFN0YXRlLCBVcGRhdGVTdGF0ZSwgTmd4c05leHRQbHVnaW5GbiB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFJvdXRlciwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQgeyBzZXRDaGlsZFJvdXRlLCBzb3J0Um91dGVzLCBvcmdhbml6ZVJvdXRlcyB9IGZyb20gJy4uL3V0aWxzL3JvdXRlLXV0aWxzJztcblxuZXhwb3J0IGNvbnN0IE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKCdOR1hTX0NPTkZJR19QTFVHSU5fT1BUSU9OUycpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29uZmlnUGx1Z2luIGltcGxlbWVudHMgTmd4c1BsdWdpbiB7XG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TKSBwcml2YXRlIG9wdGlvbnM6IEFCUC5Sb290LCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7fVxuXG4gIGhhbmRsZShzdGF0ZTogYW55LCBldmVudDogYW55LCBuZXh0OiBOZ3hzTmV4dFBsdWdpbkZuKSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IGFjdGlvbk1hdGNoZXIoZXZlbnQpO1xuICAgIGNvbnN0IGlzSW5pdEFjdGlvbiA9IG1hdGNoZXMoSW5pdFN0YXRlKSB8fCBtYXRjaGVzKFVwZGF0ZVN0YXRlKTtcblxuICAgIC8vIGNvbnN0IGxheW91dHMgPSBzbnEoKCkgPT4gdGhpcy5vcHRpb25zLnJlcXVpcmVtZW50cy5sYXlvdXRzLmZpbHRlcihsYXlvdXQgPT4gbGF5b3V0IGluc3RhbmNlb2YgVHlwZSksIFtdKTtcbiAgICBpZiAoaXNJbml0QWN0aW9uICYmICF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICBsZXQgeyByb3V0ZXMsIHdyYXBwZXJzIH0gPSB0cmFuc2Zvcm1Sb3V0ZXModGhpcy5yb3V0ZXIuY29uZmlnKTtcbiAgICAgIHJvdXRlcyA9IG9yZ2FuaXplUm91dGVzKHJvdXRlcywgd3JhcHBlcnMpO1xuXG4gICAgICBzdGF0ZSA9IHNldFZhbHVlKHN0YXRlLCAnQ29uZmlnU3RhdGUnLCB7XG4gICAgICAgIC4uLihzdGF0ZS5Db25maWdTdGF0ZSAmJiB7IC4uLnN0YXRlLkNvbmZpZ1N0YXRlIH0pLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAgIHJvdXRlcyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dChzdGF0ZSwgZXZlbnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVJvdXRlcyhyb3V0ZXM6IFJvdXRlcyA9IFtdLCB3cmFwcGVyczogQUJQLkZ1bGxSb3V0ZVtdID0gW10pOiBhbnkge1xuICBjb25zdCBhYnBSb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSA9IHJvdXRlc1xuICAgIC5maWx0ZXIocm91dGUgPT4ge1xuICAgICAgcmV0dXJuIHNucSgoKSA9PiByb3V0ZS5kYXRhLnJvdXRlcy5maW5kKHIgPT4gci5wYXRoID09PSByb3V0ZS5wYXRoKSwgZmFsc2UpO1xuICAgIH0pXG4gICAgLnJlZHVjZSgoYWNjLCB2YWwpID0+IFsuLi5hY2MsIC4uLnZhbC5kYXRhLnJvdXRlc10sIFtdKTtcblxuICB3cmFwcGVycyA9IGFicFJvdXRlcy5maWx0ZXIoYXIgPT4gYXIud3JhcHBlcik7XG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gW10gYXMgQUJQLkZ1bGxSb3V0ZVtdO1xuICByb3V0ZXNcbiAgICAuZmlsdGVyKHJvdXRlID0+IHJvdXRlLmNvbXBvbmVudCB8fCByb3V0ZS5sb2FkQ2hpbGRyZW4pXG4gICAgLmZvckVhY2gocm91dGUgPT4ge1xuICAgICAgY29uc3QgYWJwUGFja2FnZSA9IGFicFJvdXRlcy5maW5kKGFicCA9PiBhYnAucGF0aC50b0xvd2VyQ2FzZSgpID09PSByb3V0ZS5wYXRoLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgY29uc3QgeyBsZW5ndGggfSA9IHRyYW5zZm9ybWVkO1xuXG4gICAgICBpZiAoYWJwUGFja2FnZSkge1xuICAgICAgICB0cmFuc2Zvcm1lZC5wdXNoKGFicFBhY2thZ2UpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHJhbnNmb3JtZWQubGVuZ3RoID09PSBsZW5ndGgpIHtcbiAgICAgICAgdHJhbnNmb3JtZWQucHVzaCh7XG4gICAgICAgICAgcGF0aDogcm91dGUucGF0aCxcbiAgICAgICAgICBuYW1lOiBzbnEoKCkgPT4gcm91dGUuZGF0YS5yb3V0ZXMubmFtZSwgcm91dGUucGF0aCksXG4gICAgICAgICAgY2hpbGRyZW46IHJvdXRlLmRhdGEucm91dGVzLmNoaWxkcmVuIHx8IFtdLFxuICAgICAgICB9IGFzIEFCUC5GdWxsUm91dGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIHJldHVybiB7IHJvdXRlczogc2V0VXJscyh0cmFuc2Zvcm1lZCksIHdyYXBwZXJzIH07XG59XG5cbmZ1bmN0aW9uIHNldFVybHMocm91dGVzOiBBQlAuRnVsbFJvdXRlW10sIHBhcmVudFVybD86IHN0cmluZyk6IEFCUC5GdWxsUm91dGVbXSB7XG4gIGlmIChwYXJlbnRVcmwpIHtcbiAgICAvLyB0aGlzIGlmIGJsb2NrIHVzaW5nIGZvciBvbmx5IHJlY3Vyc2l2ZSBjYWxsXG5cbiAgICByZXR1cm4gcm91dGVzLm1hcChyb3V0ZSA9PiAoe1xuICAgICAgLi4ucm91dGUsXG4gICAgICB1cmw6IGAke3BhcmVudFVybH0vJHtyb3V0ZS5wYXRofWAsXG4gICAgICAuLi4ocm91dGUuY2hpbGRyZW4gJiZcbiAgICAgICAgcm91dGUuY2hpbGRyZW4ubGVuZ3RoICYmIHtcbiAgICAgICAgICBjaGlsZHJlbjogc2V0VXJscyhyb3V0ZS5jaGlsZHJlbiwgYCR7cGFyZW50VXJsfS8ke3JvdXRlLnBhdGh9YCksXG4gICAgICAgIH0pLFxuICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiByb3V0ZXMubWFwKHJvdXRlID0+ICh7XG4gICAgLi4ucm91dGUsXG4gICAgdXJsOiBgLyR7cm91dGUucGF0aH1gLFxuICAgIC4uLihyb3V0ZS5jaGlsZHJlbiAmJlxuICAgICAgcm91dGUuY2hpbGRyZW4ubGVuZ3RoICYmIHtcbiAgICAgICAgY2hpbGRyZW46IHNldFVybHMocm91dGUuY2hpbGRyZW4sIGAvJHtyb3V0ZS5wYXRofWApLFxuICAgICAgfSksXG4gIH0pKTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/plugins/index.js b/npm/packs/ng/dist/core/esm2015/lib/plugins/index.js new file mode 100644 index 0000000000..451fc91aad --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/plugins/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { NGXS_CONFIG_PLUGIN_OPTIONS, ConfigPlugin } from './config.plugin'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvcGx1Z2lucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEseURBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpZy5wbHVnaW4nO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/services/application-configuration.service.js b/npm/packs/ng/dist/core/esm2015/lib/services/application-configuration.service.js new file mode 100644 index 0000000000..94bbf80f66 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/services/application-configuration.service.js @@ -0,0 +1,45 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { RestService } from './rest.service'; +import * as i0 from "@angular/core"; +import * as i1 from "./rest.service"; +export class ApplicationConfigurationService { + /** + * @param {?} rest + */ + constructor(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + getConfiguration() { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/abp/application-configuration', + }; + return this.rest.request(request); + } +} +ApplicationConfigurationService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +ApplicationConfigurationService.ctorParameters = () => [ + { type: RestService } +]; +/** @nocollapse */ ApplicationConfigurationService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ApplicationConfigurationService_Factory() { return new ApplicationConfigurationService(i0.ɵɵinject(i1.RestService)); }, token: ApplicationConfigurationService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + ApplicationConfigurationService.prototype.rest; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUs3QyxNQUFNLE9BQU8sK0JBQStCOzs7O0lBQzFDLFlBQW9CLElBQWlCO1FBQWpCLFNBQUksR0FBSixJQUFJLENBQWE7SUFBRyxDQUFDOzs7O0lBRXpDLGdCQUFnQjs7Y0FDUixPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLG9DQUFvQztTQUMxQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQTBDLE9BQU8sQ0FBQyxDQUFDO0lBQzdFLENBQUM7OztZQWJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQUpRLFdBQVc7Ozs7Ozs7O0lBTU4sK0NBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Db25maWd1cmF0aW9uLCBSZXN0IH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXN0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25Db25maWd1cmF0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdDogUmVzdFNlcnZpY2UpIHt9XG5cbiAgZ2V0Q29uZmlndXJhdGlvbigpOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbi5SZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6ICcvYXBpL2FicC9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9uJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PG51bGwsIEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbi5SZXNwb25zZT4ocmVxdWVzdCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/services/config.service.js b/npm/packs/ng/dist/core/esm2015/lib/services/config.service.js new file mode 100644 index 0000000000..c3ff83f9c5 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/services/config.service.js @@ -0,0 +1,62 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import * as i0 from "@angular/core"; +import * as i1 from "@ngxs/store"; +export class ConfigService { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @return {?} + */ + getAll() { + return this.store.selectSnapshot(ConfigState.getAll); + } + /** + * @param {?} key + * @return {?} + */ + getOne(key) { + return this.store.selectSnapshot(ConfigState.getOne(key)); + } + /** + * @param {?} keys + * @return {?} + */ + getDeep(keys) { + return this.store.selectSnapshot(ConfigState.getDeep(keys)); + } + /** + * @param {?} key + * @return {?} + */ + getSetting(key) { + return this.store.selectSnapshot(ConfigState.getSetting(key)); + } +} +ConfigService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +ConfigService.ctorParameters = () => [ + { type: Store } +]; +/** @nocollapse */ ConfigService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1.Store)); }, token: ConfigService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + ConfigService.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFLeEMsTUFBTSxPQUFPLGFBQWE7Ozs7SUFDeEIsWUFBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDOzs7O0lBRXBDLE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Ozs7O0lBRUQsT0FBTyxDQUFDLElBQXVCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7Ozs7O0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7O1lBcEJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQUxRLEtBQUs7Ozs7Ozs7O0lBT0EsOEJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb25maWdTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgZ2V0QWxsKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KENvbmZpZ1N0YXRlLmdldEFsbCk7XG4gIH1cblxuICBnZXRPbmUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChDb25maWdTdGF0ZS5nZXRPbmUoa2V5KSk7XG4gIH1cblxuICBnZXREZWVwKGtleXM6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoQ29uZmlnU3RhdGUuZ2V0RGVlcChrZXlzKSk7XG4gIH1cblxuICBnZXRTZXR0aW5nKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoQ29uZmlnU3RhdGUuZ2V0U2V0dGluZyhrZXkpKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/services/index.js b/npm/packs/ng/dist/core/esm2015/lib/services/index.js new file mode 100644 index 0000000000..b7113ca26f --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/services/index.js @@ -0,0 +1,11 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { ApplicationConfigurationService } from './application-configuration.service'; +export { ConfigService } from './config.service'; +export { LazyLoadService } from './lazy-load.service'; +export { LocalizationService } from './localization.service'; +export { ProfileService } from './profile.service'; +export { RestService } from './rest.service'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGdEQUFjLHFDQUFxQyxDQUFDO0FBQ3BELDhCQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGdDQUFjLHFCQUFxQixDQUFDO0FBQ3BDLG9DQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLCtCQUFjLG1CQUFtQixDQUFDO0FBQ2xDLDRCQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xhenktbG9hZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9maWxlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXN0LnNlcnZpY2UnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/services/lazy-load.service.js b/npm/packs/ng/dist/core/esm2015/lib/services/lazy-load.service.js new file mode 100644 index 0000000000..16eb66f6a4 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/services/lazy-load.service.js @@ -0,0 +1,73 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { ReplaySubject } from 'rxjs'; +import { uuid } from '../utils'; +import * as i0 from "@angular/core"; +export class LazyLoadService { + constructor() { + this.loadedLibraries = {}; + } + /** + * @param {?} url + * @param {?} type + * @param {?=} content + * @param {?=} targetQuery + * @param {?=} position + * @return {?} + */ + load(url, type, content = '', targetQuery = 'body', position = 'afterend') { + if (!url && !content) + return; + /** @type {?} */ + const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid(); + if (this.loadedLibraries[key]) { + return this.loadedLibraries[key].asObservable(); + } + this.loadedLibraries[key] = new ReplaySubject(); + /** @type {?} */ + let library; + if (type === 'script') { + library = document.createElement('script'); + library.type = 'text/javascript'; + if (url) { + ((/** @type {?} */ (library))).src = url; + } + ((/** @type {?} */ (library))).text = content; + } + else if (url) { + library = document.createElement('link'); + library.type = 'text/css'; + ((/** @type {?} */ (library))).rel = 'stylesheet'; + if (url) { + ((/** @type {?} */ (library))).href = url; + } + } + else { + library = document.createElement('style'); + ((/** @type {?} */ (library))).textContent = content; + } + library.onload = (/** + * @return {?} + */ + () => { + this.loadedLibraries[key].next(); + this.loadedLibraries[key].complete(); + }); + document.querySelector(targetQuery).insertAdjacentElement(position, library); + return this.loadedLibraries[key].asObservable(); + } +} +LazyLoadService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ LazyLoadService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LazyLoadService_Factory() { return new LazyLoadService(); }, token: LazyLoadService, providedIn: "root" }); +if (false) { + /** @type {?} */ + LazyLoadService.prototype.loadedLibraries; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbGF6eS1sb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUtoQyxNQUFNLE9BQU8sZUFBZTtJQUg1QjtRQUlFLG9CQUFlLEdBQTJDLEVBQUUsQ0FBQztLQWlEOUQ7Ozs7Ozs7OztJQS9DQyxJQUFJLENBQ0YsR0FBVyxFQUNYLElBQXdCLEVBQ3hCLFVBQWtCLEVBQUUsRUFDcEIsY0FBc0IsTUFBTSxFQUM1QixXQUEyQixVQUFVO1FBRXJDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTzs7Y0FDdkIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7UUFFOUQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNqRDtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQzs7WUFFNUMsT0FBTztRQUNYLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNyQixPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxPQUFPLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1lBQ2pDLElBQUksR0FBRyxFQUFFO2dCQUNQLENBQUMsbUJBQUEsT0FBTyxFQUFxQixDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQzthQUMxQztZQUVELENBQUMsbUJBQUEsT0FBTyxFQUFxQixDQUFDLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztTQUMvQzthQUFNLElBQUksR0FBRyxFQUFFO1lBQ2QsT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsT0FBTyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7WUFDMUIsQ0FBQyxtQkFBQSxPQUFPLEVBQW1CLENBQUMsQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDO1lBRWhELElBQUksR0FBRyxFQUFFO2dCQUNQLENBQUMsbUJBQUEsT0FBTyxFQUFtQixDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQzthQUN6QztTQUNGO2FBQU07WUFDTCxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxDQUFDLG1CQUFBLE9BQU8sRUFBb0IsQ0FBQyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7U0FDckQ7UUFFRCxPQUFPLENBQUMsTUFBTTs7O1FBQUcsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QyxDQUFDLENBQUEsQ0FBQztRQUVGLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTdFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRCxDQUFDOzs7WUFwREYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7OztJQUVDLDBDQUE2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdXVpZCB9IGZyb20gJy4uL3V0aWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExhenlMb2FkU2VydmljZSB7XG4gIGxvYWRlZExpYnJhcmllczogeyBbdXJsOiBzdHJpbmddOiBSZXBsYXlTdWJqZWN0PHZvaWQ+IH0gPSB7fTtcblxuICBsb2FkKFxuICAgIHVybDogc3RyaW5nLFxuICAgIHR5cGU6ICdzY3JpcHQnIHwgJ3N0eWxlJyxcbiAgICBjb250ZW50OiBzdHJpbmcgPSAnJyxcbiAgICB0YXJnZXRRdWVyeTogc3RyaW5nID0gJ2JvZHknLFxuICAgIHBvc2l0aW9uOiBJbnNlcnRQb3NpdGlvbiA9ICdhZnRlcmVuZCcsXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGlmICghdXJsICYmICFjb250ZW50KSByZXR1cm47XG4gICAgY29uc3Qga2V5ID0gdXJsID8gdXJsLnNsaWNlKHVybC5sYXN0SW5kZXhPZignLycpICsgMSkgOiB1dWlkKCk7XG5cbiAgICBpZiAodGhpcy5sb2FkZWRMaWJyYXJpZXNba2V5XSkge1xuICAgICAgcmV0dXJuIHRoaXMubG9hZGVkTGlicmFyaWVzW2tleV0uYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkZWRMaWJyYXJpZXNba2V5XSA9IG5ldyBSZXBsYXlTdWJqZWN0KCk7XG5cbiAgICBsZXQgbGlicmFyeTtcbiAgICBpZiAodHlwZSA9PT0gJ3NjcmlwdCcpIHtcbiAgICAgIGxpYnJhcnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgIGxpYnJhcnkudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgaWYgKHVybCkge1xuICAgICAgICAobGlicmFyeSBhcyBIVE1MU2NyaXB0RWxlbWVudCkuc3JjID0gdXJsO1xuICAgICAgfVxuXG4gICAgICAobGlicmFyeSBhcyBIVE1MU2NyaXB0RWxlbWVudCkudGV4dCA9IGNvbnRlbnQ7XG4gICAgfSBlbHNlIGlmICh1cmwpIHtcbiAgICAgIGxpYnJhcnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICBsaWJyYXJ5LnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgKGxpYnJhcnkgYXMgSFRNTExpbmtFbGVtZW50KS5yZWwgPSAnc3R5bGVzaGVldCc7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgKGxpYnJhcnkgYXMgSFRNTExpbmtFbGVtZW50KS5ocmVmID0gdXJsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsaWJyYXJ5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIChsaWJyYXJ5IGFzIEhUTUxTdHlsZUVsZW1lbnQpLnRleHRDb250ZW50ID0gY29udGVudDtcbiAgICB9XG5cbiAgICBsaWJyYXJ5Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIHRoaXMubG9hZGVkTGlicmFyaWVzW2tleV0ubmV4dCgpO1xuICAgICAgdGhpcy5sb2FkZWRMaWJyYXJpZXNba2V5XS5jb21wbGV0ZSgpO1xuICAgIH07XG5cbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRhcmdldFF1ZXJ5KS5pbnNlcnRBZGphY2VudEVsZW1lbnQocG9zaXRpb24sIGxpYnJhcnkpO1xuXG4gICAgcmV0dXJuIHRoaXMubG9hZGVkTGlicmFyaWVzW2tleV0uYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/services/localization.service.js b/npm/packs/ng/dist/core/esm2015/lib/services/localization.service.js new file mode 100644 index 0000000000..ec0c7969f2 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/services/localization.service.js @@ -0,0 +1,49 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import * as i0 from "@angular/core"; +import * as i1 from "@ngxs/store"; +export class LocalizationService { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + get(keys, ...interpolateParams) { + return this.store.select(ConfigState.getCopy(keys, ...interpolateParams)); + } + /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + instant(keys, ...interpolateParams) { + return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams)); + } +} +LocalizationService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } +]; +/** @nocollapse */ +LocalizationService.ctorParameters = () => [ + { type: Store } +]; +/** @nocollapse */ LocalizationService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(i0.ɵɵinject(i1.Store)); }, token: LocalizationService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + LocalizationService.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFJeEMsTUFBTSxPQUFPLG1CQUFtQjs7OztJQUM5QixZQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7OztJQUVwQyxHQUFHLENBQUMsSUFBWSxFQUFFLEdBQUcsaUJBQTJCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7Ozs7O0lBRUQsT0FBTyxDQUFDLElBQVksRUFBRSxHQUFHLGlCQUEyQjtRQUNsRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7OztZQVZGLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7Ozs7WUFKekIsS0FBSzs7Ozs7Ozs7SUFNQSxvQ0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IENvbmZpZ1N0YXRlIH0gZnJvbSAnLi4vc3RhdGVzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgZ2V0KGtleXM6IHN0cmluZywgLi4uaW50ZXJwb2xhdGVQYXJhbXM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU3RhdGUuZ2V0Q29weShrZXlzLCAuLi5pbnRlcnBvbGF0ZVBhcmFtcykpO1xuICB9XG5cbiAgaW5zdGFudChrZXlzOiBzdHJpbmcsIC4uLmludGVycG9sYXRlUGFyYW1zOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoQ29uZmlnU3RhdGUuZ2V0Q29weShrZXlzLCAuLi5pbnRlcnBvbGF0ZVBhcmFtcykpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/services/profile.service.js b/npm/packs/ng/dist/core/esm2015/lib/services/profile.service.js new file mode 100644 index 0000000000..60d5f2441a --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/services/profile.service.js @@ -0,0 +1,71 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { RestService } from './rest.service'; +import * as i0 from "@angular/core"; +import * as i1 from "./rest.service"; +export class ProfileService { + /** + * @param {?} rest + */ + constructor(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + get() { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/identity/profile', + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + update(body) { + /** @type {?} */ + const request = { + method: 'PUT', + url: '/api/identity/profile', + body, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + changePassword(body) { + /** @type {?} */ + const request = { + method: 'POST', + url: '/api/identity/profile/changePassword', + body, + }; + return this.rest.request(request); + } +} +ProfileService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +ProfileService.ctorParameters = () => [ + { type: RestService } +]; +/** @nocollapse */ ProfileService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ProfileService_Factory() { return new ProfileService(i0.ɵɵinject(i1.RestService)); }, token: ProfileService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + ProfileService.prototype.rest; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3Byb2ZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU03QyxNQUFNLE9BQU8sY0FBYzs7OztJQUN6QixZQUFvQixJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO0lBQUcsQ0FBQzs7OztJQUV6QyxHQUFHOztjQUNLLE9BQU8sR0FBdUI7WUFDbEMsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsdUJBQXVCO1NBQzdCO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBeUIsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7Ozs7SUFFRCxNQUFNLENBQUMsSUFBc0I7O2NBQ3JCLE9BQU8sR0FBbUM7WUFDOUMsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsdUJBQXVCO1lBQzVCLElBQUk7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQXFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Ozs7O0lBRUQsY0FBYyxDQUFDLElBQW1DOztjQUMxQyxPQUFPLEdBQWdEO1lBQzNELE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLHNDQUFzQztZQUMzQyxJQUFJO1NBQ0w7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFzQyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDOzs7WUFqQ0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBTFEsV0FBVzs7Ozs7Ozs7SUFPTiw4QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4vcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2ZpbGUsIFJlc3QgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3Q6IFJlc3RTZXJ2aWNlKSB7fVxuXG4gIGdldCgpOiBPYnNlcnZhYmxlPFByb2ZpbGUuUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8bnVsbD4gPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiAnL2FwaS9pZGVudGl0eS9wcm9maWxlJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PG51bGwsIFByb2ZpbGUuUmVzcG9uc2U+KHJlcXVlc3QpO1xuICB9XG5cbiAgdXBkYXRlKGJvZHk6IFByb2ZpbGUuUmVzcG9uc2UpOiBPYnNlcnZhYmxlPFByb2ZpbGUuUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8UHJvZmlsZS5SZXNwb25zZT4gPSB7XG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgdXJsOiAnL2FwaS9pZGVudGl0eS9wcm9maWxlJyxcbiAgICAgIGJvZHksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxQcm9maWxlLlJlc3BvbnNlLCBQcm9maWxlLlJlc3BvbnNlPihyZXF1ZXN0KTtcbiAgfVxuXG4gIGNoYW5nZVBhc3N3b3JkKGJvZHk6IFByb2ZpbGUuQ2hhbmdlUGFzc3dvcmRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PFByb2ZpbGUuQ2hhbmdlUGFzc3dvcmRSZXF1ZXN0PiA9IHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgdXJsOiAnL2FwaS9pZGVudGl0eS9wcm9maWxlL2NoYW5nZVBhc3N3b3JkJyxcbiAgICAgIGJvZHksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxQcm9maWxlLkNoYW5nZVBhc3N3b3JkUmVxdWVzdCwgbnVsbD4ocmVxdWVzdCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/services/rest.service.js b/npm/packs/ng/dist/core/esm2015/lib/services/rest.service.js new file mode 100644 index 0000000000..bce18259b2 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/services/rest.service.js @@ -0,0 +1,81 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { NEVER, throwError } from 'rxjs'; +import { catchError, take } from 'rxjs/operators'; +import { ConfigState } from '../states'; +import { RestOccurError } from '../actions'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common/http"; +import * as i2 from "@ngxs/store"; +export class RestService { + /** + * @param {?} http + * @param {?} store + */ + constructor(http, store) { + this.http = http; + this.store = store; + } + /** + * @param {?} err + * @return {?} + */ + handleError(err) { + this.store.dispatch(new RestOccurError(err)); + console.error(err); + return NEVER; + } + /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + request(request, config = {}, api) { + const { observe = "body" /* Body */, throwErr } = config; + /** @type {?} */ + const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; + const { method } = request, options = tslib_1.__rest(request, ["method"]); + return this.http.request(method, url, (/** @type {?} */ (Object.assign({ observe }, options)))).pipe(observe === "body" /* Body */ ? take(1) : null, catchError((/** + * @param {?} err + * @return {?} + */ + err => { + if (throwErr) { + return throwError(err); + } + return this.handleError(err); + }))); + } +} +RestService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +RestService.ctorParameters = () => [ + { type: HttpClient }, + { type: Store } +]; +/** @nocollapse */ RestService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function RestService_Factory() { return new RestService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.Store)); }, token: RestService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + RestService.prototype.http; + /** + * @type {?} + * @private + */ + RestService.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3Jlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLEtBQUssRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7QUFLNUMsTUFBTSxPQUFPLFdBQVc7Ozs7O0lBQ3RCLFlBQW9CLElBQWdCLEVBQVUsS0FBWTtRQUF0QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7O0lBRTlELFdBQVcsQ0FBQyxHQUFRO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7Ozs7O0lBRUQsT0FBTyxDQUFPLE9BQXlDLEVBQUUsU0FBc0IsRUFBRSxFQUFFLEdBQVk7Y0FDdkYsRUFBRSxPQUFPLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU07O2NBQ2xELEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUc7Y0FDN0UsRUFBRSxNQUFNLEtBQWlCLE9BQU8sRUFBdEIsNkNBQVU7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBSSxNQUFNLEVBQUUsR0FBRyxFQUFFLG1DQUFFLE9BQU8sSUFBSyxPQUFPLEdBQVMsQ0FBQyxDQUFDLElBQUksQ0FDM0UsT0FBTyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQzlDLFVBQVU7Ozs7UUFBQyxHQUFHLENBQUMsRUFBRTtZQUNmLElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hCO1lBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsRUFBQyxDQUNILENBQUM7SUFDSixDQUFDOzs7WUExQkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBWFEsVUFBVTtZQUVWLEtBQUs7Ozs7Ozs7O0lBV0EsMkJBQXdCOzs7OztJQUFFLDRCQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBORVZFUiwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJlc3QgfSBmcm9tICcuLi9tb2RlbHMvcmVzdCc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcyc7XG5pbXBvcnQgeyBSZXN0T2NjdXJFcnJvciB9IGZyb20gJy4uL2FjdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVzdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIGhhbmRsZUVycm9yKGVycjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBSZXN0T2NjdXJFcnJvcihlcnIpKTtcbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgcmV0dXJuIE5FVkVSO1xuICB9XG5cbiAgcmVxdWVzdDxULCBSPihyZXF1ZXN0OiBIdHRwUmVxdWVzdDxUPiB8IFJlc3QuUmVxdWVzdDxUPiwgY29uZmlnOiBSZXN0LkNvbmZpZyA9IHt9LCBhcGk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFI+IHtcbiAgICBjb25zdCB7IG9ic2VydmUgPSBSZXN0Lk9ic2VydmUuQm9keSwgdGhyb3dFcnIgfSA9IGNvbmZpZztcbiAgICBjb25zdCB1cmwgPSBhcGkgfHwgdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChDb25maWdTdGF0ZS5nZXRBcGlVcmwoKSkgKyByZXF1ZXN0LnVybDtcbiAgICBjb25zdCB7IG1ldGhvZCwgLi4ub3B0aW9ucyB9ID0gcmVxdWVzdDtcbiAgICByZXR1cm4gdGhpcy5odHRwLnJlcXVlc3Q8VD4obWV0aG9kLCB1cmwsIHsgb2JzZXJ2ZSwgLi4ub3B0aW9ucyB9IGFzIGFueSkucGlwZShcbiAgICAgIG9ic2VydmUgPT09IFJlc3QuT2JzZXJ2ZS5Cb2R5ID8gdGFrZSgxKSA6IG51bGwsXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIGlmICh0aHJvd0Vycikge1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihlcnIpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/states/config.state.js b/npm/packs/ng/dist/core/esm2015/lib/states/config.state.js new file mode 100644 index 0000000000..87f2c9fd73 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/states/config.state.js @@ -0,0 +1,330 @@ +import * as tslib_1 from "tslib"; +var ConfigState_1; +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { State, Selector, createSelector, Action, Store } from '@ngxs/store'; +import { ConfigGetAppConfiguration, PatchRouteByName } from '../actions/config.actions'; +import { ApplicationConfigurationService } from '../services/application-configuration.service'; +import { tap, switchMap } from 'rxjs/operators'; +import snq from 'snq'; +import { SessionSetLanguage } from '../actions'; +import { SessionState } from './session.state'; +import { of } from 'rxjs'; +import { organizeRoutes } from '../utils/route-utils'; +let ConfigState = ConfigState_1 = class ConfigState { + /** + * @param {?} appConfigurationService + * @param {?} store + */ + constructor(appConfigurationService, store) { + this.appConfigurationService = appConfigurationService; + this.store = store; + } + /** + * @param {?} state + * @return {?} + */ + static getAll(state) { + return state; + } + /** + * @param {?} key + * @return {?} + */ + static getOne(key) { + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return state[key]; + })); + return selector; + } + /** + * @param {?} keys + * @return {?} + */ + static getDeep(keys) { + if (typeof keys === 'string') { + keys = keys.split('.'); + } + if (!Array.isArray(keys)) { + throw new Error('The argument must be a dot string or an string array.'); + } + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return ((/** @type {?} */ (keys))).reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => { + if (acc) { + return acc[val]; + } + return undefined; + }), state); + })); + return selector; + } + /** + * @param {?=} key + * @return {?} + */ + static getApiUrl(key) { + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return state.environment.apis[key || 'default'].url; + })); + return selector; + } + /** + * @param {?} key + * @return {?} + */ + static getSetting(key) { + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return snq((/** + * @return {?} + */ + () => state.setting.values[key])); + })); + return selector; + } + /** + * @param {?=} condition + * @return {?} + */ + static getGrantedPolicy(condition = '') { + /** @type {?} */ + const keys = condition + .replace(/\(|\)|\!|\s/g, '') + .split(/\|\||&&/) + .filter((/** + * @param {?} key + * @return {?} + */ + key => key)); + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + if (!keys.length) + return true; + /** @type {?} */ + const getPolicy = (/** + * @param {?} key + * @return {?} + */ + key => snq((/** + * @return {?} + */ + () => state.auth.grantedPolicies[key]), false)); + if (keys.length > 1) { + keys.forEach((/** + * @param {?} key + * @return {?} + */ + key => { + /** @type {?} */ + const value = getPolicy(key); + condition = condition.replace(key, value); + })); + // tslint:disable-next-line: no-eval + return eval(`!!${condition}`); + } + return getPolicy(condition); + })); + return selector; + } + /** + * @param {?} key + * @param {...?} interpolateParams + * @return {?} + */ + static getCopy(key, ...interpolateParams) { + /** @type {?} */ + const keys = (/** @type {?} */ (key.split('::'))); + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + const { defaultResourceName } = state.environment.localization; + if (keys[0] === '') { + if (!defaultResourceName) { + throw new Error(`Please check your environment. May you forget set defaultResourceName? + Here is the example: + { production: false, + localization: { + defaultResourceName: 'MyProjectName' + } + }`); + } + keys[0] = snq((/** + * @return {?} + */ + () => defaultResourceName)); + } + /** @type {?} */ + let copy = keys.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => { + if (acc) { + return acc[val]; + } + return undefined; + }), state.localization.values); + if (copy && interpolateParams && interpolateParams.length) { + interpolateParams.forEach((/** + * @param {?} param + * @param {?} index + * @return {?} + */ + (param, index) => { + copy = copy.replace(`'{${index}}'`, param); + })); + } + return copy || key; + })); + return selector; + } + /** + * @param {?} __0 + * @return {?} + */ + addData({ patchState, dispatch }) { + return this.appConfigurationService.getConfiguration().pipe(tap((/** + * @param {?} configuration + * @return {?} + */ + configuration => patchState(Object.assign({}, configuration)))), switchMap((/** + * @param {?} configuration + * @return {?} + */ + configuration => this.store.selectSnapshot(SessionState.getLanguage) + ? of(null) + : dispatch(new SessionSetLanguage(snq((/** + * @return {?} + */ + () => configuration.setting.values['Abp.Localization.DefaultLanguage']))))))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + patchRoute({ patchState, getState }, { name, newValue }) { + /** @type {?} */ + let routes = getState().routes; + /** @type {?} */ + const index = routes.findIndex((/** + * @param {?} route + * @return {?} + */ + route => route.name === name)); + routes = patchRouteDeep(routes, name, newValue); + return patchState({ + routes, + }); + } +}; +tslib_1.__decorate([ + Action(ConfigGetAppConfiguration), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) +], ConfigState.prototype, "addData", null); +tslib_1.__decorate([ + Action(PatchRouteByName), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, PatchRouteByName]), + tslib_1.__metadata("design:returntype", void 0) +], ConfigState.prototype, "patchRoute", null); +tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) +], ConfigState, "getAll", null); +ConfigState = ConfigState_1 = tslib_1.__decorate([ + State({ + name: 'ConfigState', + defaults: (/** @type {?} */ ({})), + }), + tslib_1.__metadata("design:paramtypes", [ApplicationConfigurationService, Store]) +], ConfigState); +export { ConfigState }; +if (false) { + /** + * @type {?} + * @private + */ + ConfigState.prototype.appConfigurationService; + /** + * @type {?} + * @private + */ + ConfigState.prototype.store; +} +/** + * @param {?} routes + * @param {?} name + * @param {?} newValue + * @param {?=} parentUrl + * @return {?} + */ +function patchRouteDeep(routes, name, newValue, parentUrl = null) { + routes = routes.map((/** + * @param {?} route + * @return {?} + */ + route => { + if (route.name === name) { + if (newValue.path) { + newValue.url = `${parentUrl}/${newValue.path}`; + } + if (newValue.children && newValue.children.length) { + newValue.children = newValue.children.map((/** + * @param {?} child + * @return {?} + */ + child => (Object.assign({}, child, { url: `${parentUrl}/${route.path}/${child.path}` })))); + } + return Object.assign({}, route, newValue); + } + else if (route.children && route.children.length) { + route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path); + } + return route; + })); + if (parentUrl) { + // recursive block + return routes; + } + return organizeRoutes(routes); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9jb25maWcuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQTZCLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0lBTXBFLFdBQVcseUJBQVgsV0FBVzs7Ozs7SUF3SXRCLFlBQW9CLHVCQUF3RCxFQUFVLEtBQVk7UUFBOUUsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFpQztRQUFVLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDOzs7OztJQXRJdEcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFtQjtRQUMvQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7O0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFXOztjQUNqQixRQUFRLEdBQUcsY0FBYyxDQUM3QixDQUFDLGFBQVcsQ0FBQzs7OztRQUNiLFVBQVMsS0FBbUI7WUFDMUIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENB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QUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEc7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsRUFBQyxDQUFDO0lBRUgsSUFBSSxTQUFTLEVBQUU7UUFDYixrQkFBa0I7UUFDbEIsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUVELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZSwgU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yLCBBY3Rpb24sIFN0YXRlQ29udGV4dCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBDb25maWcsIEFCUCB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBDb25maWdHZXRBcHBDb25maWd1cmF0aW9uLCBQYXRjaFJvdXRlQnlOYW1lIH0gZnJvbSAnLi4vYWN0aW9ucy9jb25maWcuYWN0aW9ucyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHRhcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHNucSBmcm9tICdzbnEnO1xuaW1wb3J0IHsgU2Vzc2lvblNldExhbmd1YWdlIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNldENoaWxkUm91dGUsIHNvcnRSb3V0ZXMsIG9yZ2FuaXplUm91dGVzIH0gZnJvbSAnLi4vdXRpbHMvcm91dGUtdXRpbHMnO1xuXG5AU3RhdGU8Q29uZmlnLlN0YXRlPih7XG4gIG5hbWU6ICdDb25maWdTdGF0ZScsXG4gIGRlZmF1bHRzOiB7fSBhcyBDb25maWcuU3RhdGUsXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ1N0YXRlIHtcbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldEFsbChzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgc3RhdGljIGdldE9uZShrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSkge1xuICAgICAgICByZXR1cm4gc3RhdGVba2V5XTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXREZWVwKGtleXM6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBrZXlzID09PSAnc3RyaW5nJykge1xuICAgICAga2V5cyA9IGtleXMuc3BsaXQoJy4nKTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoa2V5cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBkb3Qgc3RyaW5nIG9yIGFuIHN0cmluZyBhcnJheS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIChrZXlzIGFzIHN0cmluZ1tdKS5yZWR1Y2UoKGFjYywgdmFsKSA9PiB7XG4gICAgICAgICAgaWYgKGFjYykge1xuICAgICAgICAgICAgcmV0dXJuIGFjY1t2YWxdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0sIHN0YXRlKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBcGlVcmwoa2V5Pzogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlLmVudmlyb25tZW50LmFwaXNba2V5IHx8ICdkZWZhdWx0J10udXJsO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHNlbGVjdG9yO1xuICB9XG5cbiAgc3RhdGljIGdldFNldHRpbmcoa2V5OiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIHNucSgoKSA9PiBzdGF0ZS5zZXR0aW5nLnZhbHVlc1trZXldKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRHcmFudGVkUG9saWN5KGNvbmRpdGlvbjogc3RyaW5nID0gJycpIHtcbiAgICBjb25zdCBrZXlzID0gY29uZGl0aW9uXG4gICAgICAucmVwbGFjZSgvXFwofFxcKXxcXCF8XFxzL2csICcnKVxuICAgICAgLnNwbGl0KC9cXHxcXHx8JiYvKVxuICAgICAgLmZpbHRlcihrZXkgPT4ga2V5KTtcblxuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWtleXMubGVuZ3RoKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBjb25zdCBnZXRQb2xpY3kgPSBrZXkgPT4gc25xKCgpID0+IHN0YXRlLmF1dGguZ3JhbnRlZFBvbGljaWVzW2tleV0sIGZhbHNlKTtcbiAgICAgICAgaWYgKGtleXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRQb2xpY3koa2V5KTtcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5yZXBsYWNlKGtleSwgdmFsdWUpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1ldmFsXG4gICAgICAgICAgcmV0dXJuIGV2YWwoYCEhJHtjb25kaXRpb259YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2V0UG9saWN5KGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gc2VsZWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29weShrZXk6IHN0cmluZywgLi4uaW50ZXJwb2xhdGVQYXJhbXM6IHN0cmluZ1tdKSB7XG4gICAgY29uc3Qga2V5cyA9IGtleS5zcGxpdCgnOjonKSBhcyBzdHJpbmdbXTtcbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgY29uc3QgeyBkZWZhdWx0UmVzb3VyY2VOYW1lIH0gPSBzdGF0ZS5lbnZpcm9ubWVudC5sb2NhbGl6YXRpb247XG4gICAgICAgIGlmIChrZXlzWzBdID09PSAnJykge1xuICAgICAgICAgIGlmICghZGVmYXVsdFJlc291cmNlTmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgUGxlYXNlIGNoZWNrIHlvdXIgZW52aXJvbm1lbnQuIE1heSB5b3UgZm9yZ2V0IHNldCBkZWZhdWx0UmVzb3VyY2VOYW1lPyBcbiAgICAgICAgICAgICAgSGVyZSBpcyB0aGUgZXhhbXBsZTpcbiAgICAgICAgICAgICAgIHsgcHJvZHVjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgIGxvY2FsaXphdGlvbjoge1xuICAgICAgICAgICAgICAgICAgIGRlZmF1bHRSZXNvdXJjZU5hbWU6ICdNeVByb2plY3ROYW1lJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGtleXNbMF0gPSBzbnEoKCkgPT4gZGVmYXVsdFJlc291cmNlTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29weSA9IGtleXMucmVkdWNlKChhY2MsIHZhbCkgPT4ge1xuICAgICAgICAgIGlmIChhY2MpIHtcbiAgICAgICAgICAgIHJldHVybiBhY2NbdmFsXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LCBzdGF0ZS5sb2NhbGl6YXRpb24udmFsdWVzKTtcblxuICAgICAgICBpZiAoY29weSAmJiBpbnRlcnBvbGF0ZVBhcmFtcyAmJiBpbnRlcnBvbGF0ZVBhcmFtcy5sZW5ndGgpIHtcbiAgICAgICAgICBpbnRlcnBvbGF0ZVBhcmFtcy5mb3JFYWNoKChwYXJhbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvcHkgPSBjb3B5LnJlcGxhY2UoYCd7JHtpbmRleH19J2AsIHBhcmFtKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb3B5IHx8IGtleTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwQ29uZmlndXJhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIEBBY3Rpb24oQ29uZmlnR2V0QXBwQ29uZmlndXJhdGlvbilcbiAgYWRkRGF0YSh7IHBhdGNoU3RhdGUsIGRpc3BhdGNoIH06IFN0YXRlQ29udGV4dDxDb25maWcuU3RhdGU+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0Q29uZmlndXJhdGlvbigpLnBpcGUoXG4gICAgICB0YXAoY29uZmlndXJhdGlvbiA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICAuLi5jb25maWd1cmF0aW9uLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzd2l0Y2hNYXAoY29uZmlndXJhdGlvbiA9PlxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSlcbiAgICAgICAgICA/IG9mKG51bGwpXG4gICAgICAgICAgOiBkaXNwYXRjaChcbiAgICAgICAgICAgICAgbmV3IFNlc3Npb25TZXRMYW5ndWFnZShzbnEoKCkgPT4gY29uZmlndXJhdGlvbi5zZXR0aW5nLnZhbHVlc1snQWJwLkxvY2FsaXphdGlvbi5EZWZhdWx0TGFuZ3VhZ2UnXSkpLFxuICAgICAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oUGF0Y2hSb3V0ZUJ5TmFtZSlcbiAgcGF0Y2hSb3V0ZSh7IHBhdGNoU3RhdGUsIGdldFN0YXRlIH06IFN0YXRlQ29udGV4dDxDb25maWcuU3RhdGU+LCB7IG5hbWUsIG5ld1ZhbHVlIH06IFBhdGNoUm91dGVCeU5hbWUpIHtcbiAgICBsZXQgcm91dGVzOiBBQlAuRnVsbFJvdXRlW10gPSBnZXRTdGF0ZSgpLnJvdXRlcztcblxuICAgIGNvbnN0IGluZGV4ID0gcm91dGVzLmZpbmRJbmRleChyb3V0ZSA9PiByb3V0ZS5uYW1lID09PSBuYW1lKTtcblxuICAgIHJvdXRlcyA9IHBhdGNoUm91dGVEZWVwKHJvdXRlcywgbmFtZSwgbmV3VmFsdWUpO1xuXG4gICAgcmV0dXJuIHBhdGNoU3RhdGUoe1xuICAgICAgcm91dGVzLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhdGNoUm91dGVEZWVwKFxuICByb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSxcbiAgbmFtZTogc3RyaW5nLFxuICBuZXdWYWx1ZTogUGFydGlhbDxBQlAuRnVsbFJvdXRlPixcbiAgcGFyZW50VXJsOiBzdHJpbmcgPSBudWxsLFxuKTogQUJQLkZ1bGxSb3V0ZVtdIHtcbiAgcm91dGVzID0gcm91dGVzLm1hcChyb3V0ZSA9PiB7XG4gICAgaWYgKHJvdXRlLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgIGlmIChuZXdWYWx1ZS5wYXRoKSB7XG4gICAgICAgIG5ld1ZhbHVlLnVybCA9IGAke3BhcmVudFVybH0vJHtuZXdWYWx1ZS5wYXRofWA7XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdWYWx1ZS5jaGlsZHJlbiAmJiBuZXdWYWx1ZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgbmV3VmFsdWUuY2hpbGRyZW4gPSBuZXdWYWx1ZS5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gKHtcbiAgICAgICAgICAuLi5jaGlsZCxcbiAgICAgICAgICB1cmw6IGAke3BhcmVudFVybH0vJHtyb3V0ZS5wYXRofS8ke2NoaWxkLnBhdGh9YCxcbiAgICAgICAgfSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4geyAuLi5yb3V0ZSwgLi4ubmV3VmFsdWUgfTtcbiAgICB9IGVsc2UgaWYgKHJvdXRlLmNoaWxkcmVuICYmIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgcm91dGUuY2hpbGRyZW4gPSBwYXRjaFJvdXRlRGVlcChyb3V0ZS5jaGlsZHJlbiwgbmFtZSwgbmV3VmFsdWUsIChwYXJlbnRVcmwgfHwgJy8nKSArIHJvdXRlLnBhdGgpO1xuICAgIH1cblxuICAgIHJldHVybiByb3V0ZTtcbiAgfSk7XG5cbiAgaWYgKHBhcmVudFVybCkge1xuICAgIC8vIHJlY3Vyc2l2ZSBibG9ja1xuICAgIHJldHVybiByb3V0ZXM7XG4gIH1cblxuICByZXR1cm4gb3JnYW5pemVSb3V0ZXMocm91dGVzKTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/states/index.js b/npm/packs/ng/dist/core/esm2015/lib/states/index.js new file mode 100644 index 0000000000..8b1dd2e36a --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/states/index.js @@ -0,0 +1,8 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { ProfileState } from './profile.state'; +export { ConfigState } from './config.state'; +export { SessionState } from './session.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc3RhdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2QkFBYyxpQkFBaUIsQ0FBQztBQUNoQyw0QkFBYyxnQkFBZ0IsQ0FBQztBQUMvQiw2QkFBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZmlsZS5zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy5zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24uc3RhdGUnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/states/profile.state.js b/npm/packs/ng/dist/core/esm2015/lib/states/profile.state.js new file mode 100644 index 0000000000..9ee53298a7 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/states/profile.state.js @@ -0,0 +1,99 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { State, Action, Selector } from '@ngxs/store'; +import { ProfileGet, ProfileChangePassword, ProfileUpdate } from '../actions/profile.actions'; +import { ProfileService } from '../services/profile.service'; +import { tap } from 'rxjs/operators'; +let ProfileState = class ProfileState { + /** + * @param {?} profileService + */ + constructor(profileService) { + this.profileService = profileService; + } + /** + * @param {?} __0 + * @return {?} + */ + static getProfile({ profile }) { + return profile; + } + /** + * @param {?} __0 + * @return {?} + */ + profileGet({ patchState }) { + return this.profileService.get().pipe(tap((/** + * @param {?} profile + * @return {?} + */ + profile => patchState({ + profile, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + profileUpdate({ patchState }, { payload }) { + return this.profileService.update(payload).pipe(tap((/** + * @param {?} profile + * @return {?} + */ + profile => patchState({ + profile, + })))); + } + /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + changePassword(_, { payload }) { + return this.profileService.changePassword(payload); + } +}; +tslib_1.__decorate([ + Action(ProfileGet), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) +], ProfileState.prototype, "profileGet", null); +tslib_1.__decorate([ + Action(ProfileUpdate), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, ProfileUpdate]), + tslib_1.__metadata("design:returntype", void 0) +], ProfileState.prototype, "profileUpdate", null); +tslib_1.__decorate([ + Action(ProfileChangePassword), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, ProfileChangePassword]), + tslib_1.__metadata("design:returntype", void 0) +], ProfileState.prototype, "changePassword", null); +tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Object) +], ProfileState, "getProfile", null); +ProfileState = tslib_1.__decorate([ + State({ + name: 'ProfileState', + defaults: (/** @type {?} */ ({})), + }), + tslib_1.__metadata("design:paramtypes", [ProfileService]) +], ProfileState); +export { ProfileState }; +if (false) { + /** + * @type {?} + * @private + */ + ProfileState.prototype.profileService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zdGF0ZXMvcHJvZmlsZS5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFnQixRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0lBTXhCLFlBQVksU0FBWixZQUFZOzs7O0lBTXZCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7Ozs7O0lBSnRELE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQWlCO1FBQzFDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Ozs7O0lBS0QsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUErQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUNuQyxHQUFHOzs7O1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDWixVQUFVLENBQUM7WUFDVCxPQUFPO1NBQ1IsQ0FBQyxFQUNILENBQ0YsQ0FBQztJQUNKLENBQUM7Ozs7OztJQUdELGFBQWEsQ0FBQyxFQUFFLFVBQVUsRUFBK0IsRUFBRSxFQUFFLE9BQU8sRUFBaUI7UUFDbkYsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzdDLEdBQUc7Ozs7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUNaLFVBQVUsQ0FBQztZQUNULE9BQU87U0FDUixDQUFDLEVBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7Ozs7O0lBR0QsY0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBeUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YsQ0FBQTtBQXpCQztJQURDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Ozs7OENBU2xCO0FBR0Q7SUFEQyxNQUFNLENBQUMsYUFBYSxDQUFDOztxREFDa0QsYUFBYTs7aURBUXBGO0FBR0Q7SUFEQyxNQUFNLENBQUMscUJBQXFCLENBQUM7O3FEQUNDLHFCQUFxQjs7a0RBRW5EO0FBL0JEO0lBREMsUUFBUSxFQUFFOzs7O29DQUdWO0FBSlUsWUFBWTtJQUp4QixLQUFLLENBQWdCO1FBQ3BCLElBQUksRUFBRSxjQUFjO1FBQ3BCLFFBQVEsRUFBRSxtQkFBQSxFQUFFLEVBQWlCO0tBQzlCLENBQUM7NkNBT29DLGNBQWM7R0FOdkMsWUFBWSxDQWtDeEI7U0FsQ1ksWUFBWTs7Ozs7O0lBTVgsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGUsIEFjdGlvbiwgU3RhdGVDb250ZXh0LCBTZWxlY3RvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFByb2ZpbGVHZXQsIFByb2ZpbGVDaGFuZ2VQYXNzd29yZCwgUHJvZmlsZVVwZGF0ZSB9IGZyb20gJy4uL2FjdGlvbnMvcHJvZmlsZS5hY3Rpb25zJztcbmltcG9ydCB7IFByb2ZpbGUgfSBmcm9tICcuLi9tb2RlbHMvcHJvZmlsZSc7XG5pbXBvcnQgeyBQcm9maWxlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Byb2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBTdGF0ZTxQcm9maWxlLlN0YXRlPih7XG4gIG5hbWU6ICdQcm9maWxlU3RhdGUnLFxuICBkZWZhdWx0czoge30gYXMgUHJvZmlsZS5TdGF0ZSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZVN0YXRlIHtcbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldFByb2ZpbGUoeyBwcm9maWxlIH06IFByb2ZpbGUuU3RhdGUpOiBQcm9maWxlLlJlc3BvbnNlIHtcbiAgICByZXR1cm4gcHJvZmlsZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlKSB7fVxuXG4gIEBBY3Rpb24oUHJvZmlsZUdldClcbiAgcHJvZmlsZUdldCh7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PFByb2ZpbGUuU3RhdGU+KSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0KCkucGlwZShcbiAgICAgIHRhcChwcm9maWxlID0+XG4gICAgICAgIHBhdGNoU3RhdGUoe1xuICAgICAgICAgIHByb2ZpbGUsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihQcm9maWxlVXBkYXRlKVxuICBwcm9maWxlVXBkYXRlKHsgcGF0Y2hTdGF0ZSB9OiBTdGF0ZUNvbnRleHQ8UHJvZmlsZS5TdGF0ZT4sIHsgcGF5bG9hZCB9OiBQcm9maWxlVXBkYXRlKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZVNlcnZpY2UudXBkYXRlKHBheWxvYWQpLnBpcGUoXG4gICAgICB0YXAocHJvZmlsZSA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICBwcm9maWxlLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oUHJvZmlsZUNoYW5nZVBhc3N3b3JkKVxuICBjaGFuZ2VQYXNzd29yZChfLCB7IHBheWxvYWQgfTogUHJvZmlsZUNoYW5nZVBhc3N3b3JkKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZVNlcnZpY2UuY2hhbmdlUGFzc3dvcmQocGF5bG9hZCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/states/session.state.js b/npm/packs/ng/dist/core/esm2015/lib/states/session.state.js new file mode 100644 index 0000000000..acfb6e5af7 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/states/session.state.js @@ -0,0 +1,48 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { State, Action, Selector } from '@ngxs/store'; +import { SessionSetLanguage } from '../actions/session.actions'; +let SessionState = class SessionState { + constructor() { } + /** + * @param {?} __0 + * @return {?} + */ + static getLanguage({ language }) { + return language; + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + sessionSetLanguage({ patchState }, { payload }) { + patchState({ + language: payload, + }); + } +}; +tslib_1.__decorate([ + Action(SessionSetLanguage), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, SessionSetLanguage]), + tslib_1.__metadata("design:returntype", void 0) +], SessionState.prototype, "sessionSetLanguage", null); +tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", String) +], SessionState, "getLanguage", null); +SessionState = tslib_1.__decorate([ + State({ + name: 'SessionState', + defaults: (/** @type {?} */ ({})), + }), + tslib_1.__metadata("design:paramtypes", []) +], SessionState); +export { SessionState }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zdGF0ZXMvc2Vzc2lvbi5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFnQixRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7SUFPbkQsWUFBWSxTQUFaLFlBQVk7SUFNdkIsZ0JBQWUsQ0FBQzs7Ozs7SUFKaEIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBaUI7UUFDNUMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7Ozs7O0lBS0Qsa0JBQWtCLENBQUMsRUFBRSxVQUFVLEVBQStCLEVBQUUsRUFBRSxPQUFPLEVBQXNCO1FBQzdGLFVBQVUsQ0FBQztZQUNULFFBQVEsRUFBRSxPQUFPO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFBO0FBTEM7SUFEQyxNQUFNLENBQUMsa0JBQWtCLENBQUM7O3FEQUNrRCxrQkFBa0I7O3NEQUk5RjtBQVhEO0lBREMsUUFBUSxFQUFFOzs7O3FDQUdWO0FBSlUsWUFBWTtJQUp4QixLQUFLLENBQWdCO1FBQ3BCLElBQUksRUFBRSxjQUFjO1FBQ3BCLFFBQVEsRUFBRSxtQkFBQSxFQUFFLEVBQWlCO0tBQzlCLENBQUM7O0dBQ1csWUFBWSxDQWN4QjtTQWRZLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZSwgQWN0aW9uLCBTdGF0ZUNvbnRleHQsIFNlbGVjdG9yIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgU2Vzc2lvblNldExhbmd1YWdlIH0gZnJvbSAnLi4vYWN0aW9ucy9zZXNzaW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uL21vZGVscy9zZXNzaW9uJztcblxuQFN0YXRlPFNlc3Npb24uU3RhdGU+KHtcbiAgbmFtZTogJ1Nlc3Npb25TdGF0ZScsXG4gIGRlZmF1bHRzOiB7fSBhcyBTZXNzaW9uLlN0YXRlLFxufSlcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU3RhdGUge1xuICBAU2VsZWN0b3IoKVxuICBzdGF0aWMgZ2V0TGFuZ3VhZ2UoeyBsYW5ndWFnZSB9OiBTZXNzaW9uLlN0YXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbGFuZ3VhZ2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgQEFjdGlvbihTZXNzaW9uU2V0TGFuZ3VhZ2UpXG4gIHNlc3Npb25TZXRMYW5ndWFnZSh7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PFNlc3Npb24uU3RhdGU+LCB7IHBheWxvYWQgfTogU2Vzc2lvblNldExhbmd1YWdlKSB7XG4gICAgcGF0Y2hTdGF0ZSh7XG4gICAgICBsYW5ndWFnZTogcGF5bG9hZCxcbiAgICB9KTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/tokens/common.token.js b/npm/packs/ng/dist/core/esm2015/lib/tokens/common.token.js new file mode 100644 index 0000000000..d76c042973 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/tokens/common.token.js @@ -0,0 +1,24 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { InjectionToken } from '@angular/core'; +/** + * @param {?} environment + * @return {?} + */ +export function environmentFactory(environment) { + return Object.assign({}, environment); +} +/** + * @param {?} config + * @return {?} + */ +export function configFactory(config) { + return Object.assign({}, config); +} +/** @type {?} */ +export const ENVIRONMENT = new InjectionToken('ENVIRONMENT'); +/** @type {?} */ +export const CONFIG = new InjectionToken('CONFIG'); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnRva2VuLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3Rva2Vucy9jb21tb24udG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBRy9DLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxXQUErQjtJQUNoRSx5QkFDSyxXQUFXLEVBQ2Q7QUFDSixDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBMkI7SUFDdkQseUJBQ0ssTUFBTSxFQUNUO0FBQ0osQ0FBQzs7QUFFRCxNQUFNLE9BQU8sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQzs7QUFFNUQsTUFBTSxPQUFPLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudmlyb25tZW50RmFjdG9yeShlbnZpcm9ubWVudDogQ29uZmlnLkVudmlyb25tZW50KSB7XG4gIHJldHVybiB7XG4gICAgLi4uZW52aXJvbm1lbnQsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maWdGYWN0b3J5KGNvbmZpZzogQ29uZmlnLlJlcXVpcmVtZW50cykge1xuICByZXR1cm4ge1xuICAgIC4uLmNvbmZpZyxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEVOVklST05NRU5UID0gbmV3IEluamVjdGlvblRva2VuKCdFTlZJUk9OTUVOVCcpO1xuXG5leHBvcnQgY29uc3QgQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuKCdDT05GSUcnKTtcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/tokens/index.js b/npm/packs/ng/dist/core/esm2015/lib/tokens/index.js new file mode 100644 index 0000000000..22a50773eb --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/tokens/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { environmentFactory, configFactory, ENVIRONMENT, CONFIG } from './common.token'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1RUFBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uLnRva2VuJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/utils/generator-utils.js b/npm/packs/ng/dist/core/esm2015/lib/utils/generator-utils.js new file mode 100644 index 0000000000..9e840a8041 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/utils/generator-utils.js @@ -0,0 +1,14 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?=} a + * @return {?} + */ +export function uuid(a) { + return a + ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) + : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLXV0aWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL2dlbmVyYXRvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQU0sVUFBVSxJQUFJLENBQUMsQ0FBTztJQUMxQixPQUFPLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN0RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHV1aWQoYT86IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiBhXG4gICAgPyAoYSBeICgoTWF0aC5yYW5kb20oKSAqIDE2KSA+PiAoYSAvIDQpKSkudG9TdHJpbmcoMTYpXG4gICAgOiAoJycgKyAxZTcgKyAtMWUzICsgLTRlMyArIC04ZTMgKyAtMWUxMSkucmVwbGFjZSgvWzAxOF0vZywgdXVpZCk7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/utils/index.js b/npm/packs/ng/dist/core/esm2015/lib/utils/index.js new file mode 100644 index 0000000000..f75166e0ed --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/utils/index.js @@ -0,0 +1,9 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { uuid } from './generator-utils'; +export { getInitialData } from './initial-utils'; +export { organizeRoutes, setChildRoute, sortRoutes } from './route-utils'; +export { takeUntilDestroy } from './rxjs-utils'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFCQUFjLG1CQUFtQixDQUFDO0FBQ2xDLCtCQUFjLGlCQUFpQixDQUFDO0FBQ2hDLDBEQUFjLGVBQWUsQ0FBQztBQUM5QixpQ0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dlbmVyYXRvci11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2luaXRpYWwtdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZS11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3J4anMtdXRpbHMnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/utils/initial-utils.js b/npm/packs/ng/dist/core/esm2015/lib/utils/initial-utils.js new file mode 100644 index 0000000000..cd07b11c5b --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/utils/initial-utils.js @@ -0,0 +1,23 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Store } from '@ngxs/store'; +import { ConfigGetAppConfiguration } from '../actions/config.actions'; +/** + * @param {?} injector + * @return {?} + */ +export function getInitialData(injector) { + /** @type {?} */ + const fn = (/** + * @return {?} + */ + function () { + /** @type {?} */ + const store = injector.get(Store); + return store.dispatch(new ConfigGetAppConfiguration()).toPromise(); + }); + return fn; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9pbml0aWFsLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQUV0RSxNQUFNLFVBQVUsY0FBYyxDQUFDLFFBQWtCOztVQUN6QyxFQUFFOzs7SUFBRzs7Y0FDSCxLQUFLLEdBQVUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFFeEMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUkseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JFLENBQUMsQ0FBQTtJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IENvbmZpZ0dldEFwcENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9hY3Rpb25zL2NvbmZpZy5hY3Rpb25zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEluaXRpYWxEYXRhKGluamVjdG9yOiBJbmplY3Rvcikge1xuICBjb25zdCBmbiA9IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IHN0b3JlOiBTdG9yZSA9IGluamVjdG9yLmdldChTdG9yZSk7XG5cbiAgICByZXR1cm4gc3RvcmUuZGlzcGF0Y2gobmV3IENvbmZpZ0dldEFwcENvbmZpZ3VyYXRpb24oKSkudG9Qcm9taXNlKCk7XG4gIH07XG5cbiAgcmV0dXJuIGZuO1xufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/utils/route-utils.js b/npm/packs/ng/dist/core/esm2015/lib/utils/route-utils.js new file mode 100644 index 0000000000..379be51051 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/utils/route-utils.js @@ -0,0 +1,96 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} routes + * @param {?=} wrappers + * @param {?=} parentNameArr + * @param {?=} parentName + * @return {?} + */ +export function organizeRoutes(routes, wrappers = [], parentNameArr = (/** @type {?} */ ([])), parentName = null) { + /** @type {?} */ + const filter = (/** + * @param {?} route + * @return {?} + */ + route => { + if (route.children) { + route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name); + } + if (route.parentName && route.parentName !== parentName) { + parentNameArr.push(route); + return false; + } + return true; + }); + if (parentName) { + // recursive block + return routes.filter(filter); + } + /** @type {?} */ + const filteredRoutes = routes.filter(filter); + if (parentNameArr.length) { + return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr)); + } + return filteredRoutes; +} +/** + * @param {?} routes + * @param {?} parentNameArr + * @return {?} + */ +export function setChildRoute(routes, parentNameArr) { + return routes + .map((/** + * @param {?} route + * @return {?} + */ + route => { + if (route.children && route.children.length) { + route.children = setChildRoute(route.children, parentNameArr); + } + /** @type {?} */ + const foundedChildren = parentNameArr.filter((/** + * @param {?} parent + * @return {?} + */ + parent => parent.parentName === route.name)); + if (foundedChildren && foundedChildren.length) { + route.children = [...(route.children || []), ...foundedChildren]; + } + return route; + })) + .filter((/** + * @param {?} route + * @return {?} + */ + route => route.path || (route.children && route.children.length))); +} +/** + * @param {?=} routes + * @return {?} + */ +export function sortRoutes(routes = []) { + if (!routes.length) + return []; + return routes + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + (a, b) => a.order - b.order)) + .map((/** + * @param {?} route + * @return {?} + */ + route => { + if (route.children && route.children.length) { + route.children = sortRoutes(route.children); + } + return route; + })); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtdXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvcm91dGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQSxNQUFNLFVBQVUsY0FBYyxDQUM1QixNQUF1QixFQUN2QixXQUE0QixFQUFFLEVBQzlCLGFBQWEsR0FBRyxtQkFBQSxFQUFFLEVBQW1CLEVBQ3JDLGFBQXFCLElBQUk7O1VBRW5CLE1BQU07Ozs7SUFBRyxLQUFLLENBQUMsRUFBRTtRQUNyQixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEIsS0FBSyxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0RjtRQUVELElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRTtZQUN2RCxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQTtJQUVELElBQUksVUFBVSxFQUFFO1FBQ2Qsa0JBQWtCO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM5Qjs7VUFFSyxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFFNUMsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFO1FBQ3hCLE9BQU8sVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsY0FBYyxFQUFFLEdBQUcsUUFBUSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztLQUNuRjtJQUVELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBdUIsRUFBRSxhQUE4QjtJQUNuRixPQUFPLE1BQU07U0FDVixHQUFHOzs7O0lBQUMsS0FBSyxDQUFDLEVBQUU7UUFDWCxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDM0MsS0FBSyxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztTQUMvRDs7Y0FFSyxlQUFlLEdBQUcsYUFBYSxDQUFDLE1BQU07Ozs7UUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDLElBQUksRUFBQztRQUN4RixJQUFJLGVBQWUsSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQzdDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUM7U0FDRCxNQUFNOzs7O0lBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUM7QUFDOUUsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLFNBQTBCLEVBQUU7SUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDOUIsT0FBTyxNQUFNO1NBQ1YsSUFBSTs7Ozs7SUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBQztTQUNqQyxHQUFHOzs7O0lBQUMsS0FBSyxDQUFDLEVBQUU7UUFDWCxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDM0MsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gb3JnYW5pemVSb3V0ZXMoXG4gIHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdLFxuICB3cmFwcGVyczogQUJQLkZ1bGxSb3V0ZVtdID0gW10sXG4gIHBhcmVudE5hbWVBcnIgPSBbXSBhcyBBQlAuRnVsbFJvdXRlW10sXG4gIHBhcmVudE5hbWU6IHN0cmluZyA9IG51bGwsXG4pOiBBQlAuRnVsbFJvdXRlW10ge1xuICBjb25zdCBmaWx0ZXIgPSByb3V0ZSA9PiB7XG4gICAgaWYgKHJvdXRlLmNoaWxkcmVuKSB7XG4gICAgICByb3V0ZS5jaGlsZHJlbiA9IG9yZ2FuaXplUm91dGVzKHJvdXRlLmNoaWxkcmVuLCB3cmFwcGVycywgcGFyZW50TmFtZUFyciwgcm91dGUubmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHJvdXRlLnBhcmVudE5hbWUgJiYgcm91dGUucGFyZW50TmFtZSAhPT0gcGFyZW50TmFtZSkge1xuICAgICAgcGFyZW50TmFtZUFyci5wdXNoKHJvdXRlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICBpZiAocGFyZW50TmFtZSkge1xuICAgIC8vIHJlY3Vyc2l2ZSBibG9ja1xuICAgIHJldHVybiByb3V0ZXMuZmlsdGVyKGZpbHRlcik7XG4gIH1cblxuICBjb25zdCBmaWx0ZXJlZFJvdXRlcyA9IHJvdXRlcy5maWx0ZXIoZmlsdGVyKTtcblxuICBpZiAocGFyZW50TmFtZUFyci5sZW5ndGgpIHtcbiAgICByZXR1cm4gc29ydFJvdXRlcyhzZXRDaGlsZFJvdXRlKFsuLi5maWx0ZXJlZFJvdXRlcywgLi4ud3JhcHBlcnNdLCBwYXJlbnROYW1lQXJyKSk7XG4gIH1cblxuICByZXR1cm4gZmlsdGVyZWRSb3V0ZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDaGlsZFJvdXRlKHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdLCBwYXJlbnROYW1lQXJyOiBBQlAuRnVsbFJvdXRlW10pOiBBQlAuRnVsbFJvdXRlW10ge1xuICByZXR1cm4gcm91dGVzXG4gICAgLm1hcChyb3V0ZSA9PiB7XG4gICAgICBpZiAocm91dGUuY2hpbGRyZW4gJiYgcm91dGUuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIHJvdXRlLmNoaWxkcmVuID0gc2V0Q2hpbGRSb3V0ZShyb3V0ZS5jaGlsZHJlbiwgcGFyZW50TmFtZUFycik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZvdW5kZWRDaGlsZHJlbiA9IHBhcmVudE5hbWVBcnIuZmlsdGVyKHBhcmVudCA9PiBwYXJlbnQucGFyZW50TmFtZSA9PT0gcm91dGUubmFtZSk7XG4gICAgICBpZiAoZm91bmRlZENoaWxkcmVuICYmIGZvdW5kZWRDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgcm91dGUuY2hpbGRyZW4gPSBbLi4uKHJvdXRlLmNoaWxkcmVuIHx8IFtdKSwgLi4uZm91bmRlZENoaWxkcmVuXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJvdXRlO1xuICAgIH0pXG4gICAgLmZpbHRlcihyb3V0ZSA9PiByb3V0ZS5wYXRoIHx8IChyb3V0ZS5jaGlsZHJlbiAmJiByb3V0ZS5jaGlsZHJlbi5sZW5ndGgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRSb3V0ZXMocm91dGVzOiBBQlAuRnVsbFJvdXRlW10gPSBbXSk6IEFCUC5GdWxsUm91dGVbXSB7XG4gIGlmICghcm91dGVzLmxlbmd0aCkgcmV0dXJuIFtdO1xuICByZXR1cm4gcm91dGVzXG4gICAgLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKVxuICAgIC5tYXAocm91dGUgPT4ge1xuICAgICAgaWYgKHJvdXRlLmNoaWxkcmVuICYmIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICByb3V0ZS5jaGlsZHJlbiA9IHNvcnRSb3V0ZXMocm91dGUuY2hpbGRyZW4pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcm91dGU7XG4gICAgfSk7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/lib/utils/rxjs-utils.js b/npm/packs/ng/dist/core/esm2015/lib/utils/rxjs-utils.js new file mode 100644 index 0000000000..8737be0f4f --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/lib/utils/rxjs-utils.js @@ -0,0 +1,44 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +/** + * @param {?} value + * @return {?} + */ +function isFunction(value) { + return typeof value === 'function'; +} +/** @type {?} */ +export const takeUntilDestroy = (/** + * @param {?} componentInstance + * @param {?=} destroyMethodName + * @return {?} + */ +(componentInstance, destroyMethodName = 'ngOnDestroy') => (/** + * @template T + * @param {?} source + * @return {?} + */ +(source) => { + /** @type {?} */ + const originalDestroy = componentInstance[destroyMethodName]; + if (isFunction(originalDestroy) === false) { + throw new Error(`${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`); + } + if (!componentInstance['__takeUntilDestroy']) { + componentInstance['__takeUntilDestroy'] = new Subject(); + componentInstance[destroyMethodName] = (/** + * @return {?} + */ + function () { + isFunction(originalDestroy) && originalDestroy.apply(this, arguments); + componentInstance['__takeUntilDestroy'].next(true); + componentInstance['__takeUntilDestroy'].complete(); + }); + } + return source.pipe(takeUntil(componentInstance['__takeUntilDestroy'])); +})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9yeGpzLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFM0MsU0FBUyxVQUFVLENBQUMsS0FBSztJQUN2QixPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztBQUNyQyxDQUFDOztBQUVELE1BQU0sT0FBTyxnQkFBZ0I7Ozs7O0FBQUcsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsR0FBRyxhQUFhLEVBQUUsRUFBRTs7Ozs7QUFBQyxDQUN4RixNQUFxQixFQUNyQixFQUFFOztVQUNJLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQztJQUM1RCxJQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsS0FBSyxLQUFLLEVBQUU7UUFDekMsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLGtEQUFrRCxpQkFBaUIsRUFBRSxDQUMzRyxDQUFDO0tBQ0g7SUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsRUFBRTtRQUM1QyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFeEQsaUJBQWlCLENBQUMsaUJBQWlCLENBQUM7OztRQUFHO1lBQ3JDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN0RSxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JELENBQUMsQ0FBQSxDQUFDO0tBQ0g7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFJLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUMsQ0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBjb25zdCB0YWtlVW50aWxEZXN0cm95ID0gKGNvbXBvbmVudEluc3RhbmNlLCBkZXN0cm95TWV0aG9kTmFtZSA9ICduZ09uRGVzdHJveScpID0+IDxUPihcbiAgc291cmNlOiBPYnNlcnZhYmxlPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsRGVzdHJveSA9IGNvbXBvbmVudEluc3RhbmNlW2Rlc3Ryb3lNZXRob2ROYW1lXTtcbiAgaWYgKGlzRnVuY3Rpb24ob3JpZ2luYWxEZXN0cm95KSA9PT0gZmFsc2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgJHtjb21wb25lbnRJbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lfSBpcyB1c2luZyB1bnRpbERlc3Ryb3llZCBidXQgZG9lc24ndCBpbXBsZW1lbnQgJHtkZXN0cm95TWV0aG9kTmFtZX1gLFxuICAgICk7XG4gIH1cbiAgaWYgKCFjb21wb25lbnRJbnN0YW5jZVsnX190YWtlVW50aWxEZXN0cm95J10pIHtcbiAgICBjb21wb25lbnRJbnN0YW5jZVsnX190YWtlVW50aWxEZXN0cm95J10gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29tcG9uZW50SW5zdGFuY2VbZGVzdHJveU1ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICBpc0Z1bmN0aW9uKG9yaWdpbmFsRGVzdHJveSkgJiYgb3JpZ2luYWxEZXN0cm95LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICBjb21wb25lbnRJbnN0YW5jZVsnX190YWtlVW50aWxEZXN0cm95J10ubmV4dCh0cnVlKTtcbiAgICAgIGNvbXBvbmVudEluc3RhbmNlWydfX3Rha2VVbnRpbERlc3Ryb3knXS5jb21wbGV0ZSgpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIHNvdXJjZS5waXBlKHRha2VVbnRpbDxUPihjb21wb25lbnRJbnN0YW5jZVsnX190YWtlVW50aWxEZXN0cm95J10pKTtcbn07XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm2015/public-api.js b/npm/packs/ng/dist/core/esm2015/public-api.js new file mode 100644 index 0000000000..32ec36e110 --- /dev/null +++ b/npm/packs/ng/dist/core/esm2015/public-api.js @@ -0,0 +1,23 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/* + * Public API Surface of core + */ +// export * from './lib/handlers'; +export { PatchRouteByName, ConfigGetAppConfiguration, ProfileGet, ProfileUpdate, ProfileChangePassword, RestOccurError, SessionSetLanguage } from './lib/actions'; +export { DynamicLayoutComponent, RouterOutletComponent } from './lib/components'; +// export * from './lib/constants'; +export { PermissionDirective, VisibilityDirective } from './lib/directives'; +export {} from './lib/enums'; +export { AuthGuard, PermissionGuard } from './lib/guards'; +export { ApiInterceptor } from './lib/interceptors'; +export { Rest } from './lib/models'; +export { NGXS_CONFIG_PLUGIN_OPTIONS, ConfigPlugin } from './lib/plugins'; +export { ApplicationConfigurationService, ConfigService, LazyLoadService, LocalizationService, ProfileService, RestService } from './lib/services'; +export { ProfileState, ConfigState, SessionState } from './lib/states'; +export { environmentFactory, configFactory, ENVIRONMENT, CONFIG } from './lib/tokens'; +export { uuid, getInitialData, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy } from './lib/utils'; +export { CoreModule } from './lib/core.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSxrSkFBYyxlQUFlLENBQUM7QUFDOUIsOERBQWMsa0JBQWtCLENBQUM7O0FBRWpDLHlEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGVBQWMsYUFBYSxDQUFDO0FBQzVCLDJDQUFjLGNBQWMsQ0FBQztBQUM3QiwrQkFBYyxvQkFBb0IsQ0FBQztBQUNuQyxxQkFBYyxjQUFjLENBQUM7QUFDN0IseURBQWMsZUFBZSxDQUFDO0FBQzlCLGtJQUFjLGdCQUFnQixDQUFDO0FBQy9CLHdEQUFjLGNBQWMsQ0FBQztBQUM3Qix1RUFBYyxjQUFjLENBQUM7QUFDN0Isa0dBQWMsYUFBYSxDQUFDO0FBRTVCLDJCQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb3JlXG4gKi9cblxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvaGFuZGxlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VudW1zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2d1YXJkcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmNlcHRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BsdWdpbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUubW9kdWxlJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/abp-ng.core.js b/npm/packs/ng/dist/core/esm5/abp-ng.core.js new file mode 100644 index 0000000000..2c15c49c0e --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/abp-ng.core.js @@ -0,0 +1,27 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { PatchRouteByName, ConfigGetAppConfiguration, ProfileGet, ProfileUpdate, ProfileChangePassword, RestOccurError, SessionSetLanguage, DynamicLayoutComponent, RouterOutletComponent, PermissionDirective, VisibilityDirective, AuthGuard, PermissionGuard, ApiInterceptor, Rest, NGXS_CONFIG_PLUGIN_OPTIONS, ConfigPlugin, ApplicationConfigurationService, ConfigService, LazyLoadService, LocalizationService, ProfileService, RestService, ProfileState, ConfigState, SessionState, environmentFactory, configFactory, ENVIRONMENT, CONFIG, uuid, getInitialData, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy, CoreModule } from './public-api'; +export { ConfigGetAppConfiguration as ɵm, PatchRouteByName as ɵl } from './lib/actions/config.actions'; +export { ProfileChangePassword as ɵf, ProfileGet as ɵd, ProfileUpdate as ɵe } from './lib/actions/profile.actions'; +export { SessionSetLanguage as ɵi } from './lib/actions/session.actions'; +export { DynamicLayoutComponent as ɵo } from './lib/components/dynamic-layout.component'; +export { RouterOutletComponent as ɵn } from './lib/components/router-outlet.component'; +export { PermissionDirective as ɵq } from './lib/directives/permission.directive'; +export { VisibilityDirective as ɵr } from './lib/directives/visibility.directive'; +export { ApiInterceptor as ɵw } from './lib/interceptors/api.interceptor'; +export { LocalizationPipe as ɵs } from './lib/pipes/localization.pipe'; +export { ConfigPlugin as ɵu, NGXS_CONFIG_PLUGIN_OPTIONS as ɵt } from './lib/plugins/config.plugin'; +export { ApplicationConfigurationService as ɵk } from './lib/services/application-configuration.service'; +export { ProfileService as ɵb } from './lib/services/profile.service'; +export { RestService as ɵc } from './lib/services/rest.service'; +export { ConfigState as ɵp } from './lib/states'; +export { ConfigState as ɵj } from './lib/states/config.state'; +export { ProfileState as ɵa } from './lib/states/profile.state'; +export { SessionState as ɵh } from './lib/states/session.state'; +export { getInitialData as ɵx } from './lib/utils/initial-utils'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJhYnAtbmcuY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMG5CQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3BHLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsVUFBVSxJQUFJLEVBQUUsRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDL0csT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN2RixPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRyxPQUFPLEVBQUMsK0JBQStCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDdkcsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQy9DLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7Q29uZmlnR2V0QXBwQ29uZmlndXJhdGlvbiBhcyDJtW0sUGF0Y2hSb3V0ZUJ5TmFtZSBhcyDJtWx9IGZyb20gJy4vbGliL2FjdGlvbnMvY29uZmlnLmFjdGlvbnMnO1xuZXhwb3J0IHtQcm9maWxlQ2hhbmdlUGFzc3dvcmQgYXMgybVmLFByb2ZpbGVHZXQgYXMgybVkLFByb2ZpbGVVcGRhdGUgYXMgybVlfSBmcm9tICcuL2xpYi9hY3Rpb25zL3Byb2ZpbGUuYWN0aW9ucyc7XG5leHBvcnQge1Nlc3Npb25TZXRMYW5ndWFnZSBhcyDJtWl9IGZyb20gJy4vbGliL2FjdGlvbnMvc2Vzc2lvbi5hY3Rpb25zJztcbmV4cG9ydCB7RHluYW1pY0xheW91dENvbXBvbmVudCBhcyDJtW99IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCB7Um91dGVyT3V0bGV0Q29tcG9uZW50IGFzIMm1bn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb3V0ZXItb3V0bGV0LmNvbXBvbmVudCc7XG5leHBvcnQge1Blcm1pc3Npb25EaXJlY3RpdmUgYXMgybVxfSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3Blcm1pc3Npb24uZGlyZWN0aXZlJztcbmV4cG9ydCB7VmlzaWJpbGl0eURpcmVjdGl2ZSBhcyDJtXJ9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvdmlzaWJpbGl0eS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtBcGlJbnRlcmNlcHRvciBhcyDJtXd9IGZyb20gJy4vbGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3InO1xuZXhwb3J0IHtBQlAgYXMgybV2LFByb2ZpbGUgYXMgybVnfSBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0IHtMb2NhbGl6YXRpb25QaXBlIGFzIMm1c30gZnJvbSAnLi9saWIvcGlwZXMvbG9jYWxpemF0aW9uLnBpcGUnO1xuZXhwb3J0IHtDb25maWdQbHVnaW4gYXMgybV1LE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TIGFzIMm1dH0gZnJvbSAnLi9saWIvcGx1Z2lucy9jb25maWcucGx1Z2luJztcbmV4cG9ydCB7QXBwbGljYXRpb25Db25maWd1cmF0aW9uU2VydmljZSBhcyDJtWt9IGZyb20gJy4vbGliL3NlcnZpY2VzL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5leHBvcnQge1Byb2ZpbGVTZXJ2aWNlIGFzIMm1Yn0gZnJvbSAnLi9saWIvc2VydmljZXMvcHJvZmlsZS5zZXJ2aWNlJztcbmV4cG9ydCB7UmVzdFNlcnZpY2UgYXMgybVjfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xuZXhwb3J0IHtDb25maWdTdGF0ZSBhcyDJtXB9IGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQge0NvbmZpZ1N0YXRlIGFzIMm1an0gZnJvbSAnLi9saWIvc3RhdGVzL2NvbmZpZy5zdGF0ZSc7XG5leHBvcnQge1Byb2ZpbGVTdGF0ZSBhcyDJtWF9IGZyb20gJy4vbGliL3N0YXRlcy9wcm9maWxlLnN0YXRlJztcbmV4cG9ydCB7U2Vzc2lvblN0YXRlIGFzIMm1aH0gZnJvbSAnLi9saWIvc3RhdGVzL3Nlc3Npb24uc3RhdGUnO1xuZXhwb3J0IHtnZXRJbml0aWFsRGF0YSBhcyDJtXh9IGZyb20gJy4vbGliL3V0aWxzL2luaXRpYWwtdXRpbHMnOyJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/actions/config.actions.js b/npm/packs/ng/dist/core/esm5/lib/actions/config.actions.js new file mode 100644 index 0000000000..fc8458ce1e --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/actions/config.actions.js @@ -0,0 +1,33 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PatchRouteByName = /** @class */ (function () { + function PatchRouteByName(name, newValue) { + this.name = name; + this.newValue = newValue; + } + PatchRouteByName.type = '[Config] Patch Route By Name'; + return PatchRouteByName; +}()); +export { PatchRouteByName }; +if (false) { + /** @type {?} */ + PatchRouteByName.type; + /** @type {?} */ + PatchRouteByName.prototype.name; + /** @type {?} */ + PatchRouteByName.prototype.newValue; +} +var ConfigGetAppConfiguration = /** @class */ (function () { + function ConfigGetAppConfiguration() { + } + ConfigGetAppConfiguration.type = '[Config] Get App Configuration'; + return ConfigGetAppConfiguration; +}()); +export { ConfigGetAppConfiguration }; +if (false) { + /** @type {?} */ + ConfigGetAppConfiguration.type; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmFjdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvYWN0aW9ucy9jb25maWcuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUE7SUFFRSwwQkFBbUIsSUFBWSxFQUFTLFFBQTRCO1FBQWpELFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFvQjtJQUFHLENBQUM7SUFEeEQscUJBQUksR0FBRyw4QkFBOEIsQ0FBQztJQUV4RCx1QkFBQztDQUFBLEFBSEQsSUFHQztTQUhZLGdCQUFnQjs7O0lBQzNCLHNCQUFzRDs7SUFDMUMsZ0NBQW1COztJQUFFLG9DQUFtQzs7QUFHdEU7SUFBQTtJQUVBLENBQUM7SUFEaUIsOEJBQUksR0FBRyxnQ0FBZ0MsQ0FBQztJQUMxRCxnQ0FBQztDQUFBLEFBRkQsSUFFQztTQUZZLHlCQUF5Qjs7O0lBQ3BDLCtCQUF3RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBQYXRjaFJvdXRlQnlOYW1lIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0NvbmZpZ10gUGF0Y2ggUm91dGUgQnkgTmFtZSc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcsIHB1YmxpYyBuZXdWYWx1ZTogUGFydGlhbDxBQlAuUm91dGU+KSB7fVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlnR2V0QXBwQ29uZmlndXJhdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tDb25maWddIEdldCBBcHAgQ29uZmlndXJhdGlvbic7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/actions/index.js b/npm/packs/ng/dist/core/esm5/lib/actions/index.js new file mode 100644 index 0000000000..82c1750339 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/actions/index.js @@ -0,0 +1,9 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PatchRouteByName, ConfigGetAppConfiguration } from './config.actions'; +export { ProfileGet, ProfileUpdate, ProfileChangePassword } from './profile.actions'; +export { RestOccurError } from './rest.actions'; +export { SessionSetLanguage } from './session.actions'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvYWN0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNERBQWMsa0JBQWtCLENBQUM7QUFDakMsaUVBQWMsbUJBQW1CLENBQUM7QUFDbEMsK0JBQWMsZ0JBQWdCLENBQUM7QUFDL0IsbUNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpZy5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZmlsZS5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzdC5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc2Vzc2lvbi5hY3Rpb25zJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/actions/profile.actions.js b/npm/packs/ng/dist/core/esm5/lib/actions/profile.actions.js new file mode 100644 index 0000000000..d69577dd49 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/actions/profile.actions.js @@ -0,0 +1,44 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ProfileGet = /** @class */ (function () { + function ProfileGet() { + } + ProfileGet.type = '[Profile] Get'; + return ProfileGet; +}()); +export { ProfileGet }; +if (false) { + /** @type {?} */ + ProfileGet.type; +} +var ProfileUpdate = /** @class */ (function () { + function ProfileUpdate(payload) { + this.payload = payload; + } + ProfileUpdate.type = '[Profile] Update'; + return ProfileUpdate; +}()); +export { ProfileUpdate }; +if (false) { + /** @type {?} */ + ProfileUpdate.type; + /** @type {?} */ + ProfileUpdate.prototype.payload; +} +var ProfileChangePassword = /** @class */ (function () { + function ProfileChangePassword(payload) { + this.payload = payload; + } + ProfileChangePassword.type = '[Profile] Change Password'; + return ProfileChangePassword; +}()); +export { ProfileChangePassword }; +if (false) { + /** @type {?} */ + ProfileChangePassword.type; + /** @type {?} */ + ProfileChangePassword.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvcHJvZmlsZS5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQTtJQUFBO0lBRUEsQ0FBQztJQURpQixlQUFJLEdBQUcsZUFBZSxDQUFDO0lBQ3pDLGlCQUFDO0NBQUEsQUFGRCxJQUVDO1NBRlksVUFBVTs7O0lBQ3JCLGdCQUF1Qzs7QUFHekM7SUFFRSx1QkFBbUIsT0FBeUI7UUFBekIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7SUFBRyxDQUFDO0lBRGhDLGtCQUFJLEdBQUcsa0JBQWtCLENBQUM7SUFFNUMsb0JBQUM7Q0FBQSxBQUhELElBR0M7U0FIWSxhQUFhOzs7SUFDeEIsbUJBQTBDOztJQUM5QixnQ0FBZ0M7O0FBRzlDO0lBRUUsK0JBQW1CLE9BQXNDO1FBQXRDLFlBQU8sR0FBUCxPQUFPLENBQStCO0lBQUcsQ0FBQztJQUQ3QywwQkFBSSxHQUFHLDJCQUEyQixDQUFDO0lBRXJELDRCQUFDO0NBQUEsQUFIRCxJQUdDO1NBSFkscUJBQXFCOzs7SUFDaEMsMkJBQW1EOztJQUN2Qyx3Q0FBNkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9maWxlIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGNsYXNzIFByb2ZpbGVHZXQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbUHJvZmlsZV0gR2V0Jztcbn1cblxuZXhwb3J0IGNsYXNzIFByb2ZpbGVVcGRhdGUge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbUHJvZmlsZV0gVXBkYXRlJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IFByb2ZpbGUuUmVzcG9uc2UpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9maWxlQ2hhbmdlUGFzc3dvcmQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbUHJvZmlsZV0gQ2hhbmdlIFBhc3N3b3JkJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IFByb2ZpbGUuQ2hhbmdlUGFzc3dvcmRSZXF1ZXN0KSB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/actions/rest.actions.js b/npm/packs/ng/dist/core/esm5/lib/actions/rest.actions.js new file mode 100644 index 0000000000..1b75d99500 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/actions/rest.actions.js @@ -0,0 +1,19 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var RestOccurError = /** @class */ (function () { + function RestOccurError(payload) { + this.payload = payload; + } + RestOccurError.type = '[Rest] Error'; + return RestOccurError; +}()); +export { RestOccurError }; +if (false) { + /** @type {?} */ + RestOccurError.type; + /** @type {?} */ + RestOccurError.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvcmVzdC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQTtJQUVFLHdCQUFtQixPQUFnQztRQUFoQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtJQUFHLENBQUM7SUFEdkMsbUJBQUksR0FBRyxjQUFjLENBQUM7SUFFeEMscUJBQUM7Q0FBQSxBQUhELElBR0M7U0FIWSxjQUFjOzs7SUFDekIsb0JBQXNDOztJQUMxQixpQ0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuZXhwb3J0IGNsYXNzIFJlc3RPY2N1ckVycm9yIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Jlc3RdIEVycm9yJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/actions/session.actions.js b/npm/packs/ng/dist/core/esm5/lib/actions/session.actions.js new file mode 100644 index 0000000000..a76613b257 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/actions/session.actions.js @@ -0,0 +1,19 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var SessionSetLanguage = /** @class */ (function () { + function SessionSetLanguage(payload) { + this.payload = payload; + } + SessionSetLanguage.type = '[Session] Set Language'; + return SessionSetLanguage; +}()); +export { SessionSetLanguage }; +if (false) { + /** @type {?} */ + SessionSetLanguage.type; + /** @type {?} */ + SessionSetLanguage.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvc2Vzc2lvbi5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtJQUVFLDRCQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7SUFEdEIsdUJBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUVsRCx5QkFBQztDQUFBLEFBSEQsSUFHQztTQUhZLGtCQUFrQjs7O0lBQzdCLHdCQUFnRDs7SUFDcEMscUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFNlc3Npb25TZXRMYW5ndWFnZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBTZXQgTGFuZ3VhZ2UnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogc3RyaW5nKSB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/components/dynamic-layout.component.js b/npm/packs/ng/dist/core/esm5/lib/components/dynamic-layout.component.js new file mode 100644 index 0000000000..945f8d48df --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/components/dynamic-layout.component.js @@ -0,0 +1,123 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component } from '@angular/core'; +import { NavigationEnd, Router } from '@angular/router'; +import { Select, Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { ConfigState } from '../states'; +import { takeUntilDestroy } from '../utils'; +import snq from 'snq'; +var DynamicLayoutComponent = /** @class */ (function () { + function DynamicLayoutComponent(router, store) { + var _this = this; + this.router = router; + this.store = store; + this.router.events.pipe(takeUntilDestroy(this)).subscribe((/** + * @param {?} event + * @return {?} + */ + function (event) { + if (event instanceof NavigationEnd) { + var segments = _this.router.parseUrl(event.url).root.children.primary.segments; + var _a = _this.store.selectSnapshot(ConfigState.getAll), layouts = _a.requirements.layouts, routes = _a.routes; + /** @type {?} */ + var layout_1 = findLayout(segments, routes); + _this.layout = layouts.filter((/** + * @param {?} l + * @return {?} + */ + function (l) { return !!l; })).find((/** + * @param {?} l + * @return {?} + */ + function (l) { return snq((/** + * @return {?} + */ + function () { return l.type.toLowerCase().indexOf(layout_1); }), -1) > -1; })); + } + })); + } + /** + * @return {?} + */ + DynamicLayoutComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + DynamicLayoutComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-dynamic-layout', + template: "\n \n\n \n \n " + }] } + ]; + /** @nocollapse */ + DynamicLayoutComponent.ctorParameters = function () { return [ + { type: Router }, + { type: Store } + ]; }; + tslib_1.__decorate([ + Select(ConfigState.getOne('requirements')), + tslib_1.__metadata("design:type", Observable) + ], DynamicLayoutComponent.prototype, "requirements$", void 0); + return DynamicLayoutComponent; +}()); +export { DynamicLayoutComponent }; +if (false) { + /** @type {?} */ + DynamicLayoutComponent.prototype.requirements$; + /** @type {?} */ + DynamicLayoutComponent.prototype.layout; + /** + * @type {?} + * @private + */ + DynamicLayoutComponent.prototype.router; + /** + * @type {?} + * @private + */ + DynamicLayoutComponent.prototype.store; +} +/** + * @param {?} segments + * @param {?} routes + * @return {?} + */ +function findLayout(segments, routes) { + /** @type {?} */ + var layout = "empty" /* empty */; + /** @type {?} */ + var route = routes + .reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return (val.wrapper ? tslib_1.__spread(acc, val.children) : tslib_1.__spread(acc, [val])); }), []) + .find((/** + * @param {?} r + * @return {?} + */ + function (r) { return r.path === segments[0].path; })); + if (route) { + if (route.layout) { + layout = route.layout; + } + if (route.children && route.children.length) { + /** @type {?} */ + var child = route.children.find((/** + * @param {?} c + * @return {?} + */ + function (c) { return c.path === segments[1].path; })); + if (child.layout) { + layout = child.layout; + } + } + } + return layout; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUV0QjtJQWVFLGdDQUFvQixNQUFjLEVBQVUsS0FBWTtRQUF4RCxpQkFjQztRQWRtQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxLQUFLO1lBQzdELElBQUksS0FBSyxZQUFZLGFBQWEsRUFBRTtnQkFDMUIsSUFBQSwwRUFBUTtnQkFDVixJQUFBLG1EQUcyQyxFQUYvQixpQ0FBTyxFQUN2QixrQkFDK0M7O29CQUUzQyxRQUFNLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7Z0JBRTNDLEtBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU07Ozs7Z0JBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFILENBQUcsRUFBQyxDQUFDLElBQUk7Ozs7Z0JBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxHQUFHOzs7Z0JBQUMsY0FBTSxPQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQU0sQ0FBQyxFQUFwQyxDQUFvQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQXhELENBQXdELEVBQUMsQ0FBQzthQUM1RztRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELDRDQUFXOzs7SUFBWCxjQUFlLENBQUM7O2dCQS9CakIsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxvU0FLVDtpQkFDRjs7OztnQkFqQnVCLE1BQU07Z0JBQ2IsS0FBSzs7SUFtQnBCO1FBREMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7MENBQzVCLFVBQVU7aUVBQXNCO0lBcUJqRCw2QkFBQztDQUFBLEFBaENELElBZ0NDO1NBdkJZLHNCQUFzQjs7O0lBQ2pDLCtDQUMrQzs7SUFFL0Msd0NBQWtCOzs7OztJQUVOLHdDQUFzQjs7Ozs7SUFBRSx1Q0FBb0I7Ozs7Ozs7QUFtQjFELFNBQVMsVUFBVSxDQUFDLFFBQXNCLEVBQUUsTUFBdUI7O1FBQzdELE1BQU0sc0JBQW9COztRQUV4QixLQUFLLEdBQUcsTUFBTTtTQUNqQixNQUFNOzs7OztJQUFDLFVBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSyxPQUFBLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGtCQUFLLEdBQUcsRUFBSyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsa0JBQUssR0FBRyxHQUFFLEdBQUcsRUFBQyxDQUFDLEVBQXpELENBQXlELEdBQUUsRUFBRSxDQUFDO1NBQ25GLElBQUk7Ozs7SUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBM0IsQ0FBMkIsRUFBQztJQUV6QyxJQUFJLEtBQUssRUFBRTtRQUNULElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNoQixNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUN2QjtRQUVELElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTs7Z0JBQ3JDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUk7Ozs7WUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBM0IsQ0FBMkIsRUFBQztZQUVuRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO2FBQ3ZCO1NBQ0Y7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBVcmxTZWdtZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJy4uL2VudW1zJztcbmltcG9ydCB7IEFCUCwgQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IENvbmZpZ1N0YXRlIH0gZnJvbSAnLi4vc3RhdGVzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3kgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1keW5hbWljLWxheW91dCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxheW91dCA/IGNvbXBvbmVudE91dGxldCA6IHJvdXRlck91dGxldFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNyb3V0ZXJPdXRsZXQ+PHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PjwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRPdXRsZXQ+PG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJsYXlvdXRcIj48L25nLWNvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFNlbGVjdChDb25maWdTdGF0ZS5nZXRPbmUoJ3JlcXVpcmVtZW50cycpKVxuICByZXF1aXJlbWVudHMkOiBPYnNlcnZhYmxlPENvbmZpZy5SZXF1aXJlbWVudHM+O1xuXG4gIGxheW91dDogVHlwZTxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGFrZVVudGlsRGVzdHJveSh0aGlzKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgY29uc3QgeyBzZWdtZW50cyB9ID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwoZXZlbnQudXJsKS5yb290LmNoaWxkcmVuLnByaW1hcnk7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICByZXF1aXJlbWVudHM6IHsgbGF5b3V0cyB9LFxuICAgICAgICAgIHJvdXRlcyxcbiAgICAgICAgfSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoQ29uZmlnU3RhdGUuZ2V0QWxsKTtcblxuICAgICAgICBjb25zdCBsYXlvdXQgPSBmaW5kTGF5b3V0KHNlZ21lbnRzLCByb3V0ZXMpO1xuXG4gICAgICAgIHRoaXMubGF5b3V0ID0gbGF5b3V0cy5maWx0ZXIobCA9PiAhIWwpLmZpbmQobCA9PiBzbnEoKCkgPT4gbC50eXBlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihsYXlvdXQpLCAtMSkgPiAtMSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHt9XG59XG5cbmZ1bmN0aW9uIGZpbmRMYXlvdXQoc2VnbWVudHM6IFVybFNlZ21lbnRbXSwgcm91dGVzOiBBQlAuRnVsbFJvdXRlW10pOiBlTGF5b3V0VHlwZSB7XG4gIGxldCBsYXlvdXQgPSBlTGF5b3V0VHlwZS5lbXB0eTtcblxuICBjb25zdCByb3V0ZSA9IHJvdXRlc1xuICAgIC5yZWR1Y2UoKGFjYywgdmFsKSA9PiAodmFsLndyYXBwZXIgPyBbLi4uYWNjLCAuLi52YWwuY2hpbGRyZW5dIDogWy4uLmFjYywgdmFsXSksIFtdKVxuICAgIC5maW5kKHIgPT4gci5wYXRoID09PSBzZWdtZW50c1swXS5wYXRoKTtcblxuICBpZiAocm91dGUpIHtcbiAgICBpZiAocm91dGUubGF5b3V0KSB7XG4gICAgICBsYXlvdXQgPSByb3V0ZS5sYXlvdXQ7XG4gICAgfVxuXG4gICAgaWYgKHJvdXRlLmNoaWxkcmVuICYmIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgY29uc3QgY2hpbGQgPSByb3V0ZS5jaGlsZHJlbi5maW5kKGMgPT4gYy5wYXRoID09PSBzZWdtZW50c1sxXS5wYXRoKTtcblxuICAgICAgaWYgKGNoaWxkLmxheW91dCkge1xuICAgICAgICBsYXlvdXQgPSBjaGlsZC5sYXlvdXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxheW91dDtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/components/index.js b/npm/packs/ng/dist/core/esm5/lib/components/index.js new file mode 100644 index 0000000000..ddc4caca23 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/components/index.js @@ -0,0 +1,7 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { DynamicLayoutComponent } from './dynamic-layout.component'; +export { RouterOutletComponent } from './router-outlet.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsdUNBQWMsNEJBQTRCLENBQUM7QUFDM0Msc0NBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRlci1vdXRsZXQuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/components/router-outlet.component.js b/npm/packs/ng/dist/core/esm5/lib/components/router-outlet.component.js new file mode 100644 index 0000000000..94c22f170a --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/components/router-outlet.component.js @@ -0,0 +1,18 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +var RouterOutletComponent = /** @class */ (function () { + function RouterOutletComponent() { + } + RouterOutletComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-router-outlet', + template: "\n \n " + }] } + ]; + return RouterOutletComponent; +}()); +export { RouterOutletComponent }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLW91dGxldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9yb3V0ZXItb3V0bGV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQztJQUFBO0lBTW9DLENBQUM7O2dCQU5wQyxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLDJDQUVUO2lCQUNGOztJQUNtQyw0QkFBQztDQUFBLEFBTnJDLElBTXFDO1NBQXhCLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtcm91dGVyLW91dGxldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBSb3V0ZXJPdXRsZXRDb21wb25lbnQge31cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/core.module.js b/npm/packs/ng/dist/core/esm5/lib/core.module.js new file mode 100644 index 0000000000..b63e33e187 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/core.module.js @@ -0,0 +1,101 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CommonModule } from '@angular/common'; +import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; +import { APP_INITIALIZER, Injector, NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { RouterModule } from '@angular/router'; +import { NgxsRouterPluginModule } from '@ngxs/router-plugin'; +import { NgxsStoragePluginModule } from '@ngxs/storage-plugin'; +import { NgxsModule, NGXS_PLUGINS } from '@ngxs/store'; +import { DynamicLayoutComponent } from './components/dynamic-layout.component'; +import { RouterOutletComponent } from './components/router-outlet.component'; +import { PermissionDirective } from './directives/permission.directive'; +import { VisibilityDirective } from './directives/visibility.directive'; +import { ApiInterceptor } from './interceptors/api.interceptor'; +import { LocalizationPipe } from './pipes/localization.pipe'; +import { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config.plugin'; +import { ConfigState } from './states/config.state'; +import { ProfileState } from './states/profile.state'; +import { SessionState } from './states/session.state'; +import { getInitialData } from './utils/initial-utils'; +var CoreModule = /** @class */ (function () { + function CoreModule() { + } + /** + * @param {?=} options + * @return {?} + */ + CoreModule.forRoot = /** + * @param {?=} options + * @return {?} + */ + function (options) { + if (options === void 0) { options = (/** @type {?} */ ({})); } + return { + ngModule: CoreModule, + providers: [ + { + provide: NGXS_PLUGINS, + useClass: ConfigPlugin, + multi: true, + }, + { + provide: NGXS_CONFIG_PLUGIN_OPTIONS, + useValue: options, + }, + { + provide: HTTP_INTERCEPTORS, + useClass: ApiInterceptor, + multi: true, + }, + { + provide: APP_INITIALIZER, + multi: true, + deps: [Injector], + useFactory: getInitialData, + }, + ], + }; + }; + CoreModule.decorators = [ + { type: NgModule, args: [{ + imports: [ + NgxsModule.forFeature([ProfileState, SessionState, ConfigState]), + NgxsStoragePluginModule.forRoot({ key: 'SessionState' }), + NgxsRouterPluginModule.forRoot(), + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + RouterModule, + ], + declarations: [ + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + exports: [ + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + RouterModule, + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + providers: [LocalizationPipe], + entryComponents: [RouterOutletComponent, DynamicLayoutComponent], + },] } + ]; + return CoreModule; +}()); +export { CoreModule }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7SUFBQTtJQTZEQSxDQUFDOzs7OztJQTNCUSxrQkFBTzs7OztJQUFkLFVBQWUsT0FBd0I7UUFBeEIsd0JBQUEsRUFBQSw2QkFBVSxFQUFFLEVBQVk7UUFDckMsT0FBTztZQUNMLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSwwQkFBMEI7b0JBQ25DLFFBQVEsRUFBRSxPQUFPO2lCQUNsQjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLEtBQUssRUFBRSxJQUFJO29CQUNYLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztvQkFDaEIsVUFBVSxFQUFFLGNBQWM7aUJBQzNCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7Z0JBNURGLFFBQVEsU0FBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7d0JBQ2hFLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsQ0FBQzt3QkFDeEQsc0JBQXNCLENBQUMsT0FBTyxFQUFFO3dCQUNoQyxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3FCQUNqQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDN0IsZUFBZSxFQUFFLENBQUMscUJBQXFCLEVBQUUsc0JBQXNCLENBQUM7aUJBQ2pFOztJQTZCRCxpQkFBQztDQUFBLEFBN0RELElBNkRDO1NBNUJZLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmd4c1JvdXRlclBsdWdpbk1vZHVsZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgTmd4c1N0b3JhZ2VQbHVnaW5Nb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yYWdlLXBsdWdpbic7XG5pbXBvcnQgeyBOZ3hzTW9kdWxlLCBOR1hTX1BMVUdJTlMgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3V0ZXJPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm91dGVyLW91dGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWaXNpYmlsaXR5RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Zpc2liaWxpdHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFwaUludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvYXBpLmludGVyY2VwdG9yJztcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4vbW9kZWxzL2NvbW1vbic7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9sb2NhbGl6YXRpb24ucGlwZSc7XG5pbXBvcnQgeyBDb25maWdQbHVnaW4sIE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TIH0gZnJvbSAnLi9wbHVnaW5zL2NvbmZpZy5wbHVnaW4nO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGUgfSBmcm9tICcuL3N0YXRlcy9jb25maWcuc3RhdGUnO1xuaW1wb3J0IHsgUHJvZmlsZVN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvcHJvZmlsZS5zdGF0ZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuL3N0YXRlcy9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IGdldEluaXRpYWxEYXRhIH0gZnJvbSAnLi91dGlscy9pbml0aWFsLXV0aWxzJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIE5neHNNb2R1bGUuZm9yRmVhdHVyZShbUHJvZmlsZVN0YXRlLCBTZXNzaW9uU3RhdGUsIENvbmZpZ1N0YXRlXSksXG4gICAgTmd4c1N0b3JhZ2VQbHVnaW5Nb2R1bGUuZm9yUm9vdCh7IGtleTogJ1Nlc3Npb25TdGF0ZScgfSksXG4gICAgTmd4c1JvdXRlclBsdWdpbk1vZHVsZS5mb3JSb290KCksXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFJvdXRlck91dGxldENvbXBvbmVudCxcbiAgICBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXG4gICAgVmlzaWJpbGl0eURpcmVjdGl2ZSxcbiAgICBMb2NhbGl6YXRpb25QaXBlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgUm91dGVyT3V0bGV0Q29tcG9uZW50LFxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcbiAgICBWaXNpYmlsaXR5RGlyZWN0aXZlLFxuICAgIExvY2FsaXphdGlvblBpcGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW0xvY2FsaXphdGlvblBpcGVdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtSb3V0ZXJPdXRsZXRDb21wb25lbnQsIER5bmFtaWNMYXlvdXRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3Qob3B0aW9ucyA9IHt9IGFzIEFCUC5Sb290KTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBDb3JlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBOR1hTX1BMVUdJTlMsXG4gICAgICAgICAgdXNlQ2xhc3M6IENvbmZpZ1BsdWdpbixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TLFxuICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgICAgdXNlQ2xhc3M6IEFwaUludGVyY2VwdG9yLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl0sXG4gICAgICAgICAgdXNlRmFjdG9yeTogZ2V0SW5pdGlhbERhdGEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/directives/index.js b/npm/packs/ng/dist/core/esm5/lib/directives/index.js new file mode 100644 index 0000000000..f6882062ee --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/directives/index.js @@ -0,0 +1,7 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PermissionDirective } from './permission.directive'; +export { VisibilityDirective } from './visibility.directive'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsb0NBQWMsd0JBQXdCLENBQUM7QUFDdkMsb0NBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdmlzaWJpbGl0eS5kaXJlY3RpdmUnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/directives/permission.directive.js b/npm/packs/ng/dist/core/esm5/lib/directives/permission.directive.js new file mode 100644 index 0000000000..0d45dcdb49 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/directives/permission.directive.js @@ -0,0 +1,81 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Directive, ElementRef, Input, Optional, Renderer2 } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import { takeUntilDestroy } from '../utils'; +var PermissionDirective = /** @class */ (function () { + function PermissionDirective(elRef, renderer, store) { + this.elRef = elRef; + this.renderer = renderer; + this.store = store; + } + /** + * @return {?} + */ + PermissionDirective.prototype.ngOnInit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.condition) { + this.store + .select(ConfigState.getGrantedPolicy(this.condition)) + .pipe(takeUntilDestroy(this)) + .subscribe((/** + * @param {?} isGranted + * @return {?} + */ + function (isGranted) { + if (!isGranted) { + _this.renderer.removeChild(((/** @type {?} */ (_this.elRef.nativeElement))).parentElement, _this.elRef.nativeElement); + } + })); + } + }; + /** + * @return {?} + */ + PermissionDirective.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + PermissionDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpPermission]', + },] } + ]; + /** @nocollapse */ + PermissionDirective.ctorParameters = function () { return [ + { type: ElementRef, decorators: [{ type: Optional }] }, + { type: Renderer2 }, + { type: Store } + ]; }; + PermissionDirective.propDecorators = { + condition: [{ type: Input, args: ['abpPermission',] }] + }; + return PermissionDirective; +}()); +export { PermissionDirective }; +if (false) { + /** @type {?} */ + PermissionDirective.prototype.condition; + /** + * @type {?} + * @private + */ + PermissionDirective.prototype.elRef; + /** + * @type {?} + * @private + */ + PermissionDirective.prototype.renderer; + /** + * @type {?} + * @private + */ + PermissionDirective.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFNUM7SUFNRSw2QkFBZ0MsS0FBaUIsRUFBVSxRQUFtQixFQUFVLEtBQVk7UUFBcEUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQUcsQ0FBQzs7OztJQUV4RyxzQ0FBUTs7O0lBQVI7UUFBQSxpQkFjQztRQWJDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSztpQkFDUCxNQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDcEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM1QixTQUFTOzs7O1lBQUMsVUFBQSxTQUFTO2dCQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNkLEtBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUN2QixDQUFDLG1CQUFBLEtBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFlLENBQUMsQ0FBQyxhQUFhLEVBQ3ZELEtBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUN6QixDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDTjtJQUNILENBQUM7Ozs7SUFFRCx5Q0FBVzs7O0lBQVgsY0FBcUIsQ0FBQzs7Z0JBeEJ2QixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7Ozs7Z0JBUG1CLFVBQVUsdUJBV2YsUUFBUTtnQkFYNkMsU0FBUztnQkFDcEUsS0FBSzs7OzRCQVFYLEtBQUssU0FBQyxlQUFlOztJQXFCeEIsMEJBQUM7Q0FBQSxBQXpCRCxJQXlCQztTQXRCWSxtQkFBbUI7OztJQUM5Qix3Q0FBMEM7Ozs7O0lBRTlCLG9DQUFxQzs7Ozs7SUFBRSx1Q0FBMkI7Ozs7O0lBQUUsb0NBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveSB9IGZyb20gJy4uL3V0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FicFBlcm1pc3Npb25dJyxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCdhYnBQZXJtaXNzaW9uJykgY29uZGl0aW9uOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb25kaXRpb24pIHtcbiAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgLnNlbGVjdChDb25maWdTdGF0ZS5nZXRHcmFudGVkUG9saWN5KHRoaXMuY29uZGl0aW9uKSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveSh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZShpc0dyYW50ZWQgPT4ge1xuICAgICAgICAgIGlmICghaXNHcmFudGVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKFxuICAgICAgICAgICAgICAodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50LFxuICAgICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/directives/visibility.directive.js b/npm/packs/ng/dist/core/esm5/lib/directives/visibility.directive.js new file mode 100644 index 0000000000..3d208599db --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/directives/visibility.directive.js @@ -0,0 +1,108 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Directive, Input, Optional, ElementRef, Renderer2 } from '@angular/core'; +import { Subject } from 'rxjs'; +import snq from 'snq'; +var VisibilityDirective = /** @class */ (function () { + function VisibilityDirective(elRef, renderer) { + this.elRef = elRef; + this.renderer = renderer; + this.completed$ = new Subject(); + } + /** + * @return {?} + */ + VisibilityDirective.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var observer = new MutationObserver((/** + * @param {?} mutations + * @return {?} + */ + function (mutations) { + mutations.forEach((/** + * @param {?} mutation + * @return {?} + */ + function (mutation) { + if (!mutation.target) + return; + /** @type {?} */ + var htmlNodes = snq((/** + * @return {?} + */ + function () { return Array.from(mutation.target.childNodes).filter((/** + * @param {?} node + * @return {?} + */ + function (node) { return node instanceof HTMLElement; })); }), []); + if (!htmlNodes.length) { + _this.renderer.removeChild(_this.elRef.nativeElement.parentElement, _this.elRef.nativeElement); + _this.disconnect(); + } + else { + setTimeout((/** + * @return {?} + */ + function () { + _this.disconnect(); + }), 0); + } + })); + })); + observer.observe(this.focusedElement, { + childList: true, + }); + this.completed$.subscribe((/** + * @return {?} + */ + function () { return observer.disconnect(); })); + }; + /** + * @return {?} + */ + VisibilityDirective.prototype.disconnect = /** + * @return {?} + */ + function () { + this.completed$.next(); + this.completed$.complete(); + }; + VisibilityDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpVisibility]', + },] } + ]; + /** @nocollapse */ + VisibilityDirective.ctorParameters = function () { return [ + { type: ElementRef, decorators: [{ type: Optional }] }, + { type: Renderer2 } + ]; }; + VisibilityDirective.propDecorators = { + focusedElement: [{ type: Input, args: ['abpVisibility',] }] + }; + return VisibilityDirective; +}()); +export { VisibilityDirective }; +if (false) { + /** @type {?} */ + VisibilityDirective.prototype.focusedElement; + /** @type {?} */ + VisibilityDirective.prototype.completed$; + /** + * @type {?} + * @private + */ + VisibilityDirective.prototype.elRef; + /** + * @type {?} + * @private + */ + VisibilityDirective.prototype.renderer; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy92aXNpYmlsaXR5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBRXRCO0lBU0UsNkJBQWdDLEtBQWlCLEVBQVUsUUFBbUI7UUFBOUMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFGOUUsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFFNkMsQ0FBQzs7OztJQUVsRiw2Q0FBZTs7O0lBQWY7UUFBQSxpQkEwQkM7O1lBekJPLFFBQVEsR0FBRyxJQUFJLGdCQUFnQjs7OztRQUFDLFVBQUEsU0FBUztZQUM3QyxTQUFTLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsUUFBUTtnQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO29CQUFFLE9BQU87O29CQUV2QixTQUFTLEdBQUcsR0FBRzs7O2dCQUNuQixjQUFNLE9BQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU07Ozs7Z0JBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLFlBQVksV0FBVyxFQUEzQixDQUEyQixFQUFDLEVBQWxGLENBQWtGLEdBQ3hGLEVBQUUsQ0FDSDtnQkFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtvQkFDckIsS0FBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLEtBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQzVGLEtBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztpQkFDbkI7cUJBQU07b0JBQ0wsVUFBVTs7O29CQUFDO3dCQUNULEtBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDcEIsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNQO1lBQ0gsQ0FBQyxFQUFDLENBQUM7UUFDTCxDQUFDLEVBQUM7UUFFRixRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDcEMsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTOzs7UUFBQyxjQUFNLE9BQUEsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFyQixDQUFxQixFQUFDLENBQUM7SUFDekQsQ0FBQzs7OztJQUVELHdDQUFVOzs7SUFBVjtRQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOztnQkExQ0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCOzs7O2dCQU5vQyxVQUFVLHVCQWFoQyxRQUFRO2dCQWIwQixTQUFTOzs7aUNBUXZELEtBQUssU0FBQyxlQUFlOztJQXVDeEIsMEJBQUM7Q0FBQSxBQTNDRCxJQTJDQztTQXhDWSxtQkFBbUI7OztJQUM5Qiw2Q0FDNEI7O0lBRTVCLHlDQUFvQzs7Ozs7SUFFeEIsb0NBQXFDOzs7OztJQUFFLHVDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9wdGlvbmFsLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FicFZpc2liaWxpdHldJyxcbn0pXG5leHBvcnQgY2xhc3MgVmlzaWJpbGl0eURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoJ2FicFZpc2liaWxpdHknKVxuICBmb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgY29tcGxldGVkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PiB7XG4gICAgICBtdXRhdGlvbnMuZm9yRWFjaChtdXRhdGlvbiA9PiB7XG4gICAgICAgIGlmICghbXV0YXRpb24udGFyZ2V0KSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaHRtbE5vZGVzID0gc25xKFxuICAgICAgICAgICgpID0+IEFycmF5LmZyb20obXV0YXRpb24udGFyZ2V0LmNoaWxkTm9kZXMpLmZpbHRlcihub2RlID0+IG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCksXG4gICAgICAgICAgW10sXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFodG1sTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5mb2N1c2VkRWxlbWVudCwge1xuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb21wbGV0ZWQkLnN1YnNjcmliZSgoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCkpO1xuICB9XG5cbiAgZGlzY29ubmVjdCgpIHtcbiAgICB0aGlzLmNvbXBsZXRlZCQubmV4dCgpO1xuICAgIHRoaXMuY29tcGxldGVkJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/enums/common.js b/npm/packs/ng/dist/core/esm5/lib/enums/common.js new file mode 100644 index 0000000000..0d3c14b333 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/enums/common.js @@ -0,0 +1,12 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @enum {string} */ +var eLayoutType = { + account: 'account', + application: 'application', + empty: 'empty', +}; +export { eLayoutType }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2VudW1zL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7SUFDRSxTQUFVLFNBQVM7SUFDbkIsYUFBYyxhQUFhO0lBQzNCLE9BQVEsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVMYXlvdXRUeXBlIHtcbiAgYWNjb3VudCA9ICdhY2NvdW50JyxcbiAgYXBwbGljYXRpb24gPSAnYXBwbGljYXRpb24nLFxuICBlbXB0eSA9ICdlbXB0eScsXG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/enums/index.js b/npm/packs/ng/dist/core/esm5/lib/enums/index.js new file mode 100644 index 0000000000..f4377e4d9c --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/enums/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './common'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGVBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tb24nO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/guards/auth.guard.js b/npm/packs/ng/dist/core/esm5/lib/guards/auth.guard.js new file mode 100644 index 0000000000..ab1ba105a8 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/guards/auth.guard.js @@ -0,0 +1,62 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Navigate } from '@ngxs/router-plugin'; +import * as i0 from "@angular/core"; +import * as i1 from "angular-oauth2-oidc"; +import * as i2 from "@ngxs/store"; +var AuthGuard = /** @class */ (function () { + function AuthGuard(oauthService, store) { + this.oauthService = oauthService; + this.store = store; + } + /** + * @param {?} _ + * @param {?} state + * @return {?} + */ + AuthGuard.prototype.canActivate = /** + * @param {?} _ + * @param {?} state + * @return {?} + */ + function (_, state) { + /** @type {?} */ + var hasValidAccessToken = this.oauthService.hasValidAccessToken(); + if (hasValidAccessToken) { + return hasValidAccessToken; + } + this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } })); + return false; + }; + AuthGuard.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + AuthGuard.ctorParameters = function () { return [ + { type: OAuthService }, + { type: Store } + ]; }; + /** @nocollapse */ AuthGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(i0.ɵɵinject(i1.OAuthService), i0.ɵɵinject(i2.Store)); }, token: AuthGuard, providedIn: "root" }); + return AuthGuard; +}()); +export { AuthGuard }; +if (false) { + /** + * @type {?} + * @private + */ + AuthGuard.prototype.oauthService; + /** + * @type {?} + * @private + */ + AuthGuard.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ndWFyZHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFFL0M7SUFJRSxtQkFBb0IsWUFBMEIsRUFBVSxLQUFZO1FBQWhELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7OztJQUN4RSwrQkFBVzs7Ozs7SUFBWCxVQUFZLENBQXlCLEVBQUUsS0FBMEI7O1lBQ3pELG1CQUFtQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUU7UUFDbkUsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixPQUFPLG1CQUFtQixDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbkcsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztnQkFkRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQU5RLFlBQVk7Z0JBRFosS0FBSzs7O29CQUZkO0NBc0JDLEFBZkQsSUFlQztTQVpZLFNBQVM7Ozs7OztJQUNSLGlDQUFrQzs7Ozs7SUFBRSwwQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmF2aWdhdGUgfSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG4gIGNhbkFjdGl2YXRlKF86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB8IGJvb2xlYW4gfCBVcmxUcmVlIHtcbiAgICBjb25zdCBoYXNWYWxpZEFjY2Vzc1Rva2VuID0gdGhpcy5vYXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpO1xuICAgIGlmIChoYXNWYWxpZEFjY2Vzc1Rva2VuKSB7XG4gICAgICByZXR1cm4gaGFzVmFsaWRBY2Nlc3NUb2tlbjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZShbJy9hY2NvdW50L2xvZ2luJ10sIG51bGwsIHsgc3RhdGU6IHsgcmVkaXJlY3RVcmw6IHN0YXRlLnVybCB9IH0pKTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/guards/index.js b/npm/packs/ng/dist/core/esm5/lib/guards/index.js new file mode 100644 index 0000000000..54f4b94a2f --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/guards/index.js @@ -0,0 +1,7 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { AuthGuard } from './auth.guard'; +export { PermissionGuard } from './permission.guard'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZ3VhcmRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwwQkFBYyxjQUFjLENBQUM7QUFDN0IsZ0NBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dGguZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uLmd1YXJkJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/guards/permission.guard.js b/npm/packs/ng/dist/core/esm5/lib/guards/permission.guard.js new file mode 100644 index 0000000000..a868ab62d7 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/guards/permission.guard.js @@ -0,0 +1,48 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import * as i0 from "@angular/core"; +import * as i1 from "@ngxs/store"; +var PermissionGuard = /** @class */ (function () { + function PermissionGuard(store) { + this.store = store; + } + /** + * @param {?} __0 + * @return {?} + */ + PermissionGuard.prototype.canActivate = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var data = _a.data; + /** @type {?} */ + var resource = (/** @type {?} */ (data.requiredPolicy)); + return this.store.select(ConfigState.getGrantedPolicy(resource)); + }; + PermissionGuard.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + PermissionGuard.ctorParameters = function () { return [ + { type: Store } + ]; }; + /** @nocollapse */ PermissionGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PermissionGuard_Factory() { return new PermissionGuard(i0.ɵɵinject(i1.Store)); }, token: PermissionGuard, providedIn: "root" }); + return PermissionGuard; +}()); +export { PermissionGuard }; +if (false) { + /** + * @type {?} + * @private + */ + PermissionGuard.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ndWFyZHMvcGVybWlzc2lvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUV4QztJQUlFLHlCQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7O0lBRXBDLHFDQUFXOzs7O0lBQVgsVUFBWSxFQUFnQztZQUE5QixjQUFJOztZQUNWLFFBQVEsR0FBRyxtQkFBQSxJQUFJLENBQUMsY0FBYyxFQUFVO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7Z0JBVEYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFOUSxLQUFLOzs7MEJBRmQ7Q0FnQkMsQUFWRCxJQVVDO1NBUFksZUFBZTs7Ozs7O0lBQ2QsZ0NBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIGNhbkFjdGl2YXRlKHsgZGF0YSB9OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgcmVzb3VyY2UgPSBkYXRhLnJlcXVpcmVkUG9saWN5IGFzIHN0cmluZztcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU3RhdGUuZ2V0R3JhbnRlZFBvbGljeShyZXNvdXJjZSkpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/interceptors/api.interceptor.js b/npm/packs/ng/dist/core/esm5/lib/interceptors/api.interceptor.js new file mode 100644 index 0000000000..9957383e71 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/interceptors/api.interceptor.js @@ -0,0 +1,64 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Store } from '@ngxs/store'; +import { SessionState } from '../states'; +var ApiInterceptor = /** @class */ (function () { + function ApiInterceptor(oAuthService, store) { + this.oAuthService = oAuthService; + this.store = store; + } + /** + * @param {?} request + * @param {?} next + * @return {?} + */ + ApiInterceptor.prototype.intercept = /** + * @param {?} request + * @param {?} next + * @return {?} + */ + function (request, next) { + /** @type {?} */ + var headers = (/** @type {?} */ ({})); + /** @type {?} */ + var token = this.oAuthService.getAccessToken(); + if (!request.headers.has('Authorization') && token) { + headers['Authorization'] = "Bearer " + token; + } + /** @type {?} */ + var lang = this.store.selectSnapshot(SessionState.getLanguage); + if (!request.headers.has('Accept-Language') && lang) { + headers['Accept-Language'] = lang; + } + return next.handle(request.clone({ + setHeaders: headers, + })); + }; + ApiInterceptor.decorators = [ + { type: Injectable } + ]; + /** @nocollapse */ + ApiInterceptor.ctorParameters = function () { return [ + { type: OAuthService }, + { type: Store } + ]; }; + return ApiInterceptor; +}()); +export { ApiInterceptor }; +if (false) { + /** + * @type {?} + * @private + */ + ApiInterceptor.prototype.oAuthService; + /** + * @type {?} + * @private + */ + ApiInterceptor.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6QztJQUVFLHdCQUFvQixZQUEwQixFQUFVLEtBQVk7UUFBaEQsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQUcsQ0FBQzs7Ozs7O0lBRXhFLGtDQUFTOzs7OztJQUFULFVBQVUsT0FBeUIsRUFBRSxJQUFpQjs7WUFDOUMsT0FBTyxHQUFHLG1CQUFBLEVBQUUsRUFBTzs7WUFDbkIsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFO1FBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLEVBQUU7WUFDbEQsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLFlBQVUsS0FBTyxDQUFDO1NBQzlDOztZQUVLLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUNuRCxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDbkM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDWixVQUFVLEVBQUUsT0FBTztTQUNwQixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O2dCQXJCRixVQUFVOzs7O2dCQUpGLFlBQVk7Z0JBQ1osS0FBSzs7SUF5QmQscUJBQUM7Q0FBQSxBQXRCRCxJQXNCQztTQXJCWSxjQUFjOzs7Ozs7SUFDYixzQ0FBa0M7Ozs7O0lBQUUsK0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEludGVyY2VwdG9yLCBIdHRwSGFuZGxlciwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgU2Vzc2lvblN0YXRlIH0gZnJvbSAnLi4vc3RhdGVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFwaUludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvQXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IHt9IGFzIGFueTtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMub0F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XG4gICAgaWYgKCFyZXF1ZXN0LmhlYWRlcnMuaGFzKCdBdXRob3JpemF0aW9uJykgJiYgdG9rZW4pIHtcbiAgICAgIGhlYWRlcnNbJ0F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICAgIH1cblxuICAgIGNvbnN0IGxhbmcgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSk7XG4gICAgaWYgKCFyZXF1ZXN0LmhlYWRlcnMuaGFzKCdBY2NlcHQtTGFuZ3VhZ2UnKSAmJiBsYW5nKSB7XG4gICAgICBoZWFkZXJzWydBY2NlcHQtTGFuZ3VhZ2UnXSA9IGxhbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKFxuICAgICAgcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgIHNldEhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/interceptors/index.js b/npm/packs/ng/dist/core/esm5/lib/interceptors/index.js new file mode 100644 index 0000000000..f1671a034e --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/interceptors/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { ApiInterceptor } from './api.interceptor'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvaW50ZXJjZXB0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwrQkFBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBpLmludGVyY2VwdG9yJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/models/application-configuration.js b/npm/packs/ng/dist/core/esm5/lib/models/application-configuration.js new file mode 100644 index 0000000000..a1bc510083 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/models/application-configuration.js @@ -0,0 +1,105 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var ApplicationConfiguration; +(function (ApplicationConfiguration) { + /** + * @record + */ + function Response() { } + ApplicationConfiguration.Response = Response; + if (false) { + /** @type {?} */ + Response.prototype.localization; + /** @type {?} */ + Response.prototype.auth; + /** @type {?} */ + Response.prototype.setting; + /** @type {?} */ + Response.prototype.currentUser; + /** @type {?} */ + Response.prototype.features; + } + /** + * @record + */ + function Localization() { } + ApplicationConfiguration.Localization = Localization; + if (false) { + /** @type {?} */ + Localization.prototype.values; + /** @type {?} */ + Localization.prototype.languages; + } + /** + * @record + */ + function LocalizationValue() { } + ApplicationConfiguration.LocalizationValue = LocalizationValue; + /** + * @record + */ + function Language() { } + ApplicationConfiguration.Language = Language; + if (false) { + /** @type {?} */ + Language.prototype.cultureName; + /** @type {?} */ + Language.prototype.uiCultureName; + /** @type {?} */ + Language.prototype.displayName; + /** @type {?} */ + Language.prototype.flagIcon; + } + /** + * @record + */ + function Auth() { } + ApplicationConfiguration.Auth = Auth; + if (false) { + /** @type {?} */ + Auth.prototype.policies; + /** @type {?} */ + Auth.prototype.grantedPolicies; + } + /** + * @record + */ + function Policy() { } + ApplicationConfiguration.Policy = Policy; + /** + * @record + */ + function Setting() { } + ApplicationConfiguration.Setting = Setting; + if (false) { + /** @type {?} */ + Setting.prototype.values; + } + /** + * @record + */ + function CurrentUser() { } + ApplicationConfiguration.CurrentUser = CurrentUser; + if (false) { + /** @type {?} */ + CurrentUser.prototype.isAuthenticated; + /** @type {?} */ + CurrentUser.prototype.id; + /** @type {?} */ + CurrentUser.prototype.tenantId; + /** @type {?} */ + CurrentUser.prototype.userName; + } + /** + * @record + */ + function Features() { } + ApplicationConfiguration.Features = Features; + if (false) { + /** @type {?} */ + Features.prototype.values; + } +})(ApplicationConfiguration || (ApplicationConfiguration = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxLQUFXLHdCQUF3QixDQWdEeEM7QUFoREQsV0FBaUIsd0JBQXdCOzs7O0lBQ3ZDLHVCQU1DOzs7O1FBTEMsZ0NBQTJCOztRQUMzQix3QkFBVzs7UUFDWCwyQkFBaUI7O1FBQ2pCLCtCQUF5Qjs7UUFDekIsNEJBQW1COzs7OztJQUdyQiwyQkFHQzs7OztRQUZDLDhCQUEwQjs7UUFDMUIsaUNBQXNCOzs7OztJQUd4QixnQ0FFQzs7Ozs7SUFFRCx1QkFLQzs7OztRQUpDLCtCQUFvQjs7UUFDcEIsaUNBQXNCOztRQUN0QiwrQkFBb0I7O1FBQ3BCLDRCQUFpQjs7Ozs7SUFHbkIsbUJBR0M7Ozs7UUFGQyx3QkFBaUI7O1FBQ2pCLCtCQUF3Qjs7Ozs7SUFHMUIscUJBRUM7Ozs7O0lBRUQsc0JBRUM7Ozs7UUFEQyx5QkFBOEQ7Ozs7O0lBR2hFLDBCQUtDOzs7O1FBSkMsc0NBQXlCOztRQUN6Qix5QkFBVzs7UUFDWCwrQkFBaUI7O1FBQ2pCLCtCQUFpQjs7Ozs7SUFHbkIsdUJBRUM7Ozs7UUFEQywwQkFBZ0I7O0FBRXBCLENBQUMsRUFoRGdCLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFnRHhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24ge1xuICBleHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlIHtcbiAgICBsb2NhbGl6YXRpb246IExvY2FsaXphdGlvbjtcbiAgICBhdXRoOiBBdXRoO1xuICAgIHNldHRpbmc6IFNldHRpbmc7XG4gICAgY3VycmVudFVzZXI6IEN1cnJlbnRVc2VyO1xuICAgIGZlYXR1cmVzOiBGZWF0dXJlcztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemF0aW9uIHtcbiAgICB2YWx1ZXM6IExvY2FsaXphdGlvblZhbHVlO1xuICAgIGxhbmd1YWdlczogTGFuZ3VhZ2VbXTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemF0aW9uVmFsdWUge1xuICAgIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIExhbmd1YWdlIHtcbiAgICBjdWx0dXJlTmFtZTogc3RyaW5nO1xuICAgIHVpQ3VsdHVyZU5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgIGZsYWdJY29uOiBzdHJpbmc7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEF1dGgge1xuICAgIHBvbGljaWVzOiBQb2xpY3k7XG4gICAgZ3JhbnRlZFBvbGljaWVzOiBQb2xpY3k7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFBvbGljeSB7XG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgU2V0dGluZyB7XG4gICAgdmFsdWVzOiB7IFtrZXk6IHN0cmluZ106ICdBYnAuTG9jYWxpemF0aW9uLkRlZmF1bHRMYW5ndWFnZScgfTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudFVzZXIge1xuICAgIGlzQXV0aGVudGljYXRlZDogYm9vbGVhbjtcbiAgICBpZDogc3RyaW5nO1xuICAgIHRlbmFudElkOiBzdHJpbmc7XG4gICAgdXNlck5hbWU6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZXMge1xuICAgIHZhbHVlczogU2V0dGluZztcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/models/common.js b/npm/packs/ng/dist/core/esm5/lib/models/common.js new file mode 100644 index 0000000000..5f4bc9a50a --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/models/common.js @@ -0,0 +1,89 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var ABP; +(function (ABP) { + /** + * @record + */ + function Root() { } + ABP.Root = Root; + if (false) { + /** @type {?} */ + Root.prototype.environment; + /** @type {?} */ + Root.prototype.requirements; + } + /** + * @record + * @template T + */ + function PagedItemsResponse() { } + ABP.PagedItemsResponse = PagedItemsResponse; + if (false) { + /** @type {?} */ + PagedItemsResponse.prototype.items; + } + /** + * @record + */ + function PageQueryParams() { } + ABP.PageQueryParams = PageQueryParams; + if (false) { + /** @type {?|undefined} */ + PageQueryParams.prototype.filter; + /** @type {?|undefined} */ + PageQueryParams.prototype.sorting; + /** @type {?|undefined} */ + PageQueryParams.prototype.skipCount; + /** @type {?|undefined} */ + PageQueryParams.prototype.maxResultCount; + } + /** + * @record + */ + function Route() { } + ABP.Route = Route; + if (false) { + /** @type {?|undefined} */ + Route.prototype.children; + /** @type {?|undefined} */ + Route.prototype.invisible; + /** @type {?|undefined} */ + Route.prototype.layout; + /** @type {?} */ + Route.prototype.name; + /** @type {?|undefined} */ + Route.prototype.order; + /** @type {?|undefined} */ + Route.prototype.parentName; + /** @type {?} */ + Route.prototype.path; + /** @type {?|undefined} */ + Route.prototype.requiredPolicy; + } + /** + * @record + */ + function FullRoute() { } + ABP.FullRoute = FullRoute; + if (false) { + /** @type {?|undefined} */ + FullRoute.prototype.url; + /** @type {?|undefined} */ + FullRoute.prototype.wrapper; + } + /** + * @record + */ + function BasicItem() { } + ABP.BasicItem = BasicItem; + if (false) { + /** @type {?} */ + BasicItem.prototype.id; + /** @type {?} */ + BasicItem.prototype.name; + } +})(ABP || (ABP = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQU0sS0FBVyxHQUFHLENBeUNuQjtBQXpDRCxXQUFpQixHQUFHOzs7O0lBQ2xCLG1CQUdDOzs7O1FBRkMsMkJBQXlDOztRQUN6Qyw0QkFBa0M7Ozs7OztJQU9wQyxpQ0FFQzs7OztRQURDLG1DQUFXOzs7OztJQUdiLDhCQUtDOzs7O1FBSkMsaUNBQWdCOztRQUNoQixrQ0FBaUI7O1FBQ2pCLG9DQUFtQjs7UUFDbkIseUNBQXdCOzs7OztJQUcxQixvQkFTQzs7OztRQVJDLHlCQUFtQjs7UUFDbkIsMEJBQW9COztRQUNwQix1QkFBcUI7O1FBQ3JCLHFCQUFhOztRQUNiLHNCQUFlOztRQUNmLDJCQUFvQjs7UUFDcEIscUJBQWE7O1FBQ2IsK0JBQXdCOzs7OztJQUcxQix3QkFHQzs7OztRQUZDLHdCQUFhOztRQUNiLDRCQUFrQjs7Ozs7SUFHcEIsd0JBR0M7Ozs7UUFGQyx1QkFBVzs7UUFDWCx5QkFBYTs7QUFFakIsQ0FBQyxFQXpDZ0IsR0FBRyxLQUFILEdBQUcsUUF5Q25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgZUxheW91dFR5cGUgfSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQUJQIHtcbiAgZXhwb3J0IGludGVyZmFjZSBSb290IHtcbiAgICBlbnZpcm9ubWVudDogUGFydGlhbDxDb25maWcuRW52aXJvbm1lbnQ+O1xuICAgIHJlcXVpcmVtZW50czogQ29uZmlnLlJlcXVpcmVtZW50cztcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIFBhZ2VkUmVzcG9uc2U8VD4gPSB7XG4gICAgdG90YWxDb3VudDogbnVtYmVyO1xuICB9ICYgUGFnZWRJdGVtc1Jlc3BvbnNlPFQ+O1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUGFnZWRJdGVtc1Jlc3BvbnNlPFQ+IHtcbiAgICBpdGVtczogVFtdO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBQYWdlUXVlcnlQYXJhbXMge1xuICAgIGZpbHRlcj86IHN0cmluZztcbiAgICBzb3J0aW5nPzogc3RyaW5nO1xuICAgIHNraXBDb3VudD86IG51bWJlcjtcbiAgICBtYXhSZXN1bHRDb3VudD86IG51bWJlcjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUm91dGUge1xuICAgIGNoaWxkcmVuPzogUm91dGVbXTtcbiAgICBpbnZpc2libGU/OiBib29sZWFuO1xuICAgIGxheW91dD86IGVMYXlvdXRUeXBlO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBwYXJlbnROYW1lPzogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICByZXF1aXJlZFBvbGljeT86IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgRnVsbFJvdXRlIGV4dGVuZHMgUm91dGUge1xuICAgIHVybD86IHN0cmluZztcbiAgICB3cmFwcGVyPzogYm9vbGVhbjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQmFzaWNJdGVtIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/models/config.js b/npm/packs/ng/dist/core/esm5/lib/models/config.js new file mode 100644 index 0000000000..d79d225037 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/models/config.js @@ -0,0 +1,40 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Config; +(function (Config) { + /** + * @record + */ + function State() { } + Config.State = State; + /** + * @record + */ + function Environment() { } + Config.Environment = Environment; + if (false) { + /** @type {?} */ + Environment.prototype.production; + /** @type {?} */ + Environment.prototype.oAuthConfig; + /** @type {?} */ + Environment.prototype.apis; + } + /** + * @record + */ + function Apis() { } + Config.Apis = Apis; + /** + * @record + */ + function Requirements() { } + Config.Requirements = Requirements; + if (false) { + /** @type {?} */ + Requirements.prototype.layouts; + } +})(Config || (Config = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQU0sS0FBVyxNQUFNLENBa0J0QjtBQWxCRCxXQUFpQixNQUFNOzs7O0lBQ3JCLG9CQUVDOzs7OztJQUVELDBCQUlDOzs7O1FBSEMsaUNBQW9COztRQUNwQixrQ0FBd0I7O1FBQ3hCLDJCQUFXOzs7OztJQUdiLG1CQUVDOzs7OztJQUVELDJCQUVDOzs7O1FBREMsK0JBQXFCOztBQUV6QixDQUFDLEVBbEJnQixNQUFNLEtBQU4sTUFBTSxRQWtCdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoQ29uZmlnIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29uZmlnIHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG4gICAgcHJvZHVjdGlvbjogYm9vbGVhbjtcbiAgICBvQXV0aENvbmZpZzogQXV0aENvbmZpZztcbiAgICBhcGlzOiBBcGlzO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBBcGlzIHtcbiAgICBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBSZXF1aXJlbWVudHMge1xuICAgIGxheW91dHM6IFR5cGU8YW55PltdO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/models/index.js b/npm/packs/ng/dist/core/esm5/lib/models/index.js new file mode 100644 index 0000000000..e5a0580819 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/models/index.js @@ -0,0 +1,11 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './application-configuration'; +export {} from './common'; +export {} from './config'; +export { Rest } from './rest'; +export {} from './session'; +export {} from './profile'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxlQUFjLDZCQUE2QixDQUFDO0FBQzVDLGVBQWMsVUFBVSxDQUFDO0FBQ3pCLGVBQWMsVUFBVSxDQUFDO0FBQ3pCLHFCQUFjLFFBQVEsQ0FBQztBQUN2QixlQUFjLFdBQVcsQ0FBQztBQUMxQixlQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb24tY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXNzaW9uJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZmlsZSc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/models/profile.js b/npm/packs/ng/dist/core/esm5/lib/models/profile.js new file mode 100644 index 0000000000..63711ddf03 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/models/profile.js @@ -0,0 +1,45 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Profile; +(function (Profile) { + /** + * @record + */ + function State() { } + Profile.State = State; + if (false) { + /** @type {?} */ + State.prototype.profile; + } + /** + * @record + */ + function Response() { } + Profile.Response = Response; + if (false) { + /** @type {?} */ + Response.prototype.userName; + /** @type {?} */ + Response.prototype.email; + /** @type {?} */ + Response.prototype.name; + /** @type {?} */ + Response.prototype.surname; + /** @type {?} */ + Response.prototype.phoneNumber; + } + /** + * @record + */ + function ChangePasswordRequest() { } + Profile.ChangePasswordRequest = ChangePasswordRequest; + if (false) { + /** @type {?} */ + ChangePasswordRequest.prototype.currentPassword; + /** @type {?} */ + ChangePasswordRequest.prototype.newPassword; + } +})(Profile || (Profile = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvcHJvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxLQUFXLE9BQU8sQ0FpQnZCO0FBakJELFdBQWlCLE9BQU87Ozs7SUFDdEIsb0JBRUM7Ozs7UUFEQyx3QkFBa0I7Ozs7O0lBR3BCLHVCQU1DOzs7O1FBTEMsNEJBQWlCOztRQUNqQix5QkFBYzs7UUFDZCx3QkFBYTs7UUFDYiwyQkFBZ0I7O1FBQ2hCLCtCQUFvQjs7Ozs7SUFHdEIsb0NBR0M7Ozs7UUFGQyxnREFBd0I7O1FBQ3hCLDRDQUFvQjs7QUFFeEIsQ0FBQyxFQWpCZ0IsT0FBTyxLQUFQLE9BQU8sUUFpQnZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBQcm9maWxlIHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gICAgcHJvZmlsZTogUmVzcG9uc2U7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlIHtcbiAgICB1c2VyTmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHN1cm5hbWU6IHN0cmluZztcbiAgICBwaG9uZU51bWJlcjogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VQYXNzd29yZFJlcXVlc3Qge1xuICAgIGN1cnJlbnRQYXNzd29yZDogc3RyaW5nO1xuICAgIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/models/rest.js b/npm/packs/ng/dist/core/esm5/lib/models/rest.js new file mode 100644 index 0000000000..5ae10ff110 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/models/rest.js @@ -0,0 +1,43 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Rest; +(function (Rest) { + /** + * @record + */ + function Config() { } + Rest.Config = Config; + if (false) { + /** @type {?|undefined} */ + Config.prototype.throwErr; + /** @type {?|undefined} */ + Config.prototype.observe; + } + /** + * @record + * @template T + */ + function Request() { } + Rest.Request = Request; + if (false) { + /** @type {?|undefined} */ + Request.prototype.body; + /** @type {?|undefined} */ + Request.prototype.headers; + /** @type {?} */ + Request.prototype.method; + /** @type {?|undefined} */ + Request.prototype.params; + /** @type {?|undefined} */ + Request.prototype.reportProgress; + /** @type {?|undefined} */ + Request.prototype.responseType; + /** @type {?} */ + Request.prototype.url; + /** @type {?|undefined} */ + Request.prototype.withCredentials; + } +})(Rest || (Rest = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvcmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsTUFBTSxLQUFXLElBQUksQ0FxQ3BCO0FBckNELFdBQWlCLElBQUk7Ozs7SUFDbkIscUJBR0M7Ozs7UUFGQywwQkFBbUI7O1FBQ25CLHlCQUFrQjs7Ozs7O0lBZ0JwQixzQkFpQkM7Ozs7UUFoQkMsdUJBQVM7O1FBQ1QsMEJBSU07O1FBQ04seUJBQWU7O1FBQ2YseUJBSU07O1FBQ04saUNBQXlCOztRQUN6QiwrQkFBNEI7O1FBQzVCLHNCQUFZOztRQUNaLGtDQUEwQjs7QUFFOUIsQ0FBQyxFQXJDZ0IsSUFBSSxLQUFKLElBQUksUUFxQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgUmVzdCB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnIHtcbiAgICB0aHJvd0Vycj86IGJvb2xlYW47XG4gICAgb2JzZXJ2ZT86IE9ic2VydmU7XG4gIH1cblxuICBleHBvcnQgY29uc3QgZW51bSBPYnNlcnZlIHtcbiAgICBCb2R5ID0gJ2JvZHknLFxuICAgIEV2ZW50cyA9ICdldmVudHMnLFxuICAgIFJlc3BvbnNlID0gJ3Jlc3BvbnNlJyxcbiAgfVxuXG4gIGV4cG9ydCBjb25zdCBlbnVtIFJlc3BvbnNlVHlwZSB7XG4gICAgQXJyYXlCdWZmZXIgPSAnYXJyYXlidWZmZXInLFxuICAgIEJsb2IgPSAnYmxvYicsXG4gICAgSlNPTiA9ICdqc29uJyxcbiAgICBUZXh0ID0gJ3RleHQnLFxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0PFQ+IHtcbiAgICBib2R5PzogVDtcbiAgICBoZWFkZXJzPzpcbiAgICAgIHwgSHR0cEhlYWRlcnNcbiAgICAgIHwge1xuICAgICAgICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgICB9O1xuICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIHBhcmFtcz86XG4gICAgICB8IEh0dHBQYXJhbXNcbiAgICAgIHwge1xuICAgICAgICAgIFtwYXJhbTogc3RyaW5nXTogYW55O1xuICAgICAgICB9O1xuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgICByZXNwb25zZVR5cGU/OiBSZXNwb25zZVR5cGU7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/models/session.js b/npm/packs/ng/dist/core/esm5/lib/models/session.js new file mode 100644 index 0000000000..900196e920 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/models/session.js @@ -0,0 +1,17 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Session; +(function (Session) { + /** + * @record + */ + function State() { } + Session.State = State; + if (false) { + /** @type {?} */ + State.prototype.language; + } +})(Session || (Session = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxLQUFXLE9BQU8sQ0FJdkI7QUFKRCxXQUFpQixPQUFPOzs7O0lBQ3RCLG9CQUVDOzs7O1FBREMseUJBQWlCOztBQUVyQixDQUFDLEVBSmdCLE9BQU8sS0FBUCxPQUFPLFFBSXZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBTZXNzaW9uIHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gICAgbGFuZ3VhZ2U6IHN0cmluZztcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/pipes/localization.pipe.js b/npm/packs/ng/dist/core/esm5/lib/pipes/localization.pipe.js new file mode 100644 index 0000000000..dc98b4716d --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/pipes/localization.pipe.js @@ -0,0 +1,81 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Pipe } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import { takeUntilDestroy } from '../utils'; +import { distinctUntilChanged } from 'rxjs/operators'; +var LocalizationPipe = /** @class */ (function () { + function LocalizationPipe(store) { + this.store = store; + this.initialized = false; + } + /** + * @param {?} value + * @param {...?} interpolateParams + * @return {?} + */ + LocalizationPipe.prototype.transform = /** + * @param {?} value + * @param {...?} interpolateParams + * @return {?} + */ + function (value) { + var _this = this; + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + if (!this.initialized) { + this.initialized = true; + this.store + .select(ConfigState.getCopy.apply(ConfigState, tslib_1.__spread([value], interpolateParams.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return (Array.isArray(val) ? tslib_1.__spread(acc, val) : tslib_1.__spread(acc, [val])); }), [])))) + .pipe(takeUntilDestroy(this), distinctUntilChanged()) + .subscribe((/** + * @param {?} copy + * @return {?} + */ + function (copy) { return (_this.value = copy); })); + } + return this.value; + }; + /** + * @return {?} + */ + LocalizationPipe.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + LocalizationPipe.decorators = [ + { type: Pipe, args: [{ + name: 'abpLocalization', + pure: false, + },] } + ]; + /** @nocollapse */ + LocalizationPipe.ctorParameters = function () { return [ + { type: Store } + ]; }; + return LocalizationPipe; +}()); +export { LocalizationPipe }; +if (false) { + /** @type {?} */ + LocalizationPipe.prototype.initialized; + /** @type {?} */ + LocalizationPipe.prototype.value; + /** + * @type {?} + * @private + */ + LocalizationPipe.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvcGlwZXMvbG9jYWxpemF0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXREO0lBU0UsMEJBQW9CLEtBQVk7UUFBWixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBSmhDLGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBSU0sQ0FBQzs7Ozs7O0lBRXBDLG9DQUFTOzs7OztJQUFULFVBQVUsS0FBYTtRQUF2QixpQkFtQkM7UUFuQndCLDJCQUE4QjthQUE5QixVQUE4QixFQUE5QixxQkFBOEIsRUFBOUIsSUFBOEI7WUFBOUIsMENBQThCOztRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUV4QixJQUFJLENBQUMsS0FBSztpQkFDUCxNQUFNLENBQ0wsV0FBVyxDQUFDLE9BQU8sT0FBbkIsV0FBVyxvQkFDVCxLQUFLLEdBQ0YsaUJBQWlCLENBQUMsTUFBTTs7Ozs7WUFBQyxVQUFDLEdBQUcsRUFBRSxHQUFHLElBQUssT0FBQSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxrQkFBSyxHQUFHLEVBQUssR0FBRyxFQUFFLENBQUMsa0JBQUssR0FBRyxHQUFFLEdBQUcsRUFBQyxDQUFDLEVBQXZELENBQXVELEdBQUUsRUFBRSxDQUFDLEdBRXpHO2lCQUNBLElBQUksQ0FDSCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFDdEIsb0JBQW9CLEVBQUUsQ0FDdkI7aUJBQ0EsU0FBUzs7OztZQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsQ0FBQyxLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFuQixDQUFtQixFQUFDLENBQUM7U0FDM0M7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQzs7OztJQUVELHNDQUFXOzs7SUFBWCxjQUFlLENBQUM7O2dCQWhDakIsSUFBSSxTQUFDO29CQUNKLElBQUksRUFBRSxpQkFBaUI7b0JBQ3ZCLElBQUksRUFBRSxLQUFLO2lCQUNaOzs7O2dCQVJRLEtBQUs7O0lBc0NkLHVCQUFDO0NBQUEsQUFqQ0QsSUFpQ0M7U0E3QlksZ0JBQWdCOzs7SUFDM0IsdUNBQTZCOztJQUU3QixpQ0FBYzs7Ozs7SUFFRixpQ0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdhYnBMb2NhbGl6YXRpb24nLFxuICBwdXJlOiBmYWxzZSwgLy8gcmVxdWlyZWQgdG8gdXBkYXRlIHRoZSB2YWx1ZVxufSlcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB2YWx1ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCAuLi5pbnRlcnBvbGF0ZVBhcmFtczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgLnNlbGVjdChcbiAgICAgICAgICBDb25maWdTdGF0ZS5nZXRDb3B5KFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAuLi5pbnRlcnBvbGF0ZVBhcmFtcy5yZWR1Y2UoKGFjYywgdmFsKSA9PiAoQXJyYXkuaXNBcnJheSh2YWwpID8gWy4uLmFjYywgLi4udmFsXSA6IFsuLi5hY2MsIHZhbF0pLCBbXSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95KHRoaXMpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShjb3B5ID0+ICh0aGlzLnZhbHVlID0gY29weSkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/plugins/config.plugin.js b/npm/packs/ng/dist/core/esm5/lib/plugins/config.plugin.js new file mode 100644 index 0000000000..dcb9eb9a57 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/plugins/config.plugin.js @@ -0,0 +1,170 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Injectable, Inject, InjectionToken } from '@angular/core'; +import { setValue, actionMatcher, InitState, UpdateState } from '@ngxs/store'; +import { Router } from '@angular/router'; +import snq from 'snq'; +import { organizeRoutes } from '../utils/route-utils'; +/** @type {?} */ +export var NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS'); +var ConfigPlugin = /** @class */ (function () { + function ConfigPlugin(options, router) { + this.options = options; + this.router = router; + this.initialized = false; + } + /** + * @param {?} state + * @param {?} event + * @param {?} next + * @return {?} + */ + ConfigPlugin.prototype.handle = /** + * @param {?} state + * @param {?} event + * @param {?} next + * @return {?} + */ + function (state, event, next) { + /** @type {?} */ + var matches = actionMatcher(event); + /** @type {?} */ + var isInitAction = matches(InitState) || matches(UpdateState); + // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []); + if (isInitAction && !this.initialized) { + var _a = transformRoutes(this.router.config), routes = _a.routes, wrappers = _a.wrappers; + routes = organizeRoutes(routes, wrappers); + state = setValue(state, 'ConfigState', tslib_1.__assign({}, (state.ConfigState && tslib_1.__assign({}, state.ConfigState)), this.options, { routes: routes })); + this.initialized = true; + } + return next(state, event); + }; + ConfigPlugin.decorators = [ + { type: Injectable } + ]; + /** @nocollapse */ + ConfigPlugin.ctorParameters = function () { return [ + { type: undefined, decorators: [{ type: Inject, args: [NGXS_CONFIG_PLUGIN_OPTIONS,] }] }, + { type: Router } + ]; }; + return ConfigPlugin; +}()); +export { ConfigPlugin }; +if (false) { + /** + * @type {?} + * @private + */ + ConfigPlugin.prototype.initialized; + /** + * @type {?} + * @private + */ + ConfigPlugin.prototype.options; + /** + * @type {?} + * @private + */ + ConfigPlugin.prototype.router; +} +/** + * @param {?=} routes + * @param {?=} wrappers + * @return {?} + */ +function transformRoutes(routes, wrappers) { + if (routes === void 0) { routes = []; } + if (wrappers === void 0) { wrappers = []; } + /** @type {?} */ + var abpRoutes = routes + .filter((/** + * @param {?} route + * @return {?} + */ + function (route) { + return snq((/** + * @return {?} + */ + function () { return route.data.routes.find((/** + * @param {?} r + * @return {?} + */ + function (r) { return r.path === route.path; })); }), false); + })) + .reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return tslib_1.__spread(acc, val.data.routes); }), []); + wrappers = abpRoutes.filter((/** + * @param {?} ar + * @return {?} + */ + function (ar) { return ar.wrapper; })); + /** @type {?} */ + var transformed = (/** @type {?} */ ([])); + routes + .filter((/** + * @param {?} route + * @return {?} + */ + function (route) { return route.component || route.loadChildren; })) + .forEach((/** + * @param {?} route + * @return {?} + */ + function (route) { + /** @type {?} */ + var abpPackage = abpRoutes.find((/** + * @param {?} abp + * @return {?} + */ + function (abp) { return abp.path.toLowerCase() === route.path.toLowerCase(); })); + var length = transformed.length; + if (abpPackage) { + transformed.push(abpPackage); + } + if (transformed.length === length) { + transformed.push((/** @type {?} */ ({ + path: route.path, + name: snq((/** + * @return {?} + */ + function () { return route.data.routes.name; }), route.path), + children: route.data.routes.children || [], + }))); + } + })); + return { routes: setUrls(transformed), wrappers: wrappers }; +} +/** + * @param {?} routes + * @param {?=} parentUrl + * @return {?} + */ +function setUrls(routes, parentUrl) { + if (parentUrl) { + // this if block using for only recursive call + return routes.map((/** + * @param {?} route + * @return {?} + */ + function (route) { return (tslib_1.__assign({}, route, { url: parentUrl + "/" + route.path }, (route.children && + route.children.length && { + children: setUrls(route.children, parentUrl + "/" + route.path), + }))); })); + } + return routes.map((/** + * @param {?} route + * @return {?} + */ + function (route) { return (tslib_1.__assign({}, route, { url: "/" + route.path }, (route.children && + route.children.length && { + children: setUrls(route.children, "/" + route.path), + }))); })); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9wbHVnaW5zL2NvbmZpZy5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFjLFFBQVEsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFDNUcsT0FBTyxFQUFFLE1BQU0sRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUN0QixPQUFPLEVBQTZCLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUVqRixNQUFNLEtBQU8sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQUMsNEJBQTRCLENBQUM7QUFFMUY7SUFJRSxzQkFBd0QsT0FBaUIsRUFBVSxNQUFjO1FBQXpDLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRnpGLGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBRStELENBQUM7Ozs7Ozs7SUFFckcsNkJBQU07Ozs7OztJQUFOLFVBQU8sS0FBVSxFQUFFLEtBQVUsRUFBRSxJQUFzQjs7WUFDN0MsT0FBTyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7O1lBQzlCLFlBQVksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUUvRCw2R0FBNkc7UUFDN0csSUFBSSxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2pDLElBQUEsd0NBQTBELEVBQXhELGtCQUFNLEVBQUUsc0JBQWdEO1lBQzlELE1BQU0sR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRTFDLEtBQUssR0FBRyxR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LEdBQUc7Ozs7UUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLHNCQUN0QixLQUFLLElBQ1IsR0FBRyxFQUFLLFNBQVMsU0FBSSxLQUFLLENBQUMsSUFBTSxJQUM5QixDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQ2hCLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJO1lBQ3ZCLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBSyxTQUFTLFNBQUksS0FBSyxDQUFDLElBQU0sQ0FBQztTQUNoRSxDQUFDLEVBQ0osRUFQeUIsQ0FPekIsRUFBQyxDQUFDO0tBQ0w7SUFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHOzs7O0lBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxzQkFDdEIsS0FBSyxJQUNSLEdBQUcsRUFBRSxNQUFJLEtBQUssQ0FBQyxJQUFNLElBQ2xCLENBQUMsS0FBSyxDQUFDLFFBQVE7UUFDaEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUk7UUFDdkIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQUksS0FBSyxDQUFDLElBQU0sQ0FBQztLQUNwRCxDQUFDLEVBQ0osRUFQeUIsQ0FPekIsRUFBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neHNQbHVnaW4sIHNldFZhbHVlLCBhY3Rpb25NYXRjaGVyLCBJbml0U3RhdGUsIFVwZGF0ZVN0YXRlLCBOZ3hzTmV4dFBsdWdpbkZuIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcbmltcG9ydCB7IHNldENoaWxkUm91dGUsIHNvcnRSb3V0ZXMsIG9yZ2FuaXplUm91dGVzIH0gZnJvbSAnLi4vdXRpbHMvcm91dGUtdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ05HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TJyk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25maWdQbHVnaW4gaW1wbGVtZW50cyBOZ3hzUGx1Z2luIHtcbiAgcHJpdmF0ZSBpbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMpIHByaXZhdGUgb3B0aW9uczogQUJQLlJvb3QsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgaGFuZGxlKHN0YXRlOiBhbnksIGV2ZW50OiBhbnksIG5leHQ6IE5neHNOZXh0UGx1Z2luRm4pIHtcbiAgICBjb25zdCBtYXRjaGVzID0gYWN0aW9uTWF0Y2hlcihldmVudCk7XG4gICAgY29uc3QgaXNJbml0QWN0aW9uID0gbWF0Y2hlcyhJbml0U3RhdGUpIHx8IG1hdGNoZXMoVXBkYXRlU3RhdGUpO1xuXG4gICAgLy8gY29uc3QgbGF5b3V0cyA9IHNucSgoKSA9PiB0aGlzLm9wdGlvbnMucmVxdWlyZW1lbnRzLmxheW91dHMuZmlsdGVyKGxheW91dCA9PiBsYXlvdXQgaW5zdGFuY2VvZiBUeXBlKSwgW10pO1xuICAgIGlmIChpc0luaXRBY3Rpb24gJiYgIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGxldCB7IHJvdXRlcywgd3JhcHBlcnMgfSA9IHRyYW5zZm9ybVJvdXRlcyh0aGlzLnJvdXRlci5jb25maWcpO1xuICAgICAgcm91dGVzID0gb3JnYW5pemVSb3V0ZXMocm91dGVzLCB3cmFwcGVycyk7XG5cbiAgICAgIHN0YXRlID0gc2V0VmFsdWUoc3RhdGUsICdDb25maWdTdGF0ZScsIHtcbiAgICAgICAgLi4uKHN0YXRlLkNvbmZpZ1N0YXRlICYmIHsgLi4uc3RhdGUuQ29uZmlnU3RhdGUgfSksXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgICAgcm91dGVzLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHN0YXRlLCBldmVudCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtUm91dGVzKHJvdXRlczogUm91dGVzID0gW10sIHdyYXBwZXJzOiBBQlAuRnVsbFJvdXRlW10gPSBbXSk6IGFueSB7XG4gIGNvbnN0IGFicFJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdID0gcm91dGVzXG4gICAgLmZpbHRlcihyb3V0ZSA9PiB7XG4gICAgICByZXR1cm4gc25xKCgpID0+IHJvdXRlLmRhdGEucm91dGVzLmZpbmQociA9PiByLnBhdGggPT09IHJvdXRlLnBhdGgpLCBmYWxzZSk7XG4gICAgfSlcbiAgICAucmVkdWNlKChhY2MsIHZhbCkgPT4gWy4uLmFjYywgLi4udmFsLmRhdGEucm91dGVzXSwgW10pO1xuXG4gIHdyYXBwZXJzID0gYWJwUm91dGVzLmZpbHRlcihhciA9PiBhci53cmFwcGVyKTtcbiAgY29uc3QgdHJhbnNmb3JtZWQgPSBbXSBhcyBBQlAuRnVsbFJvdXRlW107XG4gIHJvdXRlc1xuICAgIC5maWx0ZXIocm91dGUgPT4gcm91dGUuY29tcG9uZW50IHx8IHJvdXRlLmxvYWRDaGlsZHJlbilcbiAgICAuZm9yRWFjaChyb3V0ZSA9PiB7XG4gICAgICBjb25zdCBhYnBQYWNrYWdlID0gYWJwUm91dGVzLmZpbmQoYWJwID0+IGFicC5wYXRoLnRvTG93ZXJDYXNlKCkgPT09IHJvdXRlLnBhdGgudG9Mb3dlckNhc2UoKSk7XG4gICAgICBjb25zdCB7IGxlbmd0aCB9ID0gdHJhbnNmb3JtZWQ7XG5cbiAgICAgIGlmIChhYnBQYWNrYWdlKSB7XG4gICAgICAgIHRyYW5zZm9ybWVkLnB1c2goYWJwUGFja2FnZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0cmFuc2Zvcm1lZC5sZW5ndGggPT09IGxlbmd0aCkge1xuICAgICAgICB0cmFuc2Zvcm1lZC5wdXNoKHtcbiAgICAgICAgICBwYXRoOiByb3V0ZS5wYXRoLFxuICAgICAgICAgIG5hbWU6IHNucSgoKSA9PiByb3V0ZS5kYXRhLnJvdXRlcy5uYW1lLCByb3V0ZS5wYXRoKSxcbiAgICAgICAgICBjaGlsZHJlbjogcm91dGUuZGF0YS5yb3V0ZXMuY2hpbGRyZW4gfHwgW10sXG4gICAgICAgIH0gYXMgQUJQLkZ1bGxSb3V0ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgcmV0dXJuIHsgcm91dGVzOiBzZXRVcmxzKHRyYW5zZm9ybWVkKSwgd3JhcHBlcnMgfTtcbn1cblxuZnVuY3Rpb24gc2V0VXJscyhyb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSwgcGFyZW50VXJsPzogc3RyaW5nKTogQUJQLkZ1bGxSb3V0ZVtdIHtcbiAgaWYgKHBhcmVudFVybCkge1xuICAgIC8vIHRoaXMgaWYgYmxvY2sgdXNpbmcgZm9yIG9ubHkgcmVjdXJzaXZlIGNhbGxcblxuICAgIHJldHVybiByb3V0ZXMubWFwKHJvdXRlID0+ICh7XG4gICAgICAuLi5yb3V0ZSxcbiAgICAgIHVybDogYCR7cGFyZW50VXJsfS8ke3JvdXRlLnBhdGh9YCxcbiAgICAgIC4uLihyb3V0ZS5jaGlsZHJlbiAmJlxuICAgICAgICByb3V0ZS5jaGlsZHJlbi5sZW5ndGggJiYge1xuICAgICAgICAgIGNoaWxkcmVuOiBzZXRVcmxzKHJvdXRlLmNoaWxkcmVuLCBgJHtwYXJlbnRVcmx9LyR7cm91dGUucGF0aH1gKSxcbiAgICAgICAgfSksXG4gICAgfSkpO1xuICB9XG5cbiAgcmV0dXJuIHJvdXRlcy5tYXAocm91dGUgPT4gKHtcbiAgICAuLi5yb3V0ZSxcbiAgICB1cmw6IGAvJHtyb3V0ZS5wYXRofWAsXG4gICAgLi4uKHJvdXRlLmNoaWxkcmVuICYmXG4gICAgICByb3V0ZS5jaGlsZHJlbi5sZW5ndGggJiYge1xuICAgICAgICBjaGlsZHJlbjogc2V0VXJscyhyb3V0ZS5jaGlsZHJlbiwgYC8ke3JvdXRlLnBhdGh9YCksXG4gICAgICB9KSxcbiAgfSkpO1xufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/plugins/index.js b/npm/packs/ng/dist/core/esm5/lib/plugins/index.js new file mode 100644 index 0000000000..451fc91aad --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/plugins/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { NGXS_CONFIG_PLUGIN_OPTIONS, ConfigPlugin } from './config.plugin'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvcGx1Z2lucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEseURBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpZy5wbHVnaW4nO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/services/application-configuration.service.js b/npm/packs/ng/dist/core/esm5/lib/services/application-configuration.service.js new file mode 100644 index 0000000000..a8e94ac60a --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/services/application-configuration.service.js @@ -0,0 +1,47 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { RestService } from './rest.service'; +import * as i0 from "@angular/core"; +import * as i1 from "./rest.service"; +var ApplicationConfigurationService = /** @class */ (function () { + function ApplicationConfigurationService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + ApplicationConfigurationService.prototype.getConfiguration = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/abp/application-configuration', + }; + return this.rest.request(request); + }; + ApplicationConfigurationService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + ApplicationConfigurationService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ ApplicationConfigurationService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ApplicationConfigurationService_Factory() { return new ApplicationConfigurationService(i0.ɵɵinject(i1.RestService)); }, token: ApplicationConfigurationService, providedIn: "root" }); + return ApplicationConfigurationService; +}()); +export { ApplicationConfigurationService }; +if (false) { + /** + * @type {?} + * @private + */ + ApplicationConfigurationService.prototype.rest; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU3QztJQUlFLHlDQUFvQixJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO0lBQUcsQ0FBQzs7OztJQUV6QywwREFBZ0I7OztJQUFoQjs7WUFDUSxPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLG9DQUFvQztTQUMxQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQTBDLE9BQU8sQ0FBQyxDQUFDO0lBQzdFLENBQUM7O2dCQWJGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBSlEsV0FBVzs7OzBDQUhwQjtDQW1CQyxBQWRELElBY0M7U0FYWSwrQkFBK0I7Ozs7OztJQUM5QiwrQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sIFJlc3QgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuL3Jlc3Quc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0OiBSZXN0U2VydmljZSkge31cblxuICBnZXRDb25maWd1cmF0aW9uKCk6IE9ic2VydmFibGU8QXBwbGljYXRpb25Db25maWd1cmF0aW9uLlJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PG51bGw+ID0ge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogJy9hcGkvYWJwL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24nLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgQXBwbGljYXRpb25Db25maWd1cmF0aW9uLlJlc3BvbnNlPihyZXF1ZXN0KTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/services/config.service.js b/npm/packs/ng/dist/core/esm5/lib/services/config.service.js new file mode 100644 index 0000000000..5157384594 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/services/config.service.js @@ -0,0 +1,76 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import * as i0 from "@angular/core"; +import * as i1 from "@ngxs/store"; +var ConfigService = /** @class */ (function () { + function ConfigService(store) { + this.store = store; + } + /** + * @return {?} + */ + ConfigService.prototype.getAll = /** + * @return {?} + */ + function () { + return this.store.selectSnapshot(ConfigState.getAll); + }; + /** + * @param {?} key + * @return {?} + */ + ConfigService.prototype.getOne = /** + * @param {?} key + * @return {?} + */ + function (key) { + return this.store.selectSnapshot(ConfigState.getOne(key)); + }; + /** + * @param {?} keys + * @return {?} + */ + ConfigService.prototype.getDeep = /** + * @param {?} keys + * @return {?} + */ + function (keys) { + return this.store.selectSnapshot(ConfigState.getDeep(keys)); + }; + /** + * @param {?} key + * @return {?} + */ + ConfigService.prototype.getSetting = /** + * @param {?} key + * @return {?} + */ + function (key) { + return this.store.selectSnapshot(ConfigState.getSetting(key)); + }; + ConfigService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + ConfigService.ctorParameters = function () { return [ + { type: Store } + ]; }; + /** @nocollapse */ ConfigService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1.Store)); }, token: ConfigService, providedIn: "root" }); + return ConfigService; +}()); +export { ConfigService }; +if (false) { + /** + * @type {?} + * @private + */ + ConfigService.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFeEM7SUFJRSx1QkFBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDOzs7O0lBRXBDLDhCQUFNOzs7SUFBTjtRQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7O0lBRUQsOEJBQU07Ozs7SUFBTixVQUFPLEdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7Ozs7SUFFRCwrQkFBTzs7OztJQUFQLFVBQVEsSUFBdUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7Ozs7SUFFRCxrQ0FBVTs7OztJQUFWLFVBQVcsR0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDOztnQkFwQkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFMUSxLQUFLOzs7d0JBRGQ7Q0F5QkMsQUFyQkQsSUFxQkM7U0FsQlksYUFBYTs7Ozs7O0lBQ1osOEJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb25maWdTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgZ2V0QWxsKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KENvbmZpZ1N0YXRlLmdldEFsbCk7XG4gIH1cblxuICBnZXRPbmUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChDb25maWdTdGF0ZS5nZXRPbmUoa2V5KSk7XG4gIH1cblxuICBnZXREZWVwKGtleXM6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoQ29uZmlnU3RhdGUuZ2V0RGVlcChrZXlzKSk7XG4gIH1cblxuICBnZXRTZXR0aW5nKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoQ29uZmlnU3RhdGUuZ2V0U2V0dGluZyhrZXkpKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/services/index.js b/npm/packs/ng/dist/core/esm5/lib/services/index.js new file mode 100644 index 0000000000..b7113ca26f --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/services/index.js @@ -0,0 +1,11 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { ApplicationConfigurationService } from './application-configuration.service'; +export { ConfigService } from './config.service'; +export { LazyLoadService } from './lazy-load.service'; +export { LocalizationService } from './localization.service'; +export { ProfileService } from './profile.service'; +export { RestService } from './rest.service'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGdEQUFjLHFDQUFxQyxDQUFDO0FBQ3BELDhCQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGdDQUFjLHFCQUFxQixDQUFDO0FBQ3BDLG9DQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLCtCQUFjLG1CQUFtQixDQUFDO0FBQ2xDLDRCQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xhenktbG9hZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9maWxlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXN0LnNlcnZpY2UnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/services/lazy-load.service.js b/npm/packs/ng/dist/core/esm5/lib/services/lazy-load.service.js new file mode 100644 index 0000000000..795a12d8d0 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/services/lazy-load.service.js @@ -0,0 +1,87 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { ReplaySubject } from 'rxjs'; +import { uuid } from '../utils'; +import * as i0 from "@angular/core"; +var LazyLoadService = /** @class */ (function () { + function LazyLoadService() { + this.loadedLibraries = {}; + } + /** + * @param {?} url + * @param {?} type + * @param {?=} content + * @param {?=} targetQuery + * @param {?=} position + * @return {?} + */ + LazyLoadService.prototype.load = /** + * @param {?} url + * @param {?} type + * @param {?=} content + * @param {?=} targetQuery + * @param {?=} position + * @return {?} + */ + function (url, type, content, targetQuery, position) { + var _this = this; + if (content === void 0) { content = ''; } + if (targetQuery === void 0) { targetQuery = 'body'; } + if (position === void 0) { position = 'afterend'; } + if (!url && !content) + return; + /** @type {?} */ + var key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid(); + if (this.loadedLibraries[key]) { + return this.loadedLibraries[key].asObservable(); + } + this.loadedLibraries[key] = new ReplaySubject(); + /** @type {?} */ + var library; + if (type === 'script') { + library = document.createElement('script'); + library.type = 'text/javascript'; + if (url) { + ((/** @type {?} */ (library))).src = url; + } + ((/** @type {?} */ (library))).text = content; + } + else if (url) { + library = document.createElement('link'); + library.type = 'text/css'; + ((/** @type {?} */ (library))).rel = 'stylesheet'; + if (url) { + ((/** @type {?} */ (library))).href = url; + } + } + else { + library = document.createElement('style'); + ((/** @type {?} */ (library))).textContent = content; + } + library.onload = (/** + * @return {?} + */ + function () { + _this.loadedLibraries[key].next(); + _this.loadedLibraries[key].complete(); + }); + document.querySelector(targetQuery).insertAdjacentElement(position, library); + return this.loadedLibraries[key].asObservable(); + }; + LazyLoadService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ LazyLoadService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LazyLoadService_Factory() { return new LazyLoadService(); }, token: LazyLoadService, providedIn: "root" }); + return LazyLoadService; +}()); +export { LazyLoadService }; +if (false) { + /** @type {?} */ + LazyLoadService.prototype.loadedLibraries; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbGF6eS1sb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUVoQztJQUFBO1FBSUUsb0JBQWUsR0FBMkMsRUFBRSxDQUFDO0tBaUQ5RDs7Ozs7Ozs7O0lBL0NDLDhCQUFJOzs7Ozs7OztJQUFKLFVBQ0UsR0FBVyxFQUNYLElBQXdCLEVBQ3hCLE9BQW9CLEVBQ3BCLFdBQTRCLEVBQzVCLFFBQXFDO1FBTHZDLGlCQThDQztRQTNDQyx3QkFBQSxFQUFBLFlBQW9CO1FBQ3BCLDRCQUFBLEVBQUEsb0JBQTRCO1FBQzVCLHlCQUFBLEVBQUEscUJBQXFDO1FBRXJDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTzs7WUFDdkIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7UUFFOUQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNqRDtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQzs7WUFFNUMsT0FBTztRQUNYLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNyQixPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxPQUFPLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1lBQ2pDLElBQUksR0FBRyxFQUFFO2dCQUNQLENBQUMsbUJBQUEsT0FBTyxFQUFxQixDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQzthQUMxQztZQUVELENBQUMsbUJBQUEsT0FBTyxFQUFxQixDQUFDLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztTQUMvQzthQUFNLElBQUksR0FBRyxFQUFFO1lBQ2QsT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsT0FBTyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7WUFDMUIsQ0FBQyxtQkFBQSxPQUFPLEVBQW1CLENBQUMsQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDO1lBRWhELElBQUksR0FBRyxFQUFFO2dCQUNQLENBQUMsbUJBQUEsT0FBTyxFQUFtQixDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQzthQUN6QztTQUNGO2FBQU07WUFDTCxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxDQUFDLG1CQUFBLE9BQU8sRUFBb0IsQ0FBQyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7U0FDckQ7UUFFRCxPQUFPLENBQUMsTUFBTTs7O1FBQUc7WUFDZixLQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLEtBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFBLENBQUM7UUFFRixRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU3RSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEQsQ0FBQzs7Z0JBcERGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzswQkFORDtDQXlEQyxBQXJERCxJQXFEQztTQWxEWSxlQUFlOzs7SUFDMUIsMENBQTZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTGF6eUxvYWRTZXJ2aWNlIHtcbiAgbG9hZGVkTGlicmFyaWVzOiB7IFt1cmw6IHN0cmluZ106IFJlcGxheVN1YmplY3Q8dm9pZD4gfSA9IHt9O1xuXG4gIGxvYWQoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgdHlwZTogJ3NjcmlwdCcgfCAnc3R5bGUnLFxuICAgIGNvbnRlbnQ6IHN0cmluZyA9ICcnLFxuICAgIHRhcmdldFF1ZXJ5OiBzdHJpbmcgPSAnYm9keScsXG4gICAgcG9zaXRpb246IEluc2VydFBvc2l0aW9uID0gJ2FmdGVyZW5kJyxcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgaWYgKCF1cmwgJiYgIWNvbnRlbnQpIHJldHVybjtcbiAgICBjb25zdCBrZXkgPSB1cmwgPyB1cmwuc2xpY2UodXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSA6IHV1aWQoKTtcblxuICAgIGlmICh0aGlzLmxvYWRlZExpYnJhcmllc1trZXldKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkZWRMaWJyYXJpZXNba2V5XS5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmxvYWRlZExpYnJhcmllc1trZXldID0gbmV3IFJlcGxheVN1YmplY3QoKTtcblxuICAgIGxldCBsaWJyYXJ5O1xuICAgIGlmICh0eXBlID09PSAnc2NyaXB0Jykge1xuICAgICAgbGlicmFyeSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgbGlicmFyeS50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIChsaWJyYXJ5IGFzIEhUTUxTY3JpcHRFbGVtZW50KS5zcmMgPSB1cmw7XG4gICAgICB9XG5cbiAgICAgIChsaWJyYXJ5IGFzIEhUTUxTY3JpcHRFbGVtZW50KS50ZXh0ID0gY29udGVudDtcbiAgICB9IGVsc2UgaWYgKHVybCkge1xuICAgICAgbGlicmFyeSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgIGxpYnJhcnkudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICAobGlicmFyeSBhcyBIVE1MTGlua0VsZW1lbnQpLnJlbCA9ICdzdHlsZXNoZWV0JztcblxuICAgICAgaWYgKHVybCkge1xuICAgICAgICAobGlicmFyeSBhcyBIVE1MTGlua0VsZW1lbnQpLmhyZWYgPSB1cmw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpYnJhcnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgKGxpYnJhcnkgYXMgSFRNTFN0eWxlRWxlbWVudCkudGV4dENvbnRlbnQgPSBjb250ZW50O1xuICAgIH1cblxuICAgIGxpYnJhcnkub25sb2FkID0gKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkZWRMaWJyYXJpZXNba2V5XS5uZXh0KCk7XG4gICAgICB0aGlzLmxvYWRlZExpYnJhcmllc1trZXldLmNvbXBsZXRlKCk7XG4gICAgfTtcblxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0UXVlcnkpLmluc2VydEFkamFjZW50RWxlbWVudChwb3NpdGlvbiwgbGlicmFyeSk7XG5cbiAgICByZXR1cm4gdGhpcy5sb2FkZWRMaWJyYXJpZXNba2V5XS5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/services/localization.service.js b/npm/packs/ng/dist/core/esm5/lib/services/localization.service.js new file mode 100644 index 0000000000..5c194a3d3c --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/services/localization.service.js @@ -0,0 +1,67 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import * as i0 from "@angular/core"; +import * as i1 from "@ngxs/store"; +var LocalizationService = /** @class */ (function () { + function LocalizationService(store) { + this.store = store; + } + /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + LocalizationService.prototype.get = /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + function (keys) { + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + return this.store.select(ConfigState.getCopy.apply(ConfigState, tslib_1.__spread([keys], interpolateParams))); + }; + /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + LocalizationService.prototype.instant = /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + function (keys) { + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + return this.store.selectSnapshot(ConfigState.getCopy.apply(ConfigState, tslib_1.__spread([keys], interpolateParams))); + }; + LocalizationService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } + ]; + /** @nocollapse */ + LocalizationService.ctorParameters = function () { return [ + { type: Store } + ]; }; + /** @nocollapse */ LocalizationService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(i0.ɵɵinject(i1.Store)); }, token: LocalizationService, providedIn: "root" }); + return LocalizationService; +}()); +export { LocalizationService }; +if (false) { + /** + * @type {?} + * @private + */ + LocalizationService.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBR3hDO0lBRUUsNkJBQW9CLEtBQVk7UUFBWixVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQUcsQ0FBQzs7Ozs7O0lBRXBDLGlDQUFHOzs7OztJQUFILFVBQUksSUFBWTtRQUFFLDJCQUE4QjthQUE5QixVQUE4QixFQUE5QixxQkFBOEIsRUFBOUIsSUFBOEI7WUFBOUIsMENBQThCOztRQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLE9BQW5CLFdBQVcsb0JBQVMsSUFBSSxHQUFLLGlCQUFpQixHQUFFLENBQUM7SUFDNUUsQ0FBQzs7Ozs7O0lBRUQscUNBQU87Ozs7O0lBQVAsVUFBUSxJQUFZO1FBQUUsMkJBQThCO2FBQTlCLFVBQThCLEVBQTlCLHFCQUE4QixFQUE5QixJQUE4QjtZQUE5QiwwQ0FBOEI7O1FBQ2xELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sT0FBbkIsV0FBVyxvQkFBUyxJQUFJLEdBQUssaUJBQWlCLEdBQUUsQ0FBQztJQUNwRixDQUFDOztnQkFWRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7O2dCQUp6QixLQUFLOzs7OEJBRGQ7Q0FnQkMsQUFYRCxJQVdDO1NBVlksbUJBQW1COzs7Ozs7SUFDbEIsb0NBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIGdldChrZXlzOiBzdHJpbmcsIC4uLmludGVycG9sYXRlUGFyYW1zOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1N0YXRlLmdldENvcHkoa2V5cywgLi4uaW50ZXJwb2xhdGVQYXJhbXMpKTtcbiAgfVxuXG4gIGluc3RhbnQoa2V5czogc3RyaW5nLCAuLi5pbnRlcnBvbGF0ZVBhcmFtczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KENvbmZpZ1N0YXRlLmdldENvcHkoa2V5cywgLi4uaW50ZXJwb2xhdGVQYXJhbXMpKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/services/profile.service.js b/npm/packs/ng/dist/core/esm5/lib/services/profile.service.js new file mode 100644 index 0000000000..393057a2b9 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/services/profile.service.js @@ -0,0 +1,81 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { RestService } from './rest.service'; +import * as i0 from "@angular/core"; +import * as i1 from "./rest.service"; +var ProfileService = /** @class */ (function () { + function ProfileService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + ProfileService.prototype.get = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/identity/profile', + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + ProfileService.prototype.update = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'PUT', + url: '/api/identity/profile', + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + ProfileService.prototype.changePassword = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: '/api/identity/profile/changePassword', + body: body, + }; + return this.rest.request(request); + }; + ProfileService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + ProfileService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ ProfileService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ProfileService_Factory() { return new ProfileService(i0.ɵɵinject(i1.RestService)); }, token: ProfileService, providedIn: "root" }); + return ProfileService; +}()); +export { ProfileService }; +if (false) { + /** + * @type {?} + * @private + */ + ProfileService.prototype.rest; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3Byb2ZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUc3QztJQUlFLHdCQUFvQixJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO0lBQUcsQ0FBQzs7OztJQUV6Qyw0QkFBRzs7O0lBQUg7O1lBQ1EsT0FBTyxHQUF1QjtZQUNsQyxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSx1QkFBdUI7U0FDN0I7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUF5QixPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDOzs7OztJQUVELCtCQUFNOzs7O0lBQU4sVUFBTyxJQUFzQjs7WUFDckIsT0FBTyxHQUFtQztZQUM5QyxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSx1QkFBdUI7WUFDNUIsSUFBSSxNQUFBO1NBQ0w7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFxQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDOzs7OztJQUVELHVDQUFjOzs7O0lBQWQsVUFBZSxJQUFtQzs7WUFDMUMsT0FBTyxHQUFnRDtZQUMzRCxNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxzQ0FBc0M7WUFDM0MsSUFBSSxNQUFBO1NBQ0w7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFzQyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDOztnQkFqQ0YsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFMUSxXQUFXOzs7eUJBRnBCO0NBdUNDLEFBbENELElBa0NDO1NBL0JZLGNBQWM7Ozs7OztJQUNiLDhCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZmlsZSwgUmVzdCB9IGZyb20gJy4uL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9maWxlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdDogUmVzdFNlcnZpY2UpIHt9XG5cbiAgZ2V0KCk6IE9ic2VydmFibGU8UHJvZmlsZS5SZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6ICcvYXBpL2lkZW50aXR5L3Byb2ZpbGUnLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgUHJvZmlsZS5SZXNwb25zZT4ocmVxdWVzdCk7XG4gIH1cblxuICB1cGRhdGUoYm9keTogUHJvZmlsZS5SZXNwb25zZSk6IE9ic2VydmFibGU8UHJvZmlsZS5SZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxQcm9maWxlLlJlc3BvbnNlPiA9IHtcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICB1cmw6ICcvYXBpL2lkZW50aXR5L3Byb2ZpbGUnLFxuICAgICAgYm9keSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PFByb2ZpbGUuUmVzcG9uc2UsIFByb2ZpbGUuUmVzcG9uc2U+KHJlcXVlc3QpO1xuICB9XG5cbiAgY2hhbmdlUGFzc3dvcmQoYm9keTogUHJvZmlsZS5DaGFuZ2VQYXNzd29yZFJlcXVlc3QpOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8UHJvZmlsZS5DaGFuZ2VQYXNzd29yZFJlcXVlc3Q+ID0ge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB1cmw6ICcvYXBpL2lkZW50aXR5L3Byb2ZpbGUvY2hhbmdlUGFzc3dvcmQnLFxuICAgICAgYm9keSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PFByb2ZpbGUuQ2hhbmdlUGFzc3dvcmRSZXF1ZXN0LCBudWxsPihyZXF1ZXN0KTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/services/rest.service.js b/npm/packs/ng/dist/core/esm5/lib/services/rest.service.js new file mode 100644 index 0000000000..b63e292b7f --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/services/rest.service.js @@ -0,0 +1,92 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { NEVER, throwError } from 'rxjs'; +import { catchError, take } from 'rxjs/operators'; +import { ConfigState } from '../states'; +import { RestOccurError } from '../actions'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common/http"; +import * as i2 from "@ngxs/store"; +var RestService = /** @class */ (function () { + function RestService(http, store) { + this.http = http; + this.store = store; + } + /** + * @param {?} err + * @return {?} + */ + RestService.prototype.handleError = /** + * @param {?} err + * @return {?} + */ + function (err) { + this.store.dispatch(new RestOccurError(err)); + console.error(err); + return NEVER; + }; + /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + RestService.prototype.request = /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + function (request, config, api) { + var _this = this; + if (config === void 0) { config = {}; } + var _a = config.observe, observe = _a === void 0 ? "body" /* Body */ : _a, throwErr = config.throwErr; + /** @type {?} */ + var url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; + var method = request.method, options = tslib_1.__rest(request, ["method"]); + return this.http.request(method, url, (/** @type {?} */ (tslib_1.__assign({ observe: observe }, options)))).pipe(observe === "body" /* Body */ ? take(1) : null, catchError((/** + * @param {?} err + * @return {?} + */ + function (err) { + if (throwErr) { + return throwError(err); + } + return _this.handleError(err); + }))); + }; + RestService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + RestService.ctorParameters = function () { return [ + { type: HttpClient }, + { type: Store } + ]; }; + /** @nocollapse */ RestService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function RestService_Factory() { return new RestService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.Store)); }, token: RestService, providedIn: "root" }); + return RestService; +}()); +export { RestService }; +if (false) { + /** + * @type {?} + * @private + */ + RestService.prototype.http; + /** + * @type {?} + * @private + */ + RestService.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3Jlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLEtBQUssRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7QUFFNUM7SUFJRSxxQkFBb0IsSUFBZ0IsRUFBVSxLQUFZO1FBQXRDLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQUcsQ0FBQzs7Ozs7SUFFOUQsaUNBQVc7Ozs7SUFBWCxVQUFZLEdBQVE7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3QyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7Ozs7Ozs7SUFFRCw2QkFBTzs7Ozs7OztJQUFQLFVBQWMsT0FBeUMsRUFBRSxNQUF3QixFQUFFLEdBQVk7UUFBL0YsaUJBY0M7UUFkd0QsdUJBQUEsRUFBQSxXQUF3QjtRQUN2RSxJQUFBLG1CQUEyQixFQUEzQixnREFBMkIsRUFBRSwwQkFBUTs7WUFDdkMsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRztRQUMzRSxJQUFBLHVCQUFNLEVBQUUsNkNBQVU7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBSSxNQUFNLEVBQUUsR0FBRyxFQUFFLHNDQUFFLE9BQU8sU0FBQSxJQUFLLE9BQU8sR0FBUyxDQUFDLENBQUMsSUFBSSxDQUMzRSxPQUFPLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFDOUMsVUFBVTs7OztRQUFDLFVBQUEsR0FBRztZQUNaLElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hCO1lBRUQsT0FBTyxLQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsRUFBQyxDQUNILENBQUM7SUFDSixDQUFDOztnQkExQkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFYUSxVQUFVO2dCQUVWLEtBQUs7OztzQkFGZDtDQW9DQyxBQTNCRCxJQTJCQztTQXhCWSxXQUFXOzs7Ozs7SUFDViwyQkFBd0I7Ozs7O0lBQUUsNEJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE5FVkVSLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUmVzdCB9IGZyb20gJy4uL21vZGVscy9yZXN0JztcbmltcG9ydCB7IENvbmZpZ1N0YXRlIH0gZnJvbSAnLi4vc3RhdGVzJztcbmltcG9ydCB7IFJlc3RPY2N1ckVycm9yIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXN0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgaGFuZGxlRXJyb3IoZXJyOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFJlc3RPY2N1ckVycm9yKGVycikpO1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICByZXR1cm4gTkVWRVI7XG4gIH1cblxuICByZXF1ZXN0PFQsIFI+KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PFQ+IHwgUmVzdC5SZXF1ZXN0PFQ+LCBjb25maWc6IFJlc3QuQ29uZmlnID0ge30sIGFwaT86IHN0cmluZyk6IE9ic2VydmFibGU8Uj4ge1xuICAgIGNvbnN0IHsgb2JzZXJ2ZSA9IFJlc3QuT2JzZXJ2ZS5Cb2R5LCB0aHJvd0VyciB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHVybCA9IGFwaSB8fCB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KENvbmZpZ1N0YXRlLmdldEFwaVVybCgpKSArIHJlcXVlc3QudXJsO1xuICAgIGNvbnN0IHsgbWV0aG9kLCAuLi5vcHRpb25zIH0gPSByZXF1ZXN0O1xuICAgIHJldHVybiB0aGlzLmh0dHAucmVxdWVzdDxUPihtZXRob2QsIHVybCwgeyBvYnNlcnZlLCAuLi5vcHRpb25zIH0gYXMgYW55KS5waXBlKFxuICAgICAgb2JzZXJ2ZSA9PT0gUmVzdC5PYnNlcnZlLkJvZHkgPyB0YWtlKDEpIDogbnVsbCxcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgaWYgKHRocm93RXJyKSB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKGVycik7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/states/config.state.js b/npm/packs/ng/dist/core/esm5/lib/states/config.state.js new file mode 100644 index 0000000000..de239b549a --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/states/config.state.js @@ -0,0 +1,374 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { State, Selector, createSelector, Action, Store } from '@ngxs/store'; +import { ConfigGetAppConfiguration, PatchRouteByName } from '../actions/config.actions'; +import { ApplicationConfigurationService } from '../services/application-configuration.service'; +import { tap, switchMap } from 'rxjs/operators'; +import snq from 'snq'; +import { SessionSetLanguage } from '../actions'; +import { SessionState } from './session.state'; +import { of } from 'rxjs'; +import { organizeRoutes } from '../utils/route-utils'; +var ConfigState = /** @class */ (function () { + function ConfigState(appConfigurationService, store) { + this.appConfigurationService = appConfigurationService; + this.store = store; + } + ConfigState_1 = ConfigState; + /** + * @param {?} state + * @return {?} + */ + ConfigState.getAll = /** + * @param {?} state + * @return {?} + */ + function (state) { + return state; + }; + /** + * @param {?} key + * @return {?} + */ + ConfigState.getOne = /** + * @param {?} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return state[key]; + })); + return selector; + }; + /** + * @param {?} keys + * @return {?} + */ + ConfigState.getDeep = /** + * @param {?} keys + * @return {?} + */ + function (keys) { + if (typeof keys === 'string') { + keys = keys.split('.'); + } + if (!Array.isArray(keys)) { + throw new Error('The argument must be a dot string or an string array.'); + } + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return ((/** @type {?} */ (keys))).reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + if (acc) { + return acc[val]; + } + return undefined; + }), state); + })); + return selector; + }; + /** + * @param {?=} key + * @return {?} + */ + ConfigState.getApiUrl = /** + * @param {?=} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return state.environment.apis[key || 'default'].url; + })); + return selector; + }; + /** + * @param {?} key + * @return {?} + */ + ConfigState.getSetting = /** + * @param {?} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return snq((/** + * @return {?} + */ + function () { return state.setting.values[key]; })); + })); + return selector; + }; + /** + * @param {?=} condition + * @return {?} + */ + ConfigState.getGrantedPolicy = /** + * @param {?=} condition + * @return {?} + */ + function (condition) { + if (condition === void 0) { condition = ''; } + /** @type {?} */ + var keys = condition + .replace(/\(|\)|\!|\s/g, '') + .split(/\|\||&&/) + .filter((/** + * @param {?} key + * @return {?} + */ + function (key) { return key; })); + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + if (!keys.length) + return true; + /** @type {?} */ + var getPolicy = (/** + * @param {?} key + * @return {?} + */ + function (key) { return snq((/** + * @return {?} + */ + function () { return state.auth.grantedPolicies[key]; }), false); }); + if (keys.length > 1) { + keys.forEach((/** + * @param {?} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var value = getPolicy(key); + condition = condition.replace(key, value); + })); + // tslint:disable-next-line: no-eval + return eval("!!" + condition); + } + return getPolicy(condition); + })); + return selector; + }; + /** + * @param {?} key + * @param {...?} interpolateParams + * @return {?} + */ + ConfigState.getCopy = /** + * @param {?} key + * @param {...?} interpolateParams + * @return {?} + */ + function (key) { + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + /** @type {?} */ + var keys = (/** @type {?} */ (key.split('::'))); + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + var defaultResourceName = state.environment.localization.defaultResourceName; + if (keys[0] === '') { + if (!defaultResourceName) { + throw new Error("Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }"); + } + keys[0] = snq((/** + * @return {?} + */ + function () { return defaultResourceName; })); + } + /** @type {?} */ + var copy = keys.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + if (acc) { + return acc[val]; + } + return undefined; + }), state.localization.values); + if (copy && interpolateParams && interpolateParams.length) { + interpolateParams.forEach((/** + * @param {?} param + * @param {?} index + * @return {?} + */ + function (param, index) { + copy = copy.replace("'{" + index + "}'", param); + })); + } + return copy || key; + })); + return selector; + }; + /** + * @param {?} __0 + * @return {?} + */ + ConfigState.prototype.addData = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _this = this; + var patchState = _a.patchState, dispatch = _a.dispatch; + return this.appConfigurationService.getConfiguration().pipe(tap((/** + * @param {?} configuration + * @return {?} + */ + function (configuration) { + return patchState(tslib_1.__assign({}, configuration)); + })), switchMap((/** + * @param {?} configuration + * @return {?} + */ + function (configuration) { + return _this.store.selectSnapshot(SessionState.getLanguage) + ? of(null) + : dispatch(new SessionSetLanguage(snq((/** + * @return {?} + */ + function () { return configuration.setting.values['Abp.Localization.DefaultLanguage']; })))); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + ConfigState.prototype.patchRoute = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState, getState = _a.getState; + var name = _b.name, newValue = _b.newValue; + /** @type {?} */ + var routes = getState().routes; + /** @type {?} */ + var index = routes.findIndex((/** + * @param {?} route + * @return {?} + */ + function (route) { return route.name === name; })); + routes = patchRouteDeep(routes, name, newValue); + return patchState({ + routes: routes, + }); + }; + var ConfigState_1; + tslib_1.__decorate([ + Action(ConfigGetAppConfiguration), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) + ], ConfigState.prototype, "addData", null); + tslib_1.__decorate([ + Action(PatchRouteByName), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, PatchRouteByName]), + tslib_1.__metadata("design:returntype", void 0) + ], ConfigState.prototype, "patchRoute", null); + tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) + ], ConfigState, "getAll", null); + ConfigState = ConfigState_1 = tslib_1.__decorate([ + State({ + name: 'ConfigState', + defaults: (/** @type {?} */ ({})), + }), + tslib_1.__metadata("design:paramtypes", [ApplicationConfigurationService, Store]) + ], ConfigState); + return ConfigState; +}()); +export { ConfigState }; +if (false) { + /** + * @type {?} + * @private + */ + ConfigState.prototype.appConfigurationService; + /** + * @type {?} + * @private + */ + ConfigState.prototype.store; +} +/** + * @param {?} routes + * @param {?} name + * @param {?} newValue + * @param {?=} parentUrl + * @return {?} + */ +function patchRouteDeep(routes, name, newValue, parentUrl) { + if (parentUrl === void 0) { parentUrl = null; } + routes = routes.map((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.name === name) { + if (newValue.path) { + newValue.url = parentUrl + "/" + newValue.path; + } + if (newValue.children && newValue.children.length) { + newValue.children = newValue.children.map((/** + * @param {?} child + * @return {?} + */ + function (child) { return (tslib_1.__assign({}, child, { url: parentUrl + "/" + route.path + "/" + child.path })); })); + } + return tslib_1.__assign({}, route, newValue); + } + else if (route.children && route.children.length) { + route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path); + } + return route; + })); + if (parentUrl) { + // recursive block + return routes; + } + return organizeRoutes(routes); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9jb25maWcuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFnQixLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBNkIsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0lBOEkvRSxxQkFBb0IsdUJBQXdELEVBQVUsS0FBWTtRQUE5RSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQWlDO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7b0JBeEkzRixXQUFXOzs7OztJQUVmLGtCQUFNOzs7O0lBQWIsVUFBYyxLQUFtQjtRQUMvQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7O0lBRU0sa0JBQU07Ozs7SUFBYixVQUFjLEdBQVc7O1lBQ2pCLFFBQVEsR0FBRyxjQUFjLENBQzdCLENBQUMsYUFBVyxDQUFDOzs7O1FBQ2IsVUFBUyxLQUFtQjtZQUMxQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQixDQUFDLEVB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O2FBQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ2xELEtBQUssQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEc7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsRUFBQyxDQUFDO0lBRUgsSUFBSSxTQUFTLEVBQUU7UUFDYixrQkFBa0I7UUFDbEIsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUVELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZSwgU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yLCBBY3Rpb24sIFN0YXRlQ29udGV4dCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBDb25maWcsIEFCUCB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBDb25maWdHZXRBcHBDb25maWd1cmF0aW9uLCBQYXRjaFJvdXRlQnlOYW1lIH0gZnJvbSAnLi4vYWN0aW9ucy9jb25maWcuYWN0aW9ucyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHRhcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHNucSBmcm9tICdzbnEnO1xuaW1wb3J0IHsgU2Vzc2lvblNldExhbmd1YWdlIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNldENoaWxkUm91dGUsIHNvcnRSb3V0ZXMsIG9yZ2FuaXplUm91dGVzIH0gZnJvbSAnLi4vdXRpbHMvcm91dGUtdXRpbHMnO1xuXG5AU3RhdGU8Q29uZmlnLlN0YXRlPih7XG4gIG5hbWU6ICdDb25maWdTdGF0ZScsXG4gIGRlZmF1bHRzOiB7fSBhcyBDb25maWcuU3RhdGUsXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ1N0YXRlIHtcbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldEFsbChzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgc3RhdGljIGdldE9uZShrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSkge1xuICAgICAgICByZXR1cm4gc3RhdGVba2V5XTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXREZWVwKGtleXM6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBrZXlzID09PSAnc3RyaW5nJykge1xuICAgICAga2V5cyA9IGtleXMuc3BsaXQoJy4nKTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoa2V5cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBkb3Qgc3RyaW5nIG9yIGFuIHN0cmluZyBhcnJheS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIChrZXlzIGFzIHN0cmluZ1tdKS5yZWR1Y2UoKGFjYywgdmFsKSA9PiB7XG4gICAgICAgICAgaWYgKGFjYykge1xuICAgICAgICAgICAgcmV0dXJuIGFjY1t2YWxdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0sIHN0YXRlKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBcGlVcmwoa2V5Pzogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlLmVudmlyb25tZW50LmFwaXNba2V5IHx8ICdkZWZhdWx0J10udXJsO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHNlbGVjdG9yO1xuICB9XG5cbiAgc3RhdGljIGdldFNldHRpbmcoa2V5OiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIHNucSgoKSA9PiBzdGF0ZS5zZXR0aW5nLnZhbHVlc1trZXldKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRHcmFudGVkUG9saWN5KGNvbmRpdGlvbjogc3RyaW5nID0gJycpIHtcbiAgICBjb25zdCBrZXlzID0gY29uZGl0aW9uXG4gICAgICAucmVwbGFjZSgvXFwofFxcKXxcXCF8XFxzL2csICcnKVxuICAgICAgLnNwbGl0KC9cXHxcXHx8JiYvKVxuICAgICAgLmZpbHRlcihrZXkgPT4ga2V5KTtcblxuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWtleXMubGVuZ3RoKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBjb25zdCBnZXRQb2xpY3kgPSBrZXkgPT4gc25xKCgpID0+IHN0YXRlLmF1dGguZ3JhbnRlZFBvbGljaWVzW2tleV0sIGZhbHNlKTtcbiAgICAgICAgaWYgKGtleXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRQb2xpY3koa2V5KTtcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5yZXBsYWNlKGtleSwgdmFsdWUpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1ldmFsXG4gICAgICAgICAgcmV0dXJuIGV2YWwoYCEhJHtjb25kaXRpb259YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2V0UG9saWN5KGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gc2VsZWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29weShrZXk6IHN0cmluZywgLi4uaW50ZXJwb2xhdGVQYXJhbXM6IHN0cmluZ1tdKSB7XG4gICAgY29uc3Qga2V5cyA9IGtleS5zcGxpdCgnOjonKSBhcyBzdHJpbmdbXTtcbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgY29uc3QgeyBkZWZhdWx0UmVzb3VyY2VOYW1lIH0gPSBzdGF0ZS5lbnZpcm9ubWVudC5sb2NhbGl6YXRpb247XG4gICAgICAgIGlmIChrZXlzWzBdID09PSAnJykge1xuICAgICAgICAgIGlmICghZGVmYXVsdFJlc291cmNlTmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgUGxlYXNlIGNoZWNrIHlvdXIgZW52aXJvbm1lbnQuIE1heSB5b3UgZm9yZ2V0IHNldCBkZWZhdWx0UmVzb3VyY2VOYW1lPyBcbiAgICAgICAgICAgICAgSGVyZSBpcyB0aGUgZXhhbXBsZTpcbiAgICAgICAgICAgICAgIHsgcHJvZHVjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgIGxvY2FsaXphdGlvbjoge1xuICAgICAgICAgICAgICAgICAgIGRlZmF1bHRSZXNvdXJjZU5hbWU6ICdNeVByb2plY3ROYW1lJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGtleXNbMF0gPSBzbnEoKCkgPT4gZGVmYXVsdFJlc291cmNlTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29weSA9IGtleXMucmVkdWNlKChhY2MsIHZhbCkgPT4ge1xuICAgICAgICAgIGlmIChhY2MpIHtcbiAgICAgICAgICAgIHJldHVybiBhY2NbdmFsXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LCBzdGF0ZS5sb2NhbGl6YXRpb24udmFsdWVzKTtcblxuICAgICAgICBpZiAoY29weSAmJiBpbnRlcnBvbGF0ZVBhcmFtcyAmJiBpbnRlcnBvbGF0ZVBhcmFtcy5sZW5ndGgpIHtcbiAgICAgICAgICBpbnRlcnBvbGF0ZVBhcmFtcy5mb3JFYWNoKChwYXJhbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvcHkgPSBjb3B5LnJlcGxhY2UoYCd7JHtpbmRleH19J2AsIHBhcmFtKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb3B5IHx8IGtleTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwQ29uZmlndXJhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIEBBY3Rpb24oQ29uZmlnR2V0QXBwQ29uZmlndXJhdGlvbilcbiAgYWRkRGF0YSh7IHBhdGNoU3RhdGUsIGRpc3BhdGNoIH06IFN0YXRlQ29udGV4dDxDb25maWcuU3RhdGU+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0Q29uZmlndXJhdGlvbigpLnBpcGUoXG4gICAgICB0YXAoY29uZmlndXJhdGlvbiA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICAuLi5jb25maWd1cmF0aW9uLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzd2l0Y2hNYXAoY29uZmlndXJhdGlvbiA9PlxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSlcbiAgICAgICAgICA/IG9mKG51bGwpXG4gICAgICAgICAgOiBkaXNwYXRjaChcbiAgICAgICAgICAgICAgbmV3IFNlc3Npb25TZXRMYW5ndWFnZShzbnEoKCkgPT4gY29uZmlndXJhdGlvbi5zZXR0aW5nLnZhbHVlc1snQWJwLkxvY2FsaXphdGlvbi5EZWZhdWx0TGFuZ3VhZ2UnXSkpLFxuICAgICAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oUGF0Y2hSb3V0ZUJ5TmFtZSlcbiAgcGF0Y2hSb3V0ZSh7IHBhdGNoU3RhdGUsIGdldFN0YXRlIH06IFN0YXRlQ29udGV4dDxDb25maWcuU3RhdGU+LCB7IG5hbWUsIG5ld1ZhbHVlIH06IFBhdGNoUm91dGVCeU5hbWUpIHtcbiAgICBsZXQgcm91dGVzOiBBQlAuRnVsbFJvdXRlW10gPSBnZXRTdGF0ZSgpLnJvdXRlcztcblxuICAgIGNvbnN0IGluZGV4ID0gcm91dGVzLmZpbmRJbmRleChyb3V0ZSA9PiByb3V0ZS5uYW1lID09PSBuYW1lKTtcblxuICAgIHJvdXRlcyA9IHBhdGNoUm91dGVEZWVwKHJvdXRlcywgbmFtZSwgbmV3VmFsdWUpO1xuXG4gICAgcmV0dXJuIHBhdGNoU3RhdGUoe1xuICAgICAgcm91dGVzLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhdGNoUm91dGVEZWVwKFxuICByb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSxcbiAgbmFtZTogc3RyaW5nLFxuICBuZXdWYWx1ZTogUGFydGlhbDxBQlAuRnVsbFJvdXRlPixcbiAgcGFyZW50VXJsOiBzdHJpbmcgPSBudWxsLFxuKTogQUJQLkZ1bGxSb3V0ZVtdIHtcbiAgcm91dGVzID0gcm91dGVzLm1hcChyb3V0ZSA9PiB7XG4gICAgaWYgKHJvdXRlLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgIGlmIChuZXdWYWx1ZS5wYXRoKSB7XG4gICAgICAgIG5ld1ZhbHVlLnVybCA9IGAke3BhcmVudFVybH0vJHtuZXdWYWx1ZS5wYXRofWA7XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdWYWx1ZS5jaGlsZHJlbiAmJiBuZXdWYWx1ZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgbmV3VmFsdWUuY2hpbGRyZW4gPSBuZXdWYWx1ZS5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gKHtcbiAgICAgICAgICAuLi5jaGlsZCxcbiAgICAgICAgICB1cmw6IGAke3BhcmVudFVybH0vJHtyb3V0ZS5wYXRofS8ke2NoaWxkLnBhdGh9YCxcbiAgICAgICAgfSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4geyAuLi5yb3V0ZSwgLi4ubmV3VmFsdWUgfTtcbiAgICB9IGVsc2UgaWYgKHJvdXRlLmNoaWxkcmVuICYmIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgcm91dGUuY2hpbGRyZW4gPSBwYXRjaFJvdXRlRGVlcChyb3V0ZS5jaGlsZHJlbiwgbmFtZSwgbmV3VmFsdWUsIChwYXJlbnRVcmwgfHwgJy8nKSArIHJvdXRlLnBhdGgpO1xuICAgIH1cblxuICAgIHJldHVybiByb3V0ZTtcbiAgfSk7XG5cbiAgaWYgKHBhcmVudFVybCkge1xuICAgIC8vIHJlY3Vyc2l2ZSBibG9ja1xuICAgIHJldHVybiByb3V0ZXM7XG4gIH1cblxuICByZXR1cm4gb3JnYW5pemVSb3V0ZXMocm91dGVzKTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/states/index.js b/npm/packs/ng/dist/core/esm5/lib/states/index.js new file mode 100644 index 0000000000..8b1dd2e36a --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/states/index.js @@ -0,0 +1,8 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { ProfileState } from './profile.state'; +export { ConfigState } from './config.state'; +export { SessionState } from './session.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc3RhdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2QkFBYyxpQkFBaUIsQ0FBQztBQUNoQyw0QkFBYyxnQkFBZ0IsQ0FBQztBQUMvQiw2QkFBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZmlsZS5zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy5zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24uc3RhdGUnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/states/profile.state.js b/npm/packs/ng/dist/core/esm5/lib/states/profile.state.js new file mode 100644 index 0000000000..f089fa52c5 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/states/profile.state.js @@ -0,0 +1,124 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { State, Action, Selector } from '@ngxs/store'; +import { ProfileGet, ProfileChangePassword, ProfileUpdate } from '../actions/profile.actions'; +import { ProfileService } from '../services/profile.service'; +import { tap } from 'rxjs/operators'; +var ProfileState = /** @class */ (function () { + function ProfileState(profileService) { + this.profileService = profileService; + } + /** + * @param {?} __0 + * @return {?} + */ + ProfileState.getProfile = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var profile = _a.profile; + return profile; + }; + /** + * @param {?} __0 + * @return {?} + */ + ProfileState.prototype.profileGet = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var patchState = _a.patchState; + return this.profileService.get().pipe(tap((/** + * @param {?} profile + * @return {?} + */ + function (profile) { + return patchState({ + profile: profile, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + ProfileState.prototype.profileUpdate = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.profileService.update(payload).pipe(tap((/** + * @param {?} profile + * @return {?} + */ + function (profile) { + return patchState({ + profile: profile, + }); + }))); + }; + /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + ProfileState.prototype.changePassword = /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + function (_, _a) { + var payload = _a.payload; + return this.profileService.changePassword(payload); + }; + tslib_1.__decorate([ + Action(ProfileGet), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) + ], ProfileState.prototype, "profileGet", null); + tslib_1.__decorate([ + Action(ProfileUpdate), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, ProfileUpdate]), + tslib_1.__metadata("design:returntype", void 0) + ], ProfileState.prototype, "profileUpdate", null); + tslib_1.__decorate([ + Action(ProfileChangePassword), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, ProfileChangePassword]), + tslib_1.__metadata("design:returntype", void 0) + ], ProfileState.prototype, "changePassword", null); + tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Object) + ], ProfileState, "getProfile", null); + ProfileState = tslib_1.__decorate([ + State({ + name: 'ProfileState', + defaults: (/** @type {?} */ ({})), + }), + tslib_1.__metadata("design:paramtypes", [ProfileService]) + ], ProfileState); + return ProfileState; +}()); +export { ProfileState }; +if (false) { + /** + * @type {?} + * @private + */ + ProfileState.prototype.profileService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zdGF0ZXMvcHJvZmlsZS5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFnQixRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztJQVluQyxzQkFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQUcsQ0FBQzs7Ozs7SUFKL0MsdUJBQVU7Ozs7SUFBakIsVUFBa0IsRUFBMEI7WUFBeEIsb0JBQU87UUFDekIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7Ozs7SUFLRCxpQ0FBVTs7OztJQUFWLFVBQVcsRUFBMkM7WUFBekMsMEJBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDbkMsR0FBRzs7OztRQUFDLFVBQUEsT0FBTztZQUNULE9BQUEsVUFBVSxDQUFDO2dCQUNULE9BQU8sU0FBQTthQUNSLENBQUM7UUFGRixDQUVFLEVBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7Ozs7O0lBR0Qsb0NBQWE7Ozs7O0lBQWIsVUFBYyxFQUEyQyxFQUFFLEVBQTBCO1lBQXJFLDBCQUFVO1lBQW1DLG9CQUFPO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM3QyxHQUFHOzs7O1FBQUMsVUFBQSxPQUFPO1lBQ1QsT0FBQSxVQUFVLENBQUM7Z0JBQ1QsT0FBTyxTQUFBO2FBQ1IsQ0FBQztRQUZGLENBRUUsRUFDSCxDQUNGLENBQUM7SUFDSixDQUFDOzs7Ozs7SUFHRCxxQ0FBYzs7Ozs7SUFBZCxVQUFlLENBQUMsRUFBRSxFQUFrQztZQUFoQyxvQkFBTztRQUN6QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUF4QkQ7UUFEQyxNQUFNLENBQUMsVUFBVSxDQUFDOzs7O2tEQVNsQjtJQUdEO1FBREMsTUFBTSxDQUFDLGFBQWEsQ0FBQzs7eURBQ2tELGFBQWE7O3FEQVFwRjtJQUdEO1FBREMsTUFBTSxDQUFDLHFCQUFxQixDQUFDOzt5REFDQyxxQkFBcUI7O3NEQUVuRDtJQS9CRDtRQURDLFFBQVEsRUFBRTs7Ozt3Q0FHVjtJQUpVLFlBQVk7UUFKeEIsS0FBSyxDQUFnQjtZQUNwQixJQUFJLEVBQUUsY0FBYztZQUNwQixRQUFRLEVBQUUsbUJBQUEsRUFBRSxFQUFpQjtTQUM5QixDQUFDO2lEQU9vQyxjQUFjO09BTnZDLFlBQVksQ0FrQ3hCO0lBQUQsbUJBQUM7Q0FBQSxJQUFBO1NBbENZLFlBQVk7Ozs7OztJQU1YLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlLCBBY3Rpb24sIFN0YXRlQ29udGV4dCwgU2VsZWN0b3IgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBQcm9maWxlR2V0LCBQcm9maWxlQ2hhbmdlUGFzc3dvcmQsIFByb2ZpbGVVcGRhdGUgfSBmcm9tICcuLi9hY3Rpb25zL3Byb2ZpbGUuYWN0aW9ucyc7XG5pbXBvcnQgeyBQcm9maWxlIH0gZnJvbSAnLi4vbW9kZWxzL3Byb2ZpbGUnO1xuaW1wb3J0IHsgUHJvZmlsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AU3RhdGU8UHJvZmlsZS5TdGF0ZT4oe1xuICBuYW1lOiAnUHJvZmlsZVN0YXRlJyxcbiAgZGVmYXVsdHM6IHt9IGFzIFByb2ZpbGUuU3RhdGUsXG59KVxuZXhwb3J0IGNsYXNzIFByb2ZpbGVTdGF0ZSB7XG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRQcm9maWxlKHsgcHJvZmlsZSB9OiBQcm9maWxlLlN0YXRlKTogUHJvZmlsZS5SZXNwb25zZSB7XG4gICAgcmV0dXJuIHByb2ZpbGU7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByb2ZpbGVTZXJ2aWNlOiBQcm9maWxlU2VydmljZSkge31cblxuICBAQWN0aW9uKFByb2ZpbGVHZXQpXG4gIHByb2ZpbGVHZXQoeyBwYXRjaFN0YXRlIH06IFN0YXRlQ29udGV4dDxQcm9maWxlLlN0YXRlPikge1xuICAgIHJldHVybiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldCgpLnBpcGUoXG4gICAgICB0YXAocHJvZmlsZSA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICBwcm9maWxlLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oUHJvZmlsZVVwZGF0ZSlcbiAgcHJvZmlsZVVwZGF0ZSh7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PFByb2ZpbGUuU3RhdGU+LCB7IHBheWxvYWQgfTogUHJvZmlsZVVwZGF0ZSkge1xuICAgIHJldHVybiB0aGlzLnByb2ZpbGVTZXJ2aWNlLnVwZGF0ZShwYXlsb2FkKS5waXBlKFxuICAgICAgdGFwKHByb2ZpbGUgPT5cbiAgICAgICAgcGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKFByb2ZpbGVDaGFuZ2VQYXNzd29yZClcbiAgY2hhbmdlUGFzc3dvcmQoXywgeyBwYXlsb2FkIH06IFByb2ZpbGVDaGFuZ2VQYXNzd29yZCkge1xuICAgIHJldHVybiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmNoYW5nZVBhc3N3b3JkKHBheWxvYWQpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/states/session.state.js b/npm/packs/ng/dist/core/esm5/lib/states/session.state.js new file mode 100644 index 0000000000..70428cc835 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/states/session.state.js @@ -0,0 +1,62 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { State, Action, Selector } from '@ngxs/store'; +import { SessionSetLanguage } from '../actions/session.actions'; +var SessionState = /** @class */ (function () { + function SessionState() { + } + /** + * @param {?} __0 + * @return {?} + */ + SessionState.getLanguage = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var language = _a.language; + return language; + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + SessionState.prototype.sessionSetLanguage = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + patchState({ + language: payload, + }); + }; + tslib_1.__decorate([ + Action(SessionSetLanguage), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, SessionSetLanguage]), + tslib_1.__metadata("design:returntype", void 0) + ], SessionState.prototype, "sessionSetLanguage", null); + tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", String) + ], SessionState, "getLanguage", null); + SessionState = tslib_1.__decorate([ + State({ + name: 'SessionState', + defaults: (/** @type {?} */ ({})), + }), + tslib_1.__metadata("design:paramtypes", []) + ], SessionState); + return SessionState; +}()); +export { SessionState }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zdGF0ZXMvc2Vzc2lvbi5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFnQixRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0lBYTlEO0lBQWUsQ0FBQzs7Ozs7SUFKVCx3QkFBVzs7OztJQUFsQixVQUFtQixFQUEyQjtZQUF6QixzQkFBUTtRQUMzQixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzs7Ozs7SUFLRCx5Q0FBa0I7Ozs7O0lBQWxCLFVBQW1CLEVBQTJDLEVBQUUsRUFBK0I7WUFBMUUsMEJBQVU7WUFBbUMsb0JBQU87UUFDdkUsVUFBVSxDQUFDO1lBQ1QsUUFBUSxFQUFFLE9BQU87U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUpEO1FBREMsTUFBTSxDQUFDLGtCQUFrQixDQUFDOzt5REFDa0Qsa0JBQWtCOzswREFJOUY7SUFYRDtRQURDLFFBQVEsRUFBRTs7Ozt5Q0FHVjtJQUpVLFlBQVk7UUFKeEIsS0FBSyxDQUFnQjtZQUNwQixJQUFJLEVBQUUsY0FBYztZQUNwQixRQUFRLEVBQUUsbUJBQUEsRUFBRSxFQUFpQjtTQUM5QixDQUFDOztPQUNXLFlBQVksQ0FjeEI7SUFBRCxtQkFBQztDQUFBLElBQUE7U0FkWSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGUsIEFjdGlvbiwgU3RhdGVDb250ZXh0LCBTZWxlY3RvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFNlc3Npb25TZXRMYW5ndWFnZSB9IGZyb20gJy4uL2FjdGlvbnMvc2Vzc2lvbi5hY3Rpb25zJztcbmltcG9ydCB7IFNlc3Npb24gfSBmcm9tICcuLi9tb2RlbHMvc2Vzc2lvbic7XG5cbkBTdGF0ZTxTZXNzaW9uLlN0YXRlPih7XG4gIG5hbWU6ICdTZXNzaW9uU3RhdGUnLFxuICBkZWZhdWx0czoge30gYXMgU2Vzc2lvbi5TdGF0ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2Vzc2lvblN0YXRlIHtcbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldExhbmd1YWdlKHsgbGFuZ3VhZ2UgfTogU2Vzc2lvbi5TdGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxhbmd1YWdlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIEBBY3Rpb24oU2Vzc2lvblNldExhbmd1YWdlKVxuICBzZXNzaW9uU2V0TGFuZ3VhZ2UoeyBwYXRjaFN0YXRlIH06IFN0YXRlQ29udGV4dDxTZXNzaW9uLlN0YXRlPiwgeyBwYXlsb2FkIH06IFNlc3Npb25TZXRMYW5ndWFnZSkge1xuICAgIHBhdGNoU3RhdGUoe1xuICAgICAgbGFuZ3VhZ2U6IHBheWxvYWQsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/tokens/common.token.js b/npm/packs/ng/dist/core/esm5/lib/tokens/common.token.js new file mode 100644 index 0000000000..a01d12d685 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/tokens/common.token.js @@ -0,0 +1,25 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { InjectionToken } from '@angular/core'; +/** + * @param {?} environment + * @return {?} + */ +export function environmentFactory(environment) { + return tslib_1.__assign({}, environment); +} +/** + * @param {?} config + * @return {?} + */ +export function configFactory(config) { + return tslib_1.__assign({}, config); +} +/** @type {?} */ +export var ENVIRONMENT = new InjectionToken('ENVIRONMENT'); +/** @type {?} */ +export var CONFIG = new InjectionToken('CONFIG'); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnRva2VuLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3Rva2Vucy9jb21tb24udG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQUcvQyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsV0FBK0I7SUFDaEUsNEJBQ0ssV0FBVyxFQUNkO0FBQ0osQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQTJCO0lBQ3ZELDRCQUNLLE1BQU0sRUFDVDtBQUNKLENBQUM7O0FBRUQsTUFBTSxLQUFPLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBQyxhQUFhLENBQUM7O0FBRTVELE1BQU0sS0FBTyxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnZpcm9ubWVudEZhY3RvcnkoZW52aXJvbm1lbnQ6IENvbmZpZy5FbnZpcm9ubWVudCkge1xuICByZXR1cm4ge1xuICAgIC4uLmVudmlyb25tZW50LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlnRmFjdG9yeShjb25maWc6IENvbmZpZy5SZXF1aXJlbWVudHMpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBFTlZJUk9OTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbignRU5WSVJPTk1FTlQnKTtcblxuZXhwb3J0IGNvbnN0IENPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbignQ09ORklHJyk7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/tokens/index.js b/npm/packs/ng/dist/core/esm5/lib/tokens/index.js new file mode 100644 index 0000000000..22a50773eb --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/tokens/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { environmentFactory, configFactory, ENVIRONMENT, CONFIG } from './common.token'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1RUFBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uLnRva2VuJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/utils/generator-utils.js b/npm/packs/ng/dist/core/esm5/lib/utils/generator-utils.js new file mode 100644 index 0000000000..9e840a8041 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/utils/generator-utils.js @@ -0,0 +1,14 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?=} a + * @return {?} + */ +export function uuid(a) { + return a + ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) + : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLXV0aWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL2dlbmVyYXRvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQU0sVUFBVSxJQUFJLENBQUMsQ0FBTztJQUMxQixPQUFPLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN0RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHV1aWQoYT86IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiBhXG4gICAgPyAoYSBeICgoTWF0aC5yYW5kb20oKSAqIDE2KSA+PiAoYSAvIDQpKSkudG9TdHJpbmcoMTYpXG4gICAgOiAoJycgKyAxZTcgKyAtMWUzICsgLTRlMyArIC04ZTMgKyAtMWUxMSkucmVwbGFjZSgvWzAxOF0vZywgdXVpZCk7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/utils/index.js b/npm/packs/ng/dist/core/esm5/lib/utils/index.js new file mode 100644 index 0000000000..f75166e0ed --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/utils/index.js @@ -0,0 +1,9 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { uuid } from './generator-utils'; +export { getInitialData } from './initial-utils'; +export { organizeRoutes, setChildRoute, sortRoutes } from './route-utils'; +export { takeUntilDestroy } from './rxjs-utils'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFCQUFjLG1CQUFtQixDQUFDO0FBQ2xDLCtCQUFjLGlCQUFpQixDQUFDO0FBQ2hDLDBEQUFjLGVBQWUsQ0FBQztBQUM5QixpQ0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dlbmVyYXRvci11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2luaXRpYWwtdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZS11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3J4anMtdXRpbHMnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/utils/initial-utils.js b/npm/packs/ng/dist/core/esm5/lib/utils/initial-utils.js new file mode 100644 index 0000000000..447c670bd2 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/utils/initial-utils.js @@ -0,0 +1,23 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Store } from '@ngxs/store'; +import { ConfigGetAppConfiguration } from '../actions/config.actions'; +/** + * @param {?} injector + * @return {?} + */ +export function getInitialData(injector) { + /** @type {?} */ + var fn = (/** + * @return {?} + */ + function () { + /** @type {?} */ + var store = injector.get(Store); + return store.dispatch(new ConfigGetAppConfiguration()).toPromise(); + }); + return fn; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9pbml0aWFsLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQUV0RSxNQUFNLFVBQVUsY0FBYyxDQUFDLFFBQWtCOztRQUN6QyxFQUFFOzs7SUFBRzs7WUFDSCxLQUFLLEdBQVUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFFeEMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUkseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JFLENBQUMsQ0FBQTtJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IENvbmZpZ0dldEFwcENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9hY3Rpb25zL2NvbmZpZy5hY3Rpb25zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEluaXRpYWxEYXRhKGluamVjdG9yOiBJbmplY3Rvcikge1xuICBjb25zdCBmbiA9IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IHN0b3JlOiBTdG9yZSA9IGluamVjdG9yLmdldChTdG9yZSk7XG5cbiAgICByZXR1cm4gc3RvcmUuZGlzcGF0Y2gobmV3IENvbmZpZ0dldEFwcENvbmZpZ3VyYXRpb24oKSkudG9Qcm9taXNlKCk7XG4gIH07XG5cbiAgcmV0dXJuIGZuO1xufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/utils/route-utils.js b/npm/packs/ng/dist/core/esm5/lib/utils/route-utils.js new file mode 100644 index 0000000000..09f678bf07 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/utils/route-utils.js @@ -0,0 +1,101 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +/** + * @param {?} routes + * @param {?=} wrappers + * @param {?=} parentNameArr + * @param {?=} parentName + * @return {?} + */ +export function organizeRoutes(routes, wrappers, parentNameArr, parentName) { + if (wrappers === void 0) { wrappers = []; } + if (parentNameArr === void 0) { parentNameArr = (/** @type {?} */ ([])); } + if (parentName === void 0) { parentName = null; } + /** @type {?} */ + var filter = (/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.children) { + route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name); + } + if (route.parentName && route.parentName !== parentName) { + parentNameArr.push(route); + return false; + } + return true; + }); + if (parentName) { + // recursive block + return routes.filter(filter); + } + /** @type {?} */ + var filteredRoutes = routes.filter(filter); + if (parentNameArr.length) { + return sortRoutes(setChildRoute(tslib_1.__spread(filteredRoutes, wrappers), parentNameArr)); + } + return filteredRoutes; +} +/** + * @param {?} routes + * @param {?} parentNameArr + * @return {?} + */ +export function setChildRoute(routes, parentNameArr) { + return routes + .map((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.children && route.children.length) { + route.children = setChildRoute(route.children, parentNameArr); + } + /** @type {?} */ + var foundedChildren = parentNameArr.filter((/** + * @param {?} parent + * @return {?} + */ + function (parent) { return parent.parentName === route.name; })); + if (foundedChildren && foundedChildren.length) { + route.children = tslib_1.__spread((route.children || []), foundedChildren); + } + return route; + })) + .filter((/** + * @param {?} route + * @return {?} + */ + function (route) { return route.path || (route.children && route.children.length); })); +} +/** + * @param {?=} routes + * @return {?} + */ +export function sortRoutes(routes) { + if (routes === void 0) { routes = []; } + if (!routes.length) + return []; + return routes + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + function (a, b) { return a.order - b.order; })) + .map((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.children && route.children.length) { + route.children = sortRoutes(route.children); + } + return route; + })); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtdXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvcm91dGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUEsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsTUFBdUIsRUFDdkIsUUFBOEIsRUFDOUIsYUFBcUMsRUFDckMsVUFBeUI7SUFGekIseUJBQUEsRUFBQSxhQUE4QjtJQUM5Qiw4QkFBQSxFQUFBLG1DQUFnQixFQUFFLEVBQW1CO0lBQ3JDLDJCQUFBLEVBQUEsaUJBQXlCOztRQUVuQixNQUFNOzs7O0lBQUcsVUFBQSxLQUFLO1FBQ2xCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNsQixLQUFLLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3RGO1FBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ3ZELGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFBO0lBRUQsSUFBSSxVQUFVLEVBQUU7UUFDZCxrQkFBa0I7UUFDbEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzlCOztRQUVLLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUU1QyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUU7UUFDeEIsT0FBTyxVQUFVLENBQUMsYUFBYSxrQkFBSyxjQUFjLEVBQUssUUFBUSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUM7S0FDbkY7SUFFRCxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQXVCLEVBQUUsYUFBOEI7SUFDbkYsT0FBTyxNQUFNO1NBQ1YsR0FBRzs7OztJQUFDLFVBQUEsS0FBSztRQUNSLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUMzQyxLQUFLLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQy9EOztZQUVLLGVBQWUsR0FBRyxhQUFhLENBQUMsTUFBTTs7OztRQUFDLFVBQUEsTUFBTSxJQUFJLE9BQUEsTUFBTSxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsSUFBSSxFQUFoQyxDQUFnQyxFQUFDO1FBQ3hGLElBQUksZUFBZSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUU7WUFDN0MsS0FBSyxDQUFDLFFBQVEsb0JBQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFLLGVBQWUsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUM7U0FDRCxNQUFNOzs7O0lBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUF2RCxDQUF1RCxFQUFDLENBQUM7QUFDOUUsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE1BQTRCO0lBQTVCLHVCQUFBLEVBQUEsV0FBNEI7SUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDOUIsT0FBTyxNQUFNO1NBQ1YsSUFBSTs7Ozs7SUFBQyxVQUFDLENBQUMsRUFBRSxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQWpCLENBQWlCLEVBQUM7U0FDakMsR0FBRzs7OztJQUFDLFVBQUEsS0FBSztRQUNSLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUMzQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDN0M7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsRUFBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBvcmdhbml6ZVJvdXRlcyhcbiAgcm91dGVzOiBBQlAuRnVsbFJvdXRlW10sXG4gIHdyYXBwZXJzOiBBQlAuRnVsbFJvdXRlW10gPSBbXSxcbiAgcGFyZW50TmFtZUFyciA9IFtdIGFzIEFCUC5GdWxsUm91dGVbXSxcbiAgcGFyZW50TmFtZTogc3RyaW5nID0gbnVsbCxcbik6IEFCUC5GdWxsUm91dGVbXSB7XG4gIGNvbnN0IGZpbHRlciA9IHJvdXRlID0+IHtcbiAgICBpZiAocm91dGUuY2hpbGRyZW4pIHtcbiAgICAgIHJvdXRlLmNoaWxkcmVuID0gb3JnYW5pemVSb3V0ZXMocm91dGUuY2hpbGRyZW4sIHdyYXBwZXJzLCBwYXJlbnROYW1lQXJyLCByb3V0ZS5uYW1lKTtcbiAgICB9XG5cbiAgICBpZiAocm91dGUucGFyZW50TmFtZSAmJiByb3V0ZS5wYXJlbnROYW1lICE9PSBwYXJlbnROYW1lKSB7XG4gICAgICBwYXJlbnROYW1lQXJyLnB1c2gocm91dGUpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIGlmIChwYXJlbnROYW1lKSB7XG4gICAgLy8gcmVjdXJzaXZlIGJsb2NrXG4gICAgcmV0dXJuIHJvdXRlcy5maWx0ZXIoZmlsdGVyKTtcbiAgfVxuXG4gIGNvbnN0IGZpbHRlcmVkUm91dGVzID0gcm91dGVzLmZpbHRlcihmaWx0ZXIpO1xuXG4gIGlmIChwYXJlbnROYW1lQXJyLmxlbmd0aCkge1xuICAgIHJldHVybiBzb3J0Um91dGVzKHNldENoaWxkUm91dGUoWy4uLmZpbHRlcmVkUm91dGVzLCAuLi53cmFwcGVyc10sIHBhcmVudE5hbWVBcnIpKTtcbiAgfVxuXG4gIHJldHVybiBmaWx0ZXJlZFJvdXRlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldENoaWxkUm91dGUocm91dGVzOiBBQlAuRnVsbFJvdXRlW10sIHBhcmVudE5hbWVBcnI6IEFCUC5GdWxsUm91dGVbXSk6IEFCUC5GdWxsUm91dGVbXSB7XG4gIHJldHVybiByb3V0ZXNcbiAgICAubWFwKHJvdXRlID0+IHtcbiAgICAgIGlmIChyb3V0ZS5jaGlsZHJlbiAmJiByb3V0ZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgcm91dGUuY2hpbGRyZW4gPSBzZXRDaGlsZFJvdXRlKHJvdXRlLmNoaWxkcmVuLCBwYXJlbnROYW1lQXJyKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZm91bmRlZENoaWxkcmVuID0gcGFyZW50TmFtZUFyci5maWx0ZXIocGFyZW50ID0+IHBhcmVudC5wYXJlbnROYW1lID09PSByb3V0ZS5uYW1lKTtcbiAgICAgIGlmIChmb3VuZGVkQ2hpbGRyZW4gJiYgZm91bmRlZENoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICByb3V0ZS5jaGlsZHJlbiA9IFsuLi4ocm91dGUuY2hpbGRyZW4gfHwgW10pLCAuLi5mb3VuZGVkQ2hpbGRyZW5dO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcm91dGU7XG4gICAgfSlcbiAgICAuZmlsdGVyKHJvdXRlID0+IHJvdXRlLnBhdGggfHwgKHJvdXRlLmNoaWxkcmVuICYmIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29ydFJvdXRlcyhyb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSA9IFtdKTogQUJQLkZ1bGxSb3V0ZVtdIHtcbiAgaWYgKCFyb3V0ZXMubGVuZ3RoKSByZXR1cm4gW107XG4gIHJldHVybiByb3V0ZXNcbiAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpXG4gICAgLm1hcChyb3V0ZSA9PiB7XG4gICAgICBpZiAocm91dGUuY2hpbGRyZW4gJiYgcm91dGUuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIHJvdXRlLmNoaWxkcmVuID0gc29ydFJvdXRlcyhyb3V0ZS5jaGlsZHJlbik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByb3V0ZTtcbiAgICB9KTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/lib/utils/rxjs-utils.js b/npm/packs/ng/dist/core/esm5/lib/utils/rxjs-utils.js new file mode 100644 index 0000000000..8367c7521b --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/lib/utils/rxjs-utils.js @@ -0,0 +1,47 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +/** + * @param {?} value + * @return {?} + */ +function isFunction(value) { + return typeof value === 'function'; +} +/** @type {?} */ +export var takeUntilDestroy = (/** + * @param {?} componentInstance + * @param {?=} destroyMethodName + * @return {?} + */ +function (componentInstance, destroyMethodName) { + if (destroyMethodName === void 0) { destroyMethodName = 'ngOnDestroy'; } + return (/** + * @template T + * @param {?} source + * @return {?} + */ + function (source) { + /** @type {?} */ + var originalDestroy = componentInstance[destroyMethodName]; + if (isFunction(originalDestroy) === false) { + throw new Error(componentInstance.constructor.name + " is using untilDestroyed but doesn't implement " + destroyMethodName); + } + if (!componentInstance['__takeUntilDestroy']) { + componentInstance['__takeUntilDestroy'] = new Subject(); + componentInstance[destroyMethodName] = (/** + * @return {?} + */ + function () { + isFunction(originalDestroy) && originalDestroy.apply(this, arguments); + componentInstance['__takeUntilDestroy'].next(true); + componentInstance['__takeUntilDestroy'].complete(); + }); + } + return source.pipe(takeUntil(componentInstance['__takeUntilDestroy'])); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9yeGpzLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFM0MsU0FBUyxVQUFVLENBQUMsS0FBSztJQUN2QixPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztBQUNyQyxDQUFDOztBQUVELE1BQU0sS0FBTyxnQkFBZ0I7Ozs7O0FBQUcsVUFBQyxpQkFBaUIsRUFBRSxpQkFBaUM7SUFBakMsa0NBQUEsRUFBQSxpQ0FBaUM7Ozs7OztJQUFLLFVBQ3hGLE1BQXFCOztZQUVmLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQztRQUM1RCxJQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDekMsTUFBTSxJQUFJLEtBQUssQ0FDVixpQkFBaUIsQ0FBQyxXQUFXLENBQUMsSUFBSSx1REFBa0QsaUJBQW1CLENBQzNHLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO1lBQzVDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUV4RCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQzs7O1lBQUc7Z0JBQ3JDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDdEUsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25ELGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckQsQ0FBQyxDQUFBLENBQUM7U0FDSDtRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUksaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUFBLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGNvbnN0IHRha2VVbnRpbERlc3Ryb3kgPSAoY29tcG9uZW50SW5zdGFuY2UsIGRlc3Ryb3lNZXRob2ROYW1lID0gJ25nT25EZXN0cm95JykgPT4gPFQ+KFxuICBzb3VyY2U6IE9ic2VydmFibGU8VD4sXG4pID0+IHtcbiAgY29uc3Qgb3JpZ2luYWxEZXN0cm95ID0gY29tcG9uZW50SW5zdGFuY2VbZGVzdHJveU1ldGhvZE5hbWVdO1xuICBpZiAoaXNGdW5jdGlvbihvcmlnaW5hbERlc3Ryb3kpID09PSBmYWxzZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGAke2NvbXBvbmVudEluc3RhbmNlLmNvbnN0cnVjdG9yLm5hbWV9IGlzIHVzaW5nIHVudGlsRGVzdHJveWVkIGJ1dCBkb2Vzbid0IGltcGxlbWVudCAke2Rlc3Ryb3lNZXRob2ROYW1lfWAsXG4gICAgKTtcbiAgfVxuICBpZiAoIWNvbXBvbmVudEluc3RhbmNlWydfX3Rha2VVbnRpbERlc3Ryb3knXSkge1xuICAgIGNvbXBvbmVudEluc3RhbmNlWydfX3Rha2VVbnRpbERlc3Ryb3knXSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb21wb25lbnRJbnN0YW5jZVtkZXN0cm95TWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcbiAgICAgIGlzRnVuY3Rpb24ob3JpZ2luYWxEZXN0cm95KSAmJiBvcmlnaW5hbERlc3Ryb3kuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIGNvbXBvbmVudEluc3RhbmNlWydfX3Rha2VVbnRpbERlc3Ryb3knXS5uZXh0KHRydWUpO1xuICAgICAgY29tcG9uZW50SW5zdGFuY2VbJ19fdGFrZVVudGlsRGVzdHJveSddLmNvbXBsZXRlKCk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gc291cmNlLnBpcGUodGFrZVVudGlsPFQ+KGNvbXBvbmVudEluc3RhbmNlWydfX3Rha2VVbnRpbERlc3Ryb3knXSkpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/esm5/public-api.js b/npm/packs/ng/dist/core/esm5/public-api.js new file mode 100644 index 0000000000..32ec36e110 --- /dev/null +++ b/npm/packs/ng/dist/core/esm5/public-api.js @@ -0,0 +1,23 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/* + * Public API Surface of core + */ +// export * from './lib/handlers'; +export { PatchRouteByName, ConfigGetAppConfiguration, ProfileGet, ProfileUpdate, ProfileChangePassword, RestOccurError, SessionSetLanguage } from './lib/actions'; +export { DynamicLayoutComponent, RouterOutletComponent } from './lib/components'; +// export * from './lib/constants'; +export { PermissionDirective, VisibilityDirective } from './lib/directives'; +export {} from './lib/enums'; +export { AuthGuard, PermissionGuard } from './lib/guards'; +export { ApiInterceptor } from './lib/interceptors'; +export { Rest } from './lib/models'; +export { NGXS_CONFIG_PLUGIN_OPTIONS, ConfigPlugin } from './lib/plugins'; +export { ApplicationConfigurationService, ConfigService, LazyLoadService, LocalizationService, ProfileService, RestService } from './lib/services'; +export { ProfileState, ConfigState, SessionState } from './lib/states'; +export { environmentFactory, configFactory, ENVIRONMENT, CONFIG } from './lib/tokens'; +export { uuid, getInitialData, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy } from './lib/utils'; +export { CoreModule } from './lib/core.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSxrSkFBYyxlQUFlLENBQUM7QUFDOUIsOERBQWMsa0JBQWtCLENBQUM7O0FBRWpDLHlEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGVBQWMsYUFBYSxDQUFDO0FBQzVCLDJDQUFjLGNBQWMsQ0FBQztBQUM3QiwrQkFBYyxvQkFBb0IsQ0FBQztBQUNuQyxxQkFBYyxjQUFjLENBQUM7QUFDN0IseURBQWMsZUFBZSxDQUFDO0FBQzlCLGtJQUFjLGdCQUFnQixDQUFDO0FBQy9CLHdEQUFjLGNBQWMsQ0FBQztBQUM3Qix1RUFBYyxjQUFjLENBQUM7QUFDN0Isa0dBQWMsYUFBYSxDQUFDO0FBRTVCLDJCQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb3JlXG4gKi9cblxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvaGFuZGxlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VudW1zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2d1YXJkcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmNlcHRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BsdWdpbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUubW9kdWxlJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/core/fesm2015/abp-ng.core.js b/npm/packs/ng/dist/core/fesm2015/abp-ng.core.js new file mode 100644 index 0000000000..2f30250809 --- /dev/null +++ b/npm/packs/ng/dist/core/fesm2015/abp-ng.core.js @@ -0,0 +1,1679 @@ +import { __rest, __decorate, __metadata } from 'tslib'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, Directive, ElementRef, Optional, Renderer2, Input, InjectionToken, Inject, Pipe, APP_INITIALIZER, Injector, NgModule } from '@angular/core'; +import { NavigationEnd, Router, RouterModule } from '@angular/router'; +import { Store, Action, Selector, State, createSelector, Select, actionMatcher, InitState, UpdateState, setValue, NGXS_PLUGINS, NgxsModule } from '@ngxs/store'; +import { NEVER, throwError, of, Subject, Observable, ReplaySubject } from 'rxjs'; +import { HttpClient, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; +import { take, catchError, tap, switchMap, takeUntil, distinctUntilChanged } from 'rxjs/operators'; +import snq from 'snq'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Navigate, NgxsRouterPluginModule } from '@ngxs/router-plugin'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { NgxsStoragePluginModule } from '@ngxs/storage-plugin'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class PatchRouteByName { + /** + * @param {?} name + * @param {?} newValue + */ + constructor(name, newValue) { + this.name = name; + this.newValue = newValue; + } +} +PatchRouteByName.type = '[Config] Patch Route By Name'; +class ConfigGetAppConfiguration { +} +ConfigGetAppConfiguration.type = '[Config] Get App Configuration'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class ProfileGet { +} +ProfileGet.type = '[Profile] Get'; +class ProfileUpdate { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +ProfileUpdate.type = '[Profile] Update'; +class ProfileChangePassword { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +ProfileChangePassword.type = '[Profile] Change Password'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class RestOccurError { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +RestOccurError.type = '[Rest] Error'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class SessionSetLanguage { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +SessionSetLanguage.type = '[Session] Set Language'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class RestService { + /** + * @param {?} http + * @param {?} store + */ + constructor(http, store) { + this.http = http; + this.store = store; + } + /** + * @param {?} err + * @return {?} + */ + handleError(err) { + this.store.dispatch(new RestOccurError(err)); + console.error(err); + return NEVER; + } + /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + request(request, config = {}, api) { + const { observe = "body" /* Body */, throwErr } = config; + /** @type {?} */ + const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; + const { method } = request, options = __rest(request, ["method"]); + return this.http.request(method, url, (/** @type {?} */ (Object.assign({ observe }, options)))).pipe(observe === "body" /* Body */ ? take(1) : null, catchError((/** + * @param {?} err + * @return {?} + */ + err => { + if (throwErr) { + return throwError(err); + } + return this.handleError(err); + }))); + } +} +RestService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +RestService.ctorParameters = () => [ + { type: HttpClient }, + { type: Store } +]; +/** @nocollapse */ RestService.ngInjectableDef = ɵɵdefineInjectable({ factory: function RestService_Factory() { return new RestService(ɵɵinject(HttpClient), ɵɵinject(Store)); }, token: RestService, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class ProfileService { + /** + * @param {?} rest + */ + constructor(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + get() { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/identity/profile', + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + update(body) { + /** @type {?} */ + const request = { + method: 'PUT', + url: '/api/identity/profile', + body, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + changePassword(body) { + /** @type {?} */ + const request = { + method: 'POST', + url: '/api/identity/profile/changePassword', + body, + }; + return this.rest.request(request); + } +} +ProfileService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +ProfileService.ctorParameters = () => [ + { type: RestService } +]; +/** @nocollapse */ ProfileService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ProfileService_Factory() { return new ProfileService(ɵɵinject(RestService)); }, token: ProfileService, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +let ProfileState = class ProfileState { + /** + * @param {?} profileService + */ + constructor(profileService) { + this.profileService = profileService; + } + /** + * @param {?} __0 + * @return {?} + */ + static getProfile({ profile }) { + return profile; + } + /** + * @param {?} __0 + * @return {?} + */ + profileGet({ patchState }) { + return this.profileService.get().pipe(tap((/** + * @param {?} profile + * @return {?} + */ + profile => patchState({ + profile, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + profileUpdate({ patchState }, { payload }) { + return this.profileService.update(payload).pipe(tap((/** + * @param {?} profile + * @return {?} + */ + profile => patchState({ + profile, + })))); + } + /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + changePassword(_, { payload }) { + return this.profileService.changePassword(payload); + } +}; +__decorate([ + Action(ProfileGet), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], ProfileState.prototype, "profileGet", null); +__decorate([ + Action(ProfileUpdate), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, ProfileUpdate]), + __metadata("design:returntype", void 0) +], ProfileState.prototype, "profileUpdate", null); +__decorate([ + Action(ProfileChangePassword), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, ProfileChangePassword]), + __metadata("design:returntype", void 0) +], ProfileState.prototype, "changePassword", null); +__decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Object) +], ProfileState, "getProfile", null); +ProfileState = __decorate([ + State({ + name: 'ProfileState', + defaults: (/** @type {?} */ ({})), + }), + __metadata("design:paramtypes", [ProfileService]) +], ProfileState); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class ApplicationConfigurationService { + /** + * @param {?} rest + */ + constructor(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + getConfiguration() { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/abp/application-configuration', + }; + return this.rest.request(request); + } +} +ApplicationConfigurationService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +ApplicationConfigurationService.ctorParameters = () => [ + { type: RestService } +]; +/** @nocollapse */ ApplicationConfigurationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ApplicationConfigurationService_Factory() { return new ApplicationConfigurationService(ɵɵinject(RestService)); }, token: ApplicationConfigurationService, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +let SessionState = class SessionState { + constructor() { } + /** + * @param {?} __0 + * @return {?} + */ + static getLanguage({ language }) { + return language; + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + sessionSetLanguage({ patchState }, { payload }) { + patchState({ + language: payload, + }); + } +}; +__decorate([ + Action(SessionSetLanguage), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, SessionSetLanguage]), + __metadata("design:returntype", void 0) +], SessionState.prototype, "sessionSetLanguage", null); +__decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", String) +], SessionState, "getLanguage", null); +SessionState = __decorate([ + State({ + name: 'SessionState', + defaults: (/** @type {?} */ ({})), + }), + __metadata("design:paramtypes", []) +], SessionState); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} routes + * @param {?=} wrappers + * @param {?=} parentNameArr + * @param {?=} parentName + * @return {?} + */ +function organizeRoutes(routes, wrappers = [], parentNameArr = (/** @type {?} */ ([])), parentName = null) { + /** @type {?} */ + const filter = (/** + * @param {?} route + * @return {?} + */ + route => { + if (route.children) { + route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name); + } + if (route.parentName && route.parentName !== parentName) { + parentNameArr.push(route); + return false; + } + return true; + }); + if (parentName) { + // recursive block + return routes.filter(filter); + } + /** @type {?} */ + const filteredRoutes = routes.filter(filter); + if (parentNameArr.length) { + return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr)); + } + return filteredRoutes; +} +/** + * @param {?} routes + * @param {?} parentNameArr + * @return {?} + */ +function setChildRoute(routes, parentNameArr) { + return routes + .map((/** + * @param {?} route + * @return {?} + */ + route => { + if (route.children && route.children.length) { + route.children = setChildRoute(route.children, parentNameArr); + } + /** @type {?} */ + const foundedChildren = parentNameArr.filter((/** + * @param {?} parent + * @return {?} + */ + parent => parent.parentName === route.name)); + if (foundedChildren && foundedChildren.length) { + route.children = [...(route.children || []), ...foundedChildren]; + } + return route; + })) + .filter((/** + * @param {?} route + * @return {?} + */ + route => route.path || (route.children && route.children.length))); +} +/** + * @param {?=} routes + * @return {?} + */ +function sortRoutes(routes = []) { + if (!routes.length) + return []; + return routes + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + (a, b) => a.order - b.order)) + .map((/** + * @param {?} route + * @return {?} + */ + route => { + if (route.children && route.children.length) { + route.children = sortRoutes(route.children); + } + return route; + })); +} + +var ConfigState_1; +let ConfigState = ConfigState_1 = class ConfigState { + /** + * @param {?} appConfigurationService + * @param {?} store + */ + constructor(appConfigurationService, store) { + this.appConfigurationService = appConfigurationService; + this.store = store; + } + /** + * @param {?} state + * @return {?} + */ + static getAll(state) { + return state; + } + /** + * @param {?} key + * @return {?} + */ + static getOne(key) { + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return state[key]; + })); + return selector; + } + /** + * @param {?} keys + * @return {?} + */ + static getDeep(keys) { + if (typeof keys === 'string') { + keys = keys.split('.'); + } + if (!Array.isArray(keys)) { + throw new Error('The argument must be a dot string or an string array.'); + } + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return ((/** @type {?} */ (keys))).reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => { + if (acc) { + return acc[val]; + } + return undefined; + }), state); + })); + return selector; + } + /** + * @param {?=} key + * @return {?} + */ + static getApiUrl(key) { + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return state.environment.apis[key || 'default'].url; + })); + return selector; + } + /** + * @param {?} key + * @return {?} + */ + static getSetting(key) { + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return snq((/** + * @return {?} + */ + () => state.setting.values[key])); + })); + return selector; + } + /** + * @param {?=} condition + * @return {?} + */ + static getGrantedPolicy(condition = '') { + /** @type {?} */ + const keys = condition + .replace(/\(|\)|\!|\s/g, '') + .split(/\|\||&&/) + .filter((/** + * @param {?} key + * @return {?} + */ + key => key)); + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + if (!keys.length) + return true; + /** @type {?} */ + const getPolicy = (/** + * @param {?} key + * @return {?} + */ + key => snq((/** + * @return {?} + */ + () => state.auth.grantedPolicies[key]), false)); + if (keys.length > 1) { + keys.forEach((/** + * @param {?} key + * @return {?} + */ + key => { + /** @type {?} */ + const value = getPolicy(key); + condition = condition.replace(key, value); + })); + // tslint:disable-next-line: no-eval + return eval(`!!${condition}`); + } + return getPolicy(condition); + })); + return selector; + } + /** + * @param {?} key + * @param {...?} interpolateParams + * @return {?} + */ + static getCopy(key, ...interpolateParams) { + /** @type {?} */ + const keys = (/** @type {?} */ (key.split('::'))); + /** @type {?} */ + const selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + const { defaultResourceName } = state.environment.localization; + if (keys[0] === '') { + if (!defaultResourceName) { + throw new Error(`Please check your environment. May you forget set defaultResourceName? + Here is the example: + { production: false, + localization: { + defaultResourceName: 'MyProjectName' + } + }`); + } + keys[0] = snq((/** + * @return {?} + */ + () => defaultResourceName)); + } + /** @type {?} */ + let copy = keys.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => { + if (acc) { + return acc[val]; + } + return undefined; + }), state.localization.values); + if (copy && interpolateParams && interpolateParams.length) { + interpolateParams.forEach((/** + * @param {?} param + * @param {?} index + * @return {?} + */ + (param, index) => { + copy = copy.replace(`'{${index}}'`, param); + })); + } + return copy || key; + })); + return selector; + } + /** + * @param {?} __0 + * @return {?} + */ + addData({ patchState, dispatch }) { + return this.appConfigurationService.getConfiguration().pipe(tap((/** + * @param {?} configuration + * @return {?} + */ + configuration => patchState(Object.assign({}, configuration)))), switchMap((/** + * @param {?} configuration + * @return {?} + */ + configuration => this.store.selectSnapshot(SessionState.getLanguage) + ? of(null) + : dispatch(new SessionSetLanguage(snq((/** + * @return {?} + */ + () => configuration.setting.values['Abp.Localization.DefaultLanguage']))))))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + patchRoute({ patchState, getState }, { name, newValue }) { + /** @type {?} */ + let routes = getState().routes; + /** @type {?} */ + const index = routes.findIndex((/** + * @param {?} route + * @return {?} + */ + route => route.name === name)); + routes = patchRouteDeep(routes, name, newValue); + return patchState({ + routes, + }); + } +}; +__decorate([ + Action(ConfigGetAppConfiguration), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], ConfigState.prototype, "addData", null); +__decorate([ + Action(PatchRouteByName), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, PatchRouteByName]), + __metadata("design:returntype", void 0) +], ConfigState.prototype, "patchRoute", null); +__decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], ConfigState, "getAll", null); +ConfigState = ConfigState_1 = __decorate([ + State({ + name: 'ConfigState', + defaults: (/** @type {?} */ ({})), + }), + __metadata("design:paramtypes", [ApplicationConfigurationService, Store]) +], ConfigState); +/** + * @param {?} routes + * @param {?} name + * @param {?} newValue + * @param {?=} parentUrl + * @return {?} + */ +function patchRouteDeep(routes, name, newValue, parentUrl = null) { + routes = routes.map((/** + * @param {?} route + * @return {?} + */ + route => { + if (route.name === name) { + if (newValue.path) { + newValue.url = `${parentUrl}/${newValue.path}`; + } + if (newValue.children && newValue.children.length) { + newValue.children = newValue.children.map((/** + * @param {?} child + * @return {?} + */ + child => (Object.assign({}, child, { url: `${parentUrl}/${route.path}/${child.path}` })))); + } + return Object.assign({}, route, newValue); + } + else if (route.children && route.children.length) { + route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path); + } + return route; + })); + if (parentUrl) { + // recursive block + return routes; + } + return organizeRoutes(routes); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?=} a + * @return {?} + */ +function uuid(a) { + return a + ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) + : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} injector + * @return {?} + */ +function getInitialData(injector) { + /** @type {?} */ + const fn = (/** + * @return {?} + */ + function () { + /** @type {?} */ + const store = injector.get(Store); + return store.dispatch(new ConfigGetAppConfiguration()).toPromise(); + }); + return fn; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} value + * @return {?} + */ +function isFunction(value) { + return typeof value === 'function'; +} +/** @type {?} */ +const takeUntilDestroy = (/** + * @param {?} componentInstance + * @param {?=} destroyMethodName + * @return {?} + */ +(componentInstance, destroyMethodName = 'ngOnDestroy') => (/** + * @template T + * @param {?} source + * @return {?} + */ +(source) => { + /** @type {?} */ + const originalDestroy = componentInstance[destroyMethodName]; + if (isFunction(originalDestroy) === false) { + throw new Error(`${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`); + } + if (!componentInstance['__takeUntilDestroy']) { + componentInstance['__takeUntilDestroy'] = new Subject(); + componentInstance[destroyMethodName] = (/** + * @return {?} + */ + function () { + isFunction(originalDestroy) && originalDestroy.apply(this, arguments); + componentInstance['__takeUntilDestroy'].next(true); + componentInstance['__takeUntilDestroy'].complete(); + }); + } + return source.pipe(takeUntil(componentInstance['__takeUntilDestroy'])); +})); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class DynamicLayoutComponent { + /** + * @param {?} router + * @param {?} store + */ + constructor(router, store) { + this.router = router; + this.store = store; + this.router.events.pipe(takeUntilDestroy(this)).subscribe((/** + * @param {?} event + * @return {?} + */ + event => { + if (event instanceof NavigationEnd) { + const { segments } = this.router.parseUrl(event.url).root.children.primary; + const { requirements: { layouts }, routes, } = this.store.selectSnapshot(ConfigState.getAll); + /** @type {?} */ + const layout = findLayout(segments, routes); + this.layout = layouts.filter((/** + * @param {?} l + * @return {?} + */ + l => !!l)).find((/** + * @param {?} l + * @return {?} + */ + l => snq((/** + * @return {?} + */ + () => l.type.toLowerCase().indexOf(layout)), -1) > -1)); + } + })); + } + /** + * @return {?} + */ + ngOnDestroy() { } +} +DynamicLayoutComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-dynamic-layout', + template: ` + + + + + ` + }] } +]; +/** @nocollapse */ +DynamicLayoutComponent.ctorParameters = () => [ + { type: Router }, + { type: Store } +]; +__decorate([ + Select(ConfigState.getOne('requirements')), + __metadata("design:type", Observable) +], DynamicLayoutComponent.prototype, "requirements$", void 0); +/** + * @param {?} segments + * @param {?} routes + * @return {?} + */ +function findLayout(segments, routes) { + /** @type {?} */ + let layout = "empty" /* empty */; + /** @type {?} */ + const route = routes + .reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val])), []) + .find((/** + * @param {?} r + * @return {?} + */ + r => r.path === segments[0].path)); + if (route) { + if (route.layout) { + layout = route.layout; + } + if (route.children && route.children.length) { + /** @type {?} */ + const child = route.children.find((/** + * @param {?} c + * @return {?} + */ + c => c.path === segments[1].path)); + if (child.layout) { + layout = child.layout; + } + } + } + return layout; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class RouterOutletComponent { +} +RouterOutletComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-router-outlet', + template: ` + + ` + }] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class PermissionDirective { + /** + * @param {?} elRef + * @param {?} renderer + * @param {?} store + */ + constructor(elRef, renderer, store) { + this.elRef = elRef; + this.renderer = renderer; + this.store = store; + } + /** + * @return {?} + */ + ngOnInit() { + if (this.condition) { + this.store + .select(ConfigState.getGrantedPolicy(this.condition)) + .pipe(takeUntilDestroy(this)) + .subscribe((/** + * @param {?} isGranted + * @return {?} + */ + isGranted => { + if (!isGranted) { + this.renderer.removeChild(((/** @type {?} */ (this.elRef.nativeElement))).parentElement, this.elRef.nativeElement); + } + })); + } + } + /** + * @return {?} + */ + ngOnDestroy() { } +} +PermissionDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpPermission]', + },] } +]; +/** @nocollapse */ +PermissionDirective.ctorParameters = () => [ + { type: ElementRef, decorators: [{ type: Optional }] }, + { type: Renderer2 }, + { type: Store } +]; +PermissionDirective.propDecorators = { + condition: [{ type: Input, args: ['abpPermission',] }] +}; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class VisibilityDirective { + /** + * @param {?} elRef + * @param {?} renderer + */ + constructor(elRef, renderer) { + this.elRef = elRef; + this.renderer = renderer; + this.completed$ = new Subject(); + } + /** + * @return {?} + */ + ngAfterViewInit() { + /** @type {?} */ + const observer = new MutationObserver((/** + * @param {?} mutations + * @return {?} + */ + mutations => { + mutations.forEach((/** + * @param {?} mutation + * @return {?} + */ + mutation => { + if (!mutation.target) + return; + /** @type {?} */ + const htmlNodes = snq((/** + * @return {?} + */ + () => Array.from(mutation.target.childNodes).filter((/** + * @param {?} node + * @return {?} + */ + node => node instanceof HTMLElement))), []); + if (!htmlNodes.length) { + this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement); + this.disconnect(); + } + else { + setTimeout((/** + * @return {?} + */ + () => { + this.disconnect(); + }), 0); + } + })); + })); + observer.observe(this.focusedElement, { + childList: true, + }); + this.completed$.subscribe((/** + * @return {?} + */ + () => observer.disconnect())); + } + /** + * @return {?} + */ + disconnect() { + this.completed$.next(); + this.completed$.complete(); + } +} +VisibilityDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpVisibility]', + },] } +]; +/** @nocollapse */ +VisibilityDirective.ctorParameters = () => [ + { type: ElementRef, decorators: [{ type: Optional }] }, + { type: Renderer2 } +]; +VisibilityDirective.propDecorators = { + focusedElement: [{ type: Input, args: ['abpVisibility',] }] +}; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class AuthGuard { + /** + * @param {?} oauthService + * @param {?} store + */ + constructor(oauthService, store) { + this.oauthService = oauthService; + this.store = store; + } + /** + * @param {?} _ + * @param {?} state + * @return {?} + */ + canActivate(_, state) { + /** @type {?} */ + const hasValidAccessToken = this.oauthService.hasValidAccessToken(); + if (hasValidAccessToken) { + return hasValidAccessToken; + } + this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } })); + return false; + } +} +AuthGuard.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +AuthGuard.ctorParameters = () => [ + { type: OAuthService }, + { type: Store } +]; +/** @nocollapse */ AuthGuard.ngInjectableDef = ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(ɵɵinject(OAuthService), ɵɵinject(Store)); }, token: AuthGuard, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class PermissionGuard { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @param {?} __0 + * @return {?} + */ + canActivate({ data }) { + /** @type {?} */ + const resource = (/** @type {?} */ (data.requiredPolicy)); + return this.store.select(ConfigState.getGrantedPolicy(resource)); + } +} +PermissionGuard.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +PermissionGuard.ctorParameters = () => [ + { type: Store } +]; +/** @nocollapse */ PermissionGuard.ngInjectableDef = ɵɵdefineInjectable({ factory: function PermissionGuard_Factory() { return new PermissionGuard(ɵɵinject(Store)); }, token: PermissionGuard, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class ApiInterceptor { + /** + * @param {?} oAuthService + * @param {?} store + */ + constructor(oAuthService, store) { + this.oAuthService = oAuthService; + this.store = store; + } + /** + * @param {?} request + * @param {?} next + * @return {?} + */ + intercept(request, next) { + /** @type {?} */ + const headers = (/** @type {?} */ ({})); + /** @type {?} */ + const token = this.oAuthService.getAccessToken(); + if (!request.headers.has('Authorization') && token) { + headers['Authorization'] = `Bearer ${token}`; + } + /** @type {?} */ + const lang = this.store.selectSnapshot(SessionState.getLanguage); + if (!request.headers.has('Accept-Language') && lang) { + headers['Accept-Language'] = lang; + } + return next.handle(request.clone({ + setHeaders: headers, + })); + } +} +ApiInterceptor.decorators = [ + { type: Injectable } +]; +/** @nocollapse */ +ApiInterceptor.ctorParameters = () => [ + { type: OAuthService }, + { type: Store } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var Rest; +(function (Rest) { + /** + * @record + */ + function Config() { } + Rest.Config = Config; + /** + * @record + * @template T + */ + function Request() { } + Rest.Request = Request; +})(Rest || (Rest = {})); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS'); +class ConfigPlugin { + /** + * @param {?} options + * @param {?} router + */ + constructor(options, router) { + this.options = options; + this.router = router; + this.initialized = false; + } + /** + * @param {?} state + * @param {?} event + * @param {?} next + * @return {?} + */ + handle(state, event, next) { + /** @type {?} */ + const matches = actionMatcher(event); + /** @type {?} */ + const isInitAction = matches(InitState) || matches(UpdateState); + // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []); + if (isInitAction && !this.initialized) { + let { routes, wrappers } = transformRoutes(this.router.config); + routes = organizeRoutes(routes, wrappers); + state = setValue(state, 'ConfigState', Object.assign({}, (state.ConfigState && Object.assign({}, state.ConfigState)), this.options, { routes })); + this.initialized = true; + } + return next(state, event); + } +} +ConfigPlugin.decorators = [ + { type: Injectable } +]; +/** @nocollapse */ +ConfigPlugin.ctorParameters = () => [ + { type: undefined, decorators: [{ type: Inject, args: [NGXS_CONFIG_PLUGIN_OPTIONS,] }] }, + { type: Router } +]; +/** + * @param {?=} routes + * @param {?=} wrappers + * @return {?} + */ +function transformRoutes(routes = [], wrappers = []) { + /** @type {?} */ + const abpRoutes = routes + .filter((/** + * @param {?} route + * @return {?} + */ + route => { + return snq((/** + * @return {?} + */ + () => route.data.routes.find((/** + * @param {?} r + * @return {?} + */ + r => r.path === route.path))), false); + })) + .reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => [...acc, ...val.data.routes]), []); + wrappers = abpRoutes.filter((/** + * @param {?} ar + * @return {?} + */ + ar => ar.wrapper)); + /** @type {?} */ + const transformed = (/** @type {?} */ ([])); + routes + .filter((/** + * @param {?} route + * @return {?} + */ + route => route.component || route.loadChildren)) + .forEach((/** + * @param {?} route + * @return {?} + */ + route => { + /** @type {?} */ + const abpPackage = abpRoutes.find((/** + * @param {?} abp + * @return {?} + */ + abp => abp.path.toLowerCase() === route.path.toLowerCase())); + const { length } = transformed; + if (abpPackage) { + transformed.push(abpPackage); + } + if (transformed.length === length) { + transformed.push((/** @type {?} */ ({ + path: route.path, + name: snq((/** + * @return {?} + */ + () => route.data.routes.name), route.path), + children: route.data.routes.children || [], + }))); + } + })); + return { routes: setUrls(transformed), wrappers }; +} +/** + * @param {?} routes + * @param {?=} parentUrl + * @return {?} + */ +function setUrls(routes, parentUrl) { + if (parentUrl) { + // this if block using for only recursive call + return routes.map((/** + * @param {?} route + * @return {?} + */ + route => (Object.assign({}, route, { url: `${parentUrl}/${route.path}` }, (route.children && + route.children.length && { + children: setUrls(route.children, `${parentUrl}/${route.path}`), + }))))); + } + return routes.map((/** + * @param {?} route + * @return {?} + */ + route => (Object.assign({}, route, { url: `/${route.path}` }, (route.children && + route.children.length && { + children: setUrls(route.children, `/${route.path}`), + }))))); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class ConfigService { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @return {?} + */ + getAll() { + return this.store.selectSnapshot(ConfigState.getAll); + } + /** + * @param {?} key + * @return {?} + */ + getOne(key) { + return this.store.selectSnapshot(ConfigState.getOne(key)); + } + /** + * @param {?} keys + * @return {?} + */ + getDeep(keys) { + return this.store.selectSnapshot(ConfigState.getDeep(keys)); + } + /** + * @param {?} key + * @return {?} + */ + getSetting(key) { + return this.store.selectSnapshot(ConfigState.getSetting(key)); + } +} +ConfigService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +ConfigService.ctorParameters = () => [ + { type: Store } +]; +/** @nocollapse */ ConfigService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(ɵɵinject(Store)); }, token: ConfigService, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class LazyLoadService { + constructor() { + this.loadedLibraries = {}; + } + /** + * @param {?} url + * @param {?} type + * @param {?=} content + * @param {?=} targetQuery + * @param {?=} position + * @return {?} + */ + load(url, type, content = '', targetQuery = 'body', position = 'afterend') { + if (!url && !content) + return; + /** @type {?} */ + const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid(); + if (this.loadedLibraries[key]) { + return this.loadedLibraries[key].asObservable(); + } + this.loadedLibraries[key] = new ReplaySubject(); + /** @type {?} */ + let library; + if (type === 'script') { + library = document.createElement('script'); + library.type = 'text/javascript'; + if (url) { + ((/** @type {?} */ (library))).src = url; + } + ((/** @type {?} */ (library))).text = content; + } + else if (url) { + library = document.createElement('link'); + library.type = 'text/css'; + ((/** @type {?} */ (library))).rel = 'stylesheet'; + if (url) { + ((/** @type {?} */ (library))).href = url; + } + } + else { + library = document.createElement('style'); + ((/** @type {?} */ (library))).textContent = content; + } + library.onload = (/** + * @return {?} + */ + () => { + this.loadedLibraries[key].next(); + this.loadedLibraries[key].complete(); + }); + document.querySelector(targetQuery).insertAdjacentElement(position, library); + return this.loadedLibraries[key].asObservable(); + } +} +LazyLoadService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ LazyLoadService.ngInjectableDef = ɵɵdefineInjectable({ factory: function LazyLoadService_Factory() { return new LazyLoadService(); }, token: LazyLoadService, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class LocalizationService { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + get(keys, ...interpolateParams) { + return this.store.select(ConfigState.getCopy(keys, ...interpolateParams)); + } + /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + instant(keys, ...interpolateParams) { + return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams)); + } +} +LocalizationService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } +]; +/** @nocollapse */ +LocalizationService.ctorParameters = () => [ + { type: Store } +]; +/** @nocollapse */ LocalizationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(ɵɵinject(Store)); }, token: LocalizationService, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} environment + * @return {?} + */ +function environmentFactory(environment) { + return Object.assign({}, environment); +} +/** + * @param {?} config + * @return {?} + */ +function configFactory(config) { + return Object.assign({}, config); +} +/** @type {?} */ +const ENVIRONMENT = new InjectionToken('ENVIRONMENT'); +/** @type {?} */ +const CONFIG = new InjectionToken('CONFIG'); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class LocalizationPipe { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + this.initialized = false; + } + /** + * @param {?} value + * @param {...?} interpolateParams + * @return {?} + */ + transform(value, ...interpolateParams) { + if (!this.initialized) { + this.initialized = true; + this.store + .select(ConfigState.getCopy(value, ...interpolateParams.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val])), []))) + .pipe(takeUntilDestroy(this), distinctUntilChanged()) + .subscribe((/** + * @param {?} copy + * @return {?} + */ + copy => (this.value = copy))); + } + return this.value; + } + /** + * @return {?} + */ + ngOnDestroy() { } +} +LocalizationPipe.decorators = [ + { type: Pipe, args: [{ + name: 'abpLocalization', + pure: false, + },] } +]; +/** @nocollapse */ +LocalizationPipe.ctorParameters = () => [ + { type: Store } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class CoreModule { + /** + * @param {?=} options + * @return {?} + */ + static forRoot(options = (/** @type {?} */ ({}))) { + return { + ngModule: CoreModule, + providers: [ + { + provide: NGXS_PLUGINS, + useClass: ConfigPlugin, + multi: true, + }, + { + provide: NGXS_CONFIG_PLUGIN_OPTIONS, + useValue: options, + }, + { + provide: HTTP_INTERCEPTORS, + useClass: ApiInterceptor, + multi: true, + }, + { + provide: APP_INITIALIZER, + multi: true, + deps: [Injector], + useFactory: getInitialData, + }, + ], + }; + } +} +CoreModule.decorators = [ + { type: NgModule, args: [{ + imports: [ + NgxsModule.forFeature([ProfileState, SessionState, ConfigState]), + NgxsStoragePluginModule.forRoot({ key: 'SessionState' }), + NgxsRouterPluginModule.forRoot(), + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + RouterModule, + ], + declarations: [ + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + exports: [ + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + RouterModule, + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + providers: [LocalizationPipe], + entryComponents: [RouterOutletComponent, DynamicLayoutComponent], + },] } +]; + +export { ApiInterceptor, ApplicationConfigurationService, AuthGuard, CONFIG, ConfigGetAppConfiguration, ConfigPlugin, ConfigService, ConfigState, CoreModule, DynamicLayoutComponent, ENVIRONMENT, LazyLoadService, LocalizationService, NGXS_CONFIG_PLUGIN_OPTIONS, PatchRouteByName, PermissionDirective, PermissionGuard, ProfileChangePassword, ProfileGet, ProfileService, ProfileState, ProfileUpdate, Rest, RestOccurError, RestService, RouterOutletComponent, SessionSetLanguage, SessionState, VisibilityDirective, configFactory, environmentFactory, getInitialData, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy, uuid, ProfileState as ɵa, ProfileService as ɵb, RestService as ɵc, ProfileGet as ɵd, ProfileUpdate as ɵe, ProfileChangePassword as ɵf, SessionState as ɵh, SessionSetLanguage as ɵi, ConfigState as ɵj, ApplicationConfigurationService as ɵk, PatchRouteByName as ɵl, ConfigGetAppConfiguration as ɵm, RouterOutletComponent as ɵn, DynamicLayoutComponent as ɵo, ConfigState as ɵp, PermissionDirective as ɵq, VisibilityDirective as ɵr, LocalizationPipe as ɵs, NGXS_CONFIG_PLUGIN_OPTIONS as ɵt, ConfigPlugin as ɵu, ApiInterceptor as ɵw, getInitialData as ɵx }; +//# sourceMappingURL=abp-ng.core.js.map diff --git a/npm/packs/ng/dist/core/fesm2015/abp-ng.core.js.map b/npm/packs/ng/dist/core/fesm2015/abp-ng.core.js.map new file mode 100644 index 0000000000..f4ade2dd8d --- /dev/null +++ b/npm/packs/ng/dist/core/fesm2015/abp-ng.core.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.core.js","sources":["ng://@abp/ng.core/lib/actions/config.actions.ts","ng://@abp/ng.core/lib/actions/profile.actions.ts","ng://@abp/ng.core/lib/actions/rest.actions.ts","ng://@abp/ng.core/lib/actions/session.actions.ts","ng://@abp/ng.core/lib/services/rest.service.ts","ng://@abp/ng.core/lib/services/profile.service.ts","ng://@abp/ng.core/lib/states/profile.state.ts","ng://@abp/ng.core/lib/services/application-configuration.service.ts","ng://@abp/ng.core/lib/states/session.state.ts","ng://@abp/ng.core/lib/utils/route-utils.ts","ng://@abp/ng.core/lib/states/config.state.ts","ng://@abp/ng.core/lib/utils/generator-utils.ts","ng://@abp/ng.core/lib/utils/initial-utils.ts","ng://@abp/ng.core/lib/utils/rxjs-utils.ts","ng://@abp/ng.core/lib/components/dynamic-layout.component.ts","ng://@abp/ng.core/lib/components/router-outlet.component.ts","ng://@abp/ng.core/lib/directives/permission.directive.ts","ng://@abp/ng.core/lib/directives/visibility.directive.ts","ng://@abp/ng.core/lib/guards/auth.guard.ts","ng://@abp/ng.core/lib/guards/permission.guard.ts","ng://@abp/ng.core/lib/interceptors/api.interceptor.ts","ng://@abp/ng.core/lib/models/rest.ts","ng://@abp/ng.core/lib/plugins/config.plugin.ts","ng://@abp/ng.core/lib/services/config.service.ts","ng://@abp/ng.core/lib/services/lazy-load.service.ts","ng://@abp/ng.core/lib/services/localization.service.ts","ng://@abp/ng.core/lib/tokens/common.token.ts","ng://@abp/ng.core/lib/pipes/localization.pipe.ts","ng://@abp/ng.core/lib/core.module.ts"],"sourcesContent":["import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class ConfigGetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { Profile } from '../models';\n\nexport class ProfileGet {\n static readonly type = '[Profile] Get';\n}\n\nexport class ProfileUpdate {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ProfileChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","export class SessionSetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return NEVER;\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, throwErr } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (throwErr) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/profile/changePassword',\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { ProfileGet, ProfileChangePassword, ProfileUpdate } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(ProfileGet)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ProfileUpdate)\n profileUpdate({ patchState }: StateContext, { payload }: ProfileUpdate) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ProfileChangePassword)\n changePassword(_, { payload }: ProfileChangePassword) {\n return this.profileService.changePassword(payload);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { SessionSetLanguage } from '../actions/session.actions';\nimport { Session } from '../models/session';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n constructor() {}\n\n @Action(SessionSetLanguage)\n sessionSetLanguage({ patchState }: StateContext, { payload }: SessionSetLanguage) {\n patchState({\n language: payload,\n });\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes\n .map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n })\n .filter(route => route.path || (route.children && route.children.length));\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { ConfigGetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SessionSetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(condition: string = '') {\n const keys = condition\n .replace(/\\(|\\)|\\!|\\s/g, '')\n .split(/\\|\\||&&/)\n .filter(key => key);\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!keys.length) return true;\n\n const getPolicy = key => snq(() => state.auth.grantedPolicies[key], false);\n if (keys.length > 1) {\n keys.forEach(key => {\n const value = getPolicy(key);\n condition = condition.replace(key, value);\n });\n\n // tslint:disable-next-line: no-eval\n return eval(`!!${condition}`);\n }\n\n return getPolicy(condition);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = keys.reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach((param, index) => {\n copy = copy.replace(`'{${index}}'`, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(ConfigGetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration =>\n this.store.selectSnapshot(SessionState.getLanguage)\n ? of(null)\n : dispatch(\n new SessionSetLanguage(snq(() => configuration.setting.values['Abp.Localization.DefaultLanguage'])),\n ),\n ),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigGetAppConfiguration } from '../actions/config.actions';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new ConfigGetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, OnDestroy, Type } from '@angular/core';\nimport { NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { eLayoutType } from '../enums';\nimport { ABP, Config } from '../models';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport snq from 'snq';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private store: Store) {\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n const layout = findLayout(segments, routes);\n\n this.layout = layouts.filter(l => !!l).find(l => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store) {}\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } }));\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n const headers = {} as any;\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n return next.handle(\n request.clone({\n setHeaders: headers,\n }),\n );\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n throwErr?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { Injectable, Inject, InjectionToken, Type } from '@angular/core';\nimport { NgxsPlugin, setValue, actionMatcher, InitState, UpdateState, NgxsNextPluginFn } from '@ngxs/store';\nimport { Router, Routes } from '@angular/router';\nimport { ABP } from '../models';\nimport snq from 'snq';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => route.component || route.loadChildren)\n .forEach(route => {\n const abpPackage = abpRoutes.find(abp => abp.path.toLowerCase() === route.path.toLowerCase());\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n constructor(private store: Store) {}\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialized: boolean = false;\n\n value: string;\n\n constructor(private store: Store) {}\n\n transform(value: string, ...interpolateParams: string[]): string {\n if (!this.initialized) {\n this.initialized = true;\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config.plugin';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData } from './utils/initial-utils';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n PermissionDirective,\n VisibilityDirective,\n LocalizationPipe,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n PermissionDirective,\n VisibilityDirective,\n LocalizationPipe,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n ],\n };\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/core/fesm5/abp-ng.core.js b/npm/packs/ng/dist/core/fesm5/abp-ng.core.js new file mode 100644 index 0000000000..dfac023aa3 --- /dev/null +++ b/npm/packs/ng/dist/core/fesm5/abp-ng.core.js @@ -0,0 +1,1865 @@ +import { __rest, __assign, __decorate, __metadata, __spread } from 'tslib'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, Directive, ElementRef, Optional, Renderer2, Input, InjectionToken, Inject, Pipe, NgModule, APP_INITIALIZER, Injector } from '@angular/core'; +import { Router, NavigationEnd, RouterModule } from '@angular/router'; +import { Store, Action, Selector, State, createSelector, Select, actionMatcher, InitState, UpdateState, setValue, NgxsModule, NGXS_PLUGINS } from '@ngxs/store'; +import { NEVER, throwError, of, Subject, Observable, ReplaySubject } from 'rxjs'; +import { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; +import { take, catchError, tap, switchMap, takeUntil, distinctUntilChanged } from 'rxjs/operators'; +import snq from 'snq'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Navigate, NgxsRouterPluginModule } from '@ngxs/router-plugin'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { NgxsStoragePluginModule } from '@ngxs/storage-plugin'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PatchRouteByName = /** @class */ (function () { + function PatchRouteByName(name, newValue) { + this.name = name; + this.newValue = newValue; + } + PatchRouteByName.type = '[Config] Patch Route By Name'; + return PatchRouteByName; +}()); +var ConfigGetAppConfiguration = /** @class */ (function () { + function ConfigGetAppConfiguration() { + } + ConfigGetAppConfiguration.type = '[Config] Get App Configuration'; + return ConfigGetAppConfiguration; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ProfileGet = /** @class */ (function () { + function ProfileGet() { + } + ProfileGet.type = '[Profile] Get'; + return ProfileGet; +}()); +var ProfileUpdate = /** @class */ (function () { + function ProfileUpdate(payload) { + this.payload = payload; + } + ProfileUpdate.type = '[Profile] Update'; + return ProfileUpdate; +}()); +var ProfileChangePassword = /** @class */ (function () { + function ProfileChangePassword(payload) { + this.payload = payload; + } + ProfileChangePassword.type = '[Profile] Change Password'; + return ProfileChangePassword; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var RestOccurError = /** @class */ (function () { + function RestOccurError(payload) { + this.payload = payload; + } + RestOccurError.type = '[Rest] Error'; + return RestOccurError; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var SessionSetLanguage = /** @class */ (function () { + function SessionSetLanguage(payload) { + this.payload = payload; + } + SessionSetLanguage.type = '[Session] Set Language'; + return SessionSetLanguage; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var RestService = /** @class */ (function () { + function RestService(http, store) { + this.http = http; + this.store = store; + } + /** + * @param {?} err + * @return {?} + */ + RestService.prototype.handleError = /** + * @param {?} err + * @return {?} + */ + function (err) { + this.store.dispatch(new RestOccurError(err)); + console.error(err); + return NEVER; + }; + /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + RestService.prototype.request = /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + function (request, config, api) { + var _this = this; + if (config === void 0) { config = {}; } + var _a = config.observe, observe = _a === void 0 ? "body" /* Body */ : _a, throwErr = config.throwErr; + /** @type {?} */ + var url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; + var method = request.method, options = __rest(request, ["method"]); + return this.http.request(method, url, (/** @type {?} */ (__assign({ observe: observe }, options)))).pipe(observe === "body" /* Body */ ? take(1) : null, catchError((/** + * @param {?} err + * @return {?} + */ + function (err) { + if (throwErr) { + return throwError(err); + } + return _this.handleError(err); + }))); + }; + RestService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + RestService.ctorParameters = function () { return [ + { type: HttpClient }, + { type: Store } + ]; }; + /** @nocollapse */ RestService.ngInjectableDef = ɵɵdefineInjectable({ factory: function RestService_Factory() { return new RestService(ɵɵinject(HttpClient), ɵɵinject(Store)); }, token: RestService, providedIn: "root" }); + return RestService; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ProfileService = /** @class */ (function () { + function ProfileService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + ProfileService.prototype.get = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/identity/profile', + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + ProfileService.prototype.update = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'PUT', + url: '/api/identity/profile', + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + ProfileService.prototype.changePassword = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: '/api/identity/profile/changePassword', + body: body, + }; + return this.rest.request(request); + }; + ProfileService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + ProfileService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ ProfileService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ProfileService_Factory() { return new ProfileService(ɵɵinject(RestService)); }, token: ProfileService, providedIn: "root" }); + return ProfileService; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ProfileState = /** @class */ (function () { + function ProfileState(profileService) { + this.profileService = profileService; + } + /** + * @param {?} __0 + * @return {?} + */ + ProfileState.getProfile = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var profile = _a.profile; + return profile; + }; + /** + * @param {?} __0 + * @return {?} + */ + ProfileState.prototype.profileGet = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var patchState = _a.patchState; + return this.profileService.get().pipe(tap((/** + * @param {?} profile + * @return {?} + */ + function (profile) { + return patchState({ + profile: profile, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + ProfileState.prototype.profileUpdate = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.profileService.update(payload).pipe(tap((/** + * @param {?} profile + * @return {?} + */ + function (profile) { + return patchState({ + profile: profile, + }); + }))); + }; + /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + ProfileState.prototype.changePassword = /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + function (_, _a) { + var payload = _a.payload; + return this.profileService.changePassword(payload); + }; + __decorate([ + Action(ProfileGet), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], ProfileState.prototype, "profileGet", null); + __decorate([ + Action(ProfileUpdate), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, ProfileUpdate]), + __metadata("design:returntype", void 0) + ], ProfileState.prototype, "profileUpdate", null); + __decorate([ + Action(ProfileChangePassword), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, ProfileChangePassword]), + __metadata("design:returntype", void 0) + ], ProfileState.prototype, "changePassword", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Object) + ], ProfileState, "getProfile", null); + ProfileState = __decorate([ + State({ + name: 'ProfileState', + defaults: (/** @type {?} */ ({})), + }), + __metadata("design:paramtypes", [ProfileService]) + ], ProfileState); + return ProfileState; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ApplicationConfigurationService = /** @class */ (function () { + function ApplicationConfigurationService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + ApplicationConfigurationService.prototype.getConfiguration = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/abp/application-configuration', + }; + return this.rest.request(request); + }; + ApplicationConfigurationService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + ApplicationConfigurationService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ ApplicationConfigurationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ApplicationConfigurationService_Factory() { return new ApplicationConfigurationService(ɵɵinject(RestService)); }, token: ApplicationConfigurationService, providedIn: "root" }); + return ApplicationConfigurationService; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var SessionState = /** @class */ (function () { + function SessionState() { + } + /** + * @param {?} __0 + * @return {?} + */ + SessionState.getLanguage = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var language = _a.language; + return language; + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + SessionState.prototype.sessionSetLanguage = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + patchState({ + language: payload, + }); + }; + __decorate([ + Action(SessionSetLanguage), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, SessionSetLanguage]), + __metadata("design:returntype", void 0) + ], SessionState.prototype, "sessionSetLanguage", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", String) + ], SessionState, "getLanguage", null); + SessionState = __decorate([ + State({ + name: 'SessionState', + defaults: (/** @type {?} */ ({})), + }), + __metadata("design:paramtypes", []) + ], SessionState); + return SessionState; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} routes + * @param {?=} wrappers + * @param {?=} parentNameArr + * @param {?=} parentName + * @return {?} + */ +function organizeRoutes(routes, wrappers, parentNameArr, parentName) { + if (wrappers === void 0) { wrappers = []; } + if (parentNameArr === void 0) { parentNameArr = (/** @type {?} */ ([])); } + if (parentName === void 0) { parentName = null; } + /** @type {?} */ + var filter = (/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.children) { + route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name); + } + if (route.parentName && route.parentName !== parentName) { + parentNameArr.push(route); + return false; + } + return true; + }); + if (parentName) { + // recursive block + return routes.filter(filter); + } + /** @type {?} */ + var filteredRoutes = routes.filter(filter); + if (parentNameArr.length) { + return sortRoutes(setChildRoute(__spread(filteredRoutes, wrappers), parentNameArr)); + } + return filteredRoutes; +} +/** + * @param {?} routes + * @param {?} parentNameArr + * @return {?} + */ +function setChildRoute(routes, parentNameArr) { + return routes + .map((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.children && route.children.length) { + route.children = setChildRoute(route.children, parentNameArr); + } + /** @type {?} */ + var foundedChildren = parentNameArr.filter((/** + * @param {?} parent + * @return {?} + */ + function (parent) { return parent.parentName === route.name; })); + if (foundedChildren && foundedChildren.length) { + route.children = __spread((route.children || []), foundedChildren); + } + return route; + })) + .filter((/** + * @param {?} route + * @return {?} + */ + function (route) { return route.path || (route.children && route.children.length); })); +} +/** + * @param {?=} routes + * @return {?} + */ +function sortRoutes(routes) { + if (routes === void 0) { routes = []; } + if (!routes.length) + return []; + return routes + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + function (a, b) { return a.order - b.order; })) + .map((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.children && route.children.length) { + route.children = sortRoutes(route.children); + } + return route; + })); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ConfigState = /** @class */ (function () { + function ConfigState(appConfigurationService, store) { + this.appConfigurationService = appConfigurationService; + this.store = store; + } + ConfigState_1 = ConfigState; + /** + * @param {?} state + * @return {?} + */ + ConfigState.getAll = /** + * @param {?} state + * @return {?} + */ + function (state) { + return state; + }; + /** + * @param {?} key + * @return {?} + */ + ConfigState.getOne = /** + * @param {?} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return state[key]; + })); + return selector; + }; + /** + * @param {?} keys + * @return {?} + */ + ConfigState.getDeep = /** + * @param {?} keys + * @return {?} + */ + function (keys) { + if (typeof keys === 'string') { + keys = keys.split('.'); + } + if (!Array.isArray(keys)) { + throw new Error('The argument must be a dot string or an string array.'); + } + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return ((/** @type {?} */ (keys))).reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + if (acc) { + return acc[val]; + } + return undefined; + }), state); + })); + return selector; + }; + /** + * @param {?=} key + * @return {?} + */ + ConfigState.getApiUrl = /** + * @param {?=} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return state.environment.apis[key || 'default'].url; + })); + return selector; + }; + /** + * @param {?} key + * @return {?} + */ + ConfigState.getSetting = /** + * @param {?} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + return snq((/** + * @return {?} + */ + function () { return state.setting.values[key]; })); + })); + return selector; + }; + /** + * @param {?=} condition + * @return {?} + */ + ConfigState.getGrantedPolicy = /** + * @param {?=} condition + * @return {?} + */ + function (condition) { + if (condition === void 0) { condition = ''; } + /** @type {?} */ + var keys = condition + .replace(/\(|\)|\!|\s/g, '') + .split(/\|\||&&/) + .filter((/** + * @param {?} key + * @return {?} + */ + function (key) { return key; })); + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + if (!keys.length) + return true; + /** @type {?} */ + var getPolicy = (/** + * @param {?} key + * @return {?} + */ + function (key) { return snq((/** + * @return {?} + */ + function () { return state.auth.grantedPolicies[key]; }), false); }); + if (keys.length > 1) { + keys.forEach((/** + * @param {?} key + * @return {?} + */ + function (key) { + /** @type {?} */ + var value = getPolicy(key); + condition = condition.replace(key, value); + })); + // tslint:disable-next-line: no-eval + return eval("!!" + condition); + } + return getPolicy(condition); + })); + return selector; + }; + /** + * @param {?} key + * @param {...?} interpolateParams + * @return {?} + */ + ConfigState.getCopy = /** + * @param {?} key + * @param {...?} interpolateParams + * @return {?} + */ + function (key) { + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + /** @type {?} */ + var keys = (/** @type {?} */ (key.split('::'))); + /** @type {?} */ + var selector = createSelector([ConfigState_1], (/** + * @param {?} state + * @return {?} + */ + function (state) { + var defaultResourceName = state.environment.localization.defaultResourceName; + if (keys[0] === '') { + if (!defaultResourceName) { + throw new Error("Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }"); + } + keys[0] = snq((/** + * @return {?} + */ + function () { return defaultResourceName; })); + } + /** @type {?} */ + var copy = keys.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + if (acc) { + return acc[val]; + } + return undefined; + }), state.localization.values); + if (copy && interpolateParams && interpolateParams.length) { + interpolateParams.forEach((/** + * @param {?} param + * @param {?} index + * @return {?} + */ + function (param, index) { + copy = copy.replace("'{" + index + "}'", param); + })); + } + return copy || key; + })); + return selector; + }; + /** + * @param {?} __0 + * @return {?} + */ + ConfigState.prototype.addData = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _this = this; + var patchState = _a.patchState, dispatch = _a.dispatch; + return this.appConfigurationService.getConfiguration().pipe(tap((/** + * @param {?} configuration + * @return {?} + */ + function (configuration) { + return patchState(__assign({}, configuration)); + })), switchMap((/** + * @param {?} configuration + * @return {?} + */ + function (configuration) { + return _this.store.selectSnapshot(SessionState.getLanguage) + ? of(null) + : dispatch(new SessionSetLanguage(snq((/** + * @return {?} + */ + function () { return configuration.setting.values['Abp.Localization.DefaultLanguage']; })))); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + ConfigState.prototype.patchRoute = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState, getState = _a.getState; + var name = _b.name, newValue = _b.newValue; + /** @type {?} */ + var routes = getState().routes; + /** @type {?} */ + var index = routes.findIndex((/** + * @param {?} route + * @return {?} + */ + function (route) { return route.name === name; })); + routes = patchRouteDeep(routes, name, newValue); + return patchState({ + routes: routes, + }); + }; + var ConfigState_1; + __decorate([ + Action(ConfigGetAppConfiguration), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], ConfigState.prototype, "addData", null); + __decorate([ + Action(PatchRouteByName), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, PatchRouteByName]), + __metadata("design:returntype", void 0) + ], ConfigState.prototype, "patchRoute", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], ConfigState, "getAll", null); + ConfigState = ConfigState_1 = __decorate([ + State({ + name: 'ConfigState', + defaults: (/** @type {?} */ ({})), + }), + __metadata("design:paramtypes", [ApplicationConfigurationService, Store]) + ], ConfigState); + return ConfigState; +}()); +/** + * @param {?} routes + * @param {?} name + * @param {?} newValue + * @param {?=} parentUrl + * @return {?} + */ +function patchRouteDeep(routes, name, newValue, parentUrl) { + if (parentUrl === void 0) { parentUrl = null; } + routes = routes.map((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (route.name === name) { + if (newValue.path) { + newValue.url = parentUrl + "/" + newValue.path; + } + if (newValue.children && newValue.children.length) { + newValue.children = newValue.children.map((/** + * @param {?} child + * @return {?} + */ + function (child) { return (__assign({}, child, { url: parentUrl + "/" + route.path + "/" + child.path })); })); + } + return __assign({}, route, newValue); + } + else if (route.children && route.children.length) { + route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path); + } + return route; + })); + if (parentUrl) { + // recursive block + return routes; + } + return organizeRoutes(routes); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?=} a + * @return {?} + */ +function uuid(a) { + return a + ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) + : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} injector + * @return {?} + */ +function getInitialData(injector) { + /** @type {?} */ + var fn = (/** + * @return {?} + */ + function () { + /** @type {?} */ + var store = injector.get(Store); + return store.dispatch(new ConfigGetAppConfiguration()).toPromise(); + }); + return fn; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} value + * @return {?} + */ +function isFunction(value) { + return typeof value === 'function'; +} +/** @type {?} */ +var takeUntilDestroy = (/** + * @param {?} componentInstance + * @param {?=} destroyMethodName + * @return {?} + */ +function (componentInstance, destroyMethodName) { + if (destroyMethodName === void 0) { destroyMethodName = 'ngOnDestroy'; } + return (/** + * @template T + * @param {?} source + * @return {?} + */ + function (source) { + /** @type {?} */ + var originalDestroy = componentInstance[destroyMethodName]; + if (isFunction(originalDestroy) === false) { + throw new Error(componentInstance.constructor.name + " is using untilDestroyed but doesn't implement " + destroyMethodName); + } + if (!componentInstance['__takeUntilDestroy']) { + componentInstance['__takeUntilDestroy'] = new Subject(); + componentInstance[destroyMethodName] = (/** + * @return {?} + */ + function () { + isFunction(originalDestroy) && originalDestroy.apply(this, arguments); + componentInstance['__takeUntilDestroy'].next(true); + componentInstance['__takeUntilDestroy'].complete(); + }); + } + return source.pipe(takeUntil(componentInstance['__takeUntilDestroy'])); + }); +}); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var DynamicLayoutComponent = /** @class */ (function () { + function DynamicLayoutComponent(router, store) { + var _this = this; + this.router = router; + this.store = store; + this.router.events.pipe(takeUntilDestroy(this)).subscribe((/** + * @param {?} event + * @return {?} + */ + function (event) { + if (event instanceof NavigationEnd) { + var segments = _this.router.parseUrl(event.url).root.children.primary.segments; + var _a = _this.store.selectSnapshot(ConfigState.getAll), layouts = _a.requirements.layouts, routes = _a.routes; + /** @type {?} */ + var layout_1 = findLayout(segments, routes); + _this.layout = layouts.filter((/** + * @param {?} l + * @return {?} + */ + function (l) { return !!l; })).find((/** + * @param {?} l + * @return {?} + */ + function (l) { return snq((/** + * @return {?} + */ + function () { return l.type.toLowerCase().indexOf(layout_1); }), -1) > -1; })); + } + })); + } + /** + * @return {?} + */ + DynamicLayoutComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + DynamicLayoutComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-dynamic-layout', + template: "\n \n\n \n \n " + }] } + ]; + /** @nocollapse */ + DynamicLayoutComponent.ctorParameters = function () { return [ + { type: Router }, + { type: Store } + ]; }; + __decorate([ + Select(ConfigState.getOne('requirements')), + __metadata("design:type", Observable) + ], DynamicLayoutComponent.prototype, "requirements$", void 0); + return DynamicLayoutComponent; +}()); +/** + * @param {?} segments + * @param {?} routes + * @return {?} + */ +function findLayout(segments, routes) { + /** @type {?} */ + var layout = "empty" /* empty */; + /** @type {?} */ + var route = routes + .reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return (val.wrapper ? __spread(acc, val.children) : __spread(acc, [val])); }), []) + .find((/** + * @param {?} r + * @return {?} + */ + function (r) { return r.path === segments[0].path; })); + if (route) { + if (route.layout) { + layout = route.layout; + } + if (route.children && route.children.length) { + /** @type {?} */ + var child = route.children.find((/** + * @param {?} c + * @return {?} + */ + function (c) { return c.path === segments[1].path; })); + if (child.layout) { + layout = child.layout; + } + } + } + return layout; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var RouterOutletComponent = /** @class */ (function () { + function RouterOutletComponent() { + } + RouterOutletComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-router-outlet', + template: "\n \n " + }] } + ]; + return RouterOutletComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PermissionDirective = /** @class */ (function () { + function PermissionDirective(elRef, renderer, store) { + this.elRef = elRef; + this.renderer = renderer; + this.store = store; + } + /** + * @return {?} + */ + PermissionDirective.prototype.ngOnInit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.condition) { + this.store + .select(ConfigState.getGrantedPolicy(this.condition)) + .pipe(takeUntilDestroy(this)) + .subscribe((/** + * @param {?} isGranted + * @return {?} + */ + function (isGranted) { + if (!isGranted) { + _this.renderer.removeChild(((/** @type {?} */ (_this.elRef.nativeElement))).parentElement, _this.elRef.nativeElement); + } + })); + } + }; + /** + * @return {?} + */ + PermissionDirective.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + PermissionDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpPermission]', + },] } + ]; + /** @nocollapse */ + PermissionDirective.ctorParameters = function () { return [ + { type: ElementRef, decorators: [{ type: Optional }] }, + { type: Renderer2 }, + { type: Store } + ]; }; + PermissionDirective.propDecorators = { + condition: [{ type: Input, args: ['abpPermission',] }] + }; + return PermissionDirective; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var VisibilityDirective = /** @class */ (function () { + function VisibilityDirective(elRef, renderer) { + this.elRef = elRef; + this.renderer = renderer; + this.completed$ = new Subject(); + } + /** + * @return {?} + */ + VisibilityDirective.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var observer = new MutationObserver((/** + * @param {?} mutations + * @return {?} + */ + function (mutations) { + mutations.forEach((/** + * @param {?} mutation + * @return {?} + */ + function (mutation) { + if (!mutation.target) + return; + /** @type {?} */ + var htmlNodes = snq((/** + * @return {?} + */ + function () { return Array.from(mutation.target.childNodes).filter((/** + * @param {?} node + * @return {?} + */ + function (node) { return node instanceof HTMLElement; })); }), []); + if (!htmlNodes.length) { + _this.renderer.removeChild(_this.elRef.nativeElement.parentElement, _this.elRef.nativeElement); + _this.disconnect(); + } + else { + setTimeout((/** + * @return {?} + */ + function () { + _this.disconnect(); + }), 0); + } + })); + })); + observer.observe(this.focusedElement, { + childList: true, + }); + this.completed$.subscribe((/** + * @return {?} + */ + function () { return observer.disconnect(); })); + }; + /** + * @return {?} + */ + VisibilityDirective.prototype.disconnect = /** + * @return {?} + */ + function () { + this.completed$.next(); + this.completed$.complete(); + }; + VisibilityDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpVisibility]', + },] } + ]; + /** @nocollapse */ + VisibilityDirective.ctorParameters = function () { return [ + { type: ElementRef, decorators: [{ type: Optional }] }, + { type: Renderer2 } + ]; }; + VisibilityDirective.propDecorators = { + focusedElement: [{ type: Input, args: ['abpVisibility',] }] + }; + return VisibilityDirective; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var AuthGuard = /** @class */ (function () { + function AuthGuard(oauthService, store) { + this.oauthService = oauthService; + this.store = store; + } + /** + * @param {?} _ + * @param {?} state + * @return {?} + */ + AuthGuard.prototype.canActivate = /** + * @param {?} _ + * @param {?} state + * @return {?} + */ + function (_, state) { + /** @type {?} */ + var hasValidAccessToken = this.oauthService.hasValidAccessToken(); + if (hasValidAccessToken) { + return hasValidAccessToken; + } + this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } })); + return false; + }; + AuthGuard.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + AuthGuard.ctorParameters = function () { return [ + { type: OAuthService }, + { type: Store } + ]; }; + /** @nocollapse */ AuthGuard.ngInjectableDef = ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(ɵɵinject(OAuthService), ɵɵinject(Store)); }, token: AuthGuard, providedIn: "root" }); + return AuthGuard; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PermissionGuard = /** @class */ (function () { + function PermissionGuard(store) { + this.store = store; + } + /** + * @param {?} __0 + * @return {?} + */ + PermissionGuard.prototype.canActivate = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var data = _a.data; + /** @type {?} */ + var resource = (/** @type {?} */ (data.requiredPolicy)); + return this.store.select(ConfigState.getGrantedPolicy(resource)); + }; + PermissionGuard.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + PermissionGuard.ctorParameters = function () { return [ + { type: Store } + ]; }; + /** @nocollapse */ PermissionGuard.ngInjectableDef = ɵɵdefineInjectable({ factory: function PermissionGuard_Factory() { return new PermissionGuard(ɵɵinject(Store)); }, token: PermissionGuard, providedIn: "root" }); + return PermissionGuard; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ApiInterceptor = /** @class */ (function () { + function ApiInterceptor(oAuthService, store) { + this.oAuthService = oAuthService; + this.store = store; + } + /** + * @param {?} request + * @param {?} next + * @return {?} + */ + ApiInterceptor.prototype.intercept = /** + * @param {?} request + * @param {?} next + * @return {?} + */ + function (request, next) { + /** @type {?} */ + var headers = (/** @type {?} */ ({})); + /** @type {?} */ + var token = this.oAuthService.getAccessToken(); + if (!request.headers.has('Authorization') && token) { + headers['Authorization'] = "Bearer " + token; + } + /** @type {?} */ + var lang = this.store.selectSnapshot(SessionState.getLanguage); + if (!request.headers.has('Accept-Language') && lang) { + headers['Accept-Language'] = lang; + } + return next.handle(request.clone({ + setHeaders: headers, + })); + }; + ApiInterceptor.decorators = [ + { type: Injectable } + ]; + /** @nocollapse */ + ApiInterceptor.ctorParameters = function () { return [ + { type: OAuthService }, + { type: Store } + ]; }; + return ApiInterceptor; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var Rest; +(function (Rest) { + /** + * @record + */ + function Config() { } + Rest.Config = Config; + /** + * @record + * @template T + */ + function Request() { } + Rest.Request = Request; +})(Rest || (Rest = {})); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +var NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS'); +var ConfigPlugin = /** @class */ (function () { + function ConfigPlugin(options, router) { + this.options = options; + this.router = router; + this.initialized = false; + } + /** + * @param {?} state + * @param {?} event + * @param {?} next + * @return {?} + */ + ConfigPlugin.prototype.handle = /** + * @param {?} state + * @param {?} event + * @param {?} next + * @return {?} + */ + function (state, event, next) { + /** @type {?} */ + var matches = actionMatcher(event); + /** @type {?} */ + var isInitAction = matches(InitState) || matches(UpdateState); + // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []); + if (isInitAction && !this.initialized) { + var _a = transformRoutes(this.router.config), routes = _a.routes, wrappers = _a.wrappers; + routes = organizeRoutes(routes, wrappers); + state = setValue(state, 'ConfigState', __assign({}, (state.ConfigState && __assign({}, state.ConfigState)), this.options, { routes: routes })); + this.initialized = true; + } + return next(state, event); + }; + ConfigPlugin.decorators = [ + { type: Injectable } + ]; + /** @nocollapse */ + ConfigPlugin.ctorParameters = function () { return [ + { type: undefined, decorators: [{ type: Inject, args: [NGXS_CONFIG_PLUGIN_OPTIONS,] }] }, + { type: Router } + ]; }; + return ConfigPlugin; +}()); +/** + * @param {?=} routes + * @param {?=} wrappers + * @return {?} + */ +function transformRoutes(routes, wrappers) { + if (routes === void 0) { routes = []; } + if (wrappers === void 0) { wrappers = []; } + /** @type {?} */ + var abpRoutes = routes + .filter((/** + * @param {?} route + * @return {?} + */ + function (route) { + return snq((/** + * @return {?} + */ + function () { return route.data.routes.find((/** + * @param {?} r + * @return {?} + */ + function (r) { return r.path === route.path; })); }), false); + })) + .reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return __spread(acc, val.data.routes); }), []); + wrappers = abpRoutes.filter((/** + * @param {?} ar + * @return {?} + */ + function (ar) { return ar.wrapper; })); + /** @type {?} */ + var transformed = (/** @type {?} */ ([])); + routes + .filter((/** + * @param {?} route + * @return {?} + */ + function (route) { return route.component || route.loadChildren; })) + .forEach((/** + * @param {?} route + * @return {?} + */ + function (route) { + /** @type {?} */ + var abpPackage = abpRoutes.find((/** + * @param {?} abp + * @return {?} + */ + function (abp) { return abp.path.toLowerCase() === route.path.toLowerCase(); })); + var length = transformed.length; + if (abpPackage) { + transformed.push(abpPackage); + } + if (transformed.length === length) { + transformed.push((/** @type {?} */ ({ + path: route.path, + name: snq((/** + * @return {?} + */ + function () { return route.data.routes.name; }), route.path), + children: route.data.routes.children || [], + }))); + } + })); + return { routes: setUrls(transformed), wrappers: wrappers }; +} +/** + * @param {?} routes + * @param {?=} parentUrl + * @return {?} + */ +function setUrls(routes, parentUrl) { + if (parentUrl) { + // this if block using for only recursive call + return routes.map((/** + * @param {?} route + * @return {?} + */ + function (route) { return (__assign({}, route, { url: parentUrl + "/" + route.path }, (route.children && + route.children.length && { + children: setUrls(route.children, parentUrl + "/" + route.path), + }))); })); + } + return routes.map((/** + * @param {?} route + * @return {?} + */ + function (route) { return (__assign({}, route, { url: "/" + route.path }, (route.children && + route.children.length && { + children: setUrls(route.children, "/" + route.path), + }))); })); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ConfigService = /** @class */ (function () { + function ConfigService(store) { + this.store = store; + } + /** + * @return {?} + */ + ConfigService.prototype.getAll = /** + * @return {?} + */ + function () { + return this.store.selectSnapshot(ConfigState.getAll); + }; + /** + * @param {?} key + * @return {?} + */ + ConfigService.prototype.getOne = /** + * @param {?} key + * @return {?} + */ + function (key) { + return this.store.selectSnapshot(ConfigState.getOne(key)); + }; + /** + * @param {?} keys + * @return {?} + */ + ConfigService.prototype.getDeep = /** + * @param {?} keys + * @return {?} + */ + function (keys) { + return this.store.selectSnapshot(ConfigState.getDeep(keys)); + }; + /** + * @param {?} key + * @return {?} + */ + ConfigService.prototype.getSetting = /** + * @param {?} key + * @return {?} + */ + function (key) { + return this.store.selectSnapshot(ConfigState.getSetting(key)); + }; + ConfigService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + ConfigService.ctorParameters = function () { return [ + { type: Store } + ]; }; + /** @nocollapse */ ConfigService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(ɵɵinject(Store)); }, token: ConfigService, providedIn: "root" }); + return ConfigService; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var LazyLoadService = /** @class */ (function () { + function LazyLoadService() { + this.loadedLibraries = {}; + } + /** + * @param {?} url + * @param {?} type + * @param {?=} content + * @param {?=} targetQuery + * @param {?=} position + * @return {?} + */ + LazyLoadService.prototype.load = /** + * @param {?} url + * @param {?} type + * @param {?=} content + * @param {?=} targetQuery + * @param {?=} position + * @return {?} + */ + function (url, type, content, targetQuery, position) { + var _this = this; + if (content === void 0) { content = ''; } + if (targetQuery === void 0) { targetQuery = 'body'; } + if (position === void 0) { position = 'afterend'; } + if (!url && !content) + return; + /** @type {?} */ + var key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid(); + if (this.loadedLibraries[key]) { + return this.loadedLibraries[key].asObservable(); + } + this.loadedLibraries[key] = new ReplaySubject(); + /** @type {?} */ + var library; + if (type === 'script') { + library = document.createElement('script'); + library.type = 'text/javascript'; + if (url) { + ((/** @type {?} */ (library))).src = url; + } + ((/** @type {?} */ (library))).text = content; + } + else if (url) { + library = document.createElement('link'); + library.type = 'text/css'; + ((/** @type {?} */ (library))).rel = 'stylesheet'; + if (url) { + ((/** @type {?} */ (library))).href = url; + } + } + else { + library = document.createElement('style'); + ((/** @type {?} */ (library))).textContent = content; + } + library.onload = (/** + * @return {?} + */ + function () { + _this.loadedLibraries[key].next(); + _this.loadedLibraries[key].complete(); + }); + document.querySelector(targetQuery).insertAdjacentElement(position, library); + return this.loadedLibraries[key].asObservable(); + }; + LazyLoadService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ LazyLoadService.ngInjectableDef = ɵɵdefineInjectable({ factory: function LazyLoadService_Factory() { return new LazyLoadService(); }, token: LazyLoadService, providedIn: "root" }); + return LazyLoadService; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var LocalizationService = /** @class */ (function () { + function LocalizationService(store) { + this.store = store; + } + /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + LocalizationService.prototype.get = /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + function (keys) { + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + return this.store.select(ConfigState.getCopy.apply(ConfigState, __spread([keys], interpolateParams))); + }; + /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + LocalizationService.prototype.instant = /** + * @param {?} keys + * @param {...?} interpolateParams + * @return {?} + */ + function (keys) { + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + return this.store.selectSnapshot(ConfigState.getCopy.apply(ConfigState, __spread([keys], interpolateParams))); + }; + LocalizationService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } + ]; + /** @nocollapse */ + LocalizationService.ctorParameters = function () { return [ + { type: Store } + ]; }; + /** @nocollapse */ LocalizationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(ɵɵinject(Store)); }, token: LocalizationService, providedIn: "root" }); + return LocalizationService; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} environment + * @return {?} + */ +function environmentFactory(environment) { + return __assign({}, environment); +} +/** + * @param {?} config + * @return {?} + */ +function configFactory(config) { + return __assign({}, config); +} +/** @type {?} */ +var ENVIRONMENT = new InjectionToken('ENVIRONMENT'); +/** @type {?} */ +var CONFIG = new InjectionToken('CONFIG'); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var LocalizationPipe = /** @class */ (function () { + function LocalizationPipe(store) { + this.store = store; + this.initialized = false; + } + /** + * @param {?} value + * @param {...?} interpolateParams + * @return {?} + */ + LocalizationPipe.prototype.transform = /** + * @param {?} value + * @param {...?} interpolateParams + * @return {?} + */ + function (value) { + var _this = this; + var interpolateParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + interpolateParams[_i - 1] = arguments[_i]; + } + if (!this.initialized) { + this.initialized = true; + this.store + .select(ConfigState.getCopy.apply(ConfigState, __spread([value], interpolateParams.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return (Array.isArray(val) ? __spread(acc, val) : __spread(acc, [val])); }), [])))) + .pipe(takeUntilDestroy(this), distinctUntilChanged()) + .subscribe((/** + * @param {?} copy + * @return {?} + */ + function (copy) { return (_this.value = copy); })); + } + return this.value; + }; + /** + * @return {?} + */ + LocalizationPipe.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + LocalizationPipe.decorators = [ + { type: Pipe, args: [{ + name: 'abpLocalization', + pure: false, + },] } + ]; + /** @nocollapse */ + LocalizationPipe.ctorParameters = function () { return [ + { type: Store } + ]; }; + return LocalizationPipe; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var CoreModule = /** @class */ (function () { + function CoreModule() { + } + /** + * @param {?=} options + * @return {?} + */ + CoreModule.forRoot = /** + * @param {?=} options + * @return {?} + */ + function (options) { + if (options === void 0) { options = (/** @type {?} */ ({})); } + return { + ngModule: CoreModule, + providers: [ + { + provide: NGXS_PLUGINS, + useClass: ConfigPlugin, + multi: true, + }, + { + provide: NGXS_CONFIG_PLUGIN_OPTIONS, + useValue: options, + }, + { + provide: HTTP_INTERCEPTORS, + useClass: ApiInterceptor, + multi: true, + }, + { + provide: APP_INITIALIZER, + multi: true, + deps: [Injector], + useFactory: getInitialData, + }, + ], + }; + }; + CoreModule.decorators = [ + { type: NgModule, args: [{ + imports: [ + NgxsModule.forFeature([ProfileState, SessionState, ConfigState]), + NgxsStoragePluginModule.forRoot({ key: 'SessionState' }), + NgxsRouterPluginModule.forRoot(), + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + RouterModule, + ], + declarations: [ + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + exports: [ + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + RouterModule, + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + providers: [LocalizationPipe], + entryComponents: [RouterOutletComponent, DynamicLayoutComponent], + },] } + ]; + return CoreModule; +}()); + +export { ApiInterceptor, ApplicationConfigurationService, AuthGuard, CONFIG, ConfigGetAppConfiguration, ConfigPlugin, ConfigService, ConfigState, CoreModule, DynamicLayoutComponent, ENVIRONMENT, LazyLoadService, LocalizationService, NGXS_CONFIG_PLUGIN_OPTIONS, PatchRouteByName, PermissionDirective, PermissionGuard, ProfileChangePassword, ProfileGet, ProfileService, ProfileState, ProfileUpdate, Rest, RestOccurError, RestService, RouterOutletComponent, SessionSetLanguage, SessionState, VisibilityDirective, configFactory, environmentFactory, getInitialData, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy, uuid, ProfileState as ɵa, ProfileService as ɵb, RestService as ɵc, ProfileGet as ɵd, ProfileUpdate as ɵe, ProfileChangePassword as ɵf, SessionState as ɵh, SessionSetLanguage as ɵi, ConfigState as ɵj, ApplicationConfigurationService as ɵk, PatchRouteByName as ɵl, ConfigGetAppConfiguration as ɵm, RouterOutletComponent as ɵn, DynamicLayoutComponent as ɵo, ConfigState as ɵp, PermissionDirective as ɵq, VisibilityDirective as ɵr, LocalizationPipe as ɵs, NGXS_CONFIG_PLUGIN_OPTIONS as ɵt, ConfigPlugin as ɵu, ApiInterceptor as ɵw, getInitialData as ɵx }; +//# sourceMappingURL=abp-ng.core.js.map diff --git a/npm/packs/ng/dist/core/fesm5/abp-ng.core.js.map b/npm/packs/ng/dist/core/fesm5/abp-ng.core.js.map new file mode 100644 index 0000000000..46a79abeb0 --- /dev/null +++ b/npm/packs/ng/dist/core/fesm5/abp-ng.core.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.core.js","sources":["ng://@abp/ng.core/lib/actions/config.actions.ts","ng://@abp/ng.core/lib/actions/profile.actions.ts","ng://@abp/ng.core/lib/actions/rest.actions.ts","ng://@abp/ng.core/lib/actions/session.actions.ts","ng://@abp/ng.core/lib/services/rest.service.ts","ng://@abp/ng.core/lib/services/profile.service.ts","ng://@abp/ng.core/lib/states/profile.state.ts","ng://@abp/ng.core/lib/services/application-configuration.service.ts","ng://@abp/ng.core/lib/states/session.state.ts","ng://@abp/ng.core/lib/utils/route-utils.ts","ng://@abp/ng.core/lib/states/config.state.ts","ng://@abp/ng.core/lib/utils/generator-utils.ts","ng://@abp/ng.core/lib/utils/initial-utils.ts","ng://@abp/ng.core/lib/utils/rxjs-utils.ts","ng://@abp/ng.core/lib/components/dynamic-layout.component.ts","ng://@abp/ng.core/lib/components/router-outlet.component.ts","ng://@abp/ng.core/lib/directives/permission.directive.ts","ng://@abp/ng.core/lib/directives/visibility.directive.ts","ng://@abp/ng.core/lib/guards/auth.guard.ts","ng://@abp/ng.core/lib/guards/permission.guard.ts","ng://@abp/ng.core/lib/interceptors/api.interceptor.ts","ng://@abp/ng.core/lib/models/rest.ts","ng://@abp/ng.core/lib/plugins/config.plugin.ts","ng://@abp/ng.core/lib/services/config.service.ts","ng://@abp/ng.core/lib/services/lazy-load.service.ts","ng://@abp/ng.core/lib/services/localization.service.ts","ng://@abp/ng.core/lib/tokens/common.token.ts","ng://@abp/ng.core/lib/pipes/localization.pipe.ts","ng://@abp/ng.core/lib/core.module.ts"],"sourcesContent":["import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class ConfigGetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { Profile } from '../models';\n\nexport class ProfileGet {\n static readonly type = '[Profile] Get';\n}\n\nexport class ProfileUpdate {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ProfileChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","export class SessionSetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return NEVER;\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, throwErr } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (throwErr) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/profile/changePassword',\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { ProfileGet, ProfileChangePassword, ProfileUpdate } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(ProfileGet)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ProfileUpdate)\n profileUpdate({ patchState }: StateContext, { payload }: ProfileUpdate) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ProfileChangePassword)\n changePassword(_, { payload }: ProfileChangePassword) {\n return this.profileService.changePassword(payload);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { SessionSetLanguage } from '../actions/session.actions';\nimport { Session } from '../models/session';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n constructor() {}\n\n @Action(SessionSetLanguage)\n sessionSetLanguage({ patchState }: StateContext, { payload }: SessionSetLanguage) {\n patchState({\n language: payload,\n });\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes\n .map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n })\n .filter(route => route.path || (route.children && route.children.length));\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { ConfigGetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SessionSetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(condition: string = '') {\n const keys = condition\n .replace(/\\(|\\)|\\!|\\s/g, '')\n .split(/\\|\\||&&/)\n .filter(key => key);\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!keys.length) return true;\n\n const getPolicy = key => snq(() => state.auth.grantedPolicies[key], false);\n if (keys.length > 1) {\n keys.forEach(key => {\n const value = getPolicy(key);\n condition = condition.replace(key, value);\n });\n\n // tslint:disable-next-line: no-eval\n return eval(`!!${condition}`);\n }\n\n return getPolicy(condition);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = keys.reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach((param, index) => {\n copy = copy.replace(`'{${index}}'`, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(ConfigGetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration =>\n this.store.selectSnapshot(SessionState.getLanguage)\n ? of(null)\n : dispatch(\n new SessionSetLanguage(snq(() => configuration.setting.values['Abp.Localization.DefaultLanguage'])),\n ),\n ),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigGetAppConfiguration } from '../actions/config.actions';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new ConfigGetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, OnDestroy, Type } from '@angular/core';\nimport { NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { eLayoutType } from '../enums';\nimport { ABP, Config } from '../models';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport snq from 'snq';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private store: Store) {\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n const layout = findLayout(segments, routes);\n\n this.layout = layouts.filter(l => !!l).find(l => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store) {}\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } }));\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n const headers = {} as any;\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n return next.handle(\n request.clone({\n setHeaders: headers,\n }),\n );\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n throwErr?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { Injectable, Inject, InjectionToken, Type } from '@angular/core';\nimport { NgxsPlugin, setValue, actionMatcher, InitState, UpdateState, NgxsNextPluginFn } from '@ngxs/store';\nimport { Router, Routes } from '@angular/router';\nimport { ABP } from '../models';\nimport snq from 'snq';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => route.component || route.loadChildren)\n .forEach(route => {\n const abpPackage = abpRoutes.find(abp => abp.path.toLowerCase() === route.path.toLowerCase());\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n constructor(private store: Store) {}\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialized: boolean = false;\n\n value: string;\n\n constructor(private store: Store) {}\n\n transform(value: string, ...interpolateParams: string[]): string {\n if (!this.initialized) {\n this.initialized = true;\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config.plugin';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData } from './utils/initial-utils';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n PermissionDirective,\n VisibilityDirective,\n LocalizationPipe,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n PermissionDirective,\n VisibilityDirective,\n LocalizationPipe,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n ],\n };\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/core/lib/actions/config.actions.d.ts b/npm/packs/ng/dist/core/lib/actions/config.actions.d.ts new file mode 100644 index 0000000000..0a61f1bef7 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/actions/config.actions.d.ts @@ -0,0 +1,10 @@ +import { ABP } from '../models'; +export declare class PatchRouteByName { + name: string; + newValue: Partial; + static readonly type = "[Config] Patch Route By Name"; + constructor(name: string, newValue: Partial); +} +export declare class ConfigGetAppConfiguration { + static readonly type = "[Config] Get App Configuration"; +} diff --git a/npm/packs/ng/dist/core/lib/actions/index.d.ts b/npm/packs/ng/dist/core/lib/actions/index.d.ts new file mode 100644 index 0000000000..54a0e9ab48 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/actions/index.d.ts @@ -0,0 +1,4 @@ +export * from './config.actions'; +export * from './profile.actions'; +export * from './rest.actions'; +export * from './session.actions'; diff --git a/npm/packs/ng/dist/core/lib/actions/profile.actions.d.ts b/npm/packs/ng/dist/core/lib/actions/profile.actions.d.ts new file mode 100644 index 0000000000..c50747a28c --- /dev/null +++ b/npm/packs/ng/dist/core/lib/actions/profile.actions.d.ts @@ -0,0 +1,14 @@ +import { Profile } from '../models'; +export declare class ProfileGet { + static readonly type = "[Profile] Get"; +} +export declare class ProfileUpdate { + payload: Profile.Response; + static readonly type = "[Profile] Update"; + constructor(payload: Profile.Response); +} +export declare class ProfileChangePassword { + payload: Profile.ChangePasswordRequest; + static readonly type = "[Profile] Change Password"; + constructor(payload: Profile.ChangePasswordRequest); +} diff --git a/npm/packs/ng/dist/core/lib/actions/rest.actions.d.ts b/npm/packs/ng/dist/core/lib/actions/rest.actions.d.ts new file mode 100644 index 0000000000..d825955588 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/actions/rest.actions.d.ts @@ -0,0 +1,6 @@ +import { HttpErrorResponse } from '@angular/common/http'; +export declare class RestOccurError { + payload: HttpErrorResponse | any; + static readonly type = "[Rest] Error"; + constructor(payload: HttpErrorResponse | any); +} diff --git a/npm/packs/ng/dist/core/lib/actions/session.actions.d.ts b/npm/packs/ng/dist/core/lib/actions/session.actions.d.ts new file mode 100644 index 0000000000..6156f5e922 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/actions/session.actions.d.ts @@ -0,0 +1,5 @@ +export declare class SessionSetLanguage { + payload: string; + static readonly type = "[Session] Set Language"; + constructor(payload: string); +} diff --git a/npm/packs/ng/dist/core/lib/components/dynamic-layout.component.d.ts b/npm/packs/ng/dist/core/lib/components/dynamic-layout.component.d.ts new file mode 100644 index 0000000000..713ad7fbc9 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/components/dynamic-layout.component.d.ts @@ -0,0 +1,13 @@ +import { OnDestroy, Type } from '@angular/core'; +import { Router } from '@angular/router'; +import { Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { Config } from '../models'; +export declare class DynamicLayoutComponent implements OnDestroy { + private router; + private store; + requirements$: Observable; + layout: Type; + constructor(router: Router, store: Store); + ngOnDestroy(): void; +} diff --git a/npm/packs/ng/dist/core/lib/components/index.d.ts b/npm/packs/ng/dist/core/lib/components/index.d.ts new file mode 100644 index 0000000000..d54b2d2175 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/components/index.d.ts @@ -0,0 +1,2 @@ +export * from './dynamic-layout.component'; +export * from './router-outlet.component'; diff --git a/npm/packs/ng/dist/core/lib/components/router-outlet.component.d.ts b/npm/packs/ng/dist/core/lib/components/router-outlet.component.d.ts new file mode 100644 index 0000000000..c5cde5406a --- /dev/null +++ b/npm/packs/ng/dist/core/lib/components/router-outlet.component.d.ts @@ -0,0 +1,2 @@ +export declare class RouterOutletComponent { +} diff --git a/npm/packs/ng/dist/core/lib/core.module.d.ts b/npm/packs/ng/dist/core/lib/core.module.d.ts new file mode 100644 index 0000000000..808bf66b09 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/core.module.d.ts @@ -0,0 +1,5 @@ +import { ModuleWithProviders } from '@angular/core'; +import { ABP } from './models/common'; +export declare class CoreModule { + static forRoot(options?: ABP.Root): ModuleWithProviders; +} diff --git a/npm/packs/ng/dist/core/lib/directives/index.d.ts b/npm/packs/ng/dist/core/lib/directives/index.d.ts new file mode 100644 index 0000000000..e10d3d1cc4 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/directives/index.d.ts @@ -0,0 +1,2 @@ +export * from './permission.directive'; +export * from './visibility.directive'; diff --git a/npm/packs/ng/dist/core/lib/directives/permission.directive.d.ts b/npm/packs/ng/dist/core/lib/directives/permission.directive.d.ts new file mode 100644 index 0000000000..0d5a9bb188 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/directives/permission.directive.d.ts @@ -0,0 +1,11 @@ +import { ElementRef, OnDestroy, OnInit, Renderer2 } from '@angular/core'; +import { Store } from '@ngxs/store'; +export declare class PermissionDirective implements OnInit, OnDestroy { + private elRef; + private renderer; + private store; + condition: string; + constructor(elRef: ElementRef, renderer: Renderer2, store: Store); + ngOnInit(): void; + ngOnDestroy(): void; +} diff --git a/npm/packs/ng/dist/core/lib/directives/visibility.directive.d.ts b/npm/packs/ng/dist/core/lib/directives/visibility.directive.d.ts new file mode 100644 index 0000000000..29c45c67c9 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/directives/visibility.directive.d.ts @@ -0,0 +1,11 @@ +import { ElementRef, Renderer2, AfterViewInit } from '@angular/core'; +import { Subject } from 'rxjs'; +export declare class VisibilityDirective implements AfterViewInit { + private elRef; + private renderer; + focusedElement: HTMLElement; + completed$: Subject; + constructor(elRef: ElementRef, renderer: Renderer2); + ngAfterViewInit(): void; + disconnect(): void; +} diff --git a/npm/packs/ng/dist/core/lib/enums/common.d.ts b/npm/packs/ng/dist/core/lib/enums/common.d.ts new file mode 100644 index 0000000000..f0347beff5 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/enums/common.d.ts @@ -0,0 +1,5 @@ +export declare const enum eLayoutType { + account = "account", + application = "application", + empty = "empty" +} diff --git a/npm/packs/ng/dist/core/lib/enums/index.d.ts b/npm/packs/ng/dist/core/lib/enums/index.d.ts new file mode 100644 index 0000000000..d0b9323665 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/enums/index.d.ts @@ -0,0 +1 @@ +export * from './common'; diff --git a/npm/packs/ng/dist/core/lib/guards/auth.guard.d.ts b/npm/packs/ng/dist/core/lib/guards/auth.guard.d.ts new file mode 100644 index 0000000000..9693b10e42 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/guards/auth.guard.d.ts @@ -0,0 +1,10 @@ +import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router'; +import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Observable } from 'rxjs'; +export declare class AuthGuard implements CanActivate { + private oauthService; + private store; + constructor(oauthService: OAuthService, store: Store); + canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree; +} diff --git a/npm/packs/ng/dist/core/lib/guards/index.d.ts b/npm/packs/ng/dist/core/lib/guards/index.d.ts new file mode 100644 index 0000000000..6d31d6bf14 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/guards/index.d.ts @@ -0,0 +1,2 @@ +export * from './auth.guard'; +export * from './permission.guard'; diff --git a/npm/packs/ng/dist/core/lib/guards/permission.guard.d.ts b/npm/packs/ng/dist/core/lib/guards/permission.guard.d.ts new file mode 100644 index 0000000000..5c061fbde2 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/guards/permission.guard.d.ts @@ -0,0 +1,8 @@ +import { ActivatedRouteSnapshot, CanActivate } from '@angular/router'; +import { Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +export declare class PermissionGuard implements CanActivate { + private store; + constructor(store: Store); + canActivate({ data }: ActivatedRouteSnapshot): Observable; +} diff --git a/npm/packs/ng/dist/core/lib/interceptors/api.interceptor.d.ts b/npm/packs/ng/dist/core/lib/interceptors/api.interceptor.d.ts new file mode 100644 index 0000000000..4cc131ae28 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/interceptors/api.interceptor.d.ts @@ -0,0 +1,9 @@ +import { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Store } from '@ngxs/store'; +export declare class ApiInterceptor implements HttpInterceptor { + private oAuthService; + private store; + constructor(oAuthService: OAuthService, store: Store); + intercept(request: HttpRequest, next: HttpHandler): import("rxjs").Observable>; +} diff --git a/npm/packs/ng/dist/core/lib/interceptors/index.d.ts b/npm/packs/ng/dist/core/lib/interceptors/index.d.ts new file mode 100644 index 0000000000..d7479a7684 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/interceptors/index.d.ts @@ -0,0 +1 @@ +export * from './api.interceptor'; diff --git a/npm/packs/ng/dist/core/lib/models/application-configuration.d.ts b/npm/packs/ng/dist/core/lib/models/application-configuration.d.ts new file mode 100644 index 0000000000..218eaa8b1e --- /dev/null +++ b/npm/packs/ng/dist/core/lib/models/application-configuration.d.ts @@ -0,0 +1,45 @@ +export declare namespace ApplicationConfiguration { + interface Response { + localization: Localization; + auth: Auth; + setting: Setting; + currentUser: CurrentUser; + features: Features; + } + interface Localization { + values: LocalizationValue; + languages: Language[]; + } + interface LocalizationValue { + [key: string]: { + [key: string]: string; + }; + } + interface Language { + cultureName: string; + uiCultureName: string; + displayName: string; + flagIcon: string; + } + interface Auth { + policies: Policy; + grantedPolicies: Policy; + } + interface Policy { + [key: string]: boolean; + } + interface Setting { + values: { + [key: string]: 'Abp.Localization.DefaultLanguage'; + }; + } + interface CurrentUser { + isAuthenticated: boolean; + id: string; + tenantId: string; + userName: string; + } + interface Features { + values: Setting; + } +} diff --git a/npm/packs/ng/dist/core/lib/models/common.d.ts b/npm/packs/ng/dist/core/lib/models/common.d.ts new file mode 100644 index 0000000000..441cc67ec8 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/models/common.d.ts @@ -0,0 +1,38 @@ +import { Config } from './config'; +import { eLayoutType } from '../enums'; +export declare namespace ABP { + interface Root { + environment: Partial; + requirements: Config.Requirements; + } + type PagedResponse = { + totalCount: number; + } & PagedItemsResponse; + interface PagedItemsResponse { + items: T[]; + } + interface PageQueryParams { + filter?: string; + sorting?: string; + skipCount?: number; + maxResultCount?: number; + } + interface Route { + children?: Route[]; + invisible?: boolean; + layout?: eLayoutType; + name: string; + order?: number; + parentName?: string; + path: string; + requiredPolicy?: string; + } + interface FullRoute extends Route { + url?: string; + wrapper?: boolean; + } + interface BasicItem { + id: string; + name: string; + } +} diff --git a/npm/packs/ng/dist/core/lib/models/config.d.ts b/npm/packs/ng/dist/core/lib/models/config.d.ts new file mode 100644 index 0000000000..c04cfb90a7 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/models/config.d.ts @@ -0,0 +1,20 @@ +import { AuthConfig } from 'angular-oauth2-oidc'; +import { Type } from '@angular/core'; +export declare namespace Config { + interface State { + [key: string]: any; + } + interface Environment { + production: boolean; + oAuthConfig: AuthConfig; + apis: Apis; + } + interface Apis { + [key: string]: { + [key: string]: string; + }; + } + interface Requirements { + layouts: Type[]; + } +} diff --git a/npm/packs/ng/dist/core/lib/models/index.d.ts b/npm/packs/ng/dist/core/lib/models/index.d.ts new file mode 100644 index 0000000000..63302c9ab8 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/models/index.d.ts @@ -0,0 +1,6 @@ +export * from './application-configuration'; +export * from './common'; +export * from './config'; +export * from './rest'; +export * from './session'; +export * from './profile'; diff --git a/npm/packs/ng/dist/core/lib/models/profile.d.ts b/npm/packs/ng/dist/core/lib/models/profile.d.ts new file mode 100644 index 0000000000..c535ef09fa --- /dev/null +++ b/npm/packs/ng/dist/core/lib/models/profile.d.ts @@ -0,0 +1,16 @@ +export declare namespace Profile { + interface State { + profile: Response; + } + interface Response { + userName: string; + email: string; + name: string; + surname: string; + phoneNumber: string; + } + interface ChangePasswordRequest { + currentPassword: string; + newPassword: string; + } +} diff --git a/npm/packs/ng/dist/core/lib/models/rest.d.ts b/npm/packs/ng/dist/core/lib/models/rest.d.ts new file mode 100644 index 0000000000..4c995110ce --- /dev/null +++ b/npm/packs/ng/dist/core/lib/models/rest.d.ts @@ -0,0 +1,32 @@ +import { HttpHeaders, HttpParams } from '@angular/common/http'; +export declare namespace Rest { + interface Config { + throwErr?: boolean; + observe?: Observe; + } + const enum Observe { + Body = "body", + Events = "events", + Response = "response" + } + const enum ResponseType { + ArrayBuffer = "arraybuffer", + Blob = "blob", + JSON = "json", + Text = "text" + } + interface Request { + body?: T; + headers?: HttpHeaders | { + [header: string]: string | string[]; + }; + method: string; + params?: HttpParams | { + [param: string]: any; + }; + reportProgress?: boolean; + responseType?: ResponseType; + url: string; + withCredentials?: boolean; + } +} diff --git a/npm/packs/ng/dist/core/lib/models/session.d.ts b/npm/packs/ng/dist/core/lib/models/session.d.ts new file mode 100644 index 0000000000..3aed472242 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/models/session.d.ts @@ -0,0 +1,5 @@ +export declare namespace Session { + interface State { + language: string; + } +} diff --git a/npm/packs/ng/dist/core/lib/pipes/localization.pipe.d.ts b/npm/packs/ng/dist/core/lib/pipes/localization.pipe.d.ts new file mode 100644 index 0000000000..fcfd42a786 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/pipes/localization.pipe.d.ts @@ -0,0 +1,10 @@ +import { PipeTransform, OnDestroy } from '@angular/core'; +import { Store } from '@ngxs/store'; +export declare class LocalizationPipe implements PipeTransform, OnDestroy { + private store; + initialized: boolean; + value: string; + constructor(store: Store); + transform(value: string, ...interpolateParams: string[]): string; + ngOnDestroy(): void; +} diff --git a/npm/packs/ng/dist/core/lib/plugins/config.plugin.d.ts b/npm/packs/ng/dist/core/lib/plugins/config.plugin.d.ts new file mode 100644 index 0000000000..5f7024a1ca --- /dev/null +++ b/npm/packs/ng/dist/core/lib/plugins/config.plugin.d.ts @@ -0,0 +1,12 @@ +import { InjectionToken } from '@angular/core'; +import { NgxsPlugin, NgxsNextPluginFn } from '@ngxs/store'; +import { Router } from '@angular/router'; +import { ABP } from '../models'; +export declare const NGXS_CONFIG_PLUGIN_OPTIONS: InjectionToken<{}>; +export declare class ConfigPlugin implements NgxsPlugin { + private options; + private router; + private initialized; + constructor(options: ABP.Root, router: Router); + handle(state: any, event: any, next: NgxsNextPluginFn): any; +} diff --git a/npm/packs/ng/dist/core/lib/plugins/index.d.ts b/npm/packs/ng/dist/core/lib/plugins/index.d.ts new file mode 100644 index 0000000000..42ab2f291c --- /dev/null +++ b/npm/packs/ng/dist/core/lib/plugins/index.d.ts @@ -0,0 +1 @@ +export * from './config.plugin'; diff --git a/npm/packs/ng/dist/core/lib/services/application-configuration.service.d.ts b/npm/packs/ng/dist/core/lib/services/application-configuration.service.d.ts new file mode 100644 index 0000000000..6d8d37b660 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/services/application-configuration.service.d.ts @@ -0,0 +1,8 @@ +import { Observable } from 'rxjs'; +import { ApplicationConfiguration } from '../models'; +import { RestService } from './rest.service'; +export declare class ApplicationConfigurationService { + private rest; + constructor(rest: RestService); + getConfiguration(): Observable; +} diff --git a/npm/packs/ng/dist/core/lib/services/config.service.d.ts b/npm/packs/ng/dist/core/lib/services/config.service.d.ts new file mode 100644 index 0000000000..07b485ff4c --- /dev/null +++ b/npm/packs/ng/dist/core/lib/services/config.service.d.ts @@ -0,0 +1,9 @@ +import { Store } from '@ngxs/store'; +export declare class ConfigService { + private store; + constructor(store: Store); + getAll(): import("../models").Config.State; + getOne(key: string): any; + getDeep(keys: string[] | string): any; + getSetting(key: string): any; +} diff --git a/npm/packs/ng/dist/core/lib/services/index.d.ts b/npm/packs/ng/dist/core/lib/services/index.d.ts new file mode 100644 index 0000000000..8ae05cabaa --- /dev/null +++ b/npm/packs/ng/dist/core/lib/services/index.d.ts @@ -0,0 +1,6 @@ +export * from './application-configuration.service'; +export * from './config.service'; +export * from './lazy-load.service'; +export * from './localization.service'; +export * from './profile.service'; +export * from './rest.service'; diff --git a/npm/packs/ng/dist/core/lib/services/lazy-load.service.d.ts b/npm/packs/ng/dist/core/lib/services/lazy-load.service.d.ts new file mode 100644 index 0000000000..01149d3b19 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/services/lazy-load.service.d.ts @@ -0,0 +1,7 @@ +import { Observable, ReplaySubject } from 'rxjs'; +export declare class LazyLoadService { + loadedLibraries: { + [url: string]: ReplaySubject; + }; + load(url: string, type: 'script' | 'style', content?: string, targetQuery?: string, position?: InsertPosition): Observable; +} diff --git a/npm/packs/ng/dist/core/lib/services/localization.service.d.ts b/npm/packs/ng/dist/core/lib/services/localization.service.d.ts new file mode 100644 index 0000000000..56dfa5f0a1 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/services/localization.service.d.ts @@ -0,0 +1,8 @@ +import { Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +export declare class LocalizationService { + private store; + constructor(store: Store); + get(keys: string, ...interpolateParams: string[]): Observable; + instant(keys: string, ...interpolateParams: string[]): string; +} diff --git a/npm/packs/ng/dist/core/lib/services/profile.service.d.ts b/npm/packs/ng/dist/core/lib/services/profile.service.d.ts new file mode 100644 index 0000000000..eac7ac9961 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/services/profile.service.d.ts @@ -0,0 +1,10 @@ +import { Observable } from 'rxjs'; +import { RestService } from './rest.service'; +import { Profile } from '../models'; +export declare class ProfileService { + private rest; + constructor(rest: RestService); + get(): Observable; + update(body: Profile.Response): Observable; + changePassword(body: Profile.ChangePasswordRequest): Observable; +} diff --git a/npm/packs/ng/dist/core/lib/services/rest.service.d.ts b/npm/packs/ng/dist/core/lib/services/rest.service.d.ts new file mode 100644 index 0000000000..d26818e6a6 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/services/rest.service.d.ts @@ -0,0 +1,11 @@ +import { HttpClient, HttpRequest } from '@angular/common/http'; +import { Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { Rest } from '../models/rest'; +export declare class RestService { + private http; + private store; + constructor(http: HttpClient, store: Store); + handleError(err: any): Observable; + request(request: HttpRequest | Rest.Request, config?: Rest.Config, api?: string): Observable; +} diff --git a/npm/packs/ng/dist/core/lib/states/config.state.d.ts b/npm/packs/ng/dist/core/lib/states/config.state.d.ts new file mode 100644 index 0000000000..d54039bacb --- /dev/null +++ b/npm/packs/ng/dist/core/lib/states/config.state.d.ts @@ -0,0 +1,18 @@ +import { StateContext, Store } from '@ngxs/store'; +import { Config } from '../models'; +import { PatchRouteByName } from '../actions/config.actions'; +import { ApplicationConfigurationService } from '../services/application-configuration.service'; +export declare class ConfigState { + private appConfigurationService; + private store; + static getAll(state: Config.State): Config.State; + static getOne(key: string): (state: Config.State) => any; + static getDeep(keys: string[] | string): (state: Config.State) => any; + static getApiUrl(key?: string): (state: Config.State) => string; + static getSetting(key: string): (state: Config.State) => any; + static getGrantedPolicy(condition?: string): (state: Config.State) => boolean; + static getCopy(key: string, ...interpolateParams: string[]): (state: Config.State) => any; + constructor(appConfigurationService: ApplicationConfigurationService, store: Store); + addData({ patchState, dispatch }: StateContext): import("rxjs").Observable; + patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName): Config.State; +} diff --git a/npm/packs/ng/dist/core/lib/states/index.d.ts b/npm/packs/ng/dist/core/lib/states/index.d.ts new file mode 100644 index 0000000000..b7626c2842 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/states/index.d.ts @@ -0,0 +1,3 @@ +export * from './profile.state'; +export * from './config.state'; +export * from './session.state'; diff --git a/npm/packs/ng/dist/core/lib/states/profile.state.d.ts b/npm/packs/ng/dist/core/lib/states/profile.state.d.ts new file mode 100644 index 0000000000..344ab3a8a8 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/states/profile.state.d.ts @@ -0,0 +1,12 @@ +import { StateContext } from '@ngxs/store'; +import { ProfileChangePassword, ProfileUpdate } from '../actions/profile.actions'; +import { Profile } from '../models/profile'; +import { ProfileService } from '../services/profile.service'; +export declare class ProfileState { + private profileService; + static getProfile({ profile }: Profile.State): Profile.Response; + constructor(profileService: ProfileService); + profileGet({ patchState }: StateContext): import("rxjs").Observable; + profileUpdate({ patchState }: StateContext, { payload }: ProfileUpdate): import("rxjs").Observable; + changePassword(_: any, { payload }: ProfileChangePassword): import("rxjs").Observable; +} diff --git a/npm/packs/ng/dist/core/lib/states/session.state.d.ts b/npm/packs/ng/dist/core/lib/states/session.state.d.ts new file mode 100644 index 0000000000..5771f223f5 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/states/session.state.d.ts @@ -0,0 +1,8 @@ +import { StateContext } from '@ngxs/store'; +import { SessionSetLanguage } from '../actions/session.actions'; +import { Session } from '../models/session'; +export declare class SessionState { + static getLanguage({ language }: Session.State): string; + constructor(); + sessionSetLanguage({ patchState }: StateContext, { payload }: SessionSetLanguage): void; +} diff --git a/npm/packs/ng/dist/core/lib/tokens/common.token.d.ts b/npm/packs/ng/dist/core/lib/tokens/common.token.d.ts new file mode 100644 index 0000000000..a672552806 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/tokens/common.token.d.ts @@ -0,0 +1,12 @@ +import { InjectionToken } from '@angular/core'; +import { Config } from '../models'; +export declare function environmentFactory(environment: Config.Environment): { + production: boolean; + oAuthConfig: import("angular-oauth2-oidc").AuthConfig; + apis: Config.Apis; +}; +export declare function configFactory(config: Config.Requirements): { + layouts: import("@angular/core").Type[]; +}; +export declare const ENVIRONMENT: InjectionToken<{}>; +export declare const CONFIG: InjectionToken<{}>; diff --git a/npm/packs/ng/dist/core/lib/tokens/index.d.ts b/npm/packs/ng/dist/core/lib/tokens/index.d.ts new file mode 100644 index 0000000000..1472bbfee9 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/tokens/index.d.ts @@ -0,0 +1 @@ +export * from './common.token'; diff --git a/npm/packs/ng/dist/core/lib/utils/generator-utils.d.ts b/npm/packs/ng/dist/core/lib/utils/generator-utils.d.ts new file mode 100644 index 0000000000..2e98cc6b40 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/utils/generator-utils.d.ts @@ -0,0 +1 @@ +export declare function uuid(a?: any): string; diff --git a/npm/packs/ng/dist/core/lib/utils/index.d.ts b/npm/packs/ng/dist/core/lib/utils/index.d.ts new file mode 100644 index 0000000000..e2a72ebd3f --- /dev/null +++ b/npm/packs/ng/dist/core/lib/utils/index.d.ts @@ -0,0 +1,4 @@ +export * from './generator-utils'; +export * from './initial-utils'; +export * from './route-utils'; +export * from './rxjs-utils'; diff --git a/npm/packs/ng/dist/core/lib/utils/initial-utils.d.ts b/npm/packs/ng/dist/core/lib/utils/initial-utils.d.ts new file mode 100644 index 0000000000..7237b867ba --- /dev/null +++ b/npm/packs/ng/dist/core/lib/utils/initial-utils.d.ts @@ -0,0 +1,2 @@ +import { Injector } from '@angular/core'; +export declare function getInitialData(injector: Injector): () => Promise; diff --git a/npm/packs/ng/dist/core/lib/utils/route-utils.d.ts b/npm/packs/ng/dist/core/lib/utils/route-utils.d.ts new file mode 100644 index 0000000000..82d932fbdd --- /dev/null +++ b/npm/packs/ng/dist/core/lib/utils/route-utils.d.ts @@ -0,0 +1,4 @@ +import { ABP } from '../models'; +export declare function organizeRoutes(routes: ABP.FullRoute[], wrappers?: ABP.FullRoute[], parentNameArr?: ABP.FullRoute[], parentName?: string): ABP.FullRoute[]; +export declare function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[]; +export declare function sortRoutes(routes?: ABP.FullRoute[]): ABP.FullRoute[]; diff --git a/npm/packs/ng/dist/core/lib/utils/rxjs-utils.d.ts b/npm/packs/ng/dist/core/lib/utils/rxjs-utils.d.ts new file mode 100644 index 0000000000..f1fb5ef4f8 --- /dev/null +++ b/npm/packs/ng/dist/core/lib/utils/rxjs-utils.d.ts @@ -0,0 +1,2 @@ +import { Observable } from 'rxjs'; +export declare const takeUntilDestroy: (componentInstance: any, destroyMethodName?: string) => (source: Observable) => Observable; diff --git a/npm/packs/ng/dist/core/package.json b/npm/packs/ng/dist/core/package.json new file mode 100644 index 0000000000..c14d914359 --- /dev/null +++ b/npm/packs/ng/dist/core/package.json @@ -0,0 +1,30 @@ +{ + "name": "@abp/ng.core", + "version": "0.5.0", + "dependencies": { + "@ngxs/router-plugin": "^3.5.0", + "@ngxs/storage-plugin": "^3.5.0", + "@ngxs/store": "^3.5.0", + "angular-oauth2-oidc": "^8.0.1", + "just-compare": "^1.3.0", + "snq": "^1.0.3", + "tslib": "^1.9.0" + }, + "peerDependencies": { + "@angular/common": ">=8.1.0", + "@angular/core": ">=8.1.0", + "@angular/forms": ">=8.1.0", + "@angular/router": ">=8.1.0", + "rxjs": ">=6.4.0" + }, + "main": "bundles/abp-ng.core.umd.js", + "module": "fesm5/abp-ng.core.js", + "es2015": "fesm2015/abp-ng.core.js", + "esm5": "esm5/abp-ng.core.js", + "esm2015": "esm2015/abp-ng.core.js", + "fesm5": "fesm5/abp-ng.core.js", + "fesm2015": "fesm2015/abp-ng.core.js", + "typings": "abp-ng.core.d.ts", + "metadata": "abp-ng.core.metadata.json", + "sideEffects": false +} diff --git a/npm/packs/ng/dist/core/public-api.d.ts b/npm/packs/ng/dist/core/public-api.d.ts new file mode 100644 index 0000000000..74dc2a778b --- /dev/null +++ b/npm/packs/ng/dist/core/public-api.d.ts @@ -0,0 +1,13 @@ +export * from './lib/actions'; +export * from './lib/components'; +export * from './lib/directives'; +export * from './lib/enums'; +export * from './lib/guards'; +export * from './lib/interceptors'; +export * from './lib/models'; +export * from './lib/plugins'; +export * from './lib/services'; +export * from './lib/states'; +export * from './lib/tokens'; +export * from './lib/utils'; +export * from './lib/core.module'; diff --git a/npm/packs/ng/dist/identity/README.md b/npm/packs/ng/dist/identity/README.md new file mode 100644 index 0000000000..7d4c7a2814 --- /dev/null +++ b/npm/packs/ng/dist/identity/README.md @@ -0,0 +1 @@ +

@abp/ng.identity

diff --git a/npm/packs/ng/dist/identity/abp-ng.identity.d.ts b/npm/packs/ng/dist/identity/abp-ng.identity.d.ts new file mode 100644 index 0000000000..df15625105 --- /dev/null +++ b/npm/packs/ng/dist/identity/abp-ng.identity.d.ts @@ -0,0 +1,8 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './public-api'; +export { UsersComponent as ɵb } from './lib/components/users/users.component'; +export { IdentityRoutingModule as ɵc } from './lib/identity-routing.module'; +export { Identity as ɵa } from './lib/models/identity'; +export { UserResolver as ɵd } from './lib/resolvers/users.resolver'; diff --git a/npm/packs/ng/dist/identity/abp-ng.identity.metadata.json b/npm/packs/ng/dist/identity/abp-ng.identity.metadata.json new file mode 100644 index 0000000000..f8007413cf --- /dev/null +++ b/npm/packs/ng/dist/identity/abp-ng.identity.metadata.json @@ -0,0 +1 @@ +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/models/identity"}],"metadata":{"IdentityModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"RolesComponent"},{"__symbolic":"reference","name":"ɵb"}],"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":16,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"IdentityState"}]]},{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":17,"character":4},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTabsetModule","line":19,"character":4},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":20,"character":4},{"__symbolic":"reference","module":"primeng/table","name":"TableModule","line":21,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":22,"character":4},{"__symbolic":"reference","module":"@abp/ng.permission-management","name":"PermissionManagementModule","line":23,"character":4},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":24,"character":4}]}]}],"members":{}},"IdentityGetRoles":{"__symbolic":"class","members":{},"statics":{"type":"[Identity] Get Roles"}},"IdentityGetRoleById":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Get Role By Id"}},"IdentityDeleteRole":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Delete Role"}},"IdentityAddRole":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵa"},"member":"RoleSaveRequest"}]}]},"statics":{"type":"[Identity] Add Role"}},"IdentityUpdateRole":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵa"},"member":"RoleItem"}]}]},"statics":{"type":"[Identity] Update Role"}},"IdentityGetUsers":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ABP","line":29,"character":31},"member":"PageQueryParams"}]}]},"statics":{"type":"[Identity] Get Users"}},"IdentityGetUserById":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Get User By Id"}},"IdentityDeleteUser":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Delete User"}},"IdentityAddUser":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵa"},"member":"UserSaveRequest"}]}]},"statics":{"type":"[Identity] Add User"}},"IdentityUpdateUser":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":49,"character":30,"module":"./lib/actions/identity.actions"}]}]},"statics":{"type":"[Identity] Update User"}},"IdentityGetUserRoles":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Get User Roles"}},"RolesComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"abp-roles","template":"
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}\n
\n \n
\n
\n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n\n
\n \n \n
\n
\n
\n\n\n"}]}],"members":{"roles$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":21,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"IdentityState"},"member":"getRoles"}]}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":32,"character":3},"arguments":["modalContent",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ConfirmationService","line":36,"character":33},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbModal","line":37,"character":26},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":38,"character":16},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":39,"character":19}]}],"createForm":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"onAdd":[{"__symbolic":"method"}],"onEdit":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}]}},"IDENTITY_ROUTES":[{"name":"Administration","path":"","order":1,"wrapper":true},{"name":"Identity","path":"identity","order":1,"parentName":"Administration","layout":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":14,"character":12},"member":"application"},"children":[{"path":"roles","name":"Roles","order":2,"requiredPolicy":"AbpIdentity.Roles"},{"path":"users","name":"Users","order":1,"requiredPolicy":"AbpIdentity.Users"}]}],"RoleResolver":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":9,"character":29}]}],"resolve":[{"__symbolic":"method"}]}},"IdentityService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":9,"character":28}]}],"getRoles":[{"__symbolic":"method"}],"getRoleById":[{"__symbolic":"method"}],"deleteRole":[{"__symbolic":"method"}],"addRole":[{"__symbolic":"method"}],"updateRole":[{"__symbolic":"method"}],"getUsers":[{"__symbolic":"method"}],"getUserById":[{"__symbolic":"method"}],"getUserRoles":[{"__symbolic":"method"}],"deleteUser":[{"__symbolic":"method"}],"addUser":[{"__symbolic":"method"}],"updateUser":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"IdentityState":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":18,"character":1},"arguments":[{"name":"IdentityState","defaults":{"roles":{},"selectedRole":{},"users":{},"selectedUser":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"IdentityService"}]}],"getRoles":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":45,"character":3},"arguments":[{"__symbolic":"reference","name":"IdentityGetRoles"}]}]}],"getRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":56,"character":3},"arguments":[{"__symbolic":"reference","name":"IdentityGetRoleById"}]}]}],"deleteRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":67,"character":3},"arguments":[{"__symbolic":"reference","name":"IdentityDeleteRole"}]}]}],"addRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":72,"character":3},"arguments":[{"__symbolic":"reference","name":"IdentityAddRole"}]}]}],"updateRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":77,"character":3},"arguments":[{"__symbolic":"reference","name":"IdentityUpdateRole"}]}]}],"getUsers":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":85,"character":3},"arguments":[{"__symbolic":"reference","name":"IdentityGetUsers"}]}]}],"getUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":96,"character":3},"arguments":[{"__symbolic":"reference","name":"IdentityGetUserById"}]}]}],"deleteUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":107,"character":3},"arguments":[{"__symbolic":"reference","name":"IdentityDeleteUser"}]}]}],"addUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":112,"character":3},"arguments":[{"__symbolic":"reference","name":"IdentityAddUser"}]}]}],"updateUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":117,"character":3},"arguments":[{"__symbolic":"reference","name":"IdentityUpdateUser"}]}]}],"getUserRoles":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":125,"character":3},"arguments":[{"__symbolic":"reference","name":"IdentityGetUserRoles"}]}]}]},"statics":{"getRoles":{"__symbolic":"function","parameters":["roles"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"roles"},"member":"items"}},"getRolesTotalCount":{"__symbolic":"function","parameters":["roles"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"roles"},"member":"totalCount"}},"getUsers":{"__symbolic":"function","parameters":["users"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"users"},"member":"items"}},"getUsersTotalCount":{"__symbolic":"function","parameters":["users"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"users"},"member":"totalCount"}}}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"abp-users","template":"
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}\n
\n \n
\n
\n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n\n
\n \n \n
\n
\n
\n\n"}]}],"members":{"data$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":26,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"IdentityState"},"member":"getUsers"}]}]}],"totalCount$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":29,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"IdentityState"},"member":"getUsersTotalCount"}]}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":32,"character":3},"arguments":["modalContent",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ConfirmationService","line":62,"character":33},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbModal","line":63,"character":26},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":64,"character":16},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":65,"character":19}]}],"ngOnInit":[{"__symbolic":"method"}],"buildForm":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"onAdd":[{"__symbolic":"method"}],"onEdit":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"onPageChange":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":32,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":33,"character":12},"member":"forChild"},"arguments":[[{"path":"","redirectTo":"roles","pathMatch":"full"},{"path":"roles","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":12,"character":15},"canActivate":[{"__symbolic":"reference","module":"@abp/ng.core","name":"AuthGuard","line":13,"character":18},{"__symbolic":"reference","module":"@abp/ng.core","name":"PermissionGuard","line":13,"character":29}],"data":{"requiredPolicy":"AbpIdentity.Roles"},"children":[{"path":"","component":{"__symbolic":"reference","name":"RolesComponent"},"resolve":[{"__symbolic":"reference","name":"RoleResolver"}]}]},{"path":"users","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":19,"character":15},"canActivate":[{"__symbolic":"reference","module":"@abp/ng.core","name":"AuthGuard","line":20,"character":18},{"__symbolic":"reference","module":"@abp/ng.core","name":"PermissionGuard","line":20,"character":29}],"data":{"requiredPolicy":"AbpIdentity.Users"},"children":[{"path":"","component":{"__symbolic":"reference","name":"ɵb"},"resolve":[{"__symbolic":"reference","name":"RoleResolver"},{"__symbolic":"reference","name":"ɵd"}]}]}]]}],"exports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":34,"character":12}],"providers":[{"__symbolic":"reference","name":"RoleResolver"},{"__symbolic":"reference","name":"ɵd"}]}]}],"members":{}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":9,"character":29}]}],"resolve":[{"__symbolic":"method"}]}}},"origins":{"IdentityModule":"./lib/identity.module","IdentityGetRoles":"./lib/actions/identity.actions","IdentityGetRoleById":"./lib/actions/identity.actions","IdentityDeleteRole":"./lib/actions/identity.actions","IdentityAddRole":"./lib/actions/identity.actions","IdentityUpdateRole":"./lib/actions/identity.actions","IdentityGetUsers":"./lib/actions/identity.actions","IdentityGetUserById":"./lib/actions/identity.actions","IdentityDeleteUser":"./lib/actions/identity.actions","IdentityAddUser":"./lib/actions/identity.actions","IdentityUpdateUser":"./lib/actions/identity.actions","IdentityGetUserRoles":"./lib/actions/identity.actions","RolesComponent":"./lib/components/roles/roles.component","IDENTITY_ROUTES":"./lib/constants/routes","RoleResolver":"./lib/resolvers/roles.resolver","IdentityService":"./lib/services/identity.service","IdentityState":"./lib/states/identity.state","ɵa":"./lib/models/identity","ɵb":"./lib/components/users/users.component","ɵc":"./lib/identity-routing.module","ɵd":"./lib/resolvers/users.resolver"},"importAs":"@abp/ng.identity"} \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.js b/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.js new file mode 100644 index 0000000000..93e9b11754 --- /dev/null +++ b/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.js @@ -0,0 +1,1352 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@angular/core'), require('@ngxs/store'), require('rxjs'), require('@ng-bootstrap/ng-bootstrap'), require('@angular/forms'), require('rxjs/operators'), require('@abp/ng.theme.shared'), require('@angular/router'), require('snq'), require('@ngx-validate/core'), require('@abp/ng.permission-management'), require('primeng/table')) : + typeof define === 'function' && define.amd ? define('@abp/ng.identity', ['exports', '@abp/ng.core', '@angular/core', '@ngxs/store', 'rxjs', '@ng-bootstrap/ng-bootstrap', '@angular/forms', 'rxjs/operators', '@abp/ng.theme.shared', '@angular/router', 'snq', '@ngx-validate/core', '@abp/ng.permission-management', 'primeng/table'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.identity = {}), global.ng_core, global.ng.core, global.store, global.rxjs, global.ngBootstrap, global.ng.forms, global.rxjs.operators, global.ng_theme_shared, global.ng.router, global.snq, global.core$1, global.ng_permissionManagement, global.table)); +}(this, function (exports, ng_core, core, store, rxjs, ngBootstrap, forms, operators, ng_theme_shared, router, snq, core$1, ng_permissionManagement, table) { 'use strict'; + + snq = snq && snq.hasOwnProperty('default') ? snq['default'] : snq; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + 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; + return c > 3 && r && Object.defineProperty(target, key, r), r; + } + + function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); + } + + function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var IdentityGetRoles = /** @class */ (function () { + function IdentityGetRoles() { + } + IdentityGetRoles.type = '[Identity] Get Roles'; + return IdentityGetRoles; + }()); + var IdentityGetRoleById = /** @class */ (function () { + function IdentityGetRoleById(payload) { + this.payload = payload; + } + IdentityGetRoleById.type = '[Identity] Get Role By Id'; + return IdentityGetRoleById; + }()); + var IdentityDeleteRole = /** @class */ (function () { + function IdentityDeleteRole(payload) { + this.payload = payload; + } + IdentityDeleteRole.type = '[Identity] Delete Role'; + return IdentityDeleteRole; + }()); + var IdentityAddRole = /** @class */ (function () { + function IdentityAddRole(payload) { + this.payload = payload; + } + IdentityAddRole.type = '[Identity] Add Role'; + return IdentityAddRole; + }()); + var IdentityUpdateRole = /** @class */ (function () { + function IdentityUpdateRole(payload) { + this.payload = payload; + } + IdentityUpdateRole.type = '[Identity] Update Role'; + return IdentityUpdateRole; + }()); + var IdentityGetUsers = /** @class */ (function () { + function IdentityGetUsers(payload) { + this.payload = payload; + } + IdentityGetUsers.type = '[Identity] Get Users'; + return IdentityGetUsers; + }()); + var IdentityGetUserById = /** @class */ (function () { + function IdentityGetUserById(payload) { + this.payload = payload; + } + IdentityGetUserById.type = '[Identity] Get User By Id'; + return IdentityGetUserById; + }()); + var IdentityDeleteUser = /** @class */ (function () { + function IdentityDeleteUser(payload) { + this.payload = payload; + } + IdentityDeleteUser.type = '[Identity] Delete User'; + return IdentityDeleteUser; + }()); + var IdentityAddUser = /** @class */ (function () { + function IdentityAddUser(payload) { + this.payload = payload; + } + IdentityAddUser.type = '[Identity] Add User'; + return IdentityAddUser; + }()); + var IdentityUpdateUser = /** @class */ (function () { + function IdentityUpdateUser(payload) { + this.payload = payload; + } + IdentityUpdateUser.type = '[Identity] Update User'; + return IdentityUpdateUser; + }()); + var IdentityGetUserRoles = /** @class */ (function () { + function IdentityGetUserRoles(payload) { + this.payload = payload; + } + IdentityGetUserRoles.type = '[Identity] Get User Roles'; + return IdentityGetUserRoles; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var IdentityService = /** @class */ (function () { + function IdentityService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + IdentityService.prototype.getRoles = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/identity/role', + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.getRoleById = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/identity/role/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.deleteRole = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'DELETE', + url: "/api/identity/role/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.addRole = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: '/api/identity/role', + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.updateRole = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var url = "/api/identity/role/" + body.id; + delete body.id; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?=} params + * @return {?} + */ + IdentityService.prototype.getUsers = /** + * @param {?=} params + * @return {?} + */ + function (params) { + if (params === void 0) { params = (/** @type {?} */ ({})); } + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/identity/user', + params: params, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.getUserById = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/identity/user/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.getUserRoles = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/identity/user/" + id + "/roles", + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.deleteUser = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'DELETE', + url: "/api/identity/user/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.addUser = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: '/api/identity/user', + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.updateUser = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var url = "/identity/users/" + body.id; + delete body.id; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + body: body, + }; + return this.rest.request(request); + }; + IdentityService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + IdentityService.ctorParameters = function () { return [ + { type: ng_core.RestService } + ]; }; + /** @nocollapse */ IdentityService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function IdentityService_Factory() { return new IdentityService(core.ɵɵinject(ng_core.RestService)); }, token: IdentityService, providedIn: "root" }); + return IdentityService; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var IdentityState = /** @class */ (function () { + function IdentityState(identityService) { + this.identityService = identityService; + } + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getRoles = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var roles = _a.roles; + return roles.items; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getRolesTotalCount = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var roles = _a.roles; + return roles.totalCount; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getUsers = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var users = _a.users; + return users.items; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getUsersTotalCount = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var users = _a.users; + return users.totalCount; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.prototype.getRoles = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var patchState = _a.patchState; + return this.identityService.getRoles().pipe(operators.tap((/** + * @param {?} roles + * @return {?} + */ + function (roles) { + return patchState({ + roles: roles, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getRoleById(payload).pipe(operators.tap((/** + * @param {?} selectedRole + * @return {?} + */ + function (selectedRole) { + return patchState({ + selectedRole: selectedRole, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.deleteRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.deleteRole(payload).pipe(operators.switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetRoles()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.addRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.addRole(payload).pipe(operators.switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetRoles()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.updateRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var _this = this; + var getState = _a.getState, dispatch = _a.dispatch; + var payload = _b.payload; + return dispatch(new IdentityGetRoleById(payload.id)).pipe(operators.switchMap((/** + * @return {?} + */ + function () { return _this.identityService.updateRole(__assign({}, getState().selectedRole, payload)); })), operators.switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetRoles()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getUsers = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getUsers(payload).pipe(operators.tap((/** + * @param {?} users + * @return {?} + */ + function (users) { + return patchState({ + users: users, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getUserById(payload).pipe(operators.tap((/** + * @param {?} selectedUser + * @return {?} + */ + function (selectedUser) { + return patchState({ + selectedUser: selectedUser, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.deleteUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.deleteUser(payload).pipe(operators.switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetUsers()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.addUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.addUser(payload).pipe(operators.switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetUsers()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.updateUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var _this = this; + var getState = _a.getState, dispatch = _a.dispatch; + var payload = _b.payload; + return dispatch(new IdentityGetUserById(payload.id)).pipe(operators.switchMap((/** + * @return {?} + */ + function () { return _this.identityService.updateUser(__assign({}, getState().selectedUser, payload)); })), operators.switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetUsers()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getUserRoles = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getUserRoles(payload).pipe(operators.pluck('items'), operators.tap((/** + * @param {?} selectedUserRoles + * @return {?} + */ + function (selectedUserRoles) { + return patchState({ + selectedUserRoles: selectedUserRoles, + }); + }))); + }; + __decorate([ + store.Action(IdentityGetRoles), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "getRoles", null); + __decorate([ + store.Action(IdentityGetRoleById), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetRoleById]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "getRole", null); + __decorate([ + store.Action(IdentityDeleteRole), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetRoleById]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "deleteRole", null); + __decorate([ + store.Action(IdentityAddRole), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityAddRole]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "addRole", null); + __decorate([ + store.Action(IdentityUpdateRole), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityUpdateRole]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "updateRole", null); + __decorate([ + store.Action(IdentityGetUsers), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUsers]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "getUsers", null); + __decorate([ + store.Action(IdentityGetUserById), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUserById]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "getUser", null); + __decorate([ + store.Action(IdentityDeleteUser), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUserById]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "deleteUser", null); + __decorate([ + store.Action(IdentityAddUser), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityAddUser]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "addUser", null); + __decorate([ + store.Action(IdentityUpdateUser), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityUpdateUser]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "updateUser", null); + __decorate([ + store.Action(IdentityGetUserRoles), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUserRoles]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "getUserRoles", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) + ], IdentityState, "getRoles", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Number) + ], IdentityState, "getRolesTotalCount", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) + ], IdentityState, "getUsers", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Number) + ], IdentityState, "getUsersTotalCount", null); + IdentityState = __decorate([ + store.State({ + name: 'IdentityState', + defaults: (/** @type {?} */ ({ roles: {}, selectedRole: {}, users: {}, selectedUser: {} })), + }), + __metadata("design:paramtypes", [IdentityService]) + ], IdentityState); + return IdentityState; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var RolesComponent = /** @class */ (function () { + function RolesComponent(confirmationService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + this.visiblePermissions = false; + } + /** + * @return {?} + */ + RolesComponent.prototype.createForm = /** + * @return {?} + */ + function () { + this.form = this.fb.group({ + name: [this.selected.name || '', [forms.Validators.required, forms.Validators.maxLength(256)]], + isDefault: [this.selected.isDefault || false], + isPublic: [this.selected.isPublic || false], + }); + }; + /** + * @return {?} + */ + RolesComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.createForm(); + this.modalService.open(this.modalContent); + }; + /** + * @return {?} + */ + RolesComponent.prototype.onAdd = /** + * @return {?} + */ + function () { + this.selected = (/** @type {?} */ ({})); + this.openModal(); + }; + /** + * @param {?} id + * @return {?} + */ + RolesComponent.prototype.onEdit = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + this.store + .dispatch(new IdentityGetRoleById(id)) + .pipe(operators.pluck('IdentityState', 'selectedRole')) + .subscribe((/** + * @param {?} selectedRole + * @return {?} + */ + function (selectedRole) { + _this.selected = selectedRole; + _this.openModal(); + })); + }; + /** + * @return {?} + */ + RolesComponent.prototype.save = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.form.valid) + return; + this.store + .dispatch(this.selected.id + ? new IdentityUpdateRole(__assign({}, this.form.value, { id: this.selected.id })) + : new IdentityAddRole(this.form.value)) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @param {?} name + * @return {?} + */ + RolesComponent.prototype.delete = /** + * @param {?} id + * @param {?} name + * @return {?} + */ + function (id, name) { + var _this = this; + this.confirmationService + .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + if (status === "confirm" /* confirm */) { + _this.store.dispatch(new IdentityDeleteRole(id)); + } + })); + }; + RolesComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-roles', + template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}\n
\n \n
\n
\n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n\n
\n \n \n
\n
\n
\n\n\n" + }] } + ]; + /** @nocollapse */ + RolesComponent.ctorParameters = function () { return [ + { type: ng_theme_shared.ConfirmationService }, + { type: ngBootstrap.NgbModal }, + { type: forms.FormBuilder }, + { type: store.Store } + ]; }; + RolesComponent.propDecorators = { + modalContent: [{ type: core.ViewChild, args: ['modalContent', { static: false },] }] + }; + __decorate([ + store.Select(IdentityState.getRoles), + __metadata("design:type", rxjs.Observable) + ], RolesComponent.prototype, "roles$", void 0); + return RolesComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var RoleResolver = /** @class */ (function () { + function RoleResolver(store) { + this.store = store; + } + /** + * @return {?} + */ + RoleResolver.prototype.resolve = /** + * @return {?} + */ + function () { + /** @type {?} */ + var roles = this.store.selectSnapshot(IdentityState.getRoles); + return roles && roles.length ? null : this.store.dispatch(new IdentityGetRoles()); + }; + RoleResolver.decorators = [ + { type: core.Injectable } + ]; + /** @nocollapse */ + RoleResolver.ctorParameters = function () { return [ + { type: store.Store } + ]; }; + return RoleResolver; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var UsersComponent = /** @class */ (function () { + function UsersComponent(confirmationService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + this.visiblePermissions = false; + this.pageQuery = { + sorting: 'userName', + }; + this.loading = false; + this.search$ = new rxjs.Subject(); + this.trackByFn = (/** + * @param {?} index + * @param {?} item + * @return {?} + */ + function (index, item) { return Object.keys(item)[0] || index; }); + } + Object.defineProperty(UsersComponent.prototype, "roleGroups", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return snq((/** + * @return {?} + */ + function () { return (/** @type {?} */ (((/** @type {?} */ (_this.form.get('roleNames')))).controls)); }), []); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + UsersComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + var _this = this; + this.search$.pipe(operators.debounceTime(300)).subscribe((/** + * @param {?} value + * @return {?} + */ + function (value) { + _this.pageQuery.filter = value; + _this.get(); + })); + }; + /** + * @return {?} + */ + UsersComponent.prototype.buildForm = /** + * @return {?} + */ + function () { + var _this = this; + this.roles = this.store.selectSnapshot(IdentityState.getRoles); + this.form = this.fb.group({ + password: [ + '', + [ + forms.Validators.required, + forms.Validators.maxLength(32), + forms.Validators.minLength(6), + core$1.validatePassword(['small', 'capital', 'number', 'special']), + ], + ], + userName: [this.selected.userName || '', [forms.Validators.required, forms.Validators.maxLength(256)]], + email: [this.selected.email || '', [forms.Validators.required, forms.Validators.email, forms.Validators.maxLength(256)]], + name: [this.selected.name || '', [forms.Validators.maxLength(64)]], + surname: [this.selected.surname || '', [forms.Validators.maxLength(64)]], + phoneNumber: [this.selected.phoneNumber || '', [forms.Validators.maxLength(16)]], + lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + roleNames: this.fb.array(this.roles.map((/** + * @param {?} role + * @return {?} + */ + function (role) { + var _a; + return _this.fb.group((_a = {}, + _a[role.name] = [!!snq((/** + * @return {?} + */ + function () { return _this.selectedUserRoles.find((/** + * @param {?} userRole + * @return {?} + */ + function (userRole) { return userRole.id === role.id; })); }))], + _a)); + }))), + }); + }; + /** + * @return {?} + */ + UsersComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.buildForm(); + this.modalService.open(this.modalContent); + }; + /** + * @return {?} + */ + UsersComponent.prototype.onAdd = /** + * @return {?} + */ + function () { + this.selected = (/** @type {?} */ ({})); + this.selectedUserRoles = (/** @type {?} */ ([])); + this.openModal(); + }; + /** + * @param {?} id + * @return {?} + */ + UsersComponent.prototype.onEdit = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + rxjs.combineLatest([this.store.dispatch(new IdentityGetUserById(id)), this.store.dispatch(new IdentityGetUserRoles(id))]) + .pipe(operators.filter((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _b = __read(_a, 2), res1 = _b[0], res2 = _b[1]; + return res1 && res2; + })), operators.map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _b = __read(_a, 2), state = _b[0], _ = _b[1]; + return state; + })), operators.pluck('IdentityState'), operators.take(1)) + .subscribe((/** + * @param {?} state + * @return {?} + */ + function (state) { + _this.selected = state.selectedUser; + _this.selectedUserRoles = state.selectedUserRoles; + _this.openModal(); + })); + }; + /** + * @return {?} + */ + UsersComponent.prototype.save = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.form.valid) + return; + var roleNames = this.form.value.roleNames; + /** @type {?} */ + var mappedRoleNames = snq((/** + * @return {?} + */ + function () { return roleNames.filter((/** + * @param {?} role + * @return {?} + */ + function (role) { return !!role[Object.keys(role)[0]]; })).map((/** + * @param {?} role + * @return {?} + */ + function (role) { return Object.keys(role)[0]; })); }), []); + this.store + .dispatch(this.selected.id + ? new IdentityUpdateUser(__assign({}, this.form.value, { id: this.selected.id, roleNames: mappedRoleNames })) + : new IdentityAddUser(__assign({}, this.form.value, { roleNames: mappedRoleNames }))) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @param {?} userName + * @return {?} + */ + UsersComponent.prototype.delete = /** + * @param {?} id + * @param {?} userName + * @return {?} + */ + function (id, userName) { + var _this = this; + this.confirmationService + .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [userName], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + if (status === "confirm" /* confirm */) { + _this.store.dispatch(new IdentityDeleteUser(id)); + } + })); + }; + /** + * @param {?} data + * @return {?} + */ + UsersComponent.prototype.onPageChange = /** + * @param {?} data + * @return {?} + */ + function (data) { + this.pageQuery.skipCount = data.first; + this.pageQuery.maxResultCount = data.rows; + this.get(); + }; + /** + * @return {?} + */ + UsersComponent.prototype.get = /** + * @return {?} + */ + function () { + var _this = this; + this.loading = true; + this.store.dispatch(new IdentityGetUsers(this.pageQuery)).subscribe((/** + * @return {?} + */ + function () { return (_this.loading = false); })); + }; + UsersComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-users', + template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}\n
\n \n
\n
\n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n\n
\n \n \n
\n
\n
\n\n" + }] } + ]; + /** @nocollapse */ + UsersComponent.ctorParameters = function () { return [ + { type: ng_theme_shared.ConfirmationService }, + { type: ngBootstrap.NgbModal }, + { type: forms.FormBuilder }, + { type: store.Store } + ]; }; + UsersComponent.propDecorators = { + modalContent: [{ type: core.ViewChild, args: ['modalContent', { static: false },] }] + }; + __decorate([ + store.Select(IdentityState.getUsers), + __metadata("design:type", rxjs.Observable) + ], UsersComponent.prototype, "data$", void 0); + __decorate([ + store.Select(IdentityState.getUsersTotalCount), + __metadata("design:type", rxjs.Observable) + ], UsersComponent.prototype, "totalCount$", void 0); + return UsersComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var UserResolver = /** @class */ (function () { + function UserResolver(store) { + this.store = store; + } + /** + * @return {?} + */ + UserResolver.prototype.resolve = /** + * @return {?} + */ + function () { + /** @type {?} */ + var users = this.store.selectSnapshot(IdentityState.getUsers); + return users && users.length ? null : this.store.dispatch(new IdentityGetUsers()); + }; + UserResolver.decorators = [ + { type: core.Injectable } + ]; + /** @nocollapse */ + UserResolver.ctorParameters = function () { return [ + { type: store.Store } + ]; }; + return UserResolver; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ɵ0 = { requiredPolicy: 'AbpIdentity.Roles' }, ɵ1 = { requiredPolicy: 'AbpIdentity.Users' }; + /** @type {?} */ + var routes = [ + { path: '', redirectTo: 'roles', pathMatch: 'full' }, + { + path: 'roles', + component: ng_core.DynamicLayoutComponent, + canActivate: [ng_core.AuthGuard, ng_core.PermissionGuard], + data: ɵ0, + children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }], + }, + { + path: 'users', + component: ng_core.DynamicLayoutComponent, + canActivate: [ng_core.AuthGuard, ng_core.PermissionGuard], + data: ɵ1, + children: [ + { + path: '', + component: UsersComponent, + resolve: [RoleResolver, UserResolver], + }, + ], + }, + ]; + var IdentityRoutingModule = /** @class */ (function () { + function IdentityRoutingModule() { + } + IdentityRoutingModule.decorators = [ + { type: core.NgModule, args: [{ + imports: [router.RouterModule.forChild(routes)], + exports: [router.RouterModule], + providers: [RoleResolver, UserResolver], + },] } + ]; + return IdentityRoutingModule; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var IdentityModule = /** @class */ (function () { + function IdentityModule() { + } + IdentityModule.decorators = [ + { type: core.NgModule, args: [{ + declarations: [RolesComponent, UsersComponent], + imports: [ + store.NgxsModule.forFeature([IdentityState]), + ng_core.CoreModule, + IdentityRoutingModule, + ngBootstrap.NgbTabsetModule, + ng_theme_shared.ThemeSharedModule, + table.TableModule, + ngBootstrap.NgbDropdownModule, + ng_permissionManagement.PermissionManagementModule, + core$1.NgxValidateCoreModule, + ], + },] } + ]; + return IdentityModule; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var IDENTITY_ROUTES = (/** @type {?} */ ([ + { + name: 'Administration', + path: '', + order: 1, + wrapper: true, + }, + { + name: 'Identity', + path: 'identity', + order: 1, + parentName: 'Administration', + layout: "application" /* application */, + children: [ + { path: 'roles', name: 'Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' }, + { path: 'users', name: 'Users', order: 1, requiredPolicy: 'AbpIdentity.Users' }, + ], + }, + ])); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var Identity; + (function (Identity) { + /** + * @record + */ + function State() { } + Identity.State = State; + /** + * @record + */ + function RoleSaveRequest() { } + Identity.RoleSaveRequest = RoleSaveRequest; + /** + * @record + */ + function RoleItem() { } + Identity.RoleItem = RoleItem; + /** + * @record + */ + function UserItem() { } + Identity.UserItem = UserItem; + /** + * @record + */ + function User() { } + Identity.User = User; + /** + * @record + */ + function UserSaveRequest() { } + Identity.UserSaveRequest = UserSaveRequest; + })(Identity || (Identity = {})); + + exports.IDENTITY_ROUTES = IDENTITY_ROUTES; + exports.IdentityAddRole = IdentityAddRole; + exports.IdentityAddUser = IdentityAddUser; + exports.IdentityDeleteRole = IdentityDeleteRole; + exports.IdentityDeleteUser = IdentityDeleteUser; + exports.IdentityGetRoleById = IdentityGetRoleById; + exports.IdentityGetRoles = IdentityGetRoles; + exports.IdentityGetUserById = IdentityGetUserById; + exports.IdentityGetUserRoles = IdentityGetUserRoles; + exports.IdentityGetUsers = IdentityGetUsers; + exports.IdentityModule = IdentityModule; + exports.IdentityService = IdentityService; + exports.IdentityState = IdentityState; + exports.IdentityUpdateRole = IdentityUpdateRole; + exports.IdentityUpdateUser = IdentityUpdateUser; + exports.RoleResolver = RoleResolver; + exports.RolesComponent = RolesComponent; + exports.ɵb = UsersComponent; + exports.ɵc = IdentityRoutingModule; + exports.ɵd = UserResolver; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=abp-ng.identity.umd.js.map diff --git a/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.js.map b/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.js.map new file mode 100644 index 0000000000..03508b6e9f --- /dev/null +++ b/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.identity.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts","ng://@abp/ng.identity/lib/models/identity.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class IdentityGetRoles {\n static readonly type = '[Identity] Get Roles';\n}\n\nexport class IdentityGetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class IdentityDeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class IdentityAddRole {\n static readonly type = '[Identity] Add Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class IdentityUpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class IdentityGetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class IdentityGetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class IdentityDeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class IdentityAddUser {\n static readonly type = '[Identity] Add User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class IdentityUpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class IdentityGetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/role',\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/role/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/role/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n addRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/role',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/role/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/user',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/user/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/user/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/user/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n addUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/user',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n IdentityAddRole,\n IdentityAddUser,\n IdentityDeleteRole,\n IdentityDeleteUser,\n IdentityGetRoleById,\n IdentityGetRoles,\n IdentityGetUserById,\n IdentityGetUsers,\n IdentityUpdateRole,\n IdentityUpdateUser,\n IdentityGetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(IdentityGetRoles)\n getRoles({ patchState }: StateContext) {\n return this.identityService.getRoles().pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(IdentityGetRoleById)\n getRole({ patchState }: StateContext, { payload }: IdentityGetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(IdentityDeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: IdentityGetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new IdentityGetRoles())));\n }\n\n @Action(IdentityAddRole)\n addRole({ dispatch }: StateContext, { payload }: IdentityAddRole) {\n return this.identityService.addRole(payload).pipe(switchMap(() => dispatch(new IdentityGetRoles())));\n }\n\n @Action(IdentityUpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: IdentityUpdateRole) {\n return dispatch(new IdentityGetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new IdentityGetRoles())),\n );\n }\n\n @Action(IdentityGetUsers)\n getUsers({ patchState }: StateContext, { payload }: IdentityGetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(IdentityGetUserById)\n getUser({ patchState }: StateContext, { payload }: IdentityGetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(IdentityDeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: IdentityGetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new IdentityGetUsers())));\n }\n\n @Action(IdentityAddUser)\n addUser({ dispatch }: StateContext, { payload }: IdentityAddUser) {\n return this.identityService.addUser(payload).pipe(switchMap(() => dispatch(new IdentityGetUsers())));\n }\n\n @Action(IdentityUpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: IdentityUpdateUser) {\n return dispatch(new IdentityGetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new IdentityGetUsers())),\n );\n }\n\n @Action(IdentityGetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: IdentityGetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { IdentityState } from '../../states/identity.state';\nimport { Identity } from '../../models/identity';\nimport {\n IdentityUpdateRole,\n IdentityAddRole,\n IdentityDeleteRole,\n IdentityGetRoleById,\n} from '../../actions/identity.actions';\nimport { pluck } from 'rxjs/operators';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n roles$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n createForm() {\n this.form = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.modalService.open(this.modalContent);\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new IdentityGetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n\n this.store\n .dispatch(\n this.selected.id\n ? new IdentityUpdateRole({ ...this.form.value, id: this.selected.id })\n : new IdentityAddRole(this.form.value),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new IdentityDeleteRole(id));\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { IdentityGetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new IdentityGetRoles());\n }\n}\n","import { Component, TemplateRef, ViewChild, TrackByFunction, OnInit } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, combineLatest, Subject } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormBuilder, FormGroup, Validators, FormArray, AbstractControl } from '@angular/forms';\nimport { IdentityState } from '../../states/identity.state';\nimport { Identity } from '../../models/identity';\nimport {\n IdentityUpdateUser,\n IdentityAddUser,\n IdentityDeleteUser,\n IdentityGetUserById,\n IdentityGetUsers,\n} from '../../actions/identity.actions';\nimport { pluck, filter, map, take, debounceTime } from 'rxjs/operators';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport snq from 'snq';\nimport { IdentityGetUserRoles } from '../../actions/identity.actions';\nimport { validatePassword } from '@ngx-validate/core';\nimport { ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent implements OnInit {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n loading: boolean = false;\n\n search$ = new Subject();\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(\n private confirmationService: ConfirmationService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n ngOnInit() {\n this.search$.pipe(debounceTime(300)).subscribe(value => {\n this.pageQuery.filter = value;\n this.get();\n });\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n\n this.form = this.fb.group({\n password: [\n '',\n [\n Validators.required,\n Validators.maxLength(32),\n Validators.minLength(6),\n validatePassword(['small', 'capital', 'number', 'special']),\n ],\n ],\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n }\n\n openModal() {\n this.buildForm();\n this.modalService.open(this.modalContent);\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n combineLatest([this.store.dispatch(new IdentityGetUserById(id)), this.store.dispatch(new IdentityGetUserRoles(id))])\n .pipe(\n filter(([res1, res2]) => res1 && res2),\n map(([state, _]) => state),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new IdentityUpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new IdentityAddUser({ ...this.form.value, roleNames: mappedRoleNames }),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new IdentityDeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store.dispatch(new IdentityGetUsers(this.pageQuery)).subscribe(() => (this.loading = false));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { IdentityGetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new IdentityGetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n ],\n})\nexport class IdentityModule {}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = [\n {\n name: 'Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'Identity',\n path: 'identity',\n order: 1,\n parentName: 'Administration',\n layout: eLayoutType.application,\n children: [\n { path: 'roles', name: 'Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n] as ABP.FullRoute[];\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n"],"names":["Injectable","RestService","tap","switchMap","pluck","tslib_1.__decorate","Action","Selector","State","Validators","Component","ConfirmationService","NgbModal","FormBuilder","Store","ViewChild","Select","Observable","Subject","debounceTime","validatePassword","combineLatest","filter","map","take","DynamicLayoutComponent","AuthGuard","PermissionGuard","NgModule","RouterModule","NgxsModule","CoreModule","NgbTabsetModule","ThemeSharedModule","TableModule","NgbDropdownModule","PermissionManagementModule","NgxValidateCoreModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.min.js b/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.min.js new file mode 100644 index 0000000000..822801c96f --- /dev/null +++ b/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@abp/ng.core"),require("@angular/core"),require("@ngxs/store"),require("rxjs"),require("@ng-bootstrap/ng-bootstrap"),require("@angular/forms"),require("rxjs/operators"),require("@abp/ng.theme.shared"),require("@angular/router"),require("snq"),require("@ngx-validate/core"),require("@abp/ng.permission-management"),require("primeng/table")):"function"==typeof define&&define.amd?define("@abp/ng.identity",["exports","@abp/ng.core","@angular/core","@ngxs/store","rxjs","@ng-bootstrap/ng-bootstrap","@angular/forms","rxjs/operators","@abp/ng.theme.shared","@angular/router","snq","@ngx-validate/core","@abp/ng.permission-management","primeng/table"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng.identity={}),e.ng_core,e.ng.core,e.store,e.rxjs,e.ngBootstrap,e.ng.forms,e.rxjs.operators,e.ng_theme_shared,e.ng.router,e.snq,e.core$1,e.ng_permissionManagement,e.table)}(this,function(e,t,n,o,r,i,a,s,l,d,p,c,u,m){"use strict";p=p&&p.hasOwnProperty("default")?p.default:p;var b=function(){return(b=Object.assign||function(e){for(var t,n=1,o=arguments.length;n=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function f(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function h(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,r,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return a}var g,v=function(){function e(){}return e.type="[Identity] Get Roles",e}(),I=function(){function e(e){this.payload=e}return e.type="[Identity] Get Role By Id",e}(),A=function(){function e(e){this.payload=e}return e.type="[Identity] Delete Role",e}(),R=function(){function e(e){this.payload=e}return e.type="[Identity] Add Role",e}(),w=function(){function e(e){this.payload=e}return e.type="[Identity] Update Role",e}(),U=function(){function e(e){this.payload=e}return e.type="[Identity] Get Users",e}(),S=function(){function e(e){this.payload=e}return e.type="[Identity] Get User By Id",e}(),L=function(){function e(e){this.payload=e}return e.type="[Identity] Delete User",e}(),N=function(){function e(e){this.payload=e}return e.type="[Identity] Add User",e}(),C=function(){function e(e){this.payload=e}return e.type="[Identity] Update User",e}(),x=function(){function e(e){this.payload=e}return e.type="[Identity] Get User Roles",e}(),k=function(){function e(e){this.rest=e}return e.prototype.getRoles=function(){return this.rest.request({method:"GET",url:"/api/identity/role"})},e.prototype.getRoleById=function(e){var t={method:"GET",url:"/api/identity/role/"+e};return this.rest.request(t)},e.prototype.deleteRole=function(e){var t={method:"DELETE",url:"/api/identity/role/"+e};return this.rest.request(t)},e.prototype.addRole=function(e){var t={method:"POST",url:"/api/identity/role",body:e};return this.rest.request(t)},e.prototype.updateRole=function(e){var t="/api/identity/role/"+e.id;delete e.id;var n={method:"PUT",url:t,body:e};return this.rest.request(n)},e.prototype.getUsers=function(e){void 0===e&&(e={});var t={method:"GET",url:"/api/identity/user",params:e};return this.rest.request(t)},e.prototype.getUserById=function(e){var t={method:"GET",url:"/api/identity/user/"+e};return this.rest.request(t)},e.prototype.getUserRoles=function(e){var t={method:"GET",url:"/api/identity/user/"+e+"/roles"};return this.rest.request(t)},e.prototype.deleteUser=function(e){var t={method:"DELETE",url:"/api/identity/user/"+e};return this.rest.request(t)},e.prototype.addUser=function(e){var t={method:"POST",url:"/api/identity/user",body:e};return this.rest.request(t)},e.prototype.updateUser=function(e){var t="/identity/users/"+e.id;delete e.id;var n={method:"PUT",url:t,body:e};return this.rest.request(n)},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:t.RestService}]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(t.RestService))},token:e,providedIn:"root"}),e}(),P=function(){function e(e){this.identityService=e}return e.getRoles=function(e){return e.roles.items},e.getRolesTotalCount=function(e){return e.roles.totalCount},e.getUsers=function(e){return e.users.items},e.getUsersTotalCount=function(e){return e.users.totalCount},e.prototype.getRoles=function(e){var t=e.patchState;return this.identityService.getRoles().pipe(s.tap(function(e){return t({roles:e})}))},e.prototype.getRole=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getRoleById(o).pipe(s.tap(function(e){return n({selectedRole:e})}))},e.prototype.deleteRole=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.deleteRole(o).pipe(s.switchMap(function(){return n(new v)}))},e.prototype.addRole=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.addRole(o).pipe(s.switchMap(function(){return n(new v)}))},e.prototype.updateRole=function(e,t){var n=this,o=e.getState,r=e.dispatch,i=t.payload;return r(new I(i.id)).pipe(s.switchMap(function(){return n.identityService.updateRole(b({},o().selectedRole,i))}),s.switchMap(function(){return r(new v)}))},e.prototype.getUsers=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getUsers(o).pipe(s.tap(function(e){return n({users:e})}))},e.prototype.getUser=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getUserById(o).pipe(s.tap(function(e){return n({selectedUser:e})}))},e.prototype.deleteUser=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.deleteUser(o).pipe(s.switchMap(function(){return n(new U)}))},e.prototype.addUser=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.addUser(o).pipe(s.switchMap(function(){return n(new U)}))},e.prototype.updateUser=function(e,t){var n=this,o=e.getState,r=e.dispatch,i=t.payload;return r(new S(i.id)).pipe(s.switchMap(function(){return n.identityService.updateUser(b({},o().selectedUser,i))}),s.switchMap(function(){return r(new U)}))},e.prototype.getUserRoles=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getUserRoles(o).pipe(s.pluck("items"),s.tap(function(e){return n({selectedUserRoles:e})}))},y([o.Action(v),f("design:type",Function),f("design:paramtypes",[Object]),f("design:returntype",void 0)],e.prototype,"getRoles",null),y([o.Action(I),f("design:type",Function),f("design:paramtypes",[Object,I]),f("design:returntype",void 0)],e.prototype,"getRole",null),y([o.Action(A),f("design:type",Function),f("design:paramtypes",[Object,I]),f("design:returntype",void 0)],e.prototype,"deleteRole",null),y([o.Action(R),f("design:type",Function),f("design:paramtypes",[Object,R]),f("design:returntype",void 0)],e.prototype,"addRole",null),y([o.Action(w),f("design:type",Function),f("design:paramtypes",[Object,w]),f("design:returntype",void 0)],e.prototype,"updateRole",null),y([o.Action(U),f("design:type",Function),f("design:paramtypes",[Object,U]),f("design:returntype",void 0)],e.prototype,"getUsers",null),y([o.Action(S),f("design:type",Function),f("design:paramtypes",[Object,S]),f("design:returntype",void 0)],e.prototype,"getUser",null),y([o.Action(L),f("design:type",Function),f("design:paramtypes",[Object,S]),f("design:returntype",void 0)],e.prototype,"deleteUser",null),y([o.Action(N),f("design:type",Function),f("design:paramtypes",[Object,N]),f("design:returntype",void 0)],e.prototype,"addUser",null),y([o.Action(C),f("design:type",Function),f("design:paramtypes",[Object,C]),f("design:returntype",void 0)],e.prototype,"updateUser",null),y([o.Action(x),f("design:type",Function),f("design:paramtypes",[Object,x]),f("design:returntype",void 0)],e.prototype,"getUserRoles",null),y([o.Selector(),f("design:type",Function),f("design:paramtypes",[Object]),f("design:returntype",Array)],e,"getRoles",null),y([o.Selector(),f("design:type",Function),f("design:paramtypes",[Object]),f("design:returntype",Number)],e,"getRolesTotalCount",null),y([o.Selector(),f("design:type",Function),f("design:paramtypes",[Object]),f("design:returntype",Array)],e,"getUsers",null),y([o.Selector(),f("design:type",Function),f("design:paramtypes",[Object]),f("design:returntype",Number)],e,"getUsersTotalCount",null),e=y([o.State({name:"IdentityState",defaults:{roles:{},selectedRole:{},users:{},selectedUser:{}}}),f("design:paramtypes",[k])],e)}(),z=function(){function e(e,t,n,o){this.confirmationService=e,this.modalService=t,this.fb=n,this.store=o,this.visiblePermissions=!1}return e.prototype.createForm=function(){this.form=this.fb.group({name:[this.selected.name||"",[a.Validators.required,a.Validators.maxLength(256)]],isDefault:[this.selected.isDefault||!1],isPublic:[this.selected.isPublic||!1]})},e.prototype.openModal=function(){this.createForm(),this.modalService.open(this.modalContent)},e.prototype.onAdd=function(){this.selected={},this.openModal()},e.prototype.onEdit=function(e){var t=this;this.store.dispatch(new I(e)).pipe(s.pluck("IdentityState","selectedRole")).subscribe(function(e){t.selected=e,t.openModal()})},e.prototype.save=function(){var e=this;this.form.valid&&this.store.dispatch(this.selected.id?new w(b({},this.form.value,{id:this.selected.id})):new R(this.form.value)).subscribe(function(){return e.modalService.dismissAll()})},e.prototype.delete=function(e,t){var n=this;this.confirmationService.warn("AbpIdentity::RoleDeletionConfirmationMessage","AbpIdentity::AreYouSure",{messageLocalizationParams:[t]}).subscribe(function(t){"confirm"===t&&n.store.dispatch(new A(e))})},e.decorators=[{type:n.Component,args:[{selector:"abp-roles",template:'
\n
\n
\n
\n
{{ \'AbpIdentity::Roles\' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n {{ \'AbpIdentity::RoleName\' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n \n
\n \n\n \n
\n
\n\n\n'}]}],e.ctorParameters=function(){return[{type:l.ConfirmationService},{type:i.NgbModal},{type:a.FormBuilder},{type:o.Store}]},e.propDecorators={modalContent:[{type:n.ViewChild,args:["modalContent",{static:!1}]}]},y([o.Select(P.getRoles),f("design:type",r.Observable)],e.prototype,"roles$",void 0),e}(),j=function(){function e(e){this.store=e}return e.prototype.resolve=function(){var e=this.store.selectSnapshot(P.getRoles);return e&&e.length?null:this.store.dispatch(new v)},e.decorators=[{type:n.Injectable}],e.ctorParameters=function(){return[{type:o.Store}]},e}(),D=function(){function e(e,t,n,o){this.confirmationService=e,this.modalService=t,this.fb=n,this.store=o,this.visiblePermissions=!1,this.pageQuery={sorting:"userName"},this.loading=!1,this.search$=new r.Subject,this.trackByFn=function(e,t){return Object.keys(t)[0]||e}}return Object.defineProperty(e.prototype,"roleGroups",{get:function(){var e=this;return p(function(){return e.form.get("roleNames").controls},[])},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.search$.pipe(s.debounceTime(300)).subscribe(function(t){e.pageQuery.filter=t,e.get()})},e.prototype.buildForm=function(){var e=this;this.roles=this.store.selectSnapshot(P.getRoles),this.form=this.fb.group({password:["",[a.Validators.required,a.Validators.maxLength(32),a.Validators.minLength(6),c.validatePassword(["small","capital","number","special"])]],userName:[this.selected.userName||"",[a.Validators.required,a.Validators.maxLength(256)]],email:[this.selected.email||"",[a.Validators.required,a.Validators.email,a.Validators.maxLength(256)]],name:[this.selected.name||"",[a.Validators.maxLength(64)]],surname:[this.selected.surname||"",[a.Validators.maxLength(64)]],phoneNumber:[this.selected.phoneNumber||"",[a.Validators.maxLength(16)]],lockoutEnabled:[this.selected.twoFactorEnabled||!this.selected.id],twoFactorEnabled:[this.selected.twoFactorEnabled||!this.selected.id],roleNames:this.fb.array(this.roles.map(function(t){var n;return e.fb.group(((n={})[t.name]=[!!p(function(){return e.selectedUserRoles.find(function(e){return e.id===t.id})})],n))}))})},e.prototype.openModal=function(){this.buildForm(),this.modalService.open(this.modalContent)},e.prototype.onAdd=function(){this.selected={},this.selectedUserRoles=[],this.openModal()},e.prototype.onEdit=function(e){var t=this;r.combineLatest([this.store.dispatch(new S(e)),this.store.dispatch(new x(e))]).pipe(s.filter(function(e){var t=h(e,2),n=t[0],o=t[1];return n&&o}),s.map(function(e){var t=h(e,2),n=t[0];t[1];return n}),s.pluck("IdentityState"),s.take(1)).subscribe(function(e){t.selected=e.selectedUser,t.selectedUserRoles=e.selectedUserRoles,t.openModal()})},e.prototype.save=function(){var e=this;if(this.form.valid){var t=this.form.value.roleNames,n=p(function(){return t.filter(function(e){return!!e[Object.keys(e)[0]]}).map(function(e){return Object.keys(e)[0]})},[]);this.store.dispatch(this.selected.id?new C(b({},this.form.value,{id:this.selected.id,roleNames:n})):new N(b({},this.form.value,{roleNames:n}))).subscribe(function(){return e.modalService.dismissAll()})}},e.prototype.delete=function(e,t){var n=this;this.confirmationService.warn("AbpIdentity::UserDeletionConfirmationMessage","AbpIdentity::AreYouSure",{messageLocalizationParams:[t]}).subscribe(function(t){"confirm"===t&&n.store.dispatch(new L(e))})},e.prototype.onPageChange=function(e){this.pageQuery.skipCount=e.first,this.pageQuery.maxResultCount=e.rows,this.get()},e.prototype.get=function(){var e=this;this.loading=!0,this.store.dispatch(new U(this.pageQuery)).subscribe(function(){return e.loading=!1})},e.decorators=[{type:n.Component,args:[{selector:"abp-users",template:'
\n
\n
\n
\n
{{ \'AbpIdentity::Users\' | abpLocalization }}
\n
\n
\n \n {{ \'AbpIdentity::NewUser\' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n {{ \'AbpIdentity::UserName\' | abpLocalization }}\n {{ \'AbpIdentity::EmailAddress\' | abpLocalization }}\n {{ \'AbpIdentity::PhoneNumber\' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n
\n \n \n \n \n \n\n \n
\n
\n\n'}]}],e.ctorParameters=function(){return[{type:l.ConfirmationService},{type:i.NgbModal},{type:a.FormBuilder},{type:o.Store}]},e.propDecorators={modalContent:[{type:n.ViewChild,args:["modalContent",{static:!1}]}]},y([o.Select(P.getUsers),f("design:type",r.Observable)],e.prototype,"data$",void 0),y([o.Select(P.getUsersTotalCount),f("design:type",r.Observable)],e.prototype,"totalCount$",void 0),e}(),q=function(){function e(e){this.store=e}return e.prototype.resolve=function(){var e=this.store.selectSnapshot(P.getUsers);return e&&e.length?null:this.store.dispatch(new U)},e.decorators=[{type:n.Injectable}],e.ctorParameters=function(){return[{type:o.Store}]},e}(),M=[{path:"",redirectTo:"roles",pathMatch:"full"},{path:"roles",component:t.DynamicLayoutComponent,canActivate:[t.AuthGuard,t.PermissionGuard],data:{requiredPolicy:"AbpIdentity.Roles"},children:[{path:"",component:z,resolve:[j]}]},{path:"users",component:t.DynamicLayoutComponent,canActivate:[t.AuthGuard,t.PermissionGuard],data:{requiredPolicy:"AbpIdentity.Users"},children:[{path:"",component:D,resolve:[j,q]}]}],O=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{imports:[d.RouterModule.forChild(M)],exports:[d.RouterModule],providers:[j,q]}]}],e}(),T=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{declarations:[z,D],imports:[o.NgxsModule.forFeature([P]),t.CoreModule,O,i.NgbTabsetModule,l.ThemeSharedModule,m.TableModule,i.NgbDropdownModule,u.PermissionManagementModule,c.NgxValidateCoreModule]}]}],e}();!function(e){e.State=function(){},e.RoleSaveRequest=function(){},e.RoleItem=function(){},e.UserItem=function(){},e.User=function(){},e.UserSaveRequest=function(){}}(g||(g={})),e.IDENTITY_ROUTES=[{name:"Administration",path:"",order:1,wrapper:!0},{name:"Identity",path:"identity",order:1,parentName:"Administration",layout:"application",children:[{path:"roles",name:"Roles",order:2,requiredPolicy:"AbpIdentity.Roles"},{path:"users",name:"Users",order:1,requiredPolicy:"AbpIdentity.Users"}]}],e.IdentityAddRole=R,e.IdentityAddUser=N,e.IdentityDeleteRole=A,e.IdentityDeleteUser=L,e.IdentityGetRoleById=I,e.IdentityGetRoles=v,e.IdentityGetUserById=S,e.IdentityGetUserRoles=x,e.IdentityGetUsers=U,e.IdentityModule=T,e.IdentityService=k,e.IdentityState=P,e.IdentityUpdateRole=w,e.IdentityUpdateUser=C,e.RoleResolver=j,e.RolesComponent=z,e.ɵb=D,e.ɵc=O,e.ɵd=q,Object.defineProperty(e,"__esModule",{value:!0})}); +//# sourceMappingURL=abp-ng.identity.umd.min.js.map \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.min.js.map b/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.min.js.map new file mode 100644 index 0000000000..f4940b46aa --- /dev/null +++ b/npm/packs/ng/dist/identity/bundles/abp-ng.identity.umd.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/models/identity.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","Identity","IdentityGetRoles","type","IdentityGetRoleById","payload","IdentityDeleteRole","IdentityAddRole","IdentityUpdateRole","IdentityGetUsers","IdentityGetUserById","IdentityDeleteUser","IdentityAddUser","IdentityUpdateUser","IdentityGetUserRoles","IdentityService","rest","getRoles","request","method","url","getRoleById","id","deleteRole","addRole","body","updateRole","getUsers","params","getUserById","getUserRoles","deleteUser","addUser","updateUser","Injectable","args","providedIn","RestService","IdentityState","identityService","_a","roles","items","getRolesTotalCount","totalCount","users","getUsersTotalCount","patchState","pipe","tap","getRole","_b","selectedRole","dispatch","switchMap","_this","getState","getUser","selectedUser","pluck","selectedUserRoles","tslib_1.__decorate","Action","Selector","State","name","defaults","RolesComponent","confirmationService","modalService","fb","store","visiblePermissions","createForm","form","group","selected","Validators","required","maxLength","isDefault","isPublic","openModal","open","modalContent","onAdd","onEdit","subscribe","save","valid","dismissAll","delete","warn","messageLocalizationParams","status","Component","selector","template","ConfirmationService","NgbModal","FormBuilder","Store","ViewChild","static","Select","Observable","RoleResolver","resolve","selectSnapshot","UsersComponent","pageQuery","sorting","loading","search$","Subject","trackByFn","index","item","keys","snq","get","ngOnInit","debounceTime","filter","buildForm","password","minLength","validatePassword","userName","email","surname","phoneNumber","lockoutEnabled","twoFactorEnabled","roleNames","array","map","role","find","userRole","combineLatest","res1","res2","state","take","mappedRoleNames","onPageChange","data","skipCount","first","maxResultCount","rows","UserResolver","routes","path","redirectTo","pathMatch","component","DynamicLayoutComponent","canActivate","AuthGuard","PermissionGuard","requiredPolicy","children","IdentityRoutingModule","NgModule","imports","RouterModule","forChild","exports","providers","IdentityModule","declarations","NgxsModule","forFeature","CoreModule","NgbTabsetModule","ThemeSharedModule","TableModule","NgbDropdownModule","PermissionManagementModule","NgxValidateCoreModule","order","wrapper","parentName","layout"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class IdentityGetRoles {\n static readonly type = '[Identity] Get Roles';\n}\n\nexport class IdentityGetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class IdentityDeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class IdentityAddRole {\n static readonly type = '[Identity] Add Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class IdentityUpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class IdentityGetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class IdentityGetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class IdentityDeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class IdentityAddUser {\n static readonly type = '[Identity] Add User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class IdentityUpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class IdentityGetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/role',\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/role/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/role/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n addRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/role',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/role/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/user',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/user/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/user/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/user/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n addUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/user',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n IdentityAddRole,\n IdentityAddUser,\n IdentityDeleteRole,\n IdentityDeleteUser,\n IdentityGetRoleById,\n IdentityGetRoles,\n IdentityGetUserById,\n IdentityGetUsers,\n IdentityUpdateRole,\n IdentityUpdateUser,\n IdentityGetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(IdentityGetRoles)\n getRoles({ patchState }: StateContext) {\n return this.identityService.getRoles().pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(IdentityGetRoleById)\n getRole({ patchState }: StateContext, { payload }: IdentityGetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(IdentityDeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: IdentityGetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new IdentityGetRoles())));\n }\n\n @Action(IdentityAddRole)\n addRole({ dispatch }: StateContext, { payload }: IdentityAddRole) {\n return this.identityService.addRole(payload).pipe(switchMap(() => dispatch(new IdentityGetRoles())));\n }\n\n @Action(IdentityUpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: IdentityUpdateRole) {\n return dispatch(new IdentityGetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new IdentityGetRoles())),\n );\n }\n\n @Action(IdentityGetUsers)\n getUsers({ patchState }: StateContext, { payload }: IdentityGetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(IdentityGetUserById)\n getUser({ patchState }: StateContext, { payload }: IdentityGetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(IdentityDeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: IdentityGetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new IdentityGetUsers())));\n }\n\n @Action(IdentityAddUser)\n addUser({ dispatch }: StateContext, { payload }: IdentityAddUser) {\n return this.identityService.addUser(payload).pipe(switchMap(() => dispatch(new IdentityGetUsers())));\n }\n\n @Action(IdentityUpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: IdentityUpdateUser) {\n return dispatch(new IdentityGetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new IdentityGetUsers())),\n );\n }\n\n @Action(IdentityGetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: IdentityGetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { IdentityState } from '../../states/identity.state';\nimport { Identity } from '../../models/identity';\nimport {\n IdentityUpdateRole,\n IdentityAddRole,\n IdentityDeleteRole,\n IdentityGetRoleById,\n} from '../../actions/identity.actions';\nimport { pluck } from 'rxjs/operators';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n roles$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n createForm() {\n this.form = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.modalService.open(this.modalContent);\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new IdentityGetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n\n this.store\n .dispatch(\n this.selected.id\n ? new IdentityUpdateRole({ ...this.form.value, id: this.selected.id })\n : new IdentityAddRole(this.form.value),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new IdentityDeleteRole(id));\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { IdentityGetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new IdentityGetRoles());\n }\n}\n","import { Component, TemplateRef, ViewChild, TrackByFunction, OnInit } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, combineLatest, Subject } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormBuilder, FormGroup, Validators, FormArray, AbstractControl } from '@angular/forms';\nimport { IdentityState } from '../../states/identity.state';\nimport { Identity } from '../../models/identity';\nimport {\n IdentityUpdateUser,\n IdentityAddUser,\n IdentityDeleteUser,\n IdentityGetUserById,\n IdentityGetUsers,\n} from '../../actions/identity.actions';\nimport { pluck, filter, map, take, debounceTime } from 'rxjs/operators';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport snq from 'snq';\nimport { IdentityGetUserRoles } from '../../actions/identity.actions';\nimport { validatePassword } from '@ngx-validate/core';\nimport { ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent implements OnInit {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n loading: boolean = false;\n\n search$ = new Subject();\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(\n private confirmationService: ConfirmationService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n ngOnInit() {\n this.search$.pipe(debounceTime(300)).subscribe(value => {\n this.pageQuery.filter = value;\n this.get();\n });\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n\n this.form = this.fb.group({\n password: [\n '',\n [\n Validators.required,\n Validators.maxLength(32),\n Validators.minLength(6),\n validatePassword(['small', 'capital', 'number', 'special']),\n ],\n ],\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n }\n\n openModal() {\n this.buildForm();\n this.modalService.open(this.modalContent);\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n combineLatest([this.store.dispatch(new IdentityGetUserById(id)), this.store.dispatch(new IdentityGetUserRoles(id))])\n .pipe(\n filter(([res1, res2]) => res1 && res2),\n map(([state, _]) => state),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new IdentityUpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new IdentityAddUser({ ...this.form.value, roleNames: mappedRoleNames }),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new IdentityDeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store.dispatch(new IdentityGetUsers(this.pageQuery)).subscribe(() => (this.loading = false));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { IdentityGetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new IdentityGetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n ],\n})\nexport class IdentityModule {}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = [\n {\n name: 'Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'Identity',\n path: 'identity',\n order: 1,\n parentName: 'Administration',\n layout: eLayoutType.application,\n children: [\n { path: 'roles', name: 'Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n] as ABP.FullRoute[];\n"]} \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/abp-ng.identity.js b/npm/packs/ng/dist/identity/esm2015/abp-ng.identity.js new file mode 100644 index 0000000000..ae772c9508 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/abp-ng.identity.js @@ -0,0 +1,12 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { IdentityModule, IdentityGetRoles, IdentityGetRoleById, IdentityDeleteRole, IdentityAddRole, IdentityUpdateRole, IdentityGetUsers, IdentityGetUserById, IdentityDeleteUser, IdentityAddUser, IdentityUpdateUser, IdentityGetUserRoles, RolesComponent, IDENTITY_ROUTES, RoleResolver, IdentityService, IdentityState } from './public-api'; +export { UsersComponent as ɵb } from './lib/components/users/users.component'; +export { IdentityRoutingModule as ɵc } from './lib/identity-routing.module'; +export { UserResolver as ɵd } from './lib/resolvers/users.resolver'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmlkZW50aXR5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImFicC1uZy5pZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb1VBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTFFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7VXNlcnNDb21wb25lbnQgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudCc7XG5leHBvcnQge0lkZW50aXR5Um91dGluZ01vZHVsZSBhcyDJtWN9IGZyb20gJy4vbGliL2lkZW50aXR5LXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7SWRlbnRpdHkgYXMgybVhfSBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0IHtVc2VyUmVzb2x2ZXIgYXMgybVkfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdXNlcnMucmVzb2x2ZXInOyJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/lib/actions/identity.actions.js b/npm/packs/ng/dist/identity/esm2015/lib/actions/identity.actions.js new file mode 100644 index 0000000000..240cdab5a3 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/lib/actions/identity.actions.js @@ -0,0 +1,162 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export class IdentityGetRoles { +} +IdentityGetRoles.type = '[Identity] Get Roles'; +if (false) { + /** @type {?} */ + IdentityGetRoles.type; +} +export class IdentityGetRoleById { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityGetRoleById.type = '[Identity] Get Role By Id'; +if (false) { + /** @type {?} */ + IdentityGetRoleById.type; + /** @type {?} */ + IdentityGetRoleById.prototype.payload; +} +export class IdentityDeleteRole { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityDeleteRole.type = '[Identity] Delete Role'; +if (false) { + /** @type {?} */ + IdentityDeleteRole.type; + /** @type {?} */ + IdentityDeleteRole.prototype.payload; +} +export class IdentityAddRole { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityAddRole.type = '[Identity] Add Role'; +if (false) { + /** @type {?} */ + IdentityAddRole.type; + /** @type {?} */ + IdentityAddRole.prototype.payload; +} +export class IdentityUpdateRole { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityUpdateRole.type = '[Identity] Update Role'; +if (false) { + /** @type {?} */ + IdentityUpdateRole.type; + /** @type {?} */ + IdentityUpdateRole.prototype.payload; +} +export class IdentityGetUsers { + /** + * @param {?=} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityGetUsers.type = '[Identity] Get Users'; +if (false) { + /** @type {?} */ + IdentityGetUsers.type; + /** @type {?} */ + IdentityGetUsers.prototype.payload; +} +export class IdentityGetUserById { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityGetUserById.type = '[Identity] Get User By Id'; +if (false) { + /** @type {?} */ + IdentityGetUserById.type; + /** @type {?} */ + IdentityGetUserById.prototype.payload; +} +export class IdentityDeleteUser { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityDeleteUser.type = '[Identity] Delete User'; +if (false) { + /** @type {?} */ + IdentityDeleteUser.type; + /** @type {?} */ + IdentityDeleteUser.prototype.payload; +} +export class IdentityAddUser { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityAddUser.type = '[Identity] Add User'; +if (false) { + /** @type {?} */ + IdentityAddUser.type; + /** @type {?} */ + IdentityAddUser.prototype.payload; +} +export class IdentityUpdateUser { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityUpdateUser.type = '[Identity] Update User'; +if (false) { + /** @type {?} */ + IdentityUpdateUser.type; + /** @type {?} */ + IdentityUpdateUser.prototype.payload; +} +export class IdentityGetUserRoles { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityGetUserRoles.type = '[Identity] Get User Roles'; +if (false) { + /** @type {?} */ + IdentityGetUserRoles.type; + /** @type {?} */ + IdentityGetUserRoles.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuaWRlbnRpdHkvIiwic291cmNlcyI6WyJsaWIvYWN0aW9ucy9pZGVudGl0eS5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxNQUFNLE9BQU8sZ0JBQWdCOztBQUNYLHFCQUFJLEdBQUcsc0JBQXNCLENBQUM7OztJQUE5QyxzQkFBOEM7O0FBR2hELE1BQU0sT0FBTyxtQkFBbUI7Ozs7SUFFOUIsWUFBbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDOztBQUR0Qix3QkFBSSxHQUFHLDJCQUEyQixDQUFDOzs7SUFBbkQseUJBQW1EOztJQUN2QyxzQ0FBc0I7O0FBR3BDLE1BQU0sT0FBTyxrQkFBa0I7Ozs7SUFFN0IsWUFBbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDOztBQUR0Qix1QkFBSSxHQUFHLHdCQUF3QixDQUFDOzs7SUFBaEQsd0JBQWdEOztJQUNwQyxxQ0FBc0I7O0FBR3BDLE1BQU0sT0FBTyxlQUFlOzs7O0lBRTFCLFlBQW1CLE9BQWlDO1FBQWpDLFlBQU8sR0FBUCxPQUFPLENBQTBCO0lBQUcsQ0FBQzs7QUFEeEMsb0JBQUksR0FBRyxxQkFBcUIsQ0FBQzs7O0lBQTdDLHFCQUE2Qzs7SUFDakMsa0NBQXdDOztBQUd0RCxNQUFNLE9BQU8sa0JBQWtCOzs7O0lBRTdCLFlBQW1CLE9BQTBCO1FBQTFCLFlBQU8sR0FBUCxPQUFPLENBQW1CO0lBQUcsQ0FBQzs7QUFEakMsdUJBQUksR0FBRyx3QkFBd0IsQ0FBQzs7O0lBQWhELHdCQUFnRDs7SUFDcEMscUNBQWlDOztBQUcvQyxNQUFNLE9BQU8sZ0JBQWdCOzs7O0lBRTNCLFlBQW1CLE9BQTZCO1FBQTdCLFlBQU8sR0FBUCxPQUFPLENBQXNCO0lBQUcsQ0FBQzs7QUFEcEMscUJBQUksR0FBRyxzQkFBc0IsQ0FBQzs7O0lBQTlDLHNCQUE4Qzs7SUFDbEMsbUNBQW9DOztBQUdsRCxNQUFNLE9BQU8sbUJBQW1COzs7O0lBRTlCLFlBQW1CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQUcsQ0FBQzs7QUFEdEIsd0JBQUksR0FBRywyQkFBMkIsQ0FBQzs7O0lBQW5ELHlCQUFtRDs7SUFDdkMsc0NBQXNCOztBQUdwQyxNQUFNLE9BQU8sa0JBQWtCOzs7O0lBRTdCLFlBQW1CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQUcsQ0FBQzs7QUFEdEIsdUJBQUksR0FBRyx3QkFBd0IsQ0FBQzs7O0lBQWhELHdCQUFnRDs7SUFDcEMscUNBQXNCOztBQUdwQyxNQUFNLE9BQU8sZUFBZTs7OztJQUUxQixZQUFtQixPQUFpQztRQUFqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtJQUFHLENBQUM7O0FBRHhDLG9CQUFJLEdBQUcscUJBQXFCLENBQUM7OztJQUE3QyxxQkFBNkM7O0lBQ2pDLGtDQUF3Qzs7QUFHdEQsTUFBTSxPQUFPLGtCQUFrQjs7OztJQUU3QixZQUFtQixPQUFrRDtRQUFsRCxZQUFPLEdBQVAsT0FBTyxDQUEyQztJQUFHLENBQUM7O0FBRHpELHVCQUFJLEdBQUcsd0JBQXdCLENBQUM7OztJQUFoRCx3QkFBZ0Q7O0lBQ3BDLHFDQUF5RDs7QUFHdkUsTUFBTSxPQUFPLG9CQUFvQjs7OztJQUUvQixZQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7O0FBRHRCLHlCQUFJLEdBQUcsMkJBQTJCLENBQUM7OztJQUFuRCwwQkFBbUQ7O0lBQ3ZDLHVDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkZW50aXR5IH0gZnJvbSAnLi4vbW9kZWxzL2lkZW50aXR5JztcbmltcG9ydCB7IEFCUCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBJZGVudGl0eUdldFJvbGVzIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0lkZW50aXR5XSBHZXQgUm9sZXMnO1xufVxuXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlHZXRSb2xlQnlJZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tJZGVudGl0eV0gR2V0IFJvbGUgQnkgSWQnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogc3RyaW5nKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlEZWxldGVSb2xlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0lkZW50aXR5XSBEZWxldGUgUm9sZSc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBJZGVudGl0eUFkZFJvbGUge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbSWRlbnRpdHldIEFkZCBSb2xlJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IElkZW50aXR5LlJvbGVTYXZlUmVxdWVzdCkge31cbn1cblxuZXhwb3J0IGNsYXNzIElkZW50aXR5VXBkYXRlUm9sZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tJZGVudGl0eV0gVXBkYXRlIFJvbGUnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogSWRlbnRpdHkuUm9sZUl0ZW0pIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBJZGVudGl0eUdldFVzZXJzIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0lkZW50aXR5XSBHZXQgVXNlcnMnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZD86IEFCUC5QYWdlUXVlcnlQYXJhbXMpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBJZGVudGl0eUdldFVzZXJCeUlkIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0lkZW50aXR5XSBHZXQgVXNlciBCeSBJZCc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBJZGVudGl0eURlbGV0ZVVzZXIge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbSWRlbnRpdHldIERlbGV0ZSBVc2VyJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHN0cmluZykge31cbn1cblxuZXhwb3J0IGNsYXNzIElkZW50aXR5QWRkVXNlciB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tJZGVudGl0eV0gQWRkIFVzZXInO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogSWRlbnRpdHkuVXNlclNhdmVSZXF1ZXN0KSB7fVxufVxuXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlVcGRhdGVVc2VyIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0lkZW50aXR5XSBVcGRhdGUgVXNlcic7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBJZGVudGl0eS5Vc2VyU2F2ZVJlcXVlc3QgJiB7IGlkOiBzdHJpbmcgfSkge31cbn1cblxuZXhwb3J0IGNsYXNzIElkZW50aXR5R2V0VXNlclJvbGVzIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0lkZW50aXR5XSBHZXQgVXNlciBSb2xlcyc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcpIHt9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/lib/components/roles/roles.component.js b/npm/packs/ng/dist/identity/esm2015/lib/components/roles/roles.component.js new file mode 100644 index 0000000000..6c3de70a3b --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/lib/components/roles/roles.component.js @@ -0,0 +1,160 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { Select, Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { FormBuilder, Validators } from '@angular/forms'; +import { IdentityState } from '../../states/identity.state'; +import { IdentityUpdateRole, IdentityAddRole, IdentityDeleteRole, IdentityGetRoleById, } from '../../actions/identity.actions'; +import { pluck } from 'rxjs/operators'; +import { ConfirmationService } from '@abp/ng.theme.shared'; +export class RolesComponent { + /** + * @param {?} confirmationService + * @param {?} modalService + * @param {?} fb + * @param {?} store + */ + constructor(confirmationService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + this.visiblePermissions = false; + } + /** + * @return {?} + */ + createForm() { + this.form = this.fb.group({ + name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + isDefault: [this.selected.isDefault || false], + isPublic: [this.selected.isPublic || false], + }); + } + /** + * @return {?} + */ + openModal() { + this.createForm(); + this.modalService.open(this.modalContent); + } + /** + * @return {?} + */ + onAdd() { + this.selected = (/** @type {?} */ ({})); + this.openModal(); + } + /** + * @param {?} id + * @return {?} + */ + onEdit(id) { + this.store + .dispatch(new IdentityGetRoleById(id)) + .pipe(pluck('IdentityState', 'selectedRole')) + .subscribe((/** + * @param {?} selectedRole + * @return {?} + */ + selectedRole => { + this.selected = selectedRole; + this.openModal(); + })); + } + /** + * @return {?} + */ + save() { + if (!this.form.valid) + return; + this.store + .dispatch(this.selected.id + ? new IdentityUpdateRole(Object.assign({}, this.form.value, { id: this.selected.id })) + : new IdentityAddRole(this.form.value)) + .subscribe((/** + * @return {?} + */ + () => this.modalService.dismissAll())); + } + /** + * @param {?} id + * @param {?} name + * @return {?} + */ + delete(id, name) { + this.confirmationService + .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + (status) => { + if (status === "confirm" /* confirm */) { + this.store.dispatch(new IdentityDeleteRole(id)); + } + })); + } +} +RolesComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-roles', + template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}\n
\n \n
\n
\n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n\n
\n \n \n
\n
\n
\n\n\n" + }] } +]; +/** @nocollapse */ +RolesComponent.ctorParameters = () => [ + { type: ConfirmationService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } +]; +RolesComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; +tslib_1.__decorate([ + Select(IdentityState.getRoles), + tslib_1.__metadata("design:type", Observable) +], RolesComponent.prototype, "roles$", void 0); +if (false) { + /** @type {?} */ + RolesComponent.prototype.roles$; + /** @type {?} */ + RolesComponent.prototype.form; + /** @type {?} */ + RolesComponent.prototype.selected; + /** @type {?} */ + RolesComponent.prototype.visiblePermissions; + /** @type {?} */ + RolesComponent.prototype.providerKey; + /** @type {?} */ + RolesComponent.prototype.modalContent; + /** + * @type {?} + * @private + */ + RolesComponent.prototype.confirmationService; + /** + * @type {?} + * @private + */ + RolesComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + RolesComponent.prototype.fb; + /** + * @type {?} + * @private + */ + RolesComponent.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3JvbGVzL3JvbGVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsbUJBQW1CLEdBQ3BCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBTXBFLE1BQU0sT0FBTyxjQUFjOzs7Ozs7O0lBZXpCLFlBQ1UsbUJBQXdDLEVBQ3hDLFlBQXNCLEVBQ3RCLEVBQWUsRUFDZixLQUFZO1FBSFosd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBTztRQVh0Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7SUFZakMsQ0FBQzs7OztJQUVKLFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFF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Ozs7OztJQUNoRCxzQ0FBOEI7Ozs7O0lBQzlCLDRCQUF1Qjs7Ozs7SUFDdkIsK0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWRlbnRpdHlTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlcy9pZGVudGl0eS5zdGF0ZSc7XG5pbXBvcnQgeyBJZGVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscy9pZGVudGl0eSc7XG5pbXBvcnQge1xuICBJZGVudGl0eVVwZGF0ZVJvbGUsXG4gIElkZW50aXR5QWRkUm9sZSxcbiAgSWRlbnRpdHlEZWxldGVSb2xlLFxuICBJZGVudGl0eUdldFJvbGVCeUlkLFxufSBmcm9tICcuLi8uLi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgcGx1Y2sgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtcm9sZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcm9sZXMuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBSb2xlc0NvbXBvbmVudCB7XG4gIEBTZWxlY3QoSWRlbnRpdHlTdGF0ZS5nZXRSb2xlcylcbiAgcm9sZXMkOiBPYnNlcnZhYmxlPElkZW50aXR5LlJvbGVJdGVtW10+O1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBzZWxlY3RlZDogSWRlbnRpdHkuUm9sZUl0ZW07XG5cbiAgdmlzaWJsZVBlcm1pc3Npb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdmlkZXJLZXk6IHN0cmluZztcblxuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbW9kYWxDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICkge31cblxuICBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogW3RoaXMuc2VsZWN0ZWQubmFtZSB8fCAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcbiAgICAgIGlzRGVmYXVsdDogW3RoaXMuc2VsZWN0ZWQuaXNEZWZhdWx0IHx8IGZhbHNlXSxcbiAgICAgIGlzUHVibGljOiBbdGhpcy5zZWxlY3RlZC5pc1B1YmxpYyB8fCBmYWxzZV0sXG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLm1vZGFsQ29udGVudCk7XG4gIH1cblxuICBvbkFkZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0ge30gYXMgSWRlbnRpdHkuUm9sZUl0ZW07XG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIG9uRWRpdChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBJZGVudGl0eUdldFJvbGVCeUlkKGlkKSlcbiAgICAgIC5waXBlKHBsdWNrKCdJZGVudGl0eVN0YXRlJywgJ3NlbGVjdGVkUm9sZScpKVxuICAgICAgLnN1YnNjcmliZShzZWxlY3RlZFJvbGUgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWRSb2xlO1xuICAgICAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSByZXR1cm47XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuaWRcbiAgICAgICAgICA/IG5ldyBJZGVudGl0eVVwZGF0ZVJvbGUoeyAuLi50aGlzLmZvcm0udmFsdWUsIGlkOiB0aGlzLnNlbGVjdGVkLmlkIH0pXG4gICAgICAgICAgOiBuZXcgSWRlbnRpdHlBZGRSb2xlKHRoaXMuZm9ybS52YWx1ZSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKSk7XG4gIH1cblxuICBkZWxldGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlXG4gICAgICAud2FybignQWJwSWRlbnRpdHk6OlJvbGVEZWxldGlvbkNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnQWJwSWRlbnRpdHk6OkFyZVlvdVN1cmUnLCB7XG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFtuYW1lXSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IFRvYXN0ZXIuU3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm0pIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBJZGVudGl0eURlbGV0ZVJvbGUoaWQpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/lib/components/users/users.component.js b/npm/packs/ng/dist/identity/esm2015/lib/components/users/users.component.js new file mode 100644 index 0000000000..3a7c5c5a77 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/lib/components/users/users.component.js @@ -0,0 +1,284 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { Select, Store } from '@ngxs/store'; +import { Observable, combineLatest, Subject } from 'rxjs'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { FormBuilder, Validators } from '@angular/forms'; +import { IdentityState } from '../../states/identity.state'; +import { IdentityUpdateUser, IdentityAddUser, IdentityDeleteUser, IdentityGetUserById, IdentityGetUsers, } from '../../actions/identity.actions'; +import { pluck, filter, map, take, debounceTime } from 'rxjs/operators'; +import { ConfirmationService } from '@abp/ng.theme.shared'; +import snq from 'snq'; +import { IdentityGetUserRoles } from '../../actions/identity.actions'; +import { validatePassword } from '@ngx-validate/core'; +export class UsersComponent { + /** + * @param {?} confirmationService + * @param {?} modalService + * @param {?} fb + * @param {?} store + */ + constructor(confirmationService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + this.visiblePermissions = false; + this.pageQuery = { + sorting: 'userName', + }; + this.loading = false; + this.search$ = new Subject(); + this.trackByFn = (/** + * @param {?} index + * @param {?} item + * @return {?} + */ + (index, item) => Object.keys(item)[0] || index); + } + /** + * @return {?} + */ + get roleGroups() { + return snq((/** + * @return {?} + */ + () => (/** @type {?} */ (((/** @type {?} */ (this.form.get('roleNames')))).controls))), []); + } + /** + * @return {?} + */ + ngOnInit() { + this.search$.pipe(debounceTime(300)).subscribe((/** + * @param {?} value + * @return {?} + */ + value => { + this.pageQuery.filter = value; + this.get(); + })); + } + /** + * @return {?} + */ + buildForm() { + this.roles = this.store.selectSnapshot(IdentityState.getRoles); + this.form = this.fb.group({ + password: [ + '', + [ + Validators.required, + Validators.maxLength(32), + Validators.minLength(6), + validatePassword(['small', 'capital', 'number', 'special']), + ], + ], + userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]], + email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]], + name: [this.selected.name || '', [Validators.maxLength(64)]], + surname: [this.selected.surname || '', [Validators.maxLength(64)]], + phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]], + lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + roleNames: this.fb.array(this.roles.map((/** + * @param {?} role + * @return {?} + */ + role => this.fb.group({ + [role.name]: [!!snq((/** + * @return {?} + */ + () => this.selectedUserRoles.find((/** + * @param {?} userRole + * @return {?} + */ + userRole => userRole.id === role.id))))], + })))), + }); + } + /** + * @return {?} + */ + openModal() { + this.buildForm(); + this.modalService.open(this.modalContent); + } + /** + * @return {?} + */ + onAdd() { + this.selected = (/** @type {?} */ ({})); + this.selectedUserRoles = (/** @type {?} */ ([])); + this.openModal(); + } + /** + * @param {?} id + * @return {?} + */ + onEdit(id) { + combineLatest([this.store.dispatch(new IdentityGetUserById(id)), this.store.dispatch(new IdentityGetUserRoles(id))]) + .pipe(filter((/** + * @param {?} __0 + * @return {?} + */ + ([res1, res2]) => res1 && res2)), map((/** + * @param {?} __0 + * @return {?} + */ + ([state, _]) => state)), pluck('IdentityState'), take(1)) + .subscribe((/** + * @param {?} state + * @return {?} + */ + (state) => { + this.selected = state.selectedUser; + this.selectedUserRoles = state.selectedUserRoles; + this.openModal(); + })); + } + /** + * @return {?} + */ + save() { + if (!this.form.valid) + return; + const { roleNames } = this.form.value; + /** @type {?} */ + const mappedRoleNames = snq((/** + * @return {?} + */ + () => roleNames.filter((/** + * @param {?} role + * @return {?} + */ + role => !!role[Object.keys(role)[0]])).map((/** + * @param {?} role + * @return {?} + */ + role => Object.keys(role)[0]))), []); + this.store + .dispatch(this.selected.id + ? new IdentityUpdateUser(Object.assign({}, this.form.value, { id: this.selected.id, roleNames: mappedRoleNames })) + : new IdentityAddUser(Object.assign({}, this.form.value, { roleNames: mappedRoleNames }))) + .subscribe((/** + * @return {?} + */ + () => this.modalService.dismissAll())); + } + /** + * @param {?} id + * @param {?} userName + * @return {?} + */ + delete(id, userName) { + this.confirmationService + .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [userName], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + (status) => { + if (status === "confirm" /* confirm */) { + this.store.dispatch(new IdentityDeleteUser(id)); + } + })); + } + /** + * @param {?} data + * @return {?} + */ + onPageChange(data) { + this.pageQuery.skipCount = data.first; + this.pageQuery.maxResultCount = data.rows; + this.get(); + } + /** + * @return {?} + */ + get() { + this.loading = true; + this.store.dispatch(new IdentityGetUsers(this.pageQuery)).subscribe((/** + * @return {?} + */ + () => (this.loading = false))); + } +} +UsersComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-users', + template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}\n
\n \n
\n
\n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n\n
\n \n \n
\n
\n
\n\n" + }] } +]; +/** @nocollapse */ +UsersComponent.ctorParameters = () => [ + { type: ConfirmationService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } +]; +UsersComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; +tslib_1.__decorate([ + Select(IdentityState.getUsers), + tslib_1.__metadata("design:type", Observable) +], UsersComponent.prototype, "data$", void 0); +tslib_1.__decorate([ + Select(IdentityState.getUsersTotalCount), + tslib_1.__metadata("design:type", Observable) +], UsersComponent.prototype, "totalCount$", void 0); +if (false) { + /** @type {?} */ + UsersComponent.prototype.data$; + /** @type {?} */ + UsersComponent.prototype.totalCount$; + /** @type {?} */ + UsersComponent.prototype.modalContent; + /** @type {?} */ + UsersComponent.prototype.form; + /** @type {?} */ + UsersComponent.prototype.selected; + /** @type {?} */ + UsersComponent.prototype.selectedUserRoles; + /** @type {?} */ + UsersComponent.prototype.roles; + /** @type {?} */ + UsersComponent.prototype.visiblePermissions; + /** @type {?} */ + UsersComponent.prototype.providerKey; + /** @type {?} */ + UsersComponent.prototype.pageQuery; + /** @type {?} */ + UsersComponent.prototype.loading; + /** @type {?} */ + UsersComponent.prototype.search$; + /** @type {?} */ + UsersComponent.prototype.trackByFn; + /** + * @type {?} + * @private + */ + UsersComponent.prototype.confirmationService; + /** + * @type {?} + * @private + */ + UsersComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + UsersComponent.prototype.fb; + /** + * @type {?} + * @private + */ + UsersComponent.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBMkIsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBOEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixnQkFBZ0IsR0FDakIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUN0QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU90RCxNQUFNLE9BQU8sY0FBYzs7Ozs7OztJQW9DekIsWUFDVSxtQkFBd0MsRUFDeEMsWUFBc0IsRUFDdEIsRUFBZSxFQUNmLEtBQVk7UUFI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S0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7OztRQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBQyxDQUFDO0lBQ3BHLENBQUM7OztZQTFKRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLHMyUEFBcUM7YUFDdEM7Ozs7WUFUUSxtQkFBbUI7WUFabkIsUUFBUTtZQUNSLFdBQVc7WUFISCxLQUFLOzs7MkJBK0JuQixTQUFTLFNBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7QUFMNUM7SUFEQyxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztzQ0FDeEIsVUFBVTs2Q0FBc0I7QUFHdkM7SUFEQyxNQUFNLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDO3NDQUM1QixVQUFVO21EQUFTOzs7SUFKaEMsK0JBQ3VDOztJQUV2QyxxQ0FDZ0M7O0lBRWhDLHNDQUMrQjs7SUFFL0IsOEJBQWdCOztJQUVoQixrQ0FBNEI7O0lBRTVCLDJDQUF1Qzs7SUFFdkMsK0JBQTJCOztJQUUzQiw0Q0FBb0M7O0lBRXBDLHFDQUFvQjs7SUFFcEIsbUNBRUU7O0lBRUYsaUNBQXlCOztJQUV6QixpQ0FBZ0M7O0lBRWhDLG1DQUE2Rjs7Ozs7SUFPM0YsNkNBQWdEOzs7OztJQUNoRCxzQ0FBOEI7Ozs7O0lBQzlCLDRCQUF1Qjs7Ozs7SUFDdkIsK0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBUcmFja0J5RnVuY3Rpb24sIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUFycmF5LCBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJZGVudGl0eVN0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGVzL2lkZW50aXR5LnN0YXRlJztcbmltcG9ydCB7IElkZW50aXR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2lkZW50aXR5JztcbmltcG9ydCB7XG4gIElkZW50aXR5VXBkYXRlVXNlcixcbiAgSWRlbnRpdHlBZGRVc2VyLFxuICBJZGVudGl0eURlbGV0ZVVzZXIsXG4gIElkZW50aXR5R2V0VXNlckJ5SWQsXG4gIElkZW50aXR5R2V0VXNlcnMsXG59IGZyb20gJy4uLy4uL2FjdGlvbnMvaWRlbnRpdHkuYWN0aW9ucyc7XG5pbXBvcnQgeyBwbHVjaywgZmlsdGVyLCBtYXAsIHRha2UsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQgeyBJZGVudGl0eUdldFVzZXJSb2xlcyB9IGZyb20gJy4uLy4uL2FjdGlvbnMvaWRlbnRpdHkuYWN0aW9ucyc7XG5pbXBvcnQgeyB2YWxpZGF0ZVBhc3N3b3JkIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IEFCUCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC11c2VycycsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2Vycy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFNlbGVjdChJZGVudGl0eVN0YXRlLmdldFVzZXJzKVxuICBkYXRhJDogT2JzZXJ2YWJsZTxJZGVudGl0eS5Vc2VySXRlbVtdPjtcblxuICBAU2VsZWN0KElkZW50aXR5U3RhdGUuZ2V0VXNlcnNUb3RhbENvdW50KVxuICB0b3RhbENvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIHNlbGVjdGVkOiBJZGVudGl0eS5Vc2VySXRlbTtcblxuICBzZWxlY3RlZFVzZXJSb2xlczogSWRlbnRpdHkuUm9sZUl0ZW1bXTtcblxuICByb2xlczogSWRlbnRpdHkuUm9sZUl0ZW1bXTtcblxuICB2aXNpYmxlUGVybWlzc2lvbnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcm92aWRlcktleTogc3RyaW5nO1xuXG4gIHBhZ2VRdWVyeTogQUJQLlBhZ2VRdWVyeVBhcmFtcyA9IHtcbiAgICBzb3J0aW5nOiAndXNlck5hbWUnLFxuICB9O1xuXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzZWFyY2gkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPEFic3RyYWN0Q29udHJvbD4gPSAoaW5kZXgsIGl0ZW0pID0+IE9iamVjdC5rZXlzKGl0ZW0pWzBdIHx8IGluZGV4O1xuXG4gIGdldCByb2xlR3JvdXBzKCk6IEZvcm1Hcm91cFtdIHtcbiAgICByZXR1cm4gc25xKCgpID0+ICh0aGlzLmZvcm0uZ2V0KCdyb2xlTmFtZXMnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzIGFzIEZvcm1Hcm91cFtdLCBbXSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZWFyY2gkLnBpcGUoZGVib3VuY2VUaW1lKDMwMCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICB0aGlzLnBhZ2VRdWVyeS5maWx0ZXIgPSB2YWx1ZTtcbiAgICAgIHRoaXMuZ2V0KCk7XG4gICAgfSk7XG4gIH1cblxuICBidWlsZEZvcm0oKSB7XG4gICAgdGhpcy5yb2xlcyA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoSWRlbnRpdHlTdGF0ZS5nZXRSb2xlcyk7XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHBhc3N3b3JkOiBbXG4gICAgICAgICcnLFxuICAgICAgICBbXG4gICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgzMiksXG4gICAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoNiksXG4gICAgICAgICAgdmFsaWRhdGVQYXNzd29yZChbJ3NtYWxsJywgJ2NhcGl0YWwnLCAnbnVtYmVyJywgJ3NwZWNpYWwnXSksXG4gICAgICAgIF0sXG4gICAgICBdLFxuICAgICAgdXNlck5hbWU6IFt0aGlzLnNlbGVjdGVkLnVzZXJOYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV1dLFxuICAgICAgZW1haWw6IFt0aGlzLnNlbGVjdGVkLmVtYWlsIHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV1dLFxuICAgICAgbmFtZTogW3RoaXMuc2VsZWN0ZWQubmFtZSB8fCAnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDY0KV1dLFxuICAgICAgc3VybmFtZTogW3RoaXMuc2VsZWN0ZWQuc3VybmFtZSB8fCAnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDY0KV1dLFxuICAgICAgcGhvbmVOdW1iZXI6IFt0aGlzLnNlbGVjdGVkLnBob25lTnVtYmVyIHx8ICcnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTYpXV0sXG4gICAgICBsb2Nrb3V0RW5hYmxlZDogW3RoaXMuc2VsZWN0ZWQudHdvRmFjdG9yRW5hYmxlZCB8fCAodGhpcy5zZWxlY3RlZC5pZCA/IGZhbHNlIDogdHJ1ZSldLFxuICAgICAgdHdvRmFjdG9yRW5hYmxlZDogW3RoaXMuc2VsZWN0ZWQudHdvRmFjdG9yRW5hYmxlZCB8fCAodGhpcy5zZWxlY3RlZC5pZCA/IGZhbHNlIDogdHJ1ZSldLFxuICAgICAgcm9sZU5hbWVzOiB0aGlzLmZiLmFycmF5KFxuICAgICAgICB0aGlzLnJvbGVzLm1hcChyb2xlID0+XG4gICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBbcm9sZS5uYW1lXTogWyEhc25xKCgpID0+IHRoaXMuc2VsZWN0ZWRVc2VyUm9sZXMuZmluZCh1c2VyUm9sZSA9PiB1c2VyUm9sZS5pZCA9PT0gcm9sZS5pZCkpXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5idWlsZEZvcm0oKTtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMubW9kYWxDb250ZW50KTtcbiAgfVxuXG4gIG9uQWRkKCkge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB7fSBhcyBJZGVudGl0eS5Vc2VySXRlbTtcbiAgICB0aGlzLnNlbGVjdGVkVXNlclJvbGVzID0gW10gYXMgSWRlbnRpdHkuUm9sZUl0ZW1bXTtcbiAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICB9XG5cbiAgb25FZGl0KGlkOiBzdHJpbmcpIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBJZGVudGl0eUdldFVzZXJCeUlkKGlkKSksIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IElkZW50aXR5R2V0VXNlclJvbGVzKGlkKSldKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoW3JlczEsIHJlczJdKSA9PiByZXMxICYmIHJlczIpLFxuICAgICAgICBtYXAoKFtzdGF0ZSwgX10pID0+IHN0YXRlKSxcbiAgICAgICAgcGx1Y2soJ0lkZW50aXR5U3RhdGUnKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBJZGVudGl0eS5TdGF0ZSkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc3RhdGUuc2VsZWN0ZWRVc2VyO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlclJvbGVzID0gc3RhdGUuc2VsZWN0ZWRVc2VyUm9sZXM7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgaWYgKCF0aGlzLmZvcm0udmFsaWQpIHJldHVybjtcblxuICAgIGNvbnN0IHsgcm9sZU5hbWVzIH0gPSB0aGlzLmZvcm0udmFsdWU7XG4gICAgY29uc3QgbWFwcGVkUm9sZU5hbWVzID0gc25xKFxuICAgICAgKCkgPT4gcm9sZU5hbWVzLmZpbHRlcihyb2xlID0+ICEhcm9sZVtPYmplY3Qua2V5cyhyb2xlKVswXV0pLm1hcChyb2xlID0+IE9iamVjdC5rZXlzKHJvbGUpWzBdKSxcbiAgICAgIFtdLFxuICAgICk7XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuaWRcbiAgICAgICAgICA/IG5ldyBJZGVudGl0eVVwZGF0ZVVzZXIoe1xuICAgICAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgICAgICAgICAgIGlkOiB0aGlzLnNlbGVjdGVkLmlkLFxuICAgICAgICAgICAgICByb2xlTmFtZXM6IG1hcHBlZFJvbGVOYW1lcyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBuZXcgSWRlbnRpdHlBZGRVc2VyKHsgLi4udGhpcy5mb3JtLnZhbHVlLCByb2xlTmFtZXM6IG1hcHBlZFJvbGVOYW1lcyB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5tb2RhbFNlcnZpY2UuZGlzbWlzc0FsbCgpKTtcbiAgfVxuXG4gIGRlbGV0ZShpZDogc3RyaW5nLCB1c2VyTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlXG4gICAgICAud2FybignQWJwSWRlbnRpdHk6OlVzZXJEZWxldGlvbkNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnQWJwSWRlbnRpdHk6OkFyZVlvdVN1cmUnLCB7XG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFt1c2VyTmFtZV0sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBUb2FzdGVyLlN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBUb2FzdGVyLlN0YXR1cy5jb25maXJtKSB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSWRlbnRpdHlEZWxldGVVc2VyKGlkKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKGRhdGEpIHtcbiAgICB0aGlzLnBhZ2VRdWVyeS5za2lwQ291bnQgPSBkYXRhLmZpcnN0O1xuICAgIHRoaXMucGFnZVF1ZXJ5Lm1heFJlc3VsdENvdW50ID0gZGF0YS5yb3dzO1xuXG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIGdldCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IElkZW50aXR5R2V0VXNlcnModGhpcy5wYWdlUXVlcnkpKS5zdWJzY3JpYmUoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/lib/constants/routes.js b/npm/packs/ng/dist/identity/esm2015/lib/constants/routes.js new file mode 100644 index 0000000000..e49d2708ba --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/lib/constants/routes.js @@ -0,0 +1,25 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +export const IDENTITY_ROUTES = (/** @type {?} */ ([ + { + name: 'Administration', + path: '', + order: 1, + wrapper: true, + }, + { + name: 'Identity', + path: 'identity', + order: 1, + parentName: 'Administration', + layout: "application" /* application */, + children: [ + { path: 'roles', name: 'Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' }, + { path: 'users', name: 'Users', order: 1, requiredPolicy: 'AbpIdentity.Users' }, + ], + }, +])); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxPQUFPLGVBQWUsR0FBRyxtQkFBQTtJQUM3QjtRQUNFLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsSUFBSSxFQUFFLEVBQUU7UUFDUixLQUFLLEVBQUUsQ0FBQztRQUNSLE9BQU8sRUFBRSxJQUFJO0tBQ2Q7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSxDQUFDO1FBQ1IsVUFBVSxFQUFFLGdCQUFnQjtRQUM1QixNQUFNLGlDQUF5QjtRQUMvQixRQUFRLEVBQUU7WUFDUixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRTtZQUMvRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRTtTQUNoRjtLQUNGO0NBQ0YsRUFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlTGF5b3V0VHlwZSwgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IGNvbnN0IElERU5USVRZX1JPVVRFUyA9IFtcbiAge1xuICAgIG5hbWU6ICdBZG1pbmlzdHJhdGlvbicsXG4gICAgcGF0aDogJycsXG4gICAgb3JkZXI6IDEsXG4gICAgd3JhcHBlcjogdHJ1ZSxcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdJZGVudGl0eScsXG4gICAgcGF0aDogJ2lkZW50aXR5JyxcbiAgICBvcmRlcjogMSxcbiAgICBwYXJlbnROYW1lOiAnQWRtaW5pc3RyYXRpb24nLFxuICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHsgcGF0aDogJ3JvbGVzJywgbmFtZTogJ1JvbGVzJywgb3JkZXI6IDIsIHJlcXVpcmVkUG9saWN5OiAnQWJwSWRlbnRpdHkuUm9sZXMnIH0sXG4gICAgICB7IHBhdGg6ICd1c2VycycsIG5hbWU6ICdVc2VycycsIG9yZGVyOiAxLCByZXF1aXJlZFBvbGljeTogJ0FicElkZW50aXR5LlVzZXJzJyB9LFxuICAgIF0sXG4gIH0sXG5dIGFzIEFCUC5GdWxsUm91dGVbXTtcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/lib/identity-routing.module.js b/npm/packs/ng/dist/identity/esm2015/lib/identity-routing.module.js new file mode 100644 index 0000000000..e733f5d6f8 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/lib/identity-routing.module.js @@ -0,0 +1,47 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { RolesComponent } from './components/roles/roles.component'; +import { RoleResolver } from './resolvers/roles.resolver'; +import { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core'; +import { UsersComponent } from './components/users/users.component'; +import { UserResolver } from './resolvers/users.resolver'; +const ɵ0 = { requiredPolicy: 'AbpIdentity.Roles' }, ɵ1 = { requiredPolicy: 'AbpIdentity.Users' }; +/** @type {?} */ +const routes = [ + { path: '', redirectTo: 'roles', pathMatch: 'full' }, + { + path: 'roles', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ0, + children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }], + }, + { + path: 'users', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ1, + children: [ + { + path: '', + component: UsersComponent, + resolve: [RoleResolver, UserResolver], + }, + ], + }, +]; +export class IdentityRoutingModule { +} +IdentityRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + providers: [RoleResolver, UserResolver], + },] } +]; +export { ɵ0, ɵ1 }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHktcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL2lkZW50aXR5LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7V0FRaEQsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsT0FPdkMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUU7O01BYjNDLE1BQU0sR0FBVztJQUNyQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO0lBQ3BEO1FBQ0UsSUFBSSxFQUFFLE9BQU87UUFDYixTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUM7UUFDekMsSUFBSSxJQUF5QztRQUM3QyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO0tBQzdFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsT0FBTztRQUNiLFNBQVMsRUFBRSxzQkFBc0I7UUFDakMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztRQUN6QyxJQUFJLElBQXlDO1FBQzdDLFFBQVEsRUFBRTtZQUNSO2dCQUNFLElBQUksRUFBRSxFQUFFO2dCQUNSLFNBQVMsRUFBRSxjQUFjO2dCQUN6QixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO2FBQ3RDO1NBQ0Y7S0FDRjtDQUNGO0FBT0QsTUFBTSxPQUFPLHFCQUFxQjs7O1lBTGpDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLFNBQVMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7YUFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVzLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUm9sZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm9sZXMvcm9sZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFJvbGVSZXNvbHZlciB9IGZyb20gJy4vcmVzb2x2ZXJzL3JvbGVzLnJlc29sdmVyJztcbmltcG9ydCB7IER5bmFtaWNMYXlvdXRDb21wb25lbnQsIEF1dGhHdWFyZCwgUGVybWlzc2lvbkd1YXJkIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFVzZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyUmVzb2x2ZXIgfSBmcm9tICcuL3Jlc29sdmVycy91c2Vycy5yZXNvbHZlcic7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7IHBhdGg6ICcnLCByZWRpcmVjdFRvOiAncm9sZXMnLCBwYXRoTWF0Y2g6ICdmdWxsJyB9LFxuICB7XG4gICAgcGF0aDogJ3JvbGVzJyxcbiAgICBjb21wb25lbnQ6IER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmQsIFBlcm1pc3Npb25HdWFyZF0sXG4gICAgZGF0YTogeyByZXF1aXJlZFBvbGljeTogJ0FicElkZW50aXR5LlJvbGVzJyB9LFxuICAgIGNoaWxkcmVuOiBbeyBwYXRoOiAnJywgY29tcG9uZW50OiBSb2xlc0NvbXBvbmVudCwgcmVzb2x2ZTogW1JvbGVSZXNvbHZlcl0gfV0sXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAndXNlcnMnLFxuICAgIGNvbXBvbmVudDogRHluYW1pY0xheW91dENvbXBvbmVudCxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZCwgUGVybWlzc2lvbkd1YXJkXSxcbiAgICBkYXRhOiB7IHJlcXVpcmVkUG9saWN5OiAnQWJwSWRlbnRpdHkuVXNlcnMnIH0sXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIGNvbXBvbmVudDogVXNlcnNDb21wb25lbnQsXG4gICAgICAgIHJlc29sdmU6IFtSb2xlUmVzb2x2ZXIsIFVzZXJSZXNvbHZlcl0sXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbUm9sZVJlc29sdmVyLCBVc2VyUmVzb2x2ZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBJZGVudGl0eVJvdXRpbmdNb2R1bGUge31cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/lib/identity.module.js b/npm/packs/ng/dist/identity/esm2015/lib/identity.module.js new file mode 100644 index 0000000000..9ccac5d391 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/lib/identity.module.js @@ -0,0 +1,35 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CoreModule } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { NgxsModule } from '@ngxs/store'; +import { RolesComponent } from './components/roles/roles.component'; +import { IdentityRoutingModule } from './identity-routing.module'; +import { IdentityState } from './states/identity.state'; +import { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { UsersComponent } from './components/users/users.component'; +import { PermissionManagementModule } from '@abp/ng.permission-management'; +import { TableModule } from 'primeng/table'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; +export class IdentityModule { +} +IdentityModule.decorators = [ + { type: NgModule, args: [{ + declarations: [RolesComponent, UsersComponent], + imports: [ + NgxsModule.forFeature([IdentityState]), + CoreModule, + IdentityRoutingModule, + NgbTabsetModule, + ThemeSharedModule, + TableModule, + NgbDropdownModule, + PermissionManagementModule, + NgxValidateCoreModule, + ], + },] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9pZGVudGl0eS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBZ0IzRCxNQUFNLE9BQU8sY0FBYzs7O1lBZDFCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO2dCQUM5QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUN0QyxVQUFVO29CQUNWLHFCQUFxQjtvQkFDckIsZUFBZTtvQkFDZixpQkFBaUI7b0JBQ2pCLFdBQVc7b0JBQ1gsaUJBQWlCO29CQUNqQiwwQkFBMEI7b0JBQzFCLHFCQUFxQjtpQkFDdEI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBSb2xlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb2xlcy9yb2xlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWRlbnRpdHlSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9pZGVudGl0eS1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBJZGVudGl0eVN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvaWRlbnRpdHkuc3RhdGUnO1xuaW1wb3J0IHsgTmdiVGFic2V0TW9kdWxlLCBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgVXNlcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlcnMvdXNlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50TW9kdWxlIH0gZnJvbSAnQGFicC9uZy5wZXJtaXNzaW9uLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1JvbGVzQ29tcG9uZW50LCBVc2Vyc0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBOZ3hzTW9kdWxlLmZvckZlYXR1cmUoW0lkZW50aXR5U3RhdGVdKSxcbiAgICBDb3JlTW9kdWxlLFxuICAgIElkZW50aXR5Um91dGluZ01vZHVsZSxcbiAgICBOZ2JUYWJzZXRNb2R1bGUsXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXG4gICAgVGFibGVNb2R1bGUsXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXG4gICAgUGVybWlzc2lvbk1hbmFnZW1lbnRNb2R1bGUsXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJZGVudGl0eU1vZHVsZSB7fVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/lib/models/identity.js b/npm/packs/ng/dist/identity/esm2015/lib/models/identity.js new file mode 100644 index 0000000000..c727c77125 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/lib/models/identity.js @@ -0,0 +1,102 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Identity; +(function (Identity) { + /** + * @record + */ + function State() { } + Identity.State = State; + if (false) { + /** @type {?} */ + State.prototype.roles; + /** @type {?} */ + State.prototype.users; + /** @type {?} */ + State.prototype.selectedRole; + /** @type {?} */ + State.prototype.selectedUser; + /** @type {?} */ + State.prototype.selectedUserRoles; + } + /** + * @record + */ + function RoleSaveRequest() { } + Identity.RoleSaveRequest = RoleSaveRequest; + if (false) { + /** @type {?} */ + RoleSaveRequest.prototype.name; + /** @type {?} */ + RoleSaveRequest.prototype.isDefault; + /** @type {?} */ + RoleSaveRequest.prototype.isPublic; + } + /** + * @record + */ + function RoleItem() { } + Identity.RoleItem = RoleItem; + if (false) { + /** @type {?} */ + RoleItem.prototype.isStatic; + /** @type {?} */ + RoleItem.prototype.concurrencyStamp; + /** @type {?} */ + RoleItem.prototype.id; + } + /** + * @record + */ + function UserItem() { } + Identity.UserItem = UserItem; + if (false) { + /** @type {?} */ + UserItem.prototype.tenantId; + /** @type {?} */ + UserItem.prototype.emailConfirmed; + /** @type {?} */ + UserItem.prototype.phoneNumberConfirmed; + /** @type {?} */ + UserItem.prototype.isLockedOut; + /** @type {?} */ + UserItem.prototype.concurrencyStamp; + /** @type {?} */ + UserItem.prototype.id; + } + /** + * @record + */ + function User() { } + Identity.User = User; + if (false) { + /** @type {?} */ + User.prototype.userName; + /** @type {?} */ + User.prototype.name; + /** @type {?} */ + User.prototype.surname; + /** @type {?} */ + User.prototype.email; + /** @type {?} */ + User.prototype.phoneNumber; + /** @type {?} */ + User.prototype.twoFactorEnabled; + /** @type {?} */ + User.prototype.lockoutEnabled; + } + /** + * @record + */ + function UserSaveRequest() { } + Identity.UserSaveRequest = UserSaveRequest; + if (false) { + /** @type {?} */ + UserSaveRequest.prototype.password; + /** @type {?} */ + UserSaveRequest.prototype.roleNames; + } +})(Identity || (Identity = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL21vZGVscy9pZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsTUFBTSxLQUFXLFFBQVEsQ0FnRHhCO0FBaERELFdBQWlCLFFBQVE7Ozs7SUFDdkIsb0JBTUM7Ozs7UUFMQyxzQkFBb0I7O1FBQ3BCLHNCQUFvQjs7UUFDcEIsNkJBQXVCOztRQUN2Qiw2QkFBdUI7O1FBQ3ZCLGtDQUE4Qjs7Ozs7SUFLaEMsOEJBSUM7Ozs7UUFIQywrQkFBYTs7UUFDYixvQ0FBbUI7O1FBQ25CLG1DQUFrQjs7Ozs7SUFHcEIsdUJBSUM7Ozs7UUFIQyw0QkFBa0I7O1FBQ2xCLG9DQUF5Qjs7UUFDekIsc0JBQVc7Ozs7O0lBS2IsdUJBT0M7Ozs7UUFOQyw0QkFBaUI7O1FBQ2pCLGtDQUF3Qjs7UUFDeEIsd0NBQThCOztRQUM5QiwrQkFBcUI7O1FBQ3JCLG9DQUF5Qjs7UUFDekIsc0JBQVc7Ozs7O0lBR2IsbUJBUUM7Ozs7UUFQQyx3QkFBaUI7O1FBQ2pCLG9CQUFhOztRQUNiLHVCQUFnQjs7UUFDaEIscUJBQWM7O1FBQ2QsMkJBQW9COztRQUNwQixnQ0FBdUI7O1FBQ3ZCLDhCQUFxQjs7Ozs7SUFHdkIsOEJBR0M7Ozs7UUFGQyxtQ0FBaUI7O1FBQ2pCLG9DQUFvQjs7QUFFeEIsQ0FBQyxFQWhEZ0IsUUFBUSxLQUFSLFFBQVEsUUFnRHhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IG5hbWVzcGFjZSBJZGVudGl0eSB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xuICAgIHJvbGVzOiBSb2xlUmVzcG9uc2U7XG4gICAgdXNlcnM6IFVzZXJSZXNwb25zZTtcbiAgICBzZWxlY3RlZFJvbGU6IFJvbGVJdGVtO1xuICAgIHNlbGVjdGVkVXNlcjogVXNlckl0ZW07XG4gICAgc2VsZWN0ZWRVc2VyUm9sZXM6IFJvbGVJdGVtW107XG4gIH1cblxuICBleHBvcnQgdHlwZSBSb2xlUmVzcG9uc2UgPSBBQlAuUGFnZWRSZXNwb25zZTxSb2xlSXRlbT47XG5cbiAgZXhwb3J0IGludGVyZmFjZSBSb2xlU2F2ZVJlcXVlc3Qge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBpc0RlZmF1bHQ6IGJvb2xlYW47XG4gICAgaXNQdWJsaWM6IGJvb2xlYW47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFJvbGVJdGVtIGV4dGVuZHMgUm9sZVNhdmVSZXF1ZXN0IHtcbiAgICBpc1N0YXRpYzogYm9vbGVhbjtcbiAgICBjb25jdXJyZW5jeVN0YW1wOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIFVzZXJSZXNwb25zZSA9IEFCUC5QYWdlZFJlc3BvbnNlPFVzZXJJdGVtPjtcblxuICBleHBvcnQgaW50ZXJmYWNlIFVzZXJJdGVtIGV4dGVuZHMgVXNlciB7XG4gICAgdGVuYW50SWQ6IHN0cmluZztcbiAgICBlbWFpbENvbmZpcm1lZDogYm9vbGVhbjtcbiAgICBwaG9uZU51bWJlckNvbmZpcm1lZDogYm9vbGVhbjtcbiAgICBpc0xvY2tlZE91dDogYm9vbGVhbjtcbiAgICBjb25jdXJyZW5jeVN0YW1wOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XG4gICAgdXNlck5hbWU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc3VybmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgICB0d29GYWN0b3JFbmFibGVkOiB0cnVlO1xuICAgIGxvY2tvdXRFbmFibGVkOiB0cnVlO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBVc2VyU2F2ZVJlcXVlc3QgZXh0ZW5kcyBVc2VyIHtcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIHJvbGVOYW1lczogc3RyaW5nW107XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/lib/resolvers/roles.resolver.js b/npm/packs/ng/dist/identity/esm2015/lib/resolvers/roles.resolver.js new file mode 100644 index 0000000000..4e75247cf6 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/lib/resolvers/roles.resolver.js @@ -0,0 +1,39 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { IdentityGetRoles } from '../actions/identity.actions'; +import { IdentityState } from '../states/identity.state'; +export class RoleResolver { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @return {?} + */ + resolve() { + /** @type {?} */ + const roles = this.store.selectSnapshot(IdentityState.getRoles); + return roles && roles.length ? null : this.store.dispatch(new IdentityGetRoles()); + } +} +RoleResolver.decorators = [ + { type: Injectable } +]; +/** @nocollapse */ +RoleResolver.ctorParameters = () => [ + { type: Store } +]; +if (false) { + /** + * @type {?} + * @private + */ + RoleResolver.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL3Jlc29sdmVycy9yb2xlcy5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RCxNQUFNLE9BQU8sWUFBWTs7OztJQUN2QixZQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7SUFFcEMsT0FBTzs7Y0FDQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUMvRCxPQUFPLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7OztZQVBGLFVBQVU7Ozs7WUFMRixLQUFLOzs7Ozs7O0lBT0EsNkJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzb2x2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IElkZW50aXR5R2V0Um9sZXMgfSBmcm9tICcuLi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi9tb2RlbHMvaWRlbnRpdHknO1xuaW1wb3J0IHsgSWRlbnRpdHlTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcy9pZGVudGl0eS5zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSb2xlUmVzb2x2ZXIgaW1wbGVtZW50cyBSZXNvbHZlPElkZW50aXR5LlN0YXRlPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIHJlc29sdmUoKSB7XG4gICAgY29uc3Qgcm9sZXMgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KElkZW50aXR5U3RhdGUuZ2V0Um9sZXMpO1xuICAgIHJldHVybiByb2xlcyAmJiByb2xlcy5sZW5ndGggPyBudWxsIDogdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSWRlbnRpdHlHZXRSb2xlcygpKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/lib/resolvers/users.resolver.js b/npm/packs/ng/dist/identity/esm2015/lib/resolvers/users.resolver.js new file mode 100644 index 0000000000..010dd25f03 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/lib/resolvers/users.resolver.js @@ -0,0 +1,39 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { IdentityGetUsers } from '../actions/identity.actions'; +import { IdentityState } from '../states/identity.state'; +export class UserResolver { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @return {?} + */ + resolve() { + /** @type {?} */ + const users = this.store.selectSnapshot(IdentityState.getUsers); + return users && users.length ? null : this.store.dispatch(new IdentityGetUsers()); + } +} +UserResolver.decorators = [ + { type: Injectable } +]; +/** @nocollapse */ +UserResolver.ctorParameters = () => [ + { type: Store } +]; +if (false) { + /** + * @type {?} + * @private + */ + UserResolver.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL3Jlc29sdmVycy91c2Vycy5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RCxNQUFNLE9BQU8sWUFBWTs7OztJQUN2QixZQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7SUFFcEMsT0FBTzs7Y0FDQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUMvRCxPQUFPLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7OztZQVBGLFVBQVU7Ozs7WUFMRixLQUFLOzs7Ozs7O0lBT0EsNkJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzb2x2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IElkZW50aXR5R2V0VXNlcnMgfSBmcm9tICcuLi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi9tb2RlbHMvaWRlbnRpdHknO1xuaW1wb3J0IHsgSWRlbnRpdHlTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcy9pZGVudGl0eS5zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVc2VyUmVzb2x2ZXIgaW1wbGVtZW50cyBSZXNvbHZlPElkZW50aXR5LlN0YXRlPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIHJlc29sdmUoKSB7XG4gICAgY29uc3QgdXNlcnMgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KElkZW50aXR5U3RhdGUuZ2V0VXNlcnMpO1xuICAgIHJldHVybiB1c2VycyAmJiB1c2Vycy5sZW5ndGggPyBudWxsIDogdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSWRlbnRpdHlHZXRVc2VycygpKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/lib/services/identity.service.js b/npm/packs/ng/dist/identity/esm2015/lib/services/identity.service.js new file mode 100644 index 0000000000..2ee1ec9eb1 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/lib/services/identity.service.js @@ -0,0 +1,176 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { RestService } from '@abp/ng.core'; +import * as i0 from "@angular/core"; +import * as i1 from "@abp/ng.core"; +export class IdentityService { + /** + * @param {?} rest + */ + constructor(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + getRoles() { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/identity/role', + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + getRoleById(id) { + /** @type {?} */ + const request = { + method: 'GET', + url: `/api/identity/role/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + deleteRole(id) { + /** @type {?} */ + const request = { + method: 'DELETE', + url: `/api/identity/role/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + addRole(body) { + /** @type {?} */ + const request = { + method: 'POST', + url: '/api/identity/role', + body, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + updateRole(body) { + /** @type {?} */ + const url = `/api/identity/role/${body.id}`; + delete body.id; + /** @type {?} */ + const request = { + method: 'PUT', + url, + body, + }; + return this.rest.request(request); + } + /** + * @param {?=} params + * @return {?} + */ + getUsers(params = (/** @type {?} */ ({}))) { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/identity/user', + params, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + getUserById(id) { + /** @type {?} */ + const request = { + method: 'GET', + url: `/api/identity/user/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + getUserRoles(id) { + /** @type {?} */ + const request = { + method: 'GET', + url: `/api/identity/user/${id}/roles`, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + deleteUser(id) { + /** @type {?} */ + const request = { + method: 'DELETE', + url: `/api/identity/user/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + addUser(body) { + /** @type {?} */ + const request = { + method: 'POST', + url: '/api/identity/user', + body, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + updateUser(body) { + /** @type {?} */ + const url = `/identity/users/${body.id}`; + delete body.id; + /** @type {?} */ + const request = { + method: 'PUT', + url, + body, + }; + return this.rest.request(request); + } +} +IdentityService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +IdentityService.ctorParameters = () => [ + { type: RestService } +]; +/** @nocollapse */ IdentityService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function IdentityService_Factory() { return new IdentityService(i0.ɵɵinject(i1.RestService)); }, token: IdentityService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + IdentityService.prototype.rest; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuaWRlbnRpdHkvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvaWRlbnRpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sY0FBYyxDQUFDOzs7QUFNdEQsTUFBTSxPQUFPLGVBQWU7Ozs7SUFDMUIsWUFBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFHLENBQUM7Ozs7SUFFekMsUUFBUTs7Y0FDQSxPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLG9CQUFvQjtTQUMxQjtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQThCLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLEVBQVU7O2NBQ2QsT0FBTyxHQUF1QjtZQUNsQyxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxzQkFBc0IsRUFBRSxFQUFFO1NBQ2hDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBMEIsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7Ozs7SUFFRCxVQUFVLENBQUMsRUFBVTs7Y0FDYixPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLEdBQUcsRUFBRSxzQkFBc0IsRUFBRSxFQUFFO1NBQ2hDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBMEIsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7Ozs7SUFFRCxPQUFPLENBQUMsSUFBOEI7O2NBQzlCLE9BQU8sR0FBMkM7WUFDdEQsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsb0JBQW9CO1lBQ3pCLElBQUk7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQThDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Ozs7O0lBRUQsVUFBVSxDQUFDLElBQXVCOztjQUMxQixHQUFHLEdBQUcsc0JBQXNCLElBQUksQ0FBQyxFQUFFLEVBQUU7UUFDM0MsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDOztjQUVULE9BQU8sR0FBb0M7WUFDL0MsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHO1lBQ0gsSUFBSTtTQUNMO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBdUMsT0FBTyxDQUFDLENBQUM7SUFDMUUsQ0FBQzs7Ozs7SUFFRCxRQUFRLENBQUMsTUFBTSxHQUFHLG1CQUFBLEVBQUUsRUFBdUI7O2NBQ25DLE9BQU8sR0FBdUI7WUFDbEMsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsb0JBQW9CO1lBQ3pCLE1BQU07U0FDUDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQThCLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLEVBQVU7O2NBQ2QsT0FBTyxHQUF1QjtZQUNsQyxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxzQkFBc0IsRUFBRSxFQUFFO1NBQ2hDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBMEIsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7Ozs7SUFFRCxZQUFZLENBQUMsRUFBVTs7Y0FDZixPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLHNCQUFzQixFQUFFLFFBQVE7U0FDdEM7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUE4QixPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDOzs7OztJQUVELFVBQVUsQ0FBQyxFQUFVOztjQUNiLE9BQU8sR0FBdUI7WUFDbEMsTUFBTSxFQUFFLFFBQVE7WUFDaEIsR0FBRyxFQUFFLHNCQUFzQixFQUFFLEVBQUU7U0FDaEM7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFhLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7Ozs7O0lBRUQsT0FBTyxDQUFDLElBQThCOztjQUM5QixPQUFPLEdBQTJDO1lBQ3RELE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLG9CQUFvQjtZQUN6QixJQUFJO1NBQ0w7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUE4QyxPQUFPLENBQUMsQ0FBQztJQUNqRixDQUFDOzs7OztJQUVELFVBQVUsQ0FBQyxJQUF1Qjs7Y0FDMUIsR0FBRyxHQUFHLG1CQUFtQixJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQzs7Y0FFVCxPQUFPLEdBQW9DO1lBQy9DLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRztZQUNILElBQUk7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQXVDLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7OztZQWxIRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFMUSxXQUFXOzs7Ozs7OztJQU9OLCtCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlLCBSZXN0LCBBQlAgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi9tb2RlbHMvaWRlbnRpdHknO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0OiBSZXN0U2VydmljZSkge31cblxuICBnZXRSb2xlcygpOiBPYnNlcnZhYmxlPElkZW50aXR5LlJvbGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6ICcvYXBpL2lkZW50aXR5L3JvbGUnLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgSWRlbnRpdHkuUm9sZVJlc3BvbnNlPihyZXF1ZXN0KTtcbiAgfVxuXG4gIGdldFJvbGVCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElkZW50aXR5LlJvbGVJdGVtPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PG51bGw+ID0ge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogYC9hcGkvaWRlbnRpdHkvcm9sZS8ke2lkfWAsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxudWxsLCBJZGVudGl0eS5Sb2xlSXRlbT4ocmVxdWVzdCk7XG4gIH1cblxuICBkZWxldGVSb2xlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElkZW50aXR5LlJvbGVJdGVtPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PG51bGw+ID0ge1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIHVybDogYC9hcGkvaWRlbnRpdHkvcm9sZS8ke2lkfWAsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxudWxsLCBJZGVudGl0eS5Sb2xlSXRlbT4ocmVxdWVzdCk7XG4gIH1cblxuICBhZGRSb2xlKGJvZHk6IElkZW50aXR5LlJvbGVTYXZlUmVxdWVzdCk6IE9ic2VydmFibGU8SWRlbnRpdHkuUm9sZUl0ZW0+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8SWRlbnRpdHkuUm9sZVNhdmVSZXF1ZXN0PiA9IHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgdXJsOiAnL2FwaS9pZGVudGl0eS9yb2xlJyxcbiAgICAgIGJvZHksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxJZGVudGl0eS5Sb2xlU2F2ZVJlcXVlc3QsIElkZW50aXR5LlJvbGVJdGVtPihyZXF1ZXN0KTtcbiAgfVxuXG4gIHVwZGF0ZVJvbGUoYm9keTogSWRlbnRpdHkuUm9sZUl0ZW0pOiBPYnNlcnZhYmxlPElkZW50aXR5LlJvbGVJdGVtPiB7XG4gICAgY29uc3QgdXJsID0gYC9hcGkvaWRlbnRpdHkvcm9sZS8ke2JvZHkuaWR9YDtcbiAgICBkZWxldGUgYm9keS5pZDtcblxuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxJZGVudGl0eS5Sb2xlSXRlbT4gPSB7XG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgdXJsLFxuICAgICAgYm9keSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PElkZW50aXR5LlJvbGVJdGVtLCBJZGVudGl0eS5Sb2xlSXRlbT4ocmVxdWVzdCk7XG4gIH1cblxuICBnZXRVc2VycyhwYXJhbXMgPSB7fSBhcyBBQlAuUGFnZVF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxJZGVudGl0eS5Vc2VyUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8bnVsbD4gPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiAnL2FwaS9pZGVudGl0eS91c2VyJyxcbiAgICAgIHBhcmFtcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PG51bGwsIElkZW50aXR5LlVzZXJSZXNwb25zZT4ocmVxdWVzdCk7XG4gIH1cblxuICBnZXRVc2VyQnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJZGVudGl0eS5Vc2VySXRlbT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IGAvYXBpL2lkZW50aXR5L3VzZXIvJHtpZH1gLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgSWRlbnRpdHkuVXNlckl0ZW0+KHJlcXVlc3QpO1xuICB9XG5cbiAgZ2V0VXNlclJvbGVzKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElkZW50aXR5LlJvbGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IGAvYXBpL2lkZW50aXR5L3VzZXIvJHtpZH0vcm9sZXNgLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgSWRlbnRpdHkuUm9sZVJlc3BvbnNlPihyZXF1ZXN0KTtcbiAgfVxuXG4gIGRlbGV0ZVVzZXIoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB1cmw6IGAvYXBpL2lkZW50aXR5L3VzZXIvJHtpZH1gLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgbnVsbD4ocmVxdWVzdCk7XG4gIH1cblxuICBhZGRVc2VyKGJvZHk6IElkZW50aXR5LlVzZXJTYXZlUmVxdWVzdCk6IE9ic2VydmFibGU8SWRlbnRpdHkuVXNlckl0ZW0+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8SWRlbnRpdHkuVXNlclNhdmVSZXF1ZXN0PiA9IHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgdXJsOiAnL2FwaS9pZGVudGl0eS91c2VyJyxcbiAgICAgIGJvZHksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxJZGVudGl0eS5Vc2VyU2F2ZVJlcXVlc3QsIElkZW50aXR5LlVzZXJJdGVtPihyZXF1ZXN0KTtcbiAgfVxuXG4gIHVwZGF0ZVVzZXIoYm9keTogSWRlbnRpdHkuVXNlckl0ZW0pOiBPYnNlcnZhYmxlPElkZW50aXR5LlVzZXJJdGVtPiB7XG4gICAgY29uc3QgdXJsID0gYC9pZGVudGl0eS91c2Vycy8ke2JvZHkuaWR9YDtcbiAgICBkZWxldGUgYm9keS5pZDtcblxuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxJZGVudGl0eS5Vc2VySXRlbT4gPSB7XG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgdXJsLFxuICAgICAgYm9keSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PElkZW50aXR5LlVzZXJJdGVtLCBJZGVudGl0eS5Vc2VySXRlbT4ocmVxdWVzdCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/lib/states/identity.state.js b/npm/packs/ng/dist/identity/esm2015/lib/states/identity.state.js new file mode 100644 index 0000000000..48c629a2d4 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/lib/states/identity.state.js @@ -0,0 +1,292 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Action, Selector, State } from '@ngxs/store'; +import { switchMap, tap, pluck } from 'rxjs/operators'; +import { IdentityAddRole, IdentityAddUser, IdentityDeleteRole, IdentityDeleteUser, IdentityGetRoleById, IdentityGetRoles, IdentityGetUserById, IdentityGetUsers, IdentityUpdateRole, IdentityUpdateUser, IdentityGetUserRoles, } from '../actions/identity.actions'; +import { IdentityService } from '../services/identity.service'; +let IdentityState = class IdentityState { + /** + * @param {?} identityService + */ + constructor(identityService) { + this.identityService = identityService; + } + /** + * @param {?} __0 + * @return {?} + */ + static getRoles({ roles }) { + return roles.items; + } + /** + * @param {?} __0 + * @return {?} + */ + static getRolesTotalCount({ roles }) { + return roles.totalCount; + } + /** + * @param {?} __0 + * @return {?} + */ + static getUsers({ users }) { + return users.items; + } + /** + * @param {?} __0 + * @return {?} + */ + static getUsersTotalCount({ users }) { + return users.totalCount; + } + /** + * @param {?} __0 + * @return {?} + */ + getRoles({ patchState }) { + return this.identityService.getRoles().pipe(tap((/** + * @param {?} roles + * @return {?} + */ + roles => patchState({ + roles, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + getRole({ patchState }, { payload }) { + return this.identityService.getRoleById(payload).pipe(tap((/** + * @param {?} selectedRole + * @return {?} + */ + selectedRole => patchState({ + selectedRole, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + deleteRole({ dispatch }, { payload }) { + return this.identityService.deleteRole(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetRoles())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + addRole({ dispatch }, { payload }) { + return this.identityService.addRole(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetRoles())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + updateRole({ getState, dispatch }, { payload }) { + return dispatch(new IdentityGetRoleById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + () => this.identityService.updateRole(Object.assign({}, getState().selectedRole, payload)))), switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetRoles())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + getUsers({ patchState }, { payload }) { + return this.identityService.getUsers(payload).pipe(tap((/** + * @param {?} users + * @return {?} + */ + users => patchState({ + users, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + getUser({ patchState }, { payload }) { + return this.identityService.getUserById(payload).pipe(tap((/** + * @param {?} selectedUser + * @return {?} + */ + selectedUser => patchState({ + selectedUser, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + deleteUser({ dispatch }, { payload }) { + return this.identityService.deleteUser(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetUsers())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + addUser({ dispatch }, { payload }) { + return this.identityService.addUser(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetUsers())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + updateUser({ getState, dispatch }, { payload }) { + return dispatch(new IdentityGetUserById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + () => this.identityService.updateUser(Object.assign({}, getState().selectedUser, payload)))), switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetUsers())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + getUserRoles({ patchState }, { payload }) { + return this.identityService.getUserRoles(payload).pipe(pluck('items'), tap((/** + * @param {?} selectedUserRoles + * @return {?} + */ + selectedUserRoles => patchState({ + selectedUserRoles, + })))); + } +}; +tslib_1.__decorate([ + Action(IdentityGetRoles), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) +], IdentityState.prototype, "getRoles", null); +tslib_1.__decorate([ + Action(IdentityGetRoleById), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetRoleById]), + tslib_1.__metadata("design:returntype", void 0) +], IdentityState.prototype, "getRole", null); +tslib_1.__decorate([ + Action(IdentityDeleteRole), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetRoleById]), + tslib_1.__metadata("design:returntype", void 0) +], IdentityState.prototype, "deleteRole", null); +tslib_1.__decorate([ + Action(IdentityAddRole), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityAddRole]), + tslib_1.__metadata("design:returntype", void 0) +], IdentityState.prototype, "addRole", null); +tslib_1.__decorate([ + Action(IdentityUpdateRole), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityUpdateRole]), + tslib_1.__metadata("design:returntype", void 0) +], IdentityState.prototype, "updateRole", null); +tslib_1.__decorate([ + Action(IdentityGetUsers), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetUsers]), + tslib_1.__metadata("design:returntype", void 0) +], IdentityState.prototype, "getUsers", null); +tslib_1.__decorate([ + Action(IdentityGetUserById), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetUserById]), + tslib_1.__metadata("design:returntype", void 0) +], IdentityState.prototype, "getUser", null); +tslib_1.__decorate([ + Action(IdentityDeleteUser), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetUserById]), + tslib_1.__metadata("design:returntype", void 0) +], IdentityState.prototype, "deleteUser", null); +tslib_1.__decorate([ + Action(IdentityAddUser), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityAddUser]), + tslib_1.__metadata("design:returntype", void 0) +], IdentityState.prototype, "addUser", null); +tslib_1.__decorate([ + Action(IdentityUpdateUser), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityUpdateUser]), + tslib_1.__metadata("design:returntype", void 0) +], IdentityState.prototype, "updateUser", null); +tslib_1.__decorate([ + Action(IdentityGetUserRoles), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetUserRoles]), + tslib_1.__metadata("design:returntype", void 0) +], IdentityState.prototype, "getUserRoles", null); +tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Array) +], IdentityState, "getRoles", null); +tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Number) +], IdentityState, "getRolesTotalCount", null); +tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Array) +], IdentityState, "getUsers", null); +tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Number) +], IdentityState, "getUsersTotalCount", null); +IdentityState = tslib_1.__decorate([ + State({ + name: 'IdentityState', + defaults: (/** @type {?} */ ({ roles: {}, selectedRole: {}, users: {}, selectedUser: {} })), + }), + tslib_1.__metadata("design:paramtypes", [IdentityService]) +], IdentityState); +export { IdentityState }; +if (false) { + /** + * @type {?} + * @private + */ + IdentityState.prototype.identityService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuc3RhdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9pZGVudGl0eS5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixvQkFBb0IsR0FDckIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7SUFNbEQsYUFBYSxTQUFiLGFBQWE7Ozs7SUFxQnhCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUFHLENBQUM7Ozs7O0lBbkJ4RCxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFrQjtRQUN2QyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDckIsQ0FBQzs7Ozs7SUFHRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQWtCO1FBQ2pELE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUMxQixDQUFDOzs7OztJQUdELE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQWtCO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztJQUNyQixDQUFDOzs7OztJQUdELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBa0I7UUFDakQsT0FBTyxLQUFLLENBQUMs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QyxNQUFNLENBQUMsa0JBQWtCLENBQUM7O3FEQUN5QyxtQkFBbUI7OytDQUV0RjtBQUdEO0lBREMsTUFBTSxDQUFDLGVBQWUsQ0FBQzs7cURBQ3lDLGVBQWU7OzRDQUUvRTtBQUdEO0lBREMsTUFBTSxDQUFDLGtCQUFrQixDQUFDOztxREFDbUQsa0JBQWtCOzsrQ0FLL0Y7QUFHRDtJQURDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQzs7cURBQzJDLGdCQUFnQjs7NkNBUW5GO0FBR0Q7SUFEQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7O3FEQUN1QyxtQkFBbUI7OzRDQVFyRjtBQUdEO0lBREMsTUFBTSxDQUFDLGtCQUFrQixDQUFDOztxREFDeUMsbUJBQW1COzsrQ0FFdEY7QUFHRDtJQURDLE1BQU0sQ0FBQyxlQUFlLENBQUM7O3FEQUN5QyxlQUFlOzs0Q0FFL0U7QUFHRDtJQURDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQzs7cURBQ21ELGtCQUFrQjs7K0NBSy9GO0FBR0Q7SUFEQyxNQUFNLENBQUMsb0JBQW9CLENBQUM7O3FEQUMyQyxvQkFBb0I7O2lEQVMzRjtBQS9HRDtJQURDLFFBQVEsRUFBRTs7OzttQ0FHVjtBQUdEO0lBREMsUUFBUSxFQUFFOzs7OzZDQUdWO0FBR0Q7SUFEQyxRQUFRLEVBQUU7Ozs7bUNBR1Y7QUFHRDtJQURDLFFBQVEsRUFBRTs7Ozs2Q0FHVjtBQW5CVSxhQUFhO0lBSnpCLEtBQUssQ0FBaUI7UUFDckIsSUFBSSxFQUFFLGVBQWU7UUFDckIsUUFBUSxFQUFFLG1CQUFBLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxFQUFrQjtLQUN6RixDQUFDOzZDQXNCcUMsZUFBZTtHQXJCekMsYUFBYSxDQWtIekI7U0FsSFksYUFBYTs7Ozs7O0lBcUJaLHdDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRhcCwgcGx1Y2sgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBJZGVudGl0eUFkZFJvbGUsXG4gIElkZW50aXR5QWRkVXNlcixcbiAgSWRlbnRpdHlEZWxldGVSb2xlLFxuICBJZGVudGl0eURlbGV0ZVVzZXIsXG4gIElkZW50aXR5R2V0Um9sZUJ5SWQsXG4gIElkZW50aXR5R2V0Um9sZXMsXG4gIElkZW50aXR5R2V0VXNlckJ5SWQsXG4gIElkZW50aXR5R2V0VXNlcnMsXG4gIElkZW50aXR5VXBkYXRlUm9sZSxcbiAgSWRlbnRpdHlVcGRhdGVVc2VyLFxuICBJZGVudGl0eUdldFVzZXJSb2xlcyxcbn0gZnJvbSAnLi4vYWN0aW9ucy9pZGVudGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IElkZW50aXR5IH0gZnJvbSAnLi4vbW9kZWxzL2lkZW50aXR5JztcbmltcG9ydCB7IElkZW50aXR5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2lkZW50aXR5LnNlcnZpY2UnO1xuXG5AU3RhdGU8SWRlbnRpdHkuU3RhdGU+KHtcbiAgbmFtZTogJ0lkZW50aXR5U3RhdGUnLFxuICBkZWZhdWx0czogeyByb2xlczoge30sIHNlbGVjdGVkUm9sZToge30sIHVzZXJzOiB7fSwgc2VsZWN0ZWRVc2VyOiB7fSB9IGFzIElkZW50aXR5LlN0YXRlLFxufSlcbmV4cG9ydCBjbGFzcyBJZGVudGl0eVN0YXRlIHtcbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldFJvbGVzKHsgcm9sZXMgfTogSWRlbnRpdHkuU3RhdGUpOiBJZGVudGl0eS5Sb2xlSXRlbVtdIHtcbiAgICByZXR1cm4gcm9sZXMuaXRlbXM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBzdGF0aWMgZ2V0Um9sZXNUb3RhbENvdW50KHsgcm9sZXMgfTogSWRlbnRpdHkuU3RhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiByb2xlcy50b3RhbENvdW50O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldFVzZXJzKHsgdXNlcnMgfTogSWRlbnRpdHkuU3RhdGUpOiBJZGVudGl0eS5Vc2VySXRlbVtdIHtcbiAgICByZXR1cm4gdXNlcnMuaXRlbXM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBzdGF0aWMgZ2V0VXNlcnNUb3RhbENvdW50KHsgdXNlcnMgfTogSWRlbnRpdHkuU3RhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB1c2Vycy50b3RhbENvdW50O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpZGVudGl0eVNlcnZpY2U6IElkZW50aXR5U2VydmljZSkge31cblxuICBAQWN0aW9uKElkZW50aXR5R2V0Um9sZXMpXG4gIGdldFJvbGVzKHsgcGF0Y2hTdGF0ZSB9OiBTdGF0ZUNvbnRleHQ8SWRlbnRpdHkuU3RhdGU+KSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlTZXJ2aWNlLmdldFJvbGVzKCkucGlwZShcbiAgICAgIHRhcChyb2xlcyA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICByb2xlcyxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKElkZW50aXR5R2V0Um9sZUJ5SWQpXG4gIGdldFJvbGUoeyBwYXRjaFN0YXRlIH06IFN0YXRlQ29udGV4dDxJZGVudGl0eS5TdGF0ZT4sIHsgcGF5bG9hZCB9OiBJZGVudGl0eUdldFJvbGVCeUlkKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlTZXJ2aWNlLmdldFJvbGVCeUlkKHBheWxvYWQpLnBpcGUoXG4gICAgICB0YXAoc2VsZWN0ZWRSb2xlID0+XG4gICAgICAgIHBhdGNoU3RhdGUoe1xuICAgICAgICAgIHNlbGVjdGVkUm9sZSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKElkZW50aXR5RGVsZXRlUm9sZSlcbiAgZGVsZXRlUm9sZSh7IGRpc3BhdGNoIH06IFN0YXRlQ29udGV4dDxJZGVudGl0eS5TdGF0ZT4sIHsgcGF5bG9hZCB9OiBJZGVudGl0eUdldFJvbGVCeUlkKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlTZXJ2aWNlLmRlbGV0ZVJvbGUocGF5bG9hZCkucGlwZShzd2l0Y2hNYXAoKCkgPT4gZGlzcGF0Y2gobmV3IElkZW50aXR5R2V0Um9sZXMoKSkpKTtcbiAgfVxuXG4gIEBBY3Rpb24oSWRlbnRpdHlBZGRSb2xlKVxuICBhZGRSb2xlKHsgZGlzcGF0Y2ggfTogU3RhdGVDb250ZXh0PElkZW50aXR5LlN0YXRlPiwgeyBwYXlsb2FkIH06IElkZW50aXR5QWRkUm9sZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5U2VydmljZS5hZGRSb2xlKHBheWxvYWQpLnBpcGUoc3dpdGNoTWFwKCgpID0+IGRpc3BhdGNoKG5ldyBJZGVudGl0eUdldFJvbGVzKCkpKSk7XG4gIH1cblxuICBAQWN0aW9uKElkZW50aXR5VXBkYXRlUm9sZSlcbiAgdXBkYXRlUm9sZSh7IGdldFN0YXRlLCBkaXNwYXRjaCB9OiBTdGF0ZUNvbnRleHQ8SWRlbnRpdHkuU3RhdGU+LCB7IHBheWxvYWQgfTogSWRlbnRpdHlVcGRhdGVSb2xlKSB7XG4gICAgcmV0dXJuIGRpc3BhdGNoKG5ldyBJZGVudGl0eUdldFJvbGVCeUlkKHBheWxvYWQuaWQpKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuaWRlbnRpdHlTZXJ2aWNlLnVwZGF0ZVJvbGUoeyAuLi5nZXRTdGF0ZSgpLnNlbGVjdGVkUm9sZSwgLi4ucGF5bG9hZCB9KSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gZGlzcGF0Y2gobmV3IElkZW50aXR5R2V0Um9sZXMoKSkpLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKElkZW50aXR5R2V0VXNlcnMpXG4gIGdldFVzZXJzKHsgcGF0Y2hTdGF0ZSB9OiBTdGF0ZUNvbnRleHQ8SWRlbnRpdHkuU3RhdGU+LCB7IHBheWxvYWQgfTogSWRlbnRpdHlHZXRVc2Vycykge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5U2VydmljZS5nZXRVc2VycyhwYXlsb2FkKS5waXBlKFxuICAgICAgdGFwKHVzZXJzID0+XG4gICAgICAgIHBhdGNoU3RhdGUoe1xuICAgICAgICAgIHVzZXJzLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oSWRlbnRpdHlHZXRVc2VyQnlJZClcbiAgZ2V0VXNlcih7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PElkZW50aXR5LlN0YXRlPiwgeyBwYXlsb2FkIH06IElkZW50aXR5R2V0VXNlckJ5SWQpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eVNlcnZpY2UuZ2V0VXNlckJ5SWQocGF5bG9hZCkucGlwZShcbiAgICAgIHRhcChzZWxlY3RlZFVzZXIgPT5cbiAgICAgICAgcGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgc2VsZWN0ZWRVc2VyLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oSWRlbnRpdHlEZWxldGVVc2VyKVxuICBkZWxldGVVc2VyKHsgZGlzcGF0Y2ggfTogU3RhdGVDb250ZXh0PElkZW50aXR5LlN0YXRlPiwgeyBwYXlsb2FkIH06IElkZW50aXR5R2V0VXNlckJ5SWQpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eVNlcnZpY2UuZGVsZXRlVXNlcihwYXlsb2FkKS5waXBlKHN3aXRjaE1hcCgoKSA9PiBkaXNwYXRjaChuZXcgSWRlbnRpdHlHZXRVc2VycygpKSkpO1xuICB9XG5cbiAgQEFjdGlvbihJZGVudGl0eUFkZFVzZXIpXG4gIGFkZFVzZXIoeyBkaXNwYXRjaCB9OiBTdGF0ZUNvbnRleHQ8SWRlbnRpdHkuU3RhdGU+LCB7IHBheWxvYWQgfTogSWRlbnRpdHlBZGRVc2VyKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlTZXJ2aWNlLmFkZFVzZXIocGF5bG9hZCkucGlwZShzd2l0Y2hNYXAoKCkgPT4gZGlzcGF0Y2gobmV3IElkZW50aXR5R2V0VXNlcnMoKSkpKTtcbiAgfVxuXG4gIEBBY3Rpb24oSWRlbnRpdHlVcGRhdGVVc2VyKVxuICB1cGRhdGVVc2VyKHsgZ2V0U3RhdGUsIGRpc3BhdGNoIH06IFN0YXRlQ29udGV4dDxJZGVudGl0eS5TdGF0ZT4sIHsgcGF5bG9hZCB9OiBJZGVudGl0eVVwZGF0ZVVzZXIpIHtcbiAgICByZXR1cm4gZGlzcGF0Y2gobmV3IElkZW50aXR5R2V0VXNlckJ5SWQocGF5bG9hZC5pZCkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5pZGVudGl0eVNlcnZpY2UudXBkYXRlVXNlcih7IC4uLmdldFN0YXRlKCkuc2VsZWN0ZWRVc2VyLCAuLi5wYXlsb2FkIH0pKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBkaXNwYXRjaChuZXcgSWRlbnRpdHlHZXRVc2VycygpKSksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oSWRlbnRpdHlHZXRVc2VyUm9sZXMpXG4gIGdldFVzZXJSb2xlcyh7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PElkZW50aXR5LlN0YXRlPiwgeyBwYXlsb2FkIH06IElkZW50aXR5R2V0VXNlclJvbGVzKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlTZXJ2aWNlLmdldFVzZXJSb2xlcyhwYXlsb2FkKS5waXBlKFxuICAgICAgcGx1Y2soJ2l0ZW1zJyksXG4gICAgICB0YXAoc2VsZWN0ZWRVc2VyUm9sZXMgPT5cbiAgICAgICAgcGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgc2VsZWN0ZWRVc2VyUm9sZXMsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm2015/public-api.js b/npm/packs/ng/dist/identity/esm2015/public-api.js new file mode 100644 index 0000000000..196a6c1781 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm2015/public-api.js @@ -0,0 +1,16 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/* + * Public API Surface of identity + */ +export { IdentityModule } from './lib/identity.module'; +export { IdentityGetRoles, IdentityGetRoleById, IdentityDeleteRole, IdentityAddRole, IdentityUpdateRole, IdentityGetUsers, IdentityGetUserById, IdentityDeleteUser, IdentityAddUser, IdentityUpdateUser, IdentityGetUserRoles } from './lib/actions/identity.actions'; +export { RolesComponent } from './lib/components/roles/roles.component'; +export { IDENTITY_ROUTES } from './lib/constants/routes'; +export {} from './lib/models/identity'; +export { RoleResolver } from './lib/resolvers/roles.resolver'; +export { IdentityService } from './lib/services/identity.service'; +export { IdentityState } from './lib/states/identity.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuaWRlbnRpdHkvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwrQkFBYyx1QkFBdUIsQ0FBQztBQUN0QyxxT0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQywrQkFBYyx3Q0FBd0MsQ0FBQztBQUN2RCxnQ0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxlQUFjLHVCQUF1QixDQUFDO0FBQ3RDLDZCQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGdDQUFjLGlDQUFpQyxDQUFDO0FBQ2hELDhCQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBpZGVudGl0eVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2lkZW50aXR5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb2xlcy9yb2xlcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzb2x2ZXJzL3JvbGVzLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2lkZW50aXR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGVzL2lkZW50aXR5LnN0YXRlJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/abp-ng.identity.js b/npm/packs/ng/dist/identity/esm5/abp-ng.identity.js new file mode 100644 index 0000000000..ae772c9508 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/abp-ng.identity.js @@ -0,0 +1,12 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { IdentityModule, IdentityGetRoles, IdentityGetRoleById, IdentityDeleteRole, IdentityAddRole, IdentityUpdateRole, IdentityGetUsers, IdentityGetUserById, IdentityDeleteUser, IdentityAddUser, IdentityUpdateUser, IdentityGetUserRoles, RolesComponent, IDENTITY_ROUTES, RoleResolver, IdentityService, IdentityState } from './public-api'; +export { UsersComponent as ɵb } from './lib/components/users/users.component'; +export { IdentityRoutingModule as ɵc } from './lib/identity-routing.module'; +export { UserResolver as ɵd } from './lib/resolvers/users.resolver'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmlkZW50aXR5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImFicC1uZy5pZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb1VBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTFFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7VXNlcnNDb21wb25lbnQgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudCc7XG5leHBvcnQge0lkZW50aXR5Um91dGluZ01vZHVsZSBhcyDJtWN9IGZyb20gJy4vbGliL2lkZW50aXR5LXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7SWRlbnRpdHkgYXMgybVhfSBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0IHtVc2VyUmVzb2x2ZXIgYXMgybVkfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdXNlcnMucmVzb2x2ZXInOyJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/lib/actions/identity.actions.js b/npm/packs/ng/dist/identity/esm5/lib/actions/identity.actions.js new file mode 100644 index 0000000000..a723bf9486 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/lib/actions/identity.actions.js @@ -0,0 +1,156 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var IdentityGetRoles = /** @class */ (function () { + function IdentityGetRoles() { + } + IdentityGetRoles.type = '[Identity] Get Roles'; + return IdentityGetRoles; +}()); +export { IdentityGetRoles }; +if (false) { + /** @type {?} */ + IdentityGetRoles.type; +} +var IdentityGetRoleById = /** @class */ (function () { + function IdentityGetRoleById(payload) { + this.payload = payload; + } + IdentityGetRoleById.type = '[Identity] Get Role By Id'; + return IdentityGetRoleById; +}()); +export { IdentityGetRoleById }; +if (false) { + /** @type {?} */ + IdentityGetRoleById.type; + /** @type {?} */ + IdentityGetRoleById.prototype.payload; +} +var IdentityDeleteRole = /** @class */ (function () { + function IdentityDeleteRole(payload) { + this.payload = payload; + } + IdentityDeleteRole.type = '[Identity] Delete Role'; + return IdentityDeleteRole; +}()); +export { IdentityDeleteRole }; +if (false) { + /** @type {?} */ + IdentityDeleteRole.type; + /** @type {?} */ + IdentityDeleteRole.prototype.payload; +} +var IdentityAddRole = /** @class */ (function () { + function IdentityAddRole(payload) { + this.payload = payload; + } + IdentityAddRole.type = '[Identity] Add Role'; + return IdentityAddRole; +}()); +export { IdentityAddRole }; +if (false) { + /** @type {?} */ + IdentityAddRole.type; + /** @type {?} */ + IdentityAddRole.prototype.payload; +} +var IdentityUpdateRole = /** @class */ (function () { + function IdentityUpdateRole(payload) { + this.payload = payload; + } + IdentityUpdateRole.type = '[Identity] Update Role'; + return IdentityUpdateRole; +}()); +export { IdentityUpdateRole }; +if (false) { + /** @type {?} */ + IdentityUpdateRole.type; + /** @type {?} */ + IdentityUpdateRole.prototype.payload; +} +var IdentityGetUsers = /** @class */ (function () { + function IdentityGetUsers(payload) { + this.payload = payload; + } + IdentityGetUsers.type = '[Identity] Get Users'; + return IdentityGetUsers; +}()); +export { IdentityGetUsers }; +if (false) { + /** @type {?} */ + IdentityGetUsers.type; + /** @type {?} */ + IdentityGetUsers.prototype.payload; +} +var IdentityGetUserById = /** @class */ (function () { + function IdentityGetUserById(payload) { + this.payload = payload; + } + IdentityGetUserById.type = '[Identity] Get User By Id'; + return IdentityGetUserById; +}()); +export { IdentityGetUserById }; +if (false) { + /** @type {?} */ + IdentityGetUserById.type; + /** @type {?} */ + IdentityGetUserById.prototype.payload; +} +var IdentityDeleteUser = /** @class */ (function () { + function IdentityDeleteUser(payload) { + this.payload = payload; + } + IdentityDeleteUser.type = '[Identity] Delete User'; + return IdentityDeleteUser; +}()); +export { IdentityDeleteUser }; +if (false) { + /** @type {?} */ + IdentityDeleteUser.type; + /** @type {?} */ + IdentityDeleteUser.prototype.payload; +} +var IdentityAddUser = /** @class */ (function () { + function IdentityAddUser(payload) { + this.payload = payload; + } + IdentityAddUser.type = '[Identity] Add User'; + return IdentityAddUser; +}()); +export { IdentityAddUser }; +if (false) { + /** @type {?} */ + IdentityAddUser.type; + /** @type {?} */ + IdentityAddUser.prototype.payload; +} +var IdentityUpdateUser = /** @class */ (function () { + function IdentityUpdateUser(payload) { + this.payload = payload; + } + IdentityUpdateUser.type = '[Identity] Update User'; + return IdentityUpdateUser; +}()); +export { IdentityUpdateUser }; +if (false) { + /** @type {?} */ + IdentityUpdateUser.type; + /** @type {?} */ + IdentityUpdateUser.prototype.payload; +} +var IdentityGetUserRoles = /** @class */ (function () { + function IdentityGetUserRoles(payload) { + this.payload = payload; + } + IdentityGetUserRoles.type = '[Identity] Get User Roles'; + return IdentityGetUserRoles; +}()); +export { IdentityGetUserRoles }; +if (false) { + /** @type {?} */ + IdentityGetUserRoles.type; + /** @type {?} */ + IdentityGetUserRoles.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuaWRlbnRpdHkvIiwic291cmNlcyI6WyJsaWIvYWN0aW9ucy9pZGVudGl0eS5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQTtJQUFBO0lBRUEsQ0FBQztJQURpQixxQkFBSSxHQUFHLHNCQUFzQixDQUFDO0lBQ2hELHVCQUFDO0NBQUEsQUFGRCxJQUVDO1NBRlksZ0JBQWdCOzs7SUFDM0Isc0JBQThDOztBQUdoRDtJQUVFLDZCQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7SUFEdEIsd0JBQUksR0FBRywyQkFBMkIsQ0FBQztJQUVyRCwwQkFBQztDQUFBLEFBSEQsSUFHQztTQUhZLG1CQUFtQjs7O0lBQzlCLHlCQUFtRDs7SUFDdkMsc0NBQXNCOztBQUdwQztJQUVFLDRCQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7SUFEdEIsdUJBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUVsRCx5QkFBQztDQUFBLEFBSEQsSUFHQztTQUhZLGtCQUFrQjs7O0lBQzdCLHdCQUFnRDs7SUFDcEMscUNBQXNCOztBQUdwQztJQUVFLHlCQUFtQixPQUFpQztRQUFqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtJQUFHLENBQUM7SUFEeEMsb0JBQUksR0FBRyxxQkFBcUIsQ0FBQztJQUUvQyxzQkFBQztDQUFBLEFBSEQsSUFHQztTQUhZLGVBQWU7OztJQUMxQixxQkFBNkM7O0lBQ2pDLGtDQUF3Qzs7QUFHdEQ7SUFFRSw0QkFBbUIsT0FBMEI7UUFBMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7SUFBRyxDQUFDO0lBRGpDLHVCQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFbEQseUJBQUM7Q0FBQSxBQUhELElBR0M7U0FIWSxrQkFBa0I7OztJQUM3Qix3QkFBZ0Q7O0lBQ3BDLHFDQUFpQzs7QUFHL0M7SUFFRSwwQkFBbUIsT0FBNkI7UUFBN0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7SUFBRyxDQUFDO0lBRHBDLHFCQUFJLEdBQUcsc0JBQXNCLENBQUM7SUFFaEQsdUJBQUM7Q0FBQSxBQUhELElBR0M7U0FIWSxnQkFBZ0I7OztJQUMzQixzQkFBOEM7O0lBQ2xDLG1DQUFvQzs7QUFHbEQ7SUFFRSw2QkFBbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDO0lBRHRCLHdCQUFJLEdBQUcsMkJBQTJCLENBQUM7SUFFckQsMEJBQUM7Q0FBQSxBQUhELElBR0M7U0FIWSxtQkFBbUI7OztJQUM5Qix5QkFBbUQ7O0lBQ3ZDLHNDQUFzQjs7QUFHcEM7SUFFRSw0QkFBbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDO0lBRHRCLHVCQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFbEQseUJBQUM7Q0FBQSxBQUhELElBR0M7U0FIWSxrQkFBa0I7OztJQUM3Qix3QkFBZ0Q7O0lBQ3BDLHFDQUFzQjs7QUFHcEM7SUFFRSx5QkFBbUIsT0FBaUM7UUFBakMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7SUFBRyxDQUFDO0lBRHhDLG9CQUFJLEdBQUcscUJBQXFCLENBQUM7SUFFL0Msc0JBQUM7Q0FBQSxBQUhELElBR0M7U0FIWSxlQUFlOzs7SUFDMUIscUJBQTZDOztJQUNqQyxrQ0FBd0M7O0FBR3REO0lBRUUsNEJBQW1CLE9BQWtEO1FBQWxELFlBQU8sR0FBUCxPQUFPLENBQTJDO0lBQUcsQ0FBQztJQUR6RCx1QkFBSSxHQUFHLHdCQUF3QixDQUFDO0lBRWxELHlCQUFDO0NBQUEsQUFIRCxJQUdDO1NBSFksa0JBQWtCOzs7SUFDN0Isd0JBQWdEOztJQUNwQyxxQ0FBeUQ7O0FBR3ZFO0lBRUUsOEJBQW1CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQUcsQ0FBQztJQUR0Qix5QkFBSSxHQUFHLDJCQUEyQixDQUFDO0lBRXJELDJCQUFDO0NBQUEsQUFIRCxJQUdDO1NBSFksb0JBQW9COzs7SUFDL0IsMEJBQW1EOztJQUN2Qyx1Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJZGVudGl0eSB9IGZyb20gJy4uL21vZGVscy9pZGVudGl0eSc7XG5pbXBvcnQgeyBBQlAgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlHZXRSb2xlcyB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tJZGVudGl0eV0gR2V0IFJvbGVzJztcbn1cblxuZXhwb3J0IGNsYXNzIElkZW50aXR5R2V0Um9sZUJ5SWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbSWRlbnRpdHldIEdldCBSb2xlIEJ5IElkJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHN0cmluZykge31cbn1cblxuZXhwb3J0IGNsYXNzIElkZW50aXR5RGVsZXRlUm9sZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tJZGVudGl0eV0gRGVsZXRlIFJvbGUnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogc3RyaW5nKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlBZGRSb2xlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0lkZW50aXR5XSBBZGQgUm9sZSc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBJZGVudGl0eS5Sb2xlU2F2ZVJlcXVlc3QpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBJZGVudGl0eVVwZGF0ZVJvbGUge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbSWRlbnRpdHldIFVwZGF0ZSBSb2xlJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IElkZW50aXR5LlJvbGVJdGVtKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlHZXRVc2VycyB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tJZGVudGl0eV0gR2V0IFVzZXJzJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ/OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlHZXRVc2VyQnlJZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tJZGVudGl0eV0gR2V0IFVzZXIgQnkgSWQnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogc3RyaW5nKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlEZWxldGVVc2VyIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0lkZW50aXR5XSBEZWxldGUgVXNlcic7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBJZGVudGl0eUFkZFVzZXIge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbSWRlbnRpdHldIEFkZCBVc2VyJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IElkZW50aXR5LlVzZXJTYXZlUmVxdWVzdCkge31cbn1cblxuZXhwb3J0IGNsYXNzIElkZW50aXR5VXBkYXRlVXNlciB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tJZGVudGl0eV0gVXBkYXRlIFVzZXInO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogSWRlbnRpdHkuVXNlclNhdmVSZXF1ZXN0ICYgeyBpZDogc3RyaW5nIH0pIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBJZGVudGl0eUdldFVzZXJSb2xlcyB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tJZGVudGl0eV0gR2V0IFVzZXIgUm9sZXMnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogc3RyaW5nKSB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/lib/components/roles/roles.component.js b/npm/packs/ng/dist/identity/esm5/lib/components/roles/roles.component.js new file mode 100644 index 0000000000..022d34f6a6 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/lib/components/roles/roles.component.js @@ -0,0 +1,180 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { Select, Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { FormBuilder, Validators } from '@angular/forms'; +import { IdentityState } from '../../states/identity.state'; +import { IdentityUpdateRole, IdentityAddRole, IdentityDeleteRole, IdentityGetRoleById, } from '../../actions/identity.actions'; +import { pluck } from 'rxjs/operators'; +import { ConfirmationService } from '@abp/ng.theme.shared'; +var RolesComponent = /** @class */ (function () { + function RolesComponent(confirmationService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + this.visiblePermissions = false; + } + /** + * @return {?} + */ + RolesComponent.prototype.createForm = /** + * @return {?} + */ + function () { + this.form = this.fb.group({ + name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + isDefault: [this.selected.isDefault || false], + isPublic: [this.selected.isPublic || false], + }); + }; + /** + * @return {?} + */ + RolesComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.createForm(); + this.modalService.open(this.modalContent); + }; + /** + * @return {?} + */ + RolesComponent.prototype.onAdd = /** + * @return {?} + */ + function () { + this.selected = (/** @type {?} */ ({})); + this.openModal(); + }; + /** + * @param {?} id + * @return {?} + */ + RolesComponent.prototype.onEdit = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + this.store + .dispatch(new IdentityGetRoleById(id)) + .pipe(pluck('IdentityState', 'selectedRole')) + .subscribe((/** + * @param {?} selectedRole + * @return {?} + */ + function (selectedRole) { + _this.selected = selectedRole; + _this.openModal(); + })); + }; + /** + * @return {?} + */ + RolesComponent.prototype.save = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.form.valid) + return; + this.store + .dispatch(this.selected.id + ? new IdentityUpdateRole(tslib_1.__assign({}, this.form.value, { id: this.selected.id })) + : new IdentityAddRole(this.form.value)) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @param {?} name + * @return {?} + */ + RolesComponent.prototype.delete = /** + * @param {?} id + * @param {?} name + * @return {?} + */ + function (id, name) { + var _this = this; + this.confirmationService + .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + if (status === "confirm" /* confirm */) { + _this.store.dispatch(new IdentityDeleteRole(id)); + } + })); + }; + RolesComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-roles', + template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}\n
\n \n
\n
\n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n\n
\n \n \n
\n
\n
\n\n\n" + }] } + ]; + /** @nocollapse */ + RolesComponent.ctorParameters = function () { return [ + { type: ConfirmationService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } + ]; }; + RolesComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + tslib_1.__decorate([ + Select(IdentityState.getRoles), + tslib_1.__metadata("design:type", Observable) + ], RolesComponent.prototype, "roles$", void 0); + return RolesComponent; +}()); +export { RolesComponent }; +if (false) { + /** @type {?} */ + RolesComponent.prototype.roles$; + /** @type {?} */ + RolesComponent.prototype.form; + /** @type {?} */ + RolesComponent.prototype.selected; + /** @type {?} */ + RolesComponent.prototype.visiblePermissions; + /** @type {?} */ + RolesComponent.prototype.providerKey; + /** @type {?} */ + RolesComponent.prototype.modalContent; + /** + * @type {?} + * @private + */ + RolesComponent.prototype.confirmationService; + /** + * @type {?} + * @private + */ + RolesComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + RolesComponent.prototype.fb; + /** + * @type {?} + * @private + */ + RolesComponent.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3JvbGVzL3JvbGVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsbUJBQW1CLEdBQ3BCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBRXBFO0lBbUJFLHdCQUNVLG1CQUF3QyxFQUN4QyxZQUFzQixFQUN0QixFQUFlLEVBQ2YsS0FBWTtRQUhaLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQVU7UUFDdEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQU87UUFYdEIsdUJBQWtCLEdBQVksS0FBSyxDQUFDO0lBWWpDLENBQUM7Ozs7SUFFSixtQ0FBVTs7O0lBQVY7UUFDRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxD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Yzs7O0lBQ3pCLGdDQUN3Qzs7SUFFeEMsOEJBQWdCOztJQUVoQixrQ0FBNEI7O0lBRTVCLDRDQUFvQzs7SUFFcEMscUNBQW9COztJQUVwQixzQ0FDK0I7Ozs7O0lBRzdCLDZDQUFnRDs7Ozs7SUFDaEQsc0NBQThCOzs7OztJQUM5Qiw0QkFBdUI7Ozs7O0lBQ3ZCLCtCQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElkZW50aXR5U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZXMvaWRlbnRpdHkuc3RhdGUnO1xuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvaWRlbnRpdHknO1xuaW1wb3J0IHtcbiAgSWRlbnRpdHlVcGRhdGVSb2xlLFxuICBJZGVudGl0eUFkZFJvbGUsXG4gIElkZW50aXR5RGVsZXRlUm9sZSxcbiAgSWRlbnRpdHlHZXRSb2xlQnlJZCxcbn0gZnJvbSAnLi4vLi4vYWN0aW9ucy9pZGVudGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IHBsdWNrIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXJvbGVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JvbGVzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUm9sZXNDb21wb25lbnQge1xuICBAU2VsZWN0KElkZW50aXR5U3RhdGUuZ2V0Um9sZXMpXG4gIHJvbGVzJDogT2JzZXJ2YWJsZTxJZGVudGl0eS5Sb2xlSXRlbVtdPjtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgc2VsZWN0ZWQ6IElkZW50aXR5LlJvbGVJdGVtO1xuXG4gIHZpc2libGVQZXJtaXNzaW9uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWxDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1vZGFsQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICApIHt9XG5cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFt0aGlzLnNlbGVjdGVkLm5hbWUgfHwgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXG4gICAgICBpc0RlZmF1bHQ6IFt0aGlzLnNlbGVjdGVkLmlzRGVmYXVsdCB8fCBmYWxzZV0sXG4gICAgICBpc1B1YmxpYzogW3RoaXMuc2VsZWN0ZWQuaXNQdWJsaWMgfHwgZmFsc2VdLFxuICAgIH0pO1xuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5tb2RhbENvbnRlbnQpO1xuICB9XG5cbiAgb25BZGQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9IGFzIElkZW50aXR5LlJvbGVJdGVtO1xuICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gIH1cblxuICBvbkVkaXQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgSWRlbnRpdHlHZXRSb2xlQnlJZChpZCkpXG4gICAgICAucGlwZShwbHVjaygnSWRlbnRpdHlTdGF0ZScsICdzZWxlY3RlZFJvbGUnKSlcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWRSb2xlID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkUm9sZTtcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLnNlbGVjdGVkLmlkXG4gICAgICAgICAgPyBuZXcgSWRlbnRpdHlVcGRhdGVSb2xlKHsgLi4udGhpcy5mb3JtLnZhbHVlLCBpZDogdGhpcy5zZWxlY3RlZC5pZCB9KVxuICAgICAgICAgIDogbmV3IElkZW50aXR5QWRkUm9sZSh0aGlzLmZvcm0udmFsdWUpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCkpO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxuICAgICAgLndhcm4oJ0FicElkZW50aXR5OjpSb2xlRGVsZXRpb25Db25maXJtYXRpb25NZXNzYWdlJywgJ0FicElkZW50aXR5OjpBcmVZb3VTdXJlJywge1xuICAgICAgICBtZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zOiBbbmFtZV0sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBUb2FzdGVyLlN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBUb2FzdGVyLlN0YXR1cy5jb25maXJtKSB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSWRlbnRpdHlEZWxldGVSb2xlKGlkKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/lib/components/users/users.component.js b/npm/packs/ng/dist/identity/esm5/lib/components/users/users.component.js new file mode 100644 index 0000000000..efa3e6f729 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/lib/components/users/users.component.js @@ -0,0 +1,331 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { Select, Store } from '@ngxs/store'; +import { Observable, combineLatest, Subject } from 'rxjs'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { FormBuilder, Validators } from '@angular/forms'; +import { IdentityState } from '../../states/identity.state'; +import { IdentityUpdateUser, IdentityAddUser, IdentityDeleteUser, IdentityGetUserById, IdentityGetUsers, } from '../../actions/identity.actions'; +import { pluck, filter, map, take, debounceTime } from 'rxjs/operators'; +import { ConfirmationService } from '@abp/ng.theme.shared'; +import snq from 'snq'; +import { IdentityGetUserRoles } from '../../actions/identity.actions'; +import { validatePassword } from '@ngx-validate/core'; +var UsersComponent = /** @class */ (function () { + function UsersComponent(confirmationService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + this.visiblePermissions = false; + this.pageQuery = { + sorting: 'userName', + }; + this.loading = false; + this.search$ = new Subject(); + this.trackByFn = (/** + * @param {?} index + * @param {?} item + * @return {?} + */ + function (index, item) { return Object.keys(item)[0] || index; }); + } + Object.defineProperty(UsersComponent.prototype, "roleGroups", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return snq((/** + * @return {?} + */ + function () { return (/** @type {?} */ (((/** @type {?} */ (_this.form.get('roleNames')))).controls)); }), []); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + UsersComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + var _this = this; + this.search$.pipe(debounceTime(300)).subscribe((/** + * @param {?} value + * @return {?} + */ + function (value) { + _this.pageQuery.filter = value; + _this.get(); + })); + }; + /** + * @return {?} + */ + UsersComponent.prototype.buildForm = /** + * @return {?} + */ + function () { + var _this = this; + this.roles = this.store.selectSnapshot(IdentityState.getRoles); + this.form = this.fb.group({ + password: [ + '', + [ + Validators.required, + Validators.maxLength(32), + Validators.minLength(6), + validatePassword(['small', 'capital', 'number', 'special']), + ], + ], + userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]], + email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]], + name: [this.selected.name || '', [Validators.maxLength(64)]], + surname: [this.selected.surname || '', [Validators.maxLength(64)]], + phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]], + lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + roleNames: this.fb.array(this.roles.map((/** + * @param {?} role + * @return {?} + */ + function (role) { + var _a; + return _this.fb.group((_a = {}, + _a[role.name] = [!!snq((/** + * @return {?} + */ + function () { return _this.selectedUserRoles.find((/** + * @param {?} userRole + * @return {?} + */ + function (userRole) { return userRole.id === role.id; })); }))], + _a)); + }))), + }); + }; + /** + * @return {?} + */ + UsersComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.buildForm(); + this.modalService.open(this.modalContent); + }; + /** + * @return {?} + */ + UsersComponent.prototype.onAdd = /** + * @return {?} + */ + function () { + this.selected = (/** @type {?} */ ({})); + this.selectedUserRoles = (/** @type {?} */ ([])); + this.openModal(); + }; + /** + * @param {?} id + * @return {?} + */ + UsersComponent.prototype.onEdit = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + combineLatest([this.store.dispatch(new IdentityGetUserById(id)), this.store.dispatch(new IdentityGetUserRoles(id))]) + .pipe(filter((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _b = tslib_1.__read(_a, 2), res1 = _b[0], res2 = _b[1]; + return res1 && res2; + })), map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _b = tslib_1.__read(_a, 2), state = _b[0], _ = _b[1]; + return state; + })), pluck('IdentityState'), take(1)) + .subscribe((/** + * @param {?} state + * @return {?} + */ + function (state) { + _this.selected = state.selectedUser; + _this.selectedUserRoles = state.selectedUserRoles; + _this.openModal(); + })); + }; + /** + * @return {?} + */ + UsersComponent.prototype.save = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.form.valid) + return; + var roleNames = this.form.value.roleNames; + /** @type {?} */ + var mappedRoleNames = snq((/** + * @return {?} + */ + function () { return roleNames.filter((/** + * @param {?} role + * @return {?} + */ + function (role) { return !!role[Object.keys(role)[0]]; })).map((/** + * @param {?} role + * @return {?} + */ + function (role) { return Object.keys(role)[0]; })); }), []); + this.store + .dispatch(this.selected.id + ? new IdentityUpdateUser(tslib_1.__assign({}, this.form.value, { id: this.selected.id, roleNames: mappedRoleNames })) + : new IdentityAddUser(tslib_1.__assign({}, this.form.value, { roleNames: mappedRoleNames }))) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @param {?} userName + * @return {?} + */ + UsersComponent.prototype.delete = /** + * @param {?} id + * @param {?} userName + * @return {?} + */ + function (id, userName) { + var _this = this; + this.confirmationService + .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [userName], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + if (status === "confirm" /* confirm */) { + _this.store.dispatch(new IdentityDeleteUser(id)); + } + })); + }; + /** + * @param {?} data + * @return {?} + */ + UsersComponent.prototype.onPageChange = /** + * @param {?} data + * @return {?} + */ + function (data) { + this.pageQuery.skipCount = data.first; + this.pageQuery.maxResultCount = data.rows; + this.get(); + }; + /** + * @return {?} + */ + UsersComponent.prototype.get = /** + * @return {?} + */ + function () { + var _this = this; + this.loading = true; + this.store.dispatch(new IdentityGetUsers(this.pageQuery)).subscribe((/** + * @return {?} + */ + function () { return (_this.loading = false); })); + }; + UsersComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-users', + template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}\n
\n \n
\n
\n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n\n
\n \n \n
\n
\n
\n\n" + }] } + ]; + /** @nocollapse */ + UsersComponent.ctorParameters = function () { return [ + { type: ConfirmationService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } + ]; }; + UsersComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + tslib_1.__decorate([ + Select(IdentityState.getUsers), + tslib_1.__metadata("design:type", Observable) + ], UsersComponent.prototype, "data$", void 0); + tslib_1.__decorate([ + Select(IdentityState.getUsersTotalCount), + tslib_1.__metadata("design:type", Observable) + ], UsersComponent.prototype, "totalCount$", void 0); + return UsersComponent; +}()); +export { UsersComponent }; +if (false) { + /** @type {?} */ + UsersComponent.prototype.data$; + /** @type {?} */ + UsersComponent.prototype.totalCount$; + /** @type {?} */ + UsersComponent.prototype.modalContent; + /** @type {?} */ + UsersComponent.prototype.form; + /** @type {?} */ + UsersComponent.prototype.selected; + /** @type {?} */ + UsersComponent.prototype.selectedUserRoles; + /** @type {?} */ + UsersComponent.prototype.roles; + /** @type {?} */ + UsersComponent.prototype.visiblePermissions; + /** @type {?} */ + UsersComponent.prototype.providerKey; + /** @type {?} */ + UsersComponent.prototype.pageQuery; + /** @type {?} */ + UsersComponent.prototype.loading; + /** @type {?} */ + UsersComponent.prototype.search$; + /** @type {?} */ + UsersComponent.prototype.trackByFn; + /** + * @type {?} + * @private + */ + UsersComponent.prototype.confirmationService; + /** + * @type {?} + * @private + */ + UsersComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + UsersComponent.prototype.fb; + /** + * @type {?} + * @private + */ + UsersComponent.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBMkIsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBOEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixnQkFBZ0IsR0FDakIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUN0QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUd0RDtJQXdDRSx3QkFDVSxtQkFBd0MsRUFDeEMsWUFBc0IsRUFDdEIsRUFBZSxFQUNmLEtBQVk7UUFIWix3QkFBbUIsR0FBbkIsbUJBQW1C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Ozs7OztJQUN2QiwrQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFRyYWNrQnlGdW5jdGlvbiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQXJyYXksIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElkZW50aXR5U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZXMvaWRlbnRpdHkuc3RhdGUnO1xuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvaWRlbnRpdHknO1xuaW1wb3J0IHtcbiAgSWRlbnRpdHlVcGRhdGVVc2VyLFxuICBJZGVudGl0eUFkZFVzZXIsXG4gIElkZW50aXR5RGVsZXRlVXNlcixcbiAgSWRlbnRpdHlHZXRVc2VyQnlJZCxcbiAgSWRlbnRpdHlHZXRVc2Vycyxcbn0gZnJvbSAnLi4vLi4vYWN0aW9ucy9pZGVudGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IHBsdWNrLCBmaWx0ZXIsIG1hcCwgdGFrZSwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcbmltcG9ydCB7IElkZW50aXR5R2V0VXNlclJvbGVzIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9pZGVudGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IHZhbGlkYXRlUGFzc3dvcmQgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXVzZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXJzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAU2VsZWN0KElkZW50aXR5U3RhdGUuZ2V0VXNlcnMpXG4gIGRhdGEkOiBPYnNlcnZhYmxlPElkZW50aXR5LlVzZXJJdGVtW10+O1xuXG4gIEBTZWxlY3QoSWRlbnRpdHlTdGF0ZS5nZXRVc2Vyc1RvdGFsQ291bnQpXG4gIHRvdGFsQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWxDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1vZGFsQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgc2VsZWN0ZWQ6IElkZW50aXR5LlVzZXJJdGVtO1xuXG4gIHNlbGVjdGVkVXNlclJvbGVzOiBJZGVudGl0eS5Sb2xlSXRlbVtdO1xuXG4gIHJvbGVzOiBJZGVudGl0eS5Sb2xlSXRlbVtdO1xuXG4gIHZpc2libGVQZXJtaXNzaW9uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG5cbiAgcGFnZVF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zID0ge1xuICAgIHNvcnRpbmc6ICd1c2VyTmFtZScsXG4gIH07XG5cbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNlYXJjaCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248QWJzdHJhY3RDb250cm9sPiA9IChpbmRleCwgaXRlbSkgPT4gT2JqZWN0LmtleXMoaXRlbSlbMF0gfHwgaW5kZXg7XG5cbiAgZ2V0IHJvbGVHcm91cHMoKTogRm9ybUdyb3VwW10ge1xuICAgIHJldHVybiBzbnEoKCkgPT4gKHRoaXMuZm9ybS5nZXQoJ3JvbGVOYW1lcycpIGFzIEZvcm1BcnJheSkuY29udHJvbHMgYXMgRm9ybUdyb3VwW10sIFtdKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlYXJjaCQucGlwZShkZWJvdW5jZVRpbWUoMzAwKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMucGFnZVF1ZXJ5LmZpbHRlciA9IHZhbHVlO1xuICAgICAgdGhpcy5nZXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGJ1aWxkRm9ybSgpIHtcbiAgICB0aGlzLnJvbGVzID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChJZGVudGl0eVN0YXRlLmdldFJvbGVzKTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgcGFzc3dvcmQ6IFtcbiAgICAgICAgJycsXG4gICAgICAgIFtcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMyKSxcbiAgICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCg2KSxcbiAgICAgICAgICB2YWxpZGF0ZVBhc3N3b3JkKFsnc21hbGwnLCAnY2FwaXRhbCcsICdudW1iZXInLCAnc3BlY2lhbCddKSxcbiAgICAgICAgXSxcbiAgICAgIF0sXG4gICAgICB1c2VyTmFtZTogW3RoaXMuc2VsZWN0ZWQudXNlck5hbWUgfHwgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXG4gICAgICBlbWFpbDogW3RoaXMuc2VsZWN0ZWQuZW1haWwgfHwgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXG4gICAgICBuYW1lOiBbdGhpcy5zZWxlY3RlZC5uYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXV0sXG4gICAgICBzdXJuYW1lOiBbdGhpcy5zZWxlY3RlZC5zdXJuYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXV0sXG4gICAgICBwaG9uZU51bWJlcjogW3RoaXMuc2VsZWN0ZWQucGhvbmVOdW1iZXIgfHwgJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxNildXSxcbiAgICAgIGxvY2tvdXRFbmFibGVkOiBbdGhpcy5zZWxlY3RlZC50d29GYWN0b3JFbmFibGVkIHx8ICh0aGlzLnNlbGVjdGVkLmlkID8gZmFsc2UgOiB0cnVlKV0sXG4gICAgICB0d29GYWN0b3JFbmFibGVkOiBbdGhpcy5zZWxlY3RlZC50d29GYWN0b3JFbmFibGVkIHx8ICh0aGlzLnNlbGVjdGVkLmlkID8gZmFsc2UgOiB0cnVlKV0sXG4gICAgICByb2xlTmFtZXM6IHRoaXMuZmIuYXJyYXkoXG4gICAgICAgIHRoaXMucm9sZXMubWFwKHJvbGUgPT5cbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIFtyb2xlLm5hbWVdOiBbISFzbnEoKCkgPT4gdGhpcy5zZWxlY3RlZFVzZXJSb2xlcy5maW5kKHVzZXJSb2xlID0+IHVzZXJSb2xlLmlkID09PSByb2xlLmlkKSldLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5tb2RhbENvbnRlbnQpO1xuICB9XG5cbiAgb25BZGQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9IGFzIElkZW50aXR5LlVzZXJJdGVtO1xuICAgIHRoaXMuc2VsZWN0ZWRVc2VyUm9sZXMgPSBbXSBhcyBJZGVudGl0eS5Sb2xlSXRlbVtdO1xuICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gIH1cblxuICBvbkVkaXQoaWQ6IHN0cmluZykge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IElkZW50aXR5R2V0VXNlckJ5SWQoaWQpKSwgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSWRlbnRpdHlHZXRVc2VyUm9sZXMoaWQpKV0pXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChbcmVzMSwgcmVzMl0pID0+IHJlczEgJiYgcmVzMiksXG4gICAgICAgIG1hcCgoW3N0YXRlLCBfXSkgPT4gc3RhdGUpLFxuICAgICAgICBwbHVjaygnSWRlbnRpdHlTdGF0ZScpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IElkZW50aXR5LlN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzdGF0ZS5zZWxlY3RlZFVzZXI7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VyUm9sZXMgPSBzdGF0ZS5zZWxlY3RlZFVzZXJSb2xlcztcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgeyByb2xlTmFtZXMgfSA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICBjb25zdCBtYXBwZWRSb2xlTmFtZXMgPSBzbnEoXG4gICAgICAoKSA9PiByb2xlTmFtZXMuZmlsdGVyKHJvbGUgPT4gISFyb2xlW09iamVjdC5rZXlzKHJvbGUpWzBdXSkubWFwKHJvbGUgPT4gT2JqZWN0LmtleXMocm9sZSlbMF0pLFxuICAgICAgW10sXG4gICAgKTtcblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5pZFxuICAgICAgICAgID8gbmV3IElkZW50aXR5VXBkYXRlVXNlcih7XG4gICAgICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICAgICAgICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWQuaWQsXG4gICAgICAgICAgICAgIHJvbGVOYW1lczogbWFwcGVkUm9sZU5hbWVzLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IG5ldyBJZGVudGl0eUFkZFVzZXIoeyAuLi50aGlzLmZvcm0udmFsdWUsIHJvbGVOYW1lczogbWFwcGVkUm9sZU5hbWVzIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCkpO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcsIHVzZXJOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2VcbiAgICAgIC53YXJuKCdBYnBJZGVudGl0eTo6VXNlckRlbGV0aW9uQ29uZmlybWF0aW9uTWVzc2FnZScsICdBYnBJZGVudGl0eTo6QXJlWW91U3VyZScsIHtcbiAgICAgICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtczogW3VzZXJOYW1lXSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IFRvYXN0ZXIuU3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm0pIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBJZGVudGl0eURlbGV0ZVVzZXIoaWQpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UoZGF0YSkge1xuICAgIHRoaXMucGFnZVF1ZXJ5LnNraXBDb3VudCA9IGRhdGEuZmlyc3Q7XG4gICAgdGhpcy5wYWdlUXVlcnkubWF4UmVzdWx0Q291bnQgPSBkYXRhLnJvd3M7XG5cbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgZ2V0KCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSWRlbnRpdHlHZXRVc2Vycyh0aGlzLnBhZ2VRdWVyeSkpLnN1YnNjcmliZSgoKSA9PiAodGhpcy5sb2FkaW5nID0gZmFsc2UpKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/lib/constants/routes.js b/npm/packs/ng/dist/identity/esm5/lib/constants/routes.js new file mode 100644 index 0000000000..119719ce9c --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/lib/constants/routes.js @@ -0,0 +1,25 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +export var IDENTITY_ROUTES = (/** @type {?} */ ([ + { + name: 'Administration', + path: '', + order: 1, + wrapper: true, + }, + { + name: 'Identity', + path: 'identity', + order: 1, + parentName: 'Administration', + layout: "application" /* application */, + children: [ + { path: 'roles', name: 'Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' }, + { path: 'users', name: 'Users', order: 1, requiredPolicy: 'AbpIdentity.Users' }, + ], + }, +])); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxLQUFPLGVBQWUsR0FBRyxtQkFBQTtJQUM3QjtRQUNFLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsSUFBSSxFQUFFLEVBQUU7UUFDUixLQUFLLEVBQUUsQ0FBQztRQUNSLE9BQU8sRUFBRSxJQUFJO0tBQ2Q7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSxDQUFDO1FBQ1IsVUFBVSxFQUFFLGdCQUFnQjtRQUM1QixNQUFNLGlDQUF5QjtRQUMvQixRQUFRLEVBQUU7WUFDUixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRTtZQUMvRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRTtTQUNoRjtLQUNGO0NBQ0YsRUFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlTGF5b3V0VHlwZSwgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IGNvbnN0IElERU5USVRZX1JPVVRFUyA9IFtcbiAge1xuICAgIG5hbWU6ICdBZG1pbmlzdHJhdGlvbicsXG4gICAgcGF0aDogJycsXG4gICAgb3JkZXI6IDEsXG4gICAgd3JhcHBlcjogdHJ1ZSxcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdJZGVudGl0eScsXG4gICAgcGF0aDogJ2lkZW50aXR5JyxcbiAgICBvcmRlcjogMSxcbiAgICBwYXJlbnROYW1lOiAnQWRtaW5pc3RyYXRpb24nLFxuICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHsgcGF0aDogJ3JvbGVzJywgbmFtZTogJ1JvbGVzJywgb3JkZXI6IDIsIHJlcXVpcmVkUG9saWN5OiAnQWJwSWRlbnRpdHkuUm9sZXMnIH0sXG4gICAgICB7IHBhdGg6ICd1c2VycycsIG5hbWU6ICdVc2VycycsIG9yZGVyOiAxLCByZXF1aXJlZFBvbGljeTogJ0FicElkZW50aXR5LlVzZXJzJyB9LFxuICAgIF0sXG4gIH0sXG5dIGFzIEFCUC5GdWxsUm91dGVbXTtcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/lib/identity-routing.module.js b/npm/packs/ng/dist/identity/esm5/lib/identity-routing.module.js new file mode 100644 index 0000000000..28f18f85d4 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/lib/identity-routing.module.js @@ -0,0 +1,51 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { RolesComponent } from './components/roles/roles.component'; +import { RoleResolver } from './resolvers/roles.resolver'; +import { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core'; +import { UsersComponent } from './components/users/users.component'; +import { UserResolver } from './resolvers/users.resolver'; +var ɵ0 = { requiredPolicy: 'AbpIdentity.Roles' }, ɵ1 = { requiredPolicy: 'AbpIdentity.Users' }; +/** @type {?} */ +var routes = [ + { path: '', redirectTo: 'roles', pathMatch: 'full' }, + { + path: 'roles', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ0, + children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }], + }, + { + path: 'users', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ1, + children: [ + { + path: '', + component: UsersComponent, + resolve: [RoleResolver, UserResolver], + }, + ], + }, +]; +var IdentityRoutingModule = /** @class */ (function () { + function IdentityRoutingModule() { + } + IdentityRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + providers: [RoleResolver, UserResolver], + },] } + ]; + return IdentityRoutingModule; +}()); +export { IdentityRoutingModule }; +export { ɵ0, ɵ1 }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHktcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL2lkZW50aXR5LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7U0FRaEQsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsT0FPdkMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUU7O0lBYjNDLE1BQU0sR0FBVztJQUNyQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO0lBQ3BEO1FBQ0UsSUFBSSxFQUFFLE9BQU87UUFDYixTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUM7UUFDekMsSUFBSSxJQUF5QztRQUM3QyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO0tBQzdFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsT0FBTztRQUNiLFNBQVMsRUFBRSxzQkFBc0I7UUFDakMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztRQUN6QyxJQUFJLElBQXlDO1FBQzdDLFFBQVEsRUFBRTtZQUNSO2dCQUNFLElBQUksRUFBRSxFQUFFO2dCQUNSLFNBQVMsRUFBRSxjQUFjO2dCQUN6QixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO2FBQ3RDO1NBQ0Y7S0FDRjtDQUNGO0FBRUQ7SUFBQTtJQUtvQyxDQUFDOztnQkFMcEMsUUFBUSxTQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsU0FBUyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztpQkFDeEM7O0lBQ21DLDRCQUFDO0NBQUEsQUFMckMsSUFLcUM7U0FBeEIscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlcywgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFJvbGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JvbGVzL3JvbGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb2xlUmVzb2x2ZXIgfSBmcm9tICcuL3Jlc29sdmVycy9yb2xlcy5yZXNvbHZlcic7XG5pbXBvcnQgeyBEeW5hbWljTGF5b3V0Q29tcG9uZW50LCBBdXRoR3VhcmQsIFBlcm1pc3Npb25HdWFyZCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBVc2Vyc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2Vycy91c2Vycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlclJlc29sdmVyIH0gZnJvbSAnLi9yZXNvbHZlcnMvdXNlcnMucmVzb2x2ZXInO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAgeyBwYXRoOiAnJywgcmVkaXJlY3RUbzogJ3JvbGVzJywgcGF0aE1hdGNoOiAnZnVsbCcgfSxcbiAge1xuICAgIHBhdGg6ICdyb2xlcycsXG4gICAgY29tcG9uZW50OiBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkLCBQZXJtaXNzaW9uR3VhcmRdLFxuICAgIGRhdGE6IHsgcmVxdWlyZWRQb2xpY3k6ICdBYnBJZGVudGl0eS5Sb2xlcycgfSxcbiAgICBjaGlsZHJlbjogW3sgcGF0aDogJycsIGNvbXBvbmVudDogUm9sZXNDb21wb25lbnQsIHJlc29sdmU6IFtSb2xlUmVzb2x2ZXJdIH1dLFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3VzZXJzJyxcbiAgICBjb21wb25lbnQ6IER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmQsIFBlcm1pc3Npb25HdWFyZF0sXG4gICAgZGF0YTogeyByZXF1aXJlZFBvbGljeTogJ0FicElkZW50aXR5LlVzZXJzJyB9LFxuICAgIGNoaWxkcmVuOiBbXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICcnLFxuICAgICAgICBjb21wb25lbnQ6IFVzZXJzQ29tcG9uZW50LFxuICAgICAgICByZXNvbHZlOiBbUm9sZVJlc29sdmVyLCBVc2VyUmVzb2x2ZXJdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1JvbGVSZXNvbHZlciwgVXNlclJlc29sdmVyXSxcbn0pXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlSb3V0aW5nTW9kdWxlIHt9XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/lib/identity.module.js b/npm/packs/ng/dist/identity/esm5/lib/identity.module.js new file mode 100644 index 0000000000..9d17881c7f --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/lib/identity.module.js @@ -0,0 +1,39 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CoreModule } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { NgxsModule } from '@ngxs/store'; +import { RolesComponent } from './components/roles/roles.component'; +import { IdentityRoutingModule } from './identity-routing.module'; +import { IdentityState } from './states/identity.state'; +import { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { UsersComponent } from './components/users/users.component'; +import { PermissionManagementModule } from '@abp/ng.permission-management'; +import { TableModule } from 'primeng/table'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; +var IdentityModule = /** @class */ (function () { + function IdentityModule() { + } + IdentityModule.decorators = [ + { type: NgModule, args: [{ + declarations: [RolesComponent, UsersComponent], + imports: [ + NgxsModule.forFeature([IdentityState]), + CoreModule, + IdentityRoutingModule, + NgbTabsetModule, + ThemeSharedModule, + TableModule, + NgbDropdownModule, + PermissionManagementModule, + NgxValidateCoreModule, + ], + },] } + ]; + return IdentityModule; +}()); +export { IdentityModule }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9pZGVudGl0eS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTNEO0lBQUE7SUFjNkIsQ0FBQzs7Z0JBZDdCLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO29CQUM5QyxPQUFPLEVBQUU7d0JBQ1AsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUN0QyxVQUFVO3dCQUNWLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQiwwQkFBMEI7d0JBQzFCLHFCQUFxQjtxQkFDdEI7aUJBQ0Y7O0lBQzRCLHFCQUFDO0NBQUEsQUFkOUIsSUFjOEI7U0FBakIsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBSb2xlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb2xlcy9yb2xlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWRlbnRpdHlSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9pZGVudGl0eS1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBJZGVudGl0eVN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvaWRlbnRpdHkuc3RhdGUnO1xuaW1wb3J0IHsgTmdiVGFic2V0TW9kdWxlLCBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgVXNlcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlcnMvdXNlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50TW9kdWxlIH0gZnJvbSAnQGFicC9uZy5wZXJtaXNzaW9uLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1JvbGVzQ29tcG9uZW50LCBVc2Vyc0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBOZ3hzTW9kdWxlLmZvckZlYXR1cmUoW0lkZW50aXR5U3RhdGVdKSxcbiAgICBDb3JlTW9kdWxlLFxuICAgIElkZW50aXR5Um91dGluZ01vZHVsZSxcbiAgICBOZ2JUYWJzZXRNb2R1bGUsXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXG4gICAgVGFibGVNb2R1bGUsXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXG4gICAgUGVybWlzc2lvbk1hbmFnZW1lbnRNb2R1bGUsXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJZGVudGl0eU1vZHVsZSB7fVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/lib/models/identity.js b/npm/packs/ng/dist/identity/esm5/lib/models/identity.js new file mode 100644 index 0000000000..c727c77125 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/lib/models/identity.js @@ -0,0 +1,102 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Identity; +(function (Identity) { + /** + * @record + */ + function State() { } + Identity.State = State; + if (false) { + /** @type {?} */ + State.prototype.roles; + /** @type {?} */ + State.prototype.users; + /** @type {?} */ + State.prototype.selectedRole; + /** @type {?} */ + State.prototype.selectedUser; + /** @type {?} */ + State.prototype.selectedUserRoles; + } + /** + * @record + */ + function RoleSaveRequest() { } + Identity.RoleSaveRequest = RoleSaveRequest; + if (false) { + /** @type {?} */ + RoleSaveRequest.prototype.name; + /** @type {?} */ + RoleSaveRequest.prototype.isDefault; + /** @type {?} */ + RoleSaveRequest.prototype.isPublic; + } + /** + * @record + */ + function RoleItem() { } + Identity.RoleItem = RoleItem; + if (false) { + /** @type {?} */ + RoleItem.prototype.isStatic; + /** @type {?} */ + RoleItem.prototype.concurrencyStamp; + /** @type {?} */ + RoleItem.prototype.id; + } + /** + * @record + */ + function UserItem() { } + Identity.UserItem = UserItem; + if (false) { + /** @type {?} */ + UserItem.prototype.tenantId; + /** @type {?} */ + UserItem.prototype.emailConfirmed; + /** @type {?} */ + UserItem.prototype.phoneNumberConfirmed; + /** @type {?} */ + UserItem.prototype.isLockedOut; + /** @type {?} */ + UserItem.prototype.concurrencyStamp; + /** @type {?} */ + UserItem.prototype.id; + } + /** + * @record + */ + function User() { } + Identity.User = User; + if (false) { + /** @type {?} */ + User.prototype.userName; + /** @type {?} */ + User.prototype.name; + /** @type {?} */ + User.prototype.surname; + /** @type {?} */ + User.prototype.email; + /** @type {?} */ + User.prototype.phoneNumber; + /** @type {?} */ + User.prototype.twoFactorEnabled; + /** @type {?} */ + User.prototype.lockoutEnabled; + } + /** + * @record + */ + function UserSaveRequest() { } + Identity.UserSaveRequest = UserSaveRequest; + if (false) { + /** @type {?} */ + UserSaveRequest.prototype.password; + /** @type {?} */ + UserSaveRequest.prototype.roleNames; + } +})(Identity || (Identity = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL21vZGVscy9pZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsTUFBTSxLQUFXLFFBQVEsQ0FnRHhCO0FBaERELFdBQWlCLFFBQVE7Ozs7SUFDdkIsb0JBTUM7Ozs7UUFMQyxzQkFBb0I7O1FBQ3BCLHNCQUFvQjs7UUFDcEIsNkJBQXVCOztRQUN2Qiw2QkFBdUI7O1FBQ3ZCLGtDQUE4Qjs7Ozs7SUFLaEMsOEJBSUM7Ozs7UUFIQywrQkFBYTs7UUFDYixvQ0FBbUI7O1FBQ25CLG1DQUFrQjs7Ozs7SUFHcEIsdUJBSUM7Ozs7UUFIQyw0QkFBa0I7O1FBQ2xCLG9DQUF5Qjs7UUFDekIsc0JBQVc7Ozs7O0lBS2IsdUJBT0M7Ozs7UUFOQyw0QkFBaUI7O1FBQ2pCLGtDQUF3Qjs7UUFDeEIsd0NBQThCOztRQUM5QiwrQkFBcUI7O1FBQ3JCLG9DQUF5Qjs7UUFDekIsc0JBQVc7Ozs7O0lBR2IsbUJBUUM7Ozs7UUFQQyx3QkFBaUI7O1FBQ2pCLG9CQUFhOztRQUNiLHVCQUFnQjs7UUFDaEIscUJBQWM7O1FBQ2QsMkJBQW9COztRQUNwQixnQ0FBdUI7O1FBQ3ZCLDhCQUFxQjs7Ozs7SUFHdkIsOEJBR0M7Ozs7UUFGQyxtQ0FBaUI7O1FBQ2pCLG9DQUFvQjs7QUFFeEIsQ0FBQyxFQWhEZ0IsUUFBUSxLQUFSLFFBQVEsUUFnRHhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IG5hbWVzcGFjZSBJZGVudGl0eSB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xuICAgIHJvbGVzOiBSb2xlUmVzcG9uc2U7XG4gICAgdXNlcnM6IFVzZXJSZXNwb25zZTtcbiAgICBzZWxlY3RlZFJvbGU6IFJvbGVJdGVtO1xuICAgIHNlbGVjdGVkVXNlcjogVXNlckl0ZW07XG4gICAgc2VsZWN0ZWRVc2VyUm9sZXM6IFJvbGVJdGVtW107XG4gIH1cblxuICBleHBvcnQgdHlwZSBSb2xlUmVzcG9uc2UgPSBBQlAuUGFnZWRSZXNwb25zZTxSb2xlSXRlbT47XG5cbiAgZXhwb3J0IGludGVyZmFjZSBSb2xlU2F2ZVJlcXVlc3Qge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBpc0RlZmF1bHQ6IGJvb2xlYW47XG4gICAgaXNQdWJsaWM6IGJvb2xlYW47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFJvbGVJdGVtIGV4dGVuZHMgUm9sZVNhdmVSZXF1ZXN0IHtcbiAgICBpc1N0YXRpYzogYm9vbGVhbjtcbiAgICBjb25jdXJyZW5jeVN0YW1wOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIFVzZXJSZXNwb25zZSA9IEFCUC5QYWdlZFJlc3BvbnNlPFVzZXJJdGVtPjtcblxuICBleHBvcnQgaW50ZXJmYWNlIFVzZXJJdGVtIGV4dGVuZHMgVXNlciB7XG4gICAgdGVuYW50SWQ6IHN0cmluZztcbiAgICBlbWFpbENvbmZpcm1lZDogYm9vbGVhbjtcbiAgICBwaG9uZU51bWJlckNvbmZpcm1lZDogYm9vbGVhbjtcbiAgICBpc0xvY2tlZE91dDogYm9vbGVhbjtcbiAgICBjb25jdXJyZW5jeVN0YW1wOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XG4gICAgdXNlck5hbWU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc3VybmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgICB0d29GYWN0b3JFbmFibGVkOiB0cnVlO1xuICAgIGxvY2tvdXRFbmFibGVkOiB0cnVlO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBVc2VyU2F2ZVJlcXVlc3QgZXh0ZW5kcyBVc2VyIHtcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIHJvbGVOYW1lczogc3RyaW5nW107XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/lib/resolvers/roles.resolver.js b/npm/packs/ng/dist/identity/esm5/lib/resolvers/roles.resolver.js new file mode 100644 index 0000000000..3dfe3b7829 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/lib/resolvers/roles.resolver.js @@ -0,0 +1,41 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { IdentityGetRoles } from '../actions/identity.actions'; +import { IdentityState } from '../states/identity.state'; +var RoleResolver = /** @class */ (function () { + function RoleResolver(store) { + this.store = store; + } + /** + * @return {?} + */ + RoleResolver.prototype.resolve = /** + * @return {?} + */ + function () { + /** @type {?} */ + var roles = this.store.selectSnapshot(IdentityState.getRoles); + return roles && roles.length ? null : this.store.dispatch(new IdentityGetRoles()); + }; + RoleResolver.decorators = [ + { type: Injectable } + ]; + /** @nocollapse */ + RoleResolver.ctorParameters = function () { return [ + { type: Store } + ]; }; + return RoleResolver; +}()); +export { RoleResolver }; +if (false) { + /** + * @type {?} + * @private + */ + RoleResolver.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL3Jlc29sdmVycy9yb2xlcy5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RDtJQUVFLHNCQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7SUFFcEMsOEJBQU87OztJQUFQOztZQUNRLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQy9ELE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQzs7Z0JBUEYsVUFBVTs7OztnQkFMRixLQUFLOztJQWFkLG1CQUFDO0NBQUEsQUFSRCxJQVFDO1NBUFksWUFBWTs7Ozs7O0lBQ1gsNkJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzb2x2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IElkZW50aXR5R2V0Um9sZXMgfSBmcm9tICcuLi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi9tb2RlbHMvaWRlbnRpdHknO1xuaW1wb3J0IHsgSWRlbnRpdHlTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcy9pZGVudGl0eS5zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSb2xlUmVzb2x2ZXIgaW1wbGVtZW50cyBSZXNvbHZlPElkZW50aXR5LlN0YXRlPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIHJlc29sdmUoKSB7XG4gICAgY29uc3Qgcm9sZXMgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KElkZW50aXR5U3RhdGUuZ2V0Um9sZXMpO1xuICAgIHJldHVybiByb2xlcyAmJiByb2xlcy5sZW5ndGggPyBudWxsIDogdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSWRlbnRpdHlHZXRSb2xlcygpKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/lib/resolvers/users.resolver.js b/npm/packs/ng/dist/identity/esm5/lib/resolvers/users.resolver.js new file mode 100644 index 0000000000..596b2837f9 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/lib/resolvers/users.resolver.js @@ -0,0 +1,41 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { IdentityGetUsers } from '../actions/identity.actions'; +import { IdentityState } from '../states/identity.state'; +var UserResolver = /** @class */ (function () { + function UserResolver(store) { + this.store = store; + } + /** + * @return {?} + */ + UserResolver.prototype.resolve = /** + * @return {?} + */ + function () { + /** @type {?} */ + var users = this.store.selectSnapshot(IdentityState.getUsers); + return users && users.length ? null : this.store.dispatch(new IdentityGetUsers()); + }; + UserResolver.decorators = [ + { type: Injectable } + ]; + /** @nocollapse */ + UserResolver.ctorParameters = function () { return [ + { type: Store } + ]; }; + return UserResolver; +}()); +export { UserResolver }; +if (false) { + /** + * @type {?} + * @private + */ + UserResolver.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL3Jlc29sdmVycy91c2Vycy5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RDtJQUVFLHNCQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7SUFFcEMsOEJBQU87OztJQUFQOztZQUNRLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQy9ELE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQzs7Z0JBUEYsVUFBVTs7OztnQkFMRixLQUFLOztJQWFkLG1CQUFDO0NBQUEsQUFSRCxJQVFDO1NBUFksWUFBWTs7Ozs7O0lBQ1gsNkJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzb2x2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IElkZW50aXR5R2V0VXNlcnMgfSBmcm9tICcuLi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi9tb2RlbHMvaWRlbnRpdHknO1xuaW1wb3J0IHsgSWRlbnRpdHlTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcy9pZGVudGl0eS5zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVc2VyUmVzb2x2ZXIgaW1wbGVtZW50cyBSZXNvbHZlPElkZW50aXR5LlN0YXRlPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIHJlc29sdmUoKSB7XG4gICAgY29uc3QgdXNlcnMgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KElkZW50aXR5U3RhdGUuZ2V0VXNlcnMpO1xuICAgIHJldHVybiB1c2VycyAmJiB1c2Vycy5sZW5ndGggPyBudWxsIDogdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSWRlbnRpdHlHZXRVc2VycygpKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/lib/services/identity.service.js b/npm/packs/ng/dist/identity/esm5/lib/services/identity.service.js new file mode 100644 index 0000000000..3dcb52ba5b --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/lib/services/identity.service.js @@ -0,0 +1,219 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { RestService } from '@abp/ng.core'; +import * as i0 from "@angular/core"; +import * as i1 from "@abp/ng.core"; +var IdentityService = /** @class */ (function () { + function IdentityService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + IdentityService.prototype.getRoles = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/identity/role', + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.getRoleById = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/identity/role/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.deleteRole = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'DELETE', + url: "/api/identity/role/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.addRole = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: '/api/identity/role', + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.updateRole = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var url = "/api/identity/role/" + body.id; + delete body.id; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?=} params + * @return {?} + */ + IdentityService.prototype.getUsers = /** + * @param {?=} params + * @return {?} + */ + function (params) { + if (params === void 0) { params = (/** @type {?} */ ({})); } + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/identity/user', + params: params, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.getUserById = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/identity/user/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.getUserRoles = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/identity/user/" + id + "/roles", + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.deleteUser = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'DELETE', + url: "/api/identity/user/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.addUser = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: '/api/identity/user', + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.updateUser = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var url = "/identity/users/" + body.id; + delete body.id; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + body: body, + }; + return this.rest.request(request); + }; + IdentityService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + IdentityService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ IdentityService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function IdentityService_Factory() { return new IdentityService(i0.ɵɵinject(i1.RestService)); }, token: IdentityService, providedIn: "root" }); + return IdentityService; +}()); +export { IdentityService }; +if (false) { + /** + * @type {?} + * @private + */ + IdentityService.prototype.rest; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuaWRlbnRpdHkvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvaWRlbnRpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sY0FBYyxDQUFDOzs7QUFHdEQ7SUFJRSx5QkFBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFHLENBQUM7Ozs7SUFFekMsa0NBQVE7OztJQUFSOztZQUNRLE9BQU8sR0FBdUI7WUFDbEMsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsb0JBQW9CO1NBQzFCO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBOEIsT0FBTyxDQUFDLENBQUM7SUFDakUsQ0FBQzs7Ozs7SUFFRCxxQ0FBVzs7OztJQUFYLFVBQVksRUFBVTs7WUFDZCxPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLHdCQUFzQixFQUFJO1NBQ2hDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBMEIsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7Ozs7SUFFRCxvQ0FBVTs7OztJQUFWLFVBQVcsRUFBVTs7WUFDYixPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLEdBQUcsRUFBRSx3QkFBc0IsRUFBSTtTQUNoQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQTBCLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7Ozs7O0lBRUQsaUNBQU87Ozs7SUFBUCxVQUFRLElBQThCOztZQUM5QixPQUFPLEdBQTJDO1lBQ3RELE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLG9CQUFvQjtZQUN6QixJQUFJLE1BQUE7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQThDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Ozs7O0lBRUQsb0NBQVU7Ozs7SUFBVixVQUFXLElBQXVCOztZQUMxQixHQUFHLEdBQUcsd0JBQXNCLElBQUksQ0FBQyxFQUFJO1FBQzNDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQzs7WUFFVCxPQUFPLEdBQW9DO1lBQy9DLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxLQUFBO1lBQ0gsSUFBSSxNQUFBO1NBQ0w7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUF1QyxPQUFPLENBQUMsQ0FBQztJQUMxRSxDQUFDOzs7OztJQUVELGtDQUFROzs7O0lBQVIsVUFBUyxNQUFrQztRQUFsQyx1QkFBQSxFQUFBLDRCQUFTLEVBQUUsRUFBdUI7O1lBQ25DLE9BQU8sR0FBdUI7WUFDbEMsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsb0JBQW9CO1lBQ3pCLE1BQU0sUUFBQTtTQUNQO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBOEIsT0FBTyxDQUFDLENBQUM7SUFDakUsQ0FBQzs7Ozs7SUFFRCxxQ0FBVzs7OztJQUFYLFVBQVksRUFBVTs7WUFDZCxPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLHdCQUFzQixFQUFJO1NBQ2hDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBMEIsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7Ozs7SUFFRCxzQ0FBWTs7OztJQUFaLFVBQWEsRUFBVTs7WUFDZixPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLHdCQUFzQixFQUFFLFdBQVE7U0FDdEM7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUE4QixPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDOzs7OztJQUVELG9DQUFVOzs7O0lBQVYsVUFBVyxFQUFVOztZQUNiLE9BQU8sR0FBdUI7WUFDbEMsTUFBTSxFQUFFLFFBQVE7WUFDaEIsR0FBRyxFQUFFLHdCQUFzQixFQUFJO1NBQ2hDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBYSxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDOzs7OztJQUVELGlDQUFPOzs7O0lBQVAsVUFBUSxJQUE4Qjs7WUFDOUIsT0FBTyxHQUEyQztZQUN0RCxNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxvQkFBb0I7WUFDekIsSUFBSSxNQUFBO1NBQ0w7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUE4QyxPQUFPLENBQUMsQ0FBQztJQUNqRixDQUFDOzs7OztJQUVELG9DQUFVOzs7O0lBQVYsVUFBVyxJQUF1Qjs7WUFDMUIsR0FBRyxHQUFHLHFCQUFtQixJQUFJLENBQUMsRUFBSTtRQUN4QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7O1lBRVQsT0FBTyxHQUFvQztZQUMvQyxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsS0FBQTtZQUNILElBQUksTUFBQTtTQUNMO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBdUMsT0FBTyxDQUFDLENBQUM7SUFDMUUsQ0FBQzs7Z0JBbEhGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBTFEsV0FBVzs7OzBCQUZwQjtDQXdIQyxBQW5IRCxJQW1IQztTQWhIWSxlQUFlOzs7Ozs7SUFDZCwrQkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSwgUmVzdCwgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IElkZW50aXR5IH0gZnJvbSAnLi4vbW9kZWxzL2lkZW50aXR5JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIElkZW50aXR5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdDogUmVzdFNlcnZpY2UpIHt9XG5cbiAgZ2V0Um9sZXMoKTogT2JzZXJ2YWJsZTxJZGVudGl0eS5Sb2xlUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8bnVsbD4gPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiAnL2FwaS9pZGVudGl0eS9yb2xlJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PG51bGwsIElkZW50aXR5LlJvbGVSZXNwb25zZT4ocmVxdWVzdCk7XG4gIH1cblxuICBnZXRSb2xlQnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJZGVudGl0eS5Sb2xlSXRlbT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IGAvYXBpL2lkZW50aXR5L3JvbGUvJHtpZH1gLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgSWRlbnRpdHkuUm9sZUl0ZW0+KHJlcXVlc3QpO1xuICB9XG5cbiAgZGVsZXRlUm9sZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJZGVudGl0eS5Sb2xlSXRlbT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB1cmw6IGAvYXBpL2lkZW50aXR5L3JvbGUvJHtpZH1gLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgSWRlbnRpdHkuUm9sZUl0ZW0+KHJlcXVlc3QpO1xuICB9XG5cbiAgYWRkUm9sZShib2R5OiBJZGVudGl0eS5Sb2xlU2F2ZVJlcXVlc3QpOiBPYnNlcnZhYmxlPElkZW50aXR5LlJvbGVJdGVtPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PElkZW50aXR5LlJvbGVTYXZlUmVxdWVzdD4gPSB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogJy9hcGkvaWRlbnRpdHkvcm9sZScsXG4gICAgICBib2R5LFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8SWRlbnRpdHkuUm9sZVNhdmVSZXF1ZXN0LCBJZGVudGl0eS5Sb2xlSXRlbT4ocmVxdWVzdCk7XG4gIH1cblxuICB1cGRhdGVSb2xlKGJvZHk6IElkZW50aXR5LlJvbGVJdGVtKTogT2JzZXJ2YWJsZTxJZGVudGl0eS5Sb2xlSXRlbT4ge1xuICAgIGNvbnN0IHVybCA9IGAvYXBpL2lkZW50aXR5L3JvbGUvJHtib2R5LmlkfWA7XG4gICAgZGVsZXRlIGJvZHkuaWQ7XG5cbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8SWRlbnRpdHkuUm9sZUl0ZW0+ID0ge1xuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIHVybCxcbiAgICAgIGJvZHksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxJZGVudGl0eS5Sb2xlSXRlbSwgSWRlbnRpdHkuUm9sZUl0ZW0+KHJlcXVlc3QpO1xuICB9XG5cbiAgZ2V0VXNlcnMocGFyYW1zID0ge30gYXMgQUJQLlBhZ2VRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8SWRlbnRpdHkuVXNlclJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PG51bGw+ID0ge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogJy9hcGkvaWRlbnRpdHkvdXNlcicsXG4gICAgICBwYXJhbXMsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxudWxsLCBJZGVudGl0eS5Vc2VyUmVzcG9uc2U+KHJlcXVlc3QpO1xuICB9XG5cbiAgZ2V0VXNlckJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SWRlbnRpdHkuVXNlckl0ZW0+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8bnVsbD4gPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiBgL2FwaS9pZGVudGl0eS91c2VyLyR7aWR9YCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PG51bGwsIElkZW50aXR5LlVzZXJJdGVtPihyZXF1ZXN0KTtcbiAgfVxuXG4gIGdldFVzZXJSb2xlcyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJZGVudGl0eS5Sb2xlUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8bnVsbD4gPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiBgL2FwaS9pZGVudGl0eS91c2VyLyR7aWR9L3JvbGVzYCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PG51bGwsIElkZW50aXR5LlJvbGVSZXNwb25zZT4ocmVxdWVzdCk7XG4gIH1cblxuICBkZWxldGVVc2VyKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8bnVsbD4gPSB7XG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgdXJsOiBgL2FwaS9pZGVudGl0eS91c2VyLyR7aWR9YCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PG51bGwsIG51bGw+KHJlcXVlc3QpO1xuICB9XG5cbiAgYWRkVXNlcihib2R5OiBJZGVudGl0eS5Vc2VyU2F2ZVJlcXVlc3QpOiBPYnNlcnZhYmxlPElkZW50aXR5LlVzZXJJdGVtPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PElkZW50aXR5LlVzZXJTYXZlUmVxdWVzdD4gPSB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogJy9hcGkvaWRlbnRpdHkvdXNlcicsXG4gICAgICBib2R5LFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8SWRlbnRpdHkuVXNlclNhdmVSZXF1ZXN0LCBJZGVudGl0eS5Vc2VySXRlbT4ocmVxdWVzdCk7XG4gIH1cblxuICB1cGRhdGVVc2VyKGJvZHk6IElkZW50aXR5LlVzZXJJdGVtKTogT2JzZXJ2YWJsZTxJZGVudGl0eS5Vc2VySXRlbT4ge1xuICAgIGNvbnN0IHVybCA9IGAvaWRlbnRpdHkvdXNlcnMvJHtib2R5LmlkfWA7XG4gICAgZGVsZXRlIGJvZHkuaWQ7XG5cbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8SWRlbnRpdHkuVXNlckl0ZW0+ID0ge1xuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIHVybCxcbiAgICAgIGJvZHksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxJZGVudGl0eS5Vc2VySXRlbSwgSWRlbnRpdHkuVXNlckl0ZW0+KHJlcXVlc3QpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/lib/states/identity.state.js b/npm/packs/ng/dist/identity/esm5/lib/states/identity.state.js new file mode 100644 index 0000000000..fbaffaaae9 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/lib/states/identity.state.js @@ -0,0 +1,397 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Action, Selector, State } from '@ngxs/store'; +import { switchMap, tap, pluck } from 'rxjs/operators'; +import { IdentityAddRole, IdentityAddUser, IdentityDeleteRole, IdentityDeleteUser, IdentityGetRoleById, IdentityGetRoles, IdentityGetUserById, IdentityGetUsers, IdentityUpdateRole, IdentityUpdateUser, IdentityGetUserRoles, } from '../actions/identity.actions'; +import { IdentityService } from '../services/identity.service'; +var IdentityState = /** @class */ (function () { + function IdentityState(identityService) { + this.identityService = identityService; + } + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getRoles = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var roles = _a.roles; + return roles.items; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getRolesTotalCount = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var roles = _a.roles; + return roles.totalCount; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getUsers = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var users = _a.users; + return users.items; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getUsersTotalCount = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var users = _a.users; + return users.totalCount; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.prototype.getRoles = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var patchState = _a.patchState; + return this.identityService.getRoles().pipe(tap((/** + * @param {?} roles + * @return {?} + */ + function (roles) { + return patchState({ + roles: roles, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getRoleById(payload).pipe(tap((/** + * @param {?} selectedRole + * @return {?} + */ + function (selectedRole) { + return patchState({ + selectedRole: selectedRole, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.deleteRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.deleteRole(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetRoles()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.addRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.addRole(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetRoles()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.updateRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var _this = this; + var getState = _a.getState, dispatch = _a.dispatch; + var payload = _b.payload; + return dispatch(new IdentityGetRoleById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + function () { return _this.identityService.updateRole(tslib_1.__assign({}, getState().selectedRole, payload)); })), switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetRoles()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getUsers = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getUsers(payload).pipe(tap((/** + * @param {?} users + * @return {?} + */ + function (users) { + return patchState({ + users: users, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getUserById(payload).pipe(tap((/** + * @param {?} selectedUser + * @return {?} + */ + function (selectedUser) { + return patchState({ + selectedUser: selectedUser, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.deleteUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.deleteUser(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetUsers()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.addUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.addUser(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetUsers()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.updateUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var _this = this; + var getState = _a.getState, dispatch = _a.dispatch; + var payload = _b.payload; + return dispatch(new IdentityGetUserById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + function () { return _this.identityService.updateUser(tslib_1.__assign({}, getState().selectedUser, payload)); })), switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetUsers()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getUserRoles = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getUserRoles(payload).pipe(pluck('items'), tap((/** + * @param {?} selectedUserRoles + * @return {?} + */ + function (selectedUserRoles) { + return patchState({ + selectedUserRoles: selectedUserRoles, + }); + }))); + }; + tslib_1.__decorate([ + Action(IdentityGetRoles), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) + ], IdentityState.prototype, "getRoles", null); + tslib_1.__decorate([ + Action(IdentityGetRoleById), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetRoleById]), + tslib_1.__metadata("design:returntype", void 0) + ], IdentityState.prototype, "getRole", null); + tslib_1.__decorate([ + Action(IdentityDeleteRole), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetRoleById]), + tslib_1.__metadata("design:returntype", void 0) + ], IdentityState.prototype, "deleteRole", null); + tslib_1.__decorate([ + Action(IdentityAddRole), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityAddRole]), + tslib_1.__metadata("design:returntype", void 0) + ], IdentityState.prototype, "addRole", null); + tslib_1.__decorate([ + Action(IdentityUpdateRole), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityUpdateRole]), + tslib_1.__metadata("design:returntype", void 0) + ], IdentityState.prototype, "updateRole", null); + tslib_1.__decorate([ + Action(IdentityGetUsers), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetUsers]), + tslib_1.__metadata("design:returntype", void 0) + ], IdentityState.prototype, "getUsers", null); + tslib_1.__decorate([ + Action(IdentityGetUserById), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetUserById]), + tslib_1.__metadata("design:returntype", void 0) + ], IdentityState.prototype, "getUser", null); + tslib_1.__decorate([ + Action(IdentityDeleteUser), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetUserById]), + tslib_1.__metadata("design:returntype", void 0) + ], IdentityState.prototype, "deleteUser", null); + tslib_1.__decorate([ + Action(IdentityAddUser), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityAddUser]), + tslib_1.__metadata("design:returntype", void 0) + ], IdentityState.prototype, "addUser", null); + tslib_1.__decorate([ + Action(IdentityUpdateUser), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityUpdateUser]), + tslib_1.__metadata("design:returntype", void 0) + ], IdentityState.prototype, "updateUser", null); + tslib_1.__decorate([ + Action(IdentityGetUserRoles), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, IdentityGetUserRoles]), + tslib_1.__metadata("design:returntype", void 0) + ], IdentityState.prototype, "getUserRoles", null); + tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Array) + ], IdentityState, "getRoles", null); + tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Number) + ], IdentityState, "getRolesTotalCount", null); + tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Array) + ], IdentityState, "getUsers", null); + tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Number) + ], IdentityState, "getUsersTotalCount", null); + IdentityState = tslib_1.__decorate([ + State({ + name: 'IdentityState', + defaults: (/** @type {?} */ ({ roles: {}, selectedRole: {}, users: {}, selectedUser: {} })), + }), + tslib_1.__metadata("design:paramtypes", [IdentityService]) + ], IdentityState); + return IdentityState; +}()); +export { IdentityState }; +if (false) { + /** + * @type {?} + * @private + */ + IdentityState.prototype.identityService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuc3RhdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9pZGVudGl0eS5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixvQkFBb0IsR0FDckIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0lBMkI3RCx1QkFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQzs7Ozs7SUFuQmpELHNCQUFROzs7O0lBQWYsVUFBZ0IsRUFBeUI7WUFBdkIsZ0JBQUs7UUFDckIsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Ozs7O0lBR00sZ0NBQWtCOzs7O0lBQXpCLFVBQTBCLEVBQXlCO1lBQXZCLGdCQUFLO1FBQy9CLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUMxQixDQUFDOzs7OztJQUdNLHNCQUFROzs7O0lBQWYsVUFBZ0IsRUFBeUI7WUFBdkIsZ0JBQUs7UUFDckIsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Ozs7O0lBR00sZ0NBQWtCOzs7O0lBQXpCLFVBQTBCLEVBQXlCO1lBQXZCLGdCQUFLO1FBQy9CLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUMx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QUFLLENBQWlCO1lBQ3JCLElBQUksRUFBRSxlQUFlO1lBQ3JCLFFBQVEsRUFBRSxtQkFBQSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsRUFBa0I7U0FDekYsQ0FBQztpREFzQnFDLGVBQWU7T0FyQnpDLGFBQWEsQ0FrSHpCO0lBQUQsb0JBQUM7Q0FBQSxJQUFBO1NBbEhZLGFBQWE7Ozs7OztJQXFCWix3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0IH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAsIHBsdWNrIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgSWRlbnRpdHlBZGRSb2xlLFxuICBJZGVudGl0eUFkZFVzZXIsXG4gIElkZW50aXR5RGVsZXRlUm9sZSxcbiAgSWRlbnRpdHlEZWxldGVVc2VyLFxuICBJZGVudGl0eUdldFJvbGVCeUlkLFxuICBJZGVudGl0eUdldFJvbGVzLFxuICBJZGVudGl0eUdldFVzZXJCeUlkLFxuICBJZGVudGl0eUdldFVzZXJzLFxuICBJZGVudGl0eVVwZGF0ZVJvbGUsXG4gIElkZW50aXR5VXBkYXRlVXNlcixcbiAgSWRlbnRpdHlHZXRVc2VyUm9sZXMsXG59IGZyb20gJy4uL2FjdGlvbnMvaWRlbnRpdHkuYWN0aW9ucyc7XG5pbXBvcnQgeyBJZGVudGl0eSB9IGZyb20gJy4uL21vZGVscy9pZGVudGl0eSc7XG5pbXBvcnQgeyBJZGVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pZGVudGl0eS5zZXJ2aWNlJztcblxuQFN0YXRlPElkZW50aXR5LlN0YXRlPih7XG4gIG5hbWU6ICdJZGVudGl0eVN0YXRlJyxcbiAgZGVmYXVsdHM6IHsgcm9sZXM6IHt9LCBzZWxlY3RlZFJvbGU6IHt9LCB1c2Vyczoge30sIHNlbGVjdGVkVXNlcjoge30gfSBhcyBJZGVudGl0eS5TdGF0ZSxcbn0pXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlTdGF0ZSB7XG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRSb2xlcyh7IHJvbGVzIH06IElkZW50aXR5LlN0YXRlKTogSWRlbnRpdHkuUm9sZUl0ZW1bXSB7XG4gICAgcmV0dXJuIHJvbGVzLml0ZW1zO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldFJvbGVzVG90YWxDb3VudCh7IHJvbGVzIH06IElkZW50aXR5LlN0YXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcm9sZXMudG90YWxDb3VudDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRVc2Vycyh7IHVzZXJzIH06IElkZW50aXR5LlN0YXRlKTogSWRlbnRpdHkuVXNlckl0ZW1bXSB7XG4gICAgcmV0dXJuIHVzZXJzLml0ZW1zO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldFVzZXJzVG90YWxDb3VudCh7IHVzZXJzIH06IElkZW50aXR5LlN0YXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdXNlcnMudG90YWxDb3VudDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaWRlbnRpdHlTZXJ2aWNlOiBJZGVudGl0eVNlcnZpY2UpIHt9XG5cbiAgQEFjdGlvbihJZGVudGl0eUdldFJvbGVzKVxuICBnZXRSb2xlcyh7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PElkZW50aXR5LlN0YXRlPikge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5U2VydmljZS5nZXRSb2xlcygpLnBpcGUoXG4gICAgICB0YXAocm9sZXMgPT5cbiAgICAgICAgcGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgcm9sZXMsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihJZGVudGl0eUdldFJvbGVCeUlkKVxuICBnZXRSb2xlKHsgcGF0Y2hTdGF0ZSB9OiBTdGF0ZUNvbnRleHQ8SWRlbnRpdHkuU3RhdGU+LCB7IHBheWxvYWQgfTogSWRlbnRpdHlHZXRSb2xlQnlJZCkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5U2VydmljZS5nZXRSb2xlQnlJZChwYXlsb2FkKS5waXBlKFxuICAgICAgdGFwKHNlbGVjdGVkUm9sZSA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICBzZWxlY3RlZFJvbGUsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihJZGVudGl0eURlbGV0ZVJvbGUpXG4gIGRlbGV0ZVJvbGUoeyBkaXNwYXRjaCB9OiBTdGF0ZUNvbnRleHQ8SWRlbnRpdHkuU3RhdGU+LCB7IHBheWxvYWQgfTogSWRlbnRpdHlHZXRSb2xlQnlJZCkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5U2VydmljZS5kZWxldGVSb2xlKHBheWxvYWQpLnBpcGUoc3dpdGNoTWFwKCgpID0+IGRpc3BhdGNoKG5ldyBJZGVudGl0eUdldFJvbGVzKCkpKSk7XG4gIH1cblxuICBAQWN0aW9uKElkZW50aXR5QWRkUm9sZSlcbiAgYWRkUm9sZSh7IGRpc3BhdGNoIH06IFN0YXRlQ29udGV4dDxJZGVudGl0eS5TdGF0ZT4sIHsgcGF5bG9hZCB9OiBJZGVudGl0eUFkZFJvbGUpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eVNlcnZpY2UuYWRkUm9sZShwYXlsb2FkKS5waXBlKHN3aXRjaE1hcCgoKSA9PiBkaXNwYXRjaChuZXcgSWRlbnRpdHlHZXRSb2xlcygpKSkpO1xuICB9XG5cbiAgQEFjdGlvbihJZGVudGl0eVVwZGF0ZVJvbGUpXG4gIHVwZGF0ZVJvbGUoeyBnZXRTdGF0ZSwgZGlzcGF0Y2ggfTogU3RhdGVDb250ZXh0PElkZW50aXR5LlN0YXRlPiwgeyBwYXlsb2FkIH06IElkZW50aXR5VXBkYXRlUm9sZSkge1xuICAgIHJldHVybiBkaXNwYXRjaChuZXcgSWRlbnRpdHlHZXRSb2xlQnlJZChwYXlsb2FkLmlkKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmlkZW50aXR5U2VydmljZS51cGRhdGVSb2xlKHsgLi4uZ2V0U3RhdGUoKS5zZWxlY3RlZFJvbGUsIC4uLnBheWxvYWQgfSkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IGRpc3BhdGNoKG5ldyBJZGVudGl0eUdldFJvbGVzKCkpKSxcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihJZGVudGl0eUdldFVzZXJzKVxuICBnZXRVc2Vycyh7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PElkZW50aXR5LlN0YXRlPiwgeyBwYXlsb2FkIH06IElkZW50aXR5R2V0VXNlcnMpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eVNlcnZpY2UuZ2V0VXNlcnMocGF5bG9hZCkucGlwZShcbiAgICAgIHRhcCh1c2VycyA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICB1c2VycyxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKElkZW50aXR5R2V0VXNlckJ5SWQpXG4gIGdldFVzZXIoeyBwYXRjaFN0YXRlIH06IFN0YXRlQ29udGV4dDxJZGVudGl0eS5TdGF0ZT4sIHsgcGF5bG9hZCB9OiBJZGVudGl0eUdldFVzZXJCeUlkKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlTZXJ2aWNlLmdldFVzZXJCeUlkKHBheWxvYWQpLnBpcGUoXG4gICAgICB0YXAoc2VsZWN0ZWRVc2VyID0+XG4gICAgICAgIHBhdGNoU3RhdGUoe1xuICAgICAgICAgIHNlbGVjdGVkVXNlcixcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKElkZW50aXR5RGVsZXRlVXNlcilcbiAgZGVsZXRlVXNlcih7IGRpc3BhdGNoIH06IFN0YXRlQ29udGV4dDxJZGVudGl0eS5TdGF0ZT4sIHsgcGF5bG9hZCB9OiBJZGVudGl0eUdldFVzZXJCeUlkKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlTZXJ2aWNlLmRlbGV0ZVVzZXIocGF5bG9hZCkucGlwZShzd2l0Y2hNYXAoKCkgPT4gZGlzcGF0Y2gobmV3IElkZW50aXR5R2V0VXNlcnMoKSkpKTtcbiAgfVxuXG4gIEBBY3Rpb24oSWRlbnRpdHlBZGRVc2VyKVxuICBhZGRVc2VyKHsgZGlzcGF0Y2ggfTogU3RhdGVDb250ZXh0PElkZW50aXR5LlN0YXRlPiwgeyBwYXlsb2FkIH06IElkZW50aXR5QWRkVXNlcikge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5U2VydmljZS5hZGRVc2VyKHBheWxvYWQpLnBpcGUoc3dpdGNoTWFwKCgpID0+IGRpc3BhdGNoKG5ldyBJZGVudGl0eUdldFVzZXJzKCkpKSk7XG4gIH1cblxuICBAQWN0aW9uKElkZW50aXR5VXBkYXRlVXNlcilcbiAgdXBkYXRlVXNlcih7IGdldFN0YXRlLCBkaXNwYXRjaCB9OiBTdGF0ZUNvbnRleHQ8SWRlbnRpdHkuU3RhdGU+LCB7IHBheWxvYWQgfTogSWRlbnRpdHlVcGRhdGVVc2VyKSB7XG4gICAgcmV0dXJuIGRpc3BhdGNoKG5ldyBJZGVudGl0eUdldFVzZXJCeUlkKHBheWxvYWQuaWQpKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuaWRlbnRpdHlTZXJ2aWNlLnVwZGF0ZVVzZXIoeyAuLi5nZXRTdGF0ZSgpLnNlbGVjdGVkVXNlciwgLi4ucGF5bG9hZCB9KSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gZGlzcGF0Y2gobmV3IElkZW50aXR5R2V0VXNlcnMoKSkpLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKElkZW50aXR5R2V0VXNlclJvbGVzKVxuICBnZXRVc2VyUm9sZXMoeyBwYXRjaFN0YXRlIH06IFN0YXRlQ29udGV4dDxJZGVudGl0eS5TdGF0ZT4sIHsgcGF5bG9hZCB9OiBJZGVudGl0eUdldFVzZXJSb2xlcykge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5U2VydmljZS5nZXRVc2VyUm9sZXMocGF5bG9hZCkucGlwZShcbiAgICAgIHBsdWNrKCdpdGVtcycpLFxuICAgICAgdGFwKHNlbGVjdGVkVXNlclJvbGVzID0+XG4gICAgICAgIHBhdGNoU3RhdGUoe1xuICAgICAgICAgIHNlbGVjdGVkVXNlclJvbGVzLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/esm5/public-api.js b/npm/packs/ng/dist/identity/esm5/public-api.js new file mode 100644 index 0000000000..196a6c1781 --- /dev/null +++ b/npm/packs/ng/dist/identity/esm5/public-api.js @@ -0,0 +1,16 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/* + * Public API Surface of identity + */ +export { IdentityModule } from './lib/identity.module'; +export { IdentityGetRoles, IdentityGetRoleById, IdentityDeleteRole, IdentityAddRole, IdentityUpdateRole, IdentityGetUsers, IdentityGetUserById, IdentityDeleteUser, IdentityAddUser, IdentityUpdateUser, IdentityGetUserRoles } from './lib/actions/identity.actions'; +export { RolesComponent } from './lib/components/roles/roles.component'; +export { IDENTITY_ROUTES } from './lib/constants/routes'; +export {} from './lib/models/identity'; +export { RoleResolver } from './lib/resolvers/roles.resolver'; +export { IdentityService } from './lib/services/identity.service'; +export { IdentityState } from './lib/states/identity.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuaWRlbnRpdHkvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwrQkFBYyx1QkFBdUIsQ0FBQztBQUN0QyxxT0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQywrQkFBYyx3Q0FBd0MsQ0FBQztBQUN2RCxnQ0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxlQUFjLHVCQUF1QixDQUFDO0FBQ3RDLDZCQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGdDQUFjLGlDQUFpQyxDQUFDO0FBQ2hELDhCQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBpZGVudGl0eVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2lkZW50aXR5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb2xlcy9yb2xlcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzb2x2ZXJzL3JvbGVzLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2lkZW50aXR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGVzL2lkZW50aXR5LnN0YXRlJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/fesm2015/abp-ng.identity.js b/npm/packs/ng/dist/identity/fesm2015/abp-ng.identity.js new file mode 100644 index 0000000000..f97bec60f5 --- /dev/null +++ b/npm/packs/ng/dist/identity/fesm2015/abp-ng.identity.js @@ -0,0 +1,1079 @@ +import { RestService, DynamicLayoutComponent, AuthGuard, PermissionGuard, CoreModule } from '@abp/ng.core'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild, NgModule } from '@angular/core'; +import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; +import { __decorate, __metadata } from 'tslib'; +import { Observable, Subject, combineLatest } from 'rxjs'; +import { NgbModal, NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { Validators, FormBuilder } from '@angular/forms'; +import { tap, switchMap, pluck, debounceTime, filter, map, take } from 'rxjs/operators'; +import { ConfirmationService, ThemeSharedModule } from '@abp/ng.theme.shared'; +import { RouterModule } from '@angular/router'; +import snq from 'snq'; +import { validatePassword, NgxValidateCoreModule } from '@ngx-validate/core'; +import { PermissionManagementModule } from '@abp/ng.permission-management'; +import { TableModule } from 'primeng/table'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class IdentityGetRoles { +} +IdentityGetRoles.type = '[Identity] Get Roles'; +class IdentityGetRoleById { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityGetRoleById.type = '[Identity] Get Role By Id'; +class IdentityDeleteRole { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityDeleteRole.type = '[Identity] Delete Role'; +class IdentityAddRole { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityAddRole.type = '[Identity] Add Role'; +class IdentityUpdateRole { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityUpdateRole.type = '[Identity] Update Role'; +class IdentityGetUsers { + /** + * @param {?=} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityGetUsers.type = '[Identity] Get Users'; +class IdentityGetUserById { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityGetUserById.type = '[Identity] Get User By Id'; +class IdentityDeleteUser { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityDeleteUser.type = '[Identity] Delete User'; +class IdentityAddUser { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityAddUser.type = '[Identity] Add User'; +class IdentityUpdateUser { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityUpdateUser.type = '[Identity] Update User'; +class IdentityGetUserRoles { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +IdentityGetUserRoles.type = '[Identity] Get User Roles'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class IdentityService { + /** + * @param {?} rest + */ + constructor(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + getRoles() { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/identity/role', + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + getRoleById(id) { + /** @type {?} */ + const request = { + method: 'GET', + url: `/api/identity/role/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + deleteRole(id) { + /** @type {?} */ + const request = { + method: 'DELETE', + url: `/api/identity/role/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + addRole(body) { + /** @type {?} */ + const request = { + method: 'POST', + url: '/api/identity/role', + body, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + updateRole(body) { + /** @type {?} */ + const url = `/api/identity/role/${body.id}`; + delete body.id; + /** @type {?} */ + const request = { + method: 'PUT', + url, + body, + }; + return this.rest.request(request); + } + /** + * @param {?=} params + * @return {?} + */ + getUsers(params = (/** @type {?} */ ({}))) { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/identity/user', + params, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + getUserById(id) { + /** @type {?} */ + const request = { + method: 'GET', + url: `/api/identity/user/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + getUserRoles(id) { + /** @type {?} */ + const request = { + method: 'GET', + url: `/api/identity/user/${id}/roles`, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + deleteUser(id) { + /** @type {?} */ + const request = { + method: 'DELETE', + url: `/api/identity/user/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + addUser(body) { + /** @type {?} */ + const request = { + method: 'POST', + url: '/api/identity/user', + body, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + updateUser(body) { + /** @type {?} */ + const url = `/identity/users/${body.id}`; + delete body.id; + /** @type {?} */ + const request = { + method: 'PUT', + url, + body, + }; + return this.rest.request(request); + } +} +IdentityService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +IdentityService.ctorParameters = () => [ + { type: RestService } +]; +/** @nocollapse */ IdentityService.ngInjectableDef = ɵɵdefineInjectable({ factory: function IdentityService_Factory() { return new IdentityService(ɵɵinject(RestService)); }, token: IdentityService, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +let IdentityState = class IdentityState { + /** + * @param {?} identityService + */ + constructor(identityService) { + this.identityService = identityService; + } + /** + * @param {?} __0 + * @return {?} + */ + static getRoles({ roles }) { + return roles.items; + } + /** + * @param {?} __0 + * @return {?} + */ + static getRolesTotalCount({ roles }) { + return roles.totalCount; + } + /** + * @param {?} __0 + * @return {?} + */ + static getUsers({ users }) { + return users.items; + } + /** + * @param {?} __0 + * @return {?} + */ + static getUsersTotalCount({ users }) { + return users.totalCount; + } + /** + * @param {?} __0 + * @return {?} + */ + getRoles({ patchState }) { + return this.identityService.getRoles().pipe(tap((/** + * @param {?} roles + * @return {?} + */ + roles => patchState({ + roles, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + getRole({ patchState }, { payload }) { + return this.identityService.getRoleById(payload).pipe(tap((/** + * @param {?} selectedRole + * @return {?} + */ + selectedRole => patchState({ + selectedRole, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + deleteRole({ dispatch }, { payload }) { + return this.identityService.deleteRole(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetRoles())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + addRole({ dispatch }, { payload }) { + return this.identityService.addRole(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetRoles())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + updateRole({ getState, dispatch }, { payload }) { + return dispatch(new IdentityGetRoleById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + () => this.identityService.updateRole(Object.assign({}, getState().selectedRole, payload)))), switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetRoles())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + getUsers({ patchState }, { payload }) { + return this.identityService.getUsers(payload).pipe(tap((/** + * @param {?} users + * @return {?} + */ + users => patchState({ + users, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + getUser({ patchState }, { payload }) { + return this.identityService.getUserById(payload).pipe(tap((/** + * @param {?} selectedUser + * @return {?} + */ + selectedUser => patchState({ + selectedUser, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + deleteUser({ dispatch }, { payload }) { + return this.identityService.deleteUser(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetUsers())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + addUser({ dispatch }, { payload }) { + return this.identityService.addUser(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetUsers())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + updateUser({ getState, dispatch }, { payload }) { + return dispatch(new IdentityGetUserById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + () => this.identityService.updateUser(Object.assign({}, getState().selectedUser, payload)))), switchMap((/** + * @return {?} + */ + () => dispatch(new IdentityGetUsers())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + getUserRoles({ patchState }, { payload }) { + return this.identityService.getUserRoles(payload).pipe(pluck('items'), tap((/** + * @param {?} selectedUserRoles + * @return {?} + */ + selectedUserRoles => patchState({ + selectedUserRoles, + })))); + } +}; +__decorate([ + Action(IdentityGetRoles), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], IdentityState.prototype, "getRoles", null); +__decorate([ + Action(IdentityGetRoleById), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetRoleById]), + __metadata("design:returntype", void 0) +], IdentityState.prototype, "getRole", null); +__decorate([ + Action(IdentityDeleteRole), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetRoleById]), + __metadata("design:returntype", void 0) +], IdentityState.prototype, "deleteRole", null); +__decorate([ + Action(IdentityAddRole), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityAddRole]), + __metadata("design:returntype", void 0) +], IdentityState.prototype, "addRole", null); +__decorate([ + Action(IdentityUpdateRole), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityUpdateRole]), + __metadata("design:returntype", void 0) +], IdentityState.prototype, "updateRole", null); +__decorate([ + Action(IdentityGetUsers), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUsers]), + __metadata("design:returntype", void 0) +], IdentityState.prototype, "getUsers", null); +__decorate([ + Action(IdentityGetUserById), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUserById]), + __metadata("design:returntype", void 0) +], IdentityState.prototype, "getUser", null); +__decorate([ + Action(IdentityDeleteUser), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUserById]), + __metadata("design:returntype", void 0) +], IdentityState.prototype, "deleteUser", null); +__decorate([ + Action(IdentityAddUser), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityAddUser]), + __metadata("design:returntype", void 0) +], IdentityState.prototype, "addUser", null); +__decorate([ + Action(IdentityUpdateUser), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityUpdateUser]), + __metadata("design:returntype", void 0) +], IdentityState.prototype, "updateUser", null); +__decorate([ + Action(IdentityGetUserRoles), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUserRoles]), + __metadata("design:returntype", void 0) +], IdentityState.prototype, "getUserRoles", null); +__decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) +], IdentityState, "getRoles", null); +__decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Number) +], IdentityState, "getRolesTotalCount", null); +__decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) +], IdentityState, "getUsers", null); +__decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Number) +], IdentityState, "getUsersTotalCount", null); +IdentityState = __decorate([ + State({ + name: 'IdentityState', + defaults: (/** @type {?} */ ({ roles: {}, selectedRole: {}, users: {}, selectedUser: {} })), + }), + __metadata("design:paramtypes", [IdentityService]) +], IdentityState); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class RolesComponent { + /** + * @param {?} confirmationService + * @param {?} modalService + * @param {?} fb + * @param {?} store + */ + constructor(confirmationService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + this.visiblePermissions = false; + } + /** + * @return {?} + */ + createForm() { + this.form = this.fb.group({ + name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + isDefault: [this.selected.isDefault || false], + isPublic: [this.selected.isPublic || false], + }); + } + /** + * @return {?} + */ + openModal() { + this.createForm(); + this.modalService.open(this.modalContent); + } + /** + * @return {?} + */ + onAdd() { + this.selected = (/** @type {?} */ ({})); + this.openModal(); + } + /** + * @param {?} id + * @return {?} + */ + onEdit(id) { + this.store + .dispatch(new IdentityGetRoleById(id)) + .pipe(pluck('IdentityState', 'selectedRole')) + .subscribe((/** + * @param {?} selectedRole + * @return {?} + */ + selectedRole => { + this.selected = selectedRole; + this.openModal(); + })); + } + /** + * @return {?} + */ + save() { + if (!this.form.valid) + return; + this.store + .dispatch(this.selected.id + ? new IdentityUpdateRole(Object.assign({}, this.form.value, { id: this.selected.id })) + : new IdentityAddRole(this.form.value)) + .subscribe((/** + * @return {?} + */ + () => this.modalService.dismissAll())); + } + /** + * @param {?} id + * @param {?} name + * @return {?} + */ + delete(id, name) { + this.confirmationService + .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + (status) => { + if (status === "confirm" /* confirm */) { + this.store.dispatch(new IdentityDeleteRole(id)); + } + })); + } +} +RolesComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-roles', + template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}\n
\n \n
\n
\n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n\n
\n \n \n
\n
\n
\n\n\n" + }] } +]; +/** @nocollapse */ +RolesComponent.ctorParameters = () => [ + { type: ConfirmationService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } +]; +RolesComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; +__decorate([ + Select(IdentityState.getRoles), + __metadata("design:type", Observable) +], RolesComponent.prototype, "roles$", void 0); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class RoleResolver { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @return {?} + */ + resolve() { + /** @type {?} */ + const roles = this.store.selectSnapshot(IdentityState.getRoles); + return roles && roles.length ? null : this.store.dispatch(new IdentityGetRoles()); + } +} +RoleResolver.decorators = [ + { type: Injectable } +]; +/** @nocollapse */ +RoleResolver.ctorParameters = () => [ + { type: Store } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class UsersComponent { + /** + * @param {?} confirmationService + * @param {?} modalService + * @param {?} fb + * @param {?} store + */ + constructor(confirmationService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + this.visiblePermissions = false; + this.pageQuery = { + sorting: 'userName', + }; + this.loading = false; + this.search$ = new Subject(); + this.trackByFn = (/** + * @param {?} index + * @param {?} item + * @return {?} + */ + (index, item) => Object.keys(item)[0] || index); + } + /** + * @return {?} + */ + get roleGroups() { + return snq((/** + * @return {?} + */ + () => (/** @type {?} */ (((/** @type {?} */ (this.form.get('roleNames')))).controls))), []); + } + /** + * @return {?} + */ + ngOnInit() { + this.search$.pipe(debounceTime(300)).subscribe((/** + * @param {?} value + * @return {?} + */ + value => { + this.pageQuery.filter = value; + this.get(); + })); + } + /** + * @return {?} + */ + buildForm() { + this.roles = this.store.selectSnapshot(IdentityState.getRoles); + this.form = this.fb.group({ + password: [ + '', + [ + Validators.required, + Validators.maxLength(32), + Validators.minLength(6), + validatePassword(['small', 'capital', 'number', 'special']), + ], + ], + userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]], + email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]], + name: [this.selected.name || '', [Validators.maxLength(64)]], + surname: [this.selected.surname || '', [Validators.maxLength(64)]], + phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]], + lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + roleNames: this.fb.array(this.roles.map((/** + * @param {?} role + * @return {?} + */ + role => this.fb.group({ + [role.name]: [!!snq((/** + * @return {?} + */ + () => this.selectedUserRoles.find((/** + * @param {?} userRole + * @return {?} + */ + userRole => userRole.id === role.id))))], + })))), + }); + } + /** + * @return {?} + */ + openModal() { + this.buildForm(); + this.modalService.open(this.modalContent); + } + /** + * @return {?} + */ + onAdd() { + this.selected = (/** @type {?} */ ({})); + this.selectedUserRoles = (/** @type {?} */ ([])); + this.openModal(); + } + /** + * @param {?} id + * @return {?} + */ + onEdit(id) { + combineLatest([this.store.dispatch(new IdentityGetUserById(id)), this.store.dispatch(new IdentityGetUserRoles(id))]) + .pipe(filter((/** + * @param {?} __0 + * @return {?} + */ + ([res1, res2]) => res1 && res2)), map((/** + * @param {?} __0 + * @return {?} + */ + ([state, _]) => state)), pluck('IdentityState'), take(1)) + .subscribe((/** + * @param {?} state + * @return {?} + */ + (state) => { + this.selected = state.selectedUser; + this.selectedUserRoles = state.selectedUserRoles; + this.openModal(); + })); + } + /** + * @return {?} + */ + save() { + if (!this.form.valid) + return; + const { roleNames } = this.form.value; + /** @type {?} */ + const mappedRoleNames = snq((/** + * @return {?} + */ + () => roleNames.filter((/** + * @param {?} role + * @return {?} + */ + role => !!role[Object.keys(role)[0]])).map((/** + * @param {?} role + * @return {?} + */ + role => Object.keys(role)[0]))), []); + this.store + .dispatch(this.selected.id + ? new IdentityUpdateUser(Object.assign({}, this.form.value, { id: this.selected.id, roleNames: mappedRoleNames })) + : new IdentityAddUser(Object.assign({}, this.form.value, { roleNames: mappedRoleNames }))) + .subscribe((/** + * @return {?} + */ + () => this.modalService.dismissAll())); + } + /** + * @param {?} id + * @param {?} userName + * @return {?} + */ + delete(id, userName) { + this.confirmationService + .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [userName], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + (status) => { + if (status === "confirm" /* confirm */) { + this.store.dispatch(new IdentityDeleteUser(id)); + } + })); + } + /** + * @param {?} data + * @return {?} + */ + onPageChange(data) { + this.pageQuery.skipCount = data.first; + this.pageQuery.maxResultCount = data.rows; + this.get(); + } + /** + * @return {?} + */ + get() { + this.loading = true; + this.store.dispatch(new IdentityGetUsers(this.pageQuery)).subscribe((/** + * @return {?} + */ + () => (this.loading = false))); + } +} +UsersComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-users', + template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}\n
\n \n
\n
\n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n\n
\n \n \n
\n
\n
\n\n" + }] } +]; +/** @nocollapse */ +UsersComponent.ctorParameters = () => [ + { type: ConfirmationService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } +]; +UsersComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; +__decorate([ + Select(IdentityState.getUsers), + __metadata("design:type", Observable) +], UsersComponent.prototype, "data$", void 0); +__decorate([ + Select(IdentityState.getUsersTotalCount), + __metadata("design:type", Observable) +], UsersComponent.prototype, "totalCount$", void 0); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class UserResolver { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @return {?} + */ + resolve() { + /** @type {?} */ + const users = this.store.selectSnapshot(IdentityState.getUsers); + return users && users.length ? null : this.store.dispatch(new IdentityGetUsers()); + } +} +UserResolver.decorators = [ + { type: Injectable } +]; +/** @nocollapse */ +UserResolver.ctorParameters = () => [ + { type: Store } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +const ɵ0 = { requiredPolicy: 'AbpIdentity.Roles' }, ɵ1 = { requiredPolicy: 'AbpIdentity.Users' }; +/** @type {?} */ +const routes = [ + { path: '', redirectTo: 'roles', pathMatch: 'full' }, + { + path: 'roles', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ0, + children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }], + }, + { + path: 'users', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ1, + children: [ + { + path: '', + component: UsersComponent, + resolve: [RoleResolver, UserResolver], + }, + ], + }, +]; +class IdentityRoutingModule { +} +IdentityRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + providers: [RoleResolver, UserResolver], + },] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class IdentityModule { +} +IdentityModule.decorators = [ + { type: NgModule, args: [{ + declarations: [RolesComponent, UsersComponent], + imports: [ + NgxsModule.forFeature([IdentityState]), + CoreModule, + IdentityRoutingModule, + NgbTabsetModule, + ThemeSharedModule, + TableModule, + NgbDropdownModule, + PermissionManagementModule, + NgxValidateCoreModule, + ], + },] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +const IDENTITY_ROUTES = (/** @type {?} */ ([ + { + name: 'Administration', + path: '', + order: 1, + wrapper: true, + }, + { + name: 'Identity', + path: 'identity', + order: 1, + parentName: 'Administration', + layout: "application" /* application */, + children: [ + { path: 'roles', name: 'Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' }, + { path: 'users', name: 'Users', order: 1, requiredPolicy: 'AbpIdentity.Users' }, + ], + }, +])); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var Identity; +(function (Identity) { + /** + * @record + */ + function State() { } + Identity.State = State; + /** + * @record + */ + function RoleSaveRequest() { } + Identity.RoleSaveRequest = RoleSaveRequest; + /** + * @record + */ + function RoleItem() { } + Identity.RoleItem = RoleItem; + /** + * @record + */ + function UserItem() { } + Identity.UserItem = UserItem; + /** + * @record + */ + function User() { } + Identity.User = User; + /** + * @record + */ + function UserSaveRequest() { } + Identity.UserSaveRequest = UserSaveRequest; +})(Identity || (Identity = {})); + +export { IDENTITY_ROUTES, IdentityAddRole, IdentityAddUser, IdentityDeleteRole, IdentityDeleteUser, IdentityGetRoleById, IdentityGetRoles, IdentityGetUserById, IdentityGetUserRoles, IdentityGetUsers, IdentityModule, IdentityService, IdentityState, IdentityUpdateRole, IdentityUpdateUser, RoleResolver, RolesComponent, UsersComponent as ɵb, IdentityRoutingModule as ɵc, UserResolver as ɵd }; +//# sourceMappingURL=abp-ng.identity.js.map diff --git a/npm/packs/ng/dist/identity/fesm2015/abp-ng.identity.js.map b/npm/packs/ng/dist/identity/fesm2015/abp-ng.identity.js.map new file mode 100644 index 0000000000..8e7b20ce64 --- /dev/null +++ b/npm/packs/ng/dist/identity/fesm2015/abp-ng.identity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.identity.js","sources":["ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts","ng://@abp/ng.identity/lib/models/identity.ts"],"sourcesContent":["import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class IdentityGetRoles {\n static readonly type = '[Identity] Get Roles';\n}\n\nexport class IdentityGetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class IdentityDeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class IdentityAddRole {\n static readonly type = '[Identity] Add Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class IdentityUpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class IdentityGetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class IdentityGetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class IdentityDeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class IdentityAddUser {\n static readonly type = '[Identity] Add User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class IdentityUpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class IdentityGetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/role',\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/role/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/role/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n addRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/role',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/role/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/user',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/user/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/user/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/user/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n addUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/user',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n IdentityAddRole,\n IdentityAddUser,\n IdentityDeleteRole,\n IdentityDeleteUser,\n IdentityGetRoleById,\n IdentityGetRoles,\n IdentityGetUserById,\n IdentityGetUsers,\n IdentityUpdateRole,\n IdentityUpdateUser,\n IdentityGetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(IdentityGetRoles)\n getRoles({ patchState }: StateContext) {\n return this.identityService.getRoles().pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(IdentityGetRoleById)\n getRole({ patchState }: StateContext, { payload }: IdentityGetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(IdentityDeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: IdentityGetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new IdentityGetRoles())));\n }\n\n @Action(IdentityAddRole)\n addRole({ dispatch }: StateContext, { payload }: IdentityAddRole) {\n return this.identityService.addRole(payload).pipe(switchMap(() => dispatch(new IdentityGetRoles())));\n }\n\n @Action(IdentityUpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: IdentityUpdateRole) {\n return dispatch(new IdentityGetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new IdentityGetRoles())),\n );\n }\n\n @Action(IdentityGetUsers)\n getUsers({ patchState }: StateContext, { payload }: IdentityGetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(IdentityGetUserById)\n getUser({ patchState }: StateContext, { payload }: IdentityGetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(IdentityDeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: IdentityGetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new IdentityGetUsers())));\n }\n\n @Action(IdentityAddUser)\n addUser({ dispatch }: StateContext, { payload }: IdentityAddUser) {\n return this.identityService.addUser(payload).pipe(switchMap(() => dispatch(new IdentityGetUsers())));\n }\n\n @Action(IdentityUpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: IdentityUpdateUser) {\n return dispatch(new IdentityGetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new IdentityGetUsers())),\n );\n }\n\n @Action(IdentityGetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: IdentityGetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { IdentityState } from '../../states/identity.state';\nimport { Identity } from '../../models/identity';\nimport {\n IdentityUpdateRole,\n IdentityAddRole,\n IdentityDeleteRole,\n IdentityGetRoleById,\n} from '../../actions/identity.actions';\nimport { pluck } from 'rxjs/operators';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n roles$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n createForm() {\n this.form = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.modalService.open(this.modalContent);\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new IdentityGetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n\n this.store\n .dispatch(\n this.selected.id\n ? new IdentityUpdateRole({ ...this.form.value, id: this.selected.id })\n : new IdentityAddRole(this.form.value),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new IdentityDeleteRole(id));\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { IdentityGetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new IdentityGetRoles());\n }\n}\n","import { Component, TemplateRef, ViewChild, TrackByFunction, OnInit } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, combineLatest, Subject } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormBuilder, FormGroup, Validators, FormArray, AbstractControl } from '@angular/forms';\nimport { IdentityState } from '../../states/identity.state';\nimport { Identity } from '../../models/identity';\nimport {\n IdentityUpdateUser,\n IdentityAddUser,\n IdentityDeleteUser,\n IdentityGetUserById,\n IdentityGetUsers,\n} from '../../actions/identity.actions';\nimport { pluck, filter, map, take, debounceTime } from 'rxjs/operators';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport snq from 'snq';\nimport { IdentityGetUserRoles } from '../../actions/identity.actions';\nimport { validatePassword } from '@ngx-validate/core';\nimport { ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent implements OnInit {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n loading: boolean = false;\n\n search$ = new Subject();\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(\n private confirmationService: ConfirmationService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n ngOnInit() {\n this.search$.pipe(debounceTime(300)).subscribe(value => {\n this.pageQuery.filter = value;\n this.get();\n });\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n\n this.form = this.fb.group({\n password: [\n '',\n [\n Validators.required,\n Validators.maxLength(32),\n Validators.minLength(6),\n validatePassword(['small', 'capital', 'number', 'special']),\n ],\n ],\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n }\n\n openModal() {\n this.buildForm();\n this.modalService.open(this.modalContent);\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n combineLatest([this.store.dispatch(new IdentityGetUserById(id)), this.store.dispatch(new IdentityGetUserRoles(id))])\n .pipe(\n filter(([res1, res2]) => res1 && res2),\n map(([state, _]) => state),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new IdentityUpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new IdentityAddUser({ ...this.form.value, roleNames: mappedRoleNames }),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new IdentityDeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store.dispatch(new IdentityGetUsers(this.pageQuery)).subscribe(() => (this.loading = false));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { IdentityGetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new IdentityGetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n ],\n})\nexport class IdentityModule {}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = [\n {\n name: 'Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'Identity',\n path: 'identity',\n order: 1,\n parentName: 'Administration',\n layout: eLayoutType.application,\n children: [\n { path: 'roles', name: 'Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n] as ABP.FullRoute[];\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":";;;;;;;;;;;;;;;;;;;AAGA,MAAa,gBAAgB;;AACX,qBAAI,GAAG,sBAAsB,CAAC;MAGnC,mBAAmB;;;;IAE9B,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,wBAAI,GAAG,2BAA2B,CAAC;MAIxC,kBAAkB;;;;IAE7B,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,uBAAI,GAAG,wBAAwB,CAAC;MAIrC,eAAe;;;;IAE1B,YAAmB,OAAiC;QAAjC,YAAO,GAAP,OAAO,CAA0B;KAAI;;AADxC,oBAAI,GAAG,qBAAqB,CAAC;MAIlC,kBAAkB;;;;IAE7B,YAAmB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;KAAI;;AADjC,uBAAI,GAAG,wBAAwB,CAAC;MAIrC,gBAAgB;;;;IAE3B,YAAmB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;KAAI;;AADpC,qBAAI,GAAG,sBAAsB,CAAC;MAInC,mBAAmB;;;;IAE9B,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,wBAAI,GAAG,2BAA2B,CAAC;MAIxC,kBAAkB;;;;IAE7B,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,uBAAI,GAAG,wBAAwB,CAAC;MAIrC,eAAe;;;;IAE1B,YAAmB,OAAiC;QAAjC,YAAO,GAAP,OAAO,CAA0B;KAAI;;AADxC,oBAAI,GAAG,qBAAqB,CAAC;MAIlC,kBAAkB;;;;IAE7B,YAAmB,OAAkD;QAAlD,YAAO,GAAP,OAAO,CAA2C;KAAI;;AADzD,uBAAI,GAAG,wBAAwB,CAAC;MAIrC,oBAAoB;;;;IAE/B,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,yBAAI,GAAG,2BAA2B,CAAC;;;;;;ACrDrD,MAQa,eAAe;;;;IAC1B,YAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;KAAI;;;;IAEzC,QAAQ;;cACA,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,oBAAoB;SAC1B;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B,OAAO,CAAC,CAAC;KAChE;;;;;IAED,WAAW,CAAC,EAAU;;cACd,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,sBAAsB,EAAE,EAAE;SAChC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0B,OAAO,CAAC,CAAC;KAC5D;;;;;IAED,UAAU,CAAC,EAAU;;cACb,OAAO,GAAuB;YAClC,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,sBAAsB,EAAE,EAAE;SAChC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0B,OAAO,CAAC,CAAC;KAC5D;;;;;IAED,OAAO,CAAC,IAA8B;;cAC9B,OAAO,GAA2C;YACtD,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,oBAAoB;YACzB,IAAI;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8C,OAAO,CAAC,CAAC;KAChF;;;;;IAED,UAAU,CAAC,IAAuB;;cAC1B,GAAG,GAAG,sBAAsB,IAAI,CAAC,EAAE,EAAE;QAC3C,OAAO,IAAI,CAAC,EAAE,CAAC;;cAET,OAAO,GAAoC;YAC/C,MAAM,EAAE,KAAK;YACb,GAAG;YACH,IAAI;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAuC,OAAO,CAAC,CAAC;KACzE;;;;;IAED,QAAQ,CAAC,MAAM,sBAAG,EAAE,EAAuB;;cACnC,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,oBAAoB;YACzB,MAAM;SACP;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B,OAAO,CAAC,CAAC;KAChE;;;;;IAED,WAAW,CAAC,EAAU;;cACd,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,sBAAsB,EAAE,EAAE;SAChC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0B,OAAO,CAAC,CAAC;KAC5D;;;;;IAED,YAAY,CAAC,EAAU;;cACf,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,sBAAsB,EAAE,QAAQ;SACtC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B,OAAO,CAAC,CAAC;KAChE;;;;;IAED,UAAU,CAAC,EAAU;;cACb,OAAO,GAAuB;YAClC,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,sBAAsB,EAAE,EAAE;SAChC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAa,OAAO,CAAC,CAAC;KAC/C;;;;;IAED,OAAO,CAAC,IAA8B;;cAC9B,OAAO,GAA2C;YACtD,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,oBAAoB;YACzB,IAAI;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8C,OAAO,CAAC,CAAC;KAChF;;;;;IAED,UAAU,CAAC,IAAuB;;cAC1B,GAAG,GAAG,mBAAmB,IAAI,CAAC,EAAE,EAAE;QACxC,OAAO,IAAI,CAAC,EAAE,CAAC;;cAET,OAAO,GAAoC;YAC/C,MAAM,EAAE,KAAK;YACb,GAAG;YACH,IAAI;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAuC,OAAO,CAAC,CAAC;KACzE;;;YAlHF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;YALQ,WAAW;;;;;;;;ICoBP,aAAa,SAAb,aAAa;;;;IAqBxB,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;KAAI;;;;;IAnBxD,OAAO,QAAQ,CAAC,EAAE,KAAK,EAAkB;QACvC,OAAO,KAAK,CAAC,KAAK,CAAC;KACpB;;;;;IAGD,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAkB;QACjD,OAAO,KAAK,CAAC,UAAU,CAAC;KACzB;;;;;IAGD,OAAO,QAAQ,CAAC,EAAE,KAAK,EAAkB;QACvC,OAAO,KAAK,CAAC,KAAK,CAAC;KACpB;;;;;IAGD,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAkB;QACjD,OAAO,KAAK,CAAC,UAAU,CAAC;KACzB;;;;;IAKD,QAAQ,CAAC,EAAE,UAAU,EAAgC;QACnD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAI,CACzC,GAAG;;;;QAAC,KAAK,IACP,UAAU,CAAC;YACT,KAAK;SACN,CAAC,EACH,CACF,CAAC;KACH;;;;;;IAGD,OAAO,CAAC,EAAE,UAAU,EAAgC,EAAE,EAAE,OAAO,EAAuB;QACpF,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CACnD,GAAG;;;;QAAC,YAAY,IACd,UAAU,CAAC;YACT,YAAY;SACb,CAAC,EACH,CACF,CAAC;KACH;;;;;;IAGD,UAAU,CAAC,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAuB;QACrF,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAC,CAAC,CAAC;KACzG;;;;;;IAGD,OAAO,CAAC,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAmB;QAC9E,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAC,CAAC,CAAC;KACtG;;;;;;IAGD,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAsB;QAC9F,OAAO,QAAQ,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CACvD,SAAS;;;QAAC,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,mBAAM,QAAQ,EAAE,CAAC,YAAY,EAAK,OAAO,EAAG,EAAC,EAC5F,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAC,CAClD,CAAC;KACH;;;;;;IAGD,QAAQ,CAAC,EAAE,UAAU,EAAgC,EAAE,EAAE,OAAO,EAAoB;QAClF,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAChD,GAAG;;;;QAAC,KAAK,IACP,UAAU,CAAC;YACT,KAAK;SACN,CAAC,EACH,CACF,CAAC;KACH;;;;;;IAGD,OAAO,CAAC,EAAE,UAAU,EAAgC,EAAE,EAAE,OAAO,EAAuB;QACpF,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CACnD,GAAG;;;;QAAC,YAAY,IACd,UAAU,CAAC;YACT,YAAY;SACb,CAAC,EACH,CACF,CAAC;KACH;;;;;;IAGD,UAAU,CAAC,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAuB;QACrF,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAC,CAAC,CAAC;KACzG;;;;;;IAGD,OAAO,CAAC,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAmB;QAC9E,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAC,CAAC,CAAC;KACtG;;;;;;IAGD,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAsB;QAC9F,OAAO,QAAQ,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CACvD,SAAS;;;QAAC,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,mBAAM,QAAQ,EAAE,CAAC,YAAY,EAAK,OAAO,EAAG,EAAC,EAC5F,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAC,CAClD,CAAC;KACH;;;;;;IAGD,YAAY,CAAC,EAAE,UAAU,EAAgC,EAAE,EAAE,OAAO,EAAwB;QAC1F,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CACpD,KAAK,CAAC,OAAO,CAAC,EACd,GAAG;;;;QAAC,iBAAiB,IACnB,UAAU,CAAC;YACT,iBAAiB;SAClB,CAAC,EACH,CACF,CAAC;KACH;CACF,CAAA;AA1FCA;IADC,MAAM,CAAC,gBAAgB,CAAC;;;;6CASxB;AAGDA;IADC,MAAM,CAAC,mBAAmB,CAAC;;6CACuC,mBAAmB;;4CAQrF;AAGDA;IADC,MAAM,CAAC,kBAAkB,CAAC;;6CACyC,mBAAmB;;+CAEtF;AAGDA;IADC,MAAM,CAAC,eAAe,CAAC;;6CACyC,eAAe;;4CAE/E;AAGDA;IADC,MAAM,CAAC,kBAAkB,CAAC;;6CACmD,kBAAkB;;+CAK/F;AAGDA;IADC,MAAM,CAAC,gBAAgB,CAAC;;6CAC2C,gBAAgB;;6CAQnF;AAGDA;IADC,MAAM,CAAC,mBAAmB,CAAC;;6CACuC,mBAAmB;;4CAQrF;AAGDA;IADC,MAAM,CAAC,kBAAkB,CAAC;;6CACyC,mBAAmB;;+CAEtF;AAGDA;IADC,MAAM,CAAC,eAAe,CAAC;;6CACyC,eAAe;;4CAE/E;AAGDA;IADC,MAAM,CAAC,kBAAkB,CAAC;;6CACmD,kBAAkB;;+CAK/F;AAGDA;IADC,MAAM,CAAC,oBAAoB,CAAC;;6CAC2C,oBAAoB;;iDAS3F;AA/GDA;IADC,QAAQ,EAAE;;;;mCAGV;AAGDA;IADC,QAAQ,EAAE;;;;6CAGV;AAGDA;IADC,QAAQ,EAAE;;;;mCAGV;AAGDA;IADC,QAAQ,EAAE;;;;6CAGV;AAnBU,aAAa;IAJzB,KAAK,CAAiB;QACrB,IAAI,EAAE,eAAe;QACrB,QAAQ,qBAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAkB;KACzF,CAAC;qCAsBqC,eAAe;GArBzC,aAAa,CAkHzB;;;;;;MCpHY,cAAc;;;;;;;IAezB,YACU,mBAAwC,EACxC,YAAsB,EACtB,EAAe,EACf,KAAY;QAHZ,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,iBAAY,GAAZ,YAAY,CAAU;QACtB,OAAE,GAAF,EAAE,CAAa;QACf,UAAK,GAAL,KAAK,CAAO;QAXtB,uBAAkB,GAAY,KAAK,CAAC;KAYhC;;;;IAEJ,UAAU;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAClF,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC;YAC7C,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC;SAC5C,CAAC,CAAC;KACJ;;;;IAED,SAAS;QACP,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC3C;;;;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,sBAAG,EAAE,EAAqB,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;;;;IAED,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC;aACrC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;aAC5C,SAAS;;;;QAAC,YAAY;YACrB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,EAAC,CAAC;KACN;;;;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAE7B,IAAI,CAAC,KAAK;aACP,QAAQ,CACP,IAAI,CAAC,QAAQ,CAAC,EAAE;cACZ,IAAI,kBAAkB,mBAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAG;cACpE,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CACzC;aACA,SAAS;;;QAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAC,CAAC;KACpD;;;;;;IAED,MAAM,CAAC,EAAU,EAAE,IAAY;QAC7B,IAAI,CAAC,mBAAmB;aACrB,IAAI,CAAC,8CAA8C,EAAE,yBAAyB,EAAE;YAC/E,yBAAyB,EAAE,CAAC,IAAI,CAAC;SAClC,CAAC;aACD,SAAS;;;;QAAC,CAAC,MAAsB;YAChC,IAAI,MAAM,8BAA6B;gBACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;aACjD;SACF,EAAC,CAAC;KACN;;;YA5EF,SAAS,SAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,s4IAAqC;aACtC;;;;YALQ,mBAAmB;YAXnB,QAAQ;YACR,WAAW;YAHH,KAAK;;;2BA+BnB,SAAS,SAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;AAV5CA;IADC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;8BACvB,UAAU;8CAAsB;;;;;;ACtB1C,MAQa,YAAY;;;;IACvB,YAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;KAAI;;;;IAEpC,OAAO;;cACC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC/D,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;KACnF;;;YAPF,UAAU;;;;YALF,KAAK;;;;;;;MCuBD,cAAc;;;;;;;IAoCzB,YACU,mBAAwC,EACxC,YAAsB,EACtB,EAAe,EACf,KAAY;QAHZ,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,iBAAY,GAAZ,YAAY,CAAU;QACtB,OAAE,GAAF,EAAE,CAAa;QACf,UAAK,GAAL,KAAK,CAAO;QAtBtB,uBAAkB,GAAY,KAAK,CAAC;QAIpC,cAAS,GAAwB;YAC/B,OAAO,EAAE,UAAU;SACpB,CAAC;QAEF,YAAO,GAAY,KAAK,CAAC;QAEzB,YAAO,GAAG,IAAI,OAAO,EAAU,CAAC;QAEhC,cAAS;;;;;QAAqC,CAAC,KAAK,EAAE,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAC;KAWzF;;;;IATJ,IAAI,UAAU;QACZ,OAAO,GAAG;;;QAAC,yBAAM,oBAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAe,QAAQ,EAAe,GAAE,EAAE,CAAC,CAAC;KACzF;;;;IASD,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;;;;QAAC,KAAK;YAClD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;SACZ,EAAC,CAAC;KACJ;;;;IAED,SAAS;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE/D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE;gBACR,EAAE;gBACF;oBACE,UAAU,CAAC,QAAQ;oBACnB,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxB,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;oBACvB,gBAAgB,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;iBAC5D;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1F,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACtG,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,cAAc,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;YACrF,gBAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;YACvF,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CACtB,IAAI,CAAC,KAAK,CAAC,GAAG;;;;YAAC,IAAI,IACjB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACZ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG;;;oBAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI;;;;oBAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAC,EAAC,CAAC;aAC7F,CAAC,EACH,CACF;SACF,CAAC,CAAC;KACJ;;;;IAED,SAAS;QACP,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC3C;;;;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,sBAAG,EAAE,EAAqB,CAAC;QACxC,IAAI,CAAC,iBAAiB,sBAAG,EAAE,EAAuB,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;;;;IAED,MAAM,CAAC,EAAU;QACf,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACjH,IAAI,CACH,MAAM;;;;QAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,EAAC,EACtC,GAAG;;;;QAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,EAAC,EAC1B,KAAK,CAAC,eAAe,CAAC,EACtB,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS;;;;QAAC,CAAC,KAAqB;YAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;YACjD,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,EAAC,CAAC;KACN;;;;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;cAEvB,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;;cAC/B,eAAe,GAAG,GAAG;;;QACzB,MAAM,SAAS,CAAC,MAAM;;;;QAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAG;;;;QAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,GAC9F,EAAE,CACH;QAED,IAAI,CAAC,KAAK;aACP,QAAQ,CACP,IAAI,CAAC,QAAQ,CAAC,EAAE;cACZ,IAAI,kBAAkB,mBACjB,IAAI,CAAC,IAAI,CAAC,KAAK,IAClB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EACpB,SAAS,EAAE,eAAe,IAC1B;cACF,IAAI,eAAe,mBAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAE,SAAS,EAAE,eAAe,IAAG,CAC5E;aACA,SAAS;;;QAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAC,CAAC;KACpD;;;;;;IAED,MAAM,CAAC,EAAU,EAAE,QAAgB;QACjC,IAAI,CAAC,mBAAmB;aACrB,IAAI,CAAC,8CAA8C,EAAE,yBAAyB,EAAE;YAC/E,yBAAyB,EAAE,CAAC,QAAQ,CAAC;SACtC,CAAC;aACD,SAAS;;;;QAAC,CAAC,MAAsB;YAChC,IAAI,MAAM,8BAA6B;gBACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;aACjD;SACF,EAAC,CAAC;KACN;;;;;IAED,YAAY,CAAC,IAAI;QACf,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;QAE1C,IAAI,CAAC,GAAG,EAAE,CAAC;KACZ;;;;IAED,GAAG;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;;;QAAC,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAC,CAAC;KACnG;;;YA1JF,SAAS,SAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,s2PAAqC;aACtC;;;;YATQ,mBAAmB;YAZnB,QAAQ;YACR,WAAW;YAHH,KAAK;;;2BA+BnB,SAAS,SAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;AAL5CA;IADC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;8BACxB,UAAU;6CAAsB;AAGvCA;IADC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;8BAC5B,UAAU;mDAAS;;;;;;AC9BlC,MAQa,YAAY;;;;IACvB,YAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;KAAI;;;;IAEpC,OAAO;;cACC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC/D,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;KACnF;;;YAPF,UAAU;;;;YALF,KAAK;;;;;;;ACFd,WAcU,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAOvC,EAAE,cAAc,EAAE,mBAAmB,EAAE;;MAb3C,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;IACpD;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QACzC,IAAI,IAAyC;QAC7C,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;KAC7E;IACD;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QACzC,IAAI,IAAyC;QAC7C,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,EAAE;gBACR,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;aACtC;SACF;KACF;CACF;AAOD,MAAa,qBAAqB;;;YALjC,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;aACxC;;;;;;;ACpCD,MA2Ba,cAAc;;;YAd1B,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;gBAC9C,OAAO,EAAE;oBACP,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC;oBACtC,UAAU;oBACV,qBAAqB;oBACrB,eAAe;oBACf,iBAAiB;oBACjB,WAAW;oBACX,iBAAiB;oBACjB,0BAA0B;oBAC1B,qBAAqB;iBACtB;aACF;;;;;;;;ACxBD,MAAa,eAAe,sBAAG;IAC7B;QACE,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,IAAI;KACd;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,gBAAgB;QAC5B,MAAM;QACN,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE;YAC/E,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE;SAChF;KACF;CACF,EAAmB;;;;;;AClBpB,IAAiB,QAAQ,CAgDxB;AAhDD,WAAiB,QAAQ;;;;IACvB,oBAMC;;;;;IAID,8BAIC;;;;;IAED,uBAIC;;;;;IAID,uBAOC;;;;;IAED,mBAQC;;;;;IAED,8BAGC;;AACH,CAAC,EAhDgB,QAAQ,KAAR,QAAQ,QAgDxB;;;;"} \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/fesm5/abp-ng.identity.js b/npm/packs/ng/dist/identity/fesm5/abp-ng.identity.js new file mode 100644 index 0000000000..dc25c388c8 --- /dev/null +++ b/npm/packs/ng/dist/identity/fesm5/abp-ng.identity.js @@ -0,0 +1,1282 @@ +import { RestService, DynamicLayoutComponent, AuthGuard, PermissionGuard, CoreModule } from '@abp/ng.core'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild, NgModule } from '@angular/core'; +import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; +import { __assign, __decorate, __metadata, __read } from 'tslib'; +import { Observable, combineLatest, Subject } from 'rxjs'; +import { NgbModal, NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { Validators, FormBuilder } from '@angular/forms'; +import { tap, switchMap, pluck, debounceTime, filter, map, take } from 'rxjs/operators'; +import { ConfirmationService, ThemeSharedModule } from '@abp/ng.theme.shared'; +import { RouterModule } from '@angular/router'; +import snq from 'snq'; +import { validatePassword, NgxValidateCoreModule } from '@ngx-validate/core'; +import { PermissionManagementModule } from '@abp/ng.permission-management'; +import { TableModule } from 'primeng/table'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var IdentityGetRoles = /** @class */ (function () { + function IdentityGetRoles() { + } + IdentityGetRoles.type = '[Identity] Get Roles'; + return IdentityGetRoles; +}()); +var IdentityGetRoleById = /** @class */ (function () { + function IdentityGetRoleById(payload) { + this.payload = payload; + } + IdentityGetRoleById.type = '[Identity] Get Role By Id'; + return IdentityGetRoleById; +}()); +var IdentityDeleteRole = /** @class */ (function () { + function IdentityDeleteRole(payload) { + this.payload = payload; + } + IdentityDeleteRole.type = '[Identity] Delete Role'; + return IdentityDeleteRole; +}()); +var IdentityAddRole = /** @class */ (function () { + function IdentityAddRole(payload) { + this.payload = payload; + } + IdentityAddRole.type = '[Identity] Add Role'; + return IdentityAddRole; +}()); +var IdentityUpdateRole = /** @class */ (function () { + function IdentityUpdateRole(payload) { + this.payload = payload; + } + IdentityUpdateRole.type = '[Identity] Update Role'; + return IdentityUpdateRole; +}()); +var IdentityGetUsers = /** @class */ (function () { + function IdentityGetUsers(payload) { + this.payload = payload; + } + IdentityGetUsers.type = '[Identity] Get Users'; + return IdentityGetUsers; +}()); +var IdentityGetUserById = /** @class */ (function () { + function IdentityGetUserById(payload) { + this.payload = payload; + } + IdentityGetUserById.type = '[Identity] Get User By Id'; + return IdentityGetUserById; +}()); +var IdentityDeleteUser = /** @class */ (function () { + function IdentityDeleteUser(payload) { + this.payload = payload; + } + IdentityDeleteUser.type = '[Identity] Delete User'; + return IdentityDeleteUser; +}()); +var IdentityAddUser = /** @class */ (function () { + function IdentityAddUser(payload) { + this.payload = payload; + } + IdentityAddUser.type = '[Identity] Add User'; + return IdentityAddUser; +}()); +var IdentityUpdateUser = /** @class */ (function () { + function IdentityUpdateUser(payload) { + this.payload = payload; + } + IdentityUpdateUser.type = '[Identity] Update User'; + return IdentityUpdateUser; +}()); +var IdentityGetUserRoles = /** @class */ (function () { + function IdentityGetUserRoles(payload) { + this.payload = payload; + } + IdentityGetUserRoles.type = '[Identity] Get User Roles'; + return IdentityGetUserRoles; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var IdentityService = /** @class */ (function () { + function IdentityService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + IdentityService.prototype.getRoles = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/identity/role', + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.getRoleById = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/identity/role/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.deleteRole = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'DELETE', + url: "/api/identity/role/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.addRole = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: '/api/identity/role', + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.updateRole = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var url = "/api/identity/role/" + body.id; + delete body.id; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?=} params + * @return {?} + */ + IdentityService.prototype.getUsers = /** + * @param {?=} params + * @return {?} + */ + function (params) { + if (params === void 0) { params = (/** @type {?} */ ({})); } + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/identity/user', + params: params, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.getUserById = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/identity/user/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.getUserRoles = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/identity/user/" + id + "/roles", + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + IdentityService.prototype.deleteUser = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'DELETE', + url: "/api/identity/user/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.addUser = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: '/api/identity/user', + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + IdentityService.prototype.updateUser = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var url = "/identity/users/" + body.id; + delete body.id; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + body: body, + }; + return this.rest.request(request); + }; + IdentityService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + IdentityService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ IdentityService.ngInjectableDef = ɵɵdefineInjectable({ factory: function IdentityService_Factory() { return new IdentityService(ɵɵinject(RestService)); }, token: IdentityService, providedIn: "root" }); + return IdentityService; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var IdentityState = /** @class */ (function () { + function IdentityState(identityService) { + this.identityService = identityService; + } + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getRoles = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var roles = _a.roles; + return roles.items; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getRolesTotalCount = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var roles = _a.roles; + return roles.totalCount; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getUsers = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var users = _a.users; + return users.items; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.getUsersTotalCount = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var users = _a.users; + return users.totalCount; + }; + /** + * @param {?} __0 + * @return {?} + */ + IdentityState.prototype.getRoles = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var patchState = _a.patchState; + return this.identityService.getRoles().pipe(tap((/** + * @param {?} roles + * @return {?} + */ + function (roles) { + return patchState({ + roles: roles, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getRoleById(payload).pipe(tap((/** + * @param {?} selectedRole + * @return {?} + */ + function (selectedRole) { + return patchState({ + selectedRole: selectedRole, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.deleteRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.deleteRole(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetRoles()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.addRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.addRole(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetRoles()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.updateRole = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var _this = this; + var getState = _a.getState, dispatch = _a.dispatch; + var payload = _b.payload; + return dispatch(new IdentityGetRoleById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + function () { return _this.identityService.updateRole(__assign({}, getState().selectedRole, payload)); })), switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetRoles()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getUsers = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getUsers(payload).pipe(tap((/** + * @param {?} users + * @return {?} + */ + function (users) { + return patchState({ + users: users, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getUserById(payload).pipe(tap((/** + * @param {?} selectedUser + * @return {?} + */ + function (selectedUser) { + return patchState({ + selectedUser: selectedUser, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.deleteUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.deleteUser(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetUsers()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.addUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.identityService.addUser(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetUsers()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.updateUser = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var _this = this; + var getState = _a.getState, dispatch = _a.dispatch; + var payload = _b.payload; + return dispatch(new IdentityGetUserById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + function () { return _this.identityService.updateUser(__assign({}, getState().selectedUser, payload)); })), switchMap((/** + * @return {?} + */ + function () { return dispatch(new IdentityGetUsers()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + IdentityState.prototype.getUserRoles = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.identityService.getUserRoles(payload).pipe(pluck('items'), tap((/** + * @param {?} selectedUserRoles + * @return {?} + */ + function (selectedUserRoles) { + return patchState({ + selectedUserRoles: selectedUserRoles, + }); + }))); + }; + __decorate([ + Action(IdentityGetRoles), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "getRoles", null); + __decorate([ + Action(IdentityGetRoleById), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetRoleById]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "getRole", null); + __decorate([ + Action(IdentityDeleteRole), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetRoleById]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "deleteRole", null); + __decorate([ + Action(IdentityAddRole), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityAddRole]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "addRole", null); + __decorate([ + Action(IdentityUpdateRole), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityUpdateRole]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "updateRole", null); + __decorate([ + Action(IdentityGetUsers), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUsers]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "getUsers", null); + __decorate([ + Action(IdentityGetUserById), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUserById]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "getUser", null); + __decorate([ + Action(IdentityDeleteUser), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUserById]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "deleteUser", null); + __decorate([ + Action(IdentityAddUser), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityAddUser]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "addUser", null); + __decorate([ + Action(IdentityUpdateUser), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityUpdateUser]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "updateUser", null); + __decorate([ + Action(IdentityGetUserRoles), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, IdentityGetUserRoles]), + __metadata("design:returntype", void 0) + ], IdentityState.prototype, "getUserRoles", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) + ], IdentityState, "getRoles", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Number) + ], IdentityState, "getRolesTotalCount", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) + ], IdentityState, "getUsers", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Number) + ], IdentityState, "getUsersTotalCount", null); + IdentityState = __decorate([ + State({ + name: 'IdentityState', + defaults: (/** @type {?} */ ({ roles: {}, selectedRole: {}, users: {}, selectedUser: {} })), + }), + __metadata("design:paramtypes", [IdentityService]) + ], IdentityState); + return IdentityState; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var RolesComponent = /** @class */ (function () { + function RolesComponent(confirmationService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + this.visiblePermissions = false; + } + /** + * @return {?} + */ + RolesComponent.prototype.createForm = /** + * @return {?} + */ + function () { + this.form = this.fb.group({ + name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + isDefault: [this.selected.isDefault || false], + isPublic: [this.selected.isPublic || false], + }); + }; + /** + * @return {?} + */ + RolesComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.createForm(); + this.modalService.open(this.modalContent); + }; + /** + * @return {?} + */ + RolesComponent.prototype.onAdd = /** + * @return {?} + */ + function () { + this.selected = (/** @type {?} */ ({})); + this.openModal(); + }; + /** + * @param {?} id + * @return {?} + */ + RolesComponent.prototype.onEdit = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + this.store + .dispatch(new IdentityGetRoleById(id)) + .pipe(pluck('IdentityState', 'selectedRole')) + .subscribe((/** + * @param {?} selectedRole + * @return {?} + */ + function (selectedRole) { + _this.selected = selectedRole; + _this.openModal(); + })); + }; + /** + * @return {?} + */ + RolesComponent.prototype.save = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.form.valid) + return; + this.store + .dispatch(this.selected.id + ? new IdentityUpdateRole(__assign({}, this.form.value, { id: this.selected.id })) + : new IdentityAddRole(this.form.value)) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @param {?} name + * @return {?} + */ + RolesComponent.prototype.delete = /** + * @param {?} id + * @param {?} name + * @return {?} + */ + function (id, name) { + var _this = this; + this.confirmationService + .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + if (status === "confirm" /* confirm */) { + _this.store.dispatch(new IdentityDeleteRole(id)); + } + })); + }; + RolesComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-roles', + template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}\n
\n \n
\n
\n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n\n
\n \n \n
\n
\n
\n\n\n" + }] } + ]; + /** @nocollapse */ + RolesComponent.ctorParameters = function () { return [ + { type: ConfirmationService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } + ]; }; + RolesComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + __decorate([ + Select(IdentityState.getRoles), + __metadata("design:type", Observable) + ], RolesComponent.prototype, "roles$", void 0); + return RolesComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var RoleResolver = /** @class */ (function () { + function RoleResolver(store) { + this.store = store; + } + /** + * @return {?} + */ + RoleResolver.prototype.resolve = /** + * @return {?} + */ + function () { + /** @type {?} */ + var roles = this.store.selectSnapshot(IdentityState.getRoles); + return roles && roles.length ? null : this.store.dispatch(new IdentityGetRoles()); + }; + RoleResolver.decorators = [ + { type: Injectable } + ]; + /** @nocollapse */ + RoleResolver.ctorParameters = function () { return [ + { type: Store } + ]; }; + return RoleResolver; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var UsersComponent = /** @class */ (function () { + function UsersComponent(confirmationService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + this.visiblePermissions = false; + this.pageQuery = { + sorting: 'userName', + }; + this.loading = false; + this.search$ = new Subject(); + this.trackByFn = (/** + * @param {?} index + * @param {?} item + * @return {?} + */ + function (index, item) { return Object.keys(item)[0] || index; }); + } + Object.defineProperty(UsersComponent.prototype, "roleGroups", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return snq((/** + * @return {?} + */ + function () { return (/** @type {?} */ (((/** @type {?} */ (_this.form.get('roleNames')))).controls)); }), []); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + UsersComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + var _this = this; + this.search$.pipe(debounceTime(300)).subscribe((/** + * @param {?} value + * @return {?} + */ + function (value) { + _this.pageQuery.filter = value; + _this.get(); + })); + }; + /** + * @return {?} + */ + UsersComponent.prototype.buildForm = /** + * @return {?} + */ + function () { + var _this = this; + this.roles = this.store.selectSnapshot(IdentityState.getRoles); + this.form = this.fb.group({ + password: [ + '', + [ + Validators.required, + Validators.maxLength(32), + Validators.minLength(6), + validatePassword(['small', 'capital', 'number', 'special']), + ], + ], + userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]], + email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]], + name: [this.selected.name || '', [Validators.maxLength(64)]], + surname: [this.selected.surname || '', [Validators.maxLength(64)]], + phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]], + lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + roleNames: this.fb.array(this.roles.map((/** + * @param {?} role + * @return {?} + */ + function (role) { + var _a; + return _this.fb.group((_a = {}, + _a[role.name] = [!!snq((/** + * @return {?} + */ + function () { return _this.selectedUserRoles.find((/** + * @param {?} userRole + * @return {?} + */ + function (userRole) { return userRole.id === role.id; })); }))], + _a)); + }))), + }); + }; + /** + * @return {?} + */ + UsersComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.buildForm(); + this.modalService.open(this.modalContent); + }; + /** + * @return {?} + */ + UsersComponent.prototype.onAdd = /** + * @return {?} + */ + function () { + this.selected = (/** @type {?} */ ({})); + this.selectedUserRoles = (/** @type {?} */ ([])); + this.openModal(); + }; + /** + * @param {?} id + * @return {?} + */ + UsersComponent.prototype.onEdit = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + combineLatest([this.store.dispatch(new IdentityGetUserById(id)), this.store.dispatch(new IdentityGetUserRoles(id))]) + .pipe(filter((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _b = __read(_a, 2), res1 = _b[0], res2 = _b[1]; + return res1 && res2; + })), map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _b = __read(_a, 2), state = _b[0], _ = _b[1]; + return state; + })), pluck('IdentityState'), take(1)) + .subscribe((/** + * @param {?} state + * @return {?} + */ + function (state) { + _this.selected = state.selectedUser; + _this.selectedUserRoles = state.selectedUserRoles; + _this.openModal(); + })); + }; + /** + * @return {?} + */ + UsersComponent.prototype.save = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.form.valid) + return; + var roleNames = this.form.value.roleNames; + /** @type {?} */ + var mappedRoleNames = snq((/** + * @return {?} + */ + function () { return roleNames.filter((/** + * @param {?} role + * @return {?} + */ + function (role) { return !!role[Object.keys(role)[0]]; })).map((/** + * @param {?} role + * @return {?} + */ + function (role) { return Object.keys(role)[0]; })); }), []); + this.store + .dispatch(this.selected.id + ? new IdentityUpdateUser(__assign({}, this.form.value, { id: this.selected.id, roleNames: mappedRoleNames })) + : new IdentityAddUser(__assign({}, this.form.value, { roleNames: mappedRoleNames }))) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @param {?} userName + * @return {?} + */ + UsersComponent.prototype.delete = /** + * @param {?} id + * @param {?} userName + * @return {?} + */ + function (id, userName) { + var _this = this; + this.confirmationService + .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [userName], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + if (status === "confirm" /* confirm */) { + _this.store.dispatch(new IdentityDeleteUser(id)); + } + })); + }; + /** + * @param {?} data + * @return {?} + */ + UsersComponent.prototype.onPageChange = /** + * @param {?} data + * @return {?} + */ + function (data) { + this.pageQuery.skipCount = data.first; + this.pageQuery.maxResultCount = data.rows; + this.get(); + }; + /** + * @return {?} + */ + UsersComponent.prototype.get = /** + * @return {?} + */ + function () { + var _this = this; + this.loading = true; + this.store.dispatch(new IdentityGetUsers(this.pageQuery)).subscribe((/** + * @return {?} + */ + function () { return (_this.loading = false); })); + }; + UsersComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-users', + template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n
\n
\n {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}\n
\n \n
\n
\n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n\n
\n \n \n
\n
\n
\n\n" + }] } + ]; + /** @nocollapse */ + UsersComponent.ctorParameters = function () { return [ + { type: ConfirmationService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } + ]; }; + UsersComponent.propDecorators = { + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + __decorate([ + Select(IdentityState.getUsers), + __metadata("design:type", Observable) + ], UsersComponent.prototype, "data$", void 0); + __decorate([ + Select(IdentityState.getUsersTotalCount), + __metadata("design:type", Observable) + ], UsersComponent.prototype, "totalCount$", void 0); + return UsersComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var UserResolver = /** @class */ (function () { + function UserResolver(store) { + this.store = store; + } + /** + * @return {?} + */ + UserResolver.prototype.resolve = /** + * @return {?} + */ + function () { + /** @type {?} */ + var users = this.store.selectSnapshot(IdentityState.getUsers); + return users && users.length ? null : this.store.dispatch(new IdentityGetUsers()); + }; + UserResolver.decorators = [ + { type: Injectable } + ]; + /** @nocollapse */ + UserResolver.ctorParameters = function () { return [ + { type: Store } + ]; }; + return UserResolver; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ɵ0 = { requiredPolicy: 'AbpIdentity.Roles' }, ɵ1 = { requiredPolicy: 'AbpIdentity.Users' }; +/** @type {?} */ +var routes = [ + { path: '', redirectTo: 'roles', pathMatch: 'full' }, + { + path: 'roles', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ0, + children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }], + }, + { + path: 'users', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ1, + children: [ + { + path: '', + component: UsersComponent, + resolve: [RoleResolver, UserResolver], + }, + ], + }, +]; +var IdentityRoutingModule = /** @class */ (function () { + function IdentityRoutingModule() { + } + IdentityRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + providers: [RoleResolver, UserResolver], + },] } + ]; + return IdentityRoutingModule; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var IdentityModule = /** @class */ (function () { + function IdentityModule() { + } + IdentityModule.decorators = [ + { type: NgModule, args: [{ + declarations: [RolesComponent, UsersComponent], + imports: [ + NgxsModule.forFeature([IdentityState]), + CoreModule, + IdentityRoutingModule, + NgbTabsetModule, + ThemeSharedModule, + TableModule, + NgbDropdownModule, + PermissionManagementModule, + NgxValidateCoreModule, + ], + },] } + ]; + return IdentityModule; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +var IDENTITY_ROUTES = (/** @type {?} */ ([ + { + name: 'Administration', + path: '', + order: 1, + wrapper: true, + }, + { + name: 'Identity', + path: 'identity', + order: 1, + parentName: 'Administration', + layout: "application" /* application */, + children: [ + { path: 'roles', name: 'Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' }, + { path: 'users', name: 'Users', order: 1, requiredPolicy: 'AbpIdentity.Users' }, + ], + }, +])); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var Identity; +(function (Identity) { + /** + * @record + */ + function State() { } + Identity.State = State; + /** + * @record + */ + function RoleSaveRequest() { } + Identity.RoleSaveRequest = RoleSaveRequest; + /** + * @record + */ + function RoleItem() { } + Identity.RoleItem = RoleItem; + /** + * @record + */ + function UserItem() { } + Identity.UserItem = UserItem; + /** + * @record + */ + function User() { } + Identity.User = User; + /** + * @record + */ + function UserSaveRequest() { } + Identity.UserSaveRequest = UserSaveRequest; +})(Identity || (Identity = {})); + +export { IDENTITY_ROUTES, IdentityAddRole, IdentityAddUser, IdentityDeleteRole, IdentityDeleteUser, IdentityGetRoleById, IdentityGetRoles, IdentityGetUserById, IdentityGetUserRoles, IdentityGetUsers, IdentityModule, IdentityService, IdentityState, IdentityUpdateRole, IdentityUpdateUser, RoleResolver, RolesComponent, UsersComponent as ɵb, IdentityRoutingModule as ɵc, UserResolver as ɵd }; +//# sourceMappingURL=abp-ng.identity.js.map diff --git a/npm/packs/ng/dist/identity/fesm5/abp-ng.identity.js.map b/npm/packs/ng/dist/identity/fesm5/abp-ng.identity.js.map new file mode 100644 index 0000000000..c6ae3713fc --- /dev/null +++ b/npm/packs/ng/dist/identity/fesm5/abp-ng.identity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.identity.js","sources":["ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts","ng://@abp/ng.identity/lib/models/identity.ts"],"sourcesContent":["import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class IdentityGetRoles {\n static readonly type = '[Identity] Get Roles';\n}\n\nexport class IdentityGetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class IdentityDeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class IdentityAddRole {\n static readonly type = '[Identity] Add Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class IdentityUpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class IdentityGetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class IdentityGetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class IdentityDeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class IdentityAddUser {\n static readonly type = '[Identity] Add User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class IdentityUpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class IdentityGetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/role',\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/role/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/role/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n addRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/role',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/role/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/user',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/user/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/user/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/user/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n addUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/user',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n IdentityAddRole,\n IdentityAddUser,\n IdentityDeleteRole,\n IdentityDeleteUser,\n IdentityGetRoleById,\n IdentityGetRoles,\n IdentityGetUserById,\n IdentityGetUsers,\n IdentityUpdateRole,\n IdentityUpdateUser,\n IdentityGetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(IdentityGetRoles)\n getRoles({ patchState }: StateContext) {\n return this.identityService.getRoles().pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(IdentityGetRoleById)\n getRole({ patchState }: StateContext, { payload }: IdentityGetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(IdentityDeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: IdentityGetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new IdentityGetRoles())));\n }\n\n @Action(IdentityAddRole)\n addRole({ dispatch }: StateContext, { payload }: IdentityAddRole) {\n return this.identityService.addRole(payload).pipe(switchMap(() => dispatch(new IdentityGetRoles())));\n }\n\n @Action(IdentityUpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: IdentityUpdateRole) {\n return dispatch(new IdentityGetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new IdentityGetRoles())),\n );\n }\n\n @Action(IdentityGetUsers)\n getUsers({ patchState }: StateContext, { payload }: IdentityGetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(IdentityGetUserById)\n getUser({ patchState }: StateContext, { payload }: IdentityGetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(IdentityDeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: IdentityGetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new IdentityGetUsers())));\n }\n\n @Action(IdentityAddUser)\n addUser({ dispatch }: StateContext, { payload }: IdentityAddUser) {\n return this.identityService.addUser(payload).pipe(switchMap(() => dispatch(new IdentityGetUsers())));\n }\n\n @Action(IdentityUpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: IdentityUpdateUser) {\n return dispatch(new IdentityGetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new IdentityGetUsers())),\n );\n }\n\n @Action(IdentityGetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: IdentityGetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { IdentityState } from '../../states/identity.state';\nimport { Identity } from '../../models/identity';\nimport {\n IdentityUpdateRole,\n IdentityAddRole,\n IdentityDeleteRole,\n IdentityGetRoleById,\n} from '../../actions/identity.actions';\nimport { pluck } from 'rxjs/operators';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n roles$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n createForm() {\n this.form = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.modalService.open(this.modalContent);\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new IdentityGetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n\n this.store\n .dispatch(\n this.selected.id\n ? new IdentityUpdateRole({ ...this.form.value, id: this.selected.id })\n : new IdentityAddRole(this.form.value),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new IdentityDeleteRole(id));\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { IdentityGetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new IdentityGetRoles());\n }\n}\n","import { Component, TemplateRef, ViewChild, TrackByFunction, OnInit } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, combineLatest, Subject } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormBuilder, FormGroup, Validators, FormArray, AbstractControl } from '@angular/forms';\nimport { IdentityState } from '../../states/identity.state';\nimport { Identity } from '../../models/identity';\nimport {\n IdentityUpdateUser,\n IdentityAddUser,\n IdentityDeleteUser,\n IdentityGetUserById,\n IdentityGetUsers,\n} from '../../actions/identity.actions';\nimport { pluck, filter, map, take, debounceTime } from 'rxjs/operators';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport snq from 'snq';\nimport { IdentityGetUserRoles } from '../../actions/identity.actions';\nimport { validatePassword } from '@ngx-validate/core';\nimport { ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent implements OnInit {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n loading: boolean = false;\n\n search$ = new Subject();\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(\n private confirmationService: ConfirmationService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n ngOnInit() {\n this.search$.pipe(debounceTime(300)).subscribe(value => {\n this.pageQuery.filter = value;\n this.get();\n });\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n\n this.form = this.fb.group({\n password: [\n '',\n [\n Validators.required,\n Validators.maxLength(32),\n Validators.minLength(6),\n validatePassword(['small', 'capital', 'number', 'special']),\n ],\n ],\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n }\n\n openModal() {\n this.buildForm();\n this.modalService.open(this.modalContent);\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n combineLatest([this.store.dispatch(new IdentityGetUserById(id)), this.store.dispatch(new IdentityGetUserRoles(id))])\n .pipe(\n filter(([res1, res2]) => res1 && res2),\n map(([state, _]) => state),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new IdentityUpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new IdentityAddUser({ ...this.form.value, roleNames: mappedRoleNames }),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new IdentityDeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store.dispatch(new IdentityGetUsers(this.pageQuery)).subscribe(() => (this.loading = false));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { IdentityGetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new IdentityGetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n ],\n})\nexport class IdentityModule {}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = [\n {\n name: 'Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'Identity',\n path: 'identity',\n order: 1,\n parentName: 'Administration',\n layout: eLayoutType.application,\n children: [\n { path: 'roles', name: 'Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n] as ABP.FullRoute[];\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/identity/lib/actions/identity.actions.d.ts b/npm/packs/ng/dist/identity/lib/actions/identity.actions.d.ts new file mode 100644 index 0000000000..450403d71d --- /dev/null +++ b/npm/packs/ng/dist/identity/lib/actions/identity.actions.d.ts @@ -0,0 +1,59 @@ +import { Identity } from '../models/identity'; +import { ABP } from '@abp/ng.core'; +export declare class IdentityGetRoles { + static readonly type = "[Identity] Get Roles"; +} +export declare class IdentityGetRoleById { + payload: string; + static readonly type = "[Identity] Get Role By Id"; + constructor(payload: string); +} +export declare class IdentityDeleteRole { + payload: string; + static readonly type = "[Identity] Delete Role"; + constructor(payload: string); +} +export declare class IdentityAddRole { + payload: Identity.RoleSaveRequest; + static readonly type = "[Identity] Add Role"; + constructor(payload: Identity.RoleSaveRequest); +} +export declare class IdentityUpdateRole { + payload: Identity.RoleItem; + static readonly type = "[Identity] Update Role"; + constructor(payload: Identity.RoleItem); +} +export declare class IdentityGetUsers { + payload?: ABP.PageQueryParams; + static readonly type = "[Identity] Get Users"; + constructor(payload?: ABP.PageQueryParams); +} +export declare class IdentityGetUserById { + payload: string; + static readonly type = "[Identity] Get User By Id"; + constructor(payload: string); +} +export declare class IdentityDeleteUser { + payload: string; + static readonly type = "[Identity] Delete User"; + constructor(payload: string); +} +export declare class IdentityAddUser { + payload: Identity.UserSaveRequest; + static readonly type = "[Identity] Add User"; + constructor(payload: Identity.UserSaveRequest); +} +export declare class IdentityUpdateUser { + payload: Identity.UserSaveRequest & { + id: string; + }; + static readonly type = "[Identity] Update User"; + constructor(payload: Identity.UserSaveRequest & { + id: string; + }); +} +export declare class IdentityGetUserRoles { + payload: string; + static readonly type = "[Identity] Get User Roles"; + constructor(payload: string); +} diff --git a/npm/packs/ng/dist/identity/lib/components/roles/roles.component.d.ts b/npm/packs/ng/dist/identity/lib/components/roles/roles.component.d.ts new file mode 100644 index 0000000000..2a3194a99d --- /dev/null +++ b/npm/packs/ng/dist/identity/lib/components/roles/roles.component.d.ts @@ -0,0 +1,26 @@ +import { TemplateRef } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { Identity } from '../../models/identity'; +import { ConfirmationService } from '@abp/ng.theme.shared'; +export declare class RolesComponent { + private confirmationService; + private modalService; + private fb; + private store; + roles$: Observable; + form: FormGroup; + selected: Identity.RoleItem; + visiblePermissions: boolean; + providerKey: string; + modalContent: TemplateRef; + constructor(confirmationService: ConfirmationService, modalService: NgbModal, fb: FormBuilder, store: Store); + createForm(): void; + openModal(): void; + onAdd(): void; + onEdit(id: string): void; + save(): void; + delete(id: string, name: string): void; +} diff --git a/npm/packs/ng/dist/identity/lib/components/users/users.component.d.ts b/npm/packs/ng/dist/identity/lib/components/users/users.component.d.ts new file mode 100644 index 0000000000..bb94ab6d13 --- /dev/null +++ b/npm/packs/ng/dist/identity/lib/components/users/users.component.d.ts @@ -0,0 +1,38 @@ +import { TemplateRef, TrackByFunction, OnInit } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { Observable, Subject } from 'rxjs'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { FormBuilder, FormGroup, AbstractControl } from '@angular/forms'; +import { Identity } from '../../models/identity'; +import { ConfirmationService } from '@abp/ng.theme.shared'; +import { ABP } from '@abp/ng.core'; +export declare class UsersComponent implements OnInit { + private confirmationService; + private modalService; + private fb; + private store; + data$: Observable; + totalCount$: Observable; + modalContent: TemplateRef; + form: FormGroup; + selected: Identity.UserItem; + selectedUserRoles: Identity.RoleItem[]; + roles: Identity.RoleItem[]; + visiblePermissions: boolean; + providerKey: string; + pageQuery: ABP.PageQueryParams; + loading: boolean; + search$: Subject; + trackByFn: TrackByFunction; + readonly roleGroups: FormGroup[]; + constructor(confirmationService: ConfirmationService, modalService: NgbModal, fb: FormBuilder, store: Store); + ngOnInit(): void; + buildForm(): void; + openModal(): void; + onAdd(): void; + onEdit(id: string): void; + save(): void; + delete(id: string, userName: string): void; + onPageChange(data: any): void; + get(): void; +} diff --git a/npm/packs/ng/dist/identity/lib/constants/routes.d.ts b/npm/packs/ng/dist/identity/lib/constants/routes.d.ts new file mode 100644 index 0000000000..9fe0a8c565 --- /dev/null +++ b/npm/packs/ng/dist/identity/lib/constants/routes.d.ts @@ -0,0 +1,2 @@ +import { ABP } from '@abp/ng.core'; +export declare const IDENTITY_ROUTES: ABP.FullRoute[]; diff --git a/npm/packs/ng/dist/identity/lib/identity-routing.module.d.ts b/npm/packs/ng/dist/identity/lib/identity-routing.module.d.ts new file mode 100644 index 0000000000..583fb5a5e7 --- /dev/null +++ b/npm/packs/ng/dist/identity/lib/identity-routing.module.d.ts @@ -0,0 +1,2 @@ +export declare class IdentityRoutingModule { +} diff --git a/npm/packs/ng/dist/identity/lib/identity.module.d.ts b/npm/packs/ng/dist/identity/lib/identity.module.d.ts new file mode 100644 index 0000000000..2f607750cd --- /dev/null +++ b/npm/packs/ng/dist/identity/lib/identity.module.d.ts @@ -0,0 +1,2 @@ +export declare class IdentityModule { +} diff --git a/npm/packs/ng/dist/identity/lib/models/identity.d.ts b/npm/packs/ng/dist/identity/lib/models/identity.d.ts new file mode 100644 index 0000000000..d7ce3f7698 --- /dev/null +++ b/npm/packs/ng/dist/identity/lib/models/identity.d.ts @@ -0,0 +1,43 @@ +import { ABP } from '@abp/ng.core'; +export declare namespace Identity { + interface State { + roles: RoleResponse; + users: UserResponse; + selectedRole: RoleItem; + selectedUser: UserItem; + selectedUserRoles: RoleItem[]; + } + type RoleResponse = ABP.PagedResponse; + interface RoleSaveRequest { + name: string; + isDefault: boolean; + isPublic: boolean; + } + interface RoleItem extends RoleSaveRequest { + isStatic: boolean; + concurrencyStamp: string; + id: string; + } + type UserResponse = ABP.PagedResponse; + interface UserItem extends User { + tenantId: string; + emailConfirmed: boolean; + phoneNumberConfirmed: boolean; + isLockedOut: boolean; + concurrencyStamp: string; + id: string; + } + interface User { + userName: string; + name: string; + surname: string; + email: string; + phoneNumber: string; + twoFactorEnabled: true; + lockoutEnabled: true; + } + interface UserSaveRequest extends User { + password: string; + roleNames: string[]; + } +} diff --git a/npm/packs/ng/dist/identity/lib/resolvers/roles.resolver.d.ts b/npm/packs/ng/dist/identity/lib/resolvers/roles.resolver.d.ts new file mode 100644 index 0000000000..9da53c4b64 --- /dev/null +++ b/npm/packs/ng/dist/identity/lib/resolvers/roles.resolver.d.ts @@ -0,0 +1,8 @@ +import { Resolve } from '@angular/router'; +import { Store } from '@ngxs/store'; +import { Identity } from '../models/identity'; +export declare class RoleResolver implements Resolve { + private store; + constructor(store: Store); + resolve(): import("rxjs").Observable; +} diff --git a/npm/packs/ng/dist/identity/lib/resolvers/users.resolver.d.ts b/npm/packs/ng/dist/identity/lib/resolvers/users.resolver.d.ts new file mode 100644 index 0000000000..0c64c5983c --- /dev/null +++ b/npm/packs/ng/dist/identity/lib/resolvers/users.resolver.d.ts @@ -0,0 +1,8 @@ +import { Resolve } from '@angular/router'; +import { Store } from '@ngxs/store'; +import { Identity } from '../models/identity'; +export declare class UserResolver implements Resolve { + private store; + constructor(store: Store); + resolve(): import("rxjs").Observable; +} diff --git a/npm/packs/ng/dist/identity/lib/services/identity.service.d.ts b/npm/packs/ng/dist/identity/lib/services/identity.service.d.ts new file mode 100644 index 0000000000..c35bc109a9 --- /dev/null +++ b/npm/packs/ng/dist/identity/lib/services/identity.service.d.ts @@ -0,0 +1,18 @@ +import { Observable } from 'rxjs'; +import { RestService, ABP } from '@abp/ng.core'; +import { Identity } from '../models/identity'; +export declare class IdentityService { + private rest; + constructor(rest: RestService); + getRoles(): Observable; + getRoleById(id: string): Observable; + deleteRole(id: string): Observable; + addRole(body: Identity.RoleSaveRequest): Observable; + updateRole(body: Identity.RoleItem): Observable; + getUsers(params?: ABP.PageQueryParams): Observable; + getUserById(id: string): Observable; + getUserRoles(id: string): Observable; + deleteUser(id: string): Observable; + addUser(body: Identity.UserSaveRequest): Observable; + updateUser(body: Identity.UserItem): Observable; +} diff --git a/npm/packs/ng/dist/identity/lib/states/identity.state.d.ts b/npm/packs/ng/dist/identity/lib/states/identity.state.d.ts new file mode 100644 index 0000000000..5fbd3491f6 --- /dev/null +++ b/npm/packs/ng/dist/identity/lib/states/identity.state.d.ts @@ -0,0 +1,23 @@ +import { StateContext } from '@ngxs/store'; +import { IdentityAddRole, IdentityAddUser, IdentityGetRoleById, IdentityGetUserById, IdentityGetUsers, IdentityUpdateRole, IdentityUpdateUser, IdentityGetUserRoles } from '../actions/identity.actions'; +import { Identity } from '../models/identity'; +import { IdentityService } from '../services/identity.service'; +export declare class IdentityState { + private identityService; + static getRoles({ roles }: Identity.State): Identity.RoleItem[]; + static getRolesTotalCount({ roles }: Identity.State): number; + static getUsers({ users }: Identity.State): Identity.UserItem[]; + static getUsersTotalCount({ users }: Identity.State): number; + constructor(identityService: IdentityService); + getRoles({ patchState }: StateContext): import("rxjs").Observable>; + getRole({ patchState }: StateContext, { payload }: IdentityGetRoleById): import("rxjs").Observable; + deleteRole({ dispatch }: StateContext, { payload }: IdentityGetRoleById): import("rxjs").Observable; + addRole({ dispatch }: StateContext, { payload }: IdentityAddRole): import("rxjs").Observable; + updateRole({ getState, dispatch }: StateContext, { payload }: IdentityUpdateRole): import("rxjs").Observable; + getUsers({ patchState }: StateContext, { payload }: IdentityGetUsers): import("rxjs").Observable>; + getUser({ patchState }: StateContext, { payload }: IdentityGetUserById): import("rxjs").Observable; + deleteUser({ dispatch }: StateContext, { payload }: IdentityGetUserById): import("rxjs").Observable; + addUser({ dispatch }: StateContext, { payload }: IdentityAddUser): import("rxjs").Observable; + updateUser({ getState, dispatch }: StateContext, { payload }: IdentityUpdateUser): import("rxjs").Observable; + getUserRoles({ patchState }: StateContext, { payload }: IdentityGetUserRoles): import("rxjs").Observable; +} diff --git a/npm/packs/ng/dist/identity/package.json b/npm/packs/ng/dist/identity/package.json new file mode 100644 index 0000000000..9e646c9b07 --- /dev/null +++ b/npm/packs/ng/dist/identity/package.json @@ -0,0 +1,18 @@ +{ + "name": "@abp/ng.identity", + "version": "0.5.0", + "dependencies": { + "@abp/ng.permission-management": "^0.5.0", + "tslib": "^1.9.0" + }, + "main": "bundles/abp-ng.identity.umd.js", + "module": "fesm5/abp-ng.identity.js", + "es2015": "fesm2015/abp-ng.identity.js", + "esm5": "esm5/abp-ng.identity.js", + "esm2015": "esm2015/abp-ng.identity.js", + "fesm5": "fesm5/abp-ng.identity.js", + "fesm2015": "fesm2015/abp-ng.identity.js", + "typings": "abp-ng.identity.d.ts", + "metadata": "abp-ng.identity.metadata.json", + "sideEffects": false +} diff --git a/npm/packs/ng/dist/identity/public-api.d.ts b/npm/packs/ng/dist/identity/public-api.d.ts new file mode 100644 index 0000000000..f6ead168bc --- /dev/null +++ b/npm/packs/ng/dist/identity/public-api.d.ts @@ -0,0 +1,8 @@ +export * from './lib/identity.module'; +export * from './lib/actions/identity.actions'; +export * from './lib/components/roles/roles.component'; +export * from './lib/constants/routes'; +export * from './lib/models/identity'; +export * from './lib/resolvers/roles.resolver'; +export * from './lib/services/identity.service'; +export * from './lib/states/identity.state'; diff --git a/npm/packs/ng/dist/permission-management/README.md b/npm/packs/ng/dist/permission-management/README.md new file mode 100644 index 0000000000..29fbdc1a7f --- /dev/null +++ b/npm/packs/ng/dist/permission-management/README.md @@ -0,0 +1 @@ +

@abp/ng.permission-management

diff --git a/npm/packs/ng/dist/permission-management/abp-ng.permission-management.d.ts b/npm/packs/ng/dist/permission-management/abp-ng.permission-management.d.ts new file mode 100644 index 0000000000..8fe3ba6462 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/abp-ng.permission-management.d.ts @@ -0,0 +1,9 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './public-api'; +export { PermissionManagementGetPermissions as ɵd, PermissionManagementUpdatePermissions as ɵe } from './lib/actions/permission-management.actions'; +export { PermissionManagementComponent as ɵa } from './lib/components/permission-management.component'; +export { PermissionManagement as ɵf } from './lib/models/permission-management'; +export { PermissionManagementService as ɵc } from './lib/services/permission-management.service'; +export { PermissionManagementState as ɵb } from './lib/states/permission-management.state'; diff --git a/npm/packs/ng/dist/permission-management/abp-ng.permission-management.metadata.json b/npm/packs/ng/dist/permission-management/abp-ng.permission-management.metadata.json new file mode 100644 index 0000000000..81f55b4364 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/abp-ng.permission-management.metadata.json @@ -0,0 +1 @@ +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/permission-management.state"}],"metadata":{"PermissionManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":10,"character":12},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":10,"character":24},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":10,"character":43},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵb"}]]},{"__symbolic":"reference","module":"ngx-perfect-scrollbar","name":"PerfectScrollbarModule","line":10,"character":95}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"selector":"abp-permission-management","template":"\n \n
\n

\n {{ 'AbpPermissionManagement::Permissions' | abpLocalization }} -\n {{ data.entityName }}\n

\n \n
\n
\n
\n \n \n
\n\n
\n
\n \n
\n

{{ selectedGroup.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n
\n \n
\n
\n
\n \n\n
\n \n \n
\n \n\n"}]}],"members":{"providerName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"providerKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":40,"character":3}}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":43,"character":3},"arguments":["modalContent",{"static":false}]}]}],"groups$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":46,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getPermissionGroups"}]}]}],"entityName$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":49,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getEntitiyDisplayName"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbModal","line":82,"character":36},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":82,"character":61},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":82,"character":86}]}],"ngOnInit":[{"__symbolic":"method"}],"getChecked":[{"__symbolic":"method"}],"onClickCheckbox":[{"__symbolic":"method"}],"setTabCheckboxState":[{"__symbolic":"method"}],"setGrantCheckboxState":[{"__symbolic":"method"}],"onClickSelectThisTab":[{"__symbolic":"method"}],"onClickSelectAll":[{"__symbolic":"method"}],"onChangeGroup":[{"__symbolic":"method"}],"onSubmit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"setVisible":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":9,"character":1},"arguments":[{"name":"PermissionManagementState","defaults":{"permissionRes":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"permissionManagementGet":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":26,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}]}],"permissionManagementUpdate":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":40,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}]},"statics":{"getPermissionGroups":{"__symbolic":"function","parameters":["permissionRes"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"permissionRes"},"member":"groups"},"right":[]}},"getEntitiyDisplayName":{"__symbolic":"function","parameters":["permissionRes"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"permissionRes"},"member":"entityDisplayName"}}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":9,"character":28}]}],"getPermissions":[{"__symbolic":"method"}],"updatePermissions":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵf"},"member":"GrantedProvider"}]}]},"statics":{"type":"[PermissionManagement] Get Permissions"}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":9,"character":30,"module":"./lib/actions/permission-management.actions"}]}]},"statics":{"type":"[PermissionManagement] Update Permissions"}}},"origins":{"PermissionManagementModule":"./lib/permission-management.module","ɵa":"./lib/components/permission-management.component","ɵb":"./lib/states/permission-management.state","ɵc":"./lib/services/permission-management.service","ɵd":"./lib/actions/permission-management.actions","ɵe":"./lib/actions/permission-management.actions","ɵf":"./lib/models/permission-management"},"importAs":"@abp/ng.permission-management"} \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.js b/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.js new file mode 100644 index 0000000000..d4b38c7c6b --- /dev/null +++ b/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.js @@ -0,0 +1,741 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@angular/core'), require('@ngxs/store'), require('@ng-bootstrap/ng-bootstrap'), require('rxjs'), require('rxjs/operators'), require('ngx-perfect-scrollbar')) : + typeof define === 'function' && define.amd ? define('@abp/ng.permission-management', ['exports', '@abp/ng.core', '@abp/ng.theme.shared', '@angular/core', '@ngxs/store', '@ng-bootstrap/ng-bootstrap', 'rxjs', 'rxjs/operators', 'ngx-perfect-scrollbar'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng['permission-management'] = {}), global.ng_core, global.ng_theme_shared, global.ng.core, global.store, global.ngBootstrap, global.rxjs, global.rxjs.operators, global.ngxPerfectScrollbar)); +}(this, function (exports, ng_core, ng_theme_shared, core, store, ngBootstrap, rxjs, operators, ngxPerfectScrollbar) { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + 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; + return c > 3 && r && Object.defineProperty(target, key, r), r; + } + + function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); + } + + function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; + } + + function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PermissionManagementGetPermissions = /** @class */ (function () { + function PermissionManagementGetPermissions(payload) { + this.payload = payload; + } + PermissionManagementGetPermissions.type = '[PermissionManagement] Get Permissions'; + return PermissionManagementGetPermissions; + }()); + var PermissionManagementUpdatePermissions = /** @class */ (function () { + function PermissionManagementUpdatePermissions(payload) { + this.payload = payload; + } + PermissionManagementUpdatePermissions.type = '[PermissionManagement] Update Permissions'; + return PermissionManagementUpdatePermissions; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PermissionManagementService = /** @class */ (function () { + function PermissionManagementService(rest) { + this.rest = rest; + } + /** + * @param {?} params + * @return {?} + */ + PermissionManagementService.prototype.getPermissions = /** + * @param {?} params + * @return {?} + */ + function (params) { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/abp/permissions', + params: params, + }; + return this.rest.request(request); + }; + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementService.prototype.updatePermissions = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var permissions = _a.permissions, providerKey = _a.providerKey, providerName = _a.providerName; + /** @type {?} */ + var request = { + method: 'PUT', + url: '/api/abp/permissions', + body: { permissions: permissions }, + params: { providerKey: providerKey, providerName: providerName }, + }; + return this.rest.request(request); + }; + PermissionManagementService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + PermissionManagementService.ctorParameters = function () { return [ + { type: ng_core.RestService } + ]; }; + /** @nocollapse */ PermissionManagementService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function PermissionManagementService_Factory() { return new PermissionManagementService(core.ɵɵinject(ng_core.RestService)); }, token: PermissionManagementService, providedIn: "root" }); + return PermissionManagementService; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PermissionManagementState = /** @class */ (function () { + function PermissionManagementState(permissionManagementService) { + this.permissionManagementService = permissionManagementService; + } + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementState.getPermissionGroups = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var permissionRes = _a.permissionRes; + return permissionRes.groups || []; + }; + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementState.getEntitiyDisplayName = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var permissionRes = _a.permissionRes; + return permissionRes.entityDisplayName; + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + PermissionManagementState.prototype.permissionManagementGet = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.permissionManagementService.getPermissions(payload).pipe(operators.tap((/** + * @param {?} permissionResponse + * @return {?} + */ + function (permissionResponse) { + return patchState({ + permissionRes: permissionResponse, + }); + }))); + }; + /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + PermissionManagementState.prototype.permissionManagementUpdate = /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + function (_, _a) { + var payload = _a.payload; + return this.permissionManagementService.updatePermissions(payload); + }; + __decorate([ + store.Action(PermissionManagementGetPermissions), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, PermissionManagementGetPermissions]), + __metadata("design:returntype", void 0) + ], PermissionManagementState.prototype, "permissionManagementGet", null); + __decorate([ + store.Action(PermissionManagementUpdatePermissions), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, PermissionManagementUpdatePermissions]), + __metadata("design:returntype", void 0) + ], PermissionManagementState.prototype, "permissionManagementUpdate", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], PermissionManagementState, "getPermissionGroups", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", String) + ], PermissionManagementState, "getEntitiyDisplayName", null); + PermissionManagementState = __decorate([ + store.State({ + name: 'PermissionManagementState', + defaults: (/** @type {?} */ ({ permissionRes: {} })), + }), + __metadata("design:paramtypes", [PermissionManagementService]) + ], PermissionManagementState); + return PermissionManagementState; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PermissionManagementComponent = /** @class */ (function () { + function PermissionManagementComponent(modalService, store, renderer) { + this.modalService = modalService; + this.store = store; + this.renderer = renderer; + this.visibleChange = new core.EventEmitter(); + this.permissions = []; + this.selectThisTab = false; + this.selectAllTab = false; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + function (_, item) { return item.name; }); + } + Object.defineProperty(PermissionManagementComponent.prototype, "selectedGroupPermissions$", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return this.groups$.pipe(operators.map((/** + * @param {?} groups + * @return {?} + */ + function (groups) { + return _this.selectedGroup ? groups.find((/** + * @param {?} group + * @return {?} + */ + function (group) { return group.name === _this.selectedGroup.name; })).permissions : []; + })), operators.map((/** + * @param {?} permissions + * @return {?} + */ + function (permissions) { + return permissions.map((/** + * @param {?} permission + * @return {?} + */ + function (permission) { + return ((/** @type {?} */ (((/** @type {?} */ (__assign({}, permission, { margin: findMargin(permissions, permission), isGranted: _this.permissions.find((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === permission.name; })).isGranted }))))))); + })); + }))); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + PermissionManagementComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { }; + /** + * @param {?} name + * @return {?} + */ + PermissionManagementComponent.prototype.getChecked = /** + * @param {?} name + * @return {?} + */ + function (name) { + return (this.permissions.find((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === name; })) || { isGranted: false }).isGranted; + }; + /** + * @param {?} clickedPermission + * @param {?} value + * @return {?} + */ + PermissionManagementComponent.prototype.onClickCheckbox = /** + * @param {?} clickedPermission + * @param {?} value + * @return {?} + */ + function (clickedPermission, value) { + var _this = this; + setTimeout((/** + * @return {?} + */ + function () { + _this.permissions = _this.permissions.map((/** + * @param {?} per + * @return {?} + */ + function (per) { + if (clickedPermission.name === per.name) { + return __assign({}, per, { isGranted: !per.isGranted }); + } + else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) { + return __assign({}, per, { isGranted: false }); + } + else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) { + return __assign({}, per, { isGranted: true }); + } + return per; + })); + _this.setTabCheckboxState(); + _this.setGrantCheckboxState(); + }), 0); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.setTabCheckboxState = /** + * @return {?} + */ + function () { + var _this = this; + this.selectedGroupPermissions$.pipe(operators.take(1)).subscribe((/** + * @param {?} permissions + * @return {?} + */ + function (permissions) { + /** @type {?} */ + var selectedPermissions = permissions.filter((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.isGranted; })); + /** @type {?} */ + var element = (/** @type {?} */ (document.querySelector('#select-all-in-this-tabs'))); + if (selectedPermissions.length === permissions.length) { + element.indeterminate = false; + _this.selectThisTab = true; + } + else if (selectedPermissions.length === 0) { + element.indeterminate = false; + _this.selectThisTab = false; + } + else { + element.indeterminate = true; + } + })); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.setGrantCheckboxState = /** + * @return {?} + */ + function () { + /** @type {?} */ + var selectedAllPermissions = this.permissions.filter((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.isGranted; })); + /** @type {?} */ + var checkboxElement = (/** @type {?} */ (document.querySelector('#select-all-in-all-tabs'))); + if (selectedAllPermissions.length === this.permissions.length) { + checkboxElement.indeterminate = false; + this.selectAllTab = true; + } + else if (selectedAllPermissions.length === 0) { + checkboxElement.indeterminate = false; + this.selectAllTab = false; + } + else { + checkboxElement.indeterminate = true; + } + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.onClickSelectThisTab = /** + * @return {?} + */ + function () { + var _this = this; + this.selectedGroupPermissions$.pipe(operators.take(1)).subscribe((/** + * @param {?} permissions + * @return {?} + */ + function (permissions) { + permissions.forEach((/** + * @param {?} permission + * @return {?} + */ + function (permission) { + /** @type {?} */ + var index = _this.permissions.findIndex((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === permission.name; })); + _this.permissions = __spread(_this.permissions.slice(0, index), [ + __assign({}, _this.permissions[index], { isGranted: !_this.selectThisTab }) + ], _this.permissions.slice(index + 1)); + })); + })); + this.setGrantCheckboxState(); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.onClickSelectAll = /** + * @return {?} + */ + function () { + var _this = this; + this.permissions = this.permissions.map((/** + * @param {?} permission + * @return {?} + */ + function (permission) { return (__assign({}, permission, { isGranted: !_this.selectAllTab })); })); + this.selectThisTab = !this.selectAllTab; + }; + /** + * @param {?} group + * @return {?} + */ + PermissionManagementComponent.prototype.onChangeGroup = /** + * @param {?} group + * @return {?} + */ + function (group) { + this.selectedGroup = group; + this.setTabCheckboxState(); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var unchangedPermissions = getPermissions(this.store.selectSnapshot(PermissionManagementState.getPermissionGroups)); + /** @type {?} */ + var changedPermissions = this.permissions + .filter((/** + * @param {?} per + * @return {?} + */ + function (per) { + return unchangedPermissions.find((/** + * @param {?} unchanged + * @return {?} + */ + function (unchanged) { return unchanged.name === per.name; })).isGranted === per.isGranted ? false : true; + })) + .map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var name = _a.name, isGranted = _a.isGranted; + return ({ name: name, isGranted: isGranted }); + })); + if (changedPermissions.length) { + this.store + .dispatch(new PermissionManagementUpdatePermissions({ + providerKey: this.providerKey, + providerName: this.providerName, + permissions: changedPermissions, + })) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalRef.close(); })); + } + else { + this.modalRef.close(); + } + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.openModal = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.providerKey || !this.providerName) { + throw new Error('Provider Key and Provider Name are required.'); + } + this.store + .dispatch(new PermissionManagementGetPermissions({ providerKey: this.providerKey, providerName: this.providerName })) + .pipe(operators.pluck('PermissionManagementState', 'permissionRes')) + .subscribe((/** + * @param {?} permissionRes + * @return {?} + */ + function (permissionRes) { + _this.selectedGroup = permissionRes.groups[0]; + _this.permissions = getPermissions(permissionRes.groups); + _this.modalRef = _this.modalService.open(_this.modalContent, { size: 'lg' }); + _this.visibleChange.emit(true); + setTimeout((/** + * @return {?} + */ + function () { + _this.setTabCheckboxState(); + _this.setGrantCheckboxState(); + }), 0); + rxjs.from(_this.modalRef.result) + .pipe(operators.take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + function (data) { + _this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + function (reason) { + _this.setVisible(false); + })); + })); + }; + /** + * @param {?} value + * @return {?} + */ + PermissionManagementComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + this.visible = value; + this.visibleChange.emit(value); + }; + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementComponent.prototype.ngOnChanges = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var visible = _a.visible; + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + }; + PermissionManagementComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-permission-management', + template: "\n \n
\n

\n {{ 'AbpPermissionManagement::Permissions' | abpLocalization }} -\n {{ data.entityName }}\n

\n \n
\n
\n
\n \n \n
\n\n
\n
\n
\n \n
\n
\n

{{ selectedGroup.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n
\n \n
\n
\n
\n \n\n
\n \n \n
\n
\n
\n" + }] } + ]; + /** @nocollapse */ + PermissionManagementComponent.ctorParameters = function () { return [ + { type: ngBootstrap.NgbModal }, + { type: store.Store }, + { type: core.Renderer2 } + ]; }; + PermissionManagementComponent.propDecorators = { + providerName: [{ type: core.Input }], + providerKey: [{ type: core.Input }], + visible: [{ type: core.Input }], + visibleChange: [{ type: core.Output }], + modalContent: [{ type: core.ViewChild, args: ['modalContent', { static: false },] }] + }; + __decorate([ + store.Select(PermissionManagementState.getPermissionGroups), + __metadata("design:type", rxjs.Observable) + ], PermissionManagementComponent.prototype, "groups$", void 0); + __decorate([ + store.Select(PermissionManagementState.getEntitiyDisplayName), + __metadata("design:type", rxjs.Observable) + ], PermissionManagementComponent.prototype, "entityName$", void 0); + return PermissionManagementComponent; + }()); + /** + * @param {?} permissions + * @param {?} permission + * @return {?} + */ + function findMargin(permissions, permission) { + /** @type {?} */ + var parentPermission = permissions.find((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === permission.parentName; })); + if (parentPermission && parentPermission.parentName) { + /** @type {?} */ + var margin = 20; + return (margin += findMargin(permissions, parentPermission)); + } + return parentPermission ? 20 : 0; + } + /** + * @param {?} groups + * @return {?} + */ + function getPermissions(groups) { + return groups.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return __spread(acc, val.permissions); }), []); + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PermissionManagementModule = /** @class */ (function () { + function PermissionManagementModule() { + } + PermissionManagementModule.decorators = [ + { type: core.NgModule, args: [{ + declarations: [PermissionManagementComponent], + imports: [ng_core.CoreModule, ng_theme_shared.ThemeSharedModule, store.NgxsModule.forFeature([PermissionManagementState]), ngxPerfectScrollbar.PerfectScrollbarModule], + exports: [PermissionManagementComponent], + },] } + ]; + return PermissionManagementModule; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PermissionManagement; + (function (PermissionManagement) { + /** + * @record + */ + function State() { } + PermissionManagement.State = State; + /** + * @record + */ + function Response() { } + PermissionManagement.Response = Response; + /** + * @record + */ + function Group() { } + PermissionManagement.Group = Group; + /** + * @record + */ + function MinimumPermission() { } + PermissionManagement.MinimumPermission = MinimumPermission; + /** + * @record + */ + function Permission() { } + PermissionManagement.Permission = Permission; + /** + * @record + */ + function GrantedProvider() { } + PermissionManagement.GrantedProvider = GrantedProvider; + /** + * @record + */ + function UpdateRequest() { } + PermissionManagement.UpdateRequest = UpdateRequest; + })(PermissionManagement || (PermissionManagement = {})); + + exports.PermissionManagementComponent = PermissionManagementComponent; + exports.PermissionManagementGetPermissions = PermissionManagementGetPermissions; + exports.PermissionManagementModule = PermissionManagementModule; + exports.PermissionManagementService = PermissionManagementService; + exports.PermissionManagementState = PermissionManagementState; + exports.PermissionManagementUpdatePermissions = PermissionManagementUpdatePermissions; + exports.ɵa = PermissionManagementComponent; + exports.ɵb = PermissionManagementState; + exports.ɵc = PermissionManagementService; + exports.ɵd = PermissionManagementGetPermissions; + exports.ɵe = PermissionManagementUpdatePermissions; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=abp-ng.permission-management.umd.js.map diff --git a/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.js.map b/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.js.map new file mode 100644 index 0000000000..37be4cdb78 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.permission-management.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { PermissionManagement } from '../models/permission-management';\n\nexport class PermissionManagementGetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class PermissionManagementUpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport {\n PermissionManagementGetPermissions,\n PermissionManagementUpdatePermissions,\n} from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(PermissionManagementGetPermissions)\n permissionManagementGet(\n { patchState }: StateContext,\n { payload }: PermissionManagementGetPermissions,\n ) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(PermissionManagementUpdatePermissions)\n permissionManagementUpdate(_, { payload }: PermissionManagementUpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n} from '@angular/core';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport {\n PermissionManagementGetPermissions,\n PermissionManagementUpdatePermissions,\n} from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n modalRef: NgbModalRef;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private modalService: NgbModal, private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n onSubmit() {\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new PermissionManagementUpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => this.modalRef.close());\n } else {\n this.modalRef.close();\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(\n new PermissionManagementGetPermissions({ providerKey: this.providerKey, providerName: this.providerName }),\n )\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.modalRef = this.modalService.open(this.modalContent, { size: 'lg' });\n this.visibleChange.emit(true);\n\n setTimeout(() => {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n });\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"],"names":["Injectable","RestService","tap","tslib_1.__decorate","Action","Selector","State","EventEmitter","map","take","pluck","from","Component","NgbModal","Store","Renderer2","Input","Output","ViewChild","Select","Observable","NgModule","CoreModule","ThemeSharedModule","NgxsModule","PerfectScrollbarModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js b/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js new file mode 100644 index 0000000000..1f282e569b --- /dev/null +++ b/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js @@ -0,0 +1,2 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@angular/core"),require("@ngxs/store"),require("@ng-bootstrap/ng-bootstrap"),require("rxjs"),require("rxjs/operators"),require("ngx-perfect-scrollbar")):"function"==typeof define&&define.amd?define("@abp/ng.permission-management",["exports","@abp/ng.core","@abp/ng.theme.shared","@angular/core","@ngxs/store","@ng-bootstrap/ng-bootstrap","rxjs","rxjs/operators","ngx-perfect-scrollbar"],n):n(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["permission-management"]={}),e.ng_core,e.ng_theme_shared,e.ng.core,e.store,e.ngBootstrap,e.rxjs,e.rxjs.operators,e.ngxPerfectScrollbar)}(this,function(e,n,t,i,s,r,o,a,c){"use strict";var l=function(){return(l=Object.assign||function(e){for(var n,t=1,i=arguments.length;t=0;a--)(s=e[a])&&(o=(r<3?s(o):r>3?s(n,t,o):s(n,t))||o);return r>3&&o&&Object.defineProperty(n,t,o),o}function u(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)}function m(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var i,s,r=t.call(e),o=[];try{for(;(void 0===n||n-- >0)&&!(i=r.next()).done;)o.push(i.value)}catch(e){s={error:e}}finally{try{i&&!i.done&&(t=r.return)&&t.call(r)}finally{if(s)throw s.error}}return o}function d(){for(var e=[],n=0;n\n \n \n \n \n\n \n \n\n'}]}],e.ctorParameters=function(){return[{type:r.NgbModal},{type:s.Store},{type:i.Renderer2}]},e.propDecorators={providerName:[{type:i.Input}],providerKey:[{type:i.Input}],visible:[{type:i.Input}],visibleChange:[{type:i.Output}],modalContent:[{type:i.ViewChild,args:["modalContent",{static:!1}]}]},p([s.Select(g.getPermissionGroups),u("design:type",o.Observable)],e.prototype,"groups$",void 0),p([s.Select(g.getEntitiyDisplayName),u("design:type",o.Observable)],e.prototype,"entityName$",void 0),e}();function v(e,n){var t=e.find(function(e){return e.name===n.parentName});return t&&t.parentName?20+v(e,t):t?20:0}function k(e){return e.reduce(function(e,n){return d(e,n.permissions)},[])}var S,G=function(){function e(){}return e.decorators=[{type:i.NgModule,args:[{declarations:[y],imports:[n.CoreModule,t.ThemeSharedModule,s.NgxsModule.forFeature([g]),c.PerfectScrollbarModule],exports:[y]}]}],e}();!function(e){e.State=function(){},e.Response=function(){},e.Group=function(){},e.MinimumPermission=function(){},e.Permission=function(){},e.GrantedProvider=function(){},e.UpdateRequest=function(){}}(S||(S={})),e.PermissionManagementComponent=y,e.PermissionManagementGetPermissions=b,e.PermissionManagementModule=G,e.PermissionManagementService=h,e.PermissionManagementState=g,e.PermissionManagementUpdatePermissions=f,e.ɵa=y,e.ɵb=g,e.ɵc=h,e.ɵd=b,e.ɵe=f,Object.defineProperty(e,"__esModule",{value:!0})}); +//# sourceMappingURL=abp-ng.permission-management.umd.min.js.map \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js.map b/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js.map new file mode 100644 index 0000000000..6c130e4faa --- /dev/null +++ b/npm/packs/ng/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","__spread","concat","PermissionManagementGetPermissions","payload","type","PermissionManagementUpdatePermissions","PermissionManagementService","rest","getPermissions","params","request","method","url","updatePermissions","_a","body","permissions","providerKey","providerName","Injectable","args","providedIn","RestService","PermissionManagementState","permissionManagementService","getPermissionGroups","permissionRes","groups","getEntitiyDisplayName","entityDisplayName","permissionManagementGet","_b","patchState","pipe","tap","permissionResponse","permissionManagementUpdate","_","tslib_1.__decorate","Action","Selector","State","name","defaults","PermissionManagementComponent","modalService","store","renderer","visibleChange","EventEmitter","selectThisTab","selectAllTab","trackByFn","item","_this","groups$","map","selectedGroup","find","group","permission","margin","findMargin","isGranted","per","ngOnInit","getChecked","onClickCheckbox","clickedPermission","setTimeout","parentName","setTabCheckboxState","setGrantCheckboxState","selectedGroupPermissions$","take","subscribe","selectedPermissions","filter","element","document","querySelector","indeterminate","selectedAllPermissions","checkboxElement","onClickSelectThisTab","forEach","index","findIndex","slice","onClickSelectAll","onChangeGroup","onSubmit","unchangedPermissions","selectSnapshot","changedPermissions","unchanged","dispatch","modalRef","close","openModal","Error","pluck","open","modalContent","size","emit","from","result","data","setVisible","reason","visible","ngOnChanges","currentValue","hasOpenModals","Component","selector","template","NgbModal","Store","Renderer2","Input","Output","ViewChild","static","Select","Observable","parentPermission","reduce","acc","val","PermissionManagement","PermissionManagementModule","NgModule","declarations","imports","CoreModule","ThemeSharedModule","NgxsModule","forFeature","PerfectScrollbarModule","exports"],"mappings":"wwBA6BO,IAAIA,EAAW,WAQlB,OAPAA,EAAWC,OAAOC,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOJ,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,IAE9E,OAAON,IAEKU,MAAMC,KAAMP,YAezB,SAASQ,EAAWC,EAAYC,EAAQC,EAAKC,GAChD,IAA2HC,EAAvHC,EAAId,UAAUC,OAAQc,EAAID,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOlB,OAAOsB,yBAAyBN,EAAQC,GAAOC,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAId,EAAIW,EAAWR,OAAS,EAAGH,GAAK,EAAGA,KAASe,EAAIJ,EAAWX,MAAIiB,GAAKD,EAAI,EAAID,EAAEE,GAAKD,EAAI,EAAID,EAAEH,EAAQC,EAAKI,GAAKF,EAAEH,EAAQC,KAASI,GAChJ,OAAOD,EAAI,GAAKC,GAAKrB,OAAOyB,eAAeT,EAAQC,EAAKI,GAAIA,EAOzD,SAASK,EAAWC,EAAaC,GACpC,GAAuB,iBAAZL,SAAoD,mBAArBA,QAAQM,SAAyB,OAAON,QAAQM,SAASF,EAAaC,GAuD7G,SAASE,EAAOC,EAAG1B,GACtB,IAAI2B,EAAsB,mBAAXC,QAAyBF,EAAEE,OAAOC,UACjD,IAAKF,EAAG,OAAOD,EACf,IAAmBV,EAAYc,EAA3B/B,EAAI4B,EAAErB,KAAKoB,GAAOK,EAAK,GAC3B,IACI,WAAc,IAAN/B,GAAgBA,KAAM,MAAQgB,EAAIjB,EAAEiC,QAAQC,MAAMF,EAAGG,KAAKlB,EAAEmB,OAExE,MAAOC,GAASN,EAAI,CAAEM,MAAOA,GACjC,QACQ,IACQpB,IAAMA,EAAEiB,OAASN,EAAI5B,EAAU,SAAI4B,EAAErB,KAAKP,GAE1D,QAAkB,GAAI+B,EAAG,MAAMA,EAAEM,OAE7B,OAAOL,EAGJ,SAASM,IACZ,IAAK,IAAIN,EAAK,GAAIhC,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAC3CgC,EAAKA,EAAGO,OAAOb,EAAOxB,UAAUF,KACpC,OAAOgC,ECzIX,IAAAQ,EAAA,WAEE,SAAAA,EAAmBC,GAAAhC,KAAAgC,QAAAA,EACrB,OAFkBD,EAAAE,KAAO,yCAEzBF,EAHA,gBAOE,SAAAG,EAAmBF,GAAAhC,KAAAgC,QAAAA,EACrB,OAFkBE,EAAAD,KAAO,4CAEzBC,KCVAC,EAAA,WASE,SAAAA,EAAoBC,GAAApC,KAAAoC,KAAAA,SAEpBD,EAAAvC,UAAAyC,eAAA,SAAeC,OACPC,EAA8D,CAClEC,OAAQ,MACRC,IAAK,uBACLH,OAAMA,GAGR,OAAOtC,KAAKoC,KAAKG,QAA6EA,IAGhGJ,EAAAvC,UAAA8C,kBAAA,SAAkBC,OAKVJ,EAA4D,CAChEC,OAAQ,MACRC,IAAK,uBACLG,KAAM,CAAEC,YAPVF,EAAAE,aAQEP,OAAQ,CAAEQ,YAPZH,EAAAG,YAOyBC,aANzBJ,EAAAI,eASA,OAAO/C,KAAKoC,KAAKG,QAAkDA,wBA5BtES,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,oDALLC,EAAAA,iJADT,gBCwBE,SAAAC,EAAoBC,GAAArD,KAAAqD,4BAAAA,EAoBtB,OA7BSD,EAAAE,oBAAP,SAA2BX,GACzB,OAD2BA,EAAAY,cACNC,QAAU,IAI1BJ,EAAAK,sBAAP,SAA6Bd,GAC3B,OAD6BA,EAAAY,cACRG,mBAMvBN,EAAAxD,UAAA+D,wBAAA,SACEhB,EACAiB,OADEC,EAAAlB,EAAAkB,WACA7B,EAAA4B,EAAA5B,QAEF,OAAOhC,KAAKqD,4BAA4BhB,eAAeL,GAAS8B,KAC9DC,EAAAA,IAAG,SAACC,GACF,OAAAH,EAAW,CACTN,cAAeS,QAOvBZ,EAAAxD,UAAAqE,2BAAA,SAA2BC,EAAGvB,OAAEX,EAAAW,EAAAX,QAC9B,OAAOhC,KAAKqD,4BAA4BX,kBAAkBV,IAf5DmC,EAAAA,CADCC,EAAAA,OAAOrC,2DAGOA,+EAYfoC,EAAAA,CADCC,EAAAA,OAAOlC,2DACmCA,kFA1B3CiC,EAAAA,CADCE,EAAAA,kIAMDF,EAAAA,CADCE,EAAAA,oIANUjB,EAAyBnD,EAAA,CAJrCqE,EAAAA,MAAkC,CACjCC,KAAM,4BACNC,SAAQ,CAAIjB,cAAe,6BAasBpB,KAXtCiB,mBCqEX,SAAAqB,EAAoBC,EAAgCC,EAAsBC,GAAtD5E,KAAA0E,aAAAA,EAAgC1E,KAAA2E,MAAAA,EAAsB3E,KAAA4E,SAAAA,EAzC1E5E,KAAA6E,cAAgB,IAAIC,EAAAA,aAepB9E,KAAA6C,YAAiD,GAEjD7C,KAAA+E,eAAyB,EAEzB/E,KAAAgF,cAAwB,EAExBhF,KAAAiF,UAAS,SAAiDf,EAAGgB,GAAS,OAAAA,EAAKX,MAqL7E,OAnLEpF,OAAAyB,eAAI6D,EAAA7E,UAAA,4BAAyB,KAA7B,WAAA,IAAAuF,EAAAnF,KACE,OAAOA,KAAKoF,QAAQtB,KAClBuB,EAAAA,IAAG,SAAC7B,GACF,OAAA2B,EAAKG,cAAgB9B,EAAO+B,KAAI,SAACC,GAAS,OAAAA,EAAMjB,OAASY,EAAKG,cAAcf,OAAM1B,YAAc,KAElGwC,EAAAA,IAAG,SAA4DxC,GAC7D,OAAAA,EAAYwC,IAAG,SACbI,GACE,OAAAvG,EAAA,GACKuG,EAAU,CACbC,OAAQC,EAAW9C,EAAa4C,GAChCG,UAAWT,EAAKtC,YAAY0C,KAAI,SAACM,GAAO,OAAAA,EAAItB,OAASkB,EAAWlB,OAAMqB,kDASlFnB,EAAA7E,UAAAkG,SAAA,aAEArB,EAAA7E,UAAAmG,WAAA,SAAWxB,GACT,OAAQvE,KAAK6C,YAAY0C,KAAI,SAACM,GAAO,OAAAA,EAAItB,OAASA,KAAS,CAAEqB,WAAW,IAASA,WAGnFnB,EAAA7E,UAAAoG,gBAAA,SAAgBC,EAAoDtE,GAApE,IAAAwD,EAAAnF,KACEkG,WAAU,WACRf,EAAKtC,YAAcsC,EAAKtC,YAAYwC,IAAG,SAACQ,GACtC,OAAII,EAAkB1B,OAASsB,EAAItB,KACjCrF,EAAA,GAAY2G,EAAG,CAAED,WAAYC,EAAID,YACxBK,EAAkB1B,OAASsB,EAAIM,YAAcF,EAAkBL,UACxE1G,EAAA,GAAY2G,EAAG,CAAED,WAAW,IACnBK,EAAkBE,aAAeN,EAAItB,MAAS0B,EAAkBL,UAIpEC,EAHL3G,EAAA,GAAY2G,EAAG,CAAED,WAAW,MAMhCT,EAAKiB,sBACLjB,EAAKkB,yBACJ,IAGL5B,EAAA7E,UAAAwG,oBAAA,WAAA,IAAAjB,EAAAnF,KACEA,KAAKsG,0BAA0BxC,KAAKyC,EAAAA,KAAK,IAAIC,UAAS,SAAC3D,OAC/C4D,EAAsB5D,EAAY6D,OAAM,SAACb,GAAO,OAAAA,EAAID,YACpDe,EAAUC,SAASC,cAAc,4BAEnCJ,EAAoB/G,SAAWmD,EAAYnD,QAC7CiH,EAAQG,eAAgB,EACxB3B,EAAKJ,eAAgB,GACmB,IAA/B0B,EAAoB/G,QAC7BiH,EAAQG,eAAgB,EACxB3B,EAAKJ,eAAgB,GAErB4B,EAAQG,eAAgB,KAK9BrC,EAAA7E,UAAAyG,sBAAA,eACQU,EAAyB/G,KAAK6C,YAAY6D,OAAM,SAACb,GAAO,OAAAA,EAAID,YAC5DoB,EAAkBJ,SAASC,cAAc,2BAE3CE,EAAuBrH,SAAWM,KAAK6C,YAAYnD,QACrDsH,EAAgBF,eAAgB,EAChC9G,KAAKgF,cAAe,GACuB,IAAlC+B,EAAuBrH,QAChCsH,EAAgBF,eAAgB,EAChC9G,KAAKgF,cAAe,GAEpBgC,EAAgBF,eAAgB,GAIpCrC,EAAA7E,UAAAqH,qBAAA,WAAA,IAAA9B,EAAAnF,KACEA,KAAKsG,0BAA0BxC,KAAKyC,EAAAA,KAAK,IAAIC,UAAS,SAAC3D,GACrDA,EAAYqE,QAAO,SAACzB,OACZ0B,EAAQhC,EAAKtC,YAAYuE,UAAS,SAACvB,GAAO,OAAAA,EAAItB,OAASkB,EAAWlB,OAExEY,EAAKtC,YAAWhB,EACXsD,EAAKtC,YAAYwE,MAAM,EAAGF,GAAM,MAC9BhC,EAAKtC,YAAYsE,GAAM,CAAEvB,WAAYT,EAAKJ,iBAC5CI,EAAKtC,YAAYwE,MAAMF,EAAQ,QAKxCnH,KAAKqG,yBAGP5B,EAAA7E,UAAA0H,iBAAA,WAAA,IAAAnC,EAAAnF,KACEA,KAAK6C,YAAc7C,KAAK6C,YAAYwC,IAAG,SAACI,GAAc,OAAAvG,EAAA,GAAMuG,EAAU,CAAEG,WAAYT,EAAKH,iBAEzFhF,KAAK+E,eAAiB/E,KAAKgF,cAG7BP,EAAA7E,UAAA2H,cAAA,SAAc/B,GACZxF,KAAKsF,cAAgBE,EACrBxF,KAAKoG,uBAGP3B,EAAA7E,UAAA4H,SAAA,WAAA,IAAArC,EAAAnF,KACQyH,EAAuBpF,EAC3BrC,KAAK2E,MAAM+C,eAAetE,EAA0BE,sBAGhDqE,EAA+D3H,KAAK6C,YACvE6D,OAAM,SAACb,GACN,OAAA4B,EAAqBlC,KAAI,SAACqC,GAAa,OAAAA,EAAUrD,OAASsB,EAAItB,OAAMqB,YAAcC,EAAID,YAEvFP,IAAG,SAAE1C,GAAwB,MAAA,CAAG4B,KAAzB5B,EAAA4B,KAA+BqB,UAAzBjD,EAAAiD,aAEZ+B,EAAmBjI,OACrBM,KAAK2E,MACFkD,SACC,IAAI3F,EAAsC,CACxCY,YAAa9C,KAAK8C,YAClBC,aAAc/C,KAAK+C,aACnBF,YAAa8E,KAGhBnB,UAAS,WAAO,OAAArB,EAAK2C,SAASC,UAEjC/H,KAAK8H,SAASC,SAIlBtD,EAAA7E,UAAAoI,UAAA,WAAA,IAAA7C,EAAAnF,KACE,IAAKA,KAAK8C,cAAgB9C,KAAK+C,aAC7B,MAAM,IAAIkF,MAAM,gDAGlBjI,KAAK2E,MACFkD,SACC,IAAI9F,EAAmC,CAAEe,YAAa9C,KAAK8C,YAAaC,aAAc/C,KAAK+C,gBAE5Fe,KAAKoE,EAAAA,MAAM,4BAA6B,kBACxC1B,UAAS,SAAEjD,GACV4B,EAAKG,cAAgB/B,EAAcC,OAAO,GAC1C2B,EAAKtC,YAAcR,EAAekB,EAAcC,QAEhD2B,EAAK2C,SAAW3C,EAAKT,aAAayD,KAAKhD,EAAKiD,aAAc,CAAEC,KAAM,OAClElD,EAAKN,cAAcyD,MAAK,GAExBpC,WAAU,WACRf,EAAKiB,sBACLjB,EAAKkB,yBACJ,GAEHkC,EAAAA,KAAKpD,EAAK2C,SAASU,QAChB1E,KAAKyC,EAAAA,KAAK,IACVC,UAAS,SACRiC,GACEtD,EAAKuD,YAAW,IACjB,SACDC,GACExD,EAAKuD,YAAW,QAM5BjE,EAAA7E,UAAA8I,WAAA,SAAW/G,GACT3B,KAAK4I,QAAUjH,EACf3B,KAAK6E,cAAcyD,KAAK3G,IAG1B8C,EAAA7E,UAAAiJ,YAAA,SAAYlG,OAAEiG,EAAAjG,EAAAiG,QACPA,IAEDA,EAAQE,aACV9I,KAAKgI,aAC6B,IAAzBY,EAAQE,cAA0B9I,KAAK0E,aAAaqE,iBAC7D/I,KAAK8H,SAASC,8BAtNnBiB,EAAAA,UAAS/F,KAAA,CAAC,CACTgG,SAAU,4BACVC,SAAA,y2HAfOC,EAAAA,gBACQC,EAAAA,aAPfC,EAAAA,mDAwBCC,EAAAA,2BAGAA,EAAAA,uBAGAA,EAAAA,6BAGAC,EAAAA,6BAGAC,EAAAA,UAASvG,KAAA,CAAC,eAAgB,CAAEwG,QAAQ,OAIrCtF,EAAAA,CADCuF,EAAAA,OAAOtG,EAA0BE,qCACzBqG,EAAAA,2CAGTxF,EAAAA,CADCuF,EAAAA,OAAOtG,EAA0BK,uCACrBkG,EAAAA,+CAiMflF,KAEA,SAASkB,EAAW9C,EAAgD4C,OAC5DmE,EAAmB/G,EAAY0C,KAAI,SAACM,GAAO,OAAAA,EAAItB,OAASkB,EAAWU,aAEzE,OAAIyD,GAAoBA,EAAiBzD,WAC1B,GACKR,EAAW9C,EAAa+G,GAGrCA,EAAmB,GAAK,EAGjC,SAASvH,EAAemB,GACtB,OAAOA,EAAOqG,OAAM,SAAEC,EAAKC,GAAQ,OAAAlI,EAAIiI,EAAQC,EAAIlH,cAAc,ICjQnE,ICAiBmH,EDAjBC,EAAA,WAQA,SAAAA,KAKyC,2BALxCC,EAAAA,SAAQjH,KAAA,CAAC,CACRkH,aAAc,CAAC1F,GACf2F,QAAS,CAACC,EAAAA,WAAYC,EAAAA,kBAAmBC,EAAAA,WAAWC,WAAW,CAACpH,IAA6BqH,EAAAA,wBAC7FC,QAAS,CAACjG,OAE6BwF,EAbzC,ICAA,SAAiBD,WACf,wBAIA,qBAKA,iCAMA,0BAKA,+BAOA,6BAKA,aAjCF,CAAiBA,IAAAA,EAAoB","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { PermissionManagement } from '../models/permission-management';\n\nexport class PermissionManagementGetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class PermissionManagementUpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport {\n PermissionManagementGetPermissions,\n PermissionManagementUpdatePermissions,\n} from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(PermissionManagementGetPermissions)\n permissionManagementGet(\n { patchState }: StateContext,\n { payload }: PermissionManagementGetPermissions,\n ) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(PermissionManagementUpdatePermissions)\n permissionManagementUpdate(_, { payload }: PermissionManagementUpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n} from '@angular/core';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport {\n PermissionManagementGetPermissions,\n PermissionManagementUpdatePermissions,\n} from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n modalRef: NgbModalRef;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private modalService: NgbModal, private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n onSubmit() {\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new PermissionManagementUpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => this.modalRef.close());\n } else {\n this.modalRef.close();\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(\n new PermissionManagementGetPermissions({ providerKey: this.providerKey, providerName: this.providerName }),\n )\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.modalRef = this.modalService.open(this.modalContent, { size: 'lg' });\n this.visibleChange.emit(true);\n\n setTimeout(() => {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n });\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"]} \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/abp-ng.permission-management.js b/npm/packs/ng/dist/permission-management/esm2015/abp-ng.permission-management.js new file mode 100644 index 0000000000..4c6723512d --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/abp-ng.permission-management.js @@ -0,0 +1,13 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { PermissionManagementModule, PermissionManagementGetPermissions, PermissionManagementUpdatePermissions, PermissionManagementComponent, PermissionManagementService, PermissionManagementState } from './public-api'; +export { PermissionManagementGetPermissions as ɵd, PermissionManagementUpdatePermissions as ɵe } from './lib/actions/permission-management.actions'; +export { PermissionManagementComponent as ɵa } from './lib/components/permission-management.component'; +export { PermissionManagementService as ɵc } from './lib/services/permission-management.service'; +export { PermissionManagementState as ɵb } from './lib/states/permission-management.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsNk1BQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxrQ0FBa0MsSUFBSSxFQUFFLEVBQUMscUNBQXFDLElBQUksRUFBRSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDakosT0FBTyxFQUFDLDZCQUE2QixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRXJHLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRixPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7UGVybWlzc2lvbk1hbmFnZW1lbnRHZXRQZXJtaXNzaW9ucyBhcyDJtWQsUGVybWlzc2lvbk1hbmFnZW1lbnRVcGRhdGVQZXJtaXNzaW9ucyBhcyDJtWV9IGZyb20gJy4vbGliL2FjdGlvbnMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvbW9kZWxzL3Blcm1pc3Npb24tbWFuYWdlbWVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50U2VydmljZSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2VzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7UGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc3RhdGUnOyJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/lib/actions/index.js b/npm/packs/ng/dist/permission-management/esm2015/lib/actions/index.js new file mode 100644 index 0000000000..314c92ddc4 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/lib/actions/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PermissionManagementGetPermissions, PermissionManagementUpdatePermissions } from './permission-management.actions'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9hY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwwRkFBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/lib/actions/permission-management.actions.js b/npm/packs/ng/dist/permission-management/esm2015/lib/actions/permission-management.actions.js new file mode 100644 index 0000000000..d036f8dab6 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/lib/actions/permission-management.actions.js @@ -0,0 +1,35 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export class PermissionManagementGetPermissions { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +PermissionManagementGetPermissions.type = '[PermissionManagement] Get Permissions'; +if (false) { + /** @type {?} */ + PermissionManagementGetPermissions.type; + /** @type {?} */ + PermissionManagementGetPermissions.prototype.payload; +} +export class PermissionManagementUpdatePermissions { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +PermissionManagementUpdatePermissions.type = '[PermissionManagement] Update Permissions'; +if (false) { + /** @type {?} */ + PermissionManagementUpdatePermissions.type; + /** @type {?} */ + PermissionManagementUpdatePermissions.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9hY3Rpb25zL3Blcm1pc3Npb24tbWFuYWdlbWVudC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLE9BQU8sa0NBQWtDOzs7O0lBRTdDLFlBQW1CLE9BQTZDO1FBQTdDLFlBQU8sR0FBUCxPQUFPLENBQXNDO0lBQUcsQ0FBQzs7QUFEcEQsdUNBQUksR0FBRyx3Q0FBd0MsQ0FBQzs7O0lBQWhFLHdDQUFnRTs7SUFDcEQscURBQW9EOztBQUdsRSxNQUFNLE9BQU8scUNBQXFDOzs7O0lBRWhELFlBQW1CLE9BQWtGO1FBQWxGLFlBQU8sR0FBUCxPQUFPLENBQTJFO0lBQUcsQ0FBQzs7QUFEekYsMENBQUksR0FBRywyQ0FBMkMsQ0FBQzs7O0lBQW5FLDJDQUFtRTs7SUFDdkQsd0RBQXlGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50JztcblxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25NYW5hZ2VtZW50R2V0UGVybWlzc2lvbnMge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbUGVybWlzc2lvbk1hbmFnZW1lbnRdIEdldCBQZXJtaXNzaW9ucyc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5HcmFudGVkUHJvdmlkZXIpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uTWFuYWdlbWVudFVwZGF0ZVBlcm1pc3Npb25zIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Blcm1pc3Npb25NYW5hZ2VtZW50XSBVcGRhdGUgUGVybWlzc2lvbnMnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JhbnRlZFByb3ZpZGVyICYgUGVybWlzc2lvbk1hbmFnZW1lbnQuVXBkYXRlUmVxdWVzdCkge31cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/lib/components/index.js b/npm/packs/ng/dist/permission-management/esm2015/lib/components/index.js new file mode 100644 index 0000000000..95380b6151 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/lib/components/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PermissionManagementComponent } from './permission-management.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw4Q0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/lib/components/permission-management.component.js b/npm/packs/ng/dist/permission-management/esm2015/lib/components/permission-management.component.js new file mode 100644 index 0000000000..4a1d927657 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/lib/components/permission-management.component.js @@ -0,0 +1,412 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component, EventEmitter, Input, Output, Renderer2, TemplateRef, ViewChild, } from '@angular/core'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { Select, Store } from '@ngxs/store'; +import { from, Observable } from 'rxjs'; +import { map, pluck, take } from 'rxjs/operators'; +import { PermissionManagementGetPermissions, PermissionManagementUpdatePermissions, } from '../actions/permission-management.actions'; +import { PermissionManagementState } from '../states/permission-management.state'; +export class PermissionManagementComponent { + /** + * @param {?} modalService + * @param {?} store + * @param {?} renderer + */ + constructor(modalService, store, renderer) { + this.modalService = modalService; + this.store = store; + this.renderer = renderer; + this.visibleChange = new EventEmitter(); + this.permissions = []; + this.selectThisTab = false; + this.selectAllTab = false; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + (_, item) => item.name); + } + /** + * @return {?} + */ + get selectedGroupPermissions$() { + return this.groups$.pipe(map((/** + * @param {?} groups + * @return {?} + */ + groups => this.selectedGroup ? groups.find((/** + * @param {?} group + * @return {?} + */ + group => group.name === this.selectedGroup.name)).permissions : [])), map((/** + * @param {?} permissions + * @return {?} + */ + permissions => permissions.map((/** + * @param {?} permission + * @return {?} + */ + permission => ((/** @type {?} */ (((/** @type {?} */ (Object.assign({}, permission, { margin: findMargin(permissions, permission), isGranted: this.permissions.find((/** + * @param {?} per + * @return {?} + */ + per => per.name === permission.name)).isGranted })))))))))))); + } + /** + * @return {?} + */ + ngOnInit() { } + /** + * @param {?} name + * @return {?} + */ + getChecked(name) { + return (this.permissions.find((/** + * @param {?} per + * @return {?} + */ + per => per.name === name)) || { isGranted: false }).isGranted; + } + /** + * @param {?} clickedPermission + * @param {?} value + * @return {?} + */ + onClickCheckbox(clickedPermission, value) { + setTimeout((/** + * @return {?} + */ + () => { + this.permissions = this.permissions.map((/** + * @param {?} per + * @return {?} + */ + per => { + if (clickedPermission.name === per.name) { + return Object.assign({}, per, { isGranted: !per.isGranted }); + } + else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) { + return Object.assign({}, per, { isGranted: false }); + } + else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) { + return Object.assign({}, per, { isGranted: true }); + } + return per; + })); + this.setTabCheckboxState(); + this.setGrantCheckboxState(); + }), 0); + } + /** + * @return {?} + */ + setTabCheckboxState() { + this.selectedGroupPermissions$.pipe(take(1)).subscribe((/** + * @param {?} permissions + * @return {?} + */ + permissions => { + /** @type {?} */ + const selectedPermissions = permissions.filter((/** + * @param {?} per + * @return {?} + */ + per => per.isGranted)); + /** @type {?} */ + const element = (/** @type {?} */ (document.querySelector('#select-all-in-this-tabs'))); + if (selectedPermissions.length === permissions.length) { + element.indeterminate = false; + this.selectThisTab = true; + } + else if (selectedPermissions.length === 0) { + element.indeterminate = false; + this.selectThisTab = false; + } + else { + element.indeterminate = true; + } + })); + } + /** + * @return {?} + */ + setGrantCheckboxState() { + /** @type {?} */ + const selectedAllPermissions = this.permissions.filter((/** + * @param {?} per + * @return {?} + */ + per => per.isGranted)); + /** @type {?} */ + const checkboxElement = (/** @type {?} */ (document.querySelector('#select-all-in-all-tabs'))); + if (selectedAllPermissions.length === this.permissions.length) { + checkboxElement.indeterminate = false; + this.selectAllTab = true; + } + else if (selectedAllPermissions.length === 0) { + checkboxElement.indeterminate = false; + this.selectAllTab = false; + } + else { + checkboxElement.indeterminate = true; + } + } + /** + * @return {?} + */ + onClickSelectThisTab() { + this.selectedGroupPermissions$.pipe(take(1)).subscribe((/** + * @param {?} permissions + * @return {?} + */ + permissions => { + permissions.forEach((/** + * @param {?} permission + * @return {?} + */ + permission => { + /** @type {?} */ + const index = this.permissions.findIndex((/** + * @param {?} per + * @return {?} + */ + per => per.name === permission.name)); + this.permissions = [ + ...this.permissions.slice(0, index), + Object.assign({}, this.permissions[index], { isGranted: !this.selectThisTab }), + ...this.permissions.slice(index + 1), + ]; + })); + })); + this.setGrantCheckboxState(); + } + /** + * @return {?} + */ + onClickSelectAll() { + this.permissions = this.permissions.map((/** + * @param {?} permission + * @return {?} + */ + permission => (Object.assign({}, permission, { isGranted: !this.selectAllTab })))); + this.selectThisTab = !this.selectAllTab; + } + /** + * @param {?} group + * @return {?} + */ + onChangeGroup(group) { + this.selectedGroup = group; + this.setTabCheckboxState(); + } + /** + * @return {?} + */ + onSubmit() { + /** @type {?} */ + const unchangedPermissions = getPermissions(this.store.selectSnapshot(PermissionManagementState.getPermissionGroups)); + /** @type {?} */ + const changedPermissions = this.permissions + .filter((/** + * @param {?} per + * @return {?} + */ + per => unchangedPermissions.find((/** + * @param {?} unchanged + * @return {?} + */ + unchanged => unchanged.name === per.name)).isGranted === per.isGranted ? false : true)) + .map((/** + * @param {?} __0 + * @return {?} + */ + ({ name, isGranted }) => ({ name, isGranted }))); + if (changedPermissions.length) { + this.store + .dispatch(new PermissionManagementUpdatePermissions({ + providerKey: this.providerKey, + providerName: this.providerName, + permissions: changedPermissions, + })) + .subscribe((/** + * @return {?} + */ + () => this.modalRef.close())); + } + else { + this.modalRef.close(); + } + } + /** + * @return {?} + */ + openModal() { + if (!this.providerKey || !this.providerName) { + throw new Error('Provider Key and Provider Name are required.'); + } + this.store + .dispatch(new PermissionManagementGetPermissions({ providerKey: this.providerKey, providerName: this.providerName })) + .pipe(pluck('PermissionManagementState', 'permissionRes')) + .subscribe((/** + * @param {?} permissionRes + * @return {?} + */ + (permissionRes) => { + this.selectedGroup = permissionRes.groups[0]; + this.permissions = getPermissions(permissionRes.groups); + this.modalRef = this.modalService.open(this.modalContent, { size: 'lg' }); + this.visibleChange.emit(true); + setTimeout((/** + * @return {?} + */ + () => { + this.setTabCheckboxState(); + this.setGrantCheckboxState(); + }), 0); + from(this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + data => { + this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + reason => { + this.setVisible(false); + })); + })); + } + /** + * @param {?} value + * @return {?} + */ + setVisible(value) { + this.visible = value; + this.visibleChange.emit(value); + } + /** + * @param {?} __0 + * @return {?} + */ + ngOnChanges({ visible }) { + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + } +} +PermissionManagementComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-permission-management', + template: "\n \n
\n

\n {{ 'AbpPermissionManagement::Permissions' | abpLocalization }} -\n {{ data.entityName }}\n

\n \n
\n
\n
\n \n \n
\n\n
\n
\n
\n \n
\n
\n

{{ selectedGroup.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n
\n \n
\n
\n
\n \n\n
\n \n \n
\n
\n
\n" + }] } +]; +/** @nocollapse */ +PermissionManagementComponent.ctorParameters = () => [ + { type: NgbModal }, + { type: Store }, + { type: Renderer2 } +]; +PermissionManagementComponent.propDecorators = { + providerName: [{ type: Input }], + providerKey: [{ type: Input }], + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; +tslib_1.__decorate([ + Select(PermissionManagementState.getPermissionGroups), + tslib_1.__metadata("design:type", Observable) +], PermissionManagementComponent.prototype, "groups$", void 0); +tslib_1.__decorate([ + Select(PermissionManagementState.getEntitiyDisplayName), + tslib_1.__metadata("design:type", Observable) +], PermissionManagementComponent.prototype, "entityName$", void 0); +if (false) { + /** @type {?} */ + PermissionManagementComponent.prototype.providerName; + /** @type {?} */ + PermissionManagementComponent.prototype.providerKey; + /** @type {?} */ + PermissionManagementComponent.prototype.visible; + /** @type {?} */ + PermissionManagementComponent.prototype.visibleChange; + /** @type {?} */ + PermissionManagementComponent.prototype.modalContent; + /** @type {?} */ + PermissionManagementComponent.prototype.groups$; + /** @type {?} */ + PermissionManagementComponent.prototype.entityName$; + /** @type {?} */ + PermissionManagementComponent.prototype.modalRef; + /** @type {?} */ + PermissionManagementComponent.prototype.selectedGroup; + /** @type {?} */ + PermissionManagementComponent.prototype.permissions; + /** @type {?} */ + PermissionManagementComponent.prototype.selectThisTab; + /** @type {?} */ + PermissionManagementComponent.prototype.selectAllTab; + /** @type {?} */ + PermissionManagementComponent.prototype.trackByFn; + /** + * @type {?} + * @private + */ + PermissionManagementComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + PermissionManagementComponent.prototype.store; + /** + * @type {?} + * @private + */ + PermissionManagementComponent.prototype.renderer; +} +/** + * @param {?} permissions + * @param {?} permission + * @return {?} + */ +function findMargin(permissions, permission) { + /** @type {?} */ + const parentPermission = permissions.find((/** + * @param {?} per + * @return {?} + */ + per => per.name === permission.parentName)); + if (parentPermission && parentPermission.parentName) { + /** @type {?} */ + let margin = 20; + return (margin += findMargin(permissions, parentPermission)); + } + return parentPermission ? 20 : 0; +} +/** + * @param {?} groups + * @return {?} + */ +function getPermissions(groups) { + return groups.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => [...acc, ...val.permissions]), []); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFFWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMscUNBQXFDLEdBQ3RDLE1BQU0sMENBQTBDLENBQUM7QUFFbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFRbEYsTUFBTSxPQUFPLDZCQUE2Qjs7Ozs7O0lBb0R4QyxZQUFvQixZQUFzQixFQUFVLEtBQVksRUFBVSxRQUFtQjtRQUF6RSxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQU87UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBekM3RixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFlNUMsZ0JBQVcsR0FBc0MsRUFBRSxDQUFDO1FBRXBELGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRS9CLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlCLGNBQVM7Ozs7O1FBQWdELENB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Z0JBQWdCLEdBQUcsV0FBVyxDQUFDLElBQUk7Ozs7SUFBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLFVBQVUsRUFBQztJQUVwRixJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLFVBQVUsRUFBRTs7WUFDL0MsTUFBTSxHQUFHLEVBQUU7UUFDZixPQUFPLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0tBQzlEO0lBRUQsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQzs7Ozs7QUFFRCxTQUFTLGNBQWMsQ0FBQyxNQUFvQztJQUMxRCxPQUFPLE1BQU0sQ0FBQyxNQUFNOzs7OztJQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRSxFQUFFLENBQUMsQ0FBQztBQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JNb2RhbCwgTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBwbHVjaywgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIFBlcm1pc3Npb25NYW5hZ2VtZW50R2V0UGVybWlzc2lvbnMsXG4gIFBlcm1pc3Npb25NYW5hZ2VtZW50VXBkYXRlUGVybWlzc2lvbnMsXG59IGZyb20gJy4uL2FjdGlvbnMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LnN0YXRlJztcblxudHlwZSBQZXJtaXNzaW9uV2l0aE1hcmdpbiA9IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb24gJiB7IG1hcmdpbjogbnVtYmVyIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1wZXJtaXNzaW9uLW1hbmFnZW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgdmlzaWJsZTogYm9vbGVhbjtcblxuICBAT3V0cHV0KClcbiAgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbW9kYWxDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBTZWxlY3QoUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZS5nZXRQZXJtaXNzaW9uR3JvdXBzKVxuICBncm91cHMkOiBPYnNlcnZhYmxlPFBlcm1pc3Npb25NYW5hZ2VtZW50Lkdyb3VwW10+O1xuXG4gIEBTZWxlY3QoUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZS5nZXRFbnRpdGl5RGlzcGxheU5hbWUpXG4gIGVudGl0eU5hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgbW9kYWxSZWY6IE5nYk1vZGFsUmVmO1xuXG4gIHNlbGVjdGVkR3JvdXA6IFBlcm1pc3Npb25NYW5hZ2VtZW50Lkdyb3VwO1xuXG4gIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5QZXJtaXNzaW9uW10gPSBbXTtcblxuICBzZWxlY3RUaGlzVGFiOiBib29sZWFuID0gZmFsc2U7XG5cbiAgc2VsZWN0QWxsVGFiOiBib29sZWFuID0gZmFsc2U7XG5cbiAgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248UGVybWlzc2lvbk1hbmFnZW1lbnQuR3JvdXA+ID0gKF8sIGl0ZW0pID0+IGl0ZW0ubmFtZTtcblxuICBnZXQgc2VsZWN0ZWRHcm91cFBlcm1pc3Npb25zJCgpOiBPYnNlcnZhYmxlPFBlcm1pc3Npb25XaXRoTWFyZ2luW10+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cHMkLnBpcGUoXG4gICAgICBtYXAoZ3JvdXBzID0+XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cCA/IGdyb3Vwcy5maW5kKGdyb3VwID0+IGdyb3VwLm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRHcm91cC5uYW1lKS5wZXJtaXNzaW9ucyA6IFtdLFxuICAgICAgKSxcbiAgICAgIG1hcDxQZXJtaXNzaW9uTWFuYWdlbWVudC5QZXJtaXNzaW9uW10sIFBlcm1pc3Npb25XaXRoTWFyZ2luW10+KHBlcm1pc3Npb25zID0+XG4gICAgICAgIHBlcm1pc3Npb25zLm1hcChcbiAgICAgICAgICBwZXJtaXNzaW9uID0+XG4gICAgICAgICAgICAoKHtcbiAgICAgICAgICAgICAgLi4ucGVybWlzc2lvbixcbiAgICAgICAgICAgICAgbWFyZ2luOiBmaW5kTWFyZ2luKHBlcm1pc3Npb25zLCBwZXJtaXNzaW9uKSxcbiAgICAgICAgICAgICAgaXNHcmFudGVkOiB0aGlzLnBlcm1pc3Npb25zLmZpbmQocGVyID0+IHBlci5uYW1lID09PSBwZXJtaXNzaW9uLm5hbWUpLmlzR3JhbnRlZCxcbiAgICAgICAgICAgIH0gYXMgYW55KSBhcyBQZXJtaXNzaW9uV2l0aE1hcmdpbiksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIGdldENoZWNrZWQobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICh0aGlzLnBlcm1pc3Npb25zLmZpbmQocGVyID0+IHBlci5uYW1lID09PSBuYW1lKSB8fCB7IGlzR3JhbnRlZDogZmFsc2UgfSkuaXNHcmFudGVkO1xuICB9XG5cbiAgb25DbGlja0NoZWNrYm94KGNsaWNrZWRQZXJtaXNzaW9uOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5QZXJtaXNzaW9uLCB2YWx1ZSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IHRoaXMucGVybWlzc2lvbnMubWFwKHBlciA9PiB7XG4gICAgICAgIGlmIChjbGlja2VkUGVybWlzc2lvbi5uYW1lID09PSBwZXIubmFtZSkge1xuICAgICAgICAgIHJldHVybiB7IC4uLnBlciwgaXNHcmFudGVkOiAhcGVyLmlzR3JhbnRlZCB9O1xuICAgICAgICB9IGVsc2UgaWYgKGNsaWNrZWRQZXJtaXNzaW9uLm5hbWUgPT09IHBlci5wYXJlbnROYW1lICYmIGNsaWNrZWRQZXJtaXNzaW9uLmlzR3JhbnRlZCkge1xuICAgICAgICAgIHJldHVybiB7IC4uLnBlciwgaXNHcmFudGVkOiBmYWxzZSB9O1xuICAgICAgICB9IGVsc2UgaWYgKGNsaWNrZWRQZXJtaXNzaW9uLnBhcmVudE5hbWUgPT09IHBlci5uYW1lICYmICFjbGlja2VkUGVybWlzc2lvbi5pc0dyYW50ZWQpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi5wZXIsIGlzR3JhbnRlZDogdHJ1ZSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBlcjtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNldFRhYkNoZWNrYm94U3RhdGUoKTtcbiAgICAgIHRoaXMuc2V0R3JhbnRDaGVja2JveFN0YXRlKCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBzZXRUYWJDaGVja2JveFN0YXRlKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cFBlcm1pc3Npb25zJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShwZXJtaXNzaW9ucyA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZFBlcm1pc3Npb25zID0gcGVybWlzc2lvbnMuZmlsdGVyKHBlciA9PiBwZXIuaXNHcmFudGVkKTtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc2VsZWN0LWFsbC1pbi10aGlzLXRhYnMnKSBhcyBhbnk7XG5cbiAgICAgIGlmIChzZWxlY3RlZFBlcm1pc3Npb25zLmxlbmd0aCA9PT0gcGVybWlzc2lvbnMubGVuZ3RoKSB7XG4gICAgICAgIGVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdFRoaXNUYWIgPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChzZWxlY3RlZFBlcm1pc3Npb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBlbGVtZW50LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RUaGlzVGFiID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbGVtZW50LmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0R3JhbnRDaGVja2JveFN0YXRlKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkQWxsUGVybWlzc2lvbnMgPSB0aGlzLnBlcm1pc3Npb25zLmZpbHRlcihwZXIgPT4gcGVyLmlzR3JhbnRlZCk7XG4gICAgY29uc3QgY2hlY2tib3hFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3NlbGVjdC1hbGwtaW4tYWxsLXRhYnMnKSBhcyBhbnk7XG5cbiAgICBpZiAoc2VsZWN0ZWRBbGxQZXJtaXNzaW9ucy5sZW5ndGggPT09IHRoaXMucGVybWlzc2lvbnMubGVuZ3RoKSB7XG4gICAgICBjaGVja2JveEVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWxlY3RBbGxUYWIgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRBbGxQZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNoZWNrYm94RWxlbWVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdEFsbFRhYiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjaGVja2JveEVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25DbGlja1NlbGVjdFRoaXNUYWIoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwUGVybWlzc2lvbnMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHBlcm1pc3Npb25zID0+IHtcbiAgICAgIHBlcm1pc3Npb25zLmZvckVhY2gocGVybWlzc2lvbiA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wZXJtaXNzaW9ucy5maW5kSW5kZXgocGVyID0+IHBlci5uYW1lID09PSBwZXJtaXNzaW9uLm5hbWUpO1xuXG4gICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSBbXG4gICAgICAgICAgLi4udGhpcy5wZXJtaXNzaW9ucy5zbGljZSgwLCBpbmRleCksXG4gICAgICAgICAgeyAuLi50aGlzLnBlcm1pc3Npb25zW2luZGV4XSwgaXNHcmFudGVkOiAhdGhpcy5zZWxlY3RUaGlzVGFiIH0sXG4gICAgICAgICAgLi4udGhpcy5wZXJtaXNzaW9ucy5zbGljZShpbmRleCArIDEpLFxuICAgICAgICBdO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNldEdyYW50Q2hlY2tib3hTdGF0ZSgpO1xuICB9XG5cbiAgb25DbGlja1NlbGVjdEFsbCgpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9ucy5tYXAocGVybWlzc2lvbiA9PiAoeyAuLi5wZXJtaXNzaW9uLCBpc0dyYW50ZWQ6ICF0aGlzLnNlbGVjdEFsbFRhYiB9KSk7XG5cbiAgICB0aGlzLnNlbGVjdFRoaXNUYWIgPSAhdGhpcy5zZWxlY3RBbGxUYWI7XG4gIH1cblxuICBvbkNoYW5nZUdyb3VwKGdyb3VwOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5Hcm91cCkge1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cCA9IGdyb3VwO1xuICAgIHRoaXMuc2V0VGFiQ2hlY2tib3hTdGF0ZSgpO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgY29uc3QgdW5jaGFuZ2VkUGVybWlzc2lvbnMgPSBnZXRQZXJtaXNzaW9ucyhcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZS5nZXRQZXJtaXNzaW9uR3JvdXBzKSxcbiAgICApO1xuXG4gICAgY29uc3QgY2hhbmdlZFBlcm1pc3Npb25zOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5NaW5pbXVtUGVybWlzc2lvbltdID0gdGhpcy5wZXJtaXNzaW9uc1xuICAgICAgLmZpbHRlcihwZXIgPT5cbiAgICAgICAgdW5jaGFuZ2VkUGVybWlzc2lvbnMuZmluZCh1bmNoYW5nZWQgPT4gdW5jaGFuZ2VkLm5hbWUgPT09IHBlci5uYW1lKS5pc0dyYW50ZWQgPT09IHBlci5pc0dyYW50ZWQgPyBmYWxzZSA6IHRydWUsXG4gICAgICApXG4gICAgICAubWFwKCh7IG5hbWUsIGlzR3JhbnRlZCB9KSA9PiAoeyBuYW1lLCBpc0dyYW50ZWQgfSkpO1xuXG4gICAgaWYgKGNoYW5nZWRQZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgLmRpc3BhdGNoKFxuICAgICAgICAgIG5ldyBQZXJtaXNzaW9uTWFuYWdlbWVudFVwZGF0ZVBlcm1pc3Npb25zKHtcbiAgICAgICAgICAgIHByb3ZpZGVyS2V5OiB0aGlzLnByb3ZpZGVyS2V5LFxuICAgICAgICAgICAgcHJvdmlkZXJOYW1lOiB0aGlzLnByb3ZpZGVyTmFtZSxcbiAgICAgICAgICAgIHBlcm1pc3Npb25zOiBjaGFuZ2VkUGVybWlzc2lvbnMsXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm1vZGFsUmVmLmNsb3NlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGFsUmVmLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIGlmICghdGhpcy5wcm92aWRlcktleSB8fCAhdGhpcy5wcm92aWRlck5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUHJvdmlkZXIgS2V5IGFuZCBQcm92aWRlciBOYW1lIGFyZSByZXF1aXJlZC4nKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2goXG4gICAgICAgIG5ldyBQZXJtaXNzaW9uTWFuYWdlbWVudEdldFBlcm1pc3Npb25zKHsgcHJvdmlkZXJLZXk6IHRoaXMucHJvdmlkZXJLZXksIHByb3ZpZGVyTmFtZTogdGhpcy5wcm92aWRlck5hbWUgfSksXG4gICAgICApXG4gICAgICAucGlwZShwbHVjaygnUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZScsICdwZXJtaXNzaW9uUmVzJykpXG4gICAgICAuc3Vic2NyaWJlKChwZXJtaXNzaW9uUmVzOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXAgPSBwZXJtaXNzaW9uUmVzLmdyb3Vwc1swXTtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IGdldFBlcm1pc3Npb25zKHBlcm1pc3Npb25SZXMuZ3JvdXBzKTtcblxuICAgICAgICB0aGlzLm1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLm1vZGFsQ29udGVudCwgeyBzaXplOiAnbGcnIH0pO1xuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0cnVlKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNldFRhYkNoZWNrYm94U3RhdGUoKTtcbiAgICAgICAgICB0aGlzLnNldEdyYW50Q2hlY2tib3hTdGF0ZSgpO1xuICAgICAgICB9LCAwKTtcblxuICAgICAgICBmcm9tKHRoaXMubW9kYWxSZWYucmVzdWx0KVxuICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgIGRhdGEgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNldFZpc2libGUoZmFsc2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlYXNvbiA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHNldFZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnZpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyh7IHZpc2libGUgfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghdmlzaWJsZSkgcmV0dXJuO1xuXG4gICAgaWYgKHZpc2libGUuY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICAgIH0gZWxzZSBpZiAodmlzaWJsZS5jdXJyZW50VmFsdWUgPT09IGZhbHNlICYmIHRoaXMubW9kYWxTZXJ2aWNlLmhhc09wZW5Nb2RhbHMoKSkge1xuICAgICAgdGhpcy5tb2RhbFJlZi5jbG9zZSgpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kTWFyZ2luKHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5QZXJtaXNzaW9uW10sIHBlcm1pc3Npb246IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb24pIHtcbiAgY29uc3QgcGFyZW50UGVybWlzc2lvbiA9IHBlcm1pc3Npb25zLmZpbmQocGVyID0+IHBlci5uYW1lID09PSBwZXJtaXNzaW9uLnBhcmVudE5hbWUpO1xuXG4gIGlmIChwYXJlbnRQZXJtaXNzaW9uICYmIHBhcmVudFBlcm1pc3Npb24ucGFyZW50TmFtZSkge1xuICAgIGxldCBtYXJnaW4gPSAyMDtcbiAgICByZXR1cm4gKG1hcmdpbiArPSBmaW5kTWFyZ2luKHBlcm1pc3Npb25zLCBwYXJlbnRQZXJtaXNzaW9uKSk7XG4gIH1cblxuICByZXR1cm4gcGFyZW50UGVybWlzc2lvbiA/IDIwIDogMDtcbn1cblxuZnVuY3Rpb24gZ2V0UGVybWlzc2lvbnMoZ3JvdXBzOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5Hcm91cFtdKTogUGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbltdIHtcbiAgcmV0dXJuIGdyb3Vwcy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBbLi4uYWNjLCAuLi52YWwucGVybWlzc2lvbnNdLCBbXSk7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/lib/models/index.js b/npm/packs/ng/dist/permission-management/esm2015/lib/models/index.js new file mode 100644 index 0000000000..99d61c0656 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/lib/models/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './permission-management'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGVBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb24tbWFuYWdlbWVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/lib/models/permission-management.js b/npm/packs/ng/dist/permission-management/esm2015/lib/models/permission-management.js new file mode 100644 index 0000000000..bfd73caae2 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/lib/models/permission-management.js @@ -0,0 +1,87 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var PermissionManagement; +(function (PermissionManagement) { + /** + * @record + */ + function State() { } + PermissionManagement.State = State; + if (false) { + /** @type {?} */ + State.prototype.permissionRes; + } + /** + * @record + */ + function Response() { } + PermissionManagement.Response = Response; + if (false) { + /** @type {?} */ + Response.prototype.entityDisplayName; + /** @type {?} */ + Response.prototype.groups; + } + /** + * @record + */ + function Group() { } + PermissionManagement.Group = Group; + if (false) { + /** @type {?} */ + Group.prototype.name; + /** @type {?} */ + Group.prototype.displayName; + /** @type {?} */ + Group.prototype.permissions; + } + /** + * @record + */ + function MinimumPermission() { } + PermissionManagement.MinimumPermission = MinimumPermission; + if (false) { + /** @type {?} */ + MinimumPermission.prototype.name; + /** @type {?} */ + MinimumPermission.prototype.isGranted; + } + /** + * @record + */ + function Permission() { } + PermissionManagement.Permission = Permission; + if (false) { + /** @type {?} */ + Permission.prototype.displayName; + /** @type {?} */ + Permission.prototype.parentName; + /** @type {?} */ + Permission.prototype.allowedProviders; + /** @type {?} */ + Permission.prototype.grantedProviders; + } + /** + * @record + */ + function GrantedProvider() { } + PermissionManagement.GrantedProvider = GrantedProvider; + if (false) { + /** @type {?} */ + GrantedProvider.prototype.providerName; + /** @type {?} */ + GrantedProvider.prototype.providerKey; + } + /** + * @record + */ + function UpdateRequest() { } + PermissionManagement.UpdateRequest = UpdateRequest; + if (false) { + /** @type {?} */ + UpdateRequest.prototype.permissions; + } +})(PermissionManagement || (PermissionManagement = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5wZXJtaXNzaW9uLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL3Blcm1pc3Npb24tbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxLQUFXLG9CQUFvQixDQW9DcEM7QUFwQ0QsV0FBaUIsb0JBQW9COzs7O0lBQ25DLG9CQUVDOzs7O1FBREMsOEJBQXdCOzs7OztJQUcxQix1QkFHQzs7OztRQUZDLHFDQUEwQjs7UUFDMUIsMEJBQWdCOzs7OztJQUdsQixvQkFJQzs7OztRQUhDLHFCQUFhOztRQUNiLDRCQUFvQjs7UUFDcEIsNEJBQTBCOzs7OztJQUc1QixnQ0FHQzs7OztRQUZDLGlDQUFhOztRQUNiLHNDQUFtQjs7Ozs7SUFHckIseUJBS0M7Ozs7UUFKQyxpQ0FBb0I7O1FBQ3BCLGdDQUFtQjs7UUFDbkIsc0NBQTJCOztRQUMzQixzQ0FBb0M7Ozs7O0lBR3RDLDhCQUdDOzs7O1FBRkMsdUNBQXFCOztRQUNyQixzQ0FBb0I7Ozs7O0lBR3RCLDRCQUVDOzs7O1FBREMsb0NBQWlDOztBQUVyQyxDQUFDLEVBcENnQixvQkFBb0IsS0FBcEIsb0JBQW9CLFFBb0NwQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBuYW1lc3BhY2UgUGVybWlzc2lvbk1hbmFnZW1lbnQge1xuICBleHBvcnQgaW50ZXJmYWNlIFN0YXRlIHtcbiAgICBwZXJtaXNzaW9uUmVzOiBSZXNwb25zZTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2Uge1xuICAgIGVudGl0eURpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgZ3JvdXBzOiBHcm91cFtdO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBHcm91cCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTWluaW11bVBlcm1pc3Npb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBpc0dyYW50ZWQ6IGJvb2xlYW47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb24gZXh0ZW5kcyBNaW5pbXVtUGVybWlzc2lvbiB7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICBwYXJlbnROYW1lOiBzdHJpbmc7XG4gICAgYWxsb3dlZFByb3ZpZGVyczogc3RyaW5nW107XG4gICAgZ3JhbnRlZFByb3ZpZGVyczogR3JhbnRlZFByb3ZpZGVyW107XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEdyYW50ZWRQcm92aWRlciB7XG4gICAgcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG4gICAgcHJvdmlkZXJLZXk6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUmVxdWVzdCB7XG4gICAgcGVybWlzc2lvbnM6IE1pbmltdW1QZXJtaXNzaW9uW107XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/lib/permission-management.module.js b/npm/packs/ng/dist/permission-management/esm2015/lib/permission-management.module.js new file mode 100644 index 0000000000..d9a5774915 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/lib/permission-management.module.js @@ -0,0 +1,21 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CoreModule } from '@abp/ng.core'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { NgModule } from '@angular/core'; +import { NgxsModule } from '@ngxs/store'; +import { PermissionManagementComponent } from './components/permission-management.component'; +import { PermissionManagementState } from './states/permission-management.state'; +import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; +export class PermissionManagementModule { +} +PermissionManagementModule.decorators = [ + { type: NgModule, args: [{ + declarations: [PermissionManagementComponent], + imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule], + exports: [PermissionManagementComponent], + },] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3Blcm1pc3Npb24tbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTy9ELE1BQU0sT0FBTywwQkFBMEI7OztZQUx0QyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7Z0JBQzdDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixDQUFDO2dCQUNwSCxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzthQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSB9IGZyb20gJy4vc3RhdGVzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zdGF0ZSc7XG5pbXBvcnQgeyBQZXJmZWN0U2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXBlcmZlY3Qtc2Nyb2xsYmFyJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgVGhlbWVTaGFyZWRNb2R1bGUsIE5neHNNb2R1bGUuZm9yRmVhdHVyZShbUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZV0pLCBQZXJmZWN0U2Nyb2xsYmFyTW9kdWxlXSxcbiAgZXhwb3J0czogW1Blcm1pc3Npb25NYW5hZ2VtZW50Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbk1hbmFnZW1lbnRNb2R1bGUge31cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/lib/services/index.js b/npm/packs/ng/dist/permission-management/esm2015/lib/services/index.js new file mode 100644 index 0000000000..1813272cf3 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/lib/services/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PermissionManagementService } from './permission-management.service'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNENBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/lib/services/permission-management.service.js b/npm/packs/ng/dist/permission-management/esm2015/lib/services/permission-management.service.js new file mode 100644 index 0000000000..41c87cd297 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/lib/services/permission-management.service.js @@ -0,0 +1,61 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { RestService } from '@abp/ng.core'; +import * as i0 from "@angular/core"; +import * as i1 from "@abp/ng.core"; +export class PermissionManagementService { + /** + * @param {?} rest + */ + constructor(rest) { + this.rest = rest; + } + /** + * @param {?} params + * @return {?} + */ + getPermissions(params) { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/abp/permissions', + params, + }; + return this.rest.request(request); + } + /** + * @param {?} __0 + * @return {?} + */ + updatePermissions({ permissions, providerKey, providerName, }) { + /** @type {?} */ + const request = { + method: 'PUT', + url: '/api/abp/permissions', + body: { permissions }, + params: { providerKey, providerName }, + }; + return this.rest.request(request); + } +} +PermissionManagementService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +PermissionManagementService.ctorParameters = () => [ + { type: RestService } +]; +/** @nocollapse */ PermissionManagementService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PermissionManagementService_Factory() { return new PermissionManagementService(i0.ɵɵinject(i1.RestService)); }, token: PermissionManagementService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + PermissionManagementService.prototype.rest; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFRLE1BQU0sY0FBYyxDQUFDOzs7QUFPakQsTUFBTSxPQUFPLDJCQUEyQjs7OztJQUN0QyxZQUFvQixJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO0lBQUcsQ0FBQzs7Ozs7SUFFekMsY0FBYyxDQUFDLE1BQTRDOztjQUNuRCxPQUFPLEdBQXVEO1lBQ2xFLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLHNCQUFzQjtZQUMzQixNQUFNO1NBQ1A7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFzRSxPQUFPLENBQUMsQ0FBQztJQUN6RyxDQUFDOzs7OztJQUVELGlCQUFpQixDQUFDLEVBQ2hCLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxHQUM4RDs7Y0FDcEUsT0FBTyxHQUFxRDtZQUNoRSxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxzQkFBc0I7WUFDM0IsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFO1lBQ3JCLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7U0FDdEM7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUEyQyxPQUFPLENBQUMsQ0FBQztJQUM5RSxDQUFDOzs7WUE3QkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBTlEsV0FBVzs7Ozs7Ozs7SUFRTiwyQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSwgUmVzdCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uTWFuYWdlbWVudCB9IGZyb20gJy4uL21vZGVscy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbk1hbmFnZW1lbnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0OiBSZXN0U2VydmljZSkge31cblxuICBnZXRQZXJtaXNzaW9ucyhwYXJhbXM6IFBlcm1pc3Npb25NYW5hZ2VtZW50LkdyYW50ZWRQcm92aWRlcik6IE9ic2VydmFibGU8UGVybWlzc2lvbk1hbmFnZW1lbnQuUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8UGVybWlzc2lvbk1hbmFnZW1lbnQuR3JhbnRlZFByb3ZpZGVyPiA9IHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6ICcvYXBpL2FicC9wZXJtaXNzaW9ucycsXG4gICAgICBwYXJhbXMsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxQZXJtaXNzaW9uTWFuYWdlbWVudC5HcmFudGVkUHJvdmlkZXIsIFBlcm1pc3Npb25NYW5hZ2VtZW50LlJlc3BvbnNlPihyZXF1ZXN0KTtcbiAgfVxuXG4gIHVwZGF0ZVBlcm1pc3Npb25zKHtcbiAgICBwZXJtaXNzaW9ucyxcbiAgICBwcm92aWRlcktleSxcbiAgICBwcm92aWRlck5hbWUsXG4gIH06IFBlcm1pc3Npb25NYW5hZ2VtZW50LkdyYW50ZWRQcm92aWRlciAmIFBlcm1pc3Npb25NYW5hZ2VtZW50LlVwZGF0ZVJlcXVlc3QpOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8UGVybWlzc2lvbk1hbmFnZW1lbnQuVXBkYXRlUmVxdWVzdD4gPSB7XG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgdXJsOiAnL2FwaS9hYnAvcGVybWlzc2lvbnMnLFxuICAgICAgYm9keTogeyBwZXJtaXNzaW9ucyB9LFxuICAgICAgcGFyYW1zOiB7IHByb3ZpZGVyS2V5LCBwcm92aWRlck5hbWUgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PFBlcm1pc3Npb25NYW5hZ2VtZW50LlVwZGF0ZVJlcXVlc3QsIG51bGw+KHJlcXVlc3QpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/lib/states/index.js b/npm/packs/ng/dist/permission-management/esm2015/lib/states/index.js new file mode 100644 index 0000000000..8e0527250a --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/lib/states/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PermissionManagementState } from "./permission-management.state"; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zdGF0ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBDQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcGVybWlzc2lvbi1tYW5hZ2VtZW50LnN0YXRlXCI7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/lib/states/permission-management.state.js b/npm/packs/ng/dist/permission-management/esm2015/lib/states/permission-management.state.js new file mode 100644 index 0000000000..8b412f6329 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/lib/states/permission-management.state.js @@ -0,0 +1,93 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { State, Action, Selector } from '@ngxs/store'; +import { PermissionManagementGetPermissions, PermissionManagementUpdatePermissions, } from '../actions/permission-management.actions'; +import { PermissionManagementService } from '../services/permission-management.service'; +import { tap } from 'rxjs/operators'; +let PermissionManagementState = class PermissionManagementState { + /** + * @param {?} permissionManagementService + */ + constructor(permissionManagementService) { + this.permissionManagementService = permissionManagementService; + } + /** + * @param {?} __0 + * @return {?} + */ + static getPermissionGroups({ permissionRes }) { + return permissionRes.groups || []; + } + /** + * @param {?} __0 + * @return {?} + */ + static getEntitiyDisplayName({ permissionRes }) { + return permissionRes.entityDisplayName; + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + permissionManagementGet({ patchState }, { payload }) { + return this.permissionManagementService.getPermissions(payload).pipe(tap((/** + * @param {?} permissionResponse + * @return {?} + */ + permissionResponse => patchState({ + permissionRes: permissionResponse, + })))); + } + /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + permissionManagementUpdate(_, { payload }) { + return this.permissionManagementService.updatePermissions(payload); + } +}; +tslib_1.__decorate([ + Action(PermissionManagementGetPermissions), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, PermissionManagementGetPermissions]), + tslib_1.__metadata("design:returntype", void 0) +], PermissionManagementState.prototype, "permissionManagementGet", null); +tslib_1.__decorate([ + Action(PermissionManagementUpdatePermissions), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, PermissionManagementUpdatePermissions]), + tslib_1.__metadata("design:returntype", void 0) +], PermissionManagementState.prototype, "permissionManagementUpdate", null); +tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) +], PermissionManagementState, "getPermissionGroups", null); +tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", String) +], PermissionManagementState, "getEntitiyDisplayName", null); +PermissionManagementState = tslib_1.__decorate([ + State({ + name: 'PermissionManagementState', + defaults: (/** @type {?} */ ({ permissionRes: {} })), + }), + tslib_1.__metadata("design:paramtypes", [PermissionManagementService]) +], PermissionManagementState); +export { PermissionManagementState }; +if (false) { + /** + * @type {?} + * @private + */ + PermissionManagementState.prototype.permissionManagementService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5wZXJtaXNzaW9uLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvc3RhdGVzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFnQixRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUNMLGtDQUFrQyxFQUNsQyxxQ0FBcUMsR0FDdEMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVsRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN4RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7SUFNeEIseUJBQXlCLFNBQXpCLHlCQUF5Qjs7OztJQVdwQyxZQUFvQiwyQkFBd0Q7UUFBeEQsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtJQUFHLENBQUM7Ozs7O0lBVGhGLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLGFBQWEsRUFBOEI7UUFDdEUsT0FBTyxhQUFhLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7OztJQUdELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLGFBQWEsRUFBOEI7UUFDeEUsT0FBTyxhQUFhLENBQUMsaUJBQWlCLENBQUM7SUFDekMsQ0FBQzs7Ozs7O0lBS0QsdUJBQXVCLENBQ3JCLEVBQUUsVUFBVSxFQUE0QyxFQUN4RCxFQUFFLE9BQU8sRUFBc0M7UUFFL0MsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDbEUsR0FBRzs7OztRQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FDdkIsVUFBVSxDQUFDO1lBQ1QsYUFBYSxFQUFFLGtCQUFrQjtTQUNsQyxDQUFDLEVBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7Ozs7O0lBR0QsMEJBQTBCLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUF5QztRQUM5RSxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0YsQ0FBQTtBQWpCQztJQURDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQzs7cURBRzVCLGtDQUFrQzs7d0VBU2hEO0FBR0Q7SUFEQyxNQUFNLENBQUMscUNBQXFDLENBQUM7O3FEQUNILHFDQUFxQzs7MkVBRS9FO0FBNUJEO0lBREMsUUFBUSxFQUFFOzs7OzBEQUdWO0FBR0Q7SUFEQyxRQUFRLEVBQUU7Ozs7NERBR1Y7QUFUVSx5QkFBeUI7SUFKckMsS0FBSyxDQUE2QjtRQUNqQyxJQUFJLEVBQUUsMkJBQTJCO1FBQ2pDLFFBQVEsRUFBRSxtQkFBQSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsRUFBOEI7S0FDOUQsQ0FBQzs2Q0FZaUQsMkJBQTJCO0dBWGpFLHlCQUF5QixDQStCckM7U0EvQlkseUJBQXlCOzs7Ozs7SUFXeEIsZ0VBQWdFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGUsIEFjdGlvbiwgU3RhdGVDb250ZXh0LCBTZWxlY3RvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7XG4gIFBlcm1pc3Npb25NYW5hZ2VtZW50R2V0UGVybWlzc2lvbnMsXG4gIFBlcm1pc3Npb25NYW5hZ2VtZW50VXBkYXRlUGVybWlzc2lvbnMsXG59IGZyb20gJy4uL2FjdGlvbnMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQFN0YXRlPFBlcm1pc3Npb25NYW5hZ2VtZW50LlN0YXRlPih7XG4gIG5hbWU6ICdQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlJyxcbiAgZGVmYXVsdHM6IHsgcGVybWlzc2lvblJlczoge30gfSBhcyBQZXJtaXNzaW9uTWFuYWdlbWVudC5TdGF0ZSxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSB7XG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRQZXJtaXNzaW9uR3JvdXBzKHsgcGVybWlzc2lvblJlcyB9OiBQZXJtaXNzaW9uTWFuYWdlbWVudC5TdGF0ZSkge1xuICAgIHJldHVybiBwZXJtaXNzaW9uUmVzLmdyb3VwcyB8fCBbXTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRFbnRpdGl5RGlzcGxheU5hbWUoeyBwZXJtaXNzaW9uUmVzIH06IFBlcm1pc3Npb25NYW5hZ2VtZW50LlN0YXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGVybWlzc2lvblJlcy5lbnRpdHlEaXNwbGF5TmFtZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGVybWlzc2lvbk1hbmFnZW1lbnRTZXJ2aWNlOiBQZXJtaXNzaW9uTWFuYWdlbWVudFNlcnZpY2UpIHt9XG5cbiAgQEFjdGlvbihQZXJtaXNzaW9uTWFuYWdlbWVudEdldFBlcm1pc3Npb25zKVxuICBwZXJtaXNzaW9uTWFuYWdlbWVudEdldChcbiAgICB7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PFBlcm1pc3Npb25NYW5hZ2VtZW50LlN0YXRlPixcbiAgICB7IHBheWxvYWQgfTogUGVybWlzc2lvbk1hbmFnZW1lbnRHZXRQZXJtaXNzaW9ucyxcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbk1hbmFnZW1lbnRTZXJ2aWNlLmdldFBlcm1pc3Npb25zKHBheWxvYWQpLnBpcGUoXG4gICAgICB0YXAocGVybWlzc2lvblJlc3BvbnNlID0+XG4gICAgICAgIHBhdGNoU3RhdGUoe1xuICAgICAgICAgIHBlcm1pc3Npb25SZXM6IHBlcm1pc3Npb25SZXNwb25zZSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKFBlcm1pc3Npb25NYW5hZ2VtZW50VXBkYXRlUGVybWlzc2lvbnMpXG4gIHBlcm1pc3Npb25NYW5hZ2VtZW50VXBkYXRlKF8sIHsgcGF5bG9hZCB9OiBQZXJtaXNzaW9uTWFuYWdlbWVudFVwZGF0ZVBlcm1pc3Npb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbk1hbmFnZW1lbnRTZXJ2aWNlLnVwZGF0ZVBlcm1pc3Npb25zKHBheWxvYWQpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm2015/public-api.js b/npm/packs/ng/dist/permission-management/esm2015/public-api.js new file mode 100644 index 0000000000..e2c955262e --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm2015/public-api.js @@ -0,0 +1,14 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/* + * Public API Surface of permission-management + */ +export { PermissionManagementModule } from './lib/permission-management.module'; +export { PermissionManagementGetPermissions, PermissionManagementUpdatePermissions } from './lib/actions'; +export { PermissionManagementComponent } from './lib/components'; +export {} from './lib/models'; +export { PermissionManagementService } from './lib/services'; +export { PermissionManagementState } from './lib/states'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkNBQWMsb0NBQW9DLENBQUM7QUFDbkQsMEZBQWMsZUFBZSxDQUFDO0FBQzlCLDhDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGVBQWMsY0FBYyxDQUFDO0FBQzdCLDRDQUFjLGdCQUFnQixDQUFDO0FBQy9CLDBDQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcGVybWlzc2lvbi1tYW5hZ2VtZW50XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVybWlzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/abp-ng.permission-management.js b/npm/packs/ng/dist/permission-management/esm5/abp-ng.permission-management.js new file mode 100644 index 0000000000..4c6723512d --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/abp-ng.permission-management.js @@ -0,0 +1,13 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { PermissionManagementModule, PermissionManagementGetPermissions, PermissionManagementUpdatePermissions, PermissionManagementComponent, PermissionManagementService, PermissionManagementState } from './public-api'; +export { PermissionManagementGetPermissions as ɵd, PermissionManagementUpdatePermissions as ɵe } from './lib/actions/permission-management.actions'; +export { PermissionManagementComponent as ɵa } from './lib/components/permission-management.component'; +export { PermissionManagementService as ɵc } from './lib/services/permission-management.service'; +export { PermissionManagementState as ɵb } from './lib/states/permission-management.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsNk1BQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxrQ0FBa0MsSUFBSSxFQUFFLEVBQUMscUNBQXFDLElBQUksRUFBRSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDakosT0FBTyxFQUFDLDZCQUE2QixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRXJHLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRixPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7UGVybWlzc2lvbk1hbmFnZW1lbnRHZXRQZXJtaXNzaW9ucyBhcyDJtWQsUGVybWlzc2lvbk1hbmFnZW1lbnRVcGRhdGVQZXJtaXNzaW9ucyBhcyDJtWV9IGZyb20gJy4vbGliL2FjdGlvbnMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvbW9kZWxzL3Blcm1pc3Npb24tbWFuYWdlbWVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50U2VydmljZSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2VzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7UGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc3RhdGUnOyJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/lib/actions/index.js b/npm/packs/ng/dist/permission-management/esm5/lib/actions/index.js new file mode 100644 index 0000000000..314c92ddc4 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/lib/actions/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PermissionManagementGetPermissions, PermissionManagementUpdatePermissions } from './permission-management.actions'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9hY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwwRkFBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/lib/actions/permission-management.actions.js b/npm/packs/ng/dist/permission-management/esm5/lib/actions/permission-management.actions.js new file mode 100644 index 0000000000..e6a51d91b2 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/lib/actions/permission-management.actions.js @@ -0,0 +1,33 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PermissionManagementGetPermissions = /** @class */ (function () { + function PermissionManagementGetPermissions(payload) { + this.payload = payload; + } + PermissionManagementGetPermissions.type = '[PermissionManagement] Get Permissions'; + return PermissionManagementGetPermissions; +}()); +export { PermissionManagementGetPermissions }; +if (false) { + /** @type {?} */ + PermissionManagementGetPermissions.type; + /** @type {?} */ + PermissionManagementGetPermissions.prototype.payload; +} +var PermissionManagementUpdatePermissions = /** @class */ (function () { + function PermissionManagementUpdatePermissions(payload) { + this.payload = payload; + } + PermissionManagementUpdatePermissions.type = '[PermissionManagement] Update Permissions'; + return PermissionManagementUpdatePermissions; +}()); +export { PermissionManagementUpdatePermissions }; +if (false) { + /** @type {?} */ + PermissionManagementUpdatePermissions.type; + /** @type {?} */ + PermissionManagementUpdatePermissions.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9hY3Rpb25zL3Blcm1pc3Npb24tbWFuYWdlbWVudC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQTtJQUVFLDRDQUFtQixPQUE2QztRQUE3QyxZQUFPLEdBQVAsT0FBTyxDQUFzQztJQUFHLENBQUM7SUFEcEQsdUNBQUksR0FBRyx3Q0FBd0MsQ0FBQztJQUVsRSx5Q0FBQztDQUFBLEFBSEQsSUFHQztTQUhZLGtDQUFrQzs7O0lBQzdDLHdDQUFnRTs7SUFDcEQscURBQW9EOztBQUdsRTtJQUVFLCtDQUFtQixPQUFrRjtRQUFsRixZQUFPLEdBQVAsT0FBTyxDQUEyRTtJQUFHLENBQUM7SUFEekYsMENBQUksR0FBRywyQ0FBMkMsQ0FBQztJQUVyRSw0Q0FBQztDQUFBLEFBSEQsSUFHQztTQUhZLHFDQUFxQzs7O0lBQ2hELDJDQUFtRTs7SUFDdkQsd0RBQXlGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50JztcblxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25NYW5hZ2VtZW50R2V0UGVybWlzc2lvbnMge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbUGVybWlzc2lvbk1hbmFnZW1lbnRdIEdldCBQZXJtaXNzaW9ucyc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5HcmFudGVkUHJvdmlkZXIpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uTWFuYWdlbWVudFVwZGF0ZVBlcm1pc3Npb25zIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Blcm1pc3Npb25NYW5hZ2VtZW50XSBVcGRhdGUgUGVybWlzc2lvbnMnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JhbnRlZFByb3ZpZGVyICYgUGVybWlzc2lvbk1hbmFnZW1lbnQuVXBkYXRlUmVxdWVzdCkge31cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/lib/components/index.js b/npm/packs/ng/dist/permission-management/esm5/lib/components/index.js new file mode 100644 index 0000000000..95380b6151 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/lib/components/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PermissionManagementComponent } from './permission-management.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw4Q0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/lib/components/permission-management.component.js b/npm/packs/ng/dist/permission-management/esm5/lib/components/permission-management.component.js new file mode 100644 index 0000000000..7168797a45 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/lib/components/permission-management.component.js @@ -0,0 +1,472 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component, EventEmitter, Input, Output, Renderer2, TemplateRef, ViewChild, } from '@angular/core'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { Select, Store } from '@ngxs/store'; +import { from, Observable } from 'rxjs'; +import { map, pluck, take } from 'rxjs/operators'; +import { PermissionManagementGetPermissions, PermissionManagementUpdatePermissions, } from '../actions/permission-management.actions'; +import { PermissionManagementState } from '../states/permission-management.state'; +var PermissionManagementComponent = /** @class */ (function () { + function PermissionManagementComponent(modalService, store, renderer) { + this.modalService = modalService; + this.store = store; + this.renderer = renderer; + this.visibleChange = new EventEmitter(); + this.permissions = []; + this.selectThisTab = false; + this.selectAllTab = false; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + function (_, item) { return item.name; }); + } + Object.defineProperty(PermissionManagementComponent.prototype, "selectedGroupPermissions$", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return this.groups$.pipe(map((/** + * @param {?} groups + * @return {?} + */ + function (groups) { + return _this.selectedGroup ? groups.find((/** + * @param {?} group + * @return {?} + */ + function (group) { return group.name === _this.selectedGroup.name; })).permissions : []; + })), map((/** + * @param {?} permissions + * @return {?} + */ + function (permissions) { + return permissions.map((/** + * @param {?} permission + * @return {?} + */ + function (permission) { + return ((/** @type {?} */ (((/** @type {?} */ (tslib_1.__assign({}, permission, { margin: findMargin(permissions, permission), isGranted: _this.permissions.find((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === permission.name; })).isGranted }))))))); + })); + }))); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + PermissionManagementComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { }; + /** + * @param {?} name + * @return {?} + */ + PermissionManagementComponent.prototype.getChecked = /** + * @param {?} name + * @return {?} + */ + function (name) { + return (this.permissions.find((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === name; })) || { isGranted: false }).isGranted; + }; + /** + * @param {?} clickedPermission + * @param {?} value + * @return {?} + */ + PermissionManagementComponent.prototype.onClickCheckbox = /** + * @param {?} clickedPermission + * @param {?} value + * @return {?} + */ + function (clickedPermission, value) { + var _this = this; + setTimeout((/** + * @return {?} + */ + function () { + _this.permissions = _this.permissions.map((/** + * @param {?} per + * @return {?} + */ + function (per) { + if (clickedPermission.name === per.name) { + return tslib_1.__assign({}, per, { isGranted: !per.isGranted }); + } + else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) { + return tslib_1.__assign({}, per, { isGranted: false }); + } + else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) { + return tslib_1.__assign({}, per, { isGranted: true }); + } + return per; + })); + _this.setTabCheckboxState(); + _this.setGrantCheckboxState(); + }), 0); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.setTabCheckboxState = /** + * @return {?} + */ + function () { + var _this = this; + this.selectedGroupPermissions$.pipe(take(1)).subscribe((/** + * @param {?} permissions + * @return {?} + */ + function (permissions) { + /** @type {?} */ + var selectedPermissions = permissions.filter((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.isGranted; })); + /** @type {?} */ + var element = (/** @type {?} */ (document.querySelector('#select-all-in-this-tabs'))); + if (selectedPermissions.length === permissions.length) { + element.indeterminate = false; + _this.selectThisTab = true; + } + else if (selectedPermissions.length === 0) { + element.indeterminate = false; + _this.selectThisTab = false; + } + else { + element.indeterminate = true; + } + })); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.setGrantCheckboxState = /** + * @return {?} + */ + function () { + /** @type {?} */ + var selectedAllPermissions = this.permissions.filter((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.isGranted; })); + /** @type {?} */ + var checkboxElement = (/** @type {?} */ (document.querySelector('#select-all-in-all-tabs'))); + if (selectedAllPermissions.length === this.permissions.length) { + checkboxElement.indeterminate = false; + this.selectAllTab = true; + } + else if (selectedAllPermissions.length === 0) { + checkboxElement.indeterminate = false; + this.selectAllTab = false; + } + else { + checkboxElement.indeterminate = true; + } + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.onClickSelectThisTab = /** + * @return {?} + */ + function () { + var _this = this; + this.selectedGroupPermissions$.pipe(take(1)).subscribe((/** + * @param {?} permissions + * @return {?} + */ + function (permissions) { + permissions.forEach((/** + * @param {?} permission + * @return {?} + */ + function (permission) { + /** @type {?} */ + var index = _this.permissions.findIndex((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === permission.name; })); + _this.permissions = tslib_1.__spread(_this.permissions.slice(0, index), [ + tslib_1.__assign({}, _this.permissions[index], { isGranted: !_this.selectThisTab }) + ], _this.permissions.slice(index + 1)); + })); + })); + this.setGrantCheckboxState(); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.onClickSelectAll = /** + * @return {?} + */ + function () { + var _this = this; + this.permissions = this.permissions.map((/** + * @param {?} permission + * @return {?} + */ + function (permission) { return (tslib_1.__assign({}, permission, { isGranted: !_this.selectAllTab })); })); + this.selectThisTab = !this.selectAllTab; + }; + /** + * @param {?} group + * @return {?} + */ + PermissionManagementComponent.prototype.onChangeGroup = /** + * @param {?} group + * @return {?} + */ + function (group) { + this.selectedGroup = group; + this.setTabCheckboxState(); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var unchangedPermissions = getPermissions(this.store.selectSnapshot(PermissionManagementState.getPermissionGroups)); + /** @type {?} */ + var changedPermissions = this.permissions + .filter((/** + * @param {?} per + * @return {?} + */ + function (per) { + return unchangedPermissions.find((/** + * @param {?} unchanged + * @return {?} + */ + function (unchanged) { return unchanged.name === per.name; })).isGranted === per.isGranted ? false : true; + })) + .map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var name = _a.name, isGranted = _a.isGranted; + return ({ name: name, isGranted: isGranted }); + })); + if (changedPermissions.length) { + this.store + .dispatch(new PermissionManagementUpdatePermissions({ + providerKey: this.providerKey, + providerName: this.providerName, + permissions: changedPermissions, + })) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalRef.close(); })); + } + else { + this.modalRef.close(); + } + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.openModal = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.providerKey || !this.providerName) { + throw new Error('Provider Key and Provider Name are required.'); + } + this.store + .dispatch(new PermissionManagementGetPermissions({ providerKey: this.providerKey, providerName: this.providerName })) + .pipe(pluck('PermissionManagementState', 'permissionRes')) + .subscribe((/** + * @param {?} permissionRes + * @return {?} + */ + function (permissionRes) { + _this.selectedGroup = permissionRes.groups[0]; + _this.permissions = getPermissions(permissionRes.groups); + _this.modalRef = _this.modalService.open(_this.modalContent, { size: 'lg' }); + _this.visibleChange.emit(true); + setTimeout((/** + * @return {?} + */ + function () { + _this.setTabCheckboxState(); + _this.setGrantCheckboxState(); + }), 0); + from(_this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + function (data) { + _this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + function (reason) { + _this.setVisible(false); + })); + })); + }; + /** + * @param {?} value + * @return {?} + */ + PermissionManagementComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + this.visible = value; + this.visibleChange.emit(value); + }; + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementComponent.prototype.ngOnChanges = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var visible = _a.visible; + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + }; + PermissionManagementComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-permission-management', + template: "\n \n
\n

\n {{ 'AbpPermissionManagement::Permissions' | abpLocalization }} -\n {{ data.entityName }}\n

\n \n
\n
\n
\n \n \n
\n\n
\n
\n
\n \n
\n
\n

{{ selectedGroup.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n
\n \n
\n
\n
\n \n\n
\n \n \n
\n
\n
\n" + }] } + ]; + /** @nocollapse */ + PermissionManagementComponent.ctorParameters = function () { return [ + { type: NgbModal }, + { type: Store }, + { type: Renderer2 } + ]; }; + PermissionManagementComponent.propDecorators = { + providerName: [{ type: Input }], + providerKey: [{ type: Input }], + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + tslib_1.__decorate([ + Select(PermissionManagementState.getPermissionGroups), + tslib_1.__metadata("design:type", Observable) + ], PermissionManagementComponent.prototype, "groups$", void 0); + tslib_1.__decorate([ + Select(PermissionManagementState.getEntitiyDisplayName), + tslib_1.__metadata("design:type", Observable) + ], PermissionManagementComponent.prototype, "entityName$", void 0); + return PermissionManagementComponent; +}()); +export { PermissionManagementComponent }; +if (false) { + /** @type {?} */ + PermissionManagementComponent.prototype.providerName; + /** @type {?} */ + PermissionManagementComponent.prototype.providerKey; + /** @type {?} */ + PermissionManagementComponent.prototype.visible; + /** @type {?} */ + PermissionManagementComponent.prototype.visibleChange; + /** @type {?} */ + PermissionManagementComponent.prototype.modalContent; + /** @type {?} */ + PermissionManagementComponent.prototype.groups$; + /** @type {?} */ + PermissionManagementComponent.prototype.entityName$; + /** @type {?} */ + PermissionManagementComponent.prototype.modalRef; + /** @type {?} */ + PermissionManagementComponent.prototype.selectedGroup; + /** @type {?} */ + PermissionManagementComponent.prototype.permissions; + /** @type {?} */ + PermissionManagementComponent.prototype.selectThisTab; + /** @type {?} */ + PermissionManagementComponent.prototype.selectAllTab; + /** @type {?} */ + PermissionManagementComponent.prototype.trackByFn; + /** + * @type {?} + * @private + */ + PermissionManagementComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + PermissionManagementComponent.prototype.store; + /** + * @type {?} + * @private + */ + PermissionManagementComponent.prototype.renderer; +} +/** + * @param {?} permissions + * @param {?} permission + * @return {?} + */ +function findMargin(permissions, permission) { + /** @type {?} */ + var parentPermission = permissions.find((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === permission.parentName; })); + if (parentPermission && parentPermission.parentName) { + /** @type {?} */ + var margin = 20; + return (margin += findMargin(permissions, parentPermission)); + } + return parentPermission ? 20 : 0; +} +/** + * @param {?} groups + * @return {?} + */ +function getPermissions(groups) { + return groups.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return tslib_1.__spread(acc, val.permissions); }), []); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFFWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMscUNBQXFDLEdBQ3RDLE1BQU0sMENBQTBDLENBQUM7QUFFbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFJbEY7SUF3REUsdUNBQW9CLFlBQXNCLEVBQVUsS0FBWSxFQUFVLFFBQW1CO1FBQXpFLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUF6QzdGLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQWU1QyxnQkFBVyxHQUFzQyxFQUFFLENBQUM7UUFFcEQsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsY0FBUzs7Ozs7UUFBZ0QsVUFBQyxDQUFDLEVBQUUsSUFBSSxJQUFL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aU1sQyxvQ0FBQztDQUFBLEFBek5ELElBeU5DO1NBck5ZLDZCQUE2Qjs7O0lBQ3hDLHFEQUNxQjs7SUFFckIsb0RBQ29COztJQUVwQixnREFDaUI7O0lBRWpCLHNEQUM0Qzs7SUFFNUMscURBQytCOztJQUUvQixnREFDa0Q7O0lBRWxELG9EQUNnQzs7SUFFaEMsaURBQXNCOztJQUV0QixzREFBMEM7O0lBRTFDLG9EQUFvRDs7SUFFcEQsc0RBQStCOztJQUUvQixxREFBOEI7O0lBRTlCLGtEQUFnRjs7Ozs7SUFvQnBFLHFEQUE4Qjs7Ozs7SUFBRSw4Q0FBb0I7Ozs7O0lBQUUsaURBQTJCOzs7Ozs7O0FBbUsvRixTQUFTLFVBQVUsQ0FBQyxXQUE4QyxFQUFFLFVBQTJDOztRQUN2RyxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsSUFBSTs7OztJQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsVUFBVSxFQUFsQyxDQUFrQyxFQUFDO0lBRXBGLElBQUksZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsVUFBVSxFQUFFOztZQUMvQyxNQUFNLEdBQUcsRUFBRTtRQUNmLE9BQU8sQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7S0FDOUQ7SUFFRCxPQUFPLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQyxDQUFDOzs7OztBQUVELFNBQVMsY0FBYyxDQUFDLE1BQW9DO0lBQzFELE9BQU8sTUFBTSxDQUFDLE1BQU07Ozs7O0lBQUMsVUFBQyxHQUFHLEVBQUUsR0FBRyxJQUFLLHdCQUFJLEdBQUcsRUFBSyxHQUFHLENBQUMsV0FBVyxHQUEzQixDQUE0QixHQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFRyYWNrQnlGdW5jdGlvbixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JNb2RhbFJlZiB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IFNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHBsdWNrLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgUGVybWlzc2lvbk1hbmFnZW1lbnRHZXRQZXJtaXNzaW9ucyxcbiAgUGVybWlzc2lvbk1hbmFnZW1lbnRVcGRhdGVQZXJtaXNzaW9ucyxcbn0gZnJvbSAnLi4vYWN0aW9ucy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuYWN0aW9ucyc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uTWFuYWdlbWVudCB9IGZyb20gJy4uL21vZGVscy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc3RhdGUnO1xuXG50eXBlIFBlcm1pc3Npb25XaXRoTWFyZ2luID0gUGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbiAmIHsgbWFyZ2luOiBudW1iZXIgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXBlcm1pc3Npb24tbWFuYWdlbWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHJvdmlkZXJLZXk6IHN0cmluZztcblxuICBASW5wdXQoKVxuICB2aXNpYmxlOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKVxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFNlbGVjdChQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlLmdldFBlcm1pc3Npb25Hcm91cHMpXG4gIGdyb3VwcyQ6IE9ic2VydmFibGU8UGVybWlzc2lvbk1hbmFnZW1lbnQuR3JvdXBbXT47XG5cbiAgQFNlbGVjdChQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlLmdldEVudGl0aXlEaXNwbGF5TmFtZSlcbiAgZW50aXR5TmFtZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBtb2RhbFJlZjogTmdiTW9kYWxSZWY7XG5cbiAgc2VsZWN0ZWRHcm91cDogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JvdXA7XG5cbiAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb25bXSA9IFtdO1xuXG4gIHNlbGVjdFRoaXNUYWI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzZWxlY3RBbGxUYWI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxQZXJtaXNzaW9uTWFuYWdlbWVudC5Hcm91cD4gPSAoXywgaXRlbSkgPT4gaXRlbS5uYW1lO1xuXG4gIGdldCBzZWxlY3RlZEdyb3VwUGVybWlzc2lvbnMkKCk6IE9ic2VydmFibGU8UGVybWlzc2lvbldpdGhNYXJnaW5bXT4ge1xuICAgIHJldHVybiB0aGlzLmdyb3VwcyQucGlwZShcbiAgICAgIG1hcChncm91cHMgPT5cbiAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwID8gZ3JvdXBzLmZpbmQoZ3JvdXAgPT4gZ3JvdXAubmFtZSA9PT0gdGhpcy5zZWxlY3RlZEdyb3VwLm5hbWUpLnBlcm1pc3Npb25zIDogW10sXG4gICAgICApLFxuICAgICAgbWFwPFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb25bXSwgUGVybWlzc2lvbldpdGhNYXJnaW5bXT4ocGVybWlzc2lvbnMgPT5cbiAgICAgICAgcGVybWlzc2lvbnMubWFwKFxuICAgICAgICAgIHBlcm1pc3Npb24gPT5cbiAgICAgICAgICAgICgoe1xuICAgICAgICAgICAgICAuLi5wZXJtaXNzaW9uLFxuICAgICAgICAgICAgICBtYXJnaW46IGZpbmRNYXJnaW4ocGVybWlzc2lvbnMsIHBlcm1pc3Npb24pLFxuICAgICAgICAgICAgICBpc0dyYW50ZWQ6IHRoaXMucGVybWlzc2lvbnMuZmluZChwZXIgPT4gcGVyLm5hbWUgPT09IHBlcm1pc3Npb24ubmFtZSkuaXNHcmFudGVkLFxuICAgICAgICAgICAgfSBhcyBhbnkpIGFzIFBlcm1pc3Npb25XaXRoTWFyZ2luKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgZ2V0Q2hlY2tlZChuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKHRoaXMucGVybWlzc2lvbnMuZmluZChwZXIgPT4gcGVyLm5hbWUgPT09IG5hbWUpIHx8IHsgaXNHcmFudGVkOiBmYWxzZSB9KS5pc0dyYW50ZWQ7XG4gIH1cblxuICBvbkNsaWNrQ2hlY2tib3goY2xpY2tlZFBlcm1pc3Npb246IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb24sIHZhbHVlKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9ucy5tYXAocGVyID0+IHtcbiAgICAgICAgaWYgKGNsaWNrZWRQZXJtaXNzaW9uLm5hbWUgPT09IHBlci5uYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ucGVyLCBpc0dyYW50ZWQ6ICFwZXIuaXNHcmFudGVkIH07XG4gICAgICAgIH0gZWxzZSBpZiAoY2xpY2tlZFBlcm1pc3Npb24ubmFtZSA9PT0gcGVyLnBhcmVudE5hbWUgJiYgY2xpY2tlZFBlcm1pc3Npb24uaXNHcmFudGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ucGVyLCBpc0dyYW50ZWQ6IGZhbHNlIH07XG4gICAgICAgIH0gZWxzZSBpZiAoY2xpY2tlZFBlcm1pc3Npb24ucGFyZW50TmFtZSA9PT0gcGVyLm5hbWUgJiYgIWNsaWNrZWRQZXJtaXNzaW9uLmlzR3JhbnRlZCkge1xuICAgICAgICAgIHJldHVybiB7IC4uLnBlciwgaXNHcmFudGVkOiB0cnVlIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGVyO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc2V0VGFiQ2hlY2tib3hTdGF0ZSgpO1xuICAgICAgdGhpcy5zZXRHcmFudENoZWNrYm94U3RhdGUoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHNldFRhYkNoZWNrYm94U3RhdGUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwUGVybWlzc2lvbnMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHBlcm1pc3Npb25zID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkUGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucy5maWx0ZXIocGVyID0+IHBlci5pc0dyYW50ZWQpO1xuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzZWxlY3QtYWxsLWluLXRoaXMtdGFicycpIGFzIGFueTtcblxuICAgICAgaWYgKHNlbGVjdGVkUGVybWlzc2lvbnMubGVuZ3RoID09PSBwZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgICAgZWxlbWVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0VGhpc1RhYiA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkUGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdFRoaXNUYWIgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZXRHcmFudENoZWNrYm94U3RhdGUoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRBbGxQZXJtaXNzaW9ucyA9IHRoaXMucGVybWlzc2lvbnMuZmlsdGVyKHBlciA9PiBwZXIuaXNHcmFudGVkKTtcbiAgICBjb25zdCBjaGVja2JveEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc2VsZWN0LWFsbC1pbi1hbGwtdGFicycpIGFzIGFueTtcblxuICAgIGlmIChzZWxlY3RlZEFsbFBlcm1pc3Npb25zLmxlbmd0aCA9PT0gdGhpcy5wZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIGNoZWNrYm94RWxlbWVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdEFsbFRhYiA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZEFsbFBlcm1pc3Npb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY2hlY2tib3hFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0QWxsVGFiID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoZWNrYm94RWxlbWVudC5pbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrU2VsZWN0VGhpc1RhYigpIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBQZXJtaXNzaW9ucyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocGVybWlzc2lvbnMgPT4ge1xuICAgICAgcGVybWlzc2lvbnMuZm9yRWFjaChwZXJtaXNzaW9uID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnBlcm1pc3Npb25zLmZpbmRJbmRleChwZXIgPT4gcGVyLm5hbWUgPT09IHBlcm1pc3Npb24ubmFtZSk7XG5cbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IFtcbiAgICAgICAgICAuLi50aGlzLnBlcm1pc3Npb25zLnNsaWNlKDAsIGluZGV4KSxcbiAgICAgICAgICB7IC4uLnRoaXMucGVybWlzc2lvbnNbaW5kZXhdLCBpc0dyYW50ZWQ6ICF0aGlzLnNlbGVjdFRoaXNUYWIgfSxcbiAgICAgICAgICAuLi50aGlzLnBlcm1pc3Npb25zLnNsaWNlKGluZGV4ICsgMSksXG4gICAgICAgIF07XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2V0R3JhbnRDaGVja2JveFN0YXRlKCk7XG4gIH1cblxuICBvbkNsaWNrU2VsZWN0QWxsKCkge1xuICAgIHRoaXMucGVybWlzc2lvbnMgPSB0aGlzLnBlcm1pc3Npb25zLm1hcChwZXJtaXNzaW9uID0+ICh7IC4uLnBlcm1pc3Npb24sIGlzR3JhbnRlZDogIXRoaXMuc2VsZWN0QWxsVGFiIH0pKTtcblxuICAgIHRoaXMuc2VsZWN0VGhpc1RhYiA9ICF0aGlzLnNlbGVjdEFsbFRhYjtcbiAgfVxuXG4gIG9uQ2hhbmdlR3JvdXAoZ3JvdXA6IFBlcm1pc3Npb25NYW5hZ2VtZW50Lkdyb3VwKSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwID0gZ3JvdXA7XG4gICAgdGhpcy5zZXRUYWJDaGVja2JveFN0YXRlKCk7XG4gIH1cblxuICBvblN1Ym1pdCgpIHtcbiAgICBjb25zdCB1bmNoYW5nZWRQZXJtaXNzaW9ucyA9IGdldFBlcm1pc3Npb25zKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlLmdldFBlcm1pc3Npb25Hcm91cHMpLFxuICAgICk7XG5cbiAgICBjb25zdCBjaGFuZ2VkUGVybWlzc2lvbnM6IFBlcm1pc3Npb25NYW5hZ2VtZW50Lk1pbmltdW1QZXJtaXNzaW9uW10gPSB0aGlzLnBlcm1pc3Npb25zXG4gICAgICAuZmlsdGVyKHBlciA9PlxuICAgICAgICB1bmNoYW5nZWRQZXJtaXNzaW9ucy5maW5kKHVuY2hhbmdlZCA9PiB1bmNoYW5nZWQubmFtZSA9PT0gcGVyLm5hbWUpLmlzR3JhbnRlZCA9PT0gcGVyLmlzR3JhbnRlZCA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgIClcbiAgICAgIC5tYXAoKHsgbmFtZSwgaXNHcmFudGVkIH0pID0+ICh7IG5hbWUsIGlzR3JhbnRlZCB9KSk7XG5cbiAgICBpZiAoY2hhbmdlZFBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAuZGlzcGF0Y2goXG4gICAgICAgICAgbmV3IFBlcm1pc3Npb25NYW5hZ2VtZW50VXBkYXRlUGVybWlzc2lvbnMoe1xuICAgICAgICAgICAgcHJvdmlkZXJLZXk6IHRoaXMucHJvdmlkZXJLZXksXG4gICAgICAgICAgICBwcm92aWRlck5hbWU6IHRoaXMucHJvdmlkZXJOYW1lLFxuICAgICAgICAgICAgcGVybWlzc2lvbnM6IGNoYW5nZWRQZXJtaXNzaW9ucyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMubW9kYWxSZWYuY2xvc2UoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kYWxSZWYuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgaWYgKCF0aGlzLnByb3ZpZGVyS2V5IHx8ICF0aGlzLnByb3ZpZGVyTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm92aWRlciBLZXkgYW5kIFByb3ZpZGVyIE5hbWUgYXJlIHJlcXVpcmVkLicpO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChcbiAgICAgICAgbmV3IFBlcm1pc3Npb25NYW5hZ2VtZW50R2V0UGVybWlzc2lvbnMoeyBwcm92aWRlcktleTogdGhpcy5wcm92aWRlcktleSwgcHJvdmlkZXJOYW1lOiB0aGlzLnByb3ZpZGVyTmFtZSB9KSxcbiAgICAgIClcbiAgICAgIC5waXBlKHBsdWNrKCdQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlJywgJ3Blcm1pc3Npb25SZXMnKSlcbiAgICAgIC5zdWJzY3JpYmUoKHBlcm1pc3Npb25SZXM6IFBlcm1pc3Npb25NYW5hZ2VtZW50LlJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cCA9IHBlcm1pc3Npb25SZXMuZ3JvdXBzWzBdO1xuICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0gZ2V0UGVybWlzc2lvbnMocGVybWlzc2lvblJlcy5ncm91cHMpO1xuXG4gICAgICAgIHRoaXMubW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMubW9kYWxDb250ZW50LCB7IHNpemU6ICdsZycgfSk7XG4gICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRydWUpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0VGFiQ2hlY2tib3hTdGF0ZSgpO1xuICAgICAgICAgIHRoaXMuc2V0R3JhbnRDaGVja2JveFN0YXRlKCk7XG4gICAgICAgIH0sIDApO1xuXG4gICAgICAgIGZyb20odGhpcy5tb2RhbFJlZi5yZXN1bHQpXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgZGF0YSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVhc29uID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2V0VmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgdmlzaWJsZSB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF2aXNpYmxlKSByZXR1cm47XG5cbiAgICBpZiAodmlzaWJsZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgfSBlbHNlIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSA9PT0gZmFsc2UgJiYgdGhpcy5tb2RhbFNlcnZpY2UuaGFzT3Blbk1vZGFscygpKSB7XG4gICAgICB0aGlzLm1vZGFsUmVmLmNsb3NlKCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmRNYXJnaW4ocGVybWlzc2lvbnM6IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb25bXSwgcGVybWlzc2lvbjogUGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbikge1xuICBjb25zdCBwYXJlbnRQZXJtaXNzaW9uID0gcGVybWlzc2lvbnMuZmluZChwZXIgPT4gcGVyLm5hbWUgPT09IHBlcm1pc3Npb24ucGFyZW50TmFtZSk7XG5cbiAgaWYgKHBhcmVudFBlcm1pc3Npb24gJiYgcGFyZW50UGVybWlzc2lvbi5wYXJlbnROYW1lKSB7XG4gICAgbGV0IG1hcmdpbiA9IDIwO1xuICAgIHJldHVybiAobWFyZ2luICs9IGZpbmRNYXJnaW4ocGVybWlzc2lvbnMsIHBhcmVudFBlcm1pc3Npb24pKTtcbiAgfVxuXG4gIHJldHVybiBwYXJlbnRQZXJtaXNzaW9uID8gMjAgOiAwO1xufVxuXG5mdW5jdGlvbiBnZXRQZXJtaXNzaW9ucyhncm91cHM6IFBlcm1pc3Npb25NYW5hZ2VtZW50Lkdyb3VwW10pOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5QZXJtaXNzaW9uW10ge1xuICByZXR1cm4gZ3JvdXBzLnJlZHVjZSgoYWNjLCB2YWwpID0+IFsuLi5hY2MsIC4uLnZhbC5wZXJtaXNzaW9uc10sIFtdKTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/lib/models/index.js b/npm/packs/ng/dist/permission-management/esm5/lib/models/index.js new file mode 100644 index 0000000000..99d61c0656 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/lib/models/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './permission-management'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGVBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb24tbWFuYWdlbWVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/lib/models/permission-management.js b/npm/packs/ng/dist/permission-management/esm5/lib/models/permission-management.js new file mode 100644 index 0000000000..bfd73caae2 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/lib/models/permission-management.js @@ -0,0 +1,87 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var PermissionManagement; +(function (PermissionManagement) { + /** + * @record + */ + function State() { } + PermissionManagement.State = State; + if (false) { + /** @type {?} */ + State.prototype.permissionRes; + } + /** + * @record + */ + function Response() { } + PermissionManagement.Response = Response; + if (false) { + /** @type {?} */ + Response.prototype.entityDisplayName; + /** @type {?} */ + Response.prototype.groups; + } + /** + * @record + */ + function Group() { } + PermissionManagement.Group = Group; + if (false) { + /** @type {?} */ + Group.prototype.name; + /** @type {?} */ + Group.prototype.displayName; + /** @type {?} */ + Group.prototype.permissions; + } + /** + * @record + */ + function MinimumPermission() { } + PermissionManagement.MinimumPermission = MinimumPermission; + if (false) { + /** @type {?} */ + MinimumPermission.prototype.name; + /** @type {?} */ + MinimumPermission.prototype.isGranted; + } + /** + * @record + */ + function Permission() { } + PermissionManagement.Permission = Permission; + if (false) { + /** @type {?} */ + Permission.prototype.displayName; + /** @type {?} */ + Permission.prototype.parentName; + /** @type {?} */ + Permission.prototype.allowedProviders; + /** @type {?} */ + Permission.prototype.grantedProviders; + } + /** + * @record + */ + function GrantedProvider() { } + PermissionManagement.GrantedProvider = GrantedProvider; + if (false) { + /** @type {?} */ + GrantedProvider.prototype.providerName; + /** @type {?} */ + GrantedProvider.prototype.providerKey; + } + /** + * @record + */ + function UpdateRequest() { } + PermissionManagement.UpdateRequest = UpdateRequest; + if (false) { + /** @type {?} */ + UpdateRequest.prototype.permissions; + } +})(PermissionManagement || (PermissionManagement = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5wZXJtaXNzaW9uLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL3Blcm1pc3Npb24tbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxLQUFXLG9CQUFvQixDQW9DcEM7QUFwQ0QsV0FBaUIsb0JBQW9COzs7O0lBQ25DLG9CQUVDOzs7O1FBREMsOEJBQXdCOzs7OztJQUcxQix1QkFHQzs7OztRQUZDLHFDQUEwQjs7UUFDMUIsMEJBQWdCOzs7OztJQUdsQixvQkFJQzs7OztRQUhDLHFCQUFhOztRQUNiLDRCQUFvQjs7UUFDcEIsNEJBQTBCOzs7OztJQUc1QixnQ0FHQzs7OztRQUZDLGlDQUFhOztRQUNiLHNDQUFtQjs7Ozs7SUFHckIseUJBS0M7Ozs7UUFKQyxpQ0FBb0I7O1FBQ3BCLGdDQUFtQjs7UUFDbkIsc0NBQTJCOztRQUMzQixzQ0FBb0M7Ozs7O0lBR3RDLDhCQUdDOzs7O1FBRkMsdUNBQXFCOztRQUNyQixzQ0FBb0I7Ozs7O0lBR3RCLDRCQUVDOzs7O1FBREMsb0NBQWlDOztBQUVyQyxDQUFDLEVBcENnQixvQkFBb0IsS0FBcEIsb0JBQW9CLFFBb0NwQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBuYW1lc3BhY2UgUGVybWlzc2lvbk1hbmFnZW1lbnQge1xuICBleHBvcnQgaW50ZXJmYWNlIFN0YXRlIHtcbiAgICBwZXJtaXNzaW9uUmVzOiBSZXNwb25zZTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2Uge1xuICAgIGVudGl0eURpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgZ3JvdXBzOiBHcm91cFtdO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBHcm91cCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTWluaW11bVBlcm1pc3Npb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBpc0dyYW50ZWQ6IGJvb2xlYW47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb24gZXh0ZW5kcyBNaW5pbXVtUGVybWlzc2lvbiB7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICBwYXJlbnROYW1lOiBzdHJpbmc7XG4gICAgYWxsb3dlZFByb3ZpZGVyczogc3RyaW5nW107XG4gICAgZ3JhbnRlZFByb3ZpZGVyczogR3JhbnRlZFByb3ZpZGVyW107XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEdyYW50ZWRQcm92aWRlciB7XG4gICAgcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG4gICAgcHJvdmlkZXJLZXk6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUmVxdWVzdCB7XG4gICAgcGVybWlzc2lvbnM6IE1pbmltdW1QZXJtaXNzaW9uW107XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/lib/permission-management.module.js b/npm/packs/ng/dist/permission-management/esm5/lib/permission-management.module.js new file mode 100644 index 0000000000..755e939953 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/lib/permission-management.module.js @@ -0,0 +1,25 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CoreModule } from '@abp/ng.core'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { NgModule } from '@angular/core'; +import { NgxsModule } from '@ngxs/store'; +import { PermissionManagementComponent } from './components/permission-management.component'; +import { PermissionManagementState } from './states/permission-management.state'; +import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; +var PermissionManagementModule = /** @class */ (function () { + function PermissionManagementModule() { + } + PermissionManagementModule.decorators = [ + { type: NgModule, args: [{ + declarations: [PermissionManagementComponent], + imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule], + exports: [PermissionManagementComponent], + },] } + ]; + return PermissionManagementModule; +}()); +export { PermissionManagementModule }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3Blcm1pc3Npb24tbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9EO0lBQUE7SUFLeUMsQ0FBQzs7Z0JBTHpDLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDN0MsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLEVBQUUsc0JBQXNCLENBQUM7b0JBQ3BILE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO2lCQUN6Qzs7SUFDd0MsaUNBQUM7Q0FBQSxBQUwxQyxJQUswQztTQUE3QiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuL3N0YXRlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc3RhdGUnO1xuaW1wb3J0IHsgUGVyZmVjdFNjcm9sbGJhck1vZHVsZSB9IGZyb20gJ25neC1wZXJmZWN0LXNjcm9sbGJhcic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1Blcm1pc3Npb25NYW5hZ2VtZW50Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIFRoZW1lU2hhcmVkTW9kdWxlLCBOZ3hzTW9kdWxlLmZvckZlYXR1cmUoW1Blcm1pc3Npb25NYW5hZ2VtZW50U3RhdGVdKSwgUGVyZmVjdFNjcm9sbGJhck1vZHVsZV0sXG4gIGV4cG9ydHM6IFtQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25NYW5hZ2VtZW50TW9kdWxlIHt9XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/lib/services/index.js b/npm/packs/ng/dist/permission-management/esm5/lib/services/index.js new file mode 100644 index 0000000000..1813272cf3 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/lib/services/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PermissionManagementService } from './permission-management.service'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNENBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/lib/services/permission-management.service.js b/npm/packs/ng/dist/permission-management/esm5/lib/services/permission-management.service.js new file mode 100644 index 0000000000..fe732ae6dc --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/lib/services/permission-management.service.js @@ -0,0 +1,69 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { RestService } from '@abp/ng.core'; +import * as i0 from "@angular/core"; +import * as i1 from "@abp/ng.core"; +var PermissionManagementService = /** @class */ (function () { + function PermissionManagementService(rest) { + this.rest = rest; + } + /** + * @param {?} params + * @return {?} + */ + PermissionManagementService.prototype.getPermissions = /** + * @param {?} params + * @return {?} + */ + function (params) { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/abp/permissions', + params: params, + }; + return this.rest.request(request); + }; + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementService.prototype.updatePermissions = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var permissions = _a.permissions, providerKey = _a.providerKey, providerName = _a.providerName; + /** @type {?} */ + var request = { + method: 'PUT', + url: '/api/abp/permissions', + body: { permissions: permissions }, + params: { providerKey: providerKey, providerName: providerName }, + }; + return this.rest.request(request); + }; + PermissionManagementService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + PermissionManagementService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ PermissionManagementService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PermissionManagementService_Factory() { return new PermissionManagementService(i0.ɵɵinject(i1.RestService)); }, token: PermissionManagementService, providedIn: "root" }); + return PermissionManagementService; +}()); +export { PermissionManagementService }; +if (false) { + /** + * @type {?} + * @private + */ + PermissionManagementService.prototype.rest; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFRLE1BQU0sY0FBYyxDQUFDOzs7QUFJakQ7SUFJRSxxQ0FBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFHLENBQUM7Ozs7O0lBRXpDLG9EQUFjOzs7O0lBQWQsVUFBZSxNQUE0Qzs7WUFDbkQsT0FBTyxHQUF1RDtZQUNsRSxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxzQkFBc0I7WUFDM0IsTUFBTSxRQUFBO1NBQ1A7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFzRSxPQUFPLENBQUMsQ0FBQztJQUN6RyxDQUFDOzs7OztJQUVELHVEQUFpQjs7OztJQUFqQixVQUFrQixFQUkwRDtZQUgxRSw0QkFBVyxFQUNYLDRCQUFXLEVBQ1gsOEJBQVk7O1lBRU4sT0FBTyxHQUFxRDtZQUNoRSxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxzQkFBc0I7WUFDM0IsSUFBSSxFQUFFLEVBQUUsV0FBVyxhQUFBLEVBQUU7WUFDckIsTUFBTSxFQUFFLEVBQUUsV0FBVyxhQUFBLEVBQUUsWUFBWSxjQUFBLEVBQUU7U0FDdEM7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUEyQyxPQUFPLENBQUMsQ0FBQztJQUM5RSxDQUFDOztnQkE3QkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFOUSxXQUFXOzs7c0NBRHBCO0NBbUNDLEFBOUJELElBOEJDO1NBM0JZLDJCQUEyQjs7Ozs7O0lBQzFCLDJDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlLCBSZXN0IH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50IH0gZnJvbSAnLi4vbW9kZWxzL3Blcm1pc3Npb24tbWFuYWdlbWVudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uTWFuYWdlbWVudFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3Q6IFJlc3RTZXJ2aWNlKSB7fVxuXG4gIGdldFBlcm1pc3Npb25zKHBhcmFtczogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JhbnRlZFByb3ZpZGVyKTogT2JzZXJ2YWJsZTxQZXJtaXNzaW9uTWFuYWdlbWVudC5SZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxQZXJtaXNzaW9uTWFuYWdlbWVudC5HcmFudGVkUHJvdmlkZXI+ID0ge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogJy9hcGkvYWJwL3Blcm1pc3Npb25zJyxcbiAgICAgIHBhcmFtcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PFBlcm1pc3Npb25NYW5hZ2VtZW50LkdyYW50ZWRQcm92aWRlciwgUGVybWlzc2lvbk1hbmFnZW1lbnQuUmVzcG9uc2U+KHJlcXVlc3QpO1xuICB9XG5cbiAgdXBkYXRlUGVybWlzc2lvbnMoe1xuICAgIHBlcm1pc3Npb25zLFxuICAgIHByb3ZpZGVyS2V5LFxuICAgIHByb3ZpZGVyTmFtZSxcbiAgfTogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JhbnRlZFByb3ZpZGVyICYgUGVybWlzc2lvbk1hbmFnZW1lbnQuVXBkYXRlUmVxdWVzdCk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxQZXJtaXNzaW9uTWFuYWdlbWVudC5VcGRhdGVSZXF1ZXN0PiA9IHtcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICB1cmw6ICcvYXBpL2FicC9wZXJtaXNzaW9ucycsXG4gICAgICBib2R5OiB7IHBlcm1pc3Npb25zIH0sXG4gICAgICBwYXJhbXM6IHsgcHJvdmlkZXJLZXksIHByb3ZpZGVyTmFtZSB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8UGVybWlzc2lvbk1hbmFnZW1lbnQuVXBkYXRlUmVxdWVzdCwgbnVsbD4ocmVxdWVzdCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/lib/states/index.js b/npm/packs/ng/dist/permission-management/esm5/lib/states/index.js new file mode 100644 index 0000000000..8e0527250a --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/lib/states/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { PermissionManagementState } from "./permission-management.state"; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zdGF0ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBDQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcGVybWlzc2lvbi1tYW5hZ2VtZW50LnN0YXRlXCI7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/lib/states/permission-management.state.js b/npm/packs/ng/dist/permission-management/esm5/lib/states/permission-management.state.js new file mode 100644 index 0000000000..4516ebb638 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/lib/states/permission-management.state.js @@ -0,0 +1,116 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { State, Action, Selector } from '@ngxs/store'; +import { PermissionManagementGetPermissions, PermissionManagementUpdatePermissions, } from '../actions/permission-management.actions'; +import { PermissionManagementService } from '../services/permission-management.service'; +import { tap } from 'rxjs/operators'; +var PermissionManagementState = /** @class */ (function () { + function PermissionManagementState(permissionManagementService) { + this.permissionManagementService = permissionManagementService; + } + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementState.getPermissionGroups = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var permissionRes = _a.permissionRes; + return permissionRes.groups || []; + }; + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementState.getEntitiyDisplayName = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var permissionRes = _a.permissionRes; + return permissionRes.entityDisplayName; + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + PermissionManagementState.prototype.permissionManagementGet = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.permissionManagementService.getPermissions(payload).pipe(tap((/** + * @param {?} permissionResponse + * @return {?} + */ + function (permissionResponse) { + return patchState({ + permissionRes: permissionResponse, + }); + }))); + }; + /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + PermissionManagementState.prototype.permissionManagementUpdate = /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + function (_, _a) { + var payload = _a.payload; + return this.permissionManagementService.updatePermissions(payload); + }; + tslib_1.__decorate([ + Action(PermissionManagementGetPermissions), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, PermissionManagementGetPermissions]), + tslib_1.__metadata("design:returntype", void 0) + ], PermissionManagementState.prototype, "permissionManagementGet", null); + tslib_1.__decorate([ + Action(PermissionManagementUpdatePermissions), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, PermissionManagementUpdatePermissions]), + tslib_1.__metadata("design:returntype", void 0) + ], PermissionManagementState.prototype, "permissionManagementUpdate", null); + tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) + ], PermissionManagementState, "getPermissionGroups", null); + tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", String) + ], PermissionManagementState, "getEntitiyDisplayName", null); + PermissionManagementState = tslib_1.__decorate([ + State({ + name: 'PermissionManagementState', + defaults: (/** @type {?} */ ({ permissionRes: {} })), + }), + tslib_1.__metadata("design:paramtypes", [PermissionManagementService]) + ], PermissionManagementState); + return PermissionManagementState; +}()); +export { PermissionManagementState }; +if (false) { + /** + * @type {?} + * @private + */ + PermissionManagementState.prototype.permissionManagementService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5wZXJtaXNzaW9uLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvc3RhdGVzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFnQixRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUNMLGtDQUFrQyxFQUNsQyxxQ0FBcUMsR0FDdEMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVsRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN4RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0lBaUJuQyxtQ0FBb0IsMkJBQXdEO1FBQXhELGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7SUFBRyxDQUFDOzs7OztJQVR6RSw2Q0FBbUI7Ozs7SUFBMUIsVUFBMkIsRUFBNkM7WUFBM0MsZ0NBQWE7UUFDeEMsT0FBTyxhQUFhLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7OztJQUdNLCtDQUFxQjs7OztJQUE1QixVQUE2QixFQUE2QztZQUEzQyxnQ0FBYTtRQUMxQyxPQUFPLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztJQUN6QyxDQUFDOzs7Ozs7SUFLRCwyREFBdUI7Ozs7O0lBQXZCLFVBQ0UsRUFBd0QsRUFDeEQsRUFBK0M7WUFEN0MsMEJBQVU7WUFDVixvQkFBTztRQUVULE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2xFLEdBQUc7Ozs7UUFBQyxVQUFBLGtCQUFrQjtZQUNwQixPQUFBLFVBQVUsQ0FBQztnQkFDVCxhQUFhLEVBQUUsa0JBQWtCO2FBQ2xDLENBQUM7UUFGRixDQUVFLEVBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7Ozs7O0lBR0QsOERBQTBCOzs7OztJQUExQixVQUEyQixDQUFDLEVBQUUsRUFBa0Q7WUFBaEQsb0JBQU87UUFDckMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQWhCRDtRQURDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQzs7eURBRzVCLGtDQUFrQzs7NEVBU2hEO0lBR0Q7UUFEQyxNQUFNLENBQUMscUNBQXFDLENBQUM7O3lEQUNILHFDQUFxQzs7K0VBRS9FO0lBNUJEO1FBREMsUUFBUSxFQUFFOzs7OzhEQUdWO0lBR0Q7UUFEQyxRQUFRLEVBQUU7Ozs7Z0VBR1Y7SUFUVSx5QkFBeUI7UUFKckMsS0FBSyxDQUE2QjtZQUNqQyxJQUFJLEVBQUUsMkJBQTJCO1lBQ2pDLFFBQVEsRUFBRSxtQkFBQSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsRUFBOEI7U0FDOUQsQ0FBQztpREFZaUQsMkJBQTJCO09BWGpFLHlCQUF5QixDQStCckM7SUFBRCxnQ0FBQztDQUFBLElBQUE7U0EvQlkseUJBQXlCOzs7Ozs7SUFXeEIsZ0VBQWdFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGUsIEFjdGlvbiwgU3RhdGVDb250ZXh0LCBTZWxlY3RvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7XG4gIFBlcm1pc3Npb25NYW5hZ2VtZW50R2V0UGVybWlzc2lvbnMsXG4gIFBlcm1pc3Npb25NYW5hZ2VtZW50VXBkYXRlUGVybWlzc2lvbnMsXG59IGZyb20gJy4uL2FjdGlvbnMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQFN0YXRlPFBlcm1pc3Npb25NYW5hZ2VtZW50LlN0YXRlPih7XG4gIG5hbWU6ICdQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlJyxcbiAgZGVmYXVsdHM6IHsgcGVybWlzc2lvblJlczoge30gfSBhcyBQZXJtaXNzaW9uTWFuYWdlbWVudC5TdGF0ZSxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSB7XG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRQZXJtaXNzaW9uR3JvdXBzKHsgcGVybWlzc2lvblJlcyB9OiBQZXJtaXNzaW9uTWFuYWdlbWVudC5TdGF0ZSkge1xuICAgIHJldHVybiBwZXJtaXNzaW9uUmVzLmdyb3VwcyB8fCBbXTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRFbnRpdGl5RGlzcGxheU5hbWUoeyBwZXJtaXNzaW9uUmVzIH06IFBlcm1pc3Npb25NYW5hZ2VtZW50LlN0YXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGVybWlzc2lvblJlcy5lbnRpdHlEaXNwbGF5TmFtZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGVybWlzc2lvbk1hbmFnZW1lbnRTZXJ2aWNlOiBQZXJtaXNzaW9uTWFuYWdlbWVudFNlcnZpY2UpIHt9XG5cbiAgQEFjdGlvbihQZXJtaXNzaW9uTWFuYWdlbWVudEdldFBlcm1pc3Npb25zKVxuICBwZXJtaXNzaW9uTWFuYWdlbWVudEdldChcbiAgICB7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PFBlcm1pc3Npb25NYW5hZ2VtZW50LlN0YXRlPixcbiAgICB7IHBheWxvYWQgfTogUGVybWlzc2lvbk1hbmFnZW1lbnRHZXRQZXJtaXNzaW9ucyxcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbk1hbmFnZW1lbnRTZXJ2aWNlLmdldFBlcm1pc3Npb25zKHBheWxvYWQpLnBpcGUoXG4gICAgICB0YXAocGVybWlzc2lvblJlc3BvbnNlID0+XG4gICAgICAgIHBhdGNoU3RhdGUoe1xuICAgICAgICAgIHBlcm1pc3Npb25SZXM6IHBlcm1pc3Npb25SZXNwb25zZSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKFBlcm1pc3Npb25NYW5hZ2VtZW50VXBkYXRlUGVybWlzc2lvbnMpXG4gIHBlcm1pc3Npb25NYW5hZ2VtZW50VXBkYXRlKF8sIHsgcGF5bG9hZCB9OiBQZXJtaXNzaW9uTWFuYWdlbWVudFVwZGF0ZVBlcm1pc3Npb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbk1hbmFnZW1lbnRTZXJ2aWNlLnVwZGF0ZVBlcm1pc3Npb25zKHBheWxvYWQpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/esm5/public-api.js b/npm/packs/ng/dist/permission-management/esm5/public-api.js new file mode 100644 index 0000000000..e2c955262e --- /dev/null +++ b/npm/packs/ng/dist/permission-management/esm5/public-api.js @@ -0,0 +1,14 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/* + * Public API Surface of permission-management + */ +export { PermissionManagementModule } from './lib/permission-management.module'; +export { PermissionManagementGetPermissions, PermissionManagementUpdatePermissions } from './lib/actions'; +export { PermissionManagementComponent } from './lib/components'; +export {} from './lib/models'; +export { PermissionManagementService } from './lib/services'; +export { PermissionManagementState } from './lib/states'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkNBQWMsb0NBQW9DLENBQUM7QUFDbkQsMEZBQWMsZUFBZSxDQUFDO0FBQzlCLDhDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGVBQWMsY0FBYyxDQUFDO0FBQzdCLDRDQUFjLGdCQUFnQixDQUFDO0FBQy9CLDBDQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcGVybWlzc2lvbi1tYW5hZ2VtZW50XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVybWlzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/fesm2015/abp-ng.permission-management.js b/npm/packs/ng/dist/permission-management/fesm2015/abp-ng.permission-management.js new file mode 100644 index 0000000000..433935ac3a --- /dev/null +++ b/npm/packs/ng/dist/permission-management/fesm2015/abp-ng.permission-management.js @@ -0,0 +1,583 @@ +import { RestService, CoreModule } from '@abp/ng.core'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Component, Renderer2, Input, Output, ViewChild, NgModule } from '@angular/core'; +import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; +import { __decorate, __metadata } from 'tslib'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { from, Observable } from 'rxjs'; +import { tap, map, take, pluck } from 'rxjs/operators'; +import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class PermissionManagementGetPermissions { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +PermissionManagementGetPermissions.type = '[PermissionManagement] Get Permissions'; +class PermissionManagementUpdatePermissions { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +PermissionManagementUpdatePermissions.type = '[PermissionManagement] Update Permissions'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class PermissionManagementService { + /** + * @param {?} rest + */ + constructor(rest) { + this.rest = rest; + } + /** + * @param {?} params + * @return {?} + */ + getPermissions(params) { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/abp/permissions', + params, + }; + return this.rest.request(request); + } + /** + * @param {?} __0 + * @return {?} + */ + updatePermissions({ permissions, providerKey, providerName, }) { + /** @type {?} */ + const request = { + method: 'PUT', + url: '/api/abp/permissions', + body: { permissions }, + params: { providerKey, providerName }, + }; + return this.rest.request(request); + } +} +PermissionManagementService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +PermissionManagementService.ctorParameters = () => [ + { type: RestService } +]; +/** @nocollapse */ PermissionManagementService.ngInjectableDef = ɵɵdefineInjectable({ factory: function PermissionManagementService_Factory() { return new PermissionManagementService(ɵɵinject(RestService)); }, token: PermissionManagementService, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +let PermissionManagementState = class PermissionManagementState { + /** + * @param {?} permissionManagementService + */ + constructor(permissionManagementService) { + this.permissionManagementService = permissionManagementService; + } + /** + * @param {?} __0 + * @return {?} + */ + static getPermissionGroups({ permissionRes }) { + return permissionRes.groups || []; + } + /** + * @param {?} __0 + * @return {?} + */ + static getEntitiyDisplayName({ permissionRes }) { + return permissionRes.entityDisplayName; + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + permissionManagementGet({ patchState }, { payload }) { + return this.permissionManagementService.getPermissions(payload).pipe(tap((/** + * @param {?} permissionResponse + * @return {?} + */ + permissionResponse => patchState({ + permissionRes: permissionResponse, + })))); + } + /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + permissionManagementUpdate(_, { payload }) { + return this.permissionManagementService.updatePermissions(payload); + } +}; +__decorate([ + Action(PermissionManagementGetPermissions), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, PermissionManagementGetPermissions]), + __metadata("design:returntype", void 0) +], PermissionManagementState.prototype, "permissionManagementGet", null); +__decorate([ + Action(PermissionManagementUpdatePermissions), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, PermissionManagementUpdatePermissions]), + __metadata("design:returntype", void 0) +], PermissionManagementState.prototype, "permissionManagementUpdate", null); +__decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], PermissionManagementState, "getPermissionGroups", null); +__decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", String) +], PermissionManagementState, "getEntitiyDisplayName", null); +PermissionManagementState = __decorate([ + State({ + name: 'PermissionManagementState', + defaults: (/** @type {?} */ ({ permissionRes: {} })), + }), + __metadata("design:paramtypes", [PermissionManagementService]) +], PermissionManagementState); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class PermissionManagementComponent { + /** + * @param {?} modalService + * @param {?} store + * @param {?} renderer + */ + constructor(modalService, store, renderer) { + this.modalService = modalService; + this.store = store; + this.renderer = renderer; + this.visibleChange = new EventEmitter(); + this.permissions = []; + this.selectThisTab = false; + this.selectAllTab = false; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + (_, item) => item.name); + } + /** + * @return {?} + */ + get selectedGroupPermissions$() { + return this.groups$.pipe(map((/** + * @param {?} groups + * @return {?} + */ + groups => this.selectedGroup ? groups.find((/** + * @param {?} group + * @return {?} + */ + group => group.name === this.selectedGroup.name)).permissions : [])), map((/** + * @param {?} permissions + * @return {?} + */ + permissions => permissions.map((/** + * @param {?} permission + * @return {?} + */ + permission => ((/** @type {?} */ (((/** @type {?} */ (Object.assign({}, permission, { margin: findMargin(permissions, permission), isGranted: this.permissions.find((/** + * @param {?} per + * @return {?} + */ + per => per.name === permission.name)).isGranted })))))))))))); + } + /** + * @return {?} + */ + ngOnInit() { } + /** + * @param {?} name + * @return {?} + */ + getChecked(name) { + return (this.permissions.find((/** + * @param {?} per + * @return {?} + */ + per => per.name === name)) || { isGranted: false }).isGranted; + } + /** + * @param {?} clickedPermission + * @param {?} value + * @return {?} + */ + onClickCheckbox(clickedPermission, value) { + setTimeout((/** + * @return {?} + */ + () => { + this.permissions = this.permissions.map((/** + * @param {?} per + * @return {?} + */ + per => { + if (clickedPermission.name === per.name) { + return Object.assign({}, per, { isGranted: !per.isGranted }); + } + else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) { + return Object.assign({}, per, { isGranted: false }); + } + else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) { + return Object.assign({}, per, { isGranted: true }); + } + return per; + })); + this.setTabCheckboxState(); + this.setGrantCheckboxState(); + }), 0); + } + /** + * @return {?} + */ + setTabCheckboxState() { + this.selectedGroupPermissions$.pipe(take(1)).subscribe((/** + * @param {?} permissions + * @return {?} + */ + permissions => { + /** @type {?} */ + const selectedPermissions = permissions.filter((/** + * @param {?} per + * @return {?} + */ + per => per.isGranted)); + /** @type {?} */ + const element = (/** @type {?} */ (document.querySelector('#select-all-in-this-tabs'))); + if (selectedPermissions.length === permissions.length) { + element.indeterminate = false; + this.selectThisTab = true; + } + else if (selectedPermissions.length === 0) { + element.indeterminate = false; + this.selectThisTab = false; + } + else { + element.indeterminate = true; + } + })); + } + /** + * @return {?} + */ + setGrantCheckboxState() { + /** @type {?} */ + const selectedAllPermissions = this.permissions.filter((/** + * @param {?} per + * @return {?} + */ + per => per.isGranted)); + /** @type {?} */ + const checkboxElement = (/** @type {?} */ (document.querySelector('#select-all-in-all-tabs'))); + if (selectedAllPermissions.length === this.permissions.length) { + checkboxElement.indeterminate = false; + this.selectAllTab = true; + } + else if (selectedAllPermissions.length === 0) { + checkboxElement.indeterminate = false; + this.selectAllTab = false; + } + else { + checkboxElement.indeterminate = true; + } + } + /** + * @return {?} + */ + onClickSelectThisTab() { + this.selectedGroupPermissions$.pipe(take(1)).subscribe((/** + * @param {?} permissions + * @return {?} + */ + permissions => { + permissions.forEach((/** + * @param {?} permission + * @return {?} + */ + permission => { + /** @type {?} */ + const index = this.permissions.findIndex((/** + * @param {?} per + * @return {?} + */ + per => per.name === permission.name)); + this.permissions = [ + ...this.permissions.slice(0, index), + Object.assign({}, this.permissions[index], { isGranted: !this.selectThisTab }), + ...this.permissions.slice(index + 1), + ]; + })); + })); + this.setGrantCheckboxState(); + } + /** + * @return {?} + */ + onClickSelectAll() { + this.permissions = this.permissions.map((/** + * @param {?} permission + * @return {?} + */ + permission => (Object.assign({}, permission, { isGranted: !this.selectAllTab })))); + this.selectThisTab = !this.selectAllTab; + } + /** + * @param {?} group + * @return {?} + */ + onChangeGroup(group) { + this.selectedGroup = group; + this.setTabCheckboxState(); + } + /** + * @return {?} + */ + onSubmit() { + /** @type {?} */ + const unchangedPermissions = getPermissions(this.store.selectSnapshot(PermissionManagementState.getPermissionGroups)); + /** @type {?} */ + const changedPermissions = this.permissions + .filter((/** + * @param {?} per + * @return {?} + */ + per => unchangedPermissions.find((/** + * @param {?} unchanged + * @return {?} + */ + unchanged => unchanged.name === per.name)).isGranted === per.isGranted ? false : true)) + .map((/** + * @param {?} __0 + * @return {?} + */ + ({ name, isGranted }) => ({ name, isGranted }))); + if (changedPermissions.length) { + this.store + .dispatch(new PermissionManagementUpdatePermissions({ + providerKey: this.providerKey, + providerName: this.providerName, + permissions: changedPermissions, + })) + .subscribe((/** + * @return {?} + */ + () => this.modalRef.close())); + } + else { + this.modalRef.close(); + } + } + /** + * @return {?} + */ + openModal() { + if (!this.providerKey || !this.providerName) { + throw new Error('Provider Key and Provider Name are required.'); + } + this.store + .dispatch(new PermissionManagementGetPermissions({ providerKey: this.providerKey, providerName: this.providerName })) + .pipe(pluck('PermissionManagementState', 'permissionRes')) + .subscribe((/** + * @param {?} permissionRes + * @return {?} + */ + (permissionRes) => { + this.selectedGroup = permissionRes.groups[0]; + this.permissions = getPermissions(permissionRes.groups); + this.modalRef = this.modalService.open(this.modalContent, { size: 'lg' }); + this.visibleChange.emit(true); + setTimeout((/** + * @return {?} + */ + () => { + this.setTabCheckboxState(); + this.setGrantCheckboxState(); + }), 0); + from(this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + data => { + this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + reason => { + this.setVisible(false); + })); + })); + } + /** + * @param {?} value + * @return {?} + */ + setVisible(value) { + this.visible = value; + this.visibleChange.emit(value); + } + /** + * @param {?} __0 + * @return {?} + */ + ngOnChanges({ visible }) { + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + } +} +PermissionManagementComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-permission-management', + template: "\n \n
\n

\n {{ 'AbpPermissionManagement::Permissions' | abpLocalization }} -\n {{ data.entityName }}\n

\n \n
\n
\n
\n \n \n
\n\n
\n
\n
\n \n
\n
\n

{{ selectedGroup.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n
\n \n
\n
\n
\n \n\n
\n \n \n
\n
\n
\n" + }] } +]; +/** @nocollapse */ +PermissionManagementComponent.ctorParameters = () => [ + { type: NgbModal }, + { type: Store }, + { type: Renderer2 } +]; +PermissionManagementComponent.propDecorators = { + providerName: [{ type: Input }], + providerKey: [{ type: Input }], + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; +__decorate([ + Select(PermissionManagementState.getPermissionGroups), + __metadata("design:type", Observable) +], PermissionManagementComponent.prototype, "groups$", void 0); +__decorate([ + Select(PermissionManagementState.getEntitiyDisplayName), + __metadata("design:type", Observable) +], PermissionManagementComponent.prototype, "entityName$", void 0); +/** + * @param {?} permissions + * @param {?} permission + * @return {?} + */ +function findMargin(permissions, permission) { + /** @type {?} */ + const parentPermission = permissions.find((/** + * @param {?} per + * @return {?} + */ + per => per.name === permission.parentName)); + if (parentPermission && parentPermission.parentName) { + /** @type {?} */ + let margin = 20; + return (margin += findMargin(permissions, parentPermission)); + } + return parentPermission ? 20 : 0; +} +/** + * @param {?} groups + * @return {?} + */ +function getPermissions(groups) { + return groups.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => [...acc, ...val.permissions]), []); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class PermissionManagementModule { +} +PermissionManagementModule.decorators = [ + { type: NgModule, args: [{ + declarations: [PermissionManagementComponent], + imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule], + exports: [PermissionManagementComponent], + },] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PermissionManagement; +(function (PermissionManagement) { + /** + * @record + */ + function State() { } + PermissionManagement.State = State; + /** + * @record + */ + function Response() { } + PermissionManagement.Response = Response; + /** + * @record + */ + function Group() { } + PermissionManagement.Group = Group; + /** + * @record + */ + function MinimumPermission() { } + PermissionManagement.MinimumPermission = MinimumPermission; + /** + * @record + */ + function Permission() { } + PermissionManagement.Permission = Permission; + /** + * @record + */ + function GrantedProvider() { } + PermissionManagement.GrantedProvider = GrantedProvider; + /** + * @record + */ + function UpdateRequest() { } + PermissionManagement.UpdateRequest = UpdateRequest; +})(PermissionManagement || (PermissionManagement = {})); + +export { PermissionManagementComponent, PermissionManagementGetPermissions, PermissionManagementModule, PermissionManagementService, PermissionManagementState, PermissionManagementUpdatePermissions, PermissionManagementComponent as ɵa, PermissionManagementState as ɵb, PermissionManagementService as ɵc, PermissionManagementGetPermissions as ɵd, PermissionManagementUpdatePermissions as ɵe }; +//# sourceMappingURL=abp-ng.permission-management.js.map diff --git a/npm/packs/ng/dist/permission-management/fesm2015/abp-ng.permission-management.js.map b/npm/packs/ng/dist/permission-management/fesm2015/abp-ng.permission-management.js.map new file mode 100644 index 0000000000..efe2fd3e58 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/fesm2015/abp-ng.permission-management.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.permission-management.js","sources":["ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"sourcesContent":["import { PermissionManagement } from '../models/permission-management';\n\nexport class PermissionManagementGetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class PermissionManagementUpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport {\n PermissionManagementGetPermissions,\n PermissionManagementUpdatePermissions,\n} from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(PermissionManagementGetPermissions)\n permissionManagementGet(\n { patchState }: StateContext,\n { payload }: PermissionManagementGetPermissions,\n ) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(PermissionManagementUpdatePermissions)\n permissionManagementUpdate(_, { payload }: PermissionManagementUpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n} from '@angular/core';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport {\n PermissionManagementGetPermissions,\n PermissionManagementUpdatePermissions,\n} from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n modalRef: NgbModalRef;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private modalService: NgbModal, private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n onSubmit() {\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new PermissionManagementUpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => this.modalRef.close());\n } else {\n this.modalRef.close();\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(\n new PermissionManagementGetPermissions({ providerKey: this.providerKey, providerName: this.providerName }),\n )\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.modalRef = this.modalService.open(this.modalContent, { size: 'lg' });\n this.visibleChange.emit(true);\n\n setTimeout(() => {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n });\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/fesm5/abp-ng.permission-management.js b/npm/packs/ng/dist/permission-management/fesm5/abp-ng.permission-management.js new file mode 100644 index 0000000000..0a538200a8 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/fesm5/abp-ng.permission-management.js @@ -0,0 +1,671 @@ +import { RestService, CoreModule } from '@abp/ng.core'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, Renderer2, Input, Output, ViewChild, EventEmitter, NgModule } from '@angular/core'; +import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; +import { __decorate, __metadata, __assign, __spread } from 'tslib'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { from, Observable } from 'rxjs'; +import { tap, map, take, pluck } from 'rxjs/operators'; +import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PermissionManagementGetPermissions = /** @class */ (function () { + function PermissionManagementGetPermissions(payload) { + this.payload = payload; + } + PermissionManagementGetPermissions.type = '[PermissionManagement] Get Permissions'; + return PermissionManagementGetPermissions; +}()); +var PermissionManagementUpdatePermissions = /** @class */ (function () { + function PermissionManagementUpdatePermissions(payload) { + this.payload = payload; + } + PermissionManagementUpdatePermissions.type = '[PermissionManagement] Update Permissions'; + return PermissionManagementUpdatePermissions; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PermissionManagementService = /** @class */ (function () { + function PermissionManagementService(rest) { + this.rest = rest; + } + /** + * @param {?} params + * @return {?} + */ + PermissionManagementService.prototype.getPermissions = /** + * @param {?} params + * @return {?} + */ + function (params) { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/abp/permissions', + params: params, + }; + return this.rest.request(request); + }; + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementService.prototype.updatePermissions = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var permissions = _a.permissions, providerKey = _a.providerKey, providerName = _a.providerName; + /** @type {?} */ + var request = { + method: 'PUT', + url: '/api/abp/permissions', + body: { permissions: permissions }, + params: { providerKey: providerKey, providerName: providerName }, + }; + return this.rest.request(request); + }; + PermissionManagementService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + PermissionManagementService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ PermissionManagementService.ngInjectableDef = ɵɵdefineInjectable({ factory: function PermissionManagementService_Factory() { return new PermissionManagementService(ɵɵinject(RestService)); }, token: PermissionManagementService, providedIn: "root" }); + return PermissionManagementService; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PermissionManagementState = /** @class */ (function () { + function PermissionManagementState(permissionManagementService) { + this.permissionManagementService = permissionManagementService; + } + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementState.getPermissionGroups = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var permissionRes = _a.permissionRes; + return permissionRes.groups || []; + }; + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementState.getEntitiyDisplayName = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var permissionRes = _a.permissionRes; + return permissionRes.entityDisplayName; + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + PermissionManagementState.prototype.permissionManagementGet = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.permissionManagementService.getPermissions(payload).pipe(tap((/** + * @param {?} permissionResponse + * @return {?} + */ + function (permissionResponse) { + return patchState({ + permissionRes: permissionResponse, + }); + }))); + }; + /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + PermissionManagementState.prototype.permissionManagementUpdate = /** + * @param {?} _ + * @param {?} __1 + * @return {?} + */ + function (_, _a) { + var payload = _a.payload; + return this.permissionManagementService.updatePermissions(payload); + }; + __decorate([ + Action(PermissionManagementGetPermissions), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, PermissionManagementGetPermissions]), + __metadata("design:returntype", void 0) + ], PermissionManagementState.prototype, "permissionManagementGet", null); + __decorate([ + Action(PermissionManagementUpdatePermissions), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, PermissionManagementUpdatePermissions]), + __metadata("design:returntype", void 0) + ], PermissionManagementState.prototype, "permissionManagementUpdate", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], PermissionManagementState, "getPermissionGroups", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", String) + ], PermissionManagementState, "getEntitiyDisplayName", null); + PermissionManagementState = __decorate([ + State({ + name: 'PermissionManagementState', + defaults: (/** @type {?} */ ({ permissionRes: {} })), + }), + __metadata("design:paramtypes", [PermissionManagementService]) + ], PermissionManagementState); + return PermissionManagementState; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PermissionManagementComponent = /** @class */ (function () { + function PermissionManagementComponent(modalService, store, renderer) { + this.modalService = modalService; + this.store = store; + this.renderer = renderer; + this.visibleChange = new EventEmitter(); + this.permissions = []; + this.selectThisTab = false; + this.selectAllTab = false; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + function (_, item) { return item.name; }); + } + Object.defineProperty(PermissionManagementComponent.prototype, "selectedGroupPermissions$", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return this.groups$.pipe(map((/** + * @param {?} groups + * @return {?} + */ + function (groups) { + return _this.selectedGroup ? groups.find((/** + * @param {?} group + * @return {?} + */ + function (group) { return group.name === _this.selectedGroup.name; })).permissions : []; + })), map((/** + * @param {?} permissions + * @return {?} + */ + function (permissions) { + return permissions.map((/** + * @param {?} permission + * @return {?} + */ + function (permission) { + return ((/** @type {?} */ (((/** @type {?} */ (__assign({}, permission, { margin: findMargin(permissions, permission), isGranted: _this.permissions.find((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === permission.name; })).isGranted }))))))); + })); + }))); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + PermissionManagementComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { }; + /** + * @param {?} name + * @return {?} + */ + PermissionManagementComponent.prototype.getChecked = /** + * @param {?} name + * @return {?} + */ + function (name) { + return (this.permissions.find((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === name; })) || { isGranted: false }).isGranted; + }; + /** + * @param {?} clickedPermission + * @param {?} value + * @return {?} + */ + PermissionManagementComponent.prototype.onClickCheckbox = /** + * @param {?} clickedPermission + * @param {?} value + * @return {?} + */ + function (clickedPermission, value) { + var _this = this; + setTimeout((/** + * @return {?} + */ + function () { + _this.permissions = _this.permissions.map((/** + * @param {?} per + * @return {?} + */ + function (per) { + if (clickedPermission.name === per.name) { + return __assign({}, per, { isGranted: !per.isGranted }); + } + else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) { + return __assign({}, per, { isGranted: false }); + } + else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) { + return __assign({}, per, { isGranted: true }); + } + return per; + })); + _this.setTabCheckboxState(); + _this.setGrantCheckboxState(); + }), 0); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.setTabCheckboxState = /** + * @return {?} + */ + function () { + var _this = this; + this.selectedGroupPermissions$.pipe(take(1)).subscribe((/** + * @param {?} permissions + * @return {?} + */ + function (permissions) { + /** @type {?} */ + var selectedPermissions = permissions.filter((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.isGranted; })); + /** @type {?} */ + var element = (/** @type {?} */ (document.querySelector('#select-all-in-this-tabs'))); + if (selectedPermissions.length === permissions.length) { + element.indeterminate = false; + _this.selectThisTab = true; + } + else if (selectedPermissions.length === 0) { + element.indeterminate = false; + _this.selectThisTab = false; + } + else { + element.indeterminate = true; + } + })); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.setGrantCheckboxState = /** + * @return {?} + */ + function () { + /** @type {?} */ + var selectedAllPermissions = this.permissions.filter((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.isGranted; })); + /** @type {?} */ + var checkboxElement = (/** @type {?} */ (document.querySelector('#select-all-in-all-tabs'))); + if (selectedAllPermissions.length === this.permissions.length) { + checkboxElement.indeterminate = false; + this.selectAllTab = true; + } + else if (selectedAllPermissions.length === 0) { + checkboxElement.indeterminate = false; + this.selectAllTab = false; + } + else { + checkboxElement.indeterminate = true; + } + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.onClickSelectThisTab = /** + * @return {?} + */ + function () { + var _this = this; + this.selectedGroupPermissions$.pipe(take(1)).subscribe((/** + * @param {?} permissions + * @return {?} + */ + function (permissions) { + permissions.forEach((/** + * @param {?} permission + * @return {?} + */ + function (permission) { + /** @type {?} */ + var index = _this.permissions.findIndex((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === permission.name; })); + _this.permissions = __spread(_this.permissions.slice(0, index), [ + __assign({}, _this.permissions[index], { isGranted: !_this.selectThisTab }) + ], _this.permissions.slice(index + 1)); + })); + })); + this.setGrantCheckboxState(); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.onClickSelectAll = /** + * @return {?} + */ + function () { + var _this = this; + this.permissions = this.permissions.map((/** + * @param {?} permission + * @return {?} + */ + function (permission) { return (__assign({}, permission, { isGranted: !_this.selectAllTab })); })); + this.selectThisTab = !this.selectAllTab; + }; + /** + * @param {?} group + * @return {?} + */ + PermissionManagementComponent.prototype.onChangeGroup = /** + * @param {?} group + * @return {?} + */ + function (group) { + this.selectedGroup = group; + this.setTabCheckboxState(); + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var unchangedPermissions = getPermissions(this.store.selectSnapshot(PermissionManagementState.getPermissionGroups)); + /** @type {?} */ + var changedPermissions = this.permissions + .filter((/** + * @param {?} per + * @return {?} + */ + function (per) { + return unchangedPermissions.find((/** + * @param {?} unchanged + * @return {?} + */ + function (unchanged) { return unchanged.name === per.name; })).isGranted === per.isGranted ? false : true; + })) + .map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var name = _a.name, isGranted = _a.isGranted; + return ({ name: name, isGranted: isGranted }); + })); + if (changedPermissions.length) { + this.store + .dispatch(new PermissionManagementUpdatePermissions({ + providerKey: this.providerKey, + providerName: this.providerName, + permissions: changedPermissions, + })) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalRef.close(); })); + } + else { + this.modalRef.close(); + } + }; + /** + * @return {?} + */ + PermissionManagementComponent.prototype.openModal = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.providerKey || !this.providerName) { + throw new Error('Provider Key and Provider Name are required.'); + } + this.store + .dispatch(new PermissionManagementGetPermissions({ providerKey: this.providerKey, providerName: this.providerName })) + .pipe(pluck('PermissionManagementState', 'permissionRes')) + .subscribe((/** + * @param {?} permissionRes + * @return {?} + */ + function (permissionRes) { + _this.selectedGroup = permissionRes.groups[0]; + _this.permissions = getPermissions(permissionRes.groups); + _this.modalRef = _this.modalService.open(_this.modalContent, { size: 'lg' }); + _this.visibleChange.emit(true); + setTimeout((/** + * @return {?} + */ + function () { + _this.setTabCheckboxState(); + _this.setGrantCheckboxState(); + }), 0); + from(_this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + function (data) { + _this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + function (reason) { + _this.setVisible(false); + })); + })); + }; + /** + * @param {?} value + * @return {?} + */ + PermissionManagementComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + this.visible = value; + this.visibleChange.emit(value); + }; + /** + * @param {?} __0 + * @return {?} + */ + PermissionManagementComponent.prototype.ngOnChanges = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var visible = _a.visible; + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + }; + PermissionManagementComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-permission-management', + template: "\n \n
\n

\n {{ 'AbpPermissionManagement::Permissions' | abpLocalization }} -\n {{ data.entityName }}\n

\n \n
\n
\n
\n \n \n
\n\n
\n
\n
\n \n
\n
\n

{{ selectedGroup.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n
\n \n
\n
\n
\n \n\n
\n \n \n
\n
\n
\n" + }] } + ]; + /** @nocollapse */ + PermissionManagementComponent.ctorParameters = function () { return [ + { type: NgbModal }, + { type: Store }, + { type: Renderer2 } + ]; }; + PermissionManagementComponent.propDecorators = { + providerName: [{ type: Input }], + providerKey: [{ type: Input }], + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + __decorate([ + Select(PermissionManagementState.getPermissionGroups), + __metadata("design:type", Observable) + ], PermissionManagementComponent.prototype, "groups$", void 0); + __decorate([ + Select(PermissionManagementState.getEntitiyDisplayName), + __metadata("design:type", Observable) + ], PermissionManagementComponent.prototype, "entityName$", void 0); + return PermissionManagementComponent; +}()); +/** + * @param {?} permissions + * @param {?} permission + * @return {?} + */ +function findMargin(permissions, permission) { + /** @type {?} */ + var parentPermission = permissions.find((/** + * @param {?} per + * @return {?} + */ + function (per) { return per.name === permission.parentName; })); + if (parentPermission && parentPermission.parentName) { + /** @type {?} */ + var margin = 20; + return (margin += findMargin(permissions, parentPermission)); + } + return parentPermission ? 20 : 0; +} +/** + * @param {?} groups + * @return {?} + */ +function getPermissions(groups) { + return groups.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return __spread(acc, val.permissions); }), []); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PermissionManagementModule = /** @class */ (function () { + function PermissionManagementModule() { + } + PermissionManagementModule.decorators = [ + { type: NgModule, args: [{ + declarations: [PermissionManagementComponent], + imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule], + exports: [PermissionManagementComponent], + },] } + ]; + return PermissionManagementModule; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var PermissionManagement; +(function (PermissionManagement) { + /** + * @record + */ + function State() { } + PermissionManagement.State = State; + /** + * @record + */ + function Response() { } + PermissionManagement.Response = Response; + /** + * @record + */ + function Group() { } + PermissionManagement.Group = Group; + /** + * @record + */ + function MinimumPermission() { } + PermissionManagement.MinimumPermission = MinimumPermission; + /** + * @record + */ + function Permission() { } + PermissionManagement.Permission = Permission; + /** + * @record + */ + function GrantedProvider() { } + PermissionManagement.GrantedProvider = GrantedProvider; + /** + * @record + */ + function UpdateRequest() { } + PermissionManagement.UpdateRequest = UpdateRequest; +})(PermissionManagement || (PermissionManagement = {})); + +export { PermissionManagementComponent, PermissionManagementGetPermissions, PermissionManagementModule, PermissionManagementService, PermissionManagementState, PermissionManagementUpdatePermissions, PermissionManagementComponent as ɵa, PermissionManagementState as ɵb, PermissionManagementService as ɵc, PermissionManagementGetPermissions as ɵd, PermissionManagementUpdatePermissions as ɵe }; +//# sourceMappingURL=abp-ng.permission-management.js.map diff --git a/npm/packs/ng/dist/permission-management/fesm5/abp-ng.permission-management.js.map b/npm/packs/ng/dist/permission-management/fesm5/abp-ng.permission-management.js.map new file mode 100644 index 0000000000..15dabbc694 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/fesm5/abp-ng.permission-management.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.permission-management.js","sources":["ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"sourcesContent":["import { PermissionManagement } from '../models/permission-management';\n\nexport class PermissionManagementGetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class PermissionManagementUpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport {\n PermissionManagementGetPermissions,\n PermissionManagementUpdatePermissions,\n} from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(PermissionManagementGetPermissions)\n permissionManagementGet(\n { patchState }: StateContext,\n { payload }: PermissionManagementGetPermissions,\n ) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(PermissionManagementUpdatePermissions)\n permissionManagementUpdate(_, { payload }: PermissionManagementUpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n} from '@angular/core';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport {\n PermissionManagementGetPermissions,\n PermissionManagementUpdatePermissions,\n} from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n modalRef: NgbModalRef;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private modalService: NgbModal, private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n onSubmit() {\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new PermissionManagementUpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => this.modalRef.close());\n } else {\n this.modalRef.close();\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(\n new PermissionManagementGetPermissions({ providerKey: this.providerKey, providerName: this.providerName }),\n )\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.modalRef = this.modalService.open(this.modalContent, { size: 'lg' });\n this.visibleChange.emit(true);\n\n setTimeout(() => {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n });\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/permission-management/lib/actions/index.d.ts b/npm/packs/ng/dist/permission-management/lib/actions/index.d.ts new file mode 100644 index 0000000000..5fb2c9e8e4 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/lib/actions/index.d.ts @@ -0,0 +1 @@ +export * from './permission-management.actions'; diff --git a/npm/packs/ng/dist/permission-management/lib/actions/permission-management.actions.d.ts b/npm/packs/ng/dist/permission-management/lib/actions/permission-management.actions.d.ts new file mode 100644 index 0000000000..923c31177e --- /dev/null +++ b/npm/packs/ng/dist/permission-management/lib/actions/permission-management.actions.d.ts @@ -0,0 +1,11 @@ +import { PermissionManagement } from '../models/permission-management'; +export declare class PermissionManagementGetPermissions { + payload: PermissionManagement.GrantedProvider; + static readonly type = "[PermissionManagement] Get Permissions"; + constructor(payload: PermissionManagement.GrantedProvider); +} +export declare class PermissionManagementUpdatePermissions { + payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest; + static readonly type = "[PermissionManagement] Update Permissions"; + constructor(payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest); +} diff --git a/npm/packs/ng/dist/permission-management/lib/components/index.d.ts b/npm/packs/ng/dist/permission-management/lib/components/index.d.ts new file mode 100644 index 0000000000..efa91b45a2 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/lib/components/index.d.ts @@ -0,0 +1 @@ +export * from './permission-management.component'; diff --git a/npm/packs/ng/dist/permission-management/lib/components/permission-management.component.d.ts b/npm/packs/ng/dist/permission-management/lib/components/permission-management.component.d.ts new file mode 100644 index 0000000000..c577a1830c --- /dev/null +++ b/npm/packs/ng/dist/permission-management/lib/components/permission-management.component.d.ts @@ -0,0 +1,41 @@ +import { EventEmitter, OnChanges, OnInit, Renderer2, SimpleChanges, TemplateRef, TrackByFunction } from '@angular/core'; +import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; +import { Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { PermissionManagement } from '../models/permission-management'; +declare type PermissionWithMargin = PermissionManagement.Permission & { + margin: number; +}; +export declare class PermissionManagementComponent implements OnInit, OnChanges { + private modalService; + private store; + private renderer; + providerName: string; + providerKey: string; + visible: boolean; + visibleChange: EventEmitter; + modalContent: TemplateRef; + groups$: Observable; + entityName$: Observable; + modalRef: NgbModalRef; + selectedGroup: PermissionManagement.Group; + permissions: PermissionManagement.Permission[]; + selectThisTab: boolean; + selectAllTab: boolean; + trackByFn: TrackByFunction; + readonly selectedGroupPermissions$: Observable; + constructor(modalService: NgbModal, store: Store, renderer: Renderer2); + ngOnInit(): void; + getChecked(name: string): boolean; + onClickCheckbox(clickedPermission: PermissionManagement.Permission, value: any): void; + setTabCheckboxState(): void; + setGrantCheckboxState(): void; + onClickSelectThisTab(): void; + onClickSelectAll(): void; + onChangeGroup(group: PermissionManagement.Group): void; + onSubmit(): void; + openModal(): void; + setVisible(value: boolean): void; + ngOnChanges({ visible }: SimpleChanges): void; +} +export {}; diff --git a/npm/packs/ng/dist/permission-management/lib/models/index.d.ts b/npm/packs/ng/dist/permission-management/lib/models/index.d.ts new file mode 100644 index 0000000000..6a06f3adab --- /dev/null +++ b/npm/packs/ng/dist/permission-management/lib/models/index.d.ts @@ -0,0 +1 @@ +export * from './permission-management'; diff --git a/npm/packs/ng/dist/permission-management/lib/models/permission-management.d.ts b/npm/packs/ng/dist/permission-management/lib/models/permission-management.d.ts new file mode 100644 index 0000000000..3a348ccfc9 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/lib/models/permission-management.d.ts @@ -0,0 +1,31 @@ +export declare namespace PermissionManagement { + interface State { + permissionRes: Response; + } + interface Response { + entityDisplayName: string; + groups: Group[]; + } + interface Group { + name: string; + displayName: string; + permissions: Permission[]; + } + interface MinimumPermission { + name: string; + isGranted: boolean; + } + interface Permission extends MinimumPermission { + displayName: string; + parentName: string; + allowedProviders: string[]; + grantedProviders: GrantedProvider[]; + } + interface GrantedProvider { + providerName: string; + providerKey: string; + } + interface UpdateRequest { + permissions: MinimumPermission[]; + } +} diff --git a/npm/packs/ng/dist/permission-management/lib/permission-management.module.d.ts b/npm/packs/ng/dist/permission-management/lib/permission-management.module.d.ts new file mode 100644 index 0000000000..25c34182d1 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/lib/permission-management.module.d.ts @@ -0,0 +1,2 @@ +export declare class PermissionManagementModule { +} diff --git a/npm/packs/ng/dist/permission-management/lib/services/index.d.ts b/npm/packs/ng/dist/permission-management/lib/services/index.d.ts new file mode 100644 index 0000000000..47ac05d8fa --- /dev/null +++ b/npm/packs/ng/dist/permission-management/lib/services/index.d.ts @@ -0,0 +1 @@ +export * from './permission-management.service'; diff --git a/npm/packs/ng/dist/permission-management/lib/services/permission-management.service.d.ts b/npm/packs/ng/dist/permission-management/lib/services/permission-management.service.d.ts new file mode 100644 index 0000000000..6740735293 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/lib/services/permission-management.service.d.ts @@ -0,0 +1,9 @@ +import { RestService } from '@abp/ng.core'; +import { Observable } from 'rxjs'; +import { PermissionManagement } from '../models/permission-management'; +export declare class PermissionManagementService { + private rest; + constructor(rest: RestService); + getPermissions(params: PermissionManagement.GrantedProvider): Observable; + updatePermissions({ permissions, providerKey, providerName, }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable; +} diff --git a/npm/packs/ng/dist/permission-management/lib/states/index.d.ts b/npm/packs/ng/dist/permission-management/lib/states/index.d.ts new file mode 100644 index 0000000000..11166b2e3b --- /dev/null +++ b/npm/packs/ng/dist/permission-management/lib/states/index.d.ts @@ -0,0 +1 @@ +export * from "./permission-management.state"; diff --git a/npm/packs/ng/dist/permission-management/lib/states/permission-management.state.d.ts b/npm/packs/ng/dist/permission-management/lib/states/permission-management.state.d.ts new file mode 100644 index 0000000000..c0dafe9862 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/lib/states/permission-management.state.d.ts @@ -0,0 +1,12 @@ +import { StateContext } from '@ngxs/store'; +import { PermissionManagementGetPermissions, PermissionManagementUpdatePermissions } from '../actions/permission-management.actions'; +import { PermissionManagement } from '../models/permission-management'; +import { PermissionManagementService } from '../services/permission-management.service'; +export declare class PermissionManagementState { + private permissionManagementService; + static getPermissionGroups({ permissionRes }: PermissionManagement.State): PermissionManagement.Group[]; + static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string; + constructor(permissionManagementService: PermissionManagementService); + permissionManagementGet({ patchState }: StateContext, { payload }: PermissionManagementGetPermissions): import("rxjs").Observable; + permissionManagementUpdate(_: any, { payload }: PermissionManagementUpdatePermissions): import("rxjs").Observable; +} diff --git a/npm/packs/ng/dist/permission-management/package.json b/npm/packs/ng/dist/permission-management/package.json new file mode 100644 index 0000000000..a2f28f4433 --- /dev/null +++ b/npm/packs/ng/dist/permission-management/package.json @@ -0,0 +1,18 @@ +{ + "name": "@abp/ng.permission-management", + "version": "0.5.0", + "dependencies": { + "@abp/ng.theme.shared": "^0.5.0", + "tslib": "^1.9.0" + }, + "main": "bundles/abp-ng.permission-management.umd.js", + "module": "fesm5/abp-ng.permission-management.js", + "es2015": "fesm2015/abp-ng.permission-management.js", + "esm5": "esm5/abp-ng.permission-management.js", + "esm2015": "esm2015/abp-ng.permission-management.js", + "fesm5": "fesm5/abp-ng.permission-management.js", + "fesm2015": "fesm2015/abp-ng.permission-management.js", + "typings": "abp-ng.permission-management.d.ts", + "metadata": "abp-ng.permission-management.metadata.json", + "sideEffects": false +} diff --git a/npm/packs/ng/dist/permission-management/public-api.d.ts b/npm/packs/ng/dist/permission-management/public-api.d.ts new file mode 100644 index 0000000000..47632ca4cd --- /dev/null +++ b/npm/packs/ng/dist/permission-management/public-api.d.ts @@ -0,0 +1,6 @@ +export * from './lib/permission-management.module'; +export * from './lib/actions'; +export * from './lib/components'; +export * from './lib/models'; +export * from './lib/services'; +export * from './lib/states'; diff --git a/npm/packs/ng/dist/tenant-management/README.md b/npm/packs/ng/dist/tenant-management/README.md new file mode 100644 index 0000000000..0d67aa2d24 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/README.md @@ -0,0 +1 @@ +

@abp/ng.tenant-management

diff --git a/npm/packs/ng/dist/tenant-management/abp-ng.tenant-management.d.ts b/npm/packs/ng/dist/tenant-management/abp-ng.tenant-management.d.ts new file mode 100644 index 0000000000..43e518acec --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/abp-ng.tenant-management.d.ts @@ -0,0 +1,12 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './public-api'; +export { TenantManagementAdd as ɵf, TenantManagementDelete as ɵh, TenantManagementGet as ɵd, TenantManagementGetById as ɵe, TenantManagementUpdate as ɵg } from './lib/actions/tenant-management.actions'; +export { TenantsComponent as ɵa } from './lib/components/tenants/tenants.component'; +export { TenantManagement as ɵi } from './lib/models/tenant-management'; +export { TenantsResolver as ɵl } from './lib/resolvers/tenants.resolver'; +export { TenantManagementService as ɵj } from './lib/services'; +export { TenantManagementService as ɵc } from './lib/services/tenant-management.service'; +export { TenantManagementState as ɵb } from './lib/states/tenant-management.state'; +export { TenantManagementRoutingModule as ɵk } from './lib/tenant-management-routing.module'; diff --git a/npm/packs/ng/dist/tenant-management/abp-ng.tenant-management.metadata.json b/npm/packs/ng/dist/tenant-management/abp-ng.tenant-management.metadata.json new file mode 100644 index 0000000000..018fa00558 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/abp-ng.tenant-management.metadata.json @@ -0,0 +1 @@ +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/tenant-management.state"}],"metadata":{"TenantManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":14,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵb"}]]},{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":15,"character":4},{"__symbolic":"reference","module":"primeng/table","name":"TableModule","line":16,"character":4},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":17,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":18,"character":4}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"abp-tenants","template":"
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::ConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Features' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ selectedModalContent.title | abpLocalization }}\n
\n \n
\n\n
\n
\n \n
\n\n
\n \n \n
\n
\n
\n\n\n
\n
\n \n \n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n\n\n Manage Features\n\n"}]}],"members":{"datas$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":22,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"get"}]}]}],"modalWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":49,"character":3},"arguments":["modalWrapper",{"static":false}]}]}],"mTemplateConnStr":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":52,"character":3},"arguments":["mTemplateConnStr",{"static":false}]}]}],"mTemplateFeatures":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":55,"character":3},"arguments":["mTemplateFeatures",{"static":false}]}]}],"mTemplateTenant":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":58,"character":3},"arguments":["mTemplateTenant",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ConfirmationService","line":62,"character":33},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbModal","line":64,"character":26},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":65,"character":16},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":66,"character":19}]}],"openModal":[{"__symbolic":"method"}],"createTenantForm":[{"__symbolic":"method"}],"createDefaultConnectionStringForm":[{"__symbolic":"method"}],"onEditConnStr":[{"__symbolic":"method"}],"saveConnStr":[{"__symbolic":"method"}],"onManageFeatures":[{"__symbolic":"method"}],"onAdd":[{"__symbolic":"method"}],"onEdit":[{"__symbolic":"method"}],"saveTenant":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":13,"character":1},"arguments":[{"name":"TenantManagementState","defaults":{"result":{},"selectedItem":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"get":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":25,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}]}],"getById":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":36,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"delete":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":47,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵh"}]}]}],"add":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":52,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵf"}]}]}],"update":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":57,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵg"}]}]}]},"statics":{"get":{"__symbolic":"function","parameters":["result"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"result"},"member":"items"},"right":[]}}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":9,"character":28}]}],"get":[{"__symbolic":"method"}],"getById":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"getDefaultConnectionString":[{"__symbolic":"method"}],"updateDefaultConnectionString":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","members":{},"statics":{"type":"[TenantManagement] Get"}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[TenantManagement] Get By Id"}},"ɵf":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵi"},"member":"AddRequest"}]}]},"statics":{"type":"[TenantManagement] Add"}},"ɵg":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵi"},"member":"UpdateRequest"}]}]},"statics":{"type":"[TenantManagement] Update"}},"ɵh":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[TenantManagement] Delete"}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":18,"character":12},"member":"forChild"},"arguments":[[{"path":"","redirectTo":"tenants","pathMatch":"full"},{"path":"tenants","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":10,"character":15},"canActivate":[{"__symbolic":"reference","module":"@abp/ng.core","name":"AuthGuard","line":11,"character":18},{"__symbolic":"reference","module":"@abp/ng.core","name":"PermissionGuard","line":11,"character":29}],"data":{"requiredPolicy":"AbpTenantManagement.Tenants"},"children":[{"path":"","component":{"__symbolic":"reference","name":"ɵa"},"resolve":[{"__symbolic":"reference","name":"ɵl"}]}]}]]}],"exports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":19,"character":12}],"providers":[{"__symbolic":"reference","name":"ɵl"}]}]}],"members":{}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":9,"character":29}]}],"resolve":[{"__symbolic":"method"}]}}},"origins":{"TenantManagementModule":"./lib/tenant-management.module","ɵa":"./lib/components/tenants/tenants.component","ɵb":"./lib/states/tenant-management.state","ɵc":"./lib/services/tenant-management.service","ɵd":"./lib/actions/tenant-management.actions","ɵe":"./lib/actions/tenant-management.actions","ɵf":"./lib/actions/tenant-management.actions","ɵg":"./lib/actions/tenant-management.actions","ɵh":"./lib/actions/tenant-management.actions","ɵi":"./lib/models/tenant-management","ɵj":"./lib/services","ɵk":"./lib/tenant-management-routing.module","ɵl":"./lib/resolvers/tenants.resolver"},"importAs":"@abp/ng.tenant-management"} \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js b/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js new file mode 100644 index 0000000000..a407e2b913 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js @@ -0,0 +1,822 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@angular/core'), require('@ng-bootstrap/ng-bootstrap'), require('@ngxs/store'), require('primeng/table'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@angular/router')) : + typeof define === 'function' && define.amd ? define('@abp/ng.tenant-management', ['exports', '@abp/ng.core', '@abp/ng.theme.shared', '@angular/core', '@ng-bootstrap/ng-bootstrap', '@ngxs/store', 'primeng/table', '@angular/forms', 'rxjs', 'rxjs/operators', '@angular/router'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng['tenant-management'] = {}), global.ng_core, global.ng_theme_shared, global.ng.core, global.ngBootstrap, global.store, global.table, global.ng.forms, global.rxjs, global.rxjs.operators, global.ng.router)); +}(this, function (exports, ng_core, ng_theme_shared, core, ngBootstrap, store, table, forms, rxjs, operators, router) { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + 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; + return c > 3 && r && Object.defineProperty(target, key, r), r; + } + + function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TenantManagementGet = /** @class */ (function () { + function TenantManagementGet() { + } + TenantManagementGet.type = '[TenantManagement] Get'; + return TenantManagementGet; + }()); + var TenantManagementGetById = /** @class */ (function () { + function TenantManagementGetById(payload) { + this.payload = payload; + } + TenantManagementGetById.type = '[TenantManagement] Get By Id'; + return TenantManagementGetById; + }()); + var TenantManagementAdd = /** @class */ (function () { + function TenantManagementAdd(payload) { + this.payload = payload; + } + TenantManagementAdd.type = '[TenantManagement] Add'; + return TenantManagementAdd; + }()); + var TenantManagementUpdate = /** @class */ (function () { + function TenantManagementUpdate(payload) { + this.payload = payload; + } + TenantManagementUpdate.type = '[TenantManagement] Update'; + return TenantManagementUpdate; + }()); + var TenantManagementDelete = /** @class */ (function () { + function TenantManagementDelete(payload) { + this.payload = payload; + } + TenantManagementDelete.type = '[TenantManagement] Delete'; + return TenantManagementDelete; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TenantManagementService = /** @class */ (function () { + function TenantManagementService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + TenantManagementService.prototype.get = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/multi-tenancy/tenant', + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + TenantManagementService.prototype.getById = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/multi-tenancy/tenant/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + TenantManagementService.prototype.delete = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'DELETE', + url: "/api/multi-tenancy/tenant/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + TenantManagementService.prototype.add = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: "/api/multi-tenancy/tenant", + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + TenantManagementService.prototype.update = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var url = "/api/multi-tenancy/tenant/" + body.id; + delete body.id; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + TenantManagementService.prototype.getDefaultConnectionString = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var url = "/api/multi-tenancy/tenant/" + id + "/defaultConnectionString"; + /** @type {?} */ + var request = { + method: 'GET', + responseType: "text" /* Text */, + url: url, + }; + return this.rest.request(request); + }; + /** + * @param {?} payload + * @return {?} + */ + TenantManagementService.prototype.updateDefaultConnectionString = /** + * @param {?} payload + * @return {?} + */ + function (payload) { + /** @type {?} */ + var url = "/api/multi-tenancy/tenant/" + payload.id + "/defaultConnectionString"; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + params: { defaultConnectionString: payload.defaultConnectionString }, + }; + return this.rest.request(request); + }; + TenantManagementService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + TenantManagementService.ctorParameters = function () { return [ + { type: ng_core.RestService } + ]; }; + /** @nocollapse */ TenantManagementService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function TenantManagementService_Factory() { return new TenantManagementService(core.ɵɵinject(ng_core.RestService)); }, token: TenantManagementService, providedIn: "root" }); + return TenantManagementService; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TenantManagementState = /** @class */ (function () { + function TenantManagementState(tenantManagementService) { + this.tenantManagementService = tenantManagementService; + } + /** + * @param {?} __0 + * @return {?} + */ + TenantManagementState.get = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var result = _a.result; + return result.items || []; + }; + /** + * @param {?} __0 + * @return {?} + */ + TenantManagementState.prototype.get = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var patchState = _a.patchState; + return this.tenantManagementService.get().pipe(operators.tap((/** + * @param {?} result + * @return {?} + */ + function (result) { + return patchState({ + result: result, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.getById = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.tenantManagementService.getById(payload).pipe(operators.tap((/** + * @param {?} selectedItem + * @return {?} + */ + function (selectedItem) { + return patchState({ + selectedItem: selectedItem, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.delete = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.tenantManagementService.delete(payload).pipe(operators.switchMap((/** + * @return {?} + */ + function () { return dispatch(new TenantManagementGet()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.add = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.tenantManagementService.add(payload).pipe(operators.switchMap((/** + * @return {?} + */ + function () { return dispatch(new TenantManagementGet()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.update = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var _this = this; + var dispatch = _a.dispatch, getState = _a.getState; + var payload = _b.payload; + return dispatch(new TenantManagementGetById(payload.id)).pipe(operators.switchMap((/** + * @return {?} + */ + function () { return _this.tenantManagementService.update(__assign({}, getState().selectedItem, payload)); })), operators.switchMap((/** + * @return {?} + */ + function () { return dispatch(new TenantManagementGet()); }))); + }; + __decorate([ + store.Action(TenantManagementGet), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "get", null); + __decorate([ + store.Action(TenantManagementGetById), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementGetById]), + __metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "getById", null); + __decorate([ + store.Action(TenantManagementDelete), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementDelete]), + __metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "delete", null); + __decorate([ + store.Action(TenantManagementAdd), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementAdd]), + __metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "add", null); + __decorate([ + store.Action(TenantManagementUpdate), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementUpdate]), + __metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "update", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) + ], TenantManagementState, "get", null); + TenantManagementState = __decorate([ + store.State({ + name: 'TenantManagementState', + defaults: (/** @type {?} */ ({ result: {}, selectedItem: {} })), + }), + __metadata("design:paramtypes", [TenantManagementService]) + ], TenantManagementState); + return TenantManagementState; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TenantsComponent = /** @class */ (function () { + function TenantsComponent(confirmationService, tenantService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.tenantService = tenantService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + } + Object.defineProperty(TenantsComponent.prototype, "showInput", { + get: /** + * @return {?} + */ + function () { + return !this.defaultConnectionStringForm.get('useSharedDatabase').value; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(TenantsComponent.prototype, "connectionString", { + get: /** + * @return {?} + */ + function () { + return this.defaultConnectionStringForm.get('defaultConnectionString').value; + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + TenantsComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.modalService.open(this.modalWrapper); + }; + /** + * @private + * @return {?} + */ + TenantsComponent.prototype.createTenantForm = /** + * @private + * @return {?} + */ + function () { + this.tenantForm = this.fb.group({ + name: [this.selected.name || '', [forms.Validators.required, forms.Validators.maxLength(256)]], + }); + }; + /** + * @private + * @return {?} + */ + TenantsComponent.prototype.createDefaultConnectionStringForm = /** + * @private + * @return {?} + */ + function () { + this.defaultConnectionStringForm = this.fb.group({ + useSharedDatabase: this.useSharedDatabase, + defaultConnectionString: this.defaultConnectionString || '', + }); + }; + /** + * @param {?} id + * @return {?} + */ + TenantsComponent.prototype.onEditConnStr = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateConnStr, + onSave: (/** + * @return {?} + */ + function () { return _this.saveConnStr; }), + }; + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe(operators.pluck('TenantManagementState', 'selectedItem'), operators.switchMap((/** + * @param {?} selected + * @return {?} + */ + function (selected) { + _this.selected = selected; + return _this.tenantService.getDefaultConnectionString(id); + }))) + .subscribe((/** + * @param {?} fetchedConnectionString + * @return {?} + */ + function (fetchedConnectionString) { + _this.useSharedDatabase = fetchedConnectionString ? false : true; + _this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : ''; + _this.createDefaultConnectionStringForm(); + _this.openModal(); + })); + }; + /** + * @return {?} + */ + TenantsComponent.prototype.saveConnStr = /** + * @return {?} + */ + function () { + var _this = this; + this.tenantService + .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString }) + .pipe(operators.take(1)) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @return {?} + */ + TenantsComponent.prototype.onManageFeatures = /** + * @param {?} id + * @return {?} + */ + function (id) { + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateFeatures, + onSave: (/** + * @return {?} + */ + function () { }), + }; + this.openModal(); + }; + /** + * @return {?} + */ + TenantsComponent.prototype.onAdd = /** + * @return {?} + */ + function () { + var _this = this; + this.selected = (/** @type {?} */ ({})); + this.createTenantForm(); + this.openModal(); + this.selectedModalContent = { + title: 'AbpTenantManagement::NewTenant', + template: this.mTemplateTenant, + onSave: (/** + * @return {?} + */ + function () { return _this.saveTenant; }), + }; + }; + /** + * @param {?} id + * @return {?} + */ + TenantsComponent.prototype.onEdit = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe(operators.pluck('TenantManagementState', 'selectedItem')) + .subscribe((/** + * @param {?} selected + * @return {?} + */ + function (selected) { + _this.selected = selected; + _this.selectedModalContent = { + title: 'AbpTenantManagement::Edit', + template: _this.mTemplateTenant, + onSave: (/** + * @return {?} + */ + function () { return _this.saveTenant; }), + }; + _this.createTenantForm(); + _this.openModal(); + })); + }; + /** + * @return {?} + */ + TenantsComponent.prototype.saveTenant = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.tenantForm.valid) + return; + this.store + .dispatch(this.selected.id + ? new TenantManagementUpdate(__assign({}, this.tenantForm.value, { id: this.selected.id })) + : new TenantManagementAdd(this.tenantForm.value)) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @param {?} name + * @return {?} + */ + TenantsComponent.prototype.delete = /** + * @param {?} id + * @param {?} name + * @return {?} + */ + function (id, name) { + var _this = this; + this.confirmationService + .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + if (status === "confirm" /* confirm */) { + _this.store.dispatch(new TenantManagementDelete(id)); + } + })); + }; + TenantsComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-tenants', + template: "
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::ConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Features' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ selectedModalContent.title | abpLocalization }}\n
\n \n
\n\n
\n
\n \n
\n\n
\n \n \n
\n
\n
\n\n\n
\n
\n \n \n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n\n\n Manage Features\n\n" + }] } + ]; + /** @nocollapse */ + TenantsComponent.ctorParameters = function () { return [ + { type: ng_theme_shared.ConfirmationService }, + { type: TenantManagementService }, + { type: ngBootstrap.NgbModal }, + { type: forms.FormBuilder }, + { type: store.Store } + ]; }; + TenantsComponent.propDecorators = { + modalWrapper: [{ type: core.ViewChild, args: ['modalWrapper', { static: false },] }], + mTemplateConnStr: [{ type: core.ViewChild, args: ['mTemplateConnStr', { static: false },] }], + mTemplateFeatures: [{ type: core.ViewChild, args: ['mTemplateFeatures', { static: false },] }], + mTemplateTenant: [{ type: core.ViewChild, args: ['mTemplateTenant', { static: false },] }] + }; + __decorate([ + store.Select(TenantManagementState.get), + __metadata("design:type", rxjs.Observable) + ], TenantsComponent.prototype, "datas$", void 0); + return TenantsComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TenantsResolver = /** @class */ (function () { + function TenantsResolver(store) { + this.store = store; + } + /** + * @return {?} + */ + TenantsResolver.prototype.resolve = /** + * @return {?} + */ + function () { + /** @type {?} */ + var data = this.store.selectSnapshot(TenantManagementState.get); + return data && data.length + ? null + : this.store.dispatch(new TenantManagementGet()); + }; + TenantsResolver.decorators = [ + { type: core.Injectable } + ]; + /** @nocollapse */ + TenantsResolver.ctorParameters = function () { return [ + { type: store.Store } + ]; }; + return TenantsResolver; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ɵ0 = { requiredPolicy: 'AbpTenantManagement.Tenants' }; + /** @type {?} */ + var routes = [ + { path: '', redirectTo: 'tenants', pathMatch: 'full' }, + { + path: 'tenants', + component: ng_core.DynamicLayoutComponent, + canActivate: [ng_core.AuthGuard, ng_core.PermissionGuard], + data: ɵ0, + children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }], + }, + ]; + var TenantManagementRoutingModule = /** @class */ (function () { + function TenantManagementRoutingModule() { + } + TenantManagementRoutingModule.decorators = [ + { type: core.NgModule, args: [{ + imports: [router.RouterModule.forChild(routes)], + exports: [router.RouterModule], + providers: [TenantsResolver], + },] } + ]; + return TenantManagementRoutingModule; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TenantManagementModule = /** @class */ (function () { + function TenantManagementModule() { + } + TenantManagementModule.decorators = [ + { type: core.NgModule, args: [{ + declarations: [TenantsComponent], + imports: [ + TenantManagementRoutingModule, + store.NgxsModule.forFeature([TenantManagementState]), + ng_core.CoreModule, + table.TableModule, + ng_theme_shared.ThemeSharedModule, + ngBootstrap.NgbDropdownModule, + ], + },] } + ]; + return TenantManagementModule; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var TENANT_MANAGEMENT_ROUTES = (/** @type {?} */ ([ + { + name: 'TenantManagement', + path: 'tenant-management', + parentName: 'Administration', + layout: "application" /* application */, + children: [ + { + path: 'tenants', + name: 'Tenants', + order: 1, + requiredPolicy: 'AbpTenantManagement.Tenants', + parentName: 'TenantManagement', + }, + ], + }, + ])); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TenantManagement; + (function (TenantManagement) { + /** + * @record + */ + function State() { } + TenantManagement.State = State; + /** + * @record + */ + function Item() { } + TenantManagement.Item = Item; + /** + * @record + */ + function AddRequest() { } + TenantManagement.AddRequest = AddRequest; + /** + * @record + */ + function UpdateRequest() { } + TenantManagement.UpdateRequest = UpdateRequest; + /** + * @record + */ + function DefaultConnectionStringRequest() { } + TenantManagement.DefaultConnectionStringRequest = DefaultConnectionStringRequest; + })(TenantManagement || (TenantManagement = {})); + + exports.TENANT_MANAGEMENT_ROUTES = TENANT_MANAGEMENT_ROUTES; + exports.TenantManagementAdd = TenantManagementAdd; + exports.TenantManagementDelete = TenantManagementDelete; + exports.TenantManagementGet = TenantManagementGet; + exports.TenantManagementGetById = TenantManagementGetById; + exports.TenantManagementModule = TenantManagementModule; + exports.TenantManagementService = TenantManagementService; + exports.TenantManagementState = TenantManagementState; + exports.TenantManagementUpdate = TenantManagementUpdate; + exports.TenantsComponent = TenantsComponent; + exports.TenantsResolver = TenantsResolver; + exports.ɵa = TenantsComponent; + exports.ɵb = TenantManagementState; + exports.ɵc = TenantManagementService; + exports.ɵd = TenantManagementGet; + exports.ɵe = TenantManagementGetById; + exports.ɵf = TenantManagementAdd; + exports.ɵg = TenantManagementUpdate; + exports.ɵh = TenantManagementDelete; + exports.ɵj = TenantManagementService; + exports.ɵk = TenantManagementRoutingModule; + exports.ɵl = TenantsResolver; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=abp-ng.tenant-management.umd.js.map diff --git a/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js.map b/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js.map new file mode 100644 index 0000000000..8c99f93ed0 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.tenant-management.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { TenantManagement } from '../models/tenant-management';\n\nexport class TenantManagementGet {\n static readonly type = '[TenantManagement] Get';\n}\n\nexport class TenantManagementGetById {\n static readonly type = '[TenantManagement] Get By Id';\n constructor(public payload: string) {}\n}\n\nexport class TenantManagementAdd {\n static readonly type = '[TenantManagement] Add';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class TenantManagementUpdate {\n static readonly type = '[TenantManagement] Update';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class TenantManagementDelete {\n static readonly type = '[TenantManagement] Delete';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenant',\n };\n\n return this.rest.request(request);\n }\n\n getById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenant/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n delete(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenant/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n add(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenant`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n update(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenant/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenant/${id}/defaultConnectionString`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenant/${payload.id}/defaultConnectionString`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n TenantManagementAdd,\n TenantManagementDelete,\n TenantManagementGet,\n TenantManagementGetById,\n TenantManagementUpdate,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(TenantManagementGet)\n get({ patchState }: StateContext) {\n return this.tenantManagementService.get().pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(TenantManagementGetById)\n getById({ patchState }: StateContext, { payload }: TenantManagementGetById) {\n return this.tenantManagementService.getById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(TenantManagementDelete)\n delete({ dispatch }: StateContext, { payload }: TenantManagementDelete) {\n return this.tenantManagementService.delete(payload).pipe(switchMap(() => dispatch(new TenantManagementGet())));\n }\n\n @Action(TenantManagementAdd)\n add({ dispatch }: StateContext, { payload }: TenantManagementAdd) {\n return this.tenantManagementService.add(payload).pipe(switchMap(() => dispatch(new TenantManagementGet())));\n }\n\n @Action(TenantManagementUpdate)\n update({ dispatch, getState }: StateContext, { payload }: TenantManagementUpdate) {\n return dispatch(new TenantManagementGetById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.update({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new TenantManagementGet())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { pluck, switchMap, take } from 'rxjs/operators';\nimport {\n TenantManagementAdd,\n TenantManagementDelete,\n TenantManagementGetById,\n TenantManagementUpdate,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n datas$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n useSharedDatabase: boolean;\n\n selectedModalContent: {\n title: string;\n template: TemplateRef;\n onSave: () => void;\n };\n\n get showInput(): boolean {\n return !this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('modalWrapper', { static: false })\n modalWrapper: TemplateRef;\n\n @ViewChild('mTemplateConnStr', { static: false })\n mTemplateConnStr: TemplateRef;\n\n @ViewChild('mTemplateFeatures', { static: false })\n mTemplateFeatures: TemplateRef;\n\n @ViewChild('mTemplateTenant', { static: false })\n mTemplateTenant: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n openModal() {\n this.modalService.open(this.modalWrapper);\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this.useSharedDatabase,\n defaultConnectionString: this.defaultConnectionString || '',\n });\n }\n\n onEditConnStr(id: string) {\n this.selectedModalContent = {\n title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant',\n template: this.mTemplateConnStr,\n onSave: () => this.saveConnStr,\n };\n this.store\n .dispatch(new TenantManagementGetById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this.useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal();\n });\n }\n\n saveConnStr() {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(take(1))\n .subscribe(() => this.modalService.dismissAll());\n }\n\n onManageFeatures(id: string) {\n this.selectedModalContent = {\n title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant',\n template: this.mTemplateFeatures,\n onSave: () => {},\n };\n this.openModal();\n }\n\n onAdd() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal();\n this.selectedModalContent = {\n title: 'AbpTenantManagement::NewTenant',\n template: this.mTemplateTenant,\n onSave: () => this.saveTenant,\n };\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new TenantManagementGetById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.selectedModalContent = {\n title: 'AbpTenantManagement::Edit',\n template: this.mTemplateTenant,\n onSave: () => this.saveTenant,\n };\n this.createTenantForm();\n this.openModal();\n });\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n\n this.store\n .dispatch(\n this.selected.id\n ? new TenantManagementUpdate({ ...this.tenantForm.value, id: this.selected.id })\n : new TenantManagementAdd(this.tenantForm.value),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new TenantManagementDelete(id));\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { TenantManagementGet } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length\n ? null \n : this.store.dispatch(new TenantManagementGet());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n ],\n})\nexport class TenantManagementModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = [\n {\n name: 'TenantManagement',\n path: 'tenant-management',\n parentName: 'Administration',\n layout: eLayoutType.application,\n children: [\n {\n path: 'tenants',\n name: 'Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n parentName: 'TenantManagement',\n },\n ],\n },\n] as ABP.FullRoute[];\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n"],"names":["Injectable","RestService","tap","switchMap","tslib_1.__decorate","Action","Selector","State","Validators","pluck","take","Component","ConfirmationService","NgbModal","FormBuilder","Store","ViewChild","Select","Observable","DynamicLayoutComponent","AuthGuard","PermissionGuard","NgModule","RouterModule","NgxsModule","CoreModule","TableModule","ThemeSharedModule","NgbDropdownModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js b/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js new file mode 100644 index 0000000000..af1b2e38ab --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@angular/core"),require("@ng-bootstrap/ng-bootstrap"),require("@ngxs/store"),require("primeng/table"),require("@angular/forms"),require("rxjs"),require("rxjs/operators"),require("@angular/router")):"function"==typeof define&&define.amd?define("@abp/ng.tenant-management",["exports","@abp/ng.core","@abp/ng.theme.shared","@angular/core","@ng-bootstrap/ng-bootstrap","@ngxs/store","primeng/table","@angular/forms","rxjs","rxjs/operators","@angular/router"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["tenant-management"]={}),e.ng_core,e.ng_theme_shared,e.ng.core,e.ngBootstrap,e.store,e.table,e.ng.forms,e.rxjs,e.rxjs.operators,e.ng.router)}(this,function(e,t,n,a,o,r,i,s,p,l,c){"use strict";var d=function(){return(d=Object.assign||function(e){for(var t,n=1,a=arguments.length;n=0;s--)(o=e[s])&&(i=(r<3?o(i):r>3?o(t,n,i):o(t,n))||i);return r>3&&i&&Object.defineProperty(t,n,i),i}function m(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var g,f=function(){function e(){}return e.type="[TenantManagement] Get",e}(),b=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Get By Id",e}(),h=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Add",e}(),y=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Update",e}(),v=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Delete",e}(),T=function(){function e(e){this.rest=e}return e.prototype.get=function(){return this.rest.request({method:"GET",url:"/api/multi-tenancy/tenant"})},e.prototype.getById=function(e){var t={method:"GET",url:"/api/multi-tenancy/tenant/"+e};return this.rest.request(t)},e.prototype.delete=function(e){var t={method:"DELETE",url:"/api/multi-tenancy/tenant/"+e};return this.rest.request(t)},e.prototype.add=function(e){var t={method:"POST",url:"/api/multi-tenancy/tenant",body:e};return this.rest.request(t)},e.prototype.update=function(e){var t="/api/multi-tenancy/tenant/"+e.id;delete e.id;var n={method:"PUT",url:t,body:e};return this.rest.request(n)},e.prototype.getDefaultConnectionString=function(e){var t={method:"GET",responseType:"text",url:"/api/multi-tenancy/tenant/"+e+"/defaultConnectionString"};return this.rest.request(t)},e.prototype.updateDefaultConnectionString=function(e){var t={method:"PUT",url:"/api/multi-tenancy/tenant/"+e.id+"/defaultConnectionString",params:{defaultConnectionString:e.defaultConnectionString}};return this.rest.request(t)},e.decorators=[{type:a.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:t.RestService}]},e.ngInjectableDef=a.ɵɵdefineInjectable({factory:function(){return new e(a.ɵɵinject(t.RestService))},token:e,providedIn:"root"}),e}(),M=function(){function e(e){this.tenantManagementService=e}return e.get=function(e){return e.result.items||[]},e.prototype.get=function(e){var t=e.patchState;return this.tenantManagementService.get().pipe(l.tap(function(e){return t({result:e})}))},e.prototype.getById=function(e,t){var n=e.patchState,a=t.payload;return this.tenantManagementService.getById(a).pipe(l.tap(function(e){return n({selectedItem:e})}))},e.prototype.delete=function(e,t){var n=e.dispatch,a=t.payload;return this.tenantManagementService.delete(a).pipe(l.switchMap(function(){return n(new f)}))},e.prototype.add=function(e,t){var n=e.dispatch,a=t.payload;return this.tenantManagementService.add(a).pipe(l.switchMap(function(){return n(new f)}))},e.prototype.update=function(e,t){var n=this,a=e.dispatch,o=e.getState,r=t.payload;return a(new b(r.id)).pipe(l.switchMap(function(){return n.tenantManagementService.update(d({},o().selectedItem,r))}),l.switchMap(function(){return a(new f)}))},u([r.Action(f),m("design:type",Function),m("design:paramtypes",[Object]),m("design:returntype",void 0)],e.prototype,"get",null),u([r.Action(b),m("design:type",Function),m("design:paramtypes",[Object,b]),m("design:returntype",void 0)],e.prototype,"getById",null),u([r.Action(v),m("design:type",Function),m("design:paramtypes",[Object,v]),m("design:returntype",void 0)],e.prototype,"delete",null),u([r.Action(h),m("design:type",Function),m("design:paramtypes",[Object,h]),m("design:returntype",void 0)],e.prototype,"add",null),u([r.Action(y),m("design:type",Function),m("design:paramtypes",[Object,y]),m("design:returntype",void 0)],e.prototype,"update",null),u([r.Selector(),m("design:type",Function),m("design:paramtypes",[Object]),m("design:returntype",Array)],e,"get",null),e=u([r.State({name:"TenantManagementState",defaults:{result:{},selectedItem:{}}}),m("design:paramtypes",[T])],e)}(),S=function(){function e(e,t,n,a,o){this.confirmationService=e,this.tenantService=t,this.modalService=n,this.fb=a,this.store=o}return Object.defineProperty(e.prototype,"showInput",{get:function(){return!this.defaultConnectionStringForm.get("useSharedDatabase").value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"connectionString",{get:function(){return this.defaultConnectionStringForm.get("defaultConnectionString").value},enumerable:!0,configurable:!0}),e.prototype.openModal=function(){this.modalService.open(this.modalWrapper)},e.prototype.createTenantForm=function(){this.tenantForm=this.fb.group({name:[this.selected.name||"",[s.Validators.required,s.Validators.maxLength(256)]]})},e.prototype.createDefaultConnectionStringForm=function(){this.defaultConnectionStringForm=this.fb.group({useSharedDatabase:this.useSharedDatabase,defaultConnectionString:this.defaultConnectionString||""})},e.prototype.onEditConnStr=function(e){var t=this;this.selectedModalContent={title:this.selected&&this.selected.id?"AbpTenantManagement::Edit":"AbpTenantManagement::NewTenant",template:this.mTemplateConnStr,onSave:function(){return t.saveConnStr}},this.store.dispatch(new b(e)).pipe(l.pluck("TenantManagementState","selectedItem"),l.switchMap(function(n){return t.selected=n,t.tenantService.getDefaultConnectionString(e)})).subscribe(function(e){t.useSharedDatabase=!e,t.defaultConnectionString=e||"",t.createDefaultConnectionStringForm(),t.openModal()})},e.prototype.saveConnStr=function(){var e=this;this.tenantService.updateDefaultConnectionString({id:this.selected.id,defaultConnectionString:this.connectionString}).pipe(l.take(1)).subscribe(function(){return e.modalService.dismissAll()})},e.prototype.onManageFeatures=function(e){this.selectedModalContent={title:this.selected&&this.selected.id?"AbpTenantManagement::Edit":"AbpTenantManagement::NewTenant",template:this.mTemplateFeatures,onSave:function(){}},this.openModal()},e.prototype.onAdd=function(){var e=this;this.selected={},this.createTenantForm(),this.openModal(),this.selectedModalContent={title:"AbpTenantManagement::NewTenant",template:this.mTemplateTenant,onSave:function(){return e.saveTenant}}},e.prototype.onEdit=function(e){var t=this;this.store.dispatch(new b(e)).pipe(l.pluck("TenantManagementState","selectedItem")).subscribe(function(e){t.selected=e,t.selectedModalContent={title:"AbpTenantManagement::Edit",template:t.mTemplateTenant,onSave:function(){return t.saveTenant}},t.createTenantForm(),t.openModal()})},e.prototype.saveTenant=function(){var e=this;this.tenantForm.valid&&this.store.dispatch(this.selected.id?new y(d({},this.tenantForm.value,{id:this.selected.id})):new h(this.tenantForm.value)).subscribe(function(){return e.modalService.dismissAll()})},e.prototype.delete=function(e,t){var n=this;this.confirmationService.warn("AbpTenantManagement::TenantDeletionConfirmationMessage","AbpTenantManagement::AreYouSure",{messageLocalizationParams:[t]}).subscribe(function(t){"confirm"===t&&n.store.dispatch(new v(e))})},e.decorators=[{type:a.Component,args:[{selector:"abp-tenants",template:'
\n
\n
\n
\n
\n {{ \'AbpTenantManagement::Tenants\' | abpLocalization }}\n
\n
\n
\n \n \n {{ \'AbpTenantManagement::NewTenant\' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ \'AbpTenantManagement::Actions\' | abpLocalization }}\n {{ \'AbpTenantManagement::TenantName\' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ \'AbpTenantManagement::Actions\' | abpLocalization }}\n \n
\n \n {{ \'AbpTenantManagement::Edit\' | abpLocalization }}\n \n \n {{ \'AbpTenantManagement::ConnectionStrings\' | abpLocalization }}\n \n \n {{ \'AbpTenantManagement::Features\' | abpLocalization }}\n \n \n {{ \'AbpTenantManagement::Delete\' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n \n\n
\n \n\n \n
\n
\n\n\n
\n
\n \n \n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n\n\n Manage Features\n\n'}]}],e.ctorParameters=function(){return[{type:n.ConfirmationService},{type:T},{type:o.NgbModal},{type:s.FormBuilder},{type:r.Store}]},e.propDecorators={modalWrapper:[{type:a.ViewChild,args:["modalWrapper",{static:!1}]}],mTemplateConnStr:[{type:a.ViewChild,args:["mTemplateConnStr",{static:!1}]}],mTemplateFeatures:[{type:a.ViewChild,args:["mTemplateFeatures",{static:!1}]}],mTemplateTenant:[{type:a.ViewChild,args:["mTemplateTenant",{static:!1}]}]},u([r.Select(M.get),m("design:type",p.Observable)],e.prototype,"datas$",void 0),e}(),C=function(){function e(e){this.store=e}return e.prototype.resolve=function(){var e=this.store.selectSnapshot(M.get);return e&&e.length?null:this.store.dispatch(new f)},e.decorators=[{type:a.Injectable}],e.ctorParameters=function(){return[{type:r.Store}]},e}(),A=[{path:"",redirectTo:"tenants",pathMatch:"full"},{path:"tenants",component:t.DynamicLayoutComponent,canActivate:[t.AuthGuard,t.PermissionGuard],data:{requiredPolicy:"AbpTenantManagement.Tenants"},children:[{path:"",component:S,resolve:[C]}]}],w=function(){function e(){}return e.decorators=[{type:a.NgModule,args:[{imports:[c.RouterModule.forChild(A)],exports:[c.RouterModule],providers:[C]}]}],e}(),D=function(){function e(){}return e.decorators=[{type:a.NgModule,args:[{declarations:[S],imports:[w,r.NgxsModule.forFeature([M]),t.CoreModule,i.TableModule,n.ThemeSharedModule,o.NgbDropdownModule]}]}],e}();!function(e){e.State=function(){},e.Item=function(){},e.AddRequest=function(){},e.UpdateRequest=function(){},e.DefaultConnectionStringRequest=function(){}}(g||(g={})),e.TENANT_MANAGEMENT_ROUTES=[{name:"TenantManagement",path:"tenant-management",parentName:"Administration",layout:"application",children:[{path:"tenants",name:"Tenants",order:1,requiredPolicy:"AbpTenantManagement.Tenants",parentName:"TenantManagement"}]}],e.TenantManagementAdd=h,e.TenantManagementDelete=v,e.TenantManagementGet=f,e.TenantManagementGetById=b,e.TenantManagementModule=D,e.TenantManagementService=T,e.TenantManagementState=M,e.TenantManagementUpdate=y,e.TenantsComponent=S,e.TenantsResolver=C,e.ɵa=S,e.ɵb=M,e.ɵc=T,e.ɵd=f,e.ɵe=b,e.ɵf=h,e.ɵg=y,e.ɵh=v,e.ɵj=T,e.ɵk=w,e.ɵl=C,Object.defineProperty(e,"__esModule",{value:!0})}); +//# sourceMappingURL=abp-ng.tenant-management.umd.min.js.map \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js.map b/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js.map new file mode 100644 index 0000000000..e18651d732 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","TenantManagement","TenantManagementGet","type","TenantManagementGetById","payload","TenantManagementAdd","TenantManagementUpdate","TenantManagementDelete","TenantManagementService","rest","get","request","method","url","getById","id","delete","add","body","update","getDefaultConnectionString","responseType","updateDefaultConnectionString","params","defaultConnectionString","Injectable","args","providedIn","RestService","TenantManagementState","tenantManagementService","_a","result","items","patchState","pipe","tap","_b","selectedItem","dispatch","switchMap","_this","getState","tslib_1.__decorate","Action","Selector","State","name","defaults","TenantsComponent","confirmationService","tenantService","modalService","fb","store","defaultConnectionStringForm","value","openModal","open","modalWrapper","createTenantForm","tenantForm","group","selected","Validators","required","maxLength","createDefaultConnectionStringForm","useSharedDatabase","onEditConnStr","selectedModalContent","title","template","mTemplateConnStr","onSave","saveConnStr","pluck","subscribe","fetchedConnectionString","connectionString","take","dismissAll","onManageFeatures","mTemplateFeatures","onAdd","mTemplateTenant","saveTenant","onEdit","valid","warn","messageLocalizationParams","status","Component","selector","ConfirmationService","NgbModal","FormBuilder","Store","ViewChild","static","Select","Observable","TenantsResolver","resolve","data","selectSnapshot","routes","path","redirectTo","pathMatch","component","DynamicLayoutComponent","canActivate","AuthGuard","PermissionGuard","requiredPolicy","children","TenantManagementRoutingModule","NgModule","imports","RouterModule","forChild","exports","providers","TenantManagementModule","declarations","NgxsModule","forFeature","CoreModule","TableModule","ThemeSharedModule","NgbDropdownModule","parentName","layout","order"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { TenantManagement } from '../models/tenant-management';\n\nexport class TenantManagementGet {\n static readonly type = '[TenantManagement] Get';\n}\n\nexport class TenantManagementGetById {\n static readonly type = '[TenantManagement] Get By Id';\n constructor(public payload: string) {}\n}\n\nexport class TenantManagementAdd {\n static readonly type = '[TenantManagement] Add';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class TenantManagementUpdate {\n static readonly type = '[TenantManagement] Update';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class TenantManagementDelete {\n static readonly type = '[TenantManagement] Delete';\n constructor(public payload: string) {}\n}\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenant',\n };\n\n return this.rest.request(request);\n }\n\n getById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenant/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n delete(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenant/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n add(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenant`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n update(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenant/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenant/${id}/defaultConnectionString`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenant/${payload.id}/defaultConnectionString`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n TenantManagementAdd,\n TenantManagementDelete,\n TenantManagementGet,\n TenantManagementGetById,\n TenantManagementUpdate,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(TenantManagementGet)\n get({ patchState }: StateContext) {\n return this.tenantManagementService.get().pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(TenantManagementGetById)\n getById({ patchState }: StateContext, { payload }: TenantManagementGetById) {\n return this.tenantManagementService.getById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(TenantManagementDelete)\n delete({ dispatch }: StateContext, { payload }: TenantManagementDelete) {\n return this.tenantManagementService.delete(payload).pipe(switchMap(() => dispatch(new TenantManagementGet())));\n }\n\n @Action(TenantManagementAdd)\n add({ dispatch }: StateContext, { payload }: TenantManagementAdd) {\n return this.tenantManagementService.add(payload).pipe(switchMap(() => dispatch(new TenantManagementGet())));\n }\n\n @Action(TenantManagementUpdate)\n update({ dispatch, getState }: StateContext, { payload }: TenantManagementUpdate) {\n return dispatch(new TenantManagementGetById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.update({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new TenantManagementGet())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { pluck, switchMap, take } from 'rxjs/operators';\nimport {\n TenantManagementAdd,\n TenantManagementDelete,\n TenantManagementGetById,\n TenantManagementUpdate,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n datas$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n useSharedDatabase: boolean;\n\n selectedModalContent: {\n title: string;\n template: TemplateRef;\n onSave: () => void;\n };\n\n get showInput(): boolean {\n return !this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('modalWrapper', { static: false })\n modalWrapper: TemplateRef;\n\n @ViewChild('mTemplateConnStr', { static: false })\n mTemplateConnStr: TemplateRef;\n\n @ViewChild('mTemplateFeatures', { static: false })\n mTemplateFeatures: TemplateRef;\n\n @ViewChild('mTemplateTenant', { static: false })\n mTemplateTenant: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n openModal() {\n this.modalService.open(this.modalWrapper);\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this.useSharedDatabase,\n defaultConnectionString: this.defaultConnectionString || '',\n });\n }\n\n onEditConnStr(id: string) {\n this.selectedModalContent = {\n title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant',\n template: this.mTemplateConnStr,\n onSave: () => this.saveConnStr,\n };\n this.store\n .dispatch(new TenantManagementGetById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this.useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal();\n });\n }\n\n saveConnStr() {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(take(1))\n .subscribe(() => this.modalService.dismissAll());\n }\n\n onManageFeatures(id: string) {\n this.selectedModalContent = {\n title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant',\n template: this.mTemplateFeatures,\n onSave: () => {},\n };\n this.openModal();\n }\n\n onAdd() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal();\n this.selectedModalContent = {\n title: 'AbpTenantManagement::NewTenant',\n template: this.mTemplateTenant,\n onSave: () => this.saveTenant,\n };\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new TenantManagementGetById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.selectedModalContent = {\n title: 'AbpTenantManagement::Edit',\n template: this.mTemplateTenant,\n onSave: () => this.saveTenant,\n };\n this.createTenantForm();\n this.openModal();\n });\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n\n this.store\n .dispatch(\n this.selected.id\n ? new TenantManagementUpdate({ ...this.tenantForm.value, id: this.selected.id })\n : new TenantManagementAdd(this.tenantForm.value),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new TenantManagementDelete(id));\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { TenantManagementGet } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length\n ? null \n : this.store.dispatch(new TenantManagementGet());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n ],\n})\nexport class TenantManagementModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = [\n {\n name: 'TenantManagement',\n path: 'tenant-management',\n parentName: 'Administration',\n layout: eLayoutType.application,\n children: [\n {\n path: 'tenants',\n name: 'Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n parentName: 'TenantManagement',\n },\n ],\n },\n] as ABP.FullRoute[];\n"]} \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/abp-ng.tenant-management.js b/npm/packs/ng/dist/tenant-management/esm2015/abp-ng.tenant-management.js new file mode 100644 index 0000000000..7e4d6aa3c7 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/abp-ng.tenant-management.js @@ -0,0 +1,16 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { TenantManagementModule, TenantManagementGet, TenantManagementGetById, TenantManagementAdd, TenantManagementUpdate, TenantManagementDelete, TenantsComponent, TENANT_MANAGEMENT_ROUTES, TenantsResolver, TenantManagementService, TenantManagementState } from './public-api'; +export { TenantManagementAdd as ɵf, TenantManagementDelete as ɵh, TenantManagementGet as ɵd, TenantManagementGetById as ɵe, TenantManagementUpdate as ɵg } from './lib/actions/tenant-management.actions'; +export { TenantsComponent as ɵa } from './lib/components/tenants/tenants.component'; +export { TenantsResolver as ɵl } from './lib/resolvers/tenants.resolver'; +export { TenantManagementService as ɵj } from './lib/services'; +export { TenantManagementService as ɵc } from './lib/services/tenant-management.service'; +export { TenantManagementState as ɵb } from './lib/states/tenant-management.state'; +export { TenantManagementRoutingModule as ɵk } from './lib/tenant-management-routing.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRlbmFudC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImFicC1uZy50ZW5hbnQtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsdVFBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDcE0sT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBRWxGLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RixPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDakYsT0FBTyxFQUFDLDZCQUE2QixJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRBZGQgYXMgybVmLFRlbmFudE1hbmFnZW1lbnREZWxldGUgYXMgybVoLFRlbmFudE1hbmFnZW1lbnRHZXQgYXMgybVkLFRlbmFudE1hbmFnZW1lbnRHZXRCeUlkIGFzIMm1ZSxUZW5hbnRNYW5hZ2VtZW50VXBkYXRlIGFzIMm1Z30gZnJvbSAnLi9saWIvYWN0aW9ucy90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zJztcbmV4cG9ydCB7VGVuYW50c0NvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudCc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnQgYXMgybVpfSBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50LW1hbmFnZW1lbnQnO1xuZXhwb3J0IHtUZW5hbnRzUmVzb2x2ZXIgYXMgybVsfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdGVuYW50cy5yZXNvbHZlcic7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRTZXJ2aWNlIGFzIMm1an0gZnJvbSAnLi9saWIvc2VydmljZXMnO1xuZXhwb3J0IHtUZW5hbnRNYW5hZ2VtZW50U2VydmljZSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2VzL3RlbmFudC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuZXhwb3J0IHtUZW5hbnRNYW5hZ2VtZW50U3RhdGUgYXMgybVifSBmcm9tICcuL2xpYi9zdGF0ZXMvdGVuYW50LW1hbmFnZW1lbnQuc3RhdGUnO1xuZXhwb3J0IHtUZW5hbnRNYW5hZ2VtZW50Um91dGluZ01vZHVsZSBhcyDJtWt9IGZyb20gJy4vbGliL3RlbmFudC1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlJzsiXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/actions/index.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/actions/index.js new file mode 100644 index 0000000000..02fc8c5fbe --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/actions/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantManagementGet, TenantManagementGetById, TenantManagementAdd, TenantManagementUpdate, TenantManagementDelete } from './tenant-management.actions'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGtJQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/actions/tenant-management.actions.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/actions/tenant-management.actions.js new file mode 100644 index 0000000000..e8d0a5b665 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/actions/tenant-management.actions.js @@ -0,0 +1,72 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export class TenantManagementGet { +} +TenantManagementGet.type = '[TenantManagement] Get'; +if (false) { + /** @type {?} */ + TenantManagementGet.type; +} +export class TenantManagementGetById { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +TenantManagementGetById.type = '[TenantManagement] Get By Id'; +if (false) { + /** @type {?} */ + TenantManagementGetById.type; + /** @type {?} */ + TenantManagementGetById.prototype.payload; +} +export class TenantManagementAdd { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +TenantManagementAdd.type = '[TenantManagement] Add'; +if (false) { + /** @type {?} */ + TenantManagementAdd.type; + /** @type {?} */ + TenantManagementAdd.prototype.payload; +} +export class TenantManagementUpdate { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +TenantManagementUpdate.type = '[TenantManagement] Update'; +if (false) { + /** @type {?} */ + TenantManagementUpdate.type; + /** @type {?} */ + TenantManagementUpdate.prototype.payload; +} +export class TenantManagementDelete { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +TenantManagementDelete.type = '[TenantManagement] Delete'; +if (false) { + /** @type {?} */ + TenantManagementDelete.type; + /** @type {?} */ + TenantManagementDelete.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvYWN0aW9ucy90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLE9BQU8sbUJBQW1COztBQUNkLHdCQUFJLEdBQUcsd0JBQXdCLENBQUM7OztJQUFoRCx5QkFBZ0Q7O0FBR2xELE1BQU0sT0FBTyx1QkFBdUI7Ozs7SUFFbEMsWUFBbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDOztBQUR0Qiw0QkFBSSxHQUFHLDhCQUE4QixDQUFDOzs7SUFBdEQsNkJBQXNEOztJQUMxQywwQ0FBc0I7O0FBR3BDLE1BQU0sT0FBTyxtQkFBbUI7Ozs7SUFFOUIsWUFBbUIsT0FBb0M7UUFBcEMsWUFBTyxHQUFQLE9BQU8sQ0FBNkI7SUFBRyxDQUFDOztBQUQzQyx3QkFBSSxHQUFHLHdCQUF3QixDQUFDOzs7SUFBaEQseUJBQWdEOztJQUNwQyxzQ0FBMkM7O0FBR3pELE1BQU0sT0FBTyxzQkFBc0I7Ozs7SUFFakMsWUFBbUIsT0FBdUM7UUFBdkMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0M7SUFBRyxDQUFDOztBQUQ5QywyQkFBSSxHQUFHLDJCQUEyQixDQUFDOzs7SUFBbkQsNEJBQW1EOztJQUN2Qyx5Q0FBOEM7O0FBRzVELE1BQU0sT0FBTyxzQkFBc0I7Ozs7SUFFakMsWUFBbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDOztBQUR0QiwyQkFBSSxHQUFHLDJCQUEyQixDQUFDOzs7SUFBbkQsNEJBQW1EOztJQUN2Qyx5Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50IH0gZnJvbSAnLi4vbW9kZWxzL3RlbmFudC1tYW5hZ2VtZW50JztcblxuZXhwb3J0IGNsYXNzIFRlbmFudE1hbmFnZW1lbnRHZXQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbVGVuYW50TWFuYWdlbWVudF0gR2V0Jztcbn1cblxuZXhwb3J0IGNsYXNzIFRlbmFudE1hbmFnZW1lbnRHZXRCeUlkIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1RlbmFudE1hbmFnZW1lbnRdIEdldCBCeSBJZCc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW5hbnRNYW5hZ2VtZW50QWRkIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1RlbmFudE1hbmFnZW1lbnRdIEFkZCc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBUZW5hbnRNYW5hZ2VtZW50LkFkZFJlcXVlc3QpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW5hbnRNYW5hZ2VtZW50VXBkYXRlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1RlbmFudE1hbmFnZW1lbnRdIFVwZGF0ZSc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBUZW5hbnRNYW5hZ2VtZW50LlVwZGF0ZVJlcXVlc3QpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW5hbnRNYW5hZ2VtZW50RGVsZXRlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1RlbmFudE1hbmFnZW1lbnRdIERlbGV0ZSc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcpIHt9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/components/index.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/components/index.js new file mode 100644 index 0000000000..0b0f73e1ac --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/components/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantsComponent } from './tenants/tenants.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlDQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90ZW5hbnRzL3RlbmFudHMuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/components/tenants/tenants.component.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/components/tenants/tenants.component.js new file mode 100644 index 0000000000..f2b5f64178 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/components/tenants/tenants.component.js @@ -0,0 +1,280 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { ConfirmationService } from '@abp/ng.theme.shared'; +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { Select, Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { pluck, switchMap, take } from 'rxjs/operators'; +import { TenantManagementAdd, TenantManagementDelete, TenantManagementGetById, TenantManagementUpdate, } from '../../actions/tenant-management.actions'; +import { TenantManagementService } from '../../services'; +import { TenantManagementState } from '../../states/tenant-management.state'; +export class TenantsComponent { + /** + * @param {?} confirmationService + * @param {?} tenantService + * @param {?} modalService + * @param {?} fb + * @param {?} store + */ + constructor(confirmationService, tenantService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.tenantService = tenantService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + } + /** + * @return {?} + */ + get showInput() { + return !this.defaultConnectionStringForm.get('useSharedDatabase').value; + } + /** + * @return {?} + */ + get connectionString() { + return this.defaultConnectionStringForm.get('defaultConnectionString').value; + } + /** + * @return {?} + */ + openModal() { + this.modalService.open(this.modalWrapper); + } + /** + * @private + * @return {?} + */ + createTenantForm() { + this.tenantForm = this.fb.group({ + name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + }); + } + /** + * @private + * @return {?} + */ + createDefaultConnectionStringForm() { + this.defaultConnectionStringForm = this.fb.group({ + useSharedDatabase: this.useSharedDatabase, + defaultConnectionString: this.defaultConnectionString || '', + }); + } + /** + * @param {?} id + * @return {?} + */ + onEditConnStr(id) { + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateConnStr, + onSave: (/** + * @return {?} + */ + () => this.saveConnStr), + }; + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe(pluck('TenantManagementState', 'selectedItem'), switchMap((/** + * @param {?} selected + * @return {?} + */ + selected => { + this.selected = selected; + return this.tenantService.getDefaultConnectionString(id); + }))) + .subscribe((/** + * @param {?} fetchedConnectionString + * @return {?} + */ + fetchedConnectionString => { + this.useSharedDatabase = fetchedConnectionString ? false : true; + this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : ''; + this.createDefaultConnectionStringForm(); + this.openModal(); + })); + } + /** + * @return {?} + */ + saveConnStr() { + this.tenantService + .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString }) + .pipe(take(1)) + .subscribe((/** + * @return {?} + */ + () => this.modalService.dismissAll())); + } + /** + * @param {?} id + * @return {?} + */ + onManageFeatures(id) { + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateFeatures, + onSave: (/** + * @return {?} + */ + () => { }), + }; + this.openModal(); + } + /** + * @return {?} + */ + onAdd() { + this.selected = (/** @type {?} */ ({})); + this.createTenantForm(); + this.openModal(); + this.selectedModalContent = { + title: 'AbpTenantManagement::NewTenant', + template: this.mTemplateTenant, + onSave: (/** + * @return {?} + */ + () => this.saveTenant), + }; + } + /** + * @param {?} id + * @return {?} + */ + onEdit(id) { + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe(pluck('TenantManagementState', 'selectedItem')) + .subscribe((/** + * @param {?} selected + * @return {?} + */ + selected => { + this.selected = selected; + this.selectedModalContent = { + title: 'AbpTenantManagement::Edit', + template: this.mTemplateTenant, + onSave: (/** + * @return {?} + */ + () => this.saveTenant), + }; + this.createTenantForm(); + this.openModal(); + })); + } + /** + * @return {?} + */ + saveTenant() { + if (!this.tenantForm.valid) + return; + this.store + .dispatch(this.selected.id + ? new TenantManagementUpdate(Object.assign({}, this.tenantForm.value, { id: this.selected.id })) + : new TenantManagementAdd(this.tenantForm.value)) + .subscribe((/** + * @return {?} + */ + () => this.modalService.dismissAll())); + } + /** + * @param {?} id + * @param {?} name + * @return {?} + */ + delete(id, name) { + this.confirmationService + .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + (status) => { + if (status === "confirm" /* confirm */) { + this.store.dispatch(new TenantManagementDelete(id)); + } + })); + } +} +TenantsComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-tenants', + template: "
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::ConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Features' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ selectedModalContent.title | abpLocalization }}\n
\n \n
\n\n
\n
\n \n
\n\n
\n \n \n
\n
\n
\n\n\n
\n
\n \n \n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n\n\n Manage Features\n\n" + }] } +]; +/** @nocollapse */ +TenantsComponent.ctorParameters = () => [ + { type: ConfirmationService }, + { type: TenantManagementService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } +]; +TenantsComponent.propDecorators = { + modalWrapper: [{ type: ViewChild, args: ['modalWrapper', { static: false },] }], + mTemplateConnStr: [{ type: ViewChild, args: ['mTemplateConnStr', { static: false },] }], + mTemplateFeatures: [{ type: ViewChild, args: ['mTemplateFeatures', { static: false },] }], + mTemplateTenant: [{ type: ViewChild, args: ['mTemplateTenant', { static: false },] }] +}; +tslib_1.__decorate([ + Select(TenantManagementState.get), + tslib_1.__metadata("design:type", Observable) +], TenantsComponent.prototype, "datas$", void 0); +if (false) { + /** @type {?} */ + TenantsComponent.prototype.datas$; + /** @type {?} */ + TenantsComponent.prototype.selected; + /** @type {?} */ + TenantsComponent.prototype.tenantForm; + /** @type {?} */ + TenantsComponent.prototype.defaultConnectionStringForm; + /** @type {?} */ + TenantsComponent.prototype.defaultConnectionString; + /** @type {?} */ + TenantsComponent.prototype.useSharedDatabase; + /** @type {?} */ + TenantsComponent.prototype.selectedModalContent; + /** @type {?} */ + TenantsComponent.prototype.modalWrapper; + /** @type {?} */ + TenantsComponent.prototype.mTemplateConnStr; + /** @type {?} */ + TenantsComponent.prototype.mTemplateFeatures; + /** @type {?} */ + TenantsComponent.prototype.mTemplateTenant; + /** + * @type {?} + * @private + */ + TenantsComponent.prototype.confirmationService; + /** + * @type {?} + * @private + */ + TenantsComponent.prototype.tenantService; + /** + * @type {?} + * @private + */ + TenantsComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + TenantsComponent.prototype.fb; + /** + * @type {?} + * @private + */ + TenantsComponent.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixzQkFBc0IsR0FDdkIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQU03RSxNQUFNLE9BQU8sZ0JBQWdCOzs7Ozs7OztJQXdDM0IsWUFDVSxtQkFBd0MsRUFDeEMsYUFBc0MsRUFDdEMsWUFBc0IsRUFDdEIsRUFBZSxFQUNmLEtBQVk7UUFKWix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUN0QyxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixPQUFFLEdB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QlEsbUJBQW1CO1lBYW5CLHVCQUF1QjtZQVZ2QixRQUFRO1lBRFIsV0FBVztZQUVILEtBQUs7OzsyQkE0Q25CLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOytCQUczQyxTQUFTLFNBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dDQUcvQyxTQUFTLFNBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzhCQUdoRCxTQUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztBQW5DL0M7SUFEQyxNQUFNLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDO3NDQUMxQixVQUFVO2dEQUFrQjs7O0lBRHBDLGtDQUNvQzs7SUFFcEMsb0NBQXdCOztJQUV4QixzQ0FBc0I7O0lBRXRCLHVEQUF1Qzs7SUFFdkMsbURBQWdDOztJQUVoQyw2Q0FBMkI7O0lBRTNCLGdEQUlFOztJQVVGLHdDQUMrQjs7SUFFL0IsNENBQ21DOztJQUVuQyw2Q0FDb0M7O0lBRXBDLDJDQUNrQzs7Ozs7SUFHaEMsK0NBQWdEOzs7OztJQUNoRCx5Q0FBOEM7Ozs7O0lBQzlDLHdDQUE4Qjs7Ozs7SUFDOUIsOEJBQXVCOzs7OztJQUN2QixpQ0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgU2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHBsdWNrLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBUZW5hbnRNYW5hZ2VtZW50QWRkLFxuICBUZW5hbnRNYW5hZ2VtZW50RGVsZXRlLFxuICBUZW5hbnRNYW5hZ2VtZW50R2V0QnlJZCxcbiAgVGVuYW50TWFuYWdlbWVudFVwZGF0ZSxcbn0gZnJvbSAnLi4vLi4vYWN0aW9ucy90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zJztcbmltcG9ydCB7IFRlbmFudE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudFN0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGVzL3RlbmFudC1tYW5hZ2VtZW50LnN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXRlbmFudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50cy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudHNDb21wb25lbnQge1xuICBAU2VsZWN0KFRlbmFudE1hbmFnZW1lbnRTdGF0ZS5nZXQpXG4gIGRhdGFzJDogT2JzZXJ2YWJsZTxBQlAuQmFzaWNJdGVtW10+O1xuXG4gIHNlbGVjdGVkOiBBQlAuQmFzaWNJdGVtO1xuXG4gIHRlbmFudEZvcm06IEZvcm1Hcm91cDtcblxuICBkZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm06IEZvcm1Hcm91cDtcblxuICBkZWZhdWx0Q29ubmVjdGlvblN0cmluZzogc3RyaW5nO1xuXG4gIHVzZVNoYXJlZERhdGFiYXNlOiBib29sZWFuO1xuXG4gIHNlbGVjdGVkTW9kYWxDb250ZW50OiB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBvblNhdmU6ICgpID0+IHZvaWQ7XG4gIH07XG5cbiAgZ2V0IHNob3dJbnB1dCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtLmdldCgndXNlU2hhcmVkRGF0YWJhc2UnKS52YWx1ZTtcbiAgfVxuXG4gIGdldCBjb25uZWN0aW9uU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtLmdldCgnZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcnKS52YWx1ZTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsV3JhcHBlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbFdyYXBwZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgnbVRlbXBsYXRlQ29ublN0cicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtVGVtcGxhdGVDb25uU3RyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ21UZW1wbGF0ZUZlYXR1cmVzJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1UZW1wbGF0ZUZlYXR1cmVzOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ21UZW1wbGF0ZVRlbmFudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtVGVtcGxhdGVUZW5hbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdGVuYW50U2VydmljZTogVGVuYW50TWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICApIHt9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5tb2RhbFdyYXBwZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUZW5hbnRGb3JtKCkge1xuICAgIHRoaXMudGVuYW50Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogW3RoaXMuc2VsZWN0ZWQubmFtZSB8fCAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtKCkge1xuICAgIHRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB1c2VTaGFyZWREYXRhYmFzZTogdGhpcy51c2VTaGFyZWREYXRhYmFzZSxcbiAgICAgIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nOiB0aGlzLmRlZmF1bHRDb25uZWN0aW9uU3RyaW5nIHx8ICcnLFxuICAgIH0pO1xuICB9XG5cbiAgb25FZGl0Q29ublN0cihpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGFsQ29udGVudCA9IHtcbiAgICAgIHRpdGxlOiB0aGlzLnNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWQuaWQgPyAnQWJwVGVuYW50TWFuYWdlbWVudDo6RWRpdCcgOiAnQWJwVGVuYW50TWFuYWdlbWVudDo6TmV3VGVuYW50JyxcbiAgICAgIHRlbXBsYXRlOiB0aGlzLm1UZW1wbGF0ZUNvbm5TdHIsXG4gICAgICBvblNhdmU6ICgpID0+IHRoaXMuc2F2ZUNvbm5TdHIsXG4gICAgfTtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IFRlbmFudE1hbmFnZW1lbnRHZXRCeUlkKGlkKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBwbHVjaygnVGVuYW50TWFuYWdlbWVudFN0YXRlJywgJ3NlbGVjdGVkSXRlbScpLFxuICAgICAgICBzd2l0Y2hNYXAoc2VsZWN0ZWQgPT4ge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgICAgICByZXR1cm4gdGhpcy50ZW5hbnRTZXJ2aWNlLmdldERlZmF1bHRDb25uZWN0aW9uU3RyaW5nKGlkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGZldGNoZWRDb25uZWN0aW9uU3RyaW5nID0+IHtcbiAgICAgICAgdGhpcy51c2VTaGFyZWREYXRhYmFzZSA9IGZldGNoZWRDb25uZWN0aW9uU3RyaW5nID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICB0aGlzLmRlZmF1bHRDb25uZWN0aW9uU3RyaW5nID0gZmV0Y2hlZENvbm5lY3Rpb25TdHJpbmcgPyBmZXRjaGVkQ29ubmVjdGlvblN0cmluZyA6ICcnO1xuICAgICAgICB0aGlzLmNyZWF0ZURlZmF1bHRDb25uZWN0aW9uU3RyaW5nRm9ybSgpO1xuICAgICAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBzYXZlQ29ublN0cigpIHtcbiAgICB0aGlzLnRlbmFudFNlcnZpY2VcbiAgICAgIC51cGRhdGVEZWZhdWx0Q29ubmVjdGlvblN0cmluZyh7IGlkOiB0aGlzLnNlbGVjdGVkLmlkLCBkZWZhdWx0Q29ubmVjdGlvblN0cmluZzogdGhpcy5jb25uZWN0aW9uU3RyaW5nIH0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCkpO1xuICB9XG5cbiAgb25NYW5hZ2VGZWF0dXJlcyhpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGFsQ29udGVudCA9IHtcbiAgICAgIHRpdGxlOiB0aGlzLnNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWQuaWQgPyAnQWJwVGVuYW50TWFuYWdlbWVudDo6RWRpdCcgOiAnQWJwVGVuYW50TWFuYWdlbWVudDo6TmV3VGVuYW50JyxcbiAgICAgIHRlbXBsYXRlOiB0aGlzLm1UZW1wbGF0ZUZlYXR1cmVzLFxuICAgICAgb25TYXZlOiAoKSA9PiB7fSxcbiAgICB9O1xuICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gIH1cblxuICBvbkFkZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0ge30gYXMgQUJQLkJhc2ljSXRlbTtcbiAgICB0aGlzLmNyZWF0ZVRlbmFudEZvcm0oKTtcbiAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RhbENvbnRlbnQgPSB7XG4gICAgICB0aXRsZTogJ0FicFRlbmFudE1hbmFnZW1lbnQ6Ok5ld1RlbmFudCcsXG4gICAgICB0ZW1wbGF0ZTogdGhpcy5tVGVtcGxhdGVUZW5hbnQsXG4gICAgICBvblNhdmU6ICgpID0+IHRoaXMuc2F2ZVRlbmFudCxcbiAgICB9O1xuICB9XG5cbiAgb25FZGl0KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IFRlbmFudE1hbmFnZW1lbnRHZXRCeUlkKGlkKSlcbiAgICAgIC5waXBlKHBsdWNrKCdUZW5hbnRNYW5hZ2VtZW50U3RhdGUnLCAnc2VsZWN0ZWRJdGVtJykpXG4gICAgICAuc3Vic2NyaWJlKHNlbGVjdGVkID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kYWxDb250ZW50ID0ge1xuICAgICAgICAgIHRpdGxlOiAnQWJwVGVuYW50TWFuYWdlbWVudDo6RWRpdCcsXG4gICAgICAgICAgdGVtcGxhdGU6IHRoaXMubVRlbXBsYXRlVGVuYW50LFxuICAgICAgICAgIG9uU2F2ZTogKCkgPT4gdGhpcy5zYXZlVGVuYW50LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNyZWF0ZVRlbmFudEZvcm0oKTtcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZVRlbmFudCgpIHtcbiAgICBpZiAoIXRoaXMudGVuYW50Rm9ybS52YWxpZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLnNlbGVjdGVkLmlkXG4gICAgICAgICAgPyBuZXcgVGVuYW50TWFuYWdlbWVudFVwZGF0ZSh7IC4uLnRoaXMudGVuYW50Rm9ybS52YWx1ZSwgaWQ6IHRoaXMuc2VsZWN0ZWQuaWQgfSlcbiAgICAgICAgICA6IG5ldyBUZW5hbnRNYW5hZ2VtZW50QWRkKHRoaXMudGVuYW50Rm9ybS52YWx1ZSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKSk7XG4gIH1cblxuICBkZWxldGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlXG4gICAgICAud2FybignQWJwVGVuYW50TWFuYWdlbWVudDo6VGVuYW50RGVsZXRpb25Db25maXJtYXRpb25NZXNzYWdlJywgJ0FicFRlbmFudE1hbmFnZW1lbnQ6OkFyZVlvdVN1cmUnLCB7XG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFtuYW1lXSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IFRvYXN0ZXIuU3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm0pIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBUZW5hbnRNYW5hZ2VtZW50RGVsZXRlKGlkKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/constants/index.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/constants/index.js new file mode 100644 index 0000000000..fd62602266 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/constants/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TENANT_MANAGEMENT_ROUTES } from './routes'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbnN0YW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEseUNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXMnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/constants/routes.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/constants/routes.js new file mode 100644 index 0000000000..948ba23169 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/constants/routes.js @@ -0,0 +1,23 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +export const TENANT_MANAGEMENT_ROUTES = (/** @type {?} */ ([ + { + name: 'TenantManagement', + path: 'tenant-management', + parentName: 'Administration', + layout: "application" /* application */, + children: [ + { + path: 'tenants', + name: 'Tenants', + order: 1, + requiredPolicy: 'AbpTenantManagement.Tenants', + parentName: 'TenantManagement', + }, + ], + }, +])); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxPQUFPLHdCQUF3QixHQUFHLG1CQUFBO0lBQ3RDO1FBQ0UsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFVBQVUsRUFBRSxnQkFBZ0I7UUFDNUIsTUFBTSxpQ0FBeUI7UUFDL0IsUUFBUSxFQUFFO1lBQ1I7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsY0FBYyxFQUFFLDZCQUE2QjtnQkFDN0MsVUFBVSxFQUFFLGtCQUFrQjthQUMvQjtTQUNGO0tBQ0Y7Q0FDRixFQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgZUxheW91dFR5cGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuXG5leHBvcnQgY29uc3QgVEVOQU5UX01BTkFHRU1FTlRfUk9VVEVTID0gW1xuICB7XG4gICAgbmFtZTogJ1RlbmFudE1hbmFnZW1lbnQnLFxuICAgIHBhdGg6ICd0ZW5hbnQtbWFuYWdlbWVudCcsXG4gICAgcGFyZW50TmFtZTogJ0FkbWluaXN0cmF0aW9uJyxcbiAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxuICAgIGNoaWxkcmVuOiBbXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICd0ZW5hbnRzJyxcbiAgICAgICAgbmFtZTogJ1RlbmFudHMnLFxuICAgICAgICBvcmRlcjogMSxcbiAgICAgICAgcmVxdWlyZWRQb2xpY3k6ICdBYnBUZW5hbnRNYW5hZ2VtZW50LlRlbmFudHMnLFxuICAgICAgICBwYXJlbnROYW1lOiAnVGVuYW50TWFuYWdlbWVudCcsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dIGFzIEFCUC5GdWxsUm91dGVbXTtcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/models/index.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/models/index.js new file mode 100644 index 0000000000..e018898bb1 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/models/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './tenant-management'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsZUFBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGVuYW50LW1hbmFnZW1lbnQnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/models/tenant-management.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/models/tenant-management.js new file mode 100644 index 0000000000..ad6e89c9e3 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/models/tenant-management.js @@ -0,0 +1,59 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var TenantManagement; +(function (TenantManagement) { + /** + * @record + */ + function State() { } + TenantManagement.State = State; + if (false) { + /** @type {?} */ + State.prototype.result; + /** @type {?} */ + State.prototype.selectedItem; + } + /** + * @record + */ + function Item() { } + TenantManagement.Item = Item; + if (false) { + /** @type {?} */ + Item.prototype.id; + /** @type {?} */ + Item.prototype.name; + } + /** + * @record + */ + function AddRequest() { } + TenantManagement.AddRequest = AddRequest; + if (false) { + /** @type {?} */ + AddRequest.prototype.name; + } + /** + * @record + */ + function UpdateRequest() { } + TenantManagement.UpdateRequest = UpdateRequest; + if (false) { + /** @type {?} */ + UpdateRequest.prototype.id; + } + /** + * @record + */ + function DefaultConnectionStringRequest() { } + TenantManagement.DefaultConnectionStringRequest = DefaultConnectionStringRequest; + if (false) { + /** @type {?} */ + DefaultConnectionStringRequest.prototype.id; + /** @type {?} */ + DefaultConnectionStringRequest.prototype.defaultConnectionString; + } +})(TenantManagement || (TenantManagement = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL21vZGVscy90ZW5hbnQtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsTUFBTSxLQUFXLGdCQUFnQixDQXlCaEM7QUF6QkQsV0FBaUIsZ0JBQWdCOzs7O0lBQy9CLG9CQUdDOzs7O1FBRkMsdUJBQWlCOztRQUNqQiw2QkFBbUI7Ozs7O0lBS3JCLG1CQUdDOzs7O1FBRkMsa0JBQVc7O1FBQ1gsb0JBQWE7Ozs7O0lBR2YseUJBRUM7Ozs7UUFEQywwQkFBYTs7Ozs7SUFHZiw0QkFFQzs7OztRQURDLDJCQUFXOzs7OztJQUdiLDZDQUdDOzs7O1FBRkMsNENBQVc7O1FBQ1gsaUVBQWdDOztBQUVwQyxDQUFDLEVBekJnQixnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBeUJoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgVGVuYW50TWFuYWdlbWVudCB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xuICAgIHJlc3VsdDogUmVzcG9uc2U7XG4gICAgc2VsZWN0ZWRJdGVtOiBJdGVtO1xuICB9XG5cbiAgZXhwb3J0IHR5cGUgUmVzcG9uc2UgPSBBQlAuUGFnZWRSZXNwb25zZTxJdGVtPjtcblxuICBleHBvcnQgaW50ZXJmYWNlIEl0ZW0ge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBBZGRSZXF1ZXN0IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJlcXVlc3QgZXh0ZW5kcyBBZGRSZXF1ZXN0IHtcbiAgICBpZDogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0Q29ubmVjdGlvblN0cmluZ1JlcXVlc3Qge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZGVmYXVsdENvbm5lY3Rpb25TdHJpbmc6IHN0cmluZztcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/resolvers/index.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/resolvers/index.js new file mode 100644 index 0000000000..2dc325d54e --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/resolvers/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantsResolver } from './tenants.resolver'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3Jlc29sdmVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsZ0NBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RlbmFudHMucmVzb2x2ZXInO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/resolvers/tenants.resolver.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/resolvers/tenants.resolver.js new file mode 100644 index 0000000000..d3b8bc953c --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/resolvers/tenants.resolver.js @@ -0,0 +1,41 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { TenantManagementGet } from '../actions/tenant-management.actions'; +import { TenantManagementState } from '../states/tenant-management.state'; +export class TenantsResolver { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @return {?} + */ + resolve() { + /** @type {?} */ + const data = this.store.selectSnapshot(TenantManagementState.get); + return data && data.length + ? null + : this.store.dispatch(new TenantManagementGet()); + } +} +TenantsResolver.decorators = [ + { type: Injectable } +]; +/** @nocollapse */ +TenantsResolver.ctorParameters = () => [ + { type: Store } +]; +if (false) { + /** + * @type {?} + * @private + */ + TenantsResolver.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvcmVzb2x2ZXJzL3RlbmFudHMucmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUcxRSxNQUFNLE9BQU8sZUFBZTs7OztJQUMxQixZQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7SUFFcEMsT0FBTzs7Y0FDQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNO1lBQ3pCLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7OztZQVRGLFVBQVU7Ozs7WUFMRixLQUFLOzs7Ozs7O0lBT0EsZ0NBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzb2x2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFRlbmFudE1hbmFnZW1lbnRHZXQgfSBmcm9tICcuLi9hY3Rpb25zL3RlbmFudC1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudCB9IGZyb20gJy4uL21vZGVscy90ZW5hbnQtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMvdGVuYW50LW1hbmFnZW1lbnQuc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGVuYW50c1Jlc29sdmVyIGltcGxlbWVudHMgUmVzb2x2ZTxUZW5hbnRNYW5hZ2VtZW50LlN0YXRlPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIHJlc29sdmUoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoVGVuYW50TWFuYWdlbWVudFN0YXRlLmdldCk7XG4gICAgcmV0dXJuIGRhdGEgJiYgZGF0YS5sZW5ndGhcbiAgICAgPyBudWxsIFxuICAgICA6IHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFRlbmFudE1hbmFnZW1lbnRHZXQoKSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/services/index.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/services/index.js new file mode 100644 index 0000000000..1848d84185 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/services/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantManagementService } from './tenant-management.service'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx3Q0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGVuYW50LW1hbmFnZW1lbnQuc2VydmljZSc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/services/tenant-management.service.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/services/tenant-management.service.js new file mode 100644 index 0000000000..3ada2c9fa1 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/services/tenant-management.service.js @@ -0,0 +1,128 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { RestService } from '@abp/ng.core'; +import * as i0 from "@angular/core"; +import * as i1 from "@abp/ng.core"; +export class TenantManagementService { + /** + * @param {?} rest + */ + constructor(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + get() { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/multi-tenancy/tenant', + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + getById(id) { + /** @type {?} */ + const request = { + method: 'GET', + url: `/api/multi-tenancy/tenant/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + delete(id) { + /** @type {?} */ + const request = { + method: 'DELETE', + url: `/api/multi-tenancy/tenant/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + add(body) { + /** @type {?} */ + const request = { + method: 'POST', + url: `/api/multi-tenancy/tenant`, + body, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + update(body) { + /** @type {?} */ + const url = `/api/multi-tenancy/tenant/${body.id}`; + delete body.id; + /** @type {?} */ + const request = { + method: 'PUT', + url, + body, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + getDefaultConnectionString(id) { + /** @type {?} */ + const url = `/api/multi-tenancy/tenant/${id}/defaultConnectionString`; + /** @type {?} */ + const request = { + method: 'GET', + responseType: "text" /* Text */, + url, + }; + return this.rest.request(request); + } + /** + * @param {?} payload + * @return {?} + */ + updateDefaultConnectionString(payload) { + /** @type {?} */ + const url = `/api/multi-tenancy/tenant/${payload.id}/defaultConnectionString`; + /** @type {?} */ + const request = { + method: 'PUT', + url, + params: { defaultConnectionString: payload.defaultConnectionString }, + }; + return this.rest.request(request); + } +} +TenantManagementService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +TenantManagementService.ctorParameters = () => [ + { type: RestService } +]; +/** @nocollapse */ TenantManagementService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function TenantManagementService_Factory() { return new TenantManagementService(i0.ɵɵinject(i1.RestService)); }, token: TenantManagementService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + TenantManagementService.prototype.rest; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdGVuYW50LW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sY0FBYyxDQUFDOzs7QUFNdEQsTUFBTSxPQUFPLHVCQUF1Qjs7OztJQUNsQyxZQUFvQixJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO0lBQUcsQ0FBQzs7OztJQUV6QyxHQUFHOztjQUNLLE9BQU8sR0FBdUI7WUFDbEMsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsMkJBQTJCO1NBQ2pDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBa0MsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7Ozs7SUFFRCxPQUFPLENBQUMsRUFBVTs7Y0FDVixPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLDZCQUE2QixFQUFFLEVBQUU7U0FDdkM7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFzQixPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxFQUFVOztjQUNULE9BQU8sR0FBdUI7WUFDbEMsTUFBTSxFQUFFLFFBQVE7WUFDaEIsR0FBRyxFQUFFLDZCQUE2QixFQUFFLEVBQUU7U0FDdkM7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFhLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7Ozs7O0lBRUQsR0FBRyxDQUFDLElBQWlDOztjQUM3QixPQUFPLEdBQThDO1lBQ3pELE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLDJCQUEyQjtZQUNoQyxJQUFJO1NBQ0w7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUE2QyxPQUFPLENBQUMsQ0FBQztJQUNoRixDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxJQUFvQzs7Y0FDbkMsR0FBRyxHQUFHLDZCQUE2QixJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ2xELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQzs7Y0FFVCxPQUFPLEdBQWlEO1lBQzVELE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRztZQUNILElBQUk7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQTZDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hGLENBQUM7Ozs7O0lBRUQsMEJBQTBCLENBQUMsRUFBVTs7Y0FDN0IsR0FBRyxHQUFHLDZCQUE2QixFQUFFLDBCQUEwQjs7Y0FFL0QsT0FBTyxHQUFrRTtZQUM3RSxNQUFNLEVBQUUsS0FBSztZQUNiLFlBQVksbUJBQXdCO1lBQ3BDLEdBQUc7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQTBELE9BQU8sQ0FBQyxDQUFDO0lBQzdGLENBQUM7Ozs7O0lBRUQsNkJBQTZCLENBQUMsT0FBd0Q7O2NBQzlFLEdBQUcsR0FBRyw2QkFBNkIsT0FBTyxDQUFDLEVBQUUsMEJBQTBCOztjQUV2RSxPQUFPLEdBQWtFO1lBQzdFLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRztZQUNILE1BQU0sRUFBRSxFQUFFLHVCQUF1QixFQUFFLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRTtTQUNyRTtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQXVELE9BQU8sQ0FBQyxDQUFDO0lBQzFGLENBQUM7OztZQTVFRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFMUSxXQUFXOzs7Ozs7OztJQU9OLHVDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlLCBSZXN0LCBBQlAgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudCB9IGZyb20gJy4uL21vZGVscy90ZW5hbnQtbWFuYWdlbWVudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUZW5hbnRNYW5hZ2VtZW50U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdDogUmVzdFNlcnZpY2UpIHt9XG5cbiAgZ2V0KCk6IE9ic2VydmFibGU8VGVuYW50TWFuYWdlbWVudC5SZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6ICcvYXBpL211bHRpLXRlbmFuY3kvdGVuYW50JyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PG51bGwsIFRlbmFudE1hbmFnZW1lbnQuUmVzcG9uc2U+KHJlcXVlc3QpO1xuICB9XG5cbiAgZ2V0QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBQlAuQmFzaWNJdGVtPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PG51bGw+ID0ge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogYC9hcGkvbXVsdGktdGVuYW5jeS90ZW5hbnQvJHtpZH1gLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgQUJQLkJhc2ljSXRlbT4ocmVxdWVzdCk7XG4gIH1cblxuICBkZWxldGUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB1cmw6IGAvYXBpL211bHRpLXRlbmFuY3kvdGVuYW50LyR7aWR9YCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PG51bGwsIG51bGw+KHJlcXVlc3QpO1xuICB9XG5cbiAgYWRkKGJvZHk6IFRlbmFudE1hbmFnZW1lbnQuQWRkUmVxdWVzdCk6IE9ic2VydmFibGU8QUJQLkJhc2ljSXRlbT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxUZW5hbnRNYW5hZ2VtZW50LkFkZFJlcXVlc3Q+ID0ge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB1cmw6IGAvYXBpL211bHRpLXRlbmFuY3kvdGVuYW50YCxcbiAgICAgIGJvZHksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxUZW5hbnRNYW5hZ2VtZW50LkFkZFJlcXVlc3QsIEFCUC5CYXNpY0l0ZW0+KHJlcXVlc3QpO1xuICB9XG5cbiAgdXBkYXRlKGJvZHk6IFRlbmFudE1hbmFnZW1lbnQuVXBkYXRlUmVxdWVzdCk6IE9ic2VydmFibGU8QUJQLkJhc2ljSXRlbT4ge1xuICAgIGNvbnN0IHVybCA9IGAvYXBpL211bHRpLXRlbmFuY3kvdGVuYW50LyR7Ym9keS5pZH1gO1xuICAgIGRlbGV0ZSBib2R5LmlkO1xuXG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PFRlbmFudE1hbmFnZW1lbnQuVXBkYXRlUmVxdWVzdD4gPSB7XG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgdXJsLFxuICAgICAgYm9keSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PFRlbmFudE1hbmFnZW1lbnQuQWRkUmVxdWVzdCwgQUJQLkJhc2ljSXRlbT4ocmVxdWVzdCk7XG4gIH1cblxuICBnZXREZWZhdWx0Q29ubmVjdGlvblN0cmluZyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCB1cmwgPSBgL2FwaS9tdWx0aS10ZW5hbmN5L3RlbmFudC8ke2lkfS9kZWZhdWx0Q29ubmVjdGlvblN0cmluZ2A7XG5cbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8VGVuYW50TWFuYWdlbWVudC5EZWZhdWx0Q29ubmVjdGlvblN0cmluZ1JlcXVlc3Q+ID0ge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHJlc3BvbnNlVHlwZTogUmVzdC5SZXNwb25zZVR5cGUuVGV4dCxcbiAgICAgIHVybCxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxUZW5hbnRNYW5hZ2VtZW50LkRlZmF1bHRDb25uZWN0aW9uU3RyaW5nUmVxdWVzdCwgc3RyaW5nPihyZXF1ZXN0KTtcbiAgfVxuXG4gIHVwZGF0ZURlZmF1bHRDb25uZWN0aW9uU3RyaW5nKHBheWxvYWQ6IFRlbmFudE1hbmFnZW1lbnQuRGVmYXVsdENvbm5lY3Rpb25TdHJpbmdSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgL2FwaS9tdWx0aS10ZW5hbmN5L3RlbmFudC8ke3BheWxvYWQuaWR9L2RlZmF1bHRDb25uZWN0aW9uU3RyaW5nYDtcblxuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxUZW5hbnRNYW5hZ2VtZW50LkRlZmF1bHRDb25uZWN0aW9uU3RyaW5nUmVxdWVzdD4gPSB7XG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgdXJsLFxuICAgICAgcGFyYW1zOiB7IGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nOiBwYXlsb2FkLmRlZmF1bHRDb25uZWN0aW9uU3RyaW5nIH0sXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8VGVuYW50TWFuYWdlbWVudC5EZWZhdWx0Q29ubmVjdGlvblN0cmluZ1JlcXVlc3QsIGFueT4ocmVxdWVzdCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/states/index.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/states/index.js new file mode 100644 index 0000000000..009910139b --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/states/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantManagementState } from './tenant-management.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsc0NBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RlbmFudC1tYW5hZ2VtZW50LnN0YXRlJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/states/tenant-management.state.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/states/tenant-management.state.js new file mode 100644 index 0000000000..7c706167fa --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/states/tenant-management.state.js @@ -0,0 +1,139 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Action, Selector, State } from '@ngxs/store'; +import { switchMap, tap } from 'rxjs/operators'; +import { TenantManagementAdd, TenantManagementDelete, TenantManagementGet, TenantManagementGetById, TenantManagementUpdate, } from '../actions/tenant-management.actions'; +import { TenantManagementService } from '../services/tenant-management.service'; +let TenantManagementState = class TenantManagementState { + /** + * @param {?} tenantManagementService + */ + constructor(tenantManagementService) { + this.tenantManagementService = tenantManagementService; + } + /** + * @param {?} __0 + * @return {?} + */ + static get({ result }) { + return result.items || []; + } + /** + * @param {?} __0 + * @return {?} + */ + get({ patchState }) { + return this.tenantManagementService.get().pipe(tap((/** + * @param {?} result + * @return {?} + */ + result => patchState({ + result, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + getById({ patchState }, { payload }) { + return this.tenantManagementService.getById(payload).pipe(tap((/** + * @param {?} selectedItem + * @return {?} + */ + selectedItem => patchState({ + selectedItem, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + delete({ dispatch }, { payload }) { + return this.tenantManagementService.delete(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new TenantManagementGet())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + add({ dispatch }, { payload }) { + return this.tenantManagementService.add(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new TenantManagementGet())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + update({ dispatch, getState }, { payload }) { + return dispatch(new TenantManagementGetById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + () => this.tenantManagementService.update(Object.assign({}, getState().selectedItem, payload)))), switchMap((/** + * @return {?} + */ + () => dispatch(new TenantManagementGet())))); + } +}; +tslib_1.__decorate([ + Action(TenantManagementGet), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) +], TenantManagementState.prototype, "get", null); +tslib_1.__decorate([ + Action(TenantManagementGetById), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, TenantManagementGetById]), + tslib_1.__metadata("design:returntype", void 0) +], TenantManagementState.prototype, "getById", null); +tslib_1.__decorate([ + Action(TenantManagementDelete), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, TenantManagementDelete]), + tslib_1.__metadata("design:returntype", void 0) +], TenantManagementState.prototype, "delete", null); +tslib_1.__decorate([ + Action(TenantManagementAdd), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, TenantManagementAdd]), + tslib_1.__metadata("design:returntype", void 0) +], TenantManagementState.prototype, "add", null); +tslib_1.__decorate([ + Action(TenantManagementUpdate), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, TenantManagementUpdate]), + tslib_1.__metadata("design:returntype", void 0) +], TenantManagementState.prototype, "update", null); +tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Array) +], TenantManagementState, "get", null); +TenantManagementState = tslib_1.__decorate([ + State({ + name: 'TenantManagementState', + defaults: (/** @type {?} */ ({ result: {}, selectedItem: {} })), + }), + tslib_1.__metadata("design:paramtypes", [TenantManagementService]) +], TenantManagementState); +export { TenantManagementState }; +if (false) { + /** + * @type {?} + * @private + */ + TenantManagementState.prototype.tenantManagementService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQuc3RhdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy90ZW5hbnQtbWFuYWdlbWVudC5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUN2QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0lBT25FLHFCQUFxQixTQUFyQixxQkFBcUI7Ozs7SUFNaEMsWUFBb0IsdUJBQWdEO1FBQWhELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFBRyxDQUFDOzs7OztJQUp4RSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUEwQjtRQUMzQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7Ozs7O0lBS0QsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUF3QztRQUN0RCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQzVDLEdBQUc7Ozs7UUFBQyxNQUFNLENBQUMsRUFBRSxDQUNYLFVBQVUsQ0FBQztZQUNULE1BQU07U0FDUCxDQUFDLEVBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7Ozs7O0lBR0QsT0FBTyxDQUFDLEVBQUUsVUFBVSxFQUF3QyxFQUFFLEVBQUUsT0FBTyxFQUEyQjtRQUNoRyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN2RCxHQUFHOzs7O1FBQUMsWUFBWSxDQUFDLEVBQUUsQ0FDakIsVUFBVSxDQUFDO1lBQ1QsWUFBWTtTQUNiLENBQUMsRUFDSCxDQUNGLENBQUM7SUFDSixDQUFDOzs7Ozs7SUFHRCxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQXdDLEVBQUUsRUFBRSxPQUFPLEVBQTBCO1FBQzVGLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksbUJBQW1CLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUNqSCxDQUFDOzs7Ozs7SUFHRCxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQXdDLEVBQUUsRUFBRSxPQUFPLEVBQXVCO1FBQ3RGLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksbUJBQW1CLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDOzs7Ozs7SUFHRCxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUF3QyxFQUFFLEVBQUUsT0FBTyxFQUEwQjtRQUN0RyxPQUFPLFFBQVEsQ0FBQyxJQUFJLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDM0QsU0FBUzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sbUJBQU0sUUFBUSxFQUFFLENBQUMsWUFBWSxFQUFLLE9BQU8sRUFBRyxFQUFDLEVBQ2hHLFNBQVM7OztRQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLG1CQUFtQixFQUFFLENBQUMsRUFBQyxDQUNyRCxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUE7QUF0Q0M7SUFEQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7Ozs7Z0RBUzNCO0FBR0Q7SUFEQyxNQUFNLENBQUMsdUJBQXVCLENBQUM7O3FEQUMyQyx1QkFBdUI7O29EQVFqRztBQUdEO0lBREMsTUFBTSxDQUFDLHNCQUFzQixDQUFDOztxREFDeUMsc0JBQXNCOzttREFFN0Y7QUFHRDtJQURDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQzs7cURBQ3lDLG1CQUFtQjs7Z0RBRXZGO0FBR0Q7SUFEQyxNQUFNLENBQUMsc0JBQXNCLENBQUM7O3FEQUNtRCxzQkFBc0I7O21EQUt2RztBQTVDRDtJQURDLFFBQVEsRUFBRTs7OztzQ0FHVjtBQUpVLHFCQUFxQjtJQUpqQyxLQUFLLENBQXlCO1FBQzdCLElBQUksRUFBRSx1QkFBdUI7UUFDN0IsUUFBUSxFQUFFLG1CQUFBLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLEVBQTBCO0tBQ3JFLENBQUM7NkNBTzZDLHVCQUF1QjtHQU56RCxxQkFBcUIsQ0ErQ2pDO1NBL0NZLHFCQUFxQjs7Ozs7O0lBTXBCLHdEQUF3RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIFRlbmFudE1hbmFnZW1lbnRBZGQsXG4gIFRlbmFudE1hbmFnZW1lbnREZWxldGUsXG4gIFRlbmFudE1hbmFnZW1lbnRHZXQsXG4gIFRlbmFudE1hbmFnZW1lbnRHZXRCeUlkLFxuICBUZW5hbnRNYW5hZ2VtZW50VXBkYXRlLFxufSBmcm9tICcuLi9hY3Rpb25zL3RlbmFudC1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudCB9IGZyb20gJy4uL21vZGVscy90ZW5hbnQtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RlbmFudC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuQFN0YXRlPFRlbmFudE1hbmFnZW1lbnQuU3RhdGU+KHtcbiAgbmFtZTogJ1RlbmFudE1hbmFnZW1lbnRTdGF0ZScsXG4gIGRlZmF1bHRzOiB7IHJlc3VsdDoge30sIHNlbGVjdGVkSXRlbToge30gfSBhcyBUZW5hbnRNYW5hZ2VtZW50LlN0YXRlLFxufSlcbmV4cG9ydCBjbGFzcyBUZW5hbnRNYW5hZ2VtZW50U3RhdGUge1xuICBAU2VsZWN0b3IoKVxuICBzdGF0aWMgZ2V0KHsgcmVzdWx0IH06IFRlbmFudE1hbmFnZW1lbnQuU3RhdGUpOiBBQlAuQmFzaWNJdGVtW10ge1xuICAgIHJldHVybiByZXN1bHQuaXRlbXMgfHwgW107XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRlbmFudE1hbmFnZW1lbnRTZXJ2aWNlOiBUZW5hbnRNYW5hZ2VtZW50U2VydmljZSkge31cblxuICBAQWN0aW9uKFRlbmFudE1hbmFnZW1lbnRHZXQpXG4gIGdldCh7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PFRlbmFudE1hbmFnZW1lbnQuU3RhdGU+KSB7XG4gICAgcmV0dXJuIHRoaXMudGVuYW50TWFuYWdlbWVudFNlcnZpY2UuZ2V0KCkucGlwZShcbiAgICAgIHRhcChyZXN1bHQgPT5cbiAgICAgICAgcGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgcmVzdWx0LFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oVGVuYW50TWFuYWdlbWVudEdldEJ5SWQpXG4gIGdldEJ5SWQoeyBwYXRjaFN0YXRlIH06IFN0YXRlQ29udGV4dDxUZW5hbnRNYW5hZ2VtZW50LlN0YXRlPiwgeyBwYXlsb2FkIH06IFRlbmFudE1hbmFnZW1lbnRHZXRCeUlkKSB7XG4gICAgcmV0dXJuIHRoaXMudGVuYW50TWFuYWdlbWVudFNlcnZpY2UuZ2V0QnlJZChwYXlsb2FkKS5waXBlKFxuICAgICAgdGFwKHNlbGVjdGVkSXRlbSA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICBzZWxlY3RlZEl0ZW0sXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihUZW5hbnRNYW5hZ2VtZW50RGVsZXRlKVxuICBkZWxldGUoeyBkaXNwYXRjaCB9OiBTdGF0ZUNvbnRleHQ8VGVuYW50TWFuYWdlbWVudC5TdGF0ZT4sIHsgcGF5bG9hZCB9OiBUZW5hbnRNYW5hZ2VtZW50RGVsZXRlKSB7XG4gICAgcmV0dXJuIHRoaXMudGVuYW50TWFuYWdlbWVudFNlcnZpY2UuZGVsZXRlKHBheWxvYWQpLnBpcGUoc3dpdGNoTWFwKCgpID0+IGRpc3BhdGNoKG5ldyBUZW5hbnRNYW5hZ2VtZW50R2V0KCkpKSk7XG4gIH1cblxuICBAQWN0aW9uKFRlbmFudE1hbmFnZW1lbnRBZGQpXG4gIGFkZCh7IGRpc3BhdGNoIH06IFN0YXRlQ29udGV4dDxUZW5hbnRNYW5hZ2VtZW50LlN0YXRlPiwgeyBwYXlsb2FkIH06IFRlbmFudE1hbmFnZW1lbnRBZGQpIHtcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRNYW5hZ2VtZW50U2VydmljZS5hZGQocGF5bG9hZCkucGlwZShzd2l0Y2hNYXAoKCkgPT4gZGlzcGF0Y2gobmV3IFRlbmFudE1hbmFnZW1lbnRHZXQoKSkpKTtcbiAgfVxuXG4gIEBBY3Rpb24oVGVuYW50TWFuYWdlbWVudFVwZGF0ZSlcbiAgdXBkYXRlKHsgZGlzcGF0Y2gsIGdldFN0YXRlIH06IFN0YXRlQ29udGV4dDxUZW5hbnRNYW5hZ2VtZW50LlN0YXRlPiwgeyBwYXlsb2FkIH06IFRlbmFudE1hbmFnZW1lbnRVcGRhdGUpIHtcbiAgICByZXR1cm4gZGlzcGF0Y2gobmV3IFRlbmFudE1hbmFnZW1lbnRHZXRCeUlkKHBheWxvYWQuaWQpKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMudGVuYW50TWFuYWdlbWVudFNlcnZpY2UudXBkYXRlKHsgLi4uZ2V0U3RhdGUoKS5zZWxlY3RlZEl0ZW0sIC4uLnBheWxvYWQgfSkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IGRpc3BhdGNoKG5ldyBUZW5hbnRNYW5hZ2VtZW50R2V0KCkpKSxcbiAgICApO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/tenant-management-routing.module.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/tenant-management-routing.module.js new file mode 100644 index 0000000000..0fce1cd841 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/tenant-management-routing.module.js @@ -0,0 +1,32 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { TenantsResolver } from './resolvers/tenants.resolver'; +import { TenantsComponent } from './components/tenants/tenants.component'; +const ɵ0 = { requiredPolicy: 'AbpTenantManagement.Tenants' }; +/** @type {?} */ +const routes = [ + { path: '', redirectTo: 'tenants', pathMatch: 'full' }, + { + path: 'tenants', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ0, + children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }], + }, +]; +export class TenantManagementRoutingModule { +} +TenantManagementRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + providers: [TenantsResolver], + },] } +]; +export { ɵ0 }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3RlbmFudC1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7V0FRaEUsRUFBRSxjQUFjLEVBQUUsNkJBQTZCLEVBQUU7O01BTnJELE1BQU0sR0FBVztJQUNyQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO0lBQ3REO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUM7UUFDekMsSUFBSSxJQUFtRDtRQUN2RCxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7S0FDbEY7Q0FDRjtBQU9ELE1BQU0sT0FBTyw2QkFBNkI7OztZQUx6QyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7YUFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoR3VhcmQsIER5bmFtaWNMYXlvdXRDb21wb25lbnQsIFBlcm1pc3Npb25HdWFyZCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVGVuYW50c1Jlc29sdmVyIH0gZnJvbSAnLi9yZXNvbHZlcnMvdGVuYW50cy5yZXNvbHZlcic7XG5pbXBvcnQgeyBUZW5hbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RlbmFudHMvdGVuYW50cy5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAgeyBwYXRoOiAnJywgcmVkaXJlY3RUbzogJ3RlbmFudHMnLCBwYXRoTWF0Y2g6ICdmdWxsJyB9LFxuICB7XG4gICAgcGF0aDogJ3RlbmFudHMnLFxuICAgIGNvbXBvbmVudDogRHluYW1pY0xheW91dENvbXBvbmVudCxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZCwgUGVybWlzc2lvbkd1YXJkXSxcbiAgICBkYXRhOiB7IHJlcXVpcmVkUG9saWN5OiAnQWJwVGVuYW50TWFuYWdlbWVudC5UZW5hbnRzJyB9LFxuICAgIGNoaWxkcmVuOiBbeyBwYXRoOiAnJywgY29tcG9uZW50OiBUZW5hbnRzQ29tcG9uZW50LCByZXNvbHZlOiBbVGVuYW50c1Jlc29sdmVyXSB9XSxcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtUZW5hbnRzUmVzb2x2ZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBUZW5hbnRNYW5hZ2VtZW50Um91dGluZ01vZHVsZSB7fVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/lib/tenant-management.module.js b/npm/packs/ng/dist/tenant-management/esm2015/lib/tenant-management.module.js new file mode 100644 index 0000000000..cb928c3e2e --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/lib/tenant-management.module.js @@ -0,0 +1,29 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CoreModule } from '@abp/ng.core'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { NgModule } from '@angular/core'; +import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgxsModule } from '@ngxs/store'; +import { TableModule } from 'primeng/table'; +import { TenantsComponent } from './components/tenants/tenants.component'; +import { TenantManagementState } from './states/tenant-management.state'; +import { TenantManagementRoutingModule } from './tenant-management-routing.module'; +export class TenantManagementModule { +} +TenantManagementModule.decorators = [ + { type: NgModule, args: [{ + declarations: [TenantsComponent], + imports: [ + TenantManagementRoutingModule, + NgxsModule.forFeature([TenantManagementState]), + CoreModule, + TableModule, + ThemeSharedModule, + NgbDropdownModule, + ], + },] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi90ZW5hbnQtbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFhbkYsTUFBTSxPQUFPLHNCQUFzQjs7O1lBWGxDLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDaEMsT0FBTyxFQUFFO29CQUNQLDZCQUE2QjtvQkFDN0IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUM7b0JBQzlDLFVBQVU7b0JBQ1YsV0FBVztvQkFDWCxpQkFBaUI7b0JBQ2pCLGlCQUFpQjtpQkFDbEI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBOZ3hzTW9kdWxlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IFRlbmFudHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuL3N0YXRlcy90ZW5hbnQtbWFuYWdlbWVudC5zdGF0ZSc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50Um91dGluZ01vZHVsZSB9IGZyb20gJy4vdGVuYW50LW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtUZW5hbnRzQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIFRlbmFudE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlLFxuICAgIE5neHNNb2R1bGUuZm9yRmVhdHVyZShbVGVuYW50TWFuYWdlbWVudFN0YXRlXSksXG4gICAgQ29yZU1vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGVuYW50TWFuYWdlbWVudE1vZHVsZSB7fVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm2015/public-api.js b/npm/packs/ng/dist/tenant-management/esm2015/public-api.js new file mode 100644 index 0000000000..f7a8fdf145 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm2015/public-api.js @@ -0,0 +1,13 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantManagementModule } from './lib/tenant-management.module'; +export { TenantManagementGet, TenantManagementGetById, TenantManagementAdd, TenantManagementUpdate, TenantManagementDelete } from './lib/actions'; +export { TenantsComponent } from './lib/components'; +export { TENANT_MANAGEMENT_ROUTES } from './lib/constants'; +export {} from './lib/models'; +export { TenantsResolver } from './lib/resolvers'; +export { TenantManagementService } from './lib/services'; +export { TenantManagementState } from './lib/states'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1Q0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxrSUFBYyxlQUFlLENBQUM7QUFDOUIsaUNBQWMsa0JBQWtCLENBQUM7QUFDakMseUNBQWMsaUJBQWlCLENBQUM7QUFDaEMsZUFBYyxjQUFjLENBQUM7QUFDN0IsZ0NBQWMsaUJBQWlCLENBQUM7QUFDaEMsd0NBQWMsZ0JBQWdCLENBQUM7QUFDL0Isc0NBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvdGVuYW50LW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc29sdmVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/abp-ng.tenant-management.js b/npm/packs/ng/dist/tenant-management/esm5/abp-ng.tenant-management.js new file mode 100644 index 0000000000..7e4d6aa3c7 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/abp-ng.tenant-management.js @@ -0,0 +1,16 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { TenantManagementModule, TenantManagementGet, TenantManagementGetById, TenantManagementAdd, TenantManagementUpdate, TenantManagementDelete, TenantsComponent, TENANT_MANAGEMENT_ROUTES, TenantsResolver, TenantManagementService, TenantManagementState } from './public-api'; +export { TenantManagementAdd as ɵf, TenantManagementDelete as ɵh, TenantManagementGet as ɵd, TenantManagementGetById as ɵe, TenantManagementUpdate as ɵg } from './lib/actions/tenant-management.actions'; +export { TenantsComponent as ɵa } from './lib/components/tenants/tenants.component'; +export { TenantsResolver as ɵl } from './lib/resolvers/tenants.resolver'; +export { TenantManagementService as ɵj } from './lib/services'; +export { TenantManagementService as ɵc } from './lib/services/tenant-management.service'; +export { TenantManagementState as ɵb } from './lib/states/tenant-management.state'; +export { TenantManagementRoutingModule as ɵk } from './lib/tenant-management-routing.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRlbmFudC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImFicC1uZy50ZW5hbnQtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsdVFBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDcE0sT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBRWxGLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RixPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDakYsT0FBTyxFQUFDLDZCQUE2QixJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRBZGQgYXMgybVmLFRlbmFudE1hbmFnZW1lbnREZWxldGUgYXMgybVoLFRlbmFudE1hbmFnZW1lbnRHZXQgYXMgybVkLFRlbmFudE1hbmFnZW1lbnRHZXRCeUlkIGFzIMm1ZSxUZW5hbnRNYW5hZ2VtZW50VXBkYXRlIGFzIMm1Z30gZnJvbSAnLi9saWIvYWN0aW9ucy90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zJztcbmV4cG9ydCB7VGVuYW50c0NvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudCc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnQgYXMgybVpfSBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50LW1hbmFnZW1lbnQnO1xuZXhwb3J0IHtUZW5hbnRzUmVzb2x2ZXIgYXMgybVsfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdGVuYW50cy5yZXNvbHZlcic7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRTZXJ2aWNlIGFzIMm1an0gZnJvbSAnLi9saWIvc2VydmljZXMnO1xuZXhwb3J0IHtUZW5hbnRNYW5hZ2VtZW50U2VydmljZSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2VzL3RlbmFudC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuZXhwb3J0IHtUZW5hbnRNYW5hZ2VtZW50U3RhdGUgYXMgybVifSBmcm9tICcuL2xpYi9zdGF0ZXMvdGVuYW50LW1hbmFnZW1lbnQuc3RhdGUnO1xuZXhwb3J0IHtUZW5hbnRNYW5hZ2VtZW50Um91dGluZ01vZHVsZSBhcyDJtWt9IGZyb20gJy4vbGliL3RlbmFudC1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlJzsiXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/actions/index.js b/npm/packs/ng/dist/tenant-management/esm5/lib/actions/index.js new file mode 100644 index 0000000000..02fc8c5fbe --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/actions/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantManagementGet, TenantManagementGetById, TenantManagementAdd, TenantManagementUpdate, TenantManagementDelete } from './tenant-management.actions'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGtJQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/actions/tenant-management.actions.js b/npm/packs/ng/dist/tenant-management/esm5/lib/actions/tenant-management.actions.js new file mode 100644 index 0000000000..d23f1d8d38 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/actions/tenant-management.actions.js @@ -0,0 +1,72 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var TenantManagementGet = /** @class */ (function () { + function TenantManagementGet() { + } + TenantManagementGet.type = '[TenantManagement] Get'; + return TenantManagementGet; +}()); +export { TenantManagementGet }; +if (false) { + /** @type {?} */ + TenantManagementGet.type; +} +var TenantManagementGetById = /** @class */ (function () { + function TenantManagementGetById(payload) { + this.payload = payload; + } + TenantManagementGetById.type = '[TenantManagement] Get By Id'; + return TenantManagementGetById; +}()); +export { TenantManagementGetById }; +if (false) { + /** @type {?} */ + TenantManagementGetById.type; + /** @type {?} */ + TenantManagementGetById.prototype.payload; +} +var TenantManagementAdd = /** @class */ (function () { + function TenantManagementAdd(payload) { + this.payload = payload; + } + TenantManagementAdd.type = '[TenantManagement] Add'; + return TenantManagementAdd; +}()); +export { TenantManagementAdd }; +if (false) { + /** @type {?} */ + TenantManagementAdd.type; + /** @type {?} */ + TenantManagementAdd.prototype.payload; +} +var TenantManagementUpdate = /** @class */ (function () { + function TenantManagementUpdate(payload) { + this.payload = payload; + } + TenantManagementUpdate.type = '[TenantManagement] Update'; + return TenantManagementUpdate; +}()); +export { TenantManagementUpdate }; +if (false) { + /** @type {?} */ + TenantManagementUpdate.type; + /** @type {?} */ + TenantManagementUpdate.prototype.payload; +} +var TenantManagementDelete = /** @class */ (function () { + function TenantManagementDelete(payload) { + this.payload = payload; + } + TenantManagementDelete.type = '[TenantManagement] Delete'; + return TenantManagementDelete; +}()); +export { TenantManagementDelete }; +if (false) { + /** @type {?} */ + TenantManagementDelete.type; + /** @type {?} */ + TenantManagementDelete.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvYWN0aW9ucy90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQTtJQUFBO0lBRUEsQ0FBQztJQURpQix3QkFBSSxHQUFHLHdCQUF3QixDQUFDO0lBQ2xELDBCQUFDO0NBQUEsQUFGRCxJQUVDO1NBRlksbUJBQW1COzs7SUFDOUIseUJBQWdEOztBQUdsRDtJQUVFLGlDQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7SUFEdEIsNEJBQUksR0FBRyw4QkFBOEIsQ0FBQztJQUV4RCw4QkFBQztDQUFBLEFBSEQsSUFHQztTQUhZLHVCQUF1Qjs7O0lBQ2xDLDZCQUFzRDs7SUFDMUMsMENBQXNCOztBQUdwQztJQUVFLDZCQUFtQixPQUFvQztRQUFwQyxZQUFPLEdBQVAsT0FBTyxDQUE2QjtJQUFHLENBQUM7SUFEM0Msd0JBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUVsRCwwQkFBQztDQUFBLEFBSEQsSUFHQztTQUhZLG1CQUFtQjs7O0lBQzlCLHlCQUFnRDs7SUFDcEMsc0NBQTJDOztBQUd6RDtJQUVFLGdDQUFtQixPQUF1QztRQUF2QyxZQUFPLEdBQVAsT0FBTyxDQUFnQztJQUFHLENBQUM7SUFEOUMsMkJBQUksR0FBRywyQkFBMkIsQ0FBQztJQUVyRCw2QkFBQztDQUFBLEFBSEQsSUFHQztTQUhZLHNCQUFzQjs7O0lBQ2pDLDRCQUFtRDs7SUFDdkMseUNBQThDOztBQUc1RDtJQUVFLGdDQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7SUFEdEIsMkJBQUksR0FBRywyQkFBMkIsQ0FBQztJQUVyRCw2QkFBQztDQUFBLEFBSEQsSUFHQztTQUhZLHNCQUFzQjs7O0lBQ2pDLDRCQUFtRDs7SUFDdkMseUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudCB9IGZyb20gJy4uL21vZGVscy90ZW5hbnQtbWFuYWdlbWVudCc7XG5cbmV4cG9ydCBjbGFzcyBUZW5hbnRNYW5hZ2VtZW50R2V0IHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1RlbmFudE1hbmFnZW1lbnRdIEdldCc7XG59XG5cbmV4cG9ydCBjbGFzcyBUZW5hbnRNYW5hZ2VtZW50R2V0QnlJZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tUZW5hbnRNYW5hZ2VtZW50XSBHZXQgQnkgSWQnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogc3RyaW5nKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgVGVuYW50TWFuYWdlbWVudEFkZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tUZW5hbnRNYW5hZ2VtZW50XSBBZGQnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogVGVuYW50TWFuYWdlbWVudC5BZGRSZXF1ZXN0KSB7fVxufVxuXG5leHBvcnQgY2xhc3MgVGVuYW50TWFuYWdlbWVudFVwZGF0ZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tUZW5hbnRNYW5hZ2VtZW50XSBVcGRhdGUnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogVGVuYW50TWFuYWdlbWVudC5VcGRhdGVSZXF1ZXN0KSB7fVxufVxuXG5leHBvcnQgY2xhc3MgVGVuYW50TWFuYWdlbWVudERlbGV0ZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tUZW5hbnRNYW5hZ2VtZW50XSBEZWxldGUnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogc3RyaW5nKSB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/components/index.js b/npm/packs/ng/dist/tenant-management/esm5/lib/components/index.js new file mode 100644 index 0000000000..0b0f73e1ac --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/components/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantsComponent } from './tenants/tenants.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlDQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90ZW5hbnRzL3RlbmFudHMuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/components/tenants/tenants.component.js b/npm/packs/ng/dist/tenant-management/esm5/lib/components/tenants/tenants.component.js new file mode 100644 index 0000000000..701ff505df --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/components/tenants/tenants.component.js @@ -0,0 +1,326 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { ConfirmationService } from '@abp/ng.theme.shared'; +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { Select, Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { pluck, switchMap, take } from 'rxjs/operators'; +import { TenantManagementAdd, TenantManagementDelete, TenantManagementGetById, TenantManagementUpdate, } from '../../actions/tenant-management.actions'; +import { TenantManagementService } from '../../services'; +import { TenantManagementState } from '../../states/tenant-management.state'; +var TenantsComponent = /** @class */ (function () { + function TenantsComponent(confirmationService, tenantService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.tenantService = tenantService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + } + Object.defineProperty(TenantsComponent.prototype, "showInput", { + get: /** + * @return {?} + */ + function () { + return !this.defaultConnectionStringForm.get('useSharedDatabase').value; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(TenantsComponent.prototype, "connectionString", { + get: /** + * @return {?} + */ + function () { + return this.defaultConnectionStringForm.get('defaultConnectionString').value; + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + TenantsComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.modalService.open(this.modalWrapper); + }; + /** + * @private + * @return {?} + */ + TenantsComponent.prototype.createTenantForm = /** + * @private + * @return {?} + */ + function () { + this.tenantForm = this.fb.group({ + name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + }); + }; + /** + * @private + * @return {?} + */ + TenantsComponent.prototype.createDefaultConnectionStringForm = /** + * @private + * @return {?} + */ + function () { + this.defaultConnectionStringForm = this.fb.group({ + useSharedDatabase: this.useSharedDatabase, + defaultConnectionString: this.defaultConnectionString || '', + }); + }; + /** + * @param {?} id + * @return {?} + */ + TenantsComponent.prototype.onEditConnStr = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateConnStr, + onSave: (/** + * @return {?} + */ + function () { return _this.saveConnStr; }), + }; + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe(pluck('TenantManagementState', 'selectedItem'), switchMap((/** + * @param {?} selected + * @return {?} + */ + function (selected) { + _this.selected = selected; + return _this.tenantService.getDefaultConnectionString(id); + }))) + .subscribe((/** + * @param {?} fetchedConnectionString + * @return {?} + */ + function (fetchedConnectionString) { + _this.useSharedDatabase = fetchedConnectionString ? false : true; + _this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : ''; + _this.createDefaultConnectionStringForm(); + _this.openModal(); + })); + }; + /** + * @return {?} + */ + TenantsComponent.prototype.saveConnStr = /** + * @return {?} + */ + function () { + var _this = this; + this.tenantService + .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString }) + .pipe(take(1)) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @return {?} + */ + TenantsComponent.prototype.onManageFeatures = /** + * @param {?} id + * @return {?} + */ + function (id) { + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateFeatures, + onSave: (/** + * @return {?} + */ + function () { }), + }; + this.openModal(); + }; + /** + * @return {?} + */ + TenantsComponent.prototype.onAdd = /** + * @return {?} + */ + function () { + var _this = this; + this.selected = (/** @type {?} */ ({})); + this.createTenantForm(); + this.openModal(); + this.selectedModalContent = { + title: 'AbpTenantManagement::NewTenant', + template: this.mTemplateTenant, + onSave: (/** + * @return {?} + */ + function () { return _this.saveTenant; }), + }; + }; + /** + * @param {?} id + * @return {?} + */ + TenantsComponent.prototype.onEdit = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe(pluck('TenantManagementState', 'selectedItem')) + .subscribe((/** + * @param {?} selected + * @return {?} + */ + function (selected) { + _this.selected = selected; + _this.selectedModalContent = { + title: 'AbpTenantManagement::Edit', + template: _this.mTemplateTenant, + onSave: (/** + * @return {?} + */ + function () { return _this.saveTenant; }), + }; + _this.createTenantForm(); + _this.openModal(); + })); + }; + /** + * @return {?} + */ + TenantsComponent.prototype.saveTenant = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.tenantForm.valid) + return; + this.store + .dispatch(this.selected.id + ? new TenantManagementUpdate(tslib_1.__assign({}, this.tenantForm.value, { id: this.selected.id })) + : new TenantManagementAdd(this.tenantForm.value)) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @param {?} name + * @return {?} + */ + TenantsComponent.prototype.delete = /** + * @param {?} id + * @param {?} name + * @return {?} + */ + function (id, name) { + var _this = this; + this.confirmationService + .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + if (status === "confirm" /* confirm */) { + _this.store.dispatch(new TenantManagementDelete(id)); + } + })); + }; + TenantsComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-tenants', + template: "
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::ConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Features' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ selectedModalContent.title | abpLocalization }}\n
\n \n
\n\n
\n
\n \n
\n\n
\n \n \n
\n
\n
\n\n\n
\n
\n \n \n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n\n\n Manage Features\n\n" + }] } + ]; + /** @nocollapse */ + TenantsComponent.ctorParameters = function () { return [ + { type: ConfirmationService }, + { type: TenantManagementService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } + ]; }; + TenantsComponent.propDecorators = { + modalWrapper: [{ type: ViewChild, args: ['modalWrapper', { static: false },] }], + mTemplateConnStr: [{ type: ViewChild, args: ['mTemplateConnStr', { static: false },] }], + mTemplateFeatures: [{ type: ViewChild, args: ['mTemplateFeatures', { static: false },] }], + mTemplateTenant: [{ type: ViewChild, args: ['mTemplateTenant', { static: false },] }] + }; + tslib_1.__decorate([ + Select(TenantManagementState.get), + tslib_1.__metadata("design:type", Observable) + ], TenantsComponent.prototype, "datas$", void 0); + return TenantsComponent; +}()); +export { TenantsComponent }; +if (false) { + /** @type {?} */ + TenantsComponent.prototype.datas$; + /** @type {?} */ + TenantsComponent.prototype.selected; + /** @type {?} */ + TenantsComponent.prototype.tenantForm; + /** @type {?} */ + TenantsComponent.prototype.defaultConnectionStringForm; + /** @type {?} */ + TenantsComponent.prototype.defaultConnectionString; + /** @type {?} */ + TenantsComponent.prototype.useSharedDatabase; + /** @type {?} */ + TenantsComponent.prototype.selectedModalContent; + /** @type {?} */ + TenantsComponent.prototype.modalWrapper; + /** @type {?} */ + TenantsComponent.prototype.mTemplateConnStr; + /** @type {?} */ + TenantsComponent.prototype.mTemplateFeatures; + /** @type {?} */ + TenantsComponent.prototype.mTemplateTenant; + /** + * @type {?} + * @private + */ + TenantsComponent.prototype.confirmationService; + /** + * @type {?} + * @private + */ + TenantsComponent.prototype.tenantService; + /** + * @type {?} + * @private + */ + TenantsComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + TenantsComponent.prototype.fb; + /** + * @type {?} + * @private + */ + TenantsComponent.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixzQkFBc0IsR0FDdkIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUU3RTtJQTRDRSwwQkFDVSxtQkFBd0MsRUFDeEMsYUFBc0MsRUFDdEMsWUFBc0IsRUFDdEIsRUFBZSxFQUNmLEtBQVk7UUFKWix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUN0QyxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsVUFBSyxH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Q0FBQyxRQUFRLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3JEO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOztnQkE3SkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2Qiw0akxBQXVDO2lCQUN4Qzs7OztnQkFuQlEsbUJBQW1CO2dCQWFuQix1QkFBdUI7Z0JBVnZCLFFBQVE7Z0JBRFIsV0FBVztnQkFFSCxLQUFLOzs7K0JBNENuQixTQUFTLFNBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTttQ0FHM0MsU0FBUyxTQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtvQ0FHL0MsU0FBUyxTQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtrQ0FHaEQsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7SUFuQy9DO1FBREMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQzswQ0FDMUIsVUFBVTtvREFBa0I7SUF3SnRDLHVCQUFDO0NBQUEsQUE5SkQsSUE4SkM7U0ExSlksZ0JBQWdCOzs7SUFDM0Isa0NBQ29DOztJQUVwQyxvQ0FBd0I7O0lBRXhCLHNDQUFzQjs7SUFFdEIsdURBQXVDOztJQUV2QyxtREFBZ0M7O0lBRWhDLDZDQUEyQjs7SUFFM0IsZ0RBSUU7O0lBVUYsd0NBQytCOztJQUUvQiw0Q0FDbUM7O0lBRW5DLDZDQUNvQzs7SUFFcEMsMkNBQ2tDOzs7OztJQUdoQywrQ0FBZ0Q7Ozs7O0lBQ2hELHlDQUE4Qzs7Ozs7SUFDOUMsd0NBQThCOzs7OztJQUM5Qiw4QkFBdUI7Ozs7O0lBQ3ZCLGlDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgcGx1Y2ssIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIFRlbmFudE1hbmFnZW1lbnRBZGQsXG4gIFRlbmFudE1hbmFnZW1lbnREZWxldGUsXG4gIFRlbmFudE1hbmFnZW1lbnRHZXRCeUlkLFxuICBUZW5hbnRNYW5hZ2VtZW50VXBkYXRlLFxufSBmcm9tICcuLi8uLi9hY3Rpb25zL3RlbmFudC1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZXMvdGVuYW50LW1hbmFnZW1lbnQuc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtdGVuYW50cycsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW5hbnRzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVGVuYW50c0NvbXBvbmVudCB7XG4gIEBTZWxlY3QoVGVuYW50TWFuYWdlbWVudFN0YXRlLmdldClcbiAgZGF0YXMkOiBPYnNlcnZhYmxlPEFCUC5CYXNpY0l0ZW1bXT47XG5cbiAgc2VsZWN0ZWQ6IEFCUC5CYXNpY0l0ZW07XG5cbiAgdGVuYW50Rm9ybTogRm9ybUdyb3VwO1xuXG4gIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nRm9ybTogRm9ybUdyb3VwO1xuXG4gIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nOiBzdHJpbmc7XG5cbiAgdXNlU2hhcmVkRGF0YWJhc2U6IGJvb2xlYW47XG5cbiAgc2VsZWN0ZWRNb2RhbENvbnRlbnQ6IHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIG9uU2F2ZTogKCkgPT4gdm9pZDtcbiAgfTtcblxuICBnZXQgc2hvd0lucHV0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5kZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm0uZ2V0KCd1c2VTaGFyZWREYXRhYmFzZScpLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGNvbm5lY3Rpb25TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm0uZ2V0KCdkZWZhdWx0Q29ubmVjdGlvblN0cmluZycpLnZhbHVlO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWxXcmFwcGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1vZGFsV3JhcHBlcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdtVGVtcGxhdGVDb25uU3RyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1UZW1wbGF0ZUNvbm5TdHI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgnbVRlbXBsYXRlRmVhdHVyZXMnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbVRlbXBsYXRlRmVhdHVyZXM6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgnbVRlbXBsYXRlVGVuYW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1UZW1wbGF0ZVRlbmFudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW5hbnRTZXJ2aWNlOiBUZW5hbnRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICkge31cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLm1vZGFsV3JhcHBlcik7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRlbmFudEZvcm0oKSB7XG4gICAgdGhpcy50ZW5hbnRGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBbdGhpcy5zZWxlY3RlZC5uYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV1dLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm0oKSB7XG4gICAgdGhpcy5kZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHVzZVNoYXJlZERhdGFiYXNlOiB0aGlzLnVzZVNoYXJlZERhdGFiYXNlLFxuICAgICAgZGVmYXVsdENvbm5lY3Rpb25TdHJpbmc6IHRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcgfHwgJycsXG4gICAgfSk7XG4gIH1cblxuICBvbkVkaXRDb25uU3RyKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9kYWxDb250ZW50ID0ge1xuICAgICAgdGl0bGU6IHRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5zZWxlY3RlZC5pZCA/ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpFZGl0JyA6ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpOZXdUZW5hbnQnLFxuICAgICAgdGVtcGxhdGU6IHRoaXMubVRlbXBsYXRlQ29ublN0cixcbiAgICAgIG9uU2F2ZTogKCkgPT4gdGhpcy5zYXZlQ29ublN0cixcbiAgICB9O1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgVGVuYW50TWFuYWdlbWVudEdldEJ5SWQoaWQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHBsdWNrKCdUZW5hbnRNYW5hZ2VtZW50U3RhdGUnLCAnc2VsZWN0ZWRJdGVtJyksXG4gICAgICAgIHN3aXRjaE1hcChzZWxlY3RlZCA9PiB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICAgIHJldHVybiB0aGlzLnRlbmFudFNlcnZpY2UuZ2V0RGVmYXVsdENvbm5lY3Rpb25TdHJpbmcoaWQpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZmV0Y2hlZENvbm5lY3Rpb25TdHJpbmcgPT4ge1xuICAgICAgICB0aGlzLnVzZVNoYXJlZERhdGFiYXNlID0gZmV0Y2hlZENvbm5lY3Rpb25TdHJpbmcgPyBmYWxzZSA6IHRydWU7XG4gICAgICAgIHRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcgPSBmZXRjaGVkQ29ubmVjdGlvblN0cmluZyA/IGZldGNoZWRDb25uZWN0aW9uU3RyaW5nIDogJyc7XG4gICAgICAgIHRoaXMuY3JlYXRlRGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtKCk7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHNhdmVDb25uU3RyKCkge1xuICAgIHRoaXMudGVuYW50U2VydmljZVxuICAgICAgLnVwZGF0ZURlZmF1bHRDb25uZWN0aW9uU3RyaW5nKHsgaWQ6IHRoaXMuc2VsZWN0ZWQuaWQsIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nOiB0aGlzLmNvbm5lY3Rpb25TdHJpbmcgfSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKSk7XG4gIH1cblxuICBvbk1hbmFnZUZlYXR1cmVzKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9kYWxDb250ZW50ID0ge1xuICAgICAgdGl0bGU6IHRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5zZWxlY3RlZC5pZCA/ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpFZGl0JyA6ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpOZXdUZW5hbnQnLFxuICAgICAgdGVtcGxhdGU6IHRoaXMubVRlbXBsYXRlRmVhdHVyZXMsXG4gICAgICBvblNhdmU6ICgpID0+IHt9LFxuICAgIH07XG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIG9uQWRkKCkge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB7fSBhcyBBQlAuQmFzaWNJdGVtO1xuICAgIHRoaXMuY3JlYXRlVGVuYW50Rm9ybSgpO1xuICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGFsQ29udGVudCA9IHtcbiAgICAgIHRpdGxlOiAnQWJwVGVuYW50TWFuYWdlbWVudDo6TmV3VGVuYW50JyxcbiAgICAgIHRlbXBsYXRlOiB0aGlzLm1UZW1wbGF0ZVRlbmFudCxcbiAgICAgIG9uU2F2ZTogKCkgPT4gdGhpcy5zYXZlVGVuYW50LFxuICAgIH07XG4gIH1cblxuICBvbkVkaXQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgVGVuYW50TWFuYWdlbWVudEdldEJ5SWQoaWQpKVxuICAgICAgLnBpcGUocGx1Y2soJ1RlbmFudE1hbmFnZW1lbnRTdGF0ZScsICdzZWxlY3RlZEl0ZW0nKSlcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RhbENvbnRlbnQgPSB7XG4gICAgICAgICAgdGl0bGU6ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpFZGl0JyxcbiAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy5tVGVtcGxhdGVUZW5hbnQsXG4gICAgICAgICAgb25TYXZlOiAoKSA9PiB0aGlzLnNhdmVUZW5hbnQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY3JlYXRlVGVuYW50Rm9ybSgpO1xuICAgICAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBzYXZlVGVuYW50KCkge1xuICAgIGlmICghdGhpcy50ZW5hbnRGb3JtLnZhbGlkKSByZXR1cm47XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuaWRcbiAgICAgICAgICA/IG5ldyBUZW5hbnRNYW5hZ2VtZW50VXBkYXRlKHsgLi4udGhpcy50ZW5hbnRGb3JtLnZhbHVlLCBpZDogdGhpcy5zZWxlY3RlZC5pZCB9KVxuICAgICAgICAgIDogbmV3IFRlbmFudE1hbmFnZW1lbnRBZGQodGhpcy50ZW5hbnRGb3JtLnZhbHVlKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5tb2RhbFNlcnZpY2UuZGlzbWlzc0FsbCgpKTtcbiAgfVxuXG4gIGRlbGV0ZShpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2VcbiAgICAgIC53YXJuKCdBYnBUZW5hbnRNYW5hZ2VtZW50OjpUZW5hbnREZWxldGlvbkNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnQWJwVGVuYW50TWFuYWdlbWVudDo6QXJlWW91U3VyZScsIHtcbiAgICAgICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtczogW25hbWVdLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogVG9hc3Rlci5TdGF0dXMpID0+IHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gVG9hc3Rlci5TdGF0dXMuY29uZmlybSkge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFRlbmFudE1hbmFnZW1lbnREZWxldGUoaWQpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/constants/index.js b/npm/packs/ng/dist/tenant-management/esm5/lib/constants/index.js new file mode 100644 index 0000000000..fd62602266 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/constants/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TENANT_MANAGEMENT_ROUTES } from './routes'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbnN0YW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEseUNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXMnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/constants/routes.js b/npm/packs/ng/dist/tenant-management/esm5/lib/constants/routes.js new file mode 100644 index 0000000000..88df0134ff --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/constants/routes.js @@ -0,0 +1,23 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +export var TENANT_MANAGEMENT_ROUTES = (/** @type {?} */ ([ + { + name: 'TenantManagement', + path: 'tenant-management', + parentName: 'Administration', + layout: "application" /* application */, + children: [ + { + path: 'tenants', + name: 'Tenants', + order: 1, + requiredPolicy: 'AbpTenantManagement.Tenants', + parentName: 'TenantManagement', + }, + ], + }, +])); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxLQUFPLHdCQUF3QixHQUFHLG1CQUFBO0lBQ3RDO1FBQ0UsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFVBQVUsRUFBRSxnQkFBZ0I7UUFDNUIsTUFBTSxpQ0FBeUI7UUFDL0IsUUFBUSxFQUFFO1lBQ1I7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsY0FBYyxFQUFFLDZCQUE2QjtnQkFDN0MsVUFBVSxFQUFFLGtCQUFrQjthQUMvQjtTQUNGO0tBQ0Y7Q0FDRixFQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgZUxheW91dFR5cGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuXG5leHBvcnQgY29uc3QgVEVOQU5UX01BTkFHRU1FTlRfUk9VVEVTID0gW1xuICB7XG4gICAgbmFtZTogJ1RlbmFudE1hbmFnZW1lbnQnLFxuICAgIHBhdGg6ICd0ZW5hbnQtbWFuYWdlbWVudCcsXG4gICAgcGFyZW50TmFtZTogJ0FkbWluaXN0cmF0aW9uJyxcbiAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxuICAgIGNoaWxkcmVuOiBbXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICd0ZW5hbnRzJyxcbiAgICAgICAgbmFtZTogJ1RlbmFudHMnLFxuICAgICAgICBvcmRlcjogMSxcbiAgICAgICAgcmVxdWlyZWRQb2xpY3k6ICdBYnBUZW5hbnRNYW5hZ2VtZW50LlRlbmFudHMnLFxuICAgICAgICBwYXJlbnROYW1lOiAnVGVuYW50TWFuYWdlbWVudCcsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dIGFzIEFCUC5GdWxsUm91dGVbXTtcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/models/index.js b/npm/packs/ng/dist/tenant-management/esm5/lib/models/index.js new file mode 100644 index 0000000000..e018898bb1 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/models/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './tenant-management'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsZUFBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGVuYW50LW1hbmFnZW1lbnQnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/models/tenant-management.js b/npm/packs/ng/dist/tenant-management/esm5/lib/models/tenant-management.js new file mode 100644 index 0000000000..ad6e89c9e3 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/models/tenant-management.js @@ -0,0 +1,59 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var TenantManagement; +(function (TenantManagement) { + /** + * @record + */ + function State() { } + TenantManagement.State = State; + if (false) { + /** @type {?} */ + State.prototype.result; + /** @type {?} */ + State.prototype.selectedItem; + } + /** + * @record + */ + function Item() { } + TenantManagement.Item = Item; + if (false) { + /** @type {?} */ + Item.prototype.id; + /** @type {?} */ + Item.prototype.name; + } + /** + * @record + */ + function AddRequest() { } + TenantManagement.AddRequest = AddRequest; + if (false) { + /** @type {?} */ + AddRequest.prototype.name; + } + /** + * @record + */ + function UpdateRequest() { } + TenantManagement.UpdateRequest = UpdateRequest; + if (false) { + /** @type {?} */ + UpdateRequest.prototype.id; + } + /** + * @record + */ + function DefaultConnectionStringRequest() { } + TenantManagement.DefaultConnectionStringRequest = DefaultConnectionStringRequest; + if (false) { + /** @type {?} */ + DefaultConnectionStringRequest.prototype.id; + /** @type {?} */ + DefaultConnectionStringRequest.prototype.defaultConnectionString; + } +})(TenantManagement || (TenantManagement = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL21vZGVscy90ZW5hbnQtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsTUFBTSxLQUFXLGdCQUFnQixDQXlCaEM7QUF6QkQsV0FBaUIsZ0JBQWdCOzs7O0lBQy9CLG9CQUdDOzs7O1FBRkMsdUJBQWlCOztRQUNqQiw2QkFBbUI7Ozs7O0lBS3JCLG1CQUdDOzs7O1FBRkMsa0JBQVc7O1FBQ1gsb0JBQWE7Ozs7O0lBR2YseUJBRUM7Ozs7UUFEQywwQkFBYTs7Ozs7SUFHZiw0QkFFQzs7OztRQURDLDJCQUFXOzs7OztJQUdiLDZDQUdDOzs7O1FBRkMsNENBQVc7O1FBQ1gsaUVBQWdDOztBQUVwQyxDQUFDLEVBekJnQixnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBeUJoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgVGVuYW50TWFuYWdlbWVudCB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xuICAgIHJlc3VsdDogUmVzcG9uc2U7XG4gICAgc2VsZWN0ZWRJdGVtOiBJdGVtO1xuICB9XG5cbiAgZXhwb3J0IHR5cGUgUmVzcG9uc2UgPSBBQlAuUGFnZWRSZXNwb25zZTxJdGVtPjtcblxuICBleHBvcnQgaW50ZXJmYWNlIEl0ZW0ge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBBZGRSZXF1ZXN0IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJlcXVlc3QgZXh0ZW5kcyBBZGRSZXF1ZXN0IHtcbiAgICBpZDogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0Q29ubmVjdGlvblN0cmluZ1JlcXVlc3Qge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZGVmYXVsdENvbm5lY3Rpb25TdHJpbmc6IHN0cmluZztcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/resolvers/index.js b/npm/packs/ng/dist/tenant-management/esm5/lib/resolvers/index.js new file mode 100644 index 0000000000..2dc325d54e --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/resolvers/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantsResolver } from './tenants.resolver'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3Jlc29sdmVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsZ0NBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RlbmFudHMucmVzb2x2ZXInO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/resolvers/tenants.resolver.js b/npm/packs/ng/dist/tenant-management/esm5/lib/resolvers/tenants.resolver.js new file mode 100644 index 0000000000..62f98b6b28 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/resolvers/tenants.resolver.js @@ -0,0 +1,43 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { TenantManagementGet } from '../actions/tenant-management.actions'; +import { TenantManagementState } from '../states/tenant-management.state'; +var TenantsResolver = /** @class */ (function () { + function TenantsResolver(store) { + this.store = store; + } + /** + * @return {?} + */ + TenantsResolver.prototype.resolve = /** + * @return {?} + */ + function () { + /** @type {?} */ + var data = this.store.selectSnapshot(TenantManagementState.get); + return data && data.length + ? null + : this.store.dispatch(new TenantManagementGet()); + }; + TenantsResolver.decorators = [ + { type: Injectable } + ]; + /** @nocollapse */ + TenantsResolver.ctorParameters = function () { return [ + { type: Store } + ]; }; + return TenantsResolver; +}()); +export { TenantsResolver }; +if (false) { + /** + * @type {?} + * @private + */ + TenantsResolver.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvcmVzb2x2ZXJzL3RlbmFudHMucmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUxRTtJQUVFLHlCQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7SUFFcEMsaUNBQU87OztJQUFQOztZQUNRLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7UUFDakUsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU07WUFDekIsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7Z0JBVEYsVUFBVTs7OztnQkFMRixLQUFLOztJQWVkLHNCQUFDO0NBQUEsQUFWRCxJQVVDO1NBVFksZUFBZTs7Ozs7O0lBQ2QsZ0NBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzb2x2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFRlbmFudE1hbmFnZW1lbnRHZXQgfSBmcm9tICcuLi9hY3Rpb25zL3RlbmFudC1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudCB9IGZyb20gJy4uL21vZGVscy90ZW5hbnQtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMvdGVuYW50LW1hbmFnZW1lbnQuc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGVuYW50c1Jlc29sdmVyIGltcGxlbWVudHMgUmVzb2x2ZTxUZW5hbnRNYW5hZ2VtZW50LlN0YXRlPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIHJlc29sdmUoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoVGVuYW50TWFuYWdlbWVudFN0YXRlLmdldCk7XG4gICAgcmV0dXJuIGRhdGEgJiYgZGF0YS5sZW5ndGhcbiAgICAgPyBudWxsIFxuICAgICA6IHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFRlbmFudE1hbmFnZW1lbnRHZXQoKSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/services/index.js b/npm/packs/ng/dist/tenant-management/esm5/lib/services/index.js new file mode 100644 index 0000000000..1848d84185 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/services/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantManagementService } from './tenant-management.service'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx3Q0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGVuYW50LW1hbmFnZW1lbnQuc2VydmljZSc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/services/tenant-management.service.js b/npm/packs/ng/dist/tenant-management/esm5/lib/services/tenant-management.service.js new file mode 100644 index 0000000000..3689134f9e --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/services/tenant-management.service.js @@ -0,0 +1,154 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { RestService } from '@abp/ng.core'; +import * as i0 from "@angular/core"; +import * as i1 from "@abp/ng.core"; +var TenantManagementService = /** @class */ (function () { + function TenantManagementService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + TenantManagementService.prototype.get = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/multi-tenancy/tenant', + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + TenantManagementService.prototype.getById = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/multi-tenancy/tenant/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + TenantManagementService.prototype.delete = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'DELETE', + url: "/api/multi-tenancy/tenant/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + TenantManagementService.prototype.add = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: "/api/multi-tenancy/tenant", + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + TenantManagementService.prototype.update = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var url = "/api/multi-tenancy/tenant/" + body.id; + delete body.id; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + TenantManagementService.prototype.getDefaultConnectionString = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var url = "/api/multi-tenancy/tenant/" + id + "/defaultConnectionString"; + /** @type {?} */ + var request = { + method: 'GET', + responseType: "text" /* Text */, + url: url, + }; + return this.rest.request(request); + }; + /** + * @param {?} payload + * @return {?} + */ + TenantManagementService.prototype.updateDefaultConnectionString = /** + * @param {?} payload + * @return {?} + */ + function (payload) { + /** @type {?} */ + var url = "/api/multi-tenancy/tenant/" + payload.id + "/defaultConnectionString"; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + params: { defaultConnectionString: payload.defaultConnectionString }, + }; + return this.rest.request(request); + }; + TenantManagementService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + TenantManagementService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ TenantManagementService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function TenantManagementService_Factory() { return new TenantManagementService(i0.ɵɵinject(i1.RestService)); }, token: TenantManagementService, providedIn: "root" }); + return TenantManagementService; +}()); +export { TenantManagementService }; +if (false) { + /** + * @type {?} + * @private + */ + TenantManagementService.prototype.rest; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdGVuYW50LW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sY0FBYyxDQUFDOzs7QUFHdEQ7SUFJRSxpQ0FBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFHLENBQUM7Ozs7SUFFekMscUNBQUc7OztJQUFIOztZQUNRLE9BQU8sR0FBdUI7WUFDbEMsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsMkJBQTJCO1NBQ2pDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBa0MsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7Ozs7SUFFRCx5Q0FBTzs7OztJQUFQLFVBQVEsRUFBVTs7WUFDVixPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLCtCQUE2QixFQUFJO1NBQ3ZDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBc0IsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7Ozs7SUFFRCx3Q0FBTTs7OztJQUFOLFVBQU8sRUFBVTs7WUFDVCxPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLEdBQUcsRUFBRSwrQkFBNkIsRUFBSTtTQUN2QztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQWEsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7Ozs7SUFFRCxxQ0FBRzs7OztJQUFILFVBQUksSUFBaUM7O1lBQzdCLE9BQU8sR0FBOEM7WUFDekQsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsMkJBQTJCO1lBQ2hDLElBQUksTUFBQTtTQUNMO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBNkMsT0FBTyxDQUFDLENBQUM7SUFDaEYsQ0FBQzs7Ozs7SUFFRCx3Q0FBTTs7OztJQUFOLFVBQU8sSUFBb0M7O1lBQ25DLEdBQUcsR0FBRywrQkFBNkIsSUFBSSxDQUFDLEVBQUk7UUFDbEQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDOztZQUVULE9BQU8sR0FBaUQ7WUFDNUQsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEtBQUE7WUFDSCxJQUFJLE1BQUE7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQTZDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hGLENBQUM7Ozs7O0lBRUQsNERBQTBCOzs7O0lBQTFCLFVBQTJCLEVBQVU7O1lBQzdCLEdBQUcsR0FBRywrQkFBNkIsRUFBRSw2QkFBMEI7O1lBRS9ELE9BQU8sR0FBa0U7WUFDN0UsTUFBTSxFQUFFLEtBQUs7WUFDYixZQUFZLG1CQUF3QjtZQUNwQyxHQUFHLEtBQUE7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQTBELE9BQU8sQ0FBQyxDQUFDO0lBQzdGLENBQUM7Ozs7O0lBRUQsK0RBQTZCOzs7O0lBQTdCLFVBQThCLE9BQXdEOztZQUM5RSxHQUFHLEdBQUcsK0JBQTZCLE9BQU8sQ0FBQyxFQUFFLDZCQUEwQjs7WUFFdkUsT0FBTyxHQUFrRTtZQUM3RSxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsS0FBQTtZQUNILE1BQU0sRUFBRSxFQUFFLHVCQUF1QixFQUFFLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRTtTQUNyRTtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQXVELE9BQU8sQ0FBQyxDQUFDO0lBQzFGLENBQUM7O2dCQTVFRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQUxRLFdBQVc7OztrQ0FGcEI7Q0FrRkMsQUE3RUQsSUE2RUM7U0ExRVksdUJBQXVCOzs7Ozs7SUFDdEIsdUNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UsIFJlc3QsIEFCUCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50IH0gZnJvbSAnLi4vbW9kZWxzL3RlbmFudC1tYW5hZ2VtZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudE1hbmFnZW1lbnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0OiBSZXN0U2VydmljZSkge31cblxuICBnZXQoKTogT2JzZXJ2YWJsZTxUZW5hbnRNYW5hZ2VtZW50LlJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PG51bGw+ID0ge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogJy9hcGkvbXVsdGktdGVuYW5jeS90ZW5hbnQnLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgVGVuYW50TWFuYWdlbWVudC5SZXNwb25zZT4ocmVxdWVzdCk7XG4gIH1cblxuICBnZXRCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFCUC5CYXNpY0l0ZW0+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8bnVsbD4gPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiBgL2FwaS9tdWx0aS10ZW5hbmN5L3RlbmFudC8ke2lkfWAsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxudWxsLCBBQlAuQmFzaWNJdGVtPihyZXF1ZXN0KTtcbiAgfVxuXG4gIGRlbGV0ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PG51bGw+ID0ge1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIHVybDogYC9hcGkvbXVsdGktdGVuYW5jeS90ZW5hbnQvJHtpZH1gLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgbnVsbD4ocmVxdWVzdCk7XG4gIH1cblxuICBhZGQoYm9keTogVGVuYW50TWFuYWdlbWVudC5BZGRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxBQlAuQmFzaWNJdGVtPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PFRlbmFudE1hbmFnZW1lbnQuQWRkUmVxdWVzdD4gPSB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogYC9hcGkvbXVsdGktdGVuYW5jeS90ZW5hbnRgLFxuICAgICAgYm9keSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PFRlbmFudE1hbmFnZW1lbnQuQWRkUmVxdWVzdCwgQUJQLkJhc2ljSXRlbT4ocmVxdWVzdCk7XG4gIH1cblxuICB1cGRhdGUoYm9keTogVGVuYW50TWFuYWdlbWVudC5VcGRhdGVSZXF1ZXN0KTogT2JzZXJ2YWJsZTxBQlAuQmFzaWNJdGVtPiB7XG4gICAgY29uc3QgdXJsID0gYC9hcGkvbXVsdGktdGVuYW5jeS90ZW5hbnQvJHtib2R5LmlkfWA7XG4gICAgZGVsZXRlIGJvZHkuaWQ7XG5cbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8VGVuYW50TWFuYWdlbWVudC5VcGRhdGVSZXF1ZXN0PiA9IHtcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICB1cmwsXG4gICAgICBib2R5LFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8VGVuYW50TWFuYWdlbWVudC5BZGRSZXF1ZXN0LCBBQlAuQmFzaWNJdGVtPihyZXF1ZXN0KTtcbiAgfVxuXG4gIGdldERlZmF1bHRDb25uZWN0aW9uU3RyaW5nKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGNvbnN0IHVybCA9IGAvYXBpL211bHRpLXRlbmFuY3kvdGVuYW50LyR7aWR9L2RlZmF1bHRDb25uZWN0aW9uU3RyaW5nYDtcblxuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxUZW5hbnRNYW5hZ2VtZW50LkRlZmF1bHRDb25uZWN0aW9uU3RyaW5nUmVxdWVzdD4gPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgcmVzcG9uc2VUeXBlOiBSZXN0LlJlc3BvbnNlVHlwZS5UZXh0LFxuICAgICAgdXJsLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PFRlbmFudE1hbmFnZW1lbnQuRGVmYXVsdENvbm5lY3Rpb25TdHJpbmdSZXF1ZXN0LCBzdHJpbmc+KHJlcXVlc3QpO1xuICB9XG5cbiAgdXBkYXRlRGVmYXVsdENvbm5lY3Rpb25TdHJpbmcocGF5bG9hZDogVGVuYW50TWFuYWdlbWVudC5EZWZhdWx0Q29ubmVjdGlvblN0cmluZ1JlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAvYXBpL211bHRpLXRlbmFuY3kvdGVuYW50LyR7cGF5bG9hZC5pZH0vZGVmYXVsdENvbm5lY3Rpb25TdHJpbmdgO1xuXG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PFRlbmFudE1hbmFnZW1lbnQuRGVmYXVsdENvbm5lY3Rpb25TdHJpbmdSZXF1ZXN0PiA9IHtcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICB1cmwsXG4gICAgICBwYXJhbXM6IHsgZGVmYXVsdENvbm5lY3Rpb25TdHJpbmc6IHBheWxvYWQuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcgfSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxUZW5hbnRNYW5hZ2VtZW50LkRlZmF1bHRDb25uZWN0aW9uU3RyaW5nUmVxdWVzdCwgYW55PihyZXF1ZXN0KTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/states/index.js b/npm/packs/ng/dist/tenant-management/esm5/lib/states/index.js new file mode 100644 index 0000000000..009910139b --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/states/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantManagementState } from './tenant-management.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsc0NBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RlbmFudC1tYW5hZ2VtZW50LnN0YXRlJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/states/tenant-management.state.js b/npm/packs/ng/dist/tenant-management/esm5/lib/states/tenant-management.state.js new file mode 100644 index 0000000000..9cde8123b8 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/states/tenant-management.state.js @@ -0,0 +1,180 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Action, Selector, State } from '@ngxs/store'; +import { switchMap, tap } from 'rxjs/operators'; +import { TenantManagementAdd, TenantManagementDelete, TenantManagementGet, TenantManagementGetById, TenantManagementUpdate, } from '../actions/tenant-management.actions'; +import { TenantManagementService } from '../services/tenant-management.service'; +var TenantManagementState = /** @class */ (function () { + function TenantManagementState(tenantManagementService) { + this.tenantManagementService = tenantManagementService; + } + /** + * @param {?} __0 + * @return {?} + */ + TenantManagementState.get = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var result = _a.result; + return result.items || []; + }; + /** + * @param {?} __0 + * @return {?} + */ + TenantManagementState.prototype.get = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var patchState = _a.patchState; + return this.tenantManagementService.get().pipe(tap((/** + * @param {?} result + * @return {?} + */ + function (result) { + return patchState({ + result: result, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.getById = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.tenantManagementService.getById(payload).pipe(tap((/** + * @param {?} selectedItem + * @return {?} + */ + function (selectedItem) { + return patchState({ + selectedItem: selectedItem, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.delete = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.tenantManagementService.delete(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new TenantManagementGet()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.add = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.tenantManagementService.add(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new TenantManagementGet()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.update = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var _this = this; + var dispatch = _a.dispatch, getState = _a.getState; + var payload = _b.payload; + return dispatch(new TenantManagementGetById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + function () { return _this.tenantManagementService.update(tslib_1.__assign({}, getState().selectedItem, payload)); })), switchMap((/** + * @return {?} + */ + function () { return dispatch(new TenantManagementGet()); }))); + }; + tslib_1.__decorate([ + Action(TenantManagementGet), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "get", null); + tslib_1.__decorate([ + Action(TenantManagementGetById), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, TenantManagementGetById]), + tslib_1.__metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "getById", null); + tslib_1.__decorate([ + Action(TenantManagementDelete), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, TenantManagementDelete]), + tslib_1.__metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "delete", null); + tslib_1.__decorate([ + Action(TenantManagementAdd), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, TenantManagementAdd]), + tslib_1.__metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "add", null); + tslib_1.__decorate([ + Action(TenantManagementUpdate), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, TenantManagementUpdate]), + tslib_1.__metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "update", null); + tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Array) + ], TenantManagementState, "get", null); + TenantManagementState = tslib_1.__decorate([ + State({ + name: 'TenantManagementState', + defaults: (/** @type {?} */ ({ result: {}, selectedItem: {} })), + }), + tslib_1.__metadata("design:paramtypes", [TenantManagementService]) + ], TenantManagementState); + return TenantManagementState; +}()); +export { TenantManagementState }; +if (false) { + /** + * @type {?} + * @private + */ + TenantManagementState.prototype.tenantManagementService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQuc3RhdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy90ZW5hbnQtbWFuYWdlbWVudC5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUN2QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztJQWE5RSwrQkFBb0IsdUJBQWdEO1FBQWhELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFBRyxDQUFDOzs7OztJQUpqRSx5QkFBRzs7OztJQUFWLFVBQVcsRUFBa0M7WUFBaEMsa0JBQU07UUFDakIsT0FBTyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs7OztJQUtELG1DQUFHOzs7O0lBQUgsVUFBSSxFQUFvRDtZQUFsRCwwQkFBVTtRQUNkLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDNUMsR0FBRzs7OztRQUFDLFVBQUEsTUFBTTtZQUNSLE9BQUEsVUFBVSxDQUFDO2dCQUNULE1BQU0sUUFBQTthQUNQLENBQUM7UUFGRixDQUVFLEVBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7Ozs7O0lBR0QsdUNBQU87Ozs7O0lBQVAsVUFBUSxFQUFvRCxFQUFFLEVBQW9DO1lBQXhGLDBCQUFVO1lBQTRDLG9CQUFPO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZELEdBQUc7Ozs7UUFBQyxVQUFBLFlBQVk7WUFDZCxPQUFBLFVBQVUsQ0FBQztnQkFDVCxZQUFZLGNBQUE7YUFDYixDQUFDO1FBRkYsQ0FFRSxFQUNILENBQ0YsQ0FBQztJQUNKLENBQUM7Ozs7OztJQUdELHNDQUFNOzs7OztJQUFOLFVBQU8sRUFBa0QsRUFBRSxFQUFtQztZQUFyRixzQkFBUTtZQUE0QyxvQkFBTztRQUNsRSxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVM7OztRQUFDLGNBQU0sT0FBQSxRQUFRLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLEVBQW5DLENBQW1DLEVBQUMsQ0FBQyxDQUFDO0lBQ2pILENBQUM7Ozs7OztJQUdELG1DQUFHOzs7OztJQUFILFVBQUksRUFBa0QsRUFBRSxFQUFnQztZQUFsRixzQkFBUTtZQUE0QyxvQkFBTztRQUMvRCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVM7OztRQUFDLGNBQU0sT0FBQSxRQUFRLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLEVBQW5DLENBQW1DLEVBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7Ozs7OztJQUdELHNDQUFNOzs7OztJQUFOLFVBQU8sRUFBNEQsRUFBRSxFQUFtQztRQUR4RyxpQkFNQztZQUxRLHNCQUFRLEVBQUUsc0JBQVE7WUFBNEMsb0JBQU87UUFDNUUsT0FBTyxRQUFRLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNELFNBQVM7OztRQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxzQkFBTSxRQUFRLEVBQUUsQ0FBQyxZQUFZLEVBQUssT0FBTyxFQUFHLEVBQS9FLENBQStFLEVBQUMsRUFDaEcsU0FBUzs7O1FBQUMsY0FBTSxPQUFBLFFBQVEsQ0FBQyxJQUFJLG1CQUFtQixFQUFFLENBQUMsRUFBbkMsQ0FBbUMsRUFBQyxDQUNyRCxDQUFDO0lBQ0osQ0FBQztJQXJDRDtRQURDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQzs7OztvREFTM0I7SUFHRDtRQURDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQzs7eURBQzJDLHVCQUF1Qjs7d0RBUWpHO0lBR0Q7UUFEQyxNQUFNLENBQUMsc0JBQXNCLENBQUM7O3lEQUN5QyxzQkFBc0I7O3VEQUU3RjtJQUdEO1FBREMsTUFBTSxDQUFDLG1CQUFtQixDQUFDOzt5REFDeUMsbUJBQW1COztvREFFdkY7SUFHRDtRQURDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQzs7eURBQ21ELHNCQUFzQjs7dURBS3ZHO0lBNUNEO1FBREMsUUFBUSxFQUFFOzs7OzBDQUdWO0lBSlUscUJBQXFCO1FBSmpDLEtBQUssQ0FBeUI7WUFDN0IsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixRQUFRLEVBQUUsbUJBQUEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsRUFBMEI7U0FDckUsQ0FBQztpREFPNkMsdUJBQXVCO09BTnpELHFCQUFxQixDQStDakM7SUFBRCw0QkFBQztDQUFBLElBQUE7U0EvQ1kscUJBQXFCOzs7Ozs7SUFNcEIsd0RBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uLCBTZWxlY3RvciwgU3RhdGUsIFN0YXRlQ29udGV4dCB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgVGVuYW50TWFuYWdlbWVudEFkZCxcbiAgVGVuYW50TWFuYWdlbWVudERlbGV0ZSxcbiAgVGVuYW50TWFuYWdlbWVudEdldCxcbiAgVGVuYW50TWFuYWdlbWVudEdldEJ5SWQsXG4gIFRlbmFudE1hbmFnZW1lbnRVcGRhdGUsXG59IGZyb20gJy4uL2FjdGlvbnMvdGVuYW50LW1hbmFnZW1lbnQuYWN0aW9ucyc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50IH0gZnJvbSAnLi4vbW9kZWxzL3RlbmFudC1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFRlbmFudE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdGVuYW50LW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBQlAgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuXG5AU3RhdGU8VGVuYW50TWFuYWdlbWVudC5TdGF0ZT4oe1xuICBuYW1lOiAnVGVuYW50TWFuYWdlbWVudFN0YXRlJyxcbiAgZGVmYXVsdHM6IHsgcmVzdWx0OiB7fSwgc2VsZWN0ZWRJdGVtOiB7fSB9IGFzIFRlbmFudE1hbmFnZW1lbnQuU3RhdGUsXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudE1hbmFnZW1lbnRTdGF0ZSB7XG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXQoeyByZXN1bHQgfTogVGVuYW50TWFuYWdlbWVudC5TdGF0ZSk6IEFCUC5CYXNpY0l0ZW1bXSB7XG4gICAgcmV0dXJuIHJlc3VsdC5pdGVtcyB8fCBbXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGVuYW50TWFuYWdlbWVudFNlcnZpY2U6IFRlbmFudE1hbmFnZW1lbnRTZXJ2aWNlKSB7fVxuXG4gIEBBY3Rpb24oVGVuYW50TWFuYWdlbWVudEdldClcbiAgZ2V0KHsgcGF0Y2hTdGF0ZSB9OiBTdGF0ZUNvbnRleHQ8VGVuYW50TWFuYWdlbWVudC5TdGF0ZT4pIHtcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRNYW5hZ2VtZW50U2VydmljZS5nZXQoKS5waXBlKFxuICAgICAgdGFwKHJlc3VsdCA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICByZXN1bHQsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihUZW5hbnRNYW5hZ2VtZW50R2V0QnlJZClcbiAgZ2V0QnlJZCh7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PFRlbmFudE1hbmFnZW1lbnQuU3RhdGU+LCB7IHBheWxvYWQgfTogVGVuYW50TWFuYWdlbWVudEdldEJ5SWQpIHtcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRNYW5hZ2VtZW50U2VydmljZS5nZXRCeUlkKHBheWxvYWQpLnBpcGUoXG4gICAgICB0YXAoc2VsZWN0ZWRJdGVtID0+XG4gICAgICAgIHBhdGNoU3RhdGUoe1xuICAgICAgICAgIHNlbGVjdGVkSXRlbSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKFRlbmFudE1hbmFnZW1lbnREZWxldGUpXG4gIGRlbGV0ZSh7IGRpc3BhdGNoIH06IFN0YXRlQ29udGV4dDxUZW5hbnRNYW5hZ2VtZW50LlN0YXRlPiwgeyBwYXlsb2FkIH06IFRlbmFudE1hbmFnZW1lbnREZWxldGUpIHtcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRNYW5hZ2VtZW50U2VydmljZS5kZWxldGUocGF5bG9hZCkucGlwZShzd2l0Y2hNYXAoKCkgPT4gZGlzcGF0Y2gobmV3IFRlbmFudE1hbmFnZW1lbnRHZXQoKSkpKTtcbiAgfVxuXG4gIEBBY3Rpb24oVGVuYW50TWFuYWdlbWVudEFkZClcbiAgYWRkKHsgZGlzcGF0Y2ggfTogU3RhdGVDb250ZXh0PFRlbmFudE1hbmFnZW1lbnQuU3RhdGU+LCB7IHBheWxvYWQgfTogVGVuYW50TWFuYWdlbWVudEFkZCkge1xuICAgIHJldHVybiB0aGlzLnRlbmFudE1hbmFnZW1lbnRTZXJ2aWNlLmFkZChwYXlsb2FkKS5waXBlKHN3aXRjaE1hcCgoKSA9PiBkaXNwYXRjaChuZXcgVGVuYW50TWFuYWdlbWVudEdldCgpKSkpO1xuICB9XG5cbiAgQEFjdGlvbihUZW5hbnRNYW5hZ2VtZW50VXBkYXRlKVxuICB1cGRhdGUoeyBkaXNwYXRjaCwgZ2V0U3RhdGUgfTogU3RhdGVDb250ZXh0PFRlbmFudE1hbmFnZW1lbnQuU3RhdGU+LCB7IHBheWxvYWQgfTogVGVuYW50TWFuYWdlbWVudFVwZGF0ZSkge1xuICAgIHJldHVybiBkaXNwYXRjaChuZXcgVGVuYW50TWFuYWdlbWVudEdldEJ5SWQocGF5bG9hZC5pZCkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy50ZW5hbnRNYW5hZ2VtZW50U2VydmljZS51cGRhdGUoeyAuLi5nZXRTdGF0ZSgpLnNlbGVjdGVkSXRlbSwgLi4ucGF5bG9hZCB9KSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gZGlzcGF0Y2gobmV3IFRlbmFudE1hbmFnZW1lbnRHZXQoKSkpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/tenant-management-routing.module.js b/npm/packs/ng/dist/tenant-management/esm5/lib/tenant-management-routing.module.js new file mode 100644 index 0000000000..b324ac56af --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/tenant-management-routing.module.js @@ -0,0 +1,36 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { TenantsResolver } from './resolvers/tenants.resolver'; +import { TenantsComponent } from './components/tenants/tenants.component'; +var ɵ0 = { requiredPolicy: 'AbpTenantManagement.Tenants' }; +/** @type {?} */ +var routes = [ + { path: '', redirectTo: 'tenants', pathMatch: 'full' }, + { + path: 'tenants', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ0, + children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }], + }, +]; +var TenantManagementRoutingModule = /** @class */ (function () { + function TenantManagementRoutingModule() { + } + TenantManagementRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + providers: [TenantsResolver], + },] } + ]; + return TenantManagementRoutingModule; +}()); +export { TenantManagementRoutingModule }; +export { ɵ0 }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3RlbmFudC1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7U0FRaEUsRUFBRSxjQUFjLEVBQUUsNkJBQTZCLEVBQUU7O0lBTnJELE1BQU0sR0FBVztJQUNyQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO0lBQ3REO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUM7UUFDekMsSUFBSSxJQUFtRDtRQUN2RCxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7S0FDbEY7Q0FDRjtBQUVEO0lBQUE7SUFLNEMsQ0FBQzs7Z0JBTDVDLFFBQVEsU0FBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDN0I7O0lBQzJDLG9DQUFDO0NBQUEsQUFMN0MsSUFLNkM7U0FBaEMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEd1YXJkLCBEeW5hbWljTGF5b3V0Q29tcG9uZW50LCBQZXJtaXNzaW9uR3VhcmQgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRlbmFudHNSZXNvbHZlciB9IGZyb20gJy4vcmVzb2x2ZXJzL3RlbmFudHMucmVzb2x2ZXInO1xuaW1wb3J0IHsgVGVuYW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW5hbnRzL3RlbmFudHMuY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHsgcGF0aDogJycsIHJlZGlyZWN0VG86ICd0ZW5hbnRzJywgcGF0aE1hdGNoOiAnZnVsbCcgfSxcbiAge1xuICAgIHBhdGg6ICd0ZW5hbnRzJyxcbiAgICBjb21wb25lbnQ6IER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmQsIFBlcm1pc3Npb25HdWFyZF0sXG4gICAgZGF0YTogeyByZXF1aXJlZFBvbGljeTogJ0FicFRlbmFudE1hbmFnZW1lbnQuVGVuYW50cycgfSxcbiAgICBjaGlsZHJlbjogW3sgcGF0aDogJycsIGNvbXBvbmVudDogVGVuYW50c0NvbXBvbmVudCwgcmVzb2x2ZTogW1RlbmFudHNSZXNvbHZlcl0gfV0sXG4gIH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbVGVuYW50c1Jlc29sdmVyXSxcbn0pXG5leHBvcnQgY2xhc3MgVGVuYW50TWFuYWdlbWVudFJvdXRpbmdNb2R1bGUge31cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/lib/tenant-management.module.js b/npm/packs/ng/dist/tenant-management/esm5/lib/tenant-management.module.js new file mode 100644 index 0000000000..78d7776867 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/lib/tenant-management.module.js @@ -0,0 +1,33 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CoreModule } from '@abp/ng.core'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { NgModule } from '@angular/core'; +import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgxsModule } from '@ngxs/store'; +import { TableModule } from 'primeng/table'; +import { TenantsComponent } from './components/tenants/tenants.component'; +import { TenantManagementState } from './states/tenant-management.state'; +import { TenantManagementRoutingModule } from './tenant-management-routing.module'; +var TenantManagementModule = /** @class */ (function () { + function TenantManagementModule() { + } + TenantManagementModule.decorators = [ + { type: NgModule, args: [{ + declarations: [TenantsComponent], + imports: [ + TenantManagementRoutingModule, + NgxsModule.forFeature([TenantManagementState]), + CoreModule, + TableModule, + ThemeSharedModule, + NgbDropdownModule, + ], + },] } + ]; + return TenantManagementModule; +}()); +export { TenantManagementModule }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi90ZW5hbnQtbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFbkY7SUFBQTtJQVdxQyxDQUFDOztnQkFYckMsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNoQyxPQUFPLEVBQUU7d0JBQ1AsNkJBQTZCO3dCQUM3QixVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQzt3QkFDOUMsVUFBVTt3QkFDVixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsaUJBQWlCO3FCQUNsQjtpQkFDRjs7SUFDb0MsNkJBQUM7Q0FBQSxBQVh0QyxJQVdzQztTQUF6QixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBUZW5hbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RlbmFudHMvdGVuYW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudFN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvdGVuYW50LW1hbmFnZW1lbnQuc3RhdGUnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudFJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL3RlbmFudC1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVGVuYW50c0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBUZW5hbnRNYW5hZ2VtZW50Um91dGluZ01vZHVsZSxcbiAgICBOZ3hzTW9kdWxlLmZvckZlYXR1cmUoW1RlbmFudE1hbmFnZW1lbnRTdGF0ZV0pLFxuICAgIENvcmVNb2R1bGUsXG4gICAgVGFibGVNb2R1bGUsXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudE1hbmFnZW1lbnRNb2R1bGUge31cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/esm5/public-api.js b/npm/packs/ng/dist/tenant-management/esm5/public-api.js new file mode 100644 index 0000000000..f7a8fdf145 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/esm5/public-api.js @@ -0,0 +1,13 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { TenantManagementModule } from './lib/tenant-management.module'; +export { TenantManagementGet, TenantManagementGetById, TenantManagementAdd, TenantManagementUpdate, TenantManagementDelete } from './lib/actions'; +export { TenantsComponent } from './lib/components'; +export { TENANT_MANAGEMENT_ROUTES } from './lib/constants'; +export {} from './lib/models'; +export { TenantsResolver } from './lib/resolvers'; +export { TenantManagementService } from './lib/services'; +export { TenantManagementState } from './lib/states'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1Q0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxrSUFBYyxlQUFlLENBQUM7QUFDOUIsaUNBQWMsa0JBQWtCLENBQUM7QUFDakMseUNBQWMsaUJBQWlCLENBQUM7QUFDaEMsZUFBYyxjQUFjLENBQUM7QUFDN0IsZ0NBQWMsaUJBQWlCLENBQUM7QUFDaEMsd0NBQWMsZ0JBQWdCLENBQUM7QUFDL0Isc0NBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvdGVuYW50LW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc29sdmVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/fesm2015/abp-ng.tenant-management.js b/npm/packs/ng/dist/tenant-management/fesm2015/abp-ng.tenant-management.js new file mode 100644 index 0000000000..1320690538 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/fesm2015/abp-ng.tenant-management.js @@ -0,0 +1,653 @@ +import { RestService, DynamicLayoutComponent, AuthGuard, PermissionGuard, CoreModule } from '@abp/ng.core'; +import { ConfirmationService, ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild, NgModule } from '@angular/core'; +import { NgbModal, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; +import { TableModule } from 'primeng/table'; +import { __decorate, __metadata } from 'tslib'; +import { Validators, FormBuilder } from '@angular/forms'; +import { Observable } from 'rxjs'; +import { tap, switchMap, pluck, take } from 'rxjs/operators'; +import { RouterModule } from '@angular/router'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class TenantManagementGet { +} +TenantManagementGet.type = '[TenantManagement] Get'; +class TenantManagementGetById { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +TenantManagementGetById.type = '[TenantManagement] Get By Id'; +class TenantManagementAdd { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +TenantManagementAdd.type = '[TenantManagement] Add'; +class TenantManagementUpdate { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +TenantManagementUpdate.type = '[TenantManagement] Update'; +class TenantManagementDelete { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +TenantManagementDelete.type = '[TenantManagement] Delete'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class TenantManagementService { + /** + * @param {?} rest + */ + constructor(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + get() { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/multi-tenancy/tenant', + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + getById(id) { + /** @type {?} */ + const request = { + method: 'GET', + url: `/api/multi-tenancy/tenant/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + delete(id) { + /** @type {?} */ + const request = { + method: 'DELETE', + url: `/api/multi-tenancy/tenant/${id}`, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + add(body) { + /** @type {?} */ + const request = { + method: 'POST', + url: `/api/multi-tenancy/tenant`, + body, + }; + return this.rest.request(request); + } + /** + * @param {?} body + * @return {?} + */ + update(body) { + /** @type {?} */ + const url = `/api/multi-tenancy/tenant/${body.id}`; + delete body.id; + /** @type {?} */ + const request = { + method: 'PUT', + url, + body, + }; + return this.rest.request(request); + } + /** + * @param {?} id + * @return {?} + */ + getDefaultConnectionString(id) { + /** @type {?} */ + const url = `/api/multi-tenancy/tenant/${id}/defaultConnectionString`; + /** @type {?} */ + const request = { + method: 'GET', + responseType: "text" /* Text */, + url, + }; + return this.rest.request(request); + } + /** + * @param {?} payload + * @return {?} + */ + updateDefaultConnectionString(payload) { + /** @type {?} */ + const url = `/api/multi-tenancy/tenant/${payload.id}/defaultConnectionString`; + /** @type {?} */ + const request = { + method: 'PUT', + url, + params: { defaultConnectionString: payload.defaultConnectionString }, + }; + return this.rest.request(request); + } +} +TenantManagementService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +TenantManagementService.ctorParameters = () => [ + { type: RestService } +]; +/** @nocollapse */ TenantManagementService.ngInjectableDef = ɵɵdefineInjectable({ factory: function TenantManagementService_Factory() { return new TenantManagementService(ɵɵinject(RestService)); }, token: TenantManagementService, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +let TenantManagementState = class TenantManagementState { + /** + * @param {?} tenantManagementService + */ + constructor(tenantManagementService) { + this.tenantManagementService = tenantManagementService; + } + /** + * @param {?} __0 + * @return {?} + */ + static get({ result }) { + return result.items || []; + } + /** + * @param {?} __0 + * @return {?} + */ + get({ patchState }) { + return this.tenantManagementService.get().pipe(tap((/** + * @param {?} result + * @return {?} + */ + result => patchState({ + result, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + getById({ patchState }, { payload }) { + return this.tenantManagementService.getById(payload).pipe(tap((/** + * @param {?} selectedItem + * @return {?} + */ + selectedItem => patchState({ + selectedItem, + })))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + delete({ dispatch }, { payload }) { + return this.tenantManagementService.delete(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new TenantManagementGet())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + add({ dispatch }, { payload }) { + return this.tenantManagementService.add(payload).pipe(switchMap((/** + * @return {?} + */ + () => dispatch(new TenantManagementGet())))); + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + update({ dispatch, getState }, { payload }) { + return dispatch(new TenantManagementGetById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + () => this.tenantManagementService.update(Object.assign({}, getState().selectedItem, payload)))), switchMap((/** + * @return {?} + */ + () => dispatch(new TenantManagementGet())))); + } +}; +__decorate([ + Action(TenantManagementGet), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], TenantManagementState.prototype, "get", null); +__decorate([ + Action(TenantManagementGetById), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementGetById]), + __metadata("design:returntype", void 0) +], TenantManagementState.prototype, "getById", null); +__decorate([ + Action(TenantManagementDelete), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementDelete]), + __metadata("design:returntype", void 0) +], TenantManagementState.prototype, "delete", null); +__decorate([ + Action(TenantManagementAdd), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementAdd]), + __metadata("design:returntype", void 0) +], TenantManagementState.prototype, "add", null); +__decorate([ + Action(TenantManagementUpdate), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementUpdate]), + __metadata("design:returntype", void 0) +], TenantManagementState.prototype, "update", null); +__decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) +], TenantManagementState, "get", null); +TenantManagementState = __decorate([ + State({ + name: 'TenantManagementState', + defaults: (/** @type {?} */ ({ result: {}, selectedItem: {} })), + }), + __metadata("design:paramtypes", [TenantManagementService]) +], TenantManagementState); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class TenantsComponent { + /** + * @param {?} confirmationService + * @param {?} tenantService + * @param {?} modalService + * @param {?} fb + * @param {?} store + */ + constructor(confirmationService, tenantService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.tenantService = tenantService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + } + /** + * @return {?} + */ + get showInput() { + return !this.defaultConnectionStringForm.get('useSharedDatabase').value; + } + /** + * @return {?} + */ + get connectionString() { + return this.defaultConnectionStringForm.get('defaultConnectionString').value; + } + /** + * @return {?} + */ + openModal() { + this.modalService.open(this.modalWrapper); + } + /** + * @private + * @return {?} + */ + createTenantForm() { + this.tenantForm = this.fb.group({ + name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + }); + } + /** + * @private + * @return {?} + */ + createDefaultConnectionStringForm() { + this.defaultConnectionStringForm = this.fb.group({ + useSharedDatabase: this.useSharedDatabase, + defaultConnectionString: this.defaultConnectionString || '', + }); + } + /** + * @param {?} id + * @return {?} + */ + onEditConnStr(id) { + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateConnStr, + onSave: (/** + * @return {?} + */ + () => this.saveConnStr), + }; + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe(pluck('TenantManagementState', 'selectedItem'), switchMap((/** + * @param {?} selected + * @return {?} + */ + selected => { + this.selected = selected; + return this.tenantService.getDefaultConnectionString(id); + }))) + .subscribe((/** + * @param {?} fetchedConnectionString + * @return {?} + */ + fetchedConnectionString => { + this.useSharedDatabase = fetchedConnectionString ? false : true; + this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : ''; + this.createDefaultConnectionStringForm(); + this.openModal(); + })); + } + /** + * @return {?} + */ + saveConnStr() { + this.tenantService + .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString }) + .pipe(take(1)) + .subscribe((/** + * @return {?} + */ + () => this.modalService.dismissAll())); + } + /** + * @param {?} id + * @return {?} + */ + onManageFeatures(id) { + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateFeatures, + onSave: (/** + * @return {?} + */ + () => { }), + }; + this.openModal(); + } + /** + * @return {?} + */ + onAdd() { + this.selected = (/** @type {?} */ ({})); + this.createTenantForm(); + this.openModal(); + this.selectedModalContent = { + title: 'AbpTenantManagement::NewTenant', + template: this.mTemplateTenant, + onSave: (/** + * @return {?} + */ + () => this.saveTenant), + }; + } + /** + * @param {?} id + * @return {?} + */ + onEdit(id) { + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe(pluck('TenantManagementState', 'selectedItem')) + .subscribe((/** + * @param {?} selected + * @return {?} + */ + selected => { + this.selected = selected; + this.selectedModalContent = { + title: 'AbpTenantManagement::Edit', + template: this.mTemplateTenant, + onSave: (/** + * @return {?} + */ + () => this.saveTenant), + }; + this.createTenantForm(); + this.openModal(); + })); + } + /** + * @return {?} + */ + saveTenant() { + if (!this.tenantForm.valid) + return; + this.store + .dispatch(this.selected.id + ? new TenantManagementUpdate(Object.assign({}, this.tenantForm.value, { id: this.selected.id })) + : new TenantManagementAdd(this.tenantForm.value)) + .subscribe((/** + * @return {?} + */ + () => this.modalService.dismissAll())); + } + /** + * @param {?} id + * @param {?} name + * @return {?} + */ + delete(id, name) { + this.confirmationService + .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + (status) => { + if (status === "confirm" /* confirm */) { + this.store.dispatch(new TenantManagementDelete(id)); + } + })); + } +} +TenantsComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-tenants', + template: "
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::ConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Features' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ selectedModalContent.title | abpLocalization }}\n
\n \n
\n\n
\n
\n \n
\n\n
\n \n \n
\n
\n
\n\n\n
\n
\n \n \n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n\n\n Manage Features\n\n" + }] } +]; +/** @nocollapse */ +TenantsComponent.ctorParameters = () => [ + { type: ConfirmationService }, + { type: TenantManagementService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } +]; +TenantsComponent.propDecorators = { + modalWrapper: [{ type: ViewChild, args: ['modalWrapper', { static: false },] }], + mTemplateConnStr: [{ type: ViewChild, args: ['mTemplateConnStr', { static: false },] }], + mTemplateFeatures: [{ type: ViewChild, args: ['mTemplateFeatures', { static: false },] }], + mTemplateTenant: [{ type: ViewChild, args: ['mTemplateTenant', { static: false },] }] +}; +__decorate([ + Select(TenantManagementState.get), + __metadata("design:type", Observable) +], TenantsComponent.prototype, "datas$", void 0); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class TenantsResolver { + /** + * @param {?} store + */ + constructor(store) { + this.store = store; + } + /** + * @return {?} + */ + resolve() { + /** @type {?} */ + const data = this.store.selectSnapshot(TenantManagementState.get); + return data && data.length + ? null + : this.store.dispatch(new TenantManagementGet()); + } +} +TenantsResolver.decorators = [ + { type: Injectable } +]; +/** @nocollapse */ +TenantsResolver.ctorParameters = () => [ + { type: Store } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +const ɵ0 = { requiredPolicy: 'AbpTenantManagement.Tenants' }; +/** @type {?} */ +const routes = [ + { path: '', redirectTo: 'tenants', pathMatch: 'full' }, + { + path: 'tenants', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ0, + children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }], + }, +]; +class TenantManagementRoutingModule { +} +TenantManagementRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + providers: [TenantsResolver], + },] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class TenantManagementModule { +} +TenantManagementModule.decorators = [ + { type: NgModule, args: [{ + declarations: [TenantsComponent], + imports: [ + TenantManagementRoutingModule, + NgxsModule.forFeature([TenantManagementState]), + CoreModule, + TableModule, + ThemeSharedModule, + NgbDropdownModule, + ], + },] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +const TENANT_MANAGEMENT_ROUTES = (/** @type {?} */ ([ + { + name: 'TenantManagement', + path: 'tenant-management', + parentName: 'Administration', + layout: "application" /* application */, + children: [ + { + path: 'tenants', + name: 'Tenants', + order: 1, + requiredPolicy: 'AbpTenantManagement.Tenants', + parentName: 'TenantManagement', + }, + ], + }, +])); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var TenantManagement; +(function (TenantManagement) { + /** + * @record + */ + function State() { } + TenantManagement.State = State; + /** + * @record + */ + function Item() { } + TenantManagement.Item = Item; + /** + * @record + */ + function AddRequest() { } + TenantManagement.AddRequest = AddRequest; + /** + * @record + */ + function UpdateRequest() { } + TenantManagement.UpdateRequest = UpdateRequest; + /** + * @record + */ + function DefaultConnectionStringRequest() { } + TenantManagement.DefaultConnectionStringRequest = DefaultConnectionStringRequest; +})(TenantManagement || (TenantManagement = {})); + +export { TENANT_MANAGEMENT_ROUTES, TenantManagementAdd, TenantManagementDelete, TenantManagementGet, TenantManagementGetById, TenantManagementModule, TenantManagementService, TenantManagementState, TenantManagementUpdate, TenantsComponent, TenantsResolver, TenantsComponent as ɵa, TenantManagementState as ɵb, TenantManagementService as ɵc, TenantManagementGet as ɵd, TenantManagementGetById as ɵe, TenantManagementAdd as ɵf, TenantManagementUpdate as ɵg, TenantManagementDelete as ɵh, TenantManagementService as ɵj, TenantManagementRoutingModule as ɵk, TenantsResolver as ɵl }; +//# sourceMappingURL=abp-ng.tenant-management.js.map diff --git a/npm/packs/ng/dist/tenant-management/fesm2015/abp-ng.tenant-management.js.map b/npm/packs/ng/dist/tenant-management/fesm2015/abp-ng.tenant-management.js.map new file mode 100644 index 0000000000..aa89d6fd6a --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/fesm2015/abp-ng.tenant-management.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.tenant-management.js","sources":["ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts"],"sourcesContent":["import { TenantManagement } from '../models/tenant-management';\n\nexport class TenantManagementGet {\n static readonly type = '[TenantManagement] Get';\n}\n\nexport class TenantManagementGetById {\n static readonly type = '[TenantManagement] Get By Id';\n constructor(public payload: string) {}\n}\n\nexport class TenantManagementAdd {\n static readonly type = '[TenantManagement] Add';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class TenantManagementUpdate {\n static readonly type = '[TenantManagement] Update';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class TenantManagementDelete {\n static readonly type = '[TenantManagement] Delete';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenant',\n };\n\n return this.rest.request(request);\n }\n\n getById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenant/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n delete(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenant/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n add(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenant`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n update(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenant/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenant/${id}/defaultConnectionString`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenant/${payload.id}/defaultConnectionString`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n TenantManagementAdd,\n TenantManagementDelete,\n TenantManagementGet,\n TenantManagementGetById,\n TenantManagementUpdate,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(TenantManagementGet)\n get({ patchState }: StateContext) {\n return this.tenantManagementService.get().pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(TenantManagementGetById)\n getById({ patchState }: StateContext, { payload }: TenantManagementGetById) {\n return this.tenantManagementService.getById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(TenantManagementDelete)\n delete({ dispatch }: StateContext, { payload }: TenantManagementDelete) {\n return this.tenantManagementService.delete(payload).pipe(switchMap(() => dispatch(new TenantManagementGet())));\n }\n\n @Action(TenantManagementAdd)\n add({ dispatch }: StateContext, { payload }: TenantManagementAdd) {\n return this.tenantManagementService.add(payload).pipe(switchMap(() => dispatch(new TenantManagementGet())));\n }\n\n @Action(TenantManagementUpdate)\n update({ dispatch, getState }: StateContext, { payload }: TenantManagementUpdate) {\n return dispatch(new TenantManagementGetById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.update({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new TenantManagementGet())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { pluck, switchMap, take } from 'rxjs/operators';\nimport {\n TenantManagementAdd,\n TenantManagementDelete,\n TenantManagementGetById,\n TenantManagementUpdate,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n datas$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n useSharedDatabase: boolean;\n\n selectedModalContent: {\n title: string;\n template: TemplateRef;\n onSave: () => void;\n };\n\n get showInput(): boolean {\n return !this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('modalWrapper', { static: false })\n modalWrapper: TemplateRef;\n\n @ViewChild('mTemplateConnStr', { static: false })\n mTemplateConnStr: TemplateRef;\n\n @ViewChild('mTemplateFeatures', { static: false })\n mTemplateFeatures: TemplateRef;\n\n @ViewChild('mTemplateTenant', { static: false })\n mTemplateTenant: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n openModal() {\n this.modalService.open(this.modalWrapper);\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this.useSharedDatabase,\n defaultConnectionString: this.defaultConnectionString || '',\n });\n }\n\n onEditConnStr(id: string) {\n this.selectedModalContent = {\n title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant',\n template: this.mTemplateConnStr,\n onSave: () => this.saveConnStr,\n };\n this.store\n .dispatch(new TenantManagementGetById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this.useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal();\n });\n }\n\n saveConnStr() {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(take(1))\n .subscribe(() => this.modalService.dismissAll());\n }\n\n onManageFeatures(id: string) {\n this.selectedModalContent = {\n title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant',\n template: this.mTemplateFeatures,\n onSave: () => {},\n };\n this.openModal();\n }\n\n onAdd() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal();\n this.selectedModalContent = {\n title: 'AbpTenantManagement::NewTenant',\n template: this.mTemplateTenant,\n onSave: () => this.saveTenant,\n };\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new TenantManagementGetById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.selectedModalContent = {\n title: 'AbpTenantManagement::Edit',\n template: this.mTemplateTenant,\n onSave: () => this.saveTenant,\n };\n this.createTenantForm();\n this.openModal();\n });\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n\n this.store\n .dispatch(\n this.selected.id\n ? new TenantManagementUpdate({ ...this.tenantForm.value, id: this.selected.id })\n : new TenantManagementAdd(this.tenantForm.value),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new TenantManagementDelete(id));\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { TenantManagementGet } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length\n ? null \n : this.store.dispatch(new TenantManagementGet());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n ],\n})\nexport class TenantManagementModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = [\n {\n name: 'TenantManagement',\n path: 'tenant-management',\n parentName: 'Administration',\n layout: eLayoutType.application,\n children: [\n {\n path: 'tenants',\n name: 'Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n parentName: 'TenantManagement',\n },\n ],\n },\n] as ABP.FullRoute[];\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":";;;;;;;;;;;;;;;;AAEA,MAAa,mBAAmB;;AACd,wBAAI,GAAG,wBAAwB,CAAC;MAGrC,uBAAuB;;;;IAElC,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,4BAAI,GAAG,8BAA8B,CAAC;MAI3C,mBAAmB;;;;IAE9B,YAAmB,OAAoC;QAApC,YAAO,GAAP,OAAO,CAA6B;KAAI;;AAD3C,wBAAI,GAAG,wBAAwB,CAAC;MAIrC,sBAAsB;;;;IAEjC,YAAmB,OAAuC;QAAvC,YAAO,GAAP,OAAO,CAAgC;KAAI;;AAD9C,2BAAI,GAAG,2BAA2B,CAAC;MAIxC,sBAAsB;;;;IAEjC,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,2BAAI,GAAG,2BAA2B,CAAC;;;;;;ACtBrD,MAQa,uBAAuB;;;;IAClC,YAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;KAAI;;;;IAEzC,GAAG;;cACK,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,2BAA2B;SACjC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAkC,OAAO,CAAC,CAAC;KACpE;;;;;IAED,OAAO,CAAC,EAAU;;cACV,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,6BAA6B,EAAE,EAAE;SACvC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAsB,OAAO,CAAC,CAAC;KACxD;;;;;IAED,MAAM,CAAC,EAAU;;cACT,OAAO,GAAuB;YAClC,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,6BAA6B,EAAE,EAAE;SACvC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAa,OAAO,CAAC,CAAC;KAC/C;;;;;IAED,GAAG,CAAC,IAAiC;;cAC7B,OAAO,GAA8C;YACzD,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,2BAA2B;YAChC,IAAI;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA6C,OAAO,CAAC,CAAC;KAC/E;;;;;IAED,MAAM,CAAC,IAAoC;;cACnC,GAAG,GAAG,6BAA6B,IAAI,CAAC,EAAE,EAAE;QAClD,OAAO,IAAI,CAAC,EAAE,CAAC;;cAET,OAAO,GAAiD;YAC5D,MAAM,EAAE,KAAK;YACb,GAAG;YACH,IAAI;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA6C,OAAO,CAAC,CAAC;KAC/E;;;;;IAED,0BAA0B,CAAC,EAAU;;cAC7B,GAAG,GAAG,6BAA6B,EAAE,0BAA0B;;cAE/D,OAAO,GAAkE;YAC7E,MAAM,EAAE,KAAK;YACb,YAAY;YACZ,GAAG;SACJ;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0D,OAAO,CAAC,CAAC;KAC5F;;;;;IAED,6BAA6B,CAAC,OAAwD;;cAC9E,GAAG,GAAG,6BAA6B,OAAO,CAAC,EAAE,0BAA0B;;cAEvE,OAAO,GAAkE;YAC7E,MAAM,EAAE,KAAK;YACb,GAAG;YACH,MAAM,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,EAAE;SACrE;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAuD,OAAO,CAAC,CAAC;KACzF;;;YA5EF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;YALQ,WAAW;;;;;;;;ICeP,qBAAqB,SAArB,qBAAqB;;;;IAMhC,YAAoB,uBAAgD;QAAhD,4BAAuB,GAAvB,uBAAuB,CAAyB;KAAI;;;;;IAJxE,OAAO,GAAG,CAAC,EAAE,MAAM,EAA0B;QAC3C,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;KAC3B;;;;;IAKD,GAAG,CAAC,EAAE,UAAU,EAAwC;QACtD,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,IAAI,CAC5C,GAAG;;;;QAAC,MAAM,IACR,UAAU,CAAC;YACT,MAAM;SACP,CAAC,EACH,CACF,CAAC;KACH;;;;;;IAGD,OAAO,CAAC,EAAE,UAAU,EAAwC,EAAE,EAAE,OAAO,EAA2B;QAChG,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CACvD,GAAG;;;;QAAC,YAAY,IACd,UAAU,CAAC;YACT,YAAY;SACb,CAAC,EACH,CACF,CAAC;KACH;;;;;;IAGD,MAAM,CAAC,EAAE,QAAQ,EAAwC,EAAE,EAAE,OAAO,EAA0B;QAC5F,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,EAAC,CAAC,CAAC;KAChH;;;;;;IAGD,GAAG,CAAC,EAAE,QAAQ,EAAwC,EAAE,EAAE,OAAO,EAAuB;QACtF,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,EAAC,CAAC,CAAC;KAC7G;;;;;;IAGD,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAwC,EAAE,EAAE,OAAO,EAA0B;QACtG,OAAO,QAAQ,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3D,SAAS;;;QAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,mBAAM,QAAQ,EAAE,CAAC,YAAY,EAAK,OAAO,EAAG,EAAC,EAChG,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,EAAC,CACrD,CAAC;KACH;CACF,CAAA;AAtCCA;IADC,MAAM,CAAC,mBAAmB,CAAC;;;;gDAS3B;AAGDA;IADC,MAAM,CAAC,uBAAuB,CAAC;;6CAC2C,uBAAuB;;oDAQjG;AAGDA;IADC,MAAM,CAAC,sBAAsB,CAAC;;6CACyC,sBAAsB;;mDAE7F;AAGDA;IADC,MAAM,CAAC,mBAAmB,CAAC;;6CACyC,mBAAmB;;gDAEvF;AAGDA;IADC,MAAM,CAAC,sBAAsB,CAAC;;6CACmD,sBAAsB;;mDAKvG;AA5CDA;IADC,QAAQ,EAAE;;;;sCAGV;AAJU,qBAAqB;IAJjC,KAAK,CAAyB;QAC7B,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,qBAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAA0B;KACrE,CAAC;qCAO6C,uBAAuB;GANzD,qBAAqB,CA+CjC;;;;;;MC3CY,gBAAgB;;;;;;;;IAwC3B,YACU,mBAAwC,EACxC,aAAsC,EACtC,YAAsB,EACtB,EAAe,EACf,KAAY;QAJZ,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,kBAAa,GAAb,aAAa,CAAyB;QACtC,iBAAY,GAAZ,YAAY,CAAU;QACtB,OAAE,GAAF,EAAE,CAAa;QACf,UAAK,GAAL,KAAK,CAAO;KAClB;;;;IA1BJ,IAAI,SAAS;QACX,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC;KACzE;;;;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,CAAC;KAC9E;;;;IAsBD,SAAS;QACP,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC3C;;;;;IAEO,gBAAgB;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC9B,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;SACnF,CAAC,CAAC;KACJ;;;;;IAEO,iCAAiC;QACvC,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC/C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,IAAI,EAAE;SAC5D,CAAC,CAAC;KACJ;;;;;IAED,aAAa,CAAC,EAAU;QACtB,IAAI,CAAC,oBAAoB,GAAG;YAC1B,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,2BAA2B,GAAG,gCAAgC;YACzG,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,MAAM;;;YAAE,MAAM,IAAI,CAAC,WAAW,CAAA;SAC/B,CAAC;QACF,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,uBAAuB,CAAC,EAAE,CAAC,CAAC;aACzC,IAAI,CACH,KAAK,CAAC,uBAAuB,EAAE,cAAc,CAAC,EAC9C,SAAS;;;;QAAC,QAAQ;YAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,OAAO,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;SAC1D,EAAC,CACH;aACA,SAAS;;;;QAAC,uBAAuB;YAChC,IAAI,CAAC,iBAAiB,GAAG,uBAAuB,GAAG,KAAK,GAAG,IAAI,CAAC;YAChE,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,EAAE,CAAC;YACtF,IAAI,CAAC,iCAAiC,EAAE,CAAC;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,EAAC,CAAC;KACN;;;;IAED,WAAW;QACT,IAAI,CAAC,aAAa;aACf,6BAA6B,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,uBAAuB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACvG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS;;;QAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAC,CAAC;KACpD;;;;;IAED,gBAAgB,CAAC,EAAU;QACzB,IAAI,CAAC,oBAAoB,GAAG;YAC1B,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,2BAA2B,GAAG,gCAAgC;YACzG,QAAQ,EAAE,IAAI,CAAC,iBAAiB;YAChC,MAAM;;;YAAE,SAAQ,CAAA;SACjB,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;;;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,sBAAG,EAAE,EAAiB,CAAC;QACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,oBAAoB,GAAG;YAC1B,KAAK,EAAE,gCAAgC;YACvC,QAAQ,EAAE,IAAI,CAAC,eAAe;YAC9B,MAAM;;;YAAE,MAAM,IAAI,CAAC,UAAU,CAAA;SAC9B,CAAC;KACH;;;;;IAED,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,uBAAuB,CAAC,EAAE,CAAC,CAAC;aACzC,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;aACpD,SAAS;;;;QAAC,QAAQ;YACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,oBAAoB,GAAG;gBAC1B,KAAK,EAAE,2BAA2B;gBAClC,QAAQ,EAAE,IAAI,CAAC,eAAe;gBAC9B,MAAM;;;gBAAE,MAAM,IAAI,CAAC,UAAU,CAAA;aAC9B,CAAC;YACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,EAAC,CAAC;KACN;;;;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;YAAE,OAAO;QAEnC,IAAI,CAAC,KAAK;aACP,QAAQ,CACP,IAAI,CAAC,QAAQ,CAAC,EAAE;cACZ,IAAI,sBAAsB,mBAAM,IAAI,CAAC,UAAU,CAAC,KAAK,IAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAG;cAC9E,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CACnD;aACA,SAAS;;;QAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAC,CAAC;KACpD;;;;;;IAED,MAAM,CAAC,EAAU,EAAE,IAAY;QAC7B,IAAI,CAAC,mBAAmB;aACrB,IAAI,CAAC,wDAAwD,EAAE,iCAAiC,EAAE;YACjG,yBAAyB,EAAE,CAAC,IAAI,CAAC;SAClC,CAAC;aACD,SAAS;;;;QAAC,CAAC,MAAsB;YAChC,IAAI,MAAM,8BAA6B;gBACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC;aACrD;SACF,EAAC,CAAC;KACN;;;YA7JF,SAAS,SAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,4jLAAuC;aACxC;;;;YAnBQ,mBAAmB;YAanB,uBAAuB;YAVvB,QAAQ;YADR,WAAW;YAEH,KAAK;;;2BA4CnB,SAAS,SAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;+BAG3C,SAAS,SAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gCAG/C,SAAS,SAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;8BAGhD,SAAS,SAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;AAnC/CA;IADC,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC;8BAC1B,UAAU;gDAAkB;;;;;;ACvBtC,MAQa,eAAe;;;;IAC1B,YAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;KAAI;;;;IAEpC,OAAO;;cACC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC;QACjE,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM;cACvB,IAAI;cACJ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;KACnD;;;YATF,UAAU;;;;YALF,KAAK;;;;;;;ACFd,WAYU,EAAE,cAAc,EAAE,6BAA6B,EAAE;;MANrD,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE;IACtD;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QACzC,IAAI,IAAmD;QACvD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;KAClF;CACF;AAOD,MAAa,6BAA6B;;;YALzC,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,SAAS,EAAE,CAAC,eAAe,CAAC;aAC7B;;;;;;;ACrBD,MAqBa,sBAAsB;;;YAXlC,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;gBAChC,OAAO,EAAE;oBACP,6BAA6B;oBAC7B,UAAU,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC;oBAC9C,UAAU;oBACV,WAAW;oBACX,iBAAiB;oBACjB,iBAAiB;iBAClB;aACF;;;;;;;;AClBD,MAAa,wBAAwB,sBAAG;IACtC;QACE,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE,gBAAgB;QAC5B,MAAM;QACN,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,CAAC;gBACR,cAAc,EAAE,6BAA6B;gBAC7C,UAAU,EAAE,kBAAkB;aAC/B;SACF;KACF;CACF,EAAmB;;;;;;AChBpB,IAAiB,gBAAgB,CAyBhC;AAzBD,WAAiB,gBAAgB;;;;IAC/B,oBAGC;;;;;IAID,mBAGC;;;;;IAED,yBAEC;;;;;IAED,4BAEC;;;;;IAED,6CAGC;;AACH,CAAC,EAzBgB,gBAAgB,KAAhB,gBAAgB,QAyBhC;;;;"} \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/fesm5/abp-ng.tenant-management.js b/npm/packs/ng/dist/tenant-management/fesm5/abp-ng.tenant-management.js new file mode 100644 index 0000000000..14cf0304db --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/fesm5/abp-ng.tenant-management.js @@ -0,0 +1,766 @@ +import { RestService, DynamicLayoutComponent, AuthGuard, PermissionGuard, CoreModule } from '@abp/ng.core'; +import { ConfirmationService, ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild, NgModule } from '@angular/core'; +import { NgbModal, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; +import { TableModule } from 'primeng/table'; +import { __assign, __decorate, __metadata } from 'tslib'; +import { Validators, FormBuilder } from '@angular/forms'; +import { Observable } from 'rxjs'; +import { tap, switchMap, pluck, take } from 'rxjs/operators'; +import { RouterModule } from '@angular/router'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var TenantManagementGet = /** @class */ (function () { + function TenantManagementGet() { + } + TenantManagementGet.type = '[TenantManagement] Get'; + return TenantManagementGet; +}()); +var TenantManagementGetById = /** @class */ (function () { + function TenantManagementGetById(payload) { + this.payload = payload; + } + TenantManagementGetById.type = '[TenantManagement] Get By Id'; + return TenantManagementGetById; +}()); +var TenantManagementAdd = /** @class */ (function () { + function TenantManagementAdd(payload) { + this.payload = payload; + } + TenantManagementAdd.type = '[TenantManagement] Add'; + return TenantManagementAdd; +}()); +var TenantManagementUpdate = /** @class */ (function () { + function TenantManagementUpdate(payload) { + this.payload = payload; + } + TenantManagementUpdate.type = '[TenantManagement] Update'; + return TenantManagementUpdate; +}()); +var TenantManagementDelete = /** @class */ (function () { + function TenantManagementDelete(payload) { + this.payload = payload; + } + TenantManagementDelete.type = '[TenantManagement] Delete'; + return TenantManagementDelete; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var TenantManagementService = /** @class */ (function () { + function TenantManagementService(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + TenantManagementService.prototype.get = /** + * @return {?} + */ + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/multi-tenancy/tenant', + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + TenantManagementService.prototype.getById = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'GET', + url: "/api/multi-tenancy/tenant/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + TenantManagementService.prototype.delete = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var request = { + method: 'DELETE', + url: "/api/multi-tenancy/tenant/" + id, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + TenantManagementService.prototype.add = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var request = { + method: 'POST', + url: "/api/multi-tenancy/tenant", + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} body + * @return {?} + */ + TenantManagementService.prototype.update = /** + * @param {?} body + * @return {?} + */ + function (body) { + /** @type {?} */ + var url = "/api/multi-tenancy/tenant/" + body.id; + delete body.id; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + body: body, + }; + return this.rest.request(request); + }; + /** + * @param {?} id + * @return {?} + */ + TenantManagementService.prototype.getDefaultConnectionString = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var url = "/api/multi-tenancy/tenant/" + id + "/defaultConnectionString"; + /** @type {?} */ + var request = { + method: 'GET', + responseType: "text" /* Text */, + url: url, + }; + return this.rest.request(request); + }; + /** + * @param {?} payload + * @return {?} + */ + TenantManagementService.prototype.updateDefaultConnectionString = /** + * @param {?} payload + * @return {?} + */ + function (payload) { + /** @type {?} */ + var url = "/api/multi-tenancy/tenant/" + payload.id + "/defaultConnectionString"; + /** @type {?} */ + var request = { + method: 'PUT', + url: url, + params: { defaultConnectionString: payload.defaultConnectionString }, + }; + return this.rest.request(request); + }; + TenantManagementService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + TenantManagementService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ TenantManagementService.ngInjectableDef = ɵɵdefineInjectable({ factory: function TenantManagementService_Factory() { return new TenantManagementService(ɵɵinject(RestService)); }, token: TenantManagementService, providedIn: "root" }); + return TenantManagementService; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var TenantManagementState = /** @class */ (function () { + function TenantManagementState(tenantManagementService) { + this.tenantManagementService = tenantManagementService; + } + /** + * @param {?} __0 + * @return {?} + */ + TenantManagementState.get = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var result = _a.result; + return result.items || []; + }; + /** + * @param {?} __0 + * @return {?} + */ + TenantManagementState.prototype.get = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var patchState = _a.patchState; + return this.tenantManagementService.get().pipe(tap((/** + * @param {?} result + * @return {?} + */ + function (result) { + return patchState({ + result: result, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.getById = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + return this.tenantManagementService.getById(payload).pipe(tap((/** + * @param {?} selectedItem + * @return {?} + */ + function (selectedItem) { + return patchState({ + selectedItem: selectedItem, + }); + }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.delete = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.tenantManagementService.delete(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new TenantManagementGet()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.add = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var dispatch = _a.dispatch; + var payload = _b.payload; + return this.tenantManagementService.add(payload).pipe(switchMap((/** + * @return {?} + */ + function () { return dispatch(new TenantManagementGet()); }))); + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + TenantManagementState.prototype.update = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var _this = this; + var dispatch = _a.dispatch, getState = _a.getState; + var payload = _b.payload; + return dispatch(new TenantManagementGetById(payload.id)).pipe(switchMap((/** + * @return {?} + */ + function () { return _this.tenantManagementService.update(__assign({}, getState().selectedItem, payload)); })), switchMap((/** + * @return {?} + */ + function () { return dispatch(new TenantManagementGet()); }))); + }; + __decorate([ + Action(TenantManagementGet), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "get", null); + __decorate([ + Action(TenantManagementGetById), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementGetById]), + __metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "getById", null); + __decorate([ + Action(TenantManagementDelete), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementDelete]), + __metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "delete", null); + __decorate([ + Action(TenantManagementAdd), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementAdd]), + __metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "add", null); + __decorate([ + Action(TenantManagementUpdate), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, TenantManagementUpdate]), + __metadata("design:returntype", void 0) + ], TenantManagementState.prototype, "update", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) + ], TenantManagementState, "get", null); + TenantManagementState = __decorate([ + State({ + name: 'TenantManagementState', + defaults: (/** @type {?} */ ({ result: {}, selectedItem: {} })), + }), + __metadata("design:paramtypes", [TenantManagementService]) + ], TenantManagementState); + return TenantManagementState; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var TenantsComponent = /** @class */ (function () { + function TenantsComponent(confirmationService, tenantService, modalService, fb, store) { + this.confirmationService = confirmationService; + this.tenantService = tenantService; + this.modalService = modalService; + this.fb = fb; + this.store = store; + } + Object.defineProperty(TenantsComponent.prototype, "showInput", { + get: /** + * @return {?} + */ + function () { + return !this.defaultConnectionStringForm.get('useSharedDatabase').value; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(TenantsComponent.prototype, "connectionString", { + get: /** + * @return {?} + */ + function () { + return this.defaultConnectionStringForm.get('defaultConnectionString').value; + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + TenantsComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.modalService.open(this.modalWrapper); + }; + /** + * @private + * @return {?} + */ + TenantsComponent.prototype.createTenantForm = /** + * @private + * @return {?} + */ + function () { + this.tenantForm = this.fb.group({ + name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + }); + }; + /** + * @private + * @return {?} + */ + TenantsComponent.prototype.createDefaultConnectionStringForm = /** + * @private + * @return {?} + */ + function () { + this.defaultConnectionStringForm = this.fb.group({ + useSharedDatabase: this.useSharedDatabase, + defaultConnectionString: this.defaultConnectionString || '', + }); + }; + /** + * @param {?} id + * @return {?} + */ + TenantsComponent.prototype.onEditConnStr = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateConnStr, + onSave: (/** + * @return {?} + */ + function () { return _this.saveConnStr; }), + }; + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe(pluck('TenantManagementState', 'selectedItem'), switchMap((/** + * @param {?} selected + * @return {?} + */ + function (selected) { + _this.selected = selected; + return _this.tenantService.getDefaultConnectionString(id); + }))) + .subscribe((/** + * @param {?} fetchedConnectionString + * @return {?} + */ + function (fetchedConnectionString) { + _this.useSharedDatabase = fetchedConnectionString ? false : true; + _this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : ''; + _this.createDefaultConnectionStringForm(); + _this.openModal(); + })); + }; + /** + * @return {?} + */ + TenantsComponent.prototype.saveConnStr = /** + * @return {?} + */ + function () { + var _this = this; + this.tenantService + .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString }) + .pipe(take(1)) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @return {?} + */ + TenantsComponent.prototype.onManageFeatures = /** + * @param {?} id + * @return {?} + */ + function (id) { + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateFeatures, + onSave: (/** + * @return {?} + */ + function () { }), + }; + this.openModal(); + }; + /** + * @return {?} + */ + TenantsComponent.prototype.onAdd = /** + * @return {?} + */ + function () { + var _this = this; + this.selected = (/** @type {?} */ ({})); + this.createTenantForm(); + this.openModal(); + this.selectedModalContent = { + title: 'AbpTenantManagement::NewTenant', + template: this.mTemplateTenant, + onSave: (/** + * @return {?} + */ + function () { return _this.saveTenant; }), + }; + }; + /** + * @param {?} id + * @return {?} + */ + TenantsComponent.prototype.onEdit = /** + * @param {?} id + * @return {?} + */ + function (id) { + var _this = this; + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe(pluck('TenantManagementState', 'selectedItem')) + .subscribe((/** + * @param {?} selected + * @return {?} + */ + function (selected) { + _this.selected = selected; + _this.selectedModalContent = { + title: 'AbpTenantManagement::Edit', + template: _this.mTemplateTenant, + onSave: (/** + * @return {?} + */ + function () { return _this.saveTenant; }), + }; + _this.createTenantForm(); + _this.openModal(); + })); + }; + /** + * @return {?} + */ + TenantsComponent.prototype.saveTenant = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.tenantForm.valid) + return; + this.store + .dispatch(this.selected.id + ? new TenantManagementUpdate(__assign({}, this.tenantForm.value, { id: this.selected.id })) + : new TenantManagementAdd(this.tenantForm.value)) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalService.dismissAll(); })); + }; + /** + * @param {?} id + * @param {?} name + * @return {?} + */ + TenantsComponent.prototype.delete = /** + * @param {?} id + * @param {?} name + * @return {?} + */ + function (id, name) { + var _this = this; + this.confirmationService + .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + if (status === "confirm" /* confirm */) { + _this.store.dispatch(new TenantManagementDelete(id)); + } + })); + }; + TenantsComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-tenants', + template: "
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::ConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Features' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n
\n
\n
\n\n\n
\n
\n {{ selectedModalContent.title | abpLocalization }}\n
\n \n
\n\n
\n
\n \n
\n\n
\n \n \n
\n
\n
\n\n\n
\n
\n \n \n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n\n\n Manage Features\n\n" + }] } + ]; + /** @nocollapse */ + TenantsComponent.ctorParameters = function () { return [ + { type: ConfirmationService }, + { type: TenantManagementService }, + { type: NgbModal }, + { type: FormBuilder }, + { type: Store } + ]; }; + TenantsComponent.propDecorators = { + modalWrapper: [{ type: ViewChild, args: ['modalWrapper', { static: false },] }], + mTemplateConnStr: [{ type: ViewChild, args: ['mTemplateConnStr', { static: false },] }], + mTemplateFeatures: [{ type: ViewChild, args: ['mTemplateFeatures', { static: false },] }], + mTemplateTenant: [{ type: ViewChild, args: ['mTemplateTenant', { static: false },] }] + }; + __decorate([ + Select(TenantManagementState.get), + __metadata("design:type", Observable) + ], TenantsComponent.prototype, "datas$", void 0); + return TenantsComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var TenantsResolver = /** @class */ (function () { + function TenantsResolver(store) { + this.store = store; + } + /** + * @return {?} + */ + TenantsResolver.prototype.resolve = /** + * @return {?} + */ + function () { + /** @type {?} */ + var data = this.store.selectSnapshot(TenantManagementState.get); + return data && data.length + ? null + : this.store.dispatch(new TenantManagementGet()); + }; + TenantsResolver.decorators = [ + { type: Injectable } + ]; + /** @nocollapse */ + TenantsResolver.ctorParameters = function () { return [ + { type: Store } + ]; }; + return TenantsResolver; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ɵ0 = { requiredPolicy: 'AbpTenantManagement.Tenants' }; +/** @type {?} */ +var routes = [ + { path: '', redirectTo: 'tenants', pathMatch: 'full' }, + { + path: 'tenants', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: ɵ0, + children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }], + }, +]; +var TenantManagementRoutingModule = /** @class */ (function () { + function TenantManagementRoutingModule() { + } + TenantManagementRoutingModule.decorators = [ + { type: NgModule, args: [{ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + providers: [TenantsResolver], + },] } + ]; + return TenantManagementRoutingModule; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var TenantManagementModule = /** @class */ (function () { + function TenantManagementModule() { + } + TenantManagementModule.decorators = [ + { type: NgModule, args: [{ + declarations: [TenantsComponent], + imports: [ + TenantManagementRoutingModule, + NgxsModule.forFeature([TenantManagementState]), + CoreModule, + TableModule, + ThemeSharedModule, + NgbDropdownModule, + ], + },] } + ]; + return TenantManagementModule; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +var TENANT_MANAGEMENT_ROUTES = (/** @type {?} */ ([ + { + name: 'TenantManagement', + path: 'tenant-management', + parentName: 'Administration', + layout: "application" /* application */, + children: [ + { + path: 'tenants', + name: 'Tenants', + order: 1, + requiredPolicy: 'AbpTenantManagement.Tenants', + parentName: 'TenantManagement', + }, + ], + }, +])); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var TenantManagement; +(function (TenantManagement) { + /** + * @record + */ + function State() { } + TenantManagement.State = State; + /** + * @record + */ + function Item() { } + TenantManagement.Item = Item; + /** + * @record + */ + function AddRequest() { } + TenantManagement.AddRequest = AddRequest; + /** + * @record + */ + function UpdateRequest() { } + TenantManagement.UpdateRequest = UpdateRequest; + /** + * @record + */ + function DefaultConnectionStringRequest() { } + TenantManagement.DefaultConnectionStringRequest = DefaultConnectionStringRequest; +})(TenantManagement || (TenantManagement = {})); + +export { TENANT_MANAGEMENT_ROUTES, TenantManagementAdd, TenantManagementDelete, TenantManagementGet, TenantManagementGetById, TenantManagementModule, TenantManagementService, TenantManagementState, TenantManagementUpdate, TenantsComponent, TenantsResolver, TenantsComponent as ɵa, TenantManagementState as ɵb, TenantManagementService as ɵc, TenantManagementGet as ɵd, TenantManagementGetById as ɵe, TenantManagementAdd as ɵf, TenantManagementUpdate as ɵg, TenantManagementDelete as ɵh, TenantManagementService as ɵj, TenantManagementRoutingModule as ɵk, TenantsResolver as ɵl }; +//# sourceMappingURL=abp-ng.tenant-management.js.map diff --git a/npm/packs/ng/dist/tenant-management/fesm5/abp-ng.tenant-management.js.map b/npm/packs/ng/dist/tenant-management/fesm5/abp-ng.tenant-management.js.map new file mode 100644 index 0000000000..d9fa0c8c2e --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/fesm5/abp-ng.tenant-management.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.tenant-management.js","sources":["ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts"],"sourcesContent":["import { TenantManagement } from '../models/tenant-management';\n\nexport class TenantManagementGet {\n static readonly type = '[TenantManagement] Get';\n}\n\nexport class TenantManagementGetById {\n static readonly type = '[TenantManagement] Get By Id';\n constructor(public payload: string) {}\n}\n\nexport class TenantManagementAdd {\n static readonly type = '[TenantManagement] Add';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class TenantManagementUpdate {\n static readonly type = '[TenantManagement] Update';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class TenantManagementDelete {\n static readonly type = '[TenantManagement] Delete';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenant',\n };\n\n return this.rest.request(request);\n }\n\n getById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenant/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n delete(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenant/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n add(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenant`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n update(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenant/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenant/${id}/defaultConnectionString`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenant/${payload.id}/defaultConnectionString`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n TenantManagementAdd,\n TenantManagementDelete,\n TenantManagementGet,\n TenantManagementGetById,\n TenantManagementUpdate,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(TenantManagementGet)\n get({ patchState }: StateContext) {\n return this.tenantManagementService.get().pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(TenantManagementGetById)\n getById({ patchState }: StateContext, { payload }: TenantManagementGetById) {\n return this.tenantManagementService.getById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(TenantManagementDelete)\n delete({ dispatch }: StateContext, { payload }: TenantManagementDelete) {\n return this.tenantManagementService.delete(payload).pipe(switchMap(() => dispatch(new TenantManagementGet())));\n }\n\n @Action(TenantManagementAdd)\n add({ dispatch }: StateContext, { payload }: TenantManagementAdd) {\n return this.tenantManagementService.add(payload).pipe(switchMap(() => dispatch(new TenantManagementGet())));\n }\n\n @Action(TenantManagementUpdate)\n update({ dispatch, getState }: StateContext, { payload }: TenantManagementUpdate) {\n return dispatch(new TenantManagementGetById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.update({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new TenantManagementGet())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { pluck, switchMap, take } from 'rxjs/operators';\nimport {\n TenantManagementAdd,\n TenantManagementDelete,\n TenantManagementGetById,\n TenantManagementUpdate,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n datas$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n useSharedDatabase: boolean;\n\n selectedModalContent: {\n title: string;\n template: TemplateRef;\n onSave: () => void;\n };\n\n get showInput(): boolean {\n return !this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('modalWrapper', { static: false })\n modalWrapper: TemplateRef;\n\n @ViewChild('mTemplateConnStr', { static: false })\n mTemplateConnStr: TemplateRef;\n\n @ViewChild('mTemplateFeatures', { static: false })\n mTemplateFeatures: TemplateRef;\n\n @ViewChild('mTemplateTenant', { static: false })\n mTemplateTenant: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private modalService: NgbModal,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n openModal() {\n this.modalService.open(this.modalWrapper);\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this.useSharedDatabase,\n defaultConnectionString: this.defaultConnectionString || '',\n });\n }\n\n onEditConnStr(id: string) {\n this.selectedModalContent = {\n title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant',\n template: this.mTemplateConnStr,\n onSave: () => this.saveConnStr,\n };\n this.store\n .dispatch(new TenantManagementGetById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this.useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal();\n });\n }\n\n saveConnStr() {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(take(1))\n .subscribe(() => this.modalService.dismissAll());\n }\n\n onManageFeatures(id: string) {\n this.selectedModalContent = {\n title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant',\n template: this.mTemplateFeatures,\n onSave: () => {},\n };\n this.openModal();\n }\n\n onAdd() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal();\n this.selectedModalContent = {\n title: 'AbpTenantManagement::NewTenant',\n template: this.mTemplateTenant,\n onSave: () => this.saveTenant,\n };\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new TenantManagementGetById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.selectedModalContent = {\n title: 'AbpTenantManagement::Edit',\n template: this.mTemplateTenant,\n onSave: () => this.saveTenant,\n };\n this.createTenantForm();\n this.openModal();\n });\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n\n this.store\n .dispatch(\n this.selected.id\n ? new TenantManagementUpdate({ ...this.tenantForm.value, id: this.selected.id })\n : new TenantManagementAdd(this.tenantForm.value),\n )\n .subscribe(() => this.modalService.dismissAll());\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new TenantManagementDelete(id));\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { TenantManagementGet } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length\n ? null \n : this.store.dispatch(new TenantManagementGet());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n ],\n})\nexport class TenantManagementModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = [\n {\n name: 'TenantManagement',\n path: 'tenant-management',\n parentName: 'Administration',\n layout: eLayoutType.application,\n children: [\n {\n path: 'tenants',\n name: 'Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n parentName: 'TenantManagement',\n },\n ],\n },\n] as ABP.FullRoute[];\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/tenant-management/lib/actions/index.d.ts b/npm/packs/ng/dist/tenant-management/lib/actions/index.d.ts new file mode 100644 index 0000000000..5c9207873f --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/actions/index.d.ts @@ -0,0 +1 @@ +export * from './tenant-management.actions'; diff --git a/npm/packs/ng/dist/tenant-management/lib/actions/tenant-management.actions.d.ts b/npm/packs/ng/dist/tenant-management/lib/actions/tenant-management.actions.d.ts new file mode 100644 index 0000000000..ca3d341425 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/actions/tenant-management.actions.d.ts @@ -0,0 +1,24 @@ +import { TenantManagement } from '../models/tenant-management'; +export declare class TenantManagementGet { + static readonly type = "[TenantManagement] Get"; +} +export declare class TenantManagementGetById { + payload: string; + static readonly type = "[TenantManagement] Get By Id"; + constructor(payload: string); +} +export declare class TenantManagementAdd { + payload: TenantManagement.AddRequest; + static readonly type = "[TenantManagement] Add"; + constructor(payload: TenantManagement.AddRequest); +} +export declare class TenantManagementUpdate { + payload: TenantManagement.UpdateRequest; + static readonly type = "[TenantManagement] Update"; + constructor(payload: TenantManagement.UpdateRequest); +} +export declare class TenantManagementDelete { + payload: string; + static readonly type = "[TenantManagement] Delete"; + constructor(payload: string); +} diff --git a/npm/packs/ng/dist/tenant-management/lib/components/index.d.ts b/npm/packs/ng/dist/tenant-management/lib/components/index.d.ts new file mode 100644 index 0000000000..3174cf9458 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/components/index.d.ts @@ -0,0 +1 @@ +export * from './tenants/tenants.component'; diff --git a/npm/packs/ng/dist/tenant-management/lib/components/tenants/tenants.component.d.ts b/npm/packs/ng/dist/tenant-management/lib/components/tenants/tenants.component.d.ts new file mode 100644 index 0000000000..6955f04ee0 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/components/tenants/tenants.component.d.ts @@ -0,0 +1,43 @@ +import { ABP } from '@abp/ng.core'; +import { ConfirmationService } from '@abp/ng.theme.shared'; +import { TemplateRef } from '@angular/core'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { TenantManagementService } from '../../services'; +export declare class TenantsComponent { + private confirmationService; + private tenantService; + private modalService; + private fb; + private store; + datas$: Observable; + selected: ABP.BasicItem; + tenantForm: FormGroup; + defaultConnectionStringForm: FormGroup; + defaultConnectionString: string; + useSharedDatabase: boolean; + selectedModalContent: { + title: string; + template: TemplateRef; + onSave: () => void; + }; + readonly showInput: boolean; + readonly connectionString: string; + modalWrapper: TemplateRef; + mTemplateConnStr: TemplateRef; + mTemplateFeatures: TemplateRef; + mTemplateTenant: TemplateRef; + constructor(confirmationService: ConfirmationService, tenantService: TenantManagementService, modalService: NgbModal, fb: FormBuilder, store: Store); + openModal(): void; + private createTenantForm; + private createDefaultConnectionStringForm; + onEditConnStr(id: string): void; + saveConnStr(): void; + onManageFeatures(id: string): void; + onAdd(): void; + onEdit(id: string): void; + saveTenant(): void; + delete(id: string, name: string): void; +} diff --git a/npm/packs/ng/dist/tenant-management/lib/constants/index.d.ts b/npm/packs/ng/dist/tenant-management/lib/constants/index.d.ts new file mode 100644 index 0000000000..a3820983e2 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/constants/index.d.ts @@ -0,0 +1 @@ +export * from './routes'; diff --git a/npm/packs/ng/dist/tenant-management/lib/constants/routes.d.ts b/npm/packs/ng/dist/tenant-management/lib/constants/routes.d.ts new file mode 100644 index 0000000000..d3f92f257d --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/constants/routes.d.ts @@ -0,0 +1,2 @@ +import { ABP } from '@abp/ng.core'; +export declare const TENANT_MANAGEMENT_ROUTES: ABP.FullRoute[]; diff --git a/npm/packs/ng/dist/tenant-management/lib/models/index.d.ts b/npm/packs/ng/dist/tenant-management/lib/models/index.d.ts new file mode 100644 index 0000000000..580d09d215 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/models/index.d.ts @@ -0,0 +1 @@ +export * from './tenant-management'; diff --git a/npm/packs/ng/dist/tenant-management/lib/models/tenant-management.d.ts b/npm/packs/ng/dist/tenant-management/lib/models/tenant-management.d.ts new file mode 100644 index 0000000000..c1ddc624b8 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/models/tenant-management.d.ts @@ -0,0 +1,22 @@ +import { ABP } from '@abp/ng.core'; +export declare namespace TenantManagement { + interface State { + result: Response; + selectedItem: Item; + } + type Response = ABP.PagedResponse; + interface Item { + id: string; + name: string; + } + interface AddRequest { + name: string; + } + interface UpdateRequest extends AddRequest { + id: string; + } + interface DefaultConnectionStringRequest { + id: string; + defaultConnectionString: string; + } +} diff --git a/npm/packs/ng/dist/tenant-management/lib/resolvers/index.d.ts b/npm/packs/ng/dist/tenant-management/lib/resolvers/index.d.ts new file mode 100644 index 0000000000..3c5a42a2ac --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/resolvers/index.d.ts @@ -0,0 +1 @@ +export * from './tenants.resolver'; diff --git a/npm/packs/ng/dist/tenant-management/lib/resolvers/tenants.resolver.d.ts b/npm/packs/ng/dist/tenant-management/lib/resolvers/tenants.resolver.d.ts new file mode 100644 index 0000000000..c7bbe49cea --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/resolvers/tenants.resolver.d.ts @@ -0,0 +1,8 @@ +import { Resolve } from '@angular/router'; +import { Store } from '@ngxs/store'; +import { TenantManagement } from '../models/tenant-management'; +export declare class TenantsResolver implements Resolve { + private store; + constructor(store: Store); + resolve(): import("rxjs").Observable; +} diff --git a/npm/packs/ng/dist/tenant-management/lib/services/index.d.ts b/npm/packs/ng/dist/tenant-management/lib/services/index.d.ts new file mode 100644 index 0000000000..25e55ae978 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/services/index.d.ts @@ -0,0 +1 @@ +export * from './tenant-management.service'; diff --git a/npm/packs/ng/dist/tenant-management/lib/services/tenant-management.service.d.ts b/npm/packs/ng/dist/tenant-management/lib/services/tenant-management.service.d.ts new file mode 100644 index 0000000000..f4654da976 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/services/tenant-management.service.d.ts @@ -0,0 +1,14 @@ +import { Observable } from 'rxjs'; +import { RestService, ABP } from '@abp/ng.core'; +import { TenantManagement } from '../models/tenant-management'; +export declare class TenantManagementService { + private rest; + constructor(rest: RestService); + get(): Observable; + getById(id: string): Observable; + delete(id: string): Observable; + add(body: TenantManagement.AddRequest): Observable; + update(body: TenantManagement.UpdateRequest): Observable; + getDefaultConnectionString(id: string): Observable; + updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable; +} diff --git a/npm/packs/ng/dist/tenant-management/lib/states/index.d.ts b/npm/packs/ng/dist/tenant-management/lib/states/index.d.ts new file mode 100644 index 0000000000..a6fb4168fe --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/states/index.d.ts @@ -0,0 +1 @@ +export * from './tenant-management.state'; diff --git a/npm/packs/ng/dist/tenant-management/lib/states/tenant-management.state.d.ts b/npm/packs/ng/dist/tenant-management/lib/states/tenant-management.state.d.ts new file mode 100644 index 0000000000..70b497c8f3 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/states/tenant-management.state.d.ts @@ -0,0 +1,15 @@ +import { StateContext } from '@ngxs/store'; +import { TenantManagementAdd, TenantManagementDelete, TenantManagementGetById, TenantManagementUpdate } from '../actions/tenant-management.actions'; +import { TenantManagement } from '../models/tenant-management'; +import { TenantManagementService } from '../services/tenant-management.service'; +import { ABP } from '@abp/ng.core'; +export declare class TenantManagementState { + private tenantManagementService; + static get({ result }: TenantManagement.State): ABP.BasicItem[]; + constructor(tenantManagementService: TenantManagementService); + get({ patchState }: StateContext): import("rxjs").Observable>; + getById({ patchState }: StateContext, { payload }: TenantManagementGetById): import("rxjs").Observable; + delete({ dispatch }: StateContext, { payload }: TenantManagementDelete): import("rxjs").Observable; + add({ dispatch }: StateContext, { payload }: TenantManagementAdd): import("rxjs").Observable; + update({ dispatch, getState }: StateContext, { payload }: TenantManagementUpdate): import("rxjs").Observable; +} diff --git a/npm/packs/ng/dist/tenant-management/lib/tenant-management-routing.module.d.ts b/npm/packs/ng/dist/tenant-management/lib/tenant-management-routing.module.d.ts new file mode 100644 index 0000000000..2af30e1aed --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/tenant-management-routing.module.d.ts @@ -0,0 +1,2 @@ +export declare class TenantManagementRoutingModule { +} diff --git a/npm/packs/ng/dist/tenant-management/lib/tenant-management.module.d.ts b/npm/packs/ng/dist/tenant-management/lib/tenant-management.module.d.ts new file mode 100644 index 0000000000..07e1370976 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/lib/tenant-management.module.d.ts @@ -0,0 +1,2 @@ +export declare class TenantManagementModule { +} diff --git a/npm/packs/ng/dist/tenant-management/package.json b/npm/packs/ng/dist/tenant-management/package.json new file mode 100644 index 0000000000..82cd8b8c75 --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/package.json @@ -0,0 +1,20 @@ +{ + "name": "@abp/ng.tenant-management", + "version": "0.5.0", + "peerDependencies": { + "@abp/ng.theme.shared": "^0.5.0" + }, + "main": "bundles/abp-ng.tenant-management.umd.js", + "module": "fesm5/abp-ng.tenant-management.js", + "es2015": "fesm2015/abp-ng.tenant-management.js", + "esm5": "esm5/abp-ng.tenant-management.js", + "esm2015": "esm2015/abp-ng.tenant-management.js", + "fesm5": "fesm5/abp-ng.tenant-management.js", + "fesm2015": "fesm2015/abp-ng.tenant-management.js", + "typings": "abp-ng.tenant-management.d.ts", + "metadata": "abp-ng.tenant-management.metadata.json", + "sideEffects": false, + "dependencies": { + "tslib": "^1.9.0" + } +} diff --git a/npm/packs/ng/dist/tenant-management/public-api.d.ts b/npm/packs/ng/dist/tenant-management/public-api.d.ts new file mode 100644 index 0000000000..9bae9a9edb --- /dev/null +++ b/npm/packs/ng/dist/tenant-management/public-api.d.ts @@ -0,0 +1,8 @@ +export * from './lib/tenant-management.module'; +export * from './lib/actions'; +export * from './lib/components'; +export * from './lib/constants'; +export * from './lib/models'; +export * from './lib/resolvers'; +export * from './lib/services'; +export * from './lib/states'; diff --git a/npm/packs/ng/dist/theme-basic/README.md b/npm/packs/ng/dist/theme-basic/README.md new file mode 100644 index 0000000000..fc9a74c13d --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/README.md @@ -0,0 +1 @@ +

@abp/ng.theme.basic

diff --git a/npm/packs/ng/dist/theme-basic/abp-ng.theme.basic.d.ts b/npm/packs/ng/dist/theme-basic/abp-ng.theme.basic.d.ts new file mode 100644 index 0000000000..739e1a44c1 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/abp-ng.theme.basic.d.ts @@ -0,0 +1,14 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './public-api'; +export { LayoutAddNavigationElement as ɵi } from './lib/actions/layout.actions'; +export { ChangePasswordComponent as ɵf } from './lib/components/change-password/change-password.component'; +export { LayoutAccountComponent as ɵc } from './lib/components/layout-account/layout-account.component'; +export { LayoutApplicationComponent as ɵa } from './lib/components/layout-application/layout-application.component'; +export { LayoutEmptyComponent as ɵd } from './lib/components/layout-empty/layout-empty.component'; +export { LayoutComponent as ɵe } from './lib/components/layout/layout.component'; +export { ProfileComponent as ɵg } from './lib/components/profile/profile.component'; +export { Layout as ɵj } from './lib/models/layout'; +export { LayoutState as ɵb } from './lib/states'; +export { LayoutState as ɵh } from './lib/states/layout.state'; diff --git a/npm/packs/ng/dist/theme-basic/abp-ng.theme.basic.metadata.json b/npm/packs/ng/dist/theme-basic/abp-ng.theme.basic.metadata.json new file mode 100644 index 0000000000..ef35e4c07e --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/abp-ng.theme.basic.metadata.json @@ -0,0 +1 @@ +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/layout.state"},{"from":"./lib/layout-application/layout-application.component"},{"from":"./lib/layout-empty/layout-empty.component"}],"metadata":{"LAYOUTS":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"}],"ThemeBasicModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"declarations":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"LAYOUTS"}},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":20,"character":4},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":21,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbCollapseModule","line":22,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":23,"character":4},{"__symbolic":"reference","module":"primeng/toast","name":"ToastModule","line":24,"character":4},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":25,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":26,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵh"}]]}],"exports":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"LAYOUTS"}}],"entryComponents":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"LAYOUTS"}}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"abp-layout-application","template":"\n \n\n
    \n \n
\n
\n\n\n\n\n\n\n
  • \n \n {{ defaultLanguage$ | async }}\n \n
    \n {{ lang?.displayName }}\n
    \n
  • \n
    \n\n\n
  • \n \n {{ (currentUser$ | async)?.userName }}\n \n \n
  • \n
    \n"}]}],"members":{"routes$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":30,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigState","line":30,"character":10},"member":"getOne"},"arguments":["routes"]}]}]}],"currentUser$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":33,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigState","line":33,"character":10},"member":"getOne"},"arguments":["currentUser"]}]}]}],"languages$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":36,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigState","line":36,"character":10},"member":"getDeep"},"arguments":["localization.languages"]}]}]}],"navElements$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":39,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getNavigationElements"}]}]}],"currentUserRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":42,"character":3},"arguments":["currentUser",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":42,"character":51}}]}]}],"languageRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":45,"character":3},"arguments":["language",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":45,"character":48}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":81,"character":29},{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":81,"character":58}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onChangeLang":[{"__symbolic":"method"}],"logout":[{"__symbolic":"method"}]},"statics":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":28,"character":16},"member":"application"}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"abp-layout-account","template":"\n \n\n \n \n \n \n \n\n"}]}],"members":{},"statics":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":9,"character":16},"member":"account"}}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"abp-layout-empty","template":"\n Layout-empty\n \n "}]}],"members":{},"statics":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":12,"character":16},"member":"empty"}}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":" abp-layout","template":"\n\n
    \n \n
    \n\n\n\n"}]}],"members":{}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"abp-change-password","template":"\n
    \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n"}]}],"members":{"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":29,"character":3}}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":32,"character":3},"arguments":["modalContent",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":39,"character":26},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbModal","line":39,"character":61},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":39,"character":86}]}],"ngOnInit":[{"__symbolic":"method"}],"onSubmit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"setVisible":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"abp-profile","template":"\n
    \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n"}]}],"members":{"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":28,"character":3}}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":31,"character":3},"arguments":["modalContent",{"static":false}]}]}],"profile$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":34,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ProfileState","line":34,"character":10},"member":"getProfile"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":41,"character":26},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbModal","line":41,"character":61},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":41,"character":86}]}],"buildForm":[{"__symbolic":"method"}],"onSubmit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"setVisible":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":6,"character":1},"arguments":[{"name":"LayoutState","defaults":{"navigationElements":[]}}]}],"members":{"layoutAction":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":16,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵi"}]}]}]},"statics":{"getNavigationElements":{"__symbolic":"function","parameters":["navigationElements"],"value":{"__symbolic":"reference","name":"navigationElements"}}}},"ɵi":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵj"},"member":"NavigationElement"}]}]},"statics":{"type":"[Layout] Add Navigation Element"}}},"origins":{"LAYOUTS":"./lib/theme-basic.module","ThemeBasicModule":"./lib/theme-basic.module","ɵa":"./lib/components/layout-application/layout-application.component","ɵb":"./lib/states","ɵc":"./lib/components/layout-account/layout-account.component","ɵd":"./lib/components/layout-empty/layout-empty.component","ɵe":"./lib/components/layout/layout.component","ɵf":"./lib/components/change-password/change-password.component","ɵg":"./lib/components/profile/profile.component","ɵh":"./lib/states/layout.state","ɵi":"./lib/actions/layout.actions","ɵj":"./lib/models/layout"},"importAs":"@abp/ng.theme.basic"} \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js b/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js new file mode 100644 index 0000000000..a265f6fbc6 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js @@ -0,0 +1,784 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@angular/core'), require('@ng-bootstrap/ng-bootstrap'), require('@angular/forms'), require('@ngx-validate/core'), require('@ngxs/store'), require('rxjs'), require('rxjs/operators'), require('@ngxs/router-plugin'), require('angular-oauth2-oidc'), require('snq'), require('just-compare'), require('@abp/ng.theme.shared'), require('primeng/toast')) : + typeof define === 'function' && define.amd ? define('@abp/ng.theme.basic', ['exports', '@abp/ng.core', '@angular/core', '@ng-bootstrap/ng-bootstrap', '@angular/forms', '@ngx-validate/core', '@ngxs/store', 'rxjs', 'rxjs/operators', '@ngxs/router-plugin', 'angular-oauth2-oidc', 'snq', 'just-compare', '@abp/ng.theme.shared', 'primeng/toast'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.theme = global.abp.ng.theme || {}, global.abp.ng.theme.basic = {}), global.ng_core, global.ng.core, global.ngBootstrap, global.ng.forms, global.core$1, global.store, global.rxjs, global.rxjs.operators, global.routerPlugin, global.angularOauth2Oidc, global.snq, global.compare, global.ng_theme_shared, global.toast)); +}(this, function (exports, ng_core, core, ngBootstrap, forms, core$1, store, rxjs, operators, routerPlugin, angularOauth2Oidc, snq, compare, ng_theme_shared, toast) { 'use strict'; + + snq = snq && snq.hasOwnProperty('default') ? snq['default'] : snq; + compare = compare && compare.hasOwnProperty('default') ? compare['default'] : compare; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + 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; + return c > 3 && r && Object.defineProperty(target, key, r), r; + } + + function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); + } + + function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; + } + + function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var minLength = forms.Validators.minLength, required = forms.Validators.required; + var ChangePasswordComponent = /** @class */ (function () { + function ChangePasswordComponent(fb, modalService, store) { + this.fb = fb; + this.modalService = modalService; + this.store = store; + this.visibleChange = new core.EventEmitter(); + } + /** + * @return {?} + */ + ChangePasswordComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + this.form = this.fb.group({ + password: ['', [required, minLength(6), core$1.validatePassword(['small', 'capital', 'number', 'special'])]], + newPassword: ['', [required, minLength(6), core$1.validatePassword(['small', 'capital', 'number', 'special'])]], + repeatNewPassword: ['', [required, minLength(6), core$1.validatePassword(['small', 'capital', 'number', 'special'])]], + }, { + validators: [core$1.comparePasswords(['newPassword', 'repeatNewPassword'])], + }); + }; + /** + * @return {?} + */ + ChangePasswordComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.form.invalid) + return; + this.store + .dispatch(new ng_core.ProfileChangePassword({ + currentPassword: this.form.get('password').value, + newPassword: this.form.get('newPassword').value, + })) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalRef.close(); })); + }; + /** + * @return {?} + */ + ChangePasswordComponent.prototype.openModal = /** + * @return {?} + */ + function () { + var _this = this; + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + rxjs.from(this.modalRef.result) + .pipe(operators.take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + function (data) { + _this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + function (reason) { + _this.setVisible(false); + })); + }; + /** + * @param {?} value + * @return {?} + */ + ChangePasswordComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + this.visible = value; + this.visibleChange.emit(value); + }; + /** + * @param {?} __0 + * @return {?} + */ + ChangePasswordComponent.prototype.ngOnChanges = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var visible = _a.visible; + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + }; + ChangePasswordComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-change-password', + template: "\n
    \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n" + }] } + ]; + /** @nocollapse */ + ChangePasswordComponent.ctorParameters = function () { return [ + { type: forms.FormBuilder }, + { type: ngBootstrap.NgbModal }, + { type: store.Store } + ]; }; + ChangePasswordComponent.propDecorators = { + visible: [{ type: core.Input }], + visibleChange: [{ type: core.Output }], + modalContent: [{ type: core.ViewChild, args: ['modalContent', { static: false },] }] + }; + return ChangePasswordComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LayoutAccountComponent = /** @class */ (function () { + function LayoutAccountComponent() { + this.isCollapsed = false; + } + // required for dynamic component + LayoutAccountComponent.type = "account" /* account */; + LayoutAccountComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-layout-account', + template: "\n \n\n \n \n \n \n \n\n" + }] } + ]; + return LayoutAccountComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LayoutAddNavigationElement = /** @class */ (function () { + function LayoutAddNavigationElement(payload) { + this.payload = payload; + } + LayoutAddNavigationElement.type = '[Layout] Add Navigation Element'; + return LayoutAddNavigationElement; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LayoutState = /** @class */ (function () { + function LayoutState() { + } + /** + * @param {?} __0 + * @return {?} + */ + LayoutState.getNavigationElements = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var navigationElements = _a.navigationElements; + return navigationElements; + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + LayoutState.prototype.layoutAction = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var getState = _a.getState, patchState = _a.patchState; + var _c = _b.payload, payload = _c === void 0 ? [] : _c; + var navigationElements = getState().navigationElements; + if (!Array.isArray(payload)) { + payload = [payload]; + } + if (navigationElements.length) { + payload = snq((/** + * @return {?} + */ + function () { + return ((/** @type {?} */ (payload))).filter((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var name = _a.name; + return navigationElements.findIndex((/** + * @param {?} nav + * @return {?} + */ + function (nav) { return nav.name === name; })) < 0; + })); + }), []); + } + if (!payload.length) + return; + navigationElements = __spread(navigationElements, payload).map((/** + * @param {?} element + * @return {?} + */ + function (element) { return (__assign({}, element, { order: element.order || 99 })); })) + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + function (a, b) { return a.order - b.order; })); + return patchState({ + navigationElements: navigationElements, + }); + }; + __decorate([ + store.Action(LayoutAddNavigationElement), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, LayoutAddNavigationElement]), + __metadata("design:returntype", void 0) + ], LayoutState.prototype, "layoutAction", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) + ], LayoutState, "getNavigationElements", null); + LayoutState = __decorate([ + store.State({ + name: 'LayoutState', + defaults: (/** @type {?} */ ({ navigationElements: [] })), + }) + ], LayoutState); + return LayoutState; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LayoutApplicationComponent = /** @class */ (function () { + function LayoutApplicationComponent(store, oauthService) { + this.store = store; + this.oauthService = oauthService; + this.isOpenChangePassword = false; + this.isOpenProfile = false; + this.rightPartElements = []; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + function (_, item) { return item.name; }); + this.trackElementByFn = (/** + * @param {?} _ + * @param {?} element + * @return {?} + */ + function (_, element) { return element; }); + } + Object.defineProperty(LayoutApplicationComponent.prototype, "visibleRoutes$", { + get: /** + * @return {?} + */ + function () { + return this.routes$.pipe(operators.map((/** + * @param {?} routes + * @return {?} + */ + function (routes) { return getVisibleRoutes(routes); }))); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(LayoutApplicationComponent.prototype, "defaultLanguage$", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return this.languages$.pipe(operators.map((/** + * @param {?} languages + * @return {?} + */ + function (languages) { return snq((/** + * @return {?} + */ + function () { return languages.find((/** + * @param {?} lang + * @return {?} + */ + function (lang) { return lang.cultureName === _this.selectedLangCulture; })).displayName; })); }), '')); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(LayoutApplicationComponent.prototype, "dropdownLanguages$", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return this.languages$.pipe(operators.map((/** + * @param {?} languages + * @return {?} + */ + function (languages) { return snq((/** + * @return {?} + */ + function () { return languages.filter((/** + * @param {?} lang + * @return {?} + */ + function (lang) { return lang.cultureName !== _this.selectedLangCulture; })); })); }), [])); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(LayoutApplicationComponent.prototype, "selectedLangCulture", { + get: /** + * @return {?} + */ + function () { + return this.store.selectSnapshot(ng_core.SessionState.getLanguage); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + LayoutApplicationComponent.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var name = _a.name; + return name; + })); + if (navigations.indexOf('LanguageRef') < 0) { + this.store.dispatch(new LayoutAddNavigationElement([ + { element: this.languageRef, order: 4, name: 'LanguageRef' }, + { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' }, + ])); + } + this.navElements$ + .pipe(operators.map((/** + * @param {?} elements + * @return {?} + */ + function (elements) { return elements.map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var element = _a.element; + return element; + })); })), operators.filter((/** + * @param {?} elements + * @return {?} + */ + function (elements) { return !compare(elements, _this.rightPartElements); })), ng_core.takeUntilDestroy(this)) + .subscribe((/** + * @param {?} elements + * @return {?} + */ + function (elements) { + setTimeout((/** + * @return {?} + */ + function () { return (_this.rightPartElements = elements); }), 0); + })); + }; + /** + * @return {?} + */ + LayoutApplicationComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + /** + * @param {?} cultureName + * @return {?} + */ + LayoutApplicationComponent.prototype.onChangeLang = /** + * @param {?} cultureName + * @return {?} + */ + function (cultureName) { + this.store.dispatch(new ng_core.SessionSetLanguage(cultureName)); + this.store.dispatch(new ng_core.ConfigGetAppConfiguration()); + }; + /** + * @return {?} + */ + LayoutApplicationComponent.prototype.logout = /** + * @return {?} + */ + function () { + this.oauthService.logOut(); + this.store.dispatch(new routerPlugin.Navigate(['/account/login'], null, { + state: { redirectUrl: this.store.selectSnapshot(routerPlugin.RouterState).state.url }, + })); + this.store.dispatch(new ng_core.ConfigGetAppConfiguration()); + }; + // required for dynamic component + LayoutApplicationComponent.type = "application" /* application */; + LayoutApplicationComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-layout-application', + template: "\n \n\n
      \n \n
    \n
    \n\n\n\n\n\n\n
  • \n \n {{ defaultLanguage$ | async }}\n \n
    \n {{ lang?.displayName }}\n
    \n
  • \n
    \n\n\n
  • \n \n {{ (currentUser$ | async)?.userName }}\n \n \n
  • \n
    \n" + }] } + ]; + /** @nocollapse */ + LayoutApplicationComponent.ctorParameters = function () { return [ + { type: store.Store }, + { type: angularOauth2Oidc.OAuthService } + ]; }; + LayoutApplicationComponent.propDecorators = { + currentUserRef: [{ type: core.ViewChild, args: ['currentUser', { static: false, read: core.TemplateRef },] }], + languageRef: [{ type: core.ViewChild, args: ['language', { static: false, read: core.TemplateRef },] }] + }; + __decorate([ + store.Select(ng_core.ConfigState.getOne('routes')), + __metadata("design:type", rxjs.Observable) + ], LayoutApplicationComponent.prototype, "routes$", void 0); + __decorate([ + store.Select(ng_core.ConfigState.getOne('currentUser')), + __metadata("design:type", rxjs.Observable) + ], LayoutApplicationComponent.prototype, "currentUser$", void 0); + __decorate([ + store.Select(ng_core.ConfigState.getDeep('localization.languages')), + __metadata("design:type", rxjs.Observable) + ], LayoutApplicationComponent.prototype, "languages$", void 0); + __decorate([ + store.Select(LayoutState.getNavigationElements), + __metadata("design:type", rxjs.Observable) + ], LayoutApplicationComponent.prototype, "navElements$", void 0); + return LayoutApplicationComponent; + }()); + /** + * @param {?} routes + * @return {?} + */ + function getVisibleRoutes(routes) { + return routes.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + if (val.invisible) + return acc; + if (val.children && val.children.length) { + val.children = getVisibleRoutes(val.children); + } + return __spread(acc, [val]); + }), []); + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LayoutEmptyComponent = /** @class */ (function () { + function LayoutEmptyComponent() { + } + // required for dynamic component + LayoutEmptyComponent.type = "empty" /* empty */; + LayoutEmptyComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-layout-empty', + template: "\n Layout-empty\n \n " + }] } + ]; + return LayoutEmptyComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LayoutComponent = /** @class */ (function () { + function LayoutComponent() { + this.isCollapsed = false; + } + LayoutComponent.decorators = [ + { type: core.Component, args: [{ + selector: ' abp-layout', + template: "\n\n
    \n \n
    \n\n\n\n" + }] } + ]; + return LayoutComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var maxLength = forms.Validators.maxLength, required$1 = forms.Validators.required, email = forms.Validators.email; + var ProfileComponent = /** @class */ (function () { + function ProfileComponent(fb, modalService, store) { + this.fb = fb; + this.modalService = modalService; + this.store = store; + this.visibleChange = new core.EventEmitter(); + } + /** + * @return {?} + */ + ProfileComponent.prototype.buildForm = /** + * @return {?} + */ + function () { + var _this = this; + this.store + .dispatch(new ng_core.ProfileGet()) + .pipe(operators.withLatestFrom(this.profile$), operators.take(1)) + .subscribe((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _b = __read(_a, 2), profile = _b[1]; + _this.form = _this.fb.group({ + userName: [profile.userName, [required$1, maxLength(256)]], + email: [profile.email, [required$1, email, maxLength(256)]], + name: [profile.name || '', [maxLength(64)]], + surname: [profile.surname || '', [maxLength(64)]], + phoneNumber: [profile.phoneNumber || '', [maxLength(16)]], + }); + })); + }; + /** + * @return {?} + */ + ProfileComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.form.invalid) + return; + this.store.dispatch(new ng_core.ProfileUpdate(this.form.value)).subscribe((/** + * @return {?} + */ + function () { return _this.modalRef.close(); })); + }; + /** + * @return {?} + */ + ProfileComponent.prototype.openModal = /** + * @return {?} + */ + function () { + var _this = this; + this.buildForm(); + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + rxjs.from(this.modalRef.result) + .pipe(operators.take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + function (data) { + _this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + function (reason) { + _this.setVisible(false); + })); + }; + /** + * @param {?} value + * @return {?} + */ + ProfileComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + this.visible = value; + this.visibleChange.emit(value); + }; + /** + * @param {?} __0 + * @return {?} + */ + ProfileComponent.prototype.ngOnChanges = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var visible = _a.visible; + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + }; + ProfileComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-profile', + template: "\n
    \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n" + }] } + ]; + /** @nocollapse */ + ProfileComponent.ctorParameters = function () { return [ + { type: forms.FormBuilder }, + { type: ngBootstrap.NgbModal }, + { type: store.Store } + ]; }; + ProfileComponent.propDecorators = { + visible: [{ type: core.Input }], + visibleChange: [{ type: core.Output }], + modalContent: [{ type: core.ViewChild, args: ['modalContent', { static: false },] }] + }; + __decorate([ + store.Select(ng_core.ProfileState.getProfile), + __metadata("design:type", rxjs.Observable) + ], ProfileComponent.prototype, "profile$", void 0); + return ProfileComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var LAYOUTS = [LayoutApplicationComponent, LayoutAccountComponent, LayoutEmptyComponent]; + var ThemeBasicModule = /** @class */ (function () { + function ThemeBasicModule() { + } + ThemeBasicModule.decorators = [ + { type: core.NgModule, args: [{ + declarations: __spread(LAYOUTS, [LayoutComponent, ChangePasswordComponent, ProfileComponent]), + imports: [ + ng_core.CoreModule, + ng_theme_shared.ThemeSharedModule, + ngBootstrap.NgbCollapseModule, + ngBootstrap.NgbDropdownModule, + toast.ToastModule, + core$1.NgxValidateCoreModule, + store.NgxsModule.forFeature([LayoutState]), + ], + exports: __spread(LAYOUTS), + entryComponents: __spread(LAYOUTS), + },] } + ]; + return ThemeBasicModule; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var Layout; + (function (Layout) { + /** + * @record + */ + function State() { } + Layout.State = State; + /** + * @record + */ + function NavigationElement() { } + Layout.NavigationElement = NavigationElement; + })(Layout || (Layout = {})); + + exports.LAYOUTS = LAYOUTS; + exports.LayoutAccountComponent = LayoutAccountComponent; + exports.LayoutAddNavigationElement = LayoutAddNavigationElement; + exports.LayoutApplicationComponent = LayoutApplicationComponent; + exports.LayoutEmptyComponent = LayoutEmptyComponent; + exports.LayoutState = LayoutState; + exports.ThemeBasicModule = ThemeBasicModule; + exports.ɵa = LayoutApplicationComponent; + exports.ɵb = LayoutState; + exports.ɵc = LayoutAccountComponent; + exports.ɵd = LayoutEmptyComponent; + exports.ɵe = LayoutComponent; + exports.ɵf = ChangePasswordComponent; + exports.ɵg = ProfileComponent; + exports.ɵh = LayoutState; + exports.ɵi = LayoutAddNavigationElement; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=abp-ng.theme.basic.umd.js.map diff --git a/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js.map b/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js.map new file mode 100644 index 0000000000..9d94c4ddb1 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.theme.basic.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.theme.basic/lib/components/change-password/change-password.component.ts","ng://@abp/ng.theme.basic/lib/components/layout-account/layout-account.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/layout-application/layout-application.component.ts","ng://@abp/ng.theme.basic/lib/components/layout-empty/layout-empty.component.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/components/profile/profile.component.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { ProfileChangePassword } from '@abp/ng.core';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbActiveModal, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { comparePasswords, validatePassword } from '@ngx-validate/core';\nimport { Store } from '@ngxs/store';\nimport { from } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nconst { minLength, required } = Validators;\n\n@Component({\n selector: 'abp-change-password',\n templateUrl: './change-password.component.html',\n})\nexport class ChangePasswordComponent implements OnInit, OnChanges {\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n modalRef: NgbModalRef;\n\n constructor(private fb: FormBuilder, private modalService: NgbModal, private store: Store) {}\n\n ngOnInit(): void {\n this.form = this.fb.group(\n {\n password: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n newPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n repeatNewPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n },\n {\n validators: [comparePasswords(['newPassword', 'repeatNewPassword'])],\n },\n );\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.store\n .dispatch(\n new ProfileChangePassword({\n currentPassword: this.form.get('password').value,\n newPassword: this.form.get('newPassword').value,\n }),\n )\n .subscribe(() => this.modalRef.close());\n }\n\n openModal() {\n this.modalRef = this.modalService.open(this.modalContent);\n this.visibleChange.emit(true);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './layout-account.component.html',\n})\nexport class LayoutAccountComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n\n isCollapsed: boolean = false;\n}\n","import { Layout } from '../models/layout';\n\nexport class LayoutAddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { LayoutAddNavigationElement } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(LayoutAddNavigationElement)\n layoutAction({ getState, patchState }: StateContext, { payload = [] }: LayoutAddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n ConfigGetAppConfiguration,\n ConfigState,\n eLayoutType,\n SessionSetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport { Component, TrackByFunction, ViewChild, TemplateRef, AfterViewInit, OnDestroy } from '@angular/core';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { map, distinctUntilChanged, delay, filter } from 'rxjs/operators';\nimport snq from 'snq';\nimport { LayoutAddNavigationElement } from '../../actions';\nimport { LayoutState } from '../../states';\nimport { Layout } from '../../models/layout';\nimport compare from 'just-compare';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './layout-application.component.html',\n})\nexport class LayoutApplicationComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new LayoutAddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SessionSetLanguage(cultureName));\n this.store.dispatch(new ConfigGetAppConfiguration());\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new ConfigGetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class LayoutEmptyComponent {\n // required for dynamic component\n static type = eLayoutType.empty;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n})\nexport class LayoutComponent {\n isCollapsed: boolean = false;\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { Store, Select } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { take, withLatestFrom } from 'rxjs/operators';\nimport { ProfileGet, ProfileState, Profile, ProfileUpdate } from '@abp/ng.core';\n\nconst { maxLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-profile',\n templateUrl: './profile.component.html',\n})\nexport class ProfileComponent implements OnChanges {\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n @Select(ProfileState.getProfile)\n profile$: Observable;\n\n form: FormGroup;\n\n modalRef: NgbModalRef;\n\n constructor(private fb: FormBuilder, private modalService: NgbModal, private store: Store) {}\n\n buildForm() {\n this.store\n .dispatch(new ProfileGet())\n .pipe(\n withLatestFrom(this.profile$),\n take(1),\n )\n .subscribe(([, profile]) => {\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\n onSubmit() {\n if (this.form.invalid) return;\n\n this.store.dispatch(new ProfileUpdate(this.form.value)).subscribe(() => this.modalRef.close());\n }\n\n openModal() {\n this.buildForm();\n\n this.modalRef = this.modalService.open(this.modalContent);\n this.visibleChange.emit(true);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ChangePasswordComponent } from './components/change-password/change-password.component';\nimport { LayoutAccountComponent } from './components/layout-account/layout-account.component';\nimport { LayoutApplicationComponent } from './components/layout-application/layout-application.component';\nimport { LayoutEmptyComponent } from './components/layout-empty/layout-empty.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { ToastModule } from 'primeng/toast';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { LayoutState } from './states/layout.state';\n\nexport const LAYOUTS = [LayoutApplicationComponent, LayoutAccountComponent, LayoutEmptyComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent, ChangePasswordComponent, ProfileComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS],\n})\nexport class ThemeBasicModule {}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n"],"names":["EventEmitter","validatePassword","comparePasswords","ProfileChangePassword","from","take","Component","FormBuilder","NgbModal","Store","Input","Output","ViewChild","tslib_1.__spread","tslib_1.__decorate","Action","Selector","State","map","SessionState","filter","takeUntilDestroy","SessionSetLanguage","ConfigGetAppConfiguration","Navigate","RouterState","OAuthService","TemplateRef","Select","ConfigState","Observable","required","ProfileGet","withLatestFrom","ProfileUpdate","ProfileState","NgModule","CoreModule","ThemeSharedModule","NgbCollapseModule","NgbDropdownModule","ToastModule","NgxValidateCoreModule","NgxsModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js b/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js new file mode 100644 index 0000000000..f76f3a3990 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js @@ -0,0 +1,2 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@abp/ng.core"),require("@angular/core"),require("@ng-bootstrap/ng-bootstrap"),require("@angular/forms"),require("@ngx-validate/core"),require("@ngxs/store"),require("rxjs"),require("rxjs/operators"),require("@ngxs/router-plugin"),require("angular-oauth2-oidc"),require("snq"),require("just-compare"),require("@abp/ng.theme.shared"),require("primeng/toast")):"function"==typeof define&&define.amd?define("@abp/ng.theme.basic",["exports","@abp/ng.core","@angular/core","@ng-bootstrap/ng-bootstrap","@angular/forms","@ngx-validate/core","@ngxs/store","rxjs","rxjs/operators","@ngxs/router-plugin","angular-oauth2-oidc","snq","just-compare","@abp/ng.theme.shared","primeng/toast"],n):n(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng.theme=e.abp.ng.theme||{},e.abp.ng.theme.basic={}),e.ng_core,e.ng.core,e.ngBootstrap,e.ng.forms,e.core$1,e.store,e.rxjs,e.rxjs.operators,e.routerPlugin,e.angularOauth2Oidc,e.snq,e.compare,e.ng_theme_shared,e.toast)}(this,function(e,n,t,a,o,r,i,s,l,p,d,u,c,m,g){"use strict";u=u&&u.hasOwnProperty("default")?u.default:u,c=c&&c.hasOwnProperty("default")?c.default:c;var f=function(){return(f=Object.assign||function(e){for(var n,t=1,a=arguments.length;t=0;s--)(o=e[s])&&(i=(r<3?o(i):r>3?o(n,t,i):o(n,t))||i);return r>3&&i&&Object.defineProperty(n,t,i),i}function h(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)}function y(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var a,o,r=t.call(e),i=[];try{for(;(void 0===n||n-- >0)&&!(a=r.next()).done;)i.push(a.value)}catch(e){o={error:e}}finally{try{a&&!a.done&&(t=r.return)&&t.call(r)}finally{if(o)throw o.error}}return i}function v(){for(var e=[],n=0;n\n \n
    \n \n\n \n
    \n\n'}]}],e.ctorParameters=function(){return[{type:o.FormBuilder},{type:a.NgbModal},{type:i.Store}]},e.propDecorators={visible:[{type:t.Input}],visibleChange:[{type:t.Output}],modalContent:[{type:t.ViewChild,args:["modalContent",{static:!1}]}]},e}(),N=function(){function e(){this.isCollapsed=!1}return e.type="account",e.decorators=[{type:t.Component,args:[{selector:"abp-layout-account",template:'\n \n\n \n \n \n \n \n\n'}]}],e}(),O=function(){function e(e){this.payload=e}return e.type="[Layout] Add Navigation Element",e}(),S=function(){function e(){}return e.getNavigationElements=function(e){return e.navigationElements},e.prototype.layoutAction=function(e,n){var t=e.getState,a=e.patchState,o=n.payload,r=void 0===o?[]:o,i=t().navigationElements;if(Array.isArray(r)||(r=[r]),i.length&&(r=u(function(){return r.filter(function(e){var n=e.name;return i.findIndex(function(e){return e.name===n})<0})},[])),r.length)return a({navigationElements:i=v(i,r).map(function(e){return f({},e,{order:e.order||99})}).sort(function(e,n){return e.order-n.order})})},b([i.Action(O),h("design:type",Function),h("design:paramtypes",[Object,O]),h("design:returntype",void 0)],e.prototype,"layoutAction",null),b([i.Selector(),h("design:type",Function),h("design:paramtypes",[Object]),h("design:returntype",Array)],e,"getNavigationElements",null),e=b([i.State({name:"LayoutState",defaults:{navigationElements:[]}})],e)}(),L=function(){function e(e,n){this.store=e,this.oauthService=n,this.isOpenChangePassword=!1,this.isOpenProfile=!1,this.rightPartElements=[],this.trackByFn=function(e,n){return n.name},this.trackElementByFn=function(e,n){return n}}return Object.defineProperty(e.prototype,"visibleRoutes$",{get:function(){return this.routes$.pipe(l.map(function(e){return function e(n){return n.reduce(function(n,t){return t.invisible?n:(t.children&&t.children.length&&(t.children=e(t.children)),v(n,[t]))},[])}(e)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"defaultLanguage$",{get:function(){var e=this;return this.languages$.pipe(l.map(function(n){return u(function(){return n.find(function(n){return n.cultureName===e.selectedLangCulture}).displayName})},""))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dropdownLanguages$",{get:function(){var e=this;return this.languages$.pipe(l.map(function(n){return u(function(){return n.filter(function(n){return n.cultureName!==e.selectedLangCulture})})},[]))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedLangCulture",{get:function(){return this.store.selectSnapshot(n.SessionState.getLanguage)},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;this.store.selectSnapshot(S.getNavigationElements).map(function(e){return e.name}).indexOf("LanguageRef")<0&&this.store.dispatch(new O([{element:this.languageRef,order:4,name:"LanguageRef"},{element:this.currentUserRef,order:5,name:"CurrentUserRef"}])),this.navElements$.pipe(l.map(function(e){return e.map(function(e){return e.element})}),l.filter(function(n){return!c(n,e.rightPartElements)}),n.takeUntilDestroy(this)).subscribe(function(n){setTimeout(function(){return e.rightPartElements=n},0)})},e.prototype.ngOnDestroy=function(){},e.prototype.onChangeLang=function(e){this.store.dispatch(new n.SessionSetLanguage(e)),this.store.dispatch(new n.ConfigGetAppConfiguration)},e.prototype.logout=function(){this.oauthService.logOut(),this.store.dispatch(new p.Navigate(["/account/login"],null,{state:{redirectUrl:this.store.selectSnapshot(p.RouterState).state.url}})),this.store.dispatch(new n.ConfigGetAppConfiguration)},e.type="application",e.decorators=[{type:t.Component,args:[{selector:"abp-layout-application",template:'\n \n\n \n\n\n\n\n\n\n\n \n\n\n\n \n\n'}]}],e.ctorParameters=function(){return[{type:i.Store},{type:d.OAuthService}]},e.propDecorators={currentUserRef:[{type:t.ViewChild,args:["currentUser",{static:!1,read:t.TemplateRef}]}],languageRef:[{type:t.ViewChild,args:["language",{static:!1,read:t.TemplateRef}]}]},b([i.Select(n.ConfigState.getOne("routes")),h("design:type",s.Observable)],e.prototype,"routes$",void 0),b([i.Select(n.ConfigState.getOne("currentUser")),h("design:type",s.Observable)],e.prototype,"currentUser$",void 0),b([i.Select(n.ConfigState.getDeep("localization.languages")),h("design:type",s.Observable)],e.prototype,"languages$",void 0),b([i.Select(S.getNavigationElements),h("design:type",s.Observable)],e.prototype,"navElements$",void 0),e}();var k,x=function(){function e(){}return e.type="empty",e.decorators=[{type:t.Component,args:[{selector:"abp-layout-empty",template:"\n Layout-empty\n \n "}]}],e}(),A=function(){function e(){this.isCollapsed=!1}return e.decorators=[{type:t.Component,args:[{selector:" abp-layout",template:'\n\n
    \n \n
    \n\n\n\n'}]}],e}(),D=o.Validators.maxLength,M=o.Validators.required,E=o.Validators.email,F=function(){function e(e,n,a){this.fb=e,this.modalService=n,this.store=a,this.visibleChange=new t.EventEmitter}return e.prototype.buildForm=function(){var e=this;this.store.dispatch(new n.ProfileGet).pipe(l.withLatestFrom(this.profile$),l.take(1)).subscribe(function(n){var t=y(n,2)[1];e.form=e.fb.group({userName:[t.userName,[M,D(256)]],email:[t.email,[M,E,D(256)]],name:[t.name||"",[D(64)]],surname:[t.surname||"",[D(64)]],phoneNumber:[t.phoneNumber||"",[D(16)]]})})},e.prototype.onSubmit=function(){var e=this;this.form.invalid||this.store.dispatch(new n.ProfileUpdate(this.form.value)).subscribe(function(){return e.modalRef.close()})},e.prototype.openModal=function(){var e=this;this.buildForm(),this.modalRef=this.modalService.open(this.modalContent),this.visibleChange.emit(!0),s.from(this.modalRef.result).pipe(l.take(1)).subscribe(function(n){e.setVisible(!1)},function(n){e.setVisible(!1)})},e.prototype.setVisible=function(e){this.visible=e,this.visibleChange.emit(e)},e.prototype.ngOnChanges=function(e){var n=e.visible;n&&(n.currentValue?this.openModal():!1===n.currentValue&&this.modalService.hasOpenModals()&&this.modalRef.close())},e.decorators=[{type:t.Component,args:[{selector:"abp-profile",template:'\n \n
    \n \n\n \n
    \n
    \n'}]}],e.ctorParameters=function(){return[{type:o.FormBuilder},{type:a.NgbModal},{type:i.Store}]},e.propDecorators={visible:[{type:t.Input}],visibleChange:[{type:t.Output}],modalContent:[{type:t.ViewChild,args:["modalContent",{static:!1}]}]},b([i.Select(n.ProfileState.getProfile),h("design:type",s.Observable)],e.prototype,"profile$",void 0),e}(),R=[L,N,x],I=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:v(R,[A,P,F]),imports:[n.CoreModule,m.ThemeSharedModule,a.NgbCollapseModule,a.NgbDropdownModule,g.ToastModule,r.NgxValidateCoreModule,i.NgxsModule.forFeature([S])],exports:v(R),entryComponents:v(R)}]}],e}();!function(e){e.State=function(){},e.NavigationElement=function(){}}(k||(k={})),e.LAYOUTS=R,e.LayoutAccountComponent=N,e.LayoutAddNavigationElement=O,e.LayoutApplicationComponent=L,e.LayoutEmptyComponent=x,e.LayoutState=S,e.ThemeBasicModule=I,e.ɵa=L,e.ɵb=S,e.ɵc=N,e.ɵd=x,e.ɵe=A,e.ɵf=P,e.ɵg=F,e.ɵh=S,e.ɵi=O,Object.defineProperty(e,"__esModule",{value:!0})}); +//# sourceMappingURL=abp-ng.theme.basic.umd.min.js.map \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js.map b/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js.map new file mode 100644 index 0000000000..2507b763de --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.theme.basic/lib/components/change-password/change-password.component.ts","ng://@abp/ng.theme.basic/lib/components/layout-account/layout-account.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/layout-application/layout-application.component.ts","ng://@abp/ng.theme.basic/lib/components/layout-empty/layout-empty.component.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/components/profile/profile.component.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","__spread","concat","minLength","forms","Validators","required","ChangePasswordComponent","fb","modalService","store","visibleChange","EventEmitter","ngOnInit","form","group","password","validatePassword","newPassword","repeatNewPassword","validators","comparePasswords","onSubmit","_this","invalid","dispatch","ProfileChangePassword","currentPassword","get","subscribe","modalRef","close","openModal","open","modalContent","emit","from","result","pipe","take","data","setVisible","reason","visible","ngOnChanges","_a","currentValue","hasOpenModals","Component","args","selector","template","FormBuilder","NgbModal","Store","Input","Output","ViewChild","static","LayoutAccountComponent","isCollapsed","type","LayoutAddNavigationElement","payload","LayoutState","getNavigationElements","navigationElements","layoutAction","_b","getState","patchState","_c","Array","isArray","snq","filter","name","findIndex","nav","tslib_1.__spread","map","element","order","sort","a","b","tslib_1.__decorate","Action","Selector","State","defaults","LayoutApplicationComponent","oauthService","isOpenChangePassword","isOpenProfile","rightPartElements","trackByFn","_","item","trackElementByFn","routes$","routes","getVisibleRoutes","reduce","acc","val","invisible","children","languages$","languages","find","lang","cultureName","selectedLangCulture","displayName","selectSnapshot","SessionState","getLanguage","ngAfterViewInit","indexOf","languageRef","currentUserRef","navElements$","elements","compare","takeUntilDestroy","setTimeout","ngOnDestroy","onChangeLang","SessionSetLanguage","ConfigGetAppConfiguration","logout","logOut","Navigate","state","redirectUrl","RouterState","url","OAuthService","read","TemplateRef","Select","ConfigState","getOne","Observable","getDeep","Layout","LayoutEmptyComponent","LayoutComponent","maxLength","email","ProfileComponent","buildForm","ProfileGet","withLatestFrom","profile$","profile","userName","surname","phoneNumber","ProfileUpdate","ProfileState","getProfile","LAYOUTS","ThemeBasicModule","NgModule","declarations","imports","CoreModule","ThemeSharedModule","NgbCollapseModule","NgbDropdownModule","ToastModule","NgxValidateCoreModule","NgxsModule","forFeature","exports","entryComponents"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { ProfileChangePassword } from '@abp/ng.core';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbActiveModal, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { comparePasswords, validatePassword } from '@ngx-validate/core';\nimport { Store } from '@ngxs/store';\nimport { from } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nconst { minLength, required } = Validators;\n\n@Component({\n selector: 'abp-change-password',\n templateUrl: './change-password.component.html',\n})\nexport class ChangePasswordComponent implements OnInit, OnChanges {\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n modalRef: NgbModalRef;\n\n constructor(private fb: FormBuilder, private modalService: NgbModal, private store: Store) {}\n\n ngOnInit(): void {\n this.form = this.fb.group(\n {\n password: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n newPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n repeatNewPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n },\n {\n validators: [comparePasswords(['newPassword', 'repeatNewPassword'])],\n },\n );\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.store\n .dispatch(\n new ProfileChangePassword({\n currentPassword: this.form.get('password').value,\n newPassword: this.form.get('newPassword').value,\n }),\n )\n .subscribe(() => this.modalRef.close());\n }\n\n openModal() {\n this.modalRef = this.modalService.open(this.modalContent);\n this.visibleChange.emit(true);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './layout-account.component.html',\n})\nexport class LayoutAccountComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n\n isCollapsed: boolean = false;\n}\n","import { Layout } from '../models/layout';\n\nexport class LayoutAddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { LayoutAddNavigationElement } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(LayoutAddNavigationElement)\n layoutAction({ getState, patchState }: StateContext, { payload = [] }: LayoutAddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n ConfigGetAppConfiguration,\n ConfigState,\n eLayoutType,\n SessionSetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport { Component, TrackByFunction, ViewChild, TemplateRef, AfterViewInit, OnDestroy } from '@angular/core';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { map, distinctUntilChanged, delay, filter } from 'rxjs/operators';\nimport snq from 'snq';\nimport { LayoutAddNavigationElement } from '../../actions';\nimport { LayoutState } from '../../states';\nimport { Layout } from '../../models/layout';\nimport compare from 'just-compare';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './layout-application.component.html',\n})\nexport class LayoutApplicationComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new LayoutAddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SessionSetLanguage(cultureName));\n this.store.dispatch(new ConfigGetAppConfiguration());\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new ConfigGetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class LayoutEmptyComponent {\n // required for dynamic component\n static type = eLayoutType.empty;\n}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n})\nexport class LayoutComponent {\n isCollapsed: boolean = false;\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { Store, Select } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { take, withLatestFrom } from 'rxjs/operators';\nimport { ProfileGet, ProfileState, Profile, ProfileUpdate } from '@abp/ng.core';\n\nconst { maxLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-profile',\n templateUrl: './profile.component.html',\n})\nexport class ProfileComponent implements OnChanges {\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n @Select(ProfileState.getProfile)\n profile$: Observable;\n\n form: FormGroup;\n\n modalRef: NgbModalRef;\n\n constructor(private fb: FormBuilder, private modalService: NgbModal, private store: Store) {}\n\n buildForm() {\n this.store\n .dispatch(new ProfileGet())\n .pipe(\n withLatestFrom(this.profile$),\n take(1),\n )\n .subscribe(([, profile]) => {\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\n onSubmit() {\n if (this.form.invalid) return;\n\n this.store.dispatch(new ProfileUpdate(this.form.value)).subscribe(() => this.modalRef.close());\n }\n\n openModal() {\n this.buildForm();\n\n this.modalRef = this.modalService.open(this.modalContent);\n this.visibleChange.emit(true);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ChangePasswordComponent } from './components/change-password/change-password.component';\nimport { LayoutAccountComponent } from './components/layout-account/layout-account.component';\nimport { LayoutApplicationComponent } from './components/layout-application/layout-application.component';\nimport { LayoutEmptyComponent } from './components/layout-empty/layout-empty.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { ToastModule } from 'primeng/toast';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { LayoutState } from './states/layout.state';\n\nexport const LAYOUTS = [LayoutApplicationComponent, LayoutAccountComponent, LayoutEmptyComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent, ChangePasswordComponent, ProfileComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS],\n})\nexport class ThemeBasicModule {}\n"]} \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/abp-ng.theme.basic.js b/npm/packs/ng/dist/theme-basic/esm2015/abp-ng.theme.basic.js new file mode 100644 index 0000000000..af3a0b3be5 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/abp-ng.theme.basic.js @@ -0,0 +1,18 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { LAYOUTS, ThemeBasicModule, LayoutAddNavigationElement, LayoutAccountComponent, LayoutApplicationComponent, LayoutEmptyComponent, LayoutState } from './public-api'; +export { LayoutAddNavigationElement as ɵi } from './lib/actions/layout.actions'; +export { ChangePasswordComponent as ɵf } from './lib/components/change-password/change-password.component'; +export { LayoutAccountComponent as ɵc } from './lib/components/layout-account/layout-account.component'; +export { LayoutApplicationComponent as ɵa } from './lib/components/layout-application/layout-application.component'; +export { LayoutEmptyComponent as ɵd } from './lib/components/layout-empty/layout-empty.component'; +export { LayoutComponent as ɵe } from './lib/components/layout/layout.component'; +export { ProfileComponent as ɵg } from './lib/components/profile/profile.component'; +export { LayoutState as ɵb } from './lib/states'; +export { LayoutState as ɵh } from './lib/states/layout.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLmJhc2ljLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImFicC1uZy50aGVtZS5iYXNpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsNkpBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDekcsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ3RHLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUNsSCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFbEYsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtMYXlvdXRBZGROYXZpZ2F0aW9uRWxlbWVudCBhcyDJtWl9IGZyb20gJy4vbGliL2FjdGlvbnMvbGF5b3V0LmFjdGlvbnMnO1xuZXhwb3J0IHtDaGFuZ2VQYXNzd29yZENvbXBvbmVudCBhcyDJtWZ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRBY2NvdW50Q29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQtYWNjb3VudC9sYXlvdXQtYWNjb3VudC5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRBcHBsaWNhdGlvbkNvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0LWFwcGxpY2F0aW9uL2xheW91dC1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRFbXB0eUNvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0LWVtcHR5L2xheW91dC1lbXB0eS5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCB7UHJvZmlsZUNvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudCc7XG5leHBvcnQge0xheW91dCBhcyDJtWp9IGZyb20gJy4vbGliL21vZGVscy9sYXlvdXQnO1xuZXhwb3J0IHtMYXlvdXRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQge0xheW91dFN0YXRlIGFzIMm1aH0gZnJvbSAnLi9saWIvc3RhdGVzL2xheW91dC5zdGF0ZSc7Il19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/actions/index.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/actions/index.js new file mode 100644 index 0000000000..c93bb6adc0 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/actions/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { LayoutAddNavigationElement } from './layout.actions'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDJDQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYXlvdXQuYWN0aW9ucyc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/actions/layout.actions.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/actions/layout.actions.js new file mode 100644 index 0000000000..3103f35741 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/actions/layout.actions.js @@ -0,0 +1,20 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export class LayoutAddNavigationElement { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +LayoutAddNavigationElement.type = '[Layout] Add Navigation Element'; +if (false) { + /** @type {?} */ + LayoutAddNavigationElement.type; + /** @type {?} */ + LayoutAddNavigationElement.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmFjdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvbGF5b3V0LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE1BQU0sT0FBTywwQkFBMEI7Ozs7SUFFckMsWUFBbUIsT0FBOEQ7UUFBOUQsWUFBTyxHQUFQLE9BQU8sQ0FBdUQ7SUFBRyxDQUFDOztBQURyRSwrQkFBSSxHQUFHLGlDQUFpQyxDQUFDOzs7SUFBekQsZ0NBQXlEOztJQUM3Qyw2Q0FBcUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXlvdXQgfSBmcm9tICcuLi9tb2RlbHMvbGF5b3V0JztcblxuZXhwb3J0IGNsYXNzIExheW91dEFkZE5hdmlnYXRpb25FbGVtZW50IHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0xheW91dF0gQWRkIE5hdmlnYXRpb24gRWxlbWVudCc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBMYXlvdXQuTmF2aWdhdGlvbkVsZW1lbnQgfCBMYXlvdXQuTmF2aWdhdGlvbkVsZW1lbnRbXSkge31cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/components/change-password/change-password.component.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/change-password/change-password.component.js new file mode 100644 index 0000000000..13931a2829 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/change-password/change-password.component.js @@ -0,0 +1,143 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { ProfileChangePassword } from '@abp/ng.core'; +import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild, } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { comparePasswords, validatePassword } from '@ngx-validate/core'; +import { Store } from '@ngxs/store'; +import { from } from 'rxjs'; +import { take } from 'rxjs/operators'; +const { minLength, required } = Validators; +export class ChangePasswordComponent { + /** + * @param {?} fb + * @param {?} modalService + * @param {?} store + */ + constructor(fb, modalService, store) { + this.fb = fb; + this.modalService = modalService; + this.store = store; + this.visibleChange = new EventEmitter(); + } + /** + * @return {?} + */ + ngOnInit() { + this.form = this.fb.group({ + password: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + newPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + repeatNewPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + }, { + validators: [comparePasswords(['newPassword', 'repeatNewPassword'])], + }); + } + /** + * @return {?} + */ + onSubmit() { + if (this.form.invalid) + return; + this.store + .dispatch(new ProfileChangePassword({ + currentPassword: this.form.get('password').value, + newPassword: this.form.get('newPassword').value, + })) + .subscribe((/** + * @return {?} + */ + () => this.modalRef.close())); + } + /** + * @return {?} + */ + openModal() { + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + from(this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + data => { + this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + reason => { + this.setVisible(false); + })); + } + /** + * @param {?} value + * @return {?} + */ + setVisible(value) { + this.visible = value; + this.visibleChange.emit(value); + } + /** + * @param {?} __0 + * @return {?} + */ + ngOnChanges({ visible }) { + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + } +} +ChangePasswordComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-change-password', + template: "\n
    \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n" + }] } +]; +/** @nocollapse */ +ChangePasswordComponent.ctorParameters = () => [ + { type: FormBuilder }, + { type: NgbModal }, + { type: Store } +]; +ChangePasswordComponent.propDecorators = { + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; +if (false) { + /** @type {?} */ + ChangePasswordComponent.prototype.visible; + /** @type {?} */ + ChangePasswordComponent.prototype.visibleChange; + /** @type {?} */ + ChangePasswordComponent.prototype.modalContent; + /** @type {?} */ + ChangePasswordComponent.prototype.form; + /** @type {?} */ + ChangePasswordComponent.prototype.modalRef; + /** + * @type {?} + * @private + */ + ChangePasswordComponent.prototype.fb; + /** + * @type {?} + * @private + */ + ChangePasswordComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + ChangePasswordComponent.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jaGFuZ2UtcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBa0IsUUFBUSxFQUFlLE1BQU0sNEJBQTRCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztNQUVoQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVO0FBTTFDLE1BQU0sT0FBTyx1QkFBdUI7Ozs7OztJQWNsQyxZQUFvQixFQUFlLEVBQVUsWUFBc0IsRUFBVSxLQUFZO1FBQXJFLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQU87UUFUekYsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBU2dELENBQUM7Ozs7SUFFN0YsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFL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TTsyQkFHTixTQUFTLFNBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7OztJQU41QywwQ0FDaUI7O0lBRWpCLGdEQUM0Qzs7SUFFNUMsK0NBQytCOztJQUUvQix1Q0FBZ0I7O0lBRWhCLDJDQUFzQjs7Ozs7SUFFVixxQ0FBdUI7Ozs7O0lBQUUsK0NBQThCOzs7OztJQUFFLHdDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2ZpbGVDaGFuZ2VQYXNzd29yZCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCwgTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBjb21wYXJlUGFzc3dvcmRzLCB2YWxpZGF0ZVBhc3N3b3JkIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgeyBtaW5MZW5ndGgsIHJlcXVpcmVkIH0gPSBWYWxpZGF0b3JzO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtY2hhbmdlLXBhc3N3b3JkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIENoYW5nZVBhc3N3b3JkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICB2aXNpYmxlOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKVxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIG1vZGFsUmVmOiBOZ2JNb2RhbFJlZjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKFxuICAgICAge1xuICAgICAgICBwYXNzd29yZDogWycnLCBbcmVxdWlyZWQsIG1pbkxlbmd0aCg2KSwgdmFsaWRhdGVQYXNzd29yZChbJ3NtYWxsJywgJ2NhcGl0YWwnLCAnbnVtYmVyJywgJ3NwZWNpYWwnXSldXSxcbiAgICAgICAgbmV3UGFzc3dvcmQ6IFsnJywgW3JlcXVpcmVkLCBtaW5MZW5ndGgoNiksIHZhbGlkYXRlUGFzc3dvcmQoWydzbWFsbCcsICdjYXBpdGFsJywgJ251bWJlcicsICdzcGVjaWFsJ10pXV0sXG4gICAgICAgIHJlcGVhdE5ld1Bhc3N3b3JkOiBbJycsIFtyZXF1aXJlZCwgbWluTGVuZ3RoKDYpLCB2YWxpZGF0ZVBhc3N3b3JkKFsnc21hbGwnLCAnY2FwaXRhbCcsICdudW1iZXInLCAnc3BlY2lhbCddKV1dLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsaWRhdG9yczogW2NvbXBhcmVQYXNzd29yZHMoWyduZXdQYXNzd29yZCcsICdyZXBlYXROZXdQYXNzd29yZCddKV0sXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBvblN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChcbiAgICAgICAgbmV3IFByb2ZpbGVDaGFuZ2VQYXNzd29yZCh7XG4gICAgICAgICAgY3VycmVudFBhc3N3b3JkOiB0aGlzLmZvcm0uZ2V0KCdwYXNzd29yZCcpLnZhbHVlLFxuICAgICAgICAgIG5ld1Bhc3N3b3JkOiB0aGlzLmZvcm0uZ2V0KCduZXdQYXNzd29yZCcpLnZhbHVlLFxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5tb2RhbFJlZi5jbG9zZSgpKTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICB0aGlzLm1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLm1vZGFsQ29udGVudCk7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodHJ1ZSk7XG5cbiAgICBmcm9tKHRoaXMubW9kYWxSZWYucmVzdWx0KVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlYXNvbiA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gIH1cblxuICBzZXRWaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy52aXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyB2aXNpYmxlIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXZpc2libGUpIHJldHVybjtcblxuICAgIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICB9IGVsc2UgaWYgKHZpc2libGUuY3VycmVudFZhbHVlID09PSBmYWxzZSAmJiB0aGlzLm1vZGFsU2VydmljZS5oYXNPcGVuTW9kYWxzKCkpIHtcbiAgICAgIHRoaXMubW9kYWxSZWYuY2xvc2UoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/components/index.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/index.js new file mode 100644 index 0000000000..25ffed3ffc --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/index.js @@ -0,0 +1,8 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { LayoutAccountComponent } from './layout-account/layout-account.component'; +export { LayoutApplicationComponent } from './layout-application/layout-application.component'; +export { LayoutEmptyComponent } from './layout-empty/layout-empty.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVDQUFjLDJDQUEyQyxDQUFDO0FBQzFELDJDQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLHFDQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYXlvdXQtYWNjb3VudC9sYXlvdXQtYWNjb3VudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9sYXlvdXQtYXBwbGljYXRpb24vbGF5b3V0LWFwcGxpY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xheW91dC1lbXB0eS9sYXlvdXQtZW1wdHkuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout-account/layout-account.component.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout-account/layout-account.component.js new file mode 100644 index 0000000000..c1a36c2da7 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout-account/layout-account.component.js @@ -0,0 +1,25 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +export class LayoutAccountComponent { + constructor() { + this.isCollapsed = false; + } +} +// required for dynamic component +LayoutAccountComponent.type = "account" /* account */; +LayoutAccountComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-account', + template: "\n \n\n \n \n \n \n \n\n" + }] } +]; +if (false) { + /** @type {?} */ + LayoutAccountComponent.type; + /** @type {?} */ + LayoutAccountComponent.prototype.isCollapsed; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWFjY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2xheW91dC1hY2NvdW50L2xheW91dC1hY2NvdW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8xQyxNQUFNLE9BQU8sc0JBQXNCO0lBSm5DO1FBUUUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7O0FBSFEsMkJBQUksMkJBQXVCOztZQU5uQyxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsMHhCQUE4QzthQUMvQzs7OztJQUdDLDRCQUFrQzs7SUFFbEMsNkNBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1sYXlvdXQtYWNjb3VudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQtYWNjb3VudC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIExheW91dEFjY291bnRDb21wb25lbnQge1xuICAvLyByZXF1aXJlZCBmb3IgZHluYW1pYyBjb21wb25lbnRcbiAgc3RhdGljIHR5cGUgPSBlTGF5b3V0VHlwZS5hY2NvdW50O1xuXG4gIGlzQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout-application/layout-application.component.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout-application/layout-application.component.js new file mode 100644 index 0000000000..79a677943e --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout-application/layout-application.component.js @@ -0,0 +1,243 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { ConfigGetAppConfiguration, ConfigState, SessionSetLanguage, SessionState, takeUntilDestroy, } from '@abp/ng.core'; +import { Component, ViewChild, TemplateRef } from '@angular/core'; +import { Navigate, RouterState } from '@ngxs/router-plugin'; +import { Select, Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Observable } from 'rxjs'; +import { map, filter } from 'rxjs/operators'; +import snq from 'snq'; +import { LayoutAddNavigationElement } from '../../actions'; +import { LayoutState } from '../../states'; +import compare from 'just-compare'; +export class LayoutApplicationComponent { + /** + * @param {?} store + * @param {?} oauthService + */ + constructor(store, oauthService) { + this.store = store; + this.oauthService = oauthService; + this.isOpenChangePassword = false; + this.isOpenProfile = false; + this.rightPartElements = []; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + (_, item) => item.name); + this.trackElementByFn = (/** + * @param {?} _ + * @param {?} element + * @return {?} + */ + (_, element) => element); + } + /** + * @return {?} + */ + get visibleRoutes$() { + return this.routes$.pipe(map((/** + * @param {?} routes + * @return {?} + */ + routes => getVisibleRoutes(routes)))); + } + /** + * @return {?} + */ + get defaultLanguage$() { + return this.languages$.pipe(map((/** + * @param {?} languages + * @return {?} + */ + languages => snq((/** + * @return {?} + */ + () => languages.find((/** + * @param {?} lang + * @return {?} + */ + lang => lang.cultureName === this.selectedLangCulture)).displayName))), '')); + } + /** + * @return {?} + */ + get dropdownLanguages$() { + return this.languages$.pipe(map((/** + * @param {?} languages + * @return {?} + */ + languages => snq((/** + * @return {?} + */ + () => languages.filter((/** + * @param {?} lang + * @return {?} + */ + lang => lang.cultureName !== this.selectedLangCulture))))), [])); + } + /** + * @return {?} + */ + get selectedLangCulture() { + return this.store.selectSnapshot(SessionState.getLanguage); + } + /** + * @return {?} + */ + ngAfterViewInit() { + /** @type {?} */ + const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map((/** + * @param {?} __0 + * @return {?} + */ + ({ name }) => name)); + if (navigations.indexOf('LanguageRef') < 0) { + this.store.dispatch(new LayoutAddNavigationElement([ + { element: this.languageRef, order: 4, name: 'LanguageRef' }, + { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' }, + ])); + } + this.navElements$ + .pipe(map((/** + * @param {?} elements + * @return {?} + */ + elements => elements.map((/** + * @param {?} __0 + * @return {?} + */ + ({ element }) => element)))), filter((/** + * @param {?} elements + * @return {?} + */ + elements => !compare(elements, this.rightPartElements))), takeUntilDestroy(this)) + .subscribe((/** + * @param {?} elements + * @return {?} + */ + elements => { + setTimeout((/** + * @return {?} + */ + () => (this.rightPartElements = elements)), 0); + })); + } + /** + * @return {?} + */ + ngOnDestroy() { } + /** + * @param {?} cultureName + * @return {?} + */ + onChangeLang(cultureName) { + this.store.dispatch(new SessionSetLanguage(cultureName)); + this.store.dispatch(new ConfigGetAppConfiguration()); + } + /** + * @return {?} + */ + logout() { + this.oauthService.logOut(); + this.store.dispatch(new Navigate(['/account/login'], null, { + state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url }, + })); + this.store.dispatch(new ConfigGetAppConfiguration()); + } +} +// required for dynamic component +LayoutApplicationComponent.type = "application" /* application */; +LayoutApplicationComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-application', + template: "\n \n\n
      \n \n
    \n
    \n\n\n\n\n\n\n
  • \n \n {{ defaultLanguage$ | async }}\n \n
    \n {{ lang?.displayName }}\n
    \n
  • \n
    \n\n\n
  • \n \n {{ (currentUser$ | async)?.userName }}\n \n \n
  • \n
    \n" + }] } +]; +/** @nocollapse */ +LayoutApplicationComponent.ctorParameters = () => [ + { type: Store }, + { type: OAuthService } +]; +LayoutApplicationComponent.propDecorators = { + currentUserRef: [{ type: ViewChild, args: ['currentUser', { static: false, read: TemplateRef },] }], + languageRef: [{ type: ViewChild, args: ['language', { static: false, read: TemplateRef },] }] +}; +tslib_1.__decorate([ + Select(ConfigState.getOne('routes')), + tslib_1.__metadata("design:type", Observable) +], LayoutApplicationComponent.prototype, "routes$", void 0); +tslib_1.__decorate([ + Select(ConfigState.getOne('currentUser')), + tslib_1.__metadata("design:type", Observable) +], LayoutApplicationComponent.prototype, "currentUser$", void 0); +tslib_1.__decorate([ + Select(ConfigState.getDeep('localization.languages')), + tslib_1.__metadata("design:type", Observable) +], LayoutApplicationComponent.prototype, "languages$", void 0); +tslib_1.__decorate([ + Select(LayoutState.getNavigationElements), + tslib_1.__metadata("design:type", Observable) +], LayoutApplicationComponent.prototype, "navElements$", void 0); +if (false) { + /** @type {?} */ + LayoutApplicationComponent.type; + /** @type {?} */ + LayoutApplicationComponent.prototype.routes$; + /** @type {?} */ + LayoutApplicationComponent.prototype.currentUser$; + /** @type {?} */ + LayoutApplicationComponent.prototype.languages$; + /** @type {?} */ + LayoutApplicationComponent.prototype.navElements$; + /** @type {?} */ + LayoutApplicationComponent.prototype.currentUserRef; + /** @type {?} */ + LayoutApplicationComponent.prototype.languageRef; + /** @type {?} */ + LayoutApplicationComponent.prototype.isOpenChangePassword; + /** @type {?} */ + LayoutApplicationComponent.prototype.isOpenProfile; + /** @type {?} */ + LayoutApplicationComponent.prototype.rightPartElements; + /** @type {?} */ + LayoutApplicationComponent.prototype.trackByFn; + /** @type {?} */ + LayoutApplicationComponent.prototype.trackElementByFn; + /** + * @type {?} + * @private + */ + LayoutApplicationComponent.prototype.store; + /** + * @type {?} + * @private + */ + LayoutApplicationComponent.prototype.oauthService; +} +/** + * @param {?} routes + * @return {?} + */ +function getVisibleRoutes(routes) { + return routes.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => { + if (val.invisible) + return acc; + if (val.children && val.children.length) { + val.children = getVisibleRoutes(val.children); + } + return [...acc, val]; + }), []); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sYXlvdXQtYXBwbGljYXRpb24vbGF5b3V0LWFwcGxpY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFHTCx5QkFBeUIsRUFDekIsV0FBVyxFQUVYLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBK0IsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQztBQU1uQyxNQUFNLE9BQU8sMEJBQTBCOzs7OztJQXVEckMsWUFBb0IsS0FBWSxFQUFVLFlBQTBCO1FBQWhELFVBQUssR0FBTCxLQUFLLENBQU87UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpDcEUseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBRXRDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBeUIvQixzQkFBaUIsR0FBdUIsRUFBRSxDQUFDO1FBRTNDLGNBQVM7Ozs7O1FBQW1DLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQztRQUVuRSxxQkFBZ0I7Ozs7O1FBQW1DLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFDO0lBRUosQ0FBQzs7OztJQTdCeEUsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRzs7OztRQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Ozs7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHOzs7O1FBQ0QsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsbUJBQW1CLEVBQUMsQ0FBQyxXQUFXLEVBQUMsR0FDekcsRUFBRSxDQUNILENBQ0YsQ0FBQztJQUNKLENBQUM7Ozs7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHOzs7O1FBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsbUJBQW1CLEVBQUMsRUFBQyxHQUFFLEVBQUUsQ0FBQyxDQUN6RyxDQUFDO0lBQ0osQ0FBQzs7OztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7Ozs7SUFVRCxlQUFlOztjQUNQLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQyxHQUFHOzs7O1FBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUM7UUFFeEcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsSUFBSSwwQkFBMEIsQ0FBQztnQkFDN0IsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7Z0JBQzVELEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7YUFDbkUsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxZQUFZO2FBQ2QsSUFBSSxDQUNILEdBQUc7Ozs7UUFBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHOzs7O1FBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUMsRUFBQyxFQUN2RCxNQUFNOzs7O1FBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUMsRUFDOUQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQ3ZCO2FBQ0EsU0FBUzs7OztRQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3BCLFVBQVU7OztZQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7OztJQUVELFdBQVcsS0FBSSxDQUFDOzs7OztJQUVoQixZQUFZLENBQUMsV0FBbUI7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUkseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsSUFBSSxRQUFRLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRTtZQUNyQyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtTQUN6RSxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUkseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OztBQTdGTSwrQkFBSSxtQ0FBMkI7O1lBTnZDLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxnNUhBQWtEO2FBQ25EOzs7O1lBYmdCLEtBQUs7WUFDYixZQUFZOzs7NkJBNkJsQixTQUFTLFNBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFOzBCQUc3RCxTQUFTLFNBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFOztBQWQzRDtJQURDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3NDQUM1QixVQUFVOzJEQUFrQjtBQUdyQztJQURDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO3NDQUM1QixVQUFVO2dFQUF1QztBQUcvRDtJQURDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7c0NBQzFDLFVBQVU7OERBQXNDO0FBRzVEO0lBREMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztzQ0FDNUIsVUFBVTtnRUFBNkI7OztJQVpyRCxnQ0FBc0M7O0lBRXRDLDZDQUNxQzs7SUFFckMsa0RBQytEOztJQUUvRCxnREFDNEQ7O0lBRTVELGtEQUNxRDs7SUFFckQsb0RBQ2lDOztJQUVqQyxpREFDOEI7O0lBRTlCLDBEQUFzQzs7SUFFdEMsbURBQStCOztJQXlCL0IsdURBQTJDOztJQUUzQywrQ0FBbUU7O0lBRW5FLHNEQUEyRTs7Ozs7SUFFL0QsMkNBQW9COzs7OztJQUFFLGtEQUFrQzs7Ozs7O0FBMkN0RSxTQUFTLGdCQUFnQixDQUFDLE1BQXVCO0lBQy9DLE9BQU8sTUFBTSxDQUFDLE1BQU07Ozs7O0lBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDaEMsSUFBSSxHQUFHLENBQUMsU0FBUztZQUFFLE9BQU8sR0FBRyxDQUFDO1FBRTlCLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN2QyxHQUFHLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvQztRQUVELE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDLEdBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQUJQLFxuICBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sXG4gIENvbmZpZ0dldEFwcENvbmZpZ3VyYXRpb24sXG4gIENvbmZpZ1N0YXRlLFxuICBlTGF5b3V0VHlwZSxcbiAgU2Vzc2lvblNldExhbmd1YWdlLFxuICBTZXNzaW9uU3RhdGUsXG4gIHRha2VVbnRpbERlc3Ryb3ksXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIFRyYWNrQnlGdW5jdGlvbiwgVmlld0NoaWxkLCBUZW1wbGF0ZVJlZiwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0ZSwgUm91dGVyU3RhdGUgfSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luJztcbmltcG9ydCB7IFNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGRlbGF5LCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQgeyBMYXlvdXRBZGROYXZpZ2F0aW9uRWxlbWVudCB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgTGF5b3V0U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZXMnO1xuaW1wb3J0IHsgTGF5b3V0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xheW91dCc7XG5pbXBvcnQgY29tcGFyZSBmcm9tICdqdXN0LWNvbXBhcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtbGF5b3V0LWFwcGxpY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC1hcHBsaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIExheW91dEFwcGxpY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgLy8gcmVxdWlyZWQgZm9yIGR5bmFtaWMgY29tcG9uZW50XG4gIHN0YXRpYyB0eXBlID0gZUxheW91dFR5cGUuYXBwbGljYXRpb247XG5cbiAgQFNlbGVjdChDb25maWdTdGF0ZS5nZXRPbmUoJ3JvdXRlcycpKVxuICByb3V0ZXMkOiBPYnNlcnZhYmxlPEFCUC5GdWxsUm91dGVbXT47XG5cbiAgQFNlbGVjdChDb25maWdTdGF0ZS5nZXRPbmUoJ2N1cnJlbnRVc2VyJykpXG4gIGN1cnJlbnRVc2VyJDogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24uQ3VycmVudFVzZXI+O1xuXG4gIEBTZWxlY3QoQ29uZmlnU3RhdGUuZ2V0RGVlcCgnbG9jYWxpemF0aW9uLmxhbmd1YWdlcycpKVxuICBsYW5ndWFnZXMkOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbi5MYW5ndWFnZVtdPjtcblxuICBAU2VsZWN0KExheW91dFN0YXRlLmdldE5hdmlnYXRpb25FbGVtZW50cylcbiAgbmF2RWxlbWVudHMkOiBPYnNlcnZhYmxlPExheW91dC5OYXZpZ2F0aW9uRWxlbWVudFtdPjtcblxuICBAVmlld0NoaWxkKCdjdXJyZW50VXNlcicsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgY3VycmVudFVzZXJSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgnbGFuZ3VhZ2UnLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGxhbmd1YWdlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGlzT3BlbkNoYW5nZVBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgaXNPcGVuUHJvZmlsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdldCB2aXNpYmxlUm91dGVzJCgpOiBPYnNlcnZhYmxlPEFCUC5GdWxsUm91dGVbXT4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlcyQucGlwZShtYXAocm91dGVzID0+IGdldFZpc2libGVSb3V0ZXMocm91dGVzKSkpO1xuICB9XG5cbiAgZ2V0IGRlZmF1bHRMYW5ndWFnZSQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXMkLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIGxhbmd1YWdlcyA9PiBzbnEoKCkgPT4gbGFuZ3VhZ2VzLmZpbmQobGFuZyA9PiBsYW5nLmN1bHR1cmVOYW1lID09PSB0aGlzLnNlbGVjdGVkTGFuZ0N1bHR1cmUpLmRpc3BsYXlOYW1lKSxcbiAgICAgICAgJycsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBnZXQgZHJvcGRvd25MYW5ndWFnZXMkKCk6IE9ic2VydmFibGU8QXBwbGljYXRpb25Db25maWd1cmF0aW9uLkxhbmd1YWdlW10+IHtcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXMkLnBpcGUoXG4gICAgICBtYXAobGFuZ3VhZ2VzID0+IHNucSgoKSA9PiBsYW5ndWFnZXMuZmlsdGVyKGxhbmcgPT4gbGFuZy5jdWx0dXJlTmFtZSAhPT0gdGhpcy5zZWxlY3RlZExhbmdDdWx0dXJlKSksIFtdKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkTGFuZ0N1bHR1cmUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UpO1xuICB9XG5cbiAgcmlnaHRQYXJ0RWxlbWVudHM6IFRlbXBsYXRlUmVmPGFueT5bXSA9IFtdO1xuXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPEFCUC5GdWxsUm91dGU+ID0gKF8sIGl0ZW0pID0+IGl0ZW0ubmFtZTtcblxuICB0cmFja0VsZW1lbnRCeUZuOiBUcmFja0J5RnVuY3Rpb248QUJQLkZ1bGxSb3V0ZT4gPSAoXywgZWxlbWVudCkgPT4gZWxlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBvYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgbmF2aWdhdGlvbnMgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KExheW91dFN0YXRlLmdldE5hdmlnYXRpb25FbGVtZW50cykubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSk7XG5cbiAgICBpZiAobmF2aWdhdGlvbnMuaW5kZXhPZignTGFuZ3VhZ2VSZWYnKSA8IDApIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIG5ldyBMYXlvdXRBZGROYXZpZ2F0aW9uRWxlbWVudChbXG4gICAgICAgICAgeyBlbGVtZW50OiB0aGlzLmxhbmd1YWdlUmVmLCBvcmRlcjogNCwgbmFtZTogJ0xhbmd1YWdlUmVmJyB9LFxuICAgICAgICAgIHsgZWxlbWVudDogdGhpcy5jdXJyZW50VXNlclJlZiwgb3JkZXI6IDUsIG5hbWU6ICdDdXJyZW50VXNlclJlZicgfSxcbiAgICAgICAgXSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMubmF2RWxlbWVudHMkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGVsZW1lbnRzID0+IGVsZW1lbnRzLm1hcCgoeyBlbGVtZW50IH0pID0+IGVsZW1lbnQpKSxcbiAgICAgICAgZmlsdGVyKGVsZW1lbnRzID0+ICFjb21wYXJlKGVsZW1lbnRzLCB0aGlzLnJpZ2h0UGFydEVsZW1lbnRzKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3kodGhpcyksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGVsZW1lbnRzID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiAodGhpcy5yaWdodFBhcnRFbGVtZW50cyA9IGVsZW1lbnRzKSwgMCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge31cblxuICBvbkNoYW5nZUxhbmcoY3VsdHVyZU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNlc3Npb25TZXRMYW5ndWFnZShjdWx0dXJlTmFtZSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IENvbmZpZ0dldEFwcENvbmZpZ3VyYXRpb24oKSk7XG4gIH1cblxuICBsb2dvdXQoKSB7XG4gICAgdGhpcy5vYXV0aFNlcnZpY2UubG9nT3V0KCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIG5ldyBOYXZpZ2F0ZShbJy9hY2NvdW50L2xvZ2luJ10sIG51bGwsIHtcbiAgICAgICAgc3RhdGU6IHsgcmVkaXJlY3RVcmw6IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoUm91dGVyU3RhdGUpLnN0YXRlLnVybCB9LFxuICAgICAgfSksXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBDb25maWdHZXRBcHBDb25maWd1cmF0aW9uKCkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFZpc2libGVSb3V0ZXMocm91dGVzOiBBQlAuRnVsbFJvdXRlW10pIHtcbiAgcmV0dXJuIHJvdXRlcy5yZWR1Y2UoKGFjYywgdmFsKSA9PiB7XG4gICAgaWYgKHZhbC5pbnZpc2libGUpIHJldHVybiBhY2M7XG5cbiAgICBpZiAodmFsLmNoaWxkcmVuICYmIHZhbC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIHZhbC5jaGlsZHJlbiA9IGdldFZpc2libGVSb3V0ZXModmFsLmNoaWxkcmVuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gWy4uLmFjYywgdmFsXTtcbiAgfSwgW10pO1xufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout-empty/layout-empty.component.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout-empty/layout-empty.component.js new file mode 100644 index 0000000000..ba30ed3da5 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout-empty/layout-empty.component.js @@ -0,0 +1,23 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +export class LayoutEmptyComponent { +} +// required for dynamic component +LayoutEmptyComponent.type = "empty" /* empty */; +LayoutEmptyComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-empty', + template: ` + Layout-empty + + ` + }] } +]; +if (false) { + /** @type {?} */ + LayoutEmptyComponent.type; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWVtcHR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sYXlvdXQtZW1wdHkvbGF5b3V0LWVtcHR5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVUxQyxNQUFNLE9BQU8sb0JBQW9COzs7QUFFeEIseUJBQUksdUJBQXFCOztZQVRqQyxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsUUFBUSxFQUFFOzs7R0FHVDthQUNGOzs7O0lBR0MsMEJBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1sYXlvdXQtZW1wdHknLFxuICB0ZW1wbGF0ZTogYFxuICAgIExheW91dC1lbXB0eVxuICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0RW1wdHlDb21wb25lbnQge1xuICAvLyByZXF1aXJlZCBmb3IgZHluYW1pYyBjb21wb25lbnRcbiAgc3RhdGljIHR5cGUgPSBlTGF5b3V0VHlwZS5lbXB0eTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout/layout.component.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout/layout.component.js new file mode 100644 index 0000000000..75e92c331f --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/layout/layout.component.js @@ -0,0 +1,21 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +export class LayoutComponent { + constructor() { + this.isCollapsed = false; + } +} +LayoutComponent.decorators = [ + { type: Component, args: [{ + selector: ' abp-layout', + template: "\n\n
    \n \n
    \n\n\n\n" + }] } +]; +if (false) { + /** @type {?} */ + LayoutComponent.prototype.isCollapsed; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0xQyxNQUFNLE9BQU8sZUFBZTtJQUo1QjtRQUtFLGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBQy9CLENBQUM7OztZQU5BLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsb3FCQUFzQzthQUN2Qzs7OztJQUVDLHNDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICcgYWJwLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb21wb25lbnQge1xuICBpc0NvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/components/profile/profile.component.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/profile/profile.component.js new file mode 100644 index 0000000000..b43835033d --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/components/profile/profile.component.js @@ -0,0 +1,154 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild, } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { Store, Select } from '@ngxs/store'; +import { from, Observable } from 'rxjs'; +import { take, withLatestFrom } from 'rxjs/operators'; +import { ProfileGet, ProfileState, ProfileUpdate } from '@abp/ng.core'; +const { maxLength, required, email } = Validators; +export class ProfileComponent { + /** + * @param {?} fb + * @param {?} modalService + * @param {?} store + */ + constructor(fb, modalService, store) { + this.fb = fb; + this.modalService = modalService; + this.store = store; + this.visibleChange = new EventEmitter(); + } + /** + * @return {?} + */ + buildForm() { + this.store + .dispatch(new ProfileGet()) + .pipe(withLatestFrom(this.profile$), take(1)) + .subscribe((/** + * @param {?} __0 + * @return {?} + */ + ([, profile]) => { + this.form = this.fb.group({ + userName: [profile.userName, [required, maxLength(256)]], + email: [profile.email, [required, email, maxLength(256)]], + name: [profile.name || '', [maxLength(64)]], + surname: [profile.surname || '', [maxLength(64)]], + phoneNumber: [profile.phoneNumber || '', [maxLength(16)]], + }); + })); + } + /** + * @return {?} + */ + onSubmit() { + if (this.form.invalid) + return; + this.store.dispatch(new ProfileUpdate(this.form.value)).subscribe((/** + * @return {?} + */ + () => this.modalRef.close())); + } + /** + * @return {?} + */ + openModal() { + this.buildForm(); + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + from(this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + data => { + this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + reason => { + this.setVisible(false); + })); + } + /** + * @param {?} value + * @return {?} + */ + setVisible(value) { + this.visible = value; + this.visibleChange.emit(value); + } + /** + * @param {?} __0 + * @return {?} + */ + ngOnChanges({ visible }) { + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + } +} +ProfileComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-profile', + template: "\n
    \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n" + }] } +]; +/** @nocollapse */ +ProfileComponent.ctorParameters = () => [ + { type: FormBuilder }, + { type: NgbModal }, + { type: Store } +]; +ProfileComponent.propDecorators = { + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; +tslib_1.__decorate([ + Select(ProfileState.getProfile), + tslib_1.__metadata("design:type", Observable) +], ProfileComponent.prototype, "profile$", void 0); +if (false) { + /** @type {?} */ + ProfileComponent.prototype.visible; + /** @type {?} */ + ProfileComponent.prototype.visibleChange; + /** @type {?} */ + ProfileComponent.prototype.modalContent; + /** @type {?} */ + ProfileComponent.prototype.profile$; + /** @type {?} */ + ProfileComponent.prototype.form; + /** @type {?} */ + ProfileComponent.prototype.modalRef; + /** + * @type {?} + * @private + */ + ProfileComponent.prototype.fb; + /** + * @type {?} + * @private + */ + ProfileComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + ProfileComponent.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQWUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFXLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztNQUUxRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsVUFBVTtBQU1qRCxNQUFNLE9BQU8sZ0JBQWdCOzs7Ozs7SUFpQjNCLFlBQW9CLEVBQWUsRUFBVSxZQUFzQixFQUFVLEtBQVk7UUFBckUsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQVp6RixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFZZ0QsQ0FBQzs7OztJQUU3RixTQUFTO1FBQ1AsSUFBSSxDQUFDLEtBQUs7YUFDUCxRQUFRLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQzthQUMxQixJQUFJLENBQ0gs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QUNSLEtBQUs7OztzQkFZWCxLQUFLOzRCQUdMLE1BQU07MkJBR04sU0FBUyxTQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7O0FBSTVDO0lBREMsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7c0NBQ3RCLFVBQVU7a0RBQW1COzs7SUFWdkMsbUNBQ2lCOztJQUVqQix5Q0FDNEM7O0lBRTVDLHdDQUMrQjs7SUFFL0Isb0NBQ3VDOztJQUV2QyxnQ0FBZ0I7O0lBRWhCLG9DQUFzQjs7Ozs7SUFFViw4QkFBdUI7Ozs7O0lBQUUsd0NBQThCOzs7OztJQUFFLGlDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiTW9kYWwsIE5nYk1vZGFsUmVmIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgU3RvcmUsIFNlbGVjdCB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvZmlsZUdldCwgUHJvZmlsZVN0YXRlLCBQcm9maWxlLCBQcm9maWxlVXBkYXRlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuY29uc3QgeyBtYXhMZW5ndGgsIHJlcXVpcmVkLCBlbWFpbCB9ID0gVmFsaWRhdG9ycztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXByb2ZpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZmlsZS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb2ZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICB2aXNpYmxlOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKVxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFNlbGVjdChQcm9maWxlU3RhdGUuZ2V0UHJvZmlsZSlcbiAgcHJvZmlsZSQ6IE9ic2VydmFibGU8UHJvZmlsZS5SZXNwb25zZT47XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIG1vZGFsUmVmOiBOZ2JNb2RhbFJlZjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge31cblxuICBidWlsZEZvcm0oKSB7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBQcm9maWxlR2V0KCkpXG4gICAgICAucGlwZShcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5wcm9maWxlJCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbLCBwcm9maWxlXSkgPT4ge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICB1c2VyTmFtZTogW3Byb2ZpbGUudXNlck5hbWUsIFtyZXF1aXJlZCwgbWF4TGVuZ3RoKDI1NildXSxcbiAgICAgICAgICBlbWFpbDogW3Byb2ZpbGUuZW1haWwsIFtyZXF1aXJlZCwgZW1haWwsIG1heExlbmd0aCgyNTYpXV0sXG4gICAgICAgICAgbmFtZTogW3Byb2ZpbGUubmFtZSB8fCAnJywgW21heExlbmd0aCg2NCldXSxcbiAgICAgICAgICBzdXJuYW1lOiBbcHJvZmlsZS5zdXJuYW1lIHx8ICcnLCBbbWF4TGVuZ3RoKDY0KV1dLFxuICAgICAgICAgIHBob25lTnVtYmVyOiBbcHJvZmlsZS5waG9uZU51bWJlciB8fCAnJywgW21heExlbmd0aCgxNildXSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uU3VibWl0KCkge1xuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgUHJvZmlsZVVwZGF0ZSh0aGlzLmZvcm0udmFsdWUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5tb2RhbFJlZi5jbG9zZSgpKTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xuXG4gICAgdGhpcy5tb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5tb2RhbENvbnRlbnQpO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRydWUpO1xuXG4gICAgZnJvbSh0aGlzLm1vZGFsUmVmLnJlc3VsdClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLnNldFZpc2libGUoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgICByZWFzb24gPT4ge1xuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICApO1xuICB9XG5cbiAgc2V0VmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgdmlzaWJsZSB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF2aXNpYmxlKSByZXR1cm47XG5cbiAgICBpZiAodmlzaWJsZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgfSBlbHNlIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSA9PT0gZmFsc2UgJiYgdGhpcy5tb2RhbFNlcnZpY2UuaGFzT3Blbk1vZGFscygpKSB7XG4gICAgICB0aGlzLm1vZGFsUmVmLmNsb3NlKCk7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/models/index.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/models/index.js new file mode 100644 index 0000000000..370665b7b0 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/models/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './layout'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsZUFBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xheW91dCc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/models/layout.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/models/layout.js new file mode 100644 index 0000000000..d93212a06d --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/models/layout.js @@ -0,0 +1,30 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Layout; +(function (Layout) { + /** + * @record + */ + function State() { } + Layout.State = State; + if (false) { + /** @type {?} */ + State.prototype.navigationElements; + } + /** + * @record + */ + function NavigationElement() { } + Layout.NavigationElement = NavigationElement; + if (false) { + /** @type {?} */ + NavigationElement.prototype.name; + /** @type {?} */ + NavigationElement.prototype.element; + /** @type {?|undefined} */ + NavigationElement.prototype.order; + } +})(Layout || (Layout = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvbGF5b3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLEtBQVcsTUFBTSxDQVV0QjtBQVZELFdBQWlCLE1BQU07Ozs7SUFDckIsb0JBRUM7Ozs7UUFEQyxtQ0FBd0M7Ozs7O0lBRzFDLGdDQUlDOzs7O1FBSEMsaUNBQWE7O1FBQ2Isb0NBQTBCOztRQUMxQixrQ0FBZTs7QUFFbkIsQ0FBQyxFQVZnQixNQUFNLEtBQU4sTUFBTSxRQVV0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgTGF5b3V0IHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gICAgbmF2aWdhdGlvbkVsZW1lbnRzOiBOYXZpZ2F0aW9uRWxlbWVudFtdO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uRWxlbWVudCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGVsZW1lbnQ6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgb3JkZXI/OiBudW1iZXI7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/states/index.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/states/index.js new file mode 100644 index 0000000000..0e85d60b8b --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/states/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { LayoutState } from "./layout.state"; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNEJBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9sYXlvdXQuc3RhdGVcIjtcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/states/layout.state.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/states/layout.state.js new file mode 100644 index 0000000000..d7623fe6b5 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/states/layout.state.js @@ -0,0 +1,79 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { State, Action, Selector } from '@ngxs/store'; +import { LayoutAddNavigationElement } from '../actions/layout.actions'; +import snq from 'snq'; +let LayoutState = class LayoutState { + /** + * @param {?} __0 + * @return {?} + */ + static getNavigationElements({ navigationElements }) { + return navigationElements; + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + layoutAction({ getState, patchState }, { payload = [] }) { + let { navigationElements } = getState(); + if (!Array.isArray(payload)) { + payload = [payload]; + } + if (navigationElements.length) { + payload = snq((/** + * @return {?} + */ + () => ((/** @type {?} */ (payload))).filter((/** + * @param {?} __0 + * @return {?} + */ + ({ name }) => navigationElements.findIndex((/** + * @param {?} nav + * @return {?} + */ + nav => nav.name === name)) < 0))), []); + } + if (!payload.length) + return; + navigationElements = [...navigationElements, ...payload] + .map((/** + * @param {?} element + * @return {?} + */ + element => (Object.assign({}, element, { order: element.order || 99 })))) + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + (a, b) => a.order - b.order)); + return patchState({ + navigationElements, + }); + } +}; +tslib_1.__decorate([ + Action(LayoutAddNavigationElement), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, LayoutAddNavigationElement]), + tslib_1.__metadata("design:returntype", void 0) +], LayoutState.prototype, "layoutAction", null); +tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Array) +], LayoutState, "getNavigationElements", null); +LayoutState = tslib_1.__decorate([ + State({ + name: 'LayoutState', + defaults: (/** @type {?} */ ({ navigationElements: [] })), + }) +], LayoutState); +export { LayoutState }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi9zdGF0ZXMvbGF5b3V0LnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWdCLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd2RSxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7SUFNVCxXQUFXLFNBQVgsV0FBVzs7Ozs7SUFFdEIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsa0JBQWtCLEVBQWdCO1FBQy9ELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQzs7Ozs7O0lBR0QsWUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBOEIsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQThCO1lBQ3pHLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxRQUFRLEVBQUU7UUFFdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDckI7UUFFRCxJQUFJLGtCQUFrQixDQUFDLE1BQU0sRUFBRTtZQUM3QixPQUFPLEdBQUcsR0FBRzs7O1lBQ1gsR0FBRyxFQUFFLENBQ0gsQ0FBQyxtQkFBQSxPQUFPLEVBQThCLENBQUMsQ0FBQyxNQUFNOzs7O1lBQzVDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUzs7OztZQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUMsR0FBRyxDQUFDLEVBQ3pFLEdBQ0gsRUFBRSxDQUNILENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFNUIsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEdBQUcsT0FBTyxDQUFDO2FBQ3JELEdBQUc7Ozs7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFNLE9BQU8sSUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLElBQUcsRUFBQzthQUM1RCxJQUFJOzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUM7UUFFckMsT0FBTyxVQUFVLENBQUM7WUFDaEIsa0JBQWtCO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFBO0FBM0JDO0lBREMsTUFBTSxDQUFDLDBCQUEwQixDQUFDOztxREFDa0QsMEJBQTBCOzsrQ0EwQjlHO0FBL0JEO0lBREMsUUFBUSxFQUFFOzs7OzhDQUdWO0FBSlUsV0FBVztJQUp2QixLQUFLLENBQWU7UUFDbkIsSUFBSSxFQUFFLGFBQWE7UUFDbkIsUUFBUSxFQUFFLG1CQUFBLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLEVBQWdCO0tBQ3JELENBQUM7R0FDVyxXQUFXLENBa0N2QjtTQWxDWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGUsIEFjdGlvbiwgU3RhdGVDb250ZXh0LCBTZWxlY3RvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IExheW91dEFkZE5hdmlnYXRpb25FbGVtZW50IH0gZnJvbSAnLi4vYWN0aW9ucy9sYXlvdXQuYWN0aW9ucyc7XG5pbXBvcnQgeyBMYXlvdXQgfSBmcm9tICcuLi9tb2RlbHMvbGF5b3V0JztcbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5cbkBTdGF0ZTxMYXlvdXQuU3RhdGU+KHtcbiAgbmFtZTogJ0xheW91dFN0YXRlJyxcbiAgZGVmYXVsdHM6IHsgbmF2aWdhdGlvbkVsZW1lbnRzOiBbXSB9IGFzIExheW91dC5TdGF0ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0U3RhdGUge1xuICBAU2VsZWN0b3IoKVxuICBzdGF0aWMgZ2V0TmF2aWdhdGlvbkVsZW1lbnRzKHsgbmF2aWdhdGlvbkVsZW1lbnRzIH06IExheW91dC5TdGF0ZSk6IExheW91dC5OYXZpZ2F0aW9uRWxlbWVudFtdIHtcbiAgICByZXR1cm4gbmF2aWdhdGlvbkVsZW1lbnRzO1xuICB9XG5cbiAgQEFjdGlvbihMYXlvdXRBZGROYXZpZ2F0aW9uRWxlbWVudClcbiAgbGF5b3V0QWN0aW9uKHsgZ2V0U3RhdGUsIHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PExheW91dC5TdGF0ZT4sIHsgcGF5bG9hZCA9IFtdIH06IExheW91dEFkZE5hdmlnYXRpb25FbGVtZW50KSB7XG4gICAgbGV0IHsgbmF2aWdhdGlvbkVsZW1lbnRzIH0gPSBnZXRTdGF0ZSgpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBheWxvYWQpKSB7XG4gICAgICBwYXlsb2FkID0gW3BheWxvYWRdO1xuICAgIH1cblxuICAgIGlmIChuYXZpZ2F0aW9uRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICBwYXlsb2FkID0gc25xKFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIChwYXlsb2FkIGFzIExheW91dC5OYXZpZ2F0aW9uRWxlbWVudFtdKS5maWx0ZXIoXG4gICAgICAgICAgICAoeyBuYW1lIH0pID0+IG5hdmlnYXRpb25FbGVtZW50cy5maW5kSW5kZXgobmF2ID0+IG5hdi5uYW1lID09PSBuYW1lKSA8IDAsXG4gICAgICAgICAgKSxcbiAgICAgICAgW10sXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghcGF5bG9hZC5sZW5ndGgpIHJldHVybjtcblxuICAgIG5hdmlnYXRpb25FbGVtZW50cyA9IFsuLi5uYXZpZ2F0aW9uRWxlbWVudHMsIC4uLnBheWxvYWRdXG4gICAgICAubWFwKGVsZW1lbnQgPT4gKHsgLi4uZWxlbWVudCwgb3JkZXI6IGVsZW1lbnQub3JkZXIgfHwgOTkgfSkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuXG4gICAgcmV0dXJuIHBhdGNoU3RhdGUoe1xuICAgICAgbmF2aWdhdGlvbkVsZW1lbnRzLFxuICAgIH0pO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/lib/theme-basic.module.js b/npm/packs/ng/dist/theme-basic/esm2015/lib/theme-basic.module.js new file mode 100644 index 0000000000..23e1a964d0 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/lib/theme-basic.module.js @@ -0,0 +1,39 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CoreModule } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { ChangePasswordComponent } from './components/change-password/change-password.component'; +import { LayoutAccountComponent } from './components/layout-account/layout-account.component'; +import { LayoutApplicationComponent } from './components/layout-application/layout-application.component'; +import { LayoutEmptyComponent } from './components/layout-empty/layout-empty.component'; +import { LayoutComponent } from './components/layout/layout.component'; +import { ProfileComponent } from './components/profile/profile.component'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { ToastModule } from 'primeng/toast'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; +import { NgxsModule } from '@ngxs/store'; +import { LayoutState } from './states/layout.state'; +/** @type {?} */ +export const LAYOUTS = [LayoutApplicationComponent, LayoutAccountComponent, LayoutEmptyComponent]; +export class ThemeBasicModule { +} +ThemeBasicModule.decorators = [ + { type: NgModule, args: [{ + declarations: [...LAYOUTS, LayoutComponent, ChangePasswordComponent, ProfileComponent], + imports: [ + CoreModule, + ThemeSharedModule, + NgbCollapseModule, + NgbDropdownModule, + ToastModule, + NgxValidateCoreModule, + NgxsModule.forFeature([LayoutState]), + ], + exports: [...LAYOUTS], + entryComponents: [...LAYOUTS], + },] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtYmFzaWMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi90aGVtZS1iYXNpYy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFcEQsTUFBTSxPQUFPLE9BQU8sR0FBRyxDQUFDLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixDQUFDO0FBZ0JqRyxNQUFNLE9BQU8sZ0JBQWdCOzs7WUFkNUIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsQ0FBQztnQkFDdEYsT0FBTyxFQUFFO29CQUNQLFVBQVU7b0JBQ1YsaUJBQWlCO29CQUNqQixpQkFBaUI7b0JBQ2pCLGlCQUFpQjtvQkFDakIsV0FBVztvQkFDWCxxQkFBcUI7b0JBQ3JCLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDckM7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7Z0JBQ3JCLGVBQWUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdiQ29sbGFwc2VNb2R1bGUsIE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0QWNjb3VudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sYXlvdXQtYWNjb3VudC9sYXlvdXQtYWNjb3VudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0QXBwbGljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0LWFwcGxpY2F0aW9uL2xheW91dC1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0RW1wdHlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0LWVtcHR5L2xheW91dC1lbXB0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2ZpbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IExheW91dFN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvbGF5b3V0LnN0YXRlJztcblxuZXhwb3J0IGNvbnN0IExBWU9VVFMgPSBbTGF5b3V0QXBwbGljYXRpb25Db21wb25lbnQsIExheW91dEFjY291bnRDb21wb25lbnQsIExheW91dEVtcHR5Q29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbLi4uTEFZT1VUUywgTGF5b3V0Q29tcG9uZW50LCBDaGFuZ2VQYXNzd29yZENvbXBvbmVudCwgUHJvZmlsZUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb3JlTW9kdWxlLFxuICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxuICAgIE5nYkNvbGxhcHNlTW9kdWxlLFxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxuICAgIFRvYXN0TW9kdWxlLFxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcbiAgICBOZ3hzTW9kdWxlLmZvckZlYXR1cmUoW0xheW91dFN0YXRlXSksXG4gIF0sXG4gIGV4cG9ydHM6IFsuLi5MQVlPVVRTXSxcbiAgZW50cnlDb21wb25lbnRzOiBbLi4uTEFZT1VUU10sXG59KVxuZXhwb3J0IGNsYXNzIFRoZW1lQmFzaWNNb2R1bGUge31cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm2015/public-api.js b/npm/packs/ng/dist/theme-basic/esm2015/public-api.js new file mode 100644 index 0000000000..fbfa83cba8 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm2015/public-api.js @@ -0,0 +1,13 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/* + * Public API Surface of theme-basic + */ +export { LAYOUTS, ThemeBasicModule } from './lib/theme-basic.module'; +export { LayoutAddNavigationElement } from './lib/actions'; +export { LayoutAccountComponent, LayoutApplicationComponent, LayoutEmptyComponent } from './lib/components'; +export {} from './lib/models'; +export { LayoutState } from './lib/states'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwwQ0FBYywwQkFBMEIsQ0FBQztBQUN6QywyQ0FBYyxlQUFlLENBQUM7QUFDOUIseUZBQWMsa0JBQWtCLENBQUM7QUFDakMsZUFBYyxjQUFjLENBQUM7QUFDN0IsNEJBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0aGVtZS1iYXNpY1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RoZW1lLWJhc2ljLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/abp-ng.theme.basic.js b/npm/packs/ng/dist/theme-basic/esm5/abp-ng.theme.basic.js new file mode 100644 index 0000000000..af3a0b3be5 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/abp-ng.theme.basic.js @@ -0,0 +1,18 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { LAYOUTS, ThemeBasicModule, LayoutAddNavigationElement, LayoutAccountComponent, LayoutApplicationComponent, LayoutEmptyComponent, LayoutState } from './public-api'; +export { LayoutAddNavigationElement as ɵi } from './lib/actions/layout.actions'; +export { ChangePasswordComponent as ɵf } from './lib/components/change-password/change-password.component'; +export { LayoutAccountComponent as ɵc } from './lib/components/layout-account/layout-account.component'; +export { LayoutApplicationComponent as ɵa } from './lib/components/layout-application/layout-application.component'; +export { LayoutEmptyComponent as ɵd } from './lib/components/layout-empty/layout-empty.component'; +export { LayoutComponent as ɵe } from './lib/components/layout/layout.component'; +export { ProfileComponent as ɵg } from './lib/components/profile/profile.component'; +export { LayoutState as ɵb } from './lib/states'; +export { LayoutState as ɵh } from './lib/states/layout.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLmJhc2ljLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImFicC1uZy50aGVtZS5iYXNpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsNkpBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDekcsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ3RHLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUNsSCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFbEYsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtMYXlvdXRBZGROYXZpZ2F0aW9uRWxlbWVudCBhcyDJtWl9IGZyb20gJy4vbGliL2FjdGlvbnMvbGF5b3V0LmFjdGlvbnMnO1xuZXhwb3J0IHtDaGFuZ2VQYXNzd29yZENvbXBvbmVudCBhcyDJtWZ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRBY2NvdW50Q29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQtYWNjb3VudC9sYXlvdXQtYWNjb3VudC5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRBcHBsaWNhdGlvbkNvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0LWFwcGxpY2F0aW9uL2xheW91dC1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRFbXB0eUNvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0LWVtcHR5L2xheW91dC1lbXB0eS5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCB7UHJvZmlsZUNvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudCc7XG5leHBvcnQge0xheW91dCBhcyDJtWp9IGZyb20gJy4vbGliL21vZGVscy9sYXlvdXQnO1xuZXhwb3J0IHtMYXlvdXRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQge0xheW91dFN0YXRlIGFzIMm1aH0gZnJvbSAnLi9saWIvc3RhdGVzL2xheW91dC5zdGF0ZSc7Il19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/actions/index.js b/npm/packs/ng/dist/theme-basic/esm5/lib/actions/index.js new file mode 100644 index 0000000000..c93bb6adc0 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/actions/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { LayoutAddNavigationElement } from './layout.actions'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDJDQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYXlvdXQuYWN0aW9ucyc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/actions/layout.actions.js b/npm/packs/ng/dist/theme-basic/esm5/lib/actions/layout.actions.js new file mode 100644 index 0000000000..f672ba0888 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/actions/layout.actions.js @@ -0,0 +1,19 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var LayoutAddNavigationElement = /** @class */ (function () { + function LayoutAddNavigationElement(payload) { + this.payload = payload; + } + LayoutAddNavigationElement.type = '[Layout] Add Navigation Element'; + return LayoutAddNavigationElement; +}()); +export { LayoutAddNavigationElement }; +if (false) { + /** @type {?} */ + LayoutAddNavigationElement.type; + /** @type {?} */ + LayoutAddNavigationElement.prototype.payload; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmFjdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2FjdGlvbnMvbGF5b3V0LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBO0lBRUUsb0NBQW1CLE9BQThEO1FBQTlELFlBQU8sR0FBUCxPQUFPLENBQXVEO0lBQUcsQ0FBQztJQURyRSwrQkFBSSxHQUFHLGlDQUFpQyxDQUFDO0lBRTNELGlDQUFDO0NBQUEsQUFIRCxJQUdDO1NBSFksMEJBQTBCOzs7SUFDckMsZ0NBQXlEOztJQUM3Qyw2Q0FBcUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXlvdXQgfSBmcm9tICcuLi9tb2RlbHMvbGF5b3V0JztcblxuZXhwb3J0IGNsYXNzIExheW91dEFkZE5hdmlnYXRpb25FbGVtZW50IHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0xheW91dF0gQWRkIE5hdmlnYXRpb24gRWxlbWVudCc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBMYXlvdXQuTmF2aWdhdGlvbkVsZW1lbnQgfCBMYXlvdXQuTmF2aWdhdGlvbkVsZW1lbnRbXSkge31cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/components/change-password/change-password.component.js b/npm/packs/ng/dist/theme-basic/esm5/lib/components/change-password/change-password.component.js new file mode 100644 index 0000000000..5334c4b311 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/components/change-password/change-password.component.js @@ -0,0 +1,160 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { ProfileChangePassword } from '@abp/ng.core'; +import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild, } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { comparePasswords, validatePassword } from '@ngx-validate/core'; +import { Store } from '@ngxs/store'; +import { from } from 'rxjs'; +import { take } from 'rxjs/operators'; +var minLength = Validators.minLength, required = Validators.required; +var ChangePasswordComponent = /** @class */ (function () { + function ChangePasswordComponent(fb, modalService, store) { + this.fb = fb; + this.modalService = modalService; + this.store = store; + this.visibleChange = new EventEmitter(); + } + /** + * @return {?} + */ + ChangePasswordComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + this.form = this.fb.group({ + password: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + newPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + repeatNewPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + }, { + validators: [comparePasswords(['newPassword', 'repeatNewPassword'])], + }); + }; + /** + * @return {?} + */ + ChangePasswordComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.form.invalid) + return; + this.store + .dispatch(new ProfileChangePassword({ + currentPassword: this.form.get('password').value, + newPassword: this.form.get('newPassword').value, + })) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalRef.close(); })); + }; + /** + * @return {?} + */ + ChangePasswordComponent.prototype.openModal = /** + * @return {?} + */ + function () { + var _this = this; + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + from(this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + function (data) { + _this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + function (reason) { + _this.setVisible(false); + })); + }; + /** + * @param {?} value + * @return {?} + */ + ChangePasswordComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + this.visible = value; + this.visibleChange.emit(value); + }; + /** + * @param {?} __0 + * @return {?} + */ + ChangePasswordComponent.prototype.ngOnChanges = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var visible = _a.visible; + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + }; + ChangePasswordComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-change-password', + template: "\n
    \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n" + }] } + ]; + /** @nocollapse */ + ChangePasswordComponent.ctorParameters = function () { return [ + { type: FormBuilder }, + { type: NgbModal }, + { type: Store } + ]; }; + ChangePasswordComponent.propDecorators = { + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + return ChangePasswordComponent; +}()); +export { ChangePasswordComponent }; +if (false) { + /** @type {?} */ + ChangePasswordComponent.prototype.visible; + /** @type {?} */ + ChangePasswordComponent.prototype.visibleChange; + /** @type {?} */ + ChangePasswordComponent.prototype.modalContent; + /** @type {?} */ + ChangePasswordComponent.prototype.form; + /** @type {?} */ + ChangePasswordComponent.prototype.modalRef; + /** + * @type {?} + * @private + */ + ChangePasswordComponent.prototype.fb; + /** + * @type {?} + * @private + */ + ChangePasswordComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + ChangePasswordComponent.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jaGFuZ2UtcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBa0IsUUFBUSxFQUFlLE1BQU0sNEJBQTRCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QixJQUFBLGdDQUFTLEVBQUUsOEJBQVE7QUFFM0I7SUFrQkUsaUNBQW9CLEVBQWUsRUFBVSxZQUFzQixFQUFVLEtBQVk7UUFBckUsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQVR6RixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFTZ0QsQ0FBQzs7OztJQUU3RiwwQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUN2QjtZQUNFLFFBQVEsRUFBRSxDQUFD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QkFFeEIsS0FBSzs7OzBCQVdYLEtBQUs7Z0NBR0wsTUFBTTsrQkFHTixTQUFTLFNBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7SUFpRTlDLDhCQUFDO0NBQUEsQUE1RUQsSUE0RUM7U0F4RVksdUJBQXVCOzs7SUFDbEMsMENBQ2lCOztJQUVqQixnREFDNEM7O0lBRTVDLCtDQUMrQjs7SUFFL0IsdUNBQWdCOztJQUVoQiwyQ0FBc0I7Ozs7O0lBRVYscUNBQXVCOzs7OztJQUFFLCtDQUE4Qjs7Ozs7SUFBRSx3Q0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9maWxlQ2hhbmdlUGFzc3dvcmQgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwsIE5nYk1vZGFsUmVmIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgY29tcGFyZVBhc3N3b3JkcywgdmFsaWRhdGVQYXNzd29yZCB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IHsgbWluTGVuZ3RoLCByZXF1aXJlZCB9ID0gVmFsaWRhdG9ycztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLWNoYW5nZS1wYXNzd29yZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFuZ2VQYXNzd29yZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgdmlzaWJsZTogYm9vbGVhbjtcblxuICBAT3V0cHV0KClcbiAgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbW9kYWxDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBtb2RhbFJlZjogTmdiTW9kYWxSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cChcbiAgICAgIHtcbiAgICAgICAgcGFzc3dvcmQ6IFsnJywgW3JlcXVpcmVkLCBtaW5MZW5ndGgoNiksIHZhbGlkYXRlUGFzc3dvcmQoWydzbWFsbCcsICdjYXBpdGFsJywgJ251bWJlcicsICdzcGVjaWFsJ10pXV0sXG4gICAgICAgIG5ld1Bhc3N3b3JkOiBbJycsIFtyZXF1aXJlZCwgbWluTGVuZ3RoKDYpLCB2YWxpZGF0ZVBhc3N3b3JkKFsnc21hbGwnLCAnY2FwaXRhbCcsICdudW1iZXInLCAnc3BlY2lhbCddKV1dLFxuICAgICAgICByZXBlYXROZXdQYXNzd29yZDogWycnLCBbcmVxdWlyZWQsIG1pbkxlbmd0aCg2KSwgdmFsaWRhdGVQYXNzd29yZChbJ3NtYWxsJywgJ2NhcGl0YWwnLCAnbnVtYmVyJywgJ3NwZWNpYWwnXSldXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbGlkYXRvcnM6IFtjb21wYXJlUGFzc3dvcmRzKFsnbmV3UGFzc3dvcmQnLCAncmVwZWF0TmV3UGFzc3dvcmQnXSldLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2goXG4gICAgICAgIG5ldyBQcm9maWxlQ2hhbmdlUGFzc3dvcmQoe1xuICAgICAgICAgIGN1cnJlbnRQYXNzd29yZDogdGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKS52YWx1ZSxcbiAgICAgICAgICBuZXdQYXNzd29yZDogdGhpcy5mb3JtLmdldCgnbmV3UGFzc3dvcmQnKS52YWx1ZSxcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMubW9kYWxSZWYuY2xvc2UoKSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5tb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5tb2RhbENvbnRlbnQpO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRydWUpO1xuXG4gICAgZnJvbSh0aGlzLm1vZGFsUmVmLnJlc3VsdClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLnNldFZpc2libGUoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgICByZWFzb24gPT4ge1xuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICApO1xuICB9XG5cbiAgc2V0VmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgdmlzaWJsZSB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF2aXNpYmxlKSByZXR1cm47XG5cbiAgICBpZiAodmlzaWJsZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgfSBlbHNlIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSA9PT0gZmFsc2UgJiYgdGhpcy5tb2RhbFNlcnZpY2UuaGFzT3Blbk1vZGFscygpKSB7XG4gICAgICB0aGlzLm1vZGFsUmVmLmNsb3NlKCk7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/components/index.js b/npm/packs/ng/dist/theme-basic/esm5/lib/components/index.js new file mode 100644 index 0000000000..25ffed3ffc --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/components/index.js @@ -0,0 +1,8 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { LayoutAccountComponent } from './layout-account/layout-account.component'; +export { LayoutApplicationComponent } from './layout-application/layout-application.component'; +export { LayoutEmptyComponent } from './layout-empty/layout-empty.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVDQUFjLDJDQUEyQyxDQUFDO0FBQzFELDJDQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLHFDQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYXlvdXQtYWNjb3VudC9sYXlvdXQtYWNjb3VudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9sYXlvdXQtYXBwbGljYXRpb24vbGF5b3V0LWFwcGxpY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xheW91dC1lbXB0eS9sYXlvdXQtZW1wdHkuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout-account/layout-account.component.js b/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout-account/layout-account.component.js new file mode 100644 index 0000000000..57241df996 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout-account/layout-account.component.js @@ -0,0 +1,27 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +var LayoutAccountComponent = /** @class */ (function () { + function LayoutAccountComponent() { + this.isCollapsed = false; + } + // required for dynamic component + LayoutAccountComponent.type = "account" /* account */; + LayoutAccountComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-account', + template: "\n \n\n \n \n \n \n \n\n" + }] } + ]; + return LayoutAccountComponent; +}()); +export { LayoutAccountComponent }; +if (false) { + /** @type {?} */ + LayoutAccountComponent.type; + /** @type {?} */ + LayoutAccountComponent.prototype.isCollapsed; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWFjY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2xheW91dC1hY2NvdW50L2xheW91dC1hY2NvdW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQztJQUFBO1FBUUUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7SUFIUSwyQkFBSSwyQkFBdUI7O2dCQU5uQyxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsMHhCQUE4QztpQkFDL0M7O0lBTUQsNkJBQUM7Q0FBQSxBQVRELElBU0M7U0FMWSxzQkFBc0I7OztJQUVqQyw0QkFBa0M7O0lBRWxDLDZDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZUxheW91dFR5cGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtbGF5b3V0LWFjY291bnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LWFjY291bnQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRBY2NvdW50Q29tcG9uZW50IHtcbiAgLy8gcmVxdWlyZWQgZm9yIGR5bmFtaWMgY29tcG9uZW50XG4gIHN0YXRpYyB0eXBlID0gZUxheW91dFR5cGUuYWNjb3VudDtcblxuICBpc0NvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout-application/layout-application.component.js b/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout-application/layout-application.component.js new file mode 100644 index 0000000000..a4815022b4 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout-application/layout-application.component.js @@ -0,0 +1,279 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { ConfigGetAppConfiguration, ConfigState, SessionSetLanguage, SessionState, takeUntilDestroy, } from '@abp/ng.core'; +import { Component, ViewChild, TemplateRef } from '@angular/core'; +import { Navigate, RouterState } from '@ngxs/router-plugin'; +import { Select, Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Observable } from 'rxjs'; +import { map, filter } from 'rxjs/operators'; +import snq from 'snq'; +import { LayoutAddNavigationElement } from '../../actions'; +import { LayoutState } from '../../states'; +import compare from 'just-compare'; +var LayoutApplicationComponent = /** @class */ (function () { + function LayoutApplicationComponent(store, oauthService) { + this.store = store; + this.oauthService = oauthService; + this.isOpenChangePassword = false; + this.isOpenProfile = false; + this.rightPartElements = []; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + function (_, item) { return item.name; }); + this.trackElementByFn = (/** + * @param {?} _ + * @param {?} element + * @return {?} + */ + function (_, element) { return element; }); + } + Object.defineProperty(LayoutApplicationComponent.prototype, "visibleRoutes$", { + get: /** + * @return {?} + */ + function () { + return this.routes$.pipe(map((/** + * @param {?} routes + * @return {?} + */ + function (routes) { return getVisibleRoutes(routes); }))); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(LayoutApplicationComponent.prototype, "defaultLanguage$", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return this.languages$.pipe(map((/** + * @param {?} languages + * @return {?} + */ + function (languages) { return snq((/** + * @return {?} + */ + function () { return languages.find((/** + * @param {?} lang + * @return {?} + */ + function (lang) { return lang.cultureName === _this.selectedLangCulture; })).displayName; })); }), '')); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(LayoutApplicationComponent.prototype, "dropdownLanguages$", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return this.languages$.pipe(map((/** + * @param {?} languages + * @return {?} + */ + function (languages) { return snq((/** + * @return {?} + */ + function () { return languages.filter((/** + * @param {?} lang + * @return {?} + */ + function (lang) { return lang.cultureName !== _this.selectedLangCulture; })); })); }), [])); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(LayoutApplicationComponent.prototype, "selectedLangCulture", { + get: /** + * @return {?} + */ + function () { + return this.store.selectSnapshot(SessionState.getLanguage); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + LayoutApplicationComponent.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var name = _a.name; + return name; + })); + if (navigations.indexOf('LanguageRef') < 0) { + this.store.dispatch(new LayoutAddNavigationElement([ + { element: this.languageRef, order: 4, name: 'LanguageRef' }, + { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' }, + ])); + } + this.navElements$ + .pipe(map((/** + * @param {?} elements + * @return {?} + */ + function (elements) { return elements.map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var element = _a.element; + return element; + })); })), filter((/** + * @param {?} elements + * @return {?} + */ + function (elements) { return !compare(elements, _this.rightPartElements); })), takeUntilDestroy(this)) + .subscribe((/** + * @param {?} elements + * @return {?} + */ + function (elements) { + setTimeout((/** + * @return {?} + */ + function () { return (_this.rightPartElements = elements); }), 0); + })); + }; + /** + * @return {?} + */ + LayoutApplicationComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + /** + * @param {?} cultureName + * @return {?} + */ + LayoutApplicationComponent.prototype.onChangeLang = /** + * @param {?} cultureName + * @return {?} + */ + function (cultureName) { + this.store.dispatch(new SessionSetLanguage(cultureName)); + this.store.dispatch(new ConfigGetAppConfiguration()); + }; + /** + * @return {?} + */ + LayoutApplicationComponent.prototype.logout = /** + * @return {?} + */ + function () { + this.oauthService.logOut(); + this.store.dispatch(new Navigate(['/account/login'], null, { + state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url }, + })); + this.store.dispatch(new ConfigGetAppConfiguration()); + }; + // required for dynamic component + LayoutApplicationComponent.type = "application" /* application */; + LayoutApplicationComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-application', + template: "\n \n\n
      \n \n
    \n
    \n\n\n\n\n\n\n
  • \n \n {{ defaultLanguage$ | async }}\n \n
    \n {{ lang?.displayName }}\n
    \n
  • \n
    \n\n\n
  • \n \n {{ (currentUser$ | async)?.userName }}\n \n \n
  • \n
    \n" + }] } + ]; + /** @nocollapse */ + LayoutApplicationComponent.ctorParameters = function () { return [ + { type: Store }, + { type: OAuthService } + ]; }; + LayoutApplicationComponent.propDecorators = { + currentUserRef: [{ type: ViewChild, args: ['currentUser', { static: false, read: TemplateRef },] }], + languageRef: [{ type: ViewChild, args: ['language', { static: false, read: TemplateRef },] }] + }; + tslib_1.__decorate([ + Select(ConfigState.getOne('routes')), + tslib_1.__metadata("design:type", Observable) + ], LayoutApplicationComponent.prototype, "routes$", void 0); + tslib_1.__decorate([ + Select(ConfigState.getOne('currentUser')), + tslib_1.__metadata("design:type", Observable) + ], LayoutApplicationComponent.prototype, "currentUser$", void 0); + tslib_1.__decorate([ + Select(ConfigState.getDeep('localization.languages')), + tslib_1.__metadata("design:type", Observable) + ], LayoutApplicationComponent.prototype, "languages$", void 0); + tslib_1.__decorate([ + Select(LayoutState.getNavigationElements), + tslib_1.__metadata("design:type", Observable) + ], LayoutApplicationComponent.prototype, "navElements$", void 0); + return LayoutApplicationComponent; +}()); +export { LayoutApplicationComponent }; +if (false) { + /** @type {?} */ + LayoutApplicationComponent.type; + /** @type {?} */ + LayoutApplicationComponent.prototype.routes$; + /** @type {?} */ + LayoutApplicationComponent.prototype.currentUser$; + /** @type {?} */ + LayoutApplicationComponent.prototype.languages$; + /** @type {?} */ + LayoutApplicationComponent.prototype.navElements$; + /** @type {?} */ + LayoutApplicationComponent.prototype.currentUserRef; + /** @type {?} */ + LayoutApplicationComponent.prototype.languageRef; + /** @type {?} */ + LayoutApplicationComponent.prototype.isOpenChangePassword; + /** @type {?} */ + LayoutApplicationComponent.prototype.isOpenProfile; + /** @type {?} */ + LayoutApplicationComponent.prototype.rightPartElements; + /** @type {?} */ + LayoutApplicationComponent.prototype.trackByFn; + /** @type {?} */ + LayoutApplicationComponent.prototype.trackElementByFn; + /** + * @type {?} + * @private + */ + LayoutApplicationComponent.prototype.store; + /** + * @type {?} + * @private + */ + LayoutApplicationComponent.prototype.oauthService; +} +/** + * @param {?} routes + * @return {?} + */ +function getVisibleRoutes(routes) { + return routes.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + if (val.invisible) + return acc; + if (val.children && val.children.length) { + val.children = getVisibleRoutes(val.children); + } + return tslib_1.__spread(acc, [val]); + }), []); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sYXlvdXQtYXBwbGljYXRpb24vbGF5b3V0LWFwcGxpY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFHTCx5QkFBeUIsRUFDekIsV0FBVyxFQUVYLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBK0IsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUVuQztJQTJERSxvQ0FBb0IsS0FBWSxFQUFVLFlBQTBCO1FBQWhELFVBQUssR0FBTCxLQUFLLENBQU87UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpDcEUseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBRXRDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBeUIvQixzQkFBaUIsR0FBdUIsRUFBRSxDQUFDO1FBRTNDLGNBQVM7Ozs7O1FBQW1DLFVBQUMsQ0FBQyxFQUFFLElBQUksSUFBSyxPQUFBLElBQUksQ0FBQyxJQUFJLEVBQVQsQ0FBUyxFQUFDO1FBRW5FLHFCQUFnQjs7Ozs7UUFBbUMsVUFBQyxDQUFDLEVBQUUsT0FBTyxJQUFLLE9BQUEsT0FBTyxFQUFQLENBQU8sRUFBQztJQUVKLENBQUM7SUE3QnhFLHNCQUFJLHNEQUFjOzs7O1FBQWxCO1lBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHOzs7O1lBQUMsVUFBQSxNQUFNLElBQUksT0FBQSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBeEIsQ0FBd0IsRUFBQyxDQUFDLENBQUM7UUFDcEUsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSx3REFBZ0I7Ozs7UUFBcEI7WUFBQSxpQkFPQztZQU5DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLEdBQUc7Ozs7WUFDRCxVQUFBLFNBQVMsSUFBSSxPQUFBLEdBQUc7OztZQUFDLGNBQU0sT0FBQSxTQUFTLENBQUMsSUFBSTs7OztZQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFJLENBQUMsbUJBQW1CLEVBQTdDLENBQTZDLEVBQUMsQ0FBQyxXQUFXLEVBQWpGLENBQWlGLEVBQUMsRUFBNUYsQ0FBNEYsR0FDekcsRUFBRSxDQUNILENBQ0YsQ0FBQztRQUNKLENBQUM7OztPQUFBO0lBRUQsc0JBQUksMERBQWtCOzs7O1FBQXRCO1lBQUEsaUJBSUM7WUFIQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHOzs7O1lBQUMsVUFBQSxTQUFTLElBQUksT0FBQSxHQUFHOzs7WUFBQyxjQUFNLE9BQUEsU0FBUyxDQUFDLE1BQU07Ozs7WUFBQyxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksQ0FBQyxXQUFXLEtBQUssS0FBSSxDQUFDLG1CQUFtQixFQUE3QyxDQUE2QyxFQUFDLEVBQXZFLENBQXVFLEVBQUMsRUFBbEYsQ0FBa0YsR0FBRSxFQUFFLENBQUMsQ0FDekcsQ0FBQztRQUNKLENBQUM7OztPQUFBO0lBRUQsc0JBQUksMkRBQW1COzs7O1FBQXZCO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsQ0FBQzs7O09BQUE7Ozs7SUFVRCxvREFBZTs7O0lBQWY7UUFBQSxpQkFxQkM7O1lBcEJPLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQyxHQUFHOzs7O1FBQUMsVUFBQyxFQUFRO2dCQUFOLGNBQUk7WUFBTyxPQUFBLElBQUk7UUFBSixDQUFJLEVBQUM7UUFFeEcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsSUFBSSwwQkFBMEIsQ0FBQztnQkFDN0IsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7Z0JBQzVELEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7YUFDbkUsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxZQUFZO2FBQ2QsSUFBSSxDQUNILEdBQUc7Ozs7UUFBQyxVQUFBLFFBQVEsSUFBSSxPQUFBLFFBQVEsQ0FBQyxHQUFHOzs7O1FBQUMsVUFBQyxFQUFXO2dCQUFULG9CQUFPO1lBQU8sT0FBQSxPQUFPO1FBQVAsQ0FBTyxFQUFDLEVBQXRDLENBQXNDLEVBQUMsRUFDdkQsTUFBTTs7OztRQUFDLFVBQUEsUUFBUSxJQUFJLE9BQUEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUExQyxDQUEwQyxFQUFDLEVBQzlELGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUN2QjthQUNBLFNBQVM7Ozs7UUFBQyxVQUFBLFFBQVE7WUFDakIsVUFBVTs7O1lBQUMsY0FBTSxPQUFBLENBQUMsS0FBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxFQUFuQyxDQUFtQyxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7OztJQUVELGdEQUFXOzs7SUFBWCxjQUFlLENBQUM7Ozs7O0lBRWhCLGlEQUFZOzs7O0lBQVosVUFBYSxXQUFtQjtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSx5QkFBeUIsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7OztJQUVELDJDQUFNOzs7SUFBTjtRQUNFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLElBQUksUUFBUSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLEVBQUU7WUFDckMsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7U0FDekUsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDOztJQTdGTSwrQkFBSSxtQ0FBMkI7O2dCQU52QyxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsZzVIQUFrRDtpQkFDbkQ7Ozs7Z0JBYmdCLEtBQUs7Z0JBQ2IsWUFBWTs7O2lDQTZCbEIsU0FBUyxTQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTs4QkFHN0QsU0FBUyxTQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTs7SUFkM0Q7UUFEQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQzswQ0FDNUIsVUFBVTsrREFBa0I7SUFHckM7UUFEQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQzswQ0FDNUIsVUFBVTtvRUFBdUM7SUFHL0Q7UUFEQyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOzBDQUMxQyxVQUFVO2tFQUFzQztJQUc1RDtRQURDLE1BQU0sQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUM7MENBQzVCLFVBQVU7b0VBQTZCO0lBa0Z2RCxpQ0FBQztDQUFBLEFBcEdELElBb0dDO1NBaEdZLDBCQUEwQjs7O0lBRXJDLGdDQUFzQzs7SUFFdEMsNkNBQ3FDOztJQUVyQyxrREFDK0Q7O0lBRS9ELGdEQUM0RDs7SUFFNUQsa0RBQ3FEOztJQUVyRCxvREFDaUM7O0lBRWpDLGlEQUM4Qjs7SUFFOUIsMERBQXNDOztJQUV0QyxtREFBK0I7O0lBeUIvQix1REFBMkM7O0lBRTNDLCtDQUFtRTs7SUFFbkUsc0RBQTJFOzs7OztJQUUvRCwyQ0FBb0I7Ozs7O0lBQUUsa0RBQWtDOzs7Ozs7QUEyQ3RFLFNBQVMsZ0JBQWdCLENBQUMsTUFBdUI7SUFDL0MsT0FBTyxNQUFNLENBQUMsTUFBTTs7Ozs7SUFBQyxVQUFDLEdBQUcsRUFBRSxHQUFHO1FBQzVCLElBQUksR0FBRyxDQUFDLFNBQVM7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUU5QixJQUFJLEdBQUcsQ0FBQyxRQUFRLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDdkMsR0FBRyxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDL0M7UUFFRCx3QkFBVyxHQUFHLEdBQUUsR0FBRyxHQUFFO0lBQ3ZCLENBQUMsR0FBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBQlAsXG4gIEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbixcbiAgQ29uZmlnR2V0QXBwQ29uZmlndXJhdGlvbixcbiAgQ29uZmlnU3RhdGUsXG4gIGVMYXlvdXRUeXBlLFxuICBTZXNzaW9uU2V0TGFuZ3VhZ2UsXG4gIFNlc3Npb25TdGF0ZSxcbiAgdGFrZVVudGlsRGVzdHJveSxcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgVHJhY2tCeUZ1bmN0aW9uLCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlLCBSb3V0ZXJTdGF0ZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgU2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZGVsYXksIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcbmltcG9ydCB7IExheW91dEFkZE5hdmlnYXRpb25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBMYXlvdXRTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlcyc7XG5pbXBvcnQgeyBMYXlvdXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvbGF5b3V0JztcbmltcG9ydCBjb21wYXJlIGZyb20gJ2p1c3QtY29tcGFyZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1sYXlvdXQtYXBwbGljYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0QXBwbGljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvLyByZXF1aXJlZCBmb3IgZHluYW1pYyBjb21wb25lbnRcbiAgc3RhdGljIHR5cGUgPSBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbjtcblxuICBAU2VsZWN0KENvbmZpZ1N0YXRlLmdldE9uZSgncm91dGVzJykpXG4gIHJvdXRlcyQ6IE9ic2VydmFibGU8QUJQLkZ1bGxSb3V0ZVtdPjtcblxuICBAU2VsZWN0KENvbmZpZ1N0YXRlLmdldE9uZSgnY3VycmVudFVzZXInKSlcbiAgY3VycmVudFVzZXIkOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbi5DdXJyZW50VXNlcj47XG5cbiAgQFNlbGVjdChDb25maWdTdGF0ZS5nZXREZWVwKCdsb2NhbGl6YXRpb24ubGFuZ3VhZ2VzJykpXG4gIGxhbmd1YWdlcyQ6IE9ic2VydmFibGU8QXBwbGljYXRpb25Db25maWd1cmF0aW9uLkxhbmd1YWdlW10+O1xuXG4gIEBTZWxlY3QoTGF5b3V0U3RhdGUuZ2V0TmF2aWdhdGlvbkVsZW1lbnRzKVxuICBuYXZFbGVtZW50cyQ6IE9ic2VydmFibGU8TGF5b3V0Lk5hdmlnYXRpb25FbGVtZW50W10+O1xuXG4gIEBWaWV3Q2hpbGQoJ2N1cnJlbnRVc2VyJywgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBjdXJyZW50VXNlclJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdsYW5ndWFnZScsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgbGFuZ3VhZ2VSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgaXNPcGVuQ2hhbmdlUGFzc3dvcmQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBpc09wZW5Qcm9maWxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IHZpc2libGVSb3V0ZXMkKCk6IE9ic2VydmFibGU8QUJQLkZ1bGxSb3V0ZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVzJC5waXBlKG1hcChyb3V0ZXMgPT4gZ2V0VmlzaWJsZVJvdXRlcyhyb3V0ZXMpKSk7XG4gIH1cblxuICBnZXQgZGVmYXVsdExhbmd1YWdlJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlcyQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgbGFuZ3VhZ2VzID0+IHNucSgoKSA9PiBsYW5ndWFnZXMuZmluZChsYW5nID0+IGxhbmcuY3VsdHVyZU5hbWUgPT09IHRoaXMuc2VsZWN0ZWRMYW5nQ3VsdHVyZSkuZGlzcGxheU5hbWUpLFxuICAgICAgICAnJyxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGdldCBkcm9wZG93bkxhbmd1YWdlcyQoKTogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24uTGFuZ3VhZ2VbXT4ge1xuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlcyQucGlwZShcbiAgICAgIG1hcChsYW5ndWFnZXMgPT4gc25xKCgpID0+IGxhbmd1YWdlcy5maWx0ZXIobGFuZyA9PiBsYW5nLmN1bHR1cmVOYW1lICE9PSB0aGlzLnNlbGVjdGVkTGFuZ0N1bHR1cmUpKSwgW10pLFxuICAgICk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRMYW5nQ3VsdHVyZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSk7XG4gIH1cblxuICByaWdodFBhcnRFbGVtZW50czogVGVtcGxhdGVSZWY8YW55PltdID0gW107XG5cbiAgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248QUJQLkZ1bGxSb3V0ZT4gPSAoXywgaXRlbSkgPT4gaXRlbS5uYW1lO1xuXG4gIHRyYWNrRWxlbWVudEJ5Rm46IFRyYWNrQnlGdW5jdGlvbjxBQlAuRnVsbFJvdXRlPiA9IChfLCBlbGVtZW50KSA9PiBlbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcml2YXRlIG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBuYXZpZ2F0aW9ucyA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoTGF5b3V0U3RhdGUuZ2V0TmF2aWdhdGlvbkVsZW1lbnRzKS5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKTtcblxuICAgIGlmIChuYXZpZ2F0aW9ucy5pbmRleE9mKCdMYW5ndWFnZVJlZicpIDwgMCkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgbmV3IExheW91dEFkZE5hdmlnYXRpb25FbGVtZW50KFtcbiAgICAgICAgICB7IGVsZW1lbnQ6IHRoaXMubGFuZ3VhZ2VSZWYsIG9yZGVyOiA0LCBuYW1lOiAnTGFuZ3VhZ2VSZWYnIH0sXG4gICAgICAgICAgeyBlbGVtZW50OiB0aGlzLmN1cnJlbnRVc2VyUmVmLCBvcmRlcjogNSwgbmFtZTogJ0N1cnJlbnRVc2VyUmVmJyB9LFxuICAgICAgICBdKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5uYXZFbGVtZW50cyRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoZWxlbWVudHMgPT4gZWxlbWVudHMubWFwKCh7IGVsZW1lbnQgfSkgPT4gZWxlbWVudCkpLFxuICAgICAgICBmaWx0ZXIoZWxlbWVudHMgPT4gIWNvbXBhcmUoZWxlbWVudHMsIHRoaXMucmlnaHRQYXJ0RWxlbWVudHMpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveSh0aGlzKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZWxlbWVudHMgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLnJpZ2h0UGFydEVsZW1lbnRzID0gZWxlbWVudHMpLCAwKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7fVxuXG4gIG9uQ2hhbmdlTGFuZyhjdWx0dXJlTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2Vzc2lvblNldExhbmd1YWdlKGN1bHR1cmVOYW1lKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgQ29uZmlnR2V0QXBwQ29uZmlndXJhdGlvbigpKTtcbiAgfVxuXG4gIGxvZ291dCgpIHtcbiAgICB0aGlzLm9hdXRoU2VydmljZS5sb2dPdXQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgbmV3IE5hdmlnYXRlKFsnL2FjY291bnQvbG9naW4nXSwgbnVsbCwge1xuICAgICAgICBzdGF0ZTogeyByZWRpcmVjdFVybDogdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChSb3V0ZXJTdGF0ZSkuc3RhdGUudXJsIH0sXG4gICAgICB9KSxcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IENvbmZpZ0dldEFwcENvbmZpZ3VyYXRpb24oKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VmlzaWJsZVJvdXRlcyhyb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSkge1xuICByZXR1cm4gcm91dGVzLnJlZHVjZSgoYWNjLCB2YWwpID0+IHtcbiAgICBpZiAodmFsLmludmlzaWJsZSkgcmV0dXJuIGFjYztcblxuICAgIGlmICh2YWwuY2hpbGRyZW4gJiYgdmFsLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgdmFsLmNoaWxkcmVuID0gZ2V0VmlzaWJsZVJvdXRlcyh2YWwuY2hpbGRyZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBbLi4uYWNjLCB2YWxdO1xuICB9LCBbXSk7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout-empty/layout-empty.component.js b/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout-empty/layout-empty.component.js new file mode 100644 index 0000000000..c4e08d76c8 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout-empty/layout-empty.component.js @@ -0,0 +1,24 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +var LayoutEmptyComponent = /** @class */ (function () { + function LayoutEmptyComponent() { + } + // required for dynamic component + LayoutEmptyComponent.type = "empty" /* empty */; + LayoutEmptyComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-empty', + template: "\n Layout-empty\n \n " + }] } + ]; + return LayoutEmptyComponent; +}()); +export { LayoutEmptyComponent }; +if (false) { + /** @type {?} */ + LayoutEmptyComponent.type; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWVtcHR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sYXlvdXQtZW1wdHkvbGF5b3V0LWVtcHR5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQztJQUFBO0lBVUEsQ0FBQzs7SUFEUSx5QkFBSSx1QkFBcUI7O2dCQVRqQyxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLDZEQUdUO2lCQUNGOztJQUlELDJCQUFDO0NBQUEsQUFWRCxJQVVDO1NBSFksb0JBQW9COzs7SUFFL0IsMEJBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1sYXlvdXQtZW1wdHknLFxuICB0ZW1wbGF0ZTogYFxuICAgIExheW91dC1lbXB0eVxuICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0RW1wdHlDb21wb25lbnQge1xuICAvLyByZXF1aXJlZCBmb3IgZHluYW1pYyBjb21wb25lbnRcbiAgc3RhdGljIHR5cGUgPSBlTGF5b3V0VHlwZS5lbXB0eTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout/layout.component.js b/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout/layout.component.js new file mode 100644 index 0000000000..a08c8cadbe --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/components/layout/layout.component.js @@ -0,0 +1,23 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +var LayoutComponent = /** @class */ (function () { + function LayoutComponent() { + this.isCollapsed = false; + } + LayoutComponent.decorators = [ + { type: Component, args: [{ + selector: ' abp-layout', + template: "\n\n
    \n \n
    \n\n\n\n" + }] } + ]; + return LayoutComponent; +}()); +export { LayoutComponent }; +if (false) { + /** @type {?} */ + LayoutComponent.prototype.isCollapsed; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQztJQUFBO1FBS0UsZ0JBQVcsR0FBWSxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7Z0JBTkEsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixvcUJBQXNDO2lCQUN2Qzs7SUFHRCxzQkFBQztDQUFBLEFBTkQsSUFNQztTQUZZLGVBQWU7OztJQUMxQixzQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnIGFicC1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0Q29tcG9uZW50IHtcbiAgaXNDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/components/profile/profile.component.js b/npm/packs/ng/dist/theme-basic/esm5/lib/components/profile/profile.component.js new file mode 100644 index 0000000000..7ea3eebc0b --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/components/profile/profile.component.js @@ -0,0 +1,173 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild, } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { Store, Select } from '@ngxs/store'; +import { from, Observable } from 'rxjs'; +import { take, withLatestFrom } from 'rxjs/operators'; +import { ProfileGet, ProfileState, ProfileUpdate } from '@abp/ng.core'; +var maxLength = Validators.maxLength, required = Validators.required, email = Validators.email; +var ProfileComponent = /** @class */ (function () { + function ProfileComponent(fb, modalService, store) { + this.fb = fb; + this.modalService = modalService; + this.store = store; + this.visibleChange = new EventEmitter(); + } + /** + * @return {?} + */ + ProfileComponent.prototype.buildForm = /** + * @return {?} + */ + function () { + var _this = this; + this.store + .dispatch(new ProfileGet()) + .pipe(withLatestFrom(this.profile$), take(1)) + .subscribe((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _b = tslib_1.__read(_a, 2), profile = _b[1]; + _this.form = _this.fb.group({ + userName: [profile.userName, [required, maxLength(256)]], + email: [profile.email, [required, email, maxLength(256)]], + name: [profile.name || '', [maxLength(64)]], + surname: [profile.surname || '', [maxLength(64)]], + phoneNumber: [profile.phoneNumber || '', [maxLength(16)]], + }); + })); + }; + /** + * @return {?} + */ + ProfileComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.form.invalid) + return; + this.store.dispatch(new ProfileUpdate(this.form.value)).subscribe((/** + * @return {?} + */ + function () { return _this.modalRef.close(); })); + }; + /** + * @return {?} + */ + ProfileComponent.prototype.openModal = /** + * @return {?} + */ + function () { + var _this = this; + this.buildForm(); + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + from(this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + function (data) { + _this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + function (reason) { + _this.setVisible(false); + })); + }; + /** + * @param {?} value + * @return {?} + */ + ProfileComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + this.visible = value; + this.visibleChange.emit(value); + }; + /** + * @param {?} __0 + * @return {?} + */ + ProfileComponent.prototype.ngOnChanges = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var visible = _a.visible; + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + }; + ProfileComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-profile', + template: "\n
    \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n" + }] } + ]; + /** @nocollapse */ + ProfileComponent.ctorParameters = function () { return [ + { type: FormBuilder }, + { type: NgbModal }, + { type: Store } + ]; }; + ProfileComponent.propDecorators = { + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + tslib_1.__decorate([ + Select(ProfileState.getProfile), + tslib_1.__metadata("design:type", Observable) + ], ProfileComponent.prototype, "profile$", void 0); + return ProfileComponent; +}()); +export { ProfileComponent }; +if (false) { + /** @type {?} */ + ProfileComponent.prototype.visible; + /** @type {?} */ + ProfileComponent.prototype.visibleChange; + /** @type {?} */ + ProfileComponent.prototype.modalContent; + /** @type {?} */ + ProfileComponent.prototype.profile$; + /** @type {?} */ + ProfileComponent.prototype.form; + /** @type {?} */ + ProfileComponent.prototype.modalRef; + /** + * @type {?} + * @private + */ + ProfileComponent.prototype.fb; + /** + * @type {?} + * @private + */ + ProfileComponent.prototype.modalService; + /** + * @type {?} + * @private + */ + ProfileComponent.prototype.store; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQWUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFXLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV4RSxJQUFBLGdDQUFTLEVBQUUsOEJBQVEsRUFBRSx3QkFBSztBQUVsQztJQXFCRSwwQkFBb0IsRUFBZSxFQUFVLFlBQXNCLEVBQVUsS0FBWTtRQUFyRSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQVU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBWnpGLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQVlnRCxDQUFDOzs7O0lBRTdGLG9DQUFTOzs7SUFBVDtRQUFBLGlCQWdCQztRQWZDLElBQUksQ0FBQyxLQUFLO2FBQ1AsUUFBUSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7YUFDMUIsSUFBSSxDQUNILGNBQWMsQ0FBQyxJQUFJ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LHcxRUFBdUM7aUJBQ3hDOzs7O2dCQVpRLFdBQVc7Z0JBQ1gsUUFBUTtnQkFDUixLQUFLOzs7MEJBWVgsS0FBSztnQ0FHTCxNQUFNOytCQUdOLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztJQUk1QztRQURDLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDOzBDQUN0QixVQUFVO3NEQUFtQjtJQWdFekMsdUJBQUM7Q0FBQSxBQS9FRCxJQStFQztTQTNFWSxnQkFBZ0I7OztJQUMzQixtQ0FDaUI7O0lBRWpCLHlDQUM0Qzs7SUFFNUMsd0NBQytCOztJQUUvQixvQ0FDdUM7O0lBRXZDLGdDQUFnQjs7SUFFaEIsb0NBQXNCOzs7OztJQUVWLDhCQUF1Qjs7Ozs7SUFBRSx3Q0FBOEI7Ozs7O0lBQUUsaUNBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JNb2RhbCwgTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBTdG9yZSwgU2VsZWN0IH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQcm9maWxlR2V0LCBQcm9maWxlU3RhdGUsIFByb2ZpbGUsIFByb2ZpbGVVcGRhdGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuXG5jb25zdCB7IG1heExlbmd0aCwgcmVxdWlyZWQsIGVtYWlsIH0gPSBWYWxpZGF0b3JzO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtcHJvZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9maWxlLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHZpc2libGU6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWxDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1vZGFsQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAU2VsZWN0KFByb2ZpbGVTdGF0ZS5nZXRQcm9maWxlKVxuICBwcm9maWxlJDogT2JzZXJ2YWJsZTxQcm9maWxlLlJlc3BvbnNlPjtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgbW9kYWxSZWY6IE5nYk1vZGFsUmVmO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIGJ1aWxkRm9ybSgpIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IFByb2ZpbGVHZXQoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnByb2ZpbGUkKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFssIHByb2ZpbGVdKSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgIHVzZXJOYW1lOiBbcHJvZmlsZS51c2VyTmFtZSwgW3JlcXVpcmVkLCBtYXhMZW5ndGgoMjU2KV1dLFxuICAgICAgICAgIGVtYWlsOiBbcHJvZmlsZS5lbWFpbCwgW3JlcXVpcmVkLCBlbWFpbCwgbWF4TGVuZ3RoKDI1NildXSxcbiAgICAgICAgICBuYW1lOiBbcHJvZmlsZS5uYW1lIHx8ICcnLCBbbWF4TGVuZ3RoKDY0KV1dLFxuICAgICAgICAgIHN1cm5hbWU6IFtwcm9maWxlLnN1cm5hbWUgfHwgJycsIFttYXhMZW5ndGgoNjQpXV0sXG4gICAgICAgICAgcGhvbmVOdW1iZXI6IFtwcm9maWxlLnBob25lTnVtYmVyIHx8ICcnLCBbbWF4TGVuZ3RoKDE2KV1dLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBQcm9maWxlVXBkYXRlKHRoaXMuZm9ybS52YWx1ZSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm1vZGFsUmVmLmNsb3NlKCkpO1xuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIHRoaXMuYnVpbGRGb3JtKCk7XG5cbiAgICB0aGlzLm1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLm1vZGFsQ29udGVudCk7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodHJ1ZSk7XG5cbiAgICBmcm9tKHRoaXMubW9kYWxSZWYucmVzdWx0KVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlYXNvbiA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gIH1cblxuICBzZXRWaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy52aXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyB2aXNpYmxlIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXZpc2libGUpIHJldHVybjtcblxuICAgIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICB9IGVsc2UgaWYgKHZpc2libGUuY3VycmVudFZhbHVlID09PSBmYWxzZSAmJiB0aGlzLm1vZGFsU2VydmljZS5oYXNPcGVuTW9kYWxzKCkpIHtcbiAgICAgIHRoaXMubW9kYWxSZWYuY2xvc2UoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/models/index.js b/npm/packs/ng/dist/theme-basic/esm5/lib/models/index.js new file mode 100644 index 0000000000..370665b7b0 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/models/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './layout'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsZUFBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xheW91dCc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/models/layout.js b/npm/packs/ng/dist/theme-basic/esm5/lib/models/layout.js new file mode 100644 index 0000000000..d93212a06d --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/models/layout.js @@ -0,0 +1,30 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Layout; +(function (Layout) { + /** + * @record + */ + function State() { } + Layout.State = State; + if (false) { + /** @type {?} */ + State.prototype.navigationElements; + } + /** + * @record + */ + function NavigationElement() { } + Layout.NavigationElement = NavigationElement; + if (false) { + /** @type {?} */ + NavigationElement.prototype.name; + /** @type {?} */ + NavigationElement.prototype.element; + /** @type {?|undefined} */ + NavigationElement.prototype.order; + } +})(Layout || (Layout = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvbGF5b3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLEtBQVcsTUFBTSxDQVV0QjtBQVZELFdBQWlCLE1BQU07Ozs7SUFDckIsb0JBRUM7Ozs7UUFEQyxtQ0FBd0M7Ozs7O0lBRzFDLGdDQUlDOzs7O1FBSEMsaUNBQWE7O1FBQ2Isb0NBQTBCOztRQUMxQixrQ0FBZTs7QUFFbkIsQ0FBQyxFQVZnQixNQUFNLEtBQU4sTUFBTSxRQVV0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgTGF5b3V0IHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gICAgbmF2aWdhdGlvbkVsZW1lbnRzOiBOYXZpZ2F0aW9uRWxlbWVudFtdO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uRWxlbWVudCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGVsZW1lbnQ6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgb3JkZXI/OiBudW1iZXI7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/states/index.js b/npm/packs/ng/dist/theme-basic/esm5/lib/states/index.js new file mode 100644 index 0000000000..0e85d60b8b --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/states/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { LayoutState } from "./layout.state"; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNEJBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9sYXlvdXQuc3RhdGVcIjtcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/states/layout.state.js b/npm/packs/ng/dist/theme-basic/esm5/lib/states/layout.state.js new file mode 100644 index 0000000000..7aa78e4544 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/states/layout.state.js @@ -0,0 +1,98 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { State, Action, Selector } from '@ngxs/store'; +import { LayoutAddNavigationElement } from '../actions/layout.actions'; +import snq from 'snq'; +var LayoutState = /** @class */ (function () { + function LayoutState() { + } + /** + * @param {?} __0 + * @return {?} + */ + LayoutState.getNavigationElements = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var navigationElements = _a.navigationElements; + return navigationElements; + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + LayoutState.prototype.layoutAction = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var getState = _a.getState, patchState = _a.patchState; + var _c = _b.payload, payload = _c === void 0 ? [] : _c; + var navigationElements = getState().navigationElements; + if (!Array.isArray(payload)) { + payload = [payload]; + } + if (navigationElements.length) { + payload = snq((/** + * @return {?} + */ + function () { + return ((/** @type {?} */ (payload))).filter((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var name = _a.name; + return navigationElements.findIndex((/** + * @param {?} nav + * @return {?} + */ + function (nav) { return nav.name === name; })) < 0; + })); + }), []); + } + if (!payload.length) + return; + navigationElements = tslib_1.__spread(navigationElements, payload).map((/** + * @param {?} element + * @return {?} + */ + function (element) { return (tslib_1.__assign({}, element, { order: element.order || 99 })); })) + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + function (a, b) { return a.order - b.order; })); + return patchState({ + navigationElements: navigationElements, + }); + }; + tslib_1.__decorate([ + Action(LayoutAddNavigationElement), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, LayoutAddNavigationElement]), + tslib_1.__metadata("design:returntype", void 0) + ], LayoutState.prototype, "layoutAction", null); + tslib_1.__decorate([ + Selector(), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object]), + tslib_1.__metadata("design:returntype", Array) + ], LayoutState, "getNavigationElements", null); + LayoutState = tslib_1.__decorate([ + State({ + name: 'LayoutState', + defaults: (/** @type {?} */ ({ navigationElements: [] })), + }) + ], LayoutState); + return LayoutState; +}()); +export { LayoutState }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi9zdGF0ZXMvbGF5b3V0LnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWdCLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd2RSxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7OztJQXdDdEIsQ0FBQzs7Ozs7SUFoQ1EsaUNBQXFCOzs7O0lBQTVCLFVBQTZCLEVBQW9DO1lBQWxDLDBDQUFrQjtRQUMvQyxPQUFPLGtCQUFrQixDQUFDO0lBQzVCLENBQUM7Ozs7OztJQUdELGtDQUFZOzs7OztJQUFaLFVBQWEsRUFBb0QsRUFBRSxFQUE0QztZQUFoRyxzQkFBUSxFQUFFLDBCQUFVO1lBQWtDLGVBQVksRUFBWixpQ0FBWTtRQUN6RSxJQUFBLGtEQUFrQjtRQUV4QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMzQixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyQjtRQUVELElBQUksa0JBQWtCLENBQUMsTUFBTSxFQUFFO1lBQzdCLE9BQU8sR0FBRyxHQUFHOzs7WUFDWDtnQkFDRSxPQUFBLENBQUMsbUJBQUEsT0FBTyxFQUE4QixDQUFDLENBQUMsTUFBTTs7OztnQkFDNUMsVUFBQyxFQUFRO3dCQUFOLGNBQUk7b0JBQU8sT0FBQSxrQkFBa0IsQ0FBQyxTQUFTOzs7O29CQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQWpCLENBQWlCLEVBQUMsR0FBRyxDQUFDO2dCQUExRCxDQUEwRCxFQUN6RTtZQUZELENBRUMsR0FDSCxFQUFFLENBQ0gsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUU1QixrQkFBa0IsR0FBRyxpQkFBSSxrQkFBa0IsRUFBSyxPQUFPLEVBQ3BELEdBQUc7Ozs7UUFBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLHNCQUFNLE9BQU8sSUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLElBQUcsRUFBNUMsQ0FBNEMsRUFBQzthQUM1RCxJQUFJOzs7OztRQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBakIsQ0FBaUIsRUFBQyxDQUFDO1FBRXJDLE9BQU8sVUFBVSxDQUFDO1lBQ2hCLGtCQUFrQixvQkFBQTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBMUJEO1FBREMsTUFBTSxDQUFDLDBCQUEwQixDQUFDOzt5REFDa0QsMEJBQTBCOzttREEwQjlHO0lBL0JEO1FBREMsUUFBUSxFQUFFOzs7O2tEQUdWO0lBSlUsV0FBVztRQUp2QixLQUFLLENBQWU7WUFDbkIsSUFBSSxFQUFFLGFBQWE7WUFDbkIsUUFBUSxFQUFFLG1CQUFBLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLEVBQWdCO1NBQ3JELENBQUM7T0FDVyxXQUFXLENBa0N2QjtJQUFELGtCQUFDO0NBQUEsSUFBQTtTQWxDWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGUsIEFjdGlvbiwgU3RhdGVDb250ZXh0LCBTZWxlY3RvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IExheW91dEFkZE5hdmlnYXRpb25FbGVtZW50IH0gZnJvbSAnLi4vYWN0aW9ucy9sYXlvdXQuYWN0aW9ucyc7XG5pbXBvcnQgeyBMYXlvdXQgfSBmcm9tICcuLi9tb2RlbHMvbGF5b3V0JztcbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5cbkBTdGF0ZTxMYXlvdXQuU3RhdGU+KHtcbiAgbmFtZTogJ0xheW91dFN0YXRlJyxcbiAgZGVmYXVsdHM6IHsgbmF2aWdhdGlvbkVsZW1lbnRzOiBbXSB9IGFzIExheW91dC5TdGF0ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0U3RhdGUge1xuICBAU2VsZWN0b3IoKVxuICBzdGF0aWMgZ2V0TmF2aWdhdGlvbkVsZW1lbnRzKHsgbmF2aWdhdGlvbkVsZW1lbnRzIH06IExheW91dC5TdGF0ZSk6IExheW91dC5OYXZpZ2F0aW9uRWxlbWVudFtdIHtcbiAgICByZXR1cm4gbmF2aWdhdGlvbkVsZW1lbnRzO1xuICB9XG5cbiAgQEFjdGlvbihMYXlvdXRBZGROYXZpZ2F0aW9uRWxlbWVudClcbiAgbGF5b3V0QWN0aW9uKHsgZ2V0U3RhdGUsIHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PExheW91dC5TdGF0ZT4sIHsgcGF5bG9hZCA9IFtdIH06IExheW91dEFkZE5hdmlnYXRpb25FbGVtZW50KSB7XG4gICAgbGV0IHsgbmF2aWdhdGlvbkVsZW1lbnRzIH0gPSBnZXRTdGF0ZSgpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBheWxvYWQpKSB7XG4gICAgICBwYXlsb2FkID0gW3BheWxvYWRdO1xuICAgIH1cblxuICAgIGlmIChuYXZpZ2F0aW9uRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICBwYXlsb2FkID0gc25xKFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIChwYXlsb2FkIGFzIExheW91dC5OYXZpZ2F0aW9uRWxlbWVudFtdKS5maWx0ZXIoXG4gICAgICAgICAgICAoeyBuYW1lIH0pID0+IG5hdmlnYXRpb25FbGVtZW50cy5maW5kSW5kZXgobmF2ID0+IG5hdi5uYW1lID09PSBuYW1lKSA8IDAsXG4gICAgICAgICAgKSxcbiAgICAgICAgW10sXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghcGF5bG9hZC5sZW5ndGgpIHJldHVybjtcblxuICAgIG5hdmlnYXRpb25FbGVtZW50cyA9IFsuLi5uYXZpZ2F0aW9uRWxlbWVudHMsIC4uLnBheWxvYWRdXG4gICAgICAubWFwKGVsZW1lbnQgPT4gKHsgLi4uZWxlbWVudCwgb3JkZXI6IGVsZW1lbnQub3JkZXIgfHwgOTkgfSkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuXG4gICAgcmV0dXJuIHBhdGNoU3RhdGUoe1xuICAgICAgbmF2aWdhdGlvbkVsZW1lbnRzLFxuICAgIH0pO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/lib/theme-basic.module.js b/npm/packs/ng/dist/theme-basic/esm5/lib/theme-basic.module.js new file mode 100644 index 0000000000..047d909621 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/lib/theme-basic.module.js @@ -0,0 +1,44 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { CoreModule } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { ChangePasswordComponent } from './components/change-password/change-password.component'; +import { LayoutAccountComponent } from './components/layout-account/layout-account.component'; +import { LayoutApplicationComponent } from './components/layout-application/layout-application.component'; +import { LayoutEmptyComponent } from './components/layout-empty/layout-empty.component'; +import { LayoutComponent } from './components/layout/layout.component'; +import { ProfileComponent } from './components/profile/profile.component'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { ToastModule } from 'primeng/toast'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; +import { NgxsModule } from '@ngxs/store'; +import { LayoutState } from './states/layout.state'; +/** @type {?} */ +export var LAYOUTS = [LayoutApplicationComponent, LayoutAccountComponent, LayoutEmptyComponent]; +var ThemeBasicModule = /** @class */ (function () { + function ThemeBasicModule() { + } + ThemeBasicModule.decorators = [ + { type: NgModule, args: [{ + declarations: tslib_1.__spread(LAYOUTS, [LayoutComponent, ChangePasswordComponent, ProfileComponent]), + imports: [ + CoreModule, + ThemeSharedModule, + NgbCollapseModule, + NgbDropdownModule, + ToastModule, + NgxValidateCoreModule, + NgxsModule.forFeature([LayoutState]), + ], + exports: tslib_1.__spread(LAYOUTS), + entryComponents: tslib_1.__spread(LAYOUTS), + },] } + ]; + return ThemeBasicModule; +}()); +export { ThemeBasicModule }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtYmFzaWMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi90aGVtZS1iYXNpYy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDakcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDOUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDMUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRXBELE1BQU0sS0FBTyxPQUFPLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsQ0FBQztBQUVqRztJQUFBO0lBYytCLENBQUM7O2dCQWQvQixRQUFRLFNBQUM7b0JBQ1IsWUFBWSxtQkFBTSxPQUFPLEdBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFDO29CQUN0RixPQUFPLEVBQUU7d0JBQ1AsVUFBVTt3QkFDVixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixXQUFXO3dCQUNYLHFCQUFxQjt3QkFDckIsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO3FCQUNyQztvQkFDRCxPQUFPLG1CQUFNLE9BQU8sQ0FBQztvQkFDckIsZUFBZSxtQkFBTSxPQUFPLENBQUM7aUJBQzlCOztJQUM4Qix1QkFBQztDQUFBLEFBZGhDLElBY2dDO1NBQW5CLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkNvbGxhcHNlTW9kdWxlLCBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IENoYW5nZVBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dEFjY291bnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0LWFjY291bnQvbGF5b3V0LWFjY291bnQuY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dEFwcGxpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC1hcHBsaWNhdGlvbi9sYXlvdXQtYXBwbGljYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dEVtcHR5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC1lbXB0eS9sYXlvdXQtZW1wdHkuY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9maWxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBMYXlvdXRTdGF0ZSB9IGZyb20gJy4vc3RhdGVzL2xheW91dC5zdGF0ZSc7XG5cbmV4cG9ydCBjb25zdCBMQVlPVVRTID0gW0xheW91dEFwcGxpY2F0aW9uQ29tcG9uZW50LCBMYXlvdXRBY2NvdW50Q29tcG9uZW50LCBMYXlvdXRFbXB0eUNvbXBvbmVudF07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogWy4uLkxBWU9VVFMsIExheW91dENvbXBvbmVudCwgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQsIFByb2ZpbGVDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29yZU1vZHVsZSxcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcbiAgICBOZ2JDb2xsYXBzZU1vZHVsZSxcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcbiAgICBUb2FzdE1vZHVsZSxcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXG4gICAgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtMYXlvdXRTdGF0ZV0pLFxuICBdLFxuICBleHBvcnRzOiBbLi4uTEFZT1VUU10sXG4gIGVudHJ5Q29tcG9uZW50czogWy4uLkxBWU9VVFNdLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVtZUJhc2ljTW9kdWxlIHt9XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/esm5/public-api.js b/npm/packs/ng/dist/theme-basic/esm5/public-api.js new file mode 100644 index 0000000000..fbfa83cba8 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/esm5/public-api.js @@ -0,0 +1,13 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/* + * Public API Surface of theme-basic + */ +export { LAYOUTS, ThemeBasicModule } from './lib/theme-basic.module'; +export { LayoutAddNavigationElement } from './lib/actions'; +export { LayoutAccountComponent, LayoutApplicationComponent, LayoutEmptyComponent } from './lib/components'; +export {} from './lib/models'; +export { LayoutState } from './lib/states'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwwQ0FBYywwQkFBMEIsQ0FBQztBQUN6QywyQ0FBYyxlQUFlLENBQUM7QUFDOUIseUZBQWMsa0JBQWtCLENBQUM7QUFDakMsZUFBYyxjQUFjLENBQUM7QUFDN0IsNEJBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0aGVtZS1iYXNpY1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RoZW1lLWJhc2ljLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/fesm2015/abp-ng.theme.basic.js b/npm/packs/ng/dist/theme-basic/fesm2015/abp-ng.theme.basic.js new file mode 100644 index 0000000000..76a3831768 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/fesm2015/abp-ng.theme.basic.js @@ -0,0 +1,621 @@ +import { ProfileChangePassword, SessionState, takeUntilDestroy, SessionSetLanguage, ConfigGetAppConfiguration, ConfigState, ProfileGet, ProfileUpdate, ProfileState, CoreModule } from '@abp/ng.core'; +import { EventEmitter, Component, Input, Output, ViewChild, TemplateRef, NgModule } from '@angular/core'; +import { NgbModal, NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { FormBuilder, Validators } from '@angular/forms'; +import { validatePassword, comparePasswords, NgxValidateCoreModule } from '@ngx-validate/core'; +import { Store, Action, Selector, State, Select, NgxsModule } from '@ngxs/store'; +import { from, Observable } from 'rxjs'; +import { take, map, filter, withLatestFrom } from 'rxjs/operators'; +import { __decorate, __metadata } from 'tslib'; +import { Navigate, RouterState } from '@ngxs/router-plugin'; +import { OAuthService } from 'angular-oauth2-oidc'; +import snq from 'snq'; +import compare from 'just-compare'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { ToastModule } from 'primeng/toast'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +const { minLength, required } = Validators; +class ChangePasswordComponent { + /** + * @param {?} fb + * @param {?} modalService + * @param {?} store + */ + constructor(fb, modalService, store) { + this.fb = fb; + this.modalService = modalService; + this.store = store; + this.visibleChange = new EventEmitter(); + } + /** + * @return {?} + */ + ngOnInit() { + this.form = this.fb.group({ + password: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + newPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + repeatNewPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + }, { + validators: [comparePasswords(['newPassword', 'repeatNewPassword'])], + }); + } + /** + * @return {?} + */ + onSubmit() { + if (this.form.invalid) + return; + this.store + .dispatch(new ProfileChangePassword({ + currentPassword: this.form.get('password').value, + newPassword: this.form.get('newPassword').value, + })) + .subscribe((/** + * @return {?} + */ + () => this.modalRef.close())); + } + /** + * @return {?} + */ + openModal() { + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + from(this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + data => { + this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + reason => { + this.setVisible(false); + })); + } + /** + * @param {?} value + * @return {?} + */ + setVisible(value) { + this.visible = value; + this.visibleChange.emit(value); + } + /** + * @param {?} __0 + * @return {?} + */ + ngOnChanges({ visible }) { + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + } +} +ChangePasswordComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-change-password', + template: "\n
    \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n" + }] } +]; +/** @nocollapse */ +ChangePasswordComponent.ctorParameters = () => [ + { type: FormBuilder }, + { type: NgbModal }, + { type: Store } +]; +ChangePasswordComponent.propDecorators = { + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class LayoutAccountComponent { + constructor() { + this.isCollapsed = false; + } +} +// required for dynamic component +LayoutAccountComponent.type = "account" /* account */; +LayoutAccountComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-account', + template: "\n \n\n \n \n \n \n \n\n" + }] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class LayoutAddNavigationElement { + /** + * @param {?} payload + */ + constructor(payload) { + this.payload = payload; + } +} +LayoutAddNavigationElement.type = '[Layout] Add Navigation Element'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +let LayoutState = class LayoutState { + /** + * @param {?} __0 + * @return {?} + */ + static getNavigationElements({ navigationElements }) { + return navigationElements; + } + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + layoutAction({ getState, patchState }, { payload = [] }) { + let { navigationElements } = getState(); + if (!Array.isArray(payload)) { + payload = [payload]; + } + if (navigationElements.length) { + payload = snq((/** + * @return {?} + */ + () => ((/** @type {?} */ (payload))).filter((/** + * @param {?} __0 + * @return {?} + */ + ({ name }) => navigationElements.findIndex((/** + * @param {?} nav + * @return {?} + */ + nav => nav.name === name)) < 0))), []); + } + if (!payload.length) + return; + navigationElements = [...navigationElements, ...payload] + .map((/** + * @param {?} element + * @return {?} + */ + element => (Object.assign({}, element, { order: element.order || 99 })))) + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + (a, b) => a.order - b.order)); + return patchState({ + navigationElements, + }); + } +}; +__decorate([ + Action(LayoutAddNavigationElement), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, LayoutAddNavigationElement]), + __metadata("design:returntype", void 0) +], LayoutState.prototype, "layoutAction", null); +__decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) +], LayoutState, "getNavigationElements", null); +LayoutState = __decorate([ + State({ + name: 'LayoutState', + defaults: (/** @type {?} */ ({ navigationElements: [] })), + }) +], LayoutState); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class LayoutApplicationComponent { + /** + * @param {?} store + * @param {?} oauthService + */ + constructor(store, oauthService) { + this.store = store; + this.oauthService = oauthService; + this.isOpenChangePassword = false; + this.isOpenProfile = false; + this.rightPartElements = []; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + (_, item) => item.name); + this.trackElementByFn = (/** + * @param {?} _ + * @param {?} element + * @return {?} + */ + (_, element) => element); + } + /** + * @return {?} + */ + get visibleRoutes$() { + return this.routes$.pipe(map((/** + * @param {?} routes + * @return {?} + */ + routes => getVisibleRoutes(routes)))); + } + /** + * @return {?} + */ + get defaultLanguage$() { + return this.languages$.pipe(map((/** + * @param {?} languages + * @return {?} + */ + languages => snq((/** + * @return {?} + */ + () => languages.find((/** + * @param {?} lang + * @return {?} + */ + lang => lang.cultureName === this.selectedLangCulture)).displayName))), '')); + } + /** + * @return {?} + */ + get dropdownLanguages$() { + return this.languages$.pipe(map((/** + * @param {?} languages + * @return {?} + */ + languages => snq((/** + * @return {?} + */ + () => languages.filter((/** + * @param {?} lang + * @return {?} + */ + lang => lang.cultureName !== this.selectedLangCulture))))), [])); + } + /** + * @return {?} + */ + get selectedLangCulture() { + return this.store.selectSnapshot(SessionState.getLanguage); + } + /** + * @return {?} + */ + ngAfterViewInit() { + /** @type {?} */ + const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map((/** + * @param {?} __0 + * @return {?} + */ + ({ name }) => name)); + if (navigations.indexOf('LanguageRef') < 0) { + this.store.dispatch(new LayoutAddNavigationElement([ + { element: this.languageRef, order: 4, name: 'LanguageRef' }, + { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' }, + ])); + } + this.navElements$ + .pipe(map((/** + * @param {?} elements + * @return {?} + */ + elements => elements.map((/** + * @param {?} __0 + * @return {?} + */ + ({ element }) => element)))), filter((/** + * @param {?} elements + * @return {?} + */ + elements => !compare(elements, this.rightPartElements))), takeUntilDestroy(this)) + .subscribe((/** + * @param {?} elements + * @return {?} + */ + elements => { + setTimeout((/** + * @return {?} + */ + () => (this.rightPartElements = elements)), 0); + })); + } + /** + * @return {?} + */ + ngOnDestroy() { } + /** + * @param {?} cultureName + * @return {?} + */ + onChangeLang(cultureName) { + this.store.dispatch(new SessionSetLanguage(cultureName)); + this.store.dispatch(new ConfigGetAppConfiguration()); + } + /** + * @return {?} + */ + logout() { + this.oauthService.logOut(); + this.store.dispatch(new Navigate(['/account/login'], null, { + state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url }, + })); + this.store.dispatch(new ConfigGetAppConfiguration()); + } +} +// required for dynamic component +LayoutApplicationComponent.type = "application" /* application */; +LayoutApplicationComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-application', + template: "\n \n\n
      \n \n
    \n
    \n\n\n\n\n\n\n
  • \n \n {{ defaultLanguage$ | async }}\n \n
    \n {{ lang?.displayName }}\n
    \n
  • \n
    \n\n\n
  • \n \n {{ (currentUser$ | async)?.userName }}\n \n \n
  • \n
    \n" + }] } +]; +/** @nocollapse */ +LayoutApplicationComponent.ctorParameters = () => [ + { type: Store }, + { type: OAuthService } +]; +LayoutApplicationComponent.propDecorators = { + currentUserRef: [{ type: ViewChild, args: ['currentUser', { static: false, read: TemplateRef },] }], + languageRef: [{ type: ViewChild, args: ['language', { static: false, read: TemplateRef },] }] +}; +__decorate([ + Select(ConfigState.getOne('routes')), + __metadata("design:type", Observable) +], LayoutApplicationComponent.prototype, "routes$", void 0); +__decorate([ + Select(ConfigState.getOne('currentUser')), + __metadata("design:type", Observable) +], LayoutApplicationComponent.prototype, "currentUser$", void 0); +__decorate([ + Select(ConfigState.getDeep('localization.languages')), + __metadata("design:type", Observable) +], LayoutApplicationComponent.prototype, "languages$", void 0); +__decorate([ + Select(LayoutState.getNavigationElements), + __metadata("design:type", Observable) +], LayoutApplicationComponent.prototype, "navElements$", void 0); +/** + * @param {?} routes + * @return {?} + */ +function getVisibleRoutes(routes) { + return routes.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => { + if (val.invisible) + return acc; + if (val.children && val.children.length) { + val.children = getVisibleRoutes(val.children); + } + return [...acc, val]; + }), []); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class LayoutEmptyComponent { +} +// required for dynamic component +LayoutEmptyComponent.type = "empty" /* empty */; +LayoutEmptyComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-empty', + template: ` + Layout-empty + + ` + }] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class LayoutComponent { + constructor() { + this.isCollapsed = false; + } +} +LayoutComponent.decorators = [ + { type: Component, args: [{ + selector: ' abp-layout', + template: "\n\n
    \n \n
    \n\n\n\n" + }] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +const { maxLength, required: required$1, email } = Validators; +class ProfileComponent { + /** + * @param {?} fb + * @param {?} modalService + * @param {?} store + */ + constructor(fb, modalService, store) { + this.fb = fb; + this.modalService = modalService; + this.store = store; + this.visibleChange = new EventEmitter(); + } + /** + * @return {?} + */ + buildForm() { + this.store + .dispatch(new ProfileGet()) + .pipe(withLatestFrom(this.profile$), take(1)) + .subscribe((/** + * @param {?} __0 + * @return {?} + */ + ([, profile]) => { + this.form = this.fb.group({ + userName: [profile.userName, [required$1, maxLength(256)]], + email: [profile.email, [required$1, email, maxLength(256)]], + name: [profile.name || '', [maxLength(64)]], + surname: [profile.surname || '', [maxLength(64)]], + phoneNumber: [profile.phoneNumber || '', [maxLength(16)]], + }); + })); + } + /** + * @return {?} + */ + onSubmit() { + if (this.form.invalid) + return; + this.store.dispatch(new ProfileUpdate(this.form.value)).subscribe((/** + * @return {?} + */ + () => this.modalRef.close())); + } + /** + * @return {?} + */ + openModal() { + this.buildForm(); + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + from(this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + data => { + this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + reason => { + this.setVisible(false); + })); + } + /** + * @param {?} value + * @return {?} + */ + setVisible(value) { + this.visible = value; + this.visibleChange.emit(value); + } + /** + * @param {?} __0 + * @return {?} + */ + ngOnChanges({ visible }) { + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + } +} +ProfileComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-profile', + template: "\n
    \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n" + }] } +]; +/** @nocollapse */ +ProfileComponent.ctorParameters = () => [ + { type: FormBuilder }, + { type: NgbModal }, + { type: Store } +]; +ProfileComponent.propDecorators = { + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] +}; +__decorate([ + Select(ProfileState.getProfile), + __metadata("design:type", Observable) +], ProfileComponent.prototype, "profile$", void 0); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +const LAYOUTS = [LayoutApplicationComponent, LayoutAccountComponent, LayoutEmptyComponent]; +class ThemeBasicModule { +} +ThemeBasicModule.decorators = [ + { type: NgModule, args: [{ + declarations: [...LAYOUTS, LayoutComponent, ChangePasswordComponent, ProfileComponent], + imports: [ + CoreModule, + ThemeSharedModule, + NgbCollapseModule, + NgbDropdownModule, + ToastModule, + NgxValidateCoreModule, + NgxsModule.forFeature([LayoutState]), + ], + exports: [...LAYOUTS], + entryComponents: [...LAYOUTS], + },] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var Layout; +(function (Layout) { + /** + * @record + */ + function State() { } + Layout.State = State; + /** + * @record + */ + function NavigationElement() { } + Layout.NavigationElement = NavigationElement; +})(Layout || (Layout = {})); + +export { LAYOUTS, LayoutAccountComponent, LayoutAddNavigationElement, LayoutApplicationComponent, LayoutEmptyComponent, LayoutState, ThemeBasicModule, LayoutApplicationComponent as ɵa, LayoutState as ɵb, LayoutAccountComponent as ɵc, LayoutEmptyComponent as ɵd, LayoutComponent as ɵe, ChangePasswordComponent as ɵf, ProfileComponent as ɵg, LayoutState as ɵh, LayoutAddNavigationElement as ɵi }; +//# sourceMappingURL=abp-ng.theme.basic.js.map diff --git a/npm/packs/ng/dist/theme-basic/fesm2015/abp-ng.theme.basic.js.map b/npm/packs/ng/dist/theme-basic/fesm2015/abp-ng.theme.basic.js.map new file mode 100644 index 0000000000..58e7c34f13 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/fesm2015/abp-ng.theme.basic.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.theme.basic.js","sources":["ng://@abp/ng.theme.basic/lib/components/change-password/change-password.component.ts","ng://@abp/ng.theme.basic/lib/components/layout-account/layout-account.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/layout-application/layout-application.component.ts","ng://@abp/ng.theme.basic/lib/components/layout-empty/layout-empty.component.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/components/profile/profile.component.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts"],"sourcesContent":["import { ProfileChangePassword } from '@abp/ng.core';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbActiveModal, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { comparePasswords, validatePassword } from '@ngx-validate/core';\nimport { Store } from '@ngxs/store';\nimport { from } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nconst { minLength, required } = Validators;\n\n@Component({\n selector: 'abp-change-password',\n templateUrl: './change-password.component.html',\n})\nexport class ChangePasswordComponent implements OnInit, OnChanges {\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n modalRef: NgbModalRef;\n\n constructor(private fb: FormBuilder, private modalService: NgbModal, private store: Store) {}\n\n ngOnInit(): void {\n this.form = this.fb.group(\n {\n password: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n newPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n repeatNewPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n },\n {\n validators: [comparePasswords(['newPassword', 'repeatNewPassword'])],\n },\n );\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.store\n .dispatch(\n new ProfileChangePassword({\n currentPassword: this.form.get('password').value,\n newPassword: this.form.get('newPassword').value,\n }),\n )\n .subscribe(() => this.modalRef.close());\n }\n\n openModal() {\n this.modalRef = this.modalService.open(this.modalContent);\n this.visibleChange.emit(true);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './layout-account.component.html',\n})\nexport class LayoutAccountComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n\n isCollapsed: boolean = false;\n}\n","import { Layout } from '../models/layout';\n\nexport class LayoutAddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { LayoutAddNavigationElement } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(LayoutAddNavigationElement)\n layoutAction({ getState, patchState }: StateContext, { payload = [] }: LayoutAddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n ConfigGetAppConfiguration,\n ConfigState,\n eLayoutType,\n SessionSetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport { Component, TrackByFunction, ViewChild, TemplateRef, AfterViewInit, OnDestroy } from '@angular/core';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { map, distinctUntilChanged, delay, filter } from 'rxjs/operators';\nimport snq from 'snq';\nimport { LayoutAddNavigationElement } from '../../actions';\nimport { LayoutState } from '../../states';\nimport { Layout } from '../../models/layout';\nimport compare from 'just-compare';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './layout-application.component.html',\n})\nexport class LayoutApplicationComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new LayoutAddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SessionSetLanguage(cultureName));\n this.store.dispatch(new ConfigGetAppConfiguration());\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new ConfigGetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class LayoutEmptyComponent {\n // required for dynamic component\n static type = eLayoutType.empty;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n})\nexport class LayoutComponent {\n isCollapsed: boolean = false;\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { Store, Select } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { take, withLatestFrom } from 'rxjs/operators';\nimport { ProfileGet, ProfileState, Profile, ProfileUpdate } from '@abp/ng.core';\n\nconst { maxLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-profile',\n templateUrl: './profile.component.html',\n})\nexport class ProfileComponent implements OnChanges {\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n @Select(ProfileState.getProfile)\n profile$: Observable;\n\n form: FormGroup;\n\n modalRef: NgbModalRef;\n\n constructor(private fb: FormBuilder, private modalService: NgbModal, private store: Store) {}\n\n buildForm() {\n this.store\n .dispatch(new ProfileGet())\n .pipe(\n withLatestFrom(this.profile$),\n take(1),\n )\n .subscribe(([, profile]) => {\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\n onSubmit() {\n if (this.form.invalid) return;\n\n this.store.dispatch(new ProfileUpdate(this.form.value)).subscribe(() => this.modalRef.close());\n }\n\n openModal() {\n this.buildForm();\n\n this.modalRef = this.modalService.open(this.modalContent);\n this.visibleChange.emit(true);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ChangePasswordComponent } from './components/change-password/change-password.component';\nimport { LayoutAccountComponent } from './components/layout-account/layout-account.component';\nimport { LayoutApplicationComponent } from './components/layout-application/layout-application.component';\nimport { LayoutEmptyComponent } from './components/layout-empty/layout-empty.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { ToastModule } from 'primeng/toast';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { LayoutState } from './states/layout.state';\n\nexport const LAYOUTS = [LayoutApplicationComponent, LayoutAccountComponent, LayoutEmptyComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent, ChangePasswordComponent, ProfileComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS],\n})\nexport class ThemeBasicModule {}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n"],"names":["tslib_1.__decorate","required"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/fesm5/abp-ng.theme.basic.js b/npm/packs/ng/dist/theme-basic/fesm5/abp-ng.theme.basic.js new file mode 100644 index 0000000000..c6fb1842d7 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/fesm5/abp-ng.theme.basic.js @@ -0,0 +1,712 @@ +import { __spread, __assign, __decorate, __metadata, __read } from 'tslib'; +import { ProfileChangePassword, SessionState, takeUntilDestroy, SessionSetLanguage, ConfigGetAppConfiguration, ConfigState, ProfileGet, ProfileUpdate, ProfileState, CoreModule } from '@abp/ng.core'; +import { Component, Input, Output, ViewChild, EventEmitter, TemplateRef, NgModule } from '@angular/core'; +import { NgbModal, NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { Validators, FormBuilder } from '@angular/forms'; +import { validatePassword, comparePasswords, NgxValidateCoreModule } from '@ngx-validate/core'; +import { Store, Action, Selector, State, Select, NgxsModule } from '@ngxs/store'; +import { from, Observable } from 'rxjs'; +import { take, map, filter, withLatestFrom } from 'rxjs/operators'; +import { Navigate, RouterState } from '@ngxs/router-plugin'; +import { OAuthService } from 'angular-oauth2-oidc'; +import snq from 'snq'; +import compare from 'just-compare'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { ToastModule } from 'primeng/toast'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var minLength = Validators.minLength, required = Validators.required; +var ChangePasswordComponent = /** @class */ (function () { + function ChangePasswordComponent(fb, modalService, store) { + this.fb = fb; + this.modalService = modalService; + this.store = store; + this.visibleChange = new EventEmitter(); + } + /** + * @return {?} + */ + ChangePasswordComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + this.form = this.fb.group({ + password: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + newPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + repeatNewPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + }, { + validators: [comparePasswords(['newPassword', 'repeatNewPassword'])], + }); + }; + /** + * @return {?} + */ + ChangePasswordComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.form.invalid) + return; + this.store + .dispatch(new ProfileChangePassword({ + currentPassword: this.form.get('password').value, + newPassword: this.form.get('newPassword').value, + })) + .subscribe((/** + * @return {?} + */ + function () { return _this.modalRef.close(); })); + }; + /** + * @return {?} + */ + ChangePasswordComponent.prototype.openModal = /** + * @return {?} + */ + function () { + var _this = this; + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + from(this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + function (data) { + _this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + function (reason) { + _this.setVisible(false); + })); + }; + /** + * @param {?} value + * @return {?} + */ + ChangePasswordComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + this.visible = value; + this.visibleChange.emit(value); + }; + /** + * @param {?} __0 + * @return {?} + */ + ChangePasswordComponent.prototype.ngOnChanges = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var visible = _a.visible; + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + }; + ChangePasswordComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-change-password', + template: "\n
    \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n" + }] } + ]; + /** @nocollapse */ + ChangePasswordComponent.ctorParameters = function () { return [ + { type: FormBuilder }, + { type: NgbModal }, + { type: Store } + ]; }; + ChangePasswordComponent.propDecorators = { + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + return ChangePasswordComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var LayoutAccountComponent = /** @class */ (function () { + function LayoutAccountComponent() { + this.isCollapsed = false; + } + // required for dynamic component + LayoutAccountComponent.type = "account" /* account */; + LayoutAccountComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-account', + template: "\n \n\n \n \n \n \n \n\n" + }] } + ]; + return LayoutAccountComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var LayoutAddNavigationElement = /** @class */ (function () { + function LayoutAddNavigationElement(payload) { + this.payload = payload; + } + LayoutAddNavigationElement.type = '[Layout] Add Navigation Element'; + return LayoutAddNavigationElement; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var LayoutState = /** @class */ (function () { + function LayoutState() { + } + /** + * @param {?} __0 + * @return {?} + */ + LayoutState.getNavigationElements = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var navigationElements = _a.navigationElements; + return navigationElements; + }; + /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + LayoutState.prototype.layoutAction = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var getState = _a.getState, patchState = _a.patchState; + var _c = _b.payload, payload = _c === void 0 ? [] : _c; + var navigationElements = getState().navigationElements; + if (!Array.isArray(payload)) { + payload = [payload]; + } + if (navigationElements.length) { + payload = snq((/** + * @return {?} + */ + function () { + return ((/** @type {?} */ (payload))).filter((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var name = _a.name; + return navigationElements.findIndex((/** + * @param {?} nav + * @return {?} + */ + function (nav) { return nav.name === name; })) < 0; + })); + }), []); + } + if (!payload.length) + return; + navigationElements = __spread(navigationElements, payload).map((/** + * @param {?} element + * @return {?} + */ + function (element) { return (__assign({}, element, { order: element.order || 99 })); })) + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + function (a, b) { return a.order - b.order; })); + return patchState({ + navigationElements: navigationElements, + }); + }; + __decorate([ + Action(LayoutAddNavigationElement), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, LayoutAddNavigationElement]), + __metadata("design:returntype", void 0) + ], LayoutState.prototype, "layoutAction", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Array) + ], LayoutState, "getNavigationElements", null); + LayoutState = __decorate([ + State({ + name: 'LayoutState', + defaults: (/** @type {?} */ ({ navigationElements: [] })), + }) + ], LayoutState); + return LayoutState; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var LayoutApplicationComponent = /** @class */ (function () { + function LayoutApplicationComponent(store, oauthService) { + this.store = store; + this.oauthService = oauthService; + this.isOpenChangePassword = false; + this.isOpenProfile = false; + this.rightPartElements = []; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + function (_, item) { return item.name; }); + this.trackElementByFn = (/** + * @param {?} _ + * @param {?} element + * @return {?} + */ + function (_, element) { return element; }); + } + Object.defineProperty(LayoutApplicationComponent.prototype, "visibleRoutes$", { + get: /** + * @return {?} + */ + function () { + return this.routes$.pipe(map((/** + * @param {?} routes + * @return {?} + */ + function (routes) { return getVisibleRoutes(routes); }))); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(LayoutApplicationComponent.prototype, "defaultLanguage$", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return this.languages$.pipe(map((/** + * @param {?} languages + * @return {?} + */ + function (languages) { return snq((/** + * @return {?} + */ + function () { return languages.find((/** + * @param {?} lang + * @return {?} + */ + function (lang) { return lang.cultureName === _this.selectedLangCulture; })).displayName; })); }), '')); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(LayoutApplicationComponent.prototype, "dropdownLanguages$", { + get: /** + * @return {?} + */ + function () { + var _this = this; + return this.languages$.pipe(map((/** + * @param {?} languages + * @return {?} + */ + function (languages) { return snq((/** + * @return {?} + */ + function () { return languages.filter((/** + * @param {?} lang + * @return {?} + */ + function (lang) { return lang.cultureName !== _this.selectedLangCulture; })); })); }), [])); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(LayoutApplicationComponent.prototype, "selectedLangCulture", { + get: /** + * @return {?} + */ + function () { + return this.store.selectSnapshot(SessionState.getLanguage); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + LayoutApplicationComponent.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var name = _a.name; + return name; + })); + if (navigations.indexOf('LanguageRef') < 0) { + this.store.dispatch(new LayoutAddNavigationElement([ + { element: this.languageRef, order: 4, name: 'LanguageRef' }, + { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' }, + ])); + } + this.navElements$ + .pipe(map((/** + * @param {?} elements + * @return {?} + */ + function (elements) { return elements.map((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var element = _a.element; + return element; + })); })), filter((/** + * @param {?} elements + * @return {?} + */ + function (elements) { return !compare(elements, _this.rightPartElements); })), takeUntilDestroy(this)) + .subscribe((/** + * @param {?} elements + * @return {?} + */ + function (elements) { + setTimeout((/** + * @return {?} + */ + function () { return (_this.rightPartElements = elements); }), 0); + })); + }; + /** + * @return {?} + */ + LayoutApplicationComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + /** + * @param {?} cultureName + * @return {?} + */ + LayoutApplicationComponent.prototype.onChangeLang = /** + * @param {?} cultureName + * @return {?} + */ + function (cultureName) { + this.store.dispatch(new SessionSetLanguage(cultureName)); + this.store.dispatch(new ConfigGetAppConfiguration()); + }; + /** + * @return {?} + */ + LayoutApplicationComponent.prototype.logout = /** + * @return {?} + */ + function () { + this.oauthService.logOut(); + this.store.dispatch(new Navigate(['/account/login'], null, { + state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url }, + })); + this.store.dispatch(new ConfigGetAppConfiguration()); + }; + // required for dynamic component + LayoutApplicationComponent.type = "application" /* application */; + LayoutApplicationComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-application', + template: "\n \n\n
      \n \n
    \n
    \n\n\n\n\n\n\n
  • \n \n {{ defaultLanguage$ | async }}\n \n
    \n {{ lang?.displayName }}\n
    \n
  • \n
    \n\n\n
  • \n \n {{ (currentUser$ | async)?.userName }}\n \n \n
  • \n
    \n" + }] } + ]; + /** @nocollapse */ + LayoutApplicationComponent.ctorParameters = function () { return [ + { type: Store }, + { type: OAuthService } + ]; }; + LayoutApplicationComponent.propDecorators = { + currentUserRef: [{ type: ViewChild, args: ['currentUser', { static: false, read: TemplateRef },] }], + languageRef: [{ type: ViewChild, args: ['language', { static: false, read: TemplateRef },] }] + }; + __decorate([ + Select(ConfigState.getOne('routes')), + __metadata("design:type", Observable) + ], LayoutApplicationComponent.prototype, "routes$", void 0); + __decorate([ + Select(ConfigState.getOne('currentUser')), + __metadata("design:type", Observable) + ], LayoutApplicationComponent.prototype, "currentUser$", void 0); + __decorate([ + Select(ConfigState.getDeep('localization.languages')), + __metadata("design:type", Observable) + ], LayoutApplicationComponent.prototype, "languages$", void 0); + __decorate([ + Select(LayoutState.getNavigationElements), + __metadata("design:type", Observable) + ], LayoutApplicationComponent.prototype, "navElements$", void 0); + return LayoutApplicationComponent; +}()); +/** + * @param {?} routes + * @return {?} + */ +function getVisibleRoutes(routes) { + return routes.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + if (val.invisible) + return acc; + if (val.children && val.children.length) { + val.children = getVisibleRoutes(val.children); + } + return __spread(acc, [val]); + }), []); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var LayoutEmptyComponent = /** @class */ (function () { + function LayoutEmptyComponent() { + } + // required for dynamic component + LayoutEmptyComponent.type = "empty" /* empty */; + LayoutEmptyComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-layout-empty', + template: "\n Layout-empty\n \n " + }] } + ]; + return LayoutEmptyComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var LayoutComponent = /** @class */ (function () { + function LayoutComponent() { + this.isCollapsed = false; + } + LayoutComponent.decorators = [ + { type: Component, args: [{ + selector: ' abp-layout', + template: "\n\n
    \n \n
    \n\n\n\n" + }] } + ]; + return LayoutComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var maxLength = Validators.maxLength, required$1 = Validators.required, email = Validators.email; +var ProfileComponent = /** @class */ (function () { + function ProfileComponent(fb, modalService, store) { + this.fb = fb; + this.modalService = modalService; + this.store = store; + this.visibleChange = new EventEmitter(); + } + /** + * @return {?} + */ + ProfileComponent.prototype.buildForm = /** + * @return {?} + */ + function () { + var _this = this; + this.store + .dispatch(new ProfileGet()) + .pipe(withLatestFrom(this.profile$), take(1)) + .subscribe((/** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var _b = __read(_a, 2), profile = _b[1]; + _this.form = _this.fb.group({ + userName: [profile.userName, [required$1, maxLength(256)]], + email: [profile.email, [required$1, email, maxLength(256)]], + name: [profile.name || '', [maxLength(64)]], + surname: [profile.surname || '', [maxLength(64)]], + phoneNumber: [profile.phoneNumber || '', [maxLength(16)]], + }); + })); + }; + /** + * @return {?} + */ + ProfileComponent.prototype.onSubmit = /** + * @return {?} + */ + function () { + var _this = this; + if (this.form.invalid) + return; + this.store.dispatch(new ProfileUpdate(this.form.value)).subscribe((/** + * @return {?} + */ + function () { return _this.modalRef.close(); })); + }; + /** + * @return {?} + */ + ProfileComponent.prototype.openModal = /** + * @return {?} + */ + function () { + var _this = this; + this.buildForm(); + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + from(this.modalRef.result) + .pipe(take(1)) + .subscribe((/** + * @param {?} data + * @return {?} + */ + function (data) { + _this.setVisible(false); + }), (/** + * @param {?} reason + * @return {?} + */ + function (reason) { + _this.setVisible(false); + })); + }; + /** + * @param {?} value + * @return {?} + */ + ProfileComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + this.visible = value; + this.visibleChange.emit(value); + }; + /** + * @param {?} __0 + * @return {?} + */ + ProfileComponent.prototype.ngOnChanges = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var visible = _a.visible; + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + }; + ProfileComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-profile', + template: "\n
    \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n" + }] } + ]; + /** @nocollapse */ + ProfileComponent.ctorParameters = function () { return [ + { type: FormBuilder }, + { type: NgbModal }, + { type: Store } + ]; }; + ProfileComponent.propDecorators = { + visible: [{ type: Input }], + visibleChange: [{ type: Output }], + modalContent: [{ type: ViewChild, args: ['modalContent', { static: false },] }] + }; + __decorate([ + Select(ProfileState.getProfile), + __metadata("design:type", Observable) + ], ProfileComponent.prototype, "profile$", void 0); + return ProfileComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** @type {?} */ +var LAYOUTS = [LayoutApplicationComponent, LayoutAccountComponent, LayoutEmptyComponent]; +var ThemeBasicModule = /** @class */ (function () { + function ThemeBasicModule() { + } + ThemeBasicModule.decorators = [ + { type: NgModule, args: [{ + declarations: __spread(LAYOUTS, [LayoutComponent, ChangePasswordComponent, ProfileComponent]), + imports: [ + CoreModule, + ThemeSharedModule, + NgbCollapseModule, + NgbDropdownModule, + ToastModule, + NgxValidateCoreModule, + NgxsModule.forFeature([LayoutState]), + ], + exports: __spread(LAYOUTS), + entryComponents: __spread(LAYOUTS), + },] } + ]; + return ThemeBasicModule; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var Layout; +(function (Layout) { + /** + * @record + */ + function State() { } + Layout.State = State; + /** + * @record + */ + function NavigationElement() { } + Layout.NavigationElement = NavigationElement; +})(Layout || (Layout = {})); + +export { LAYOUTS, LayoutAccountComponent, LayoutAddNavigationElement, LayoutApplicationComponent, LayoutEmptyComponent, LayoutState, ThemeBasicModule, LayoutApplicationComponent as ɵa, LayoutState as ɵb, LayoutAccountComponent as ɵc, LayoutEmptyComponent as ɵd, LayoutComponent as ɵe, ChangePasswordComponent as ɵf, ProfileComponent as ɵg, LayoutState as ɵh, LayoutAddNavigationElement as ɵi }; +//# sourceMappingURL=abp-ng.theme.basic.js.map diff --git a/npm/packs/ng/dist/theme-basic/fesm5/abp-ng.theme.basic.js.map b/npm/packs/ng/dist/theme-basic/fesm5/abp-ng.theme.basic.js.map new file mode 100644 index 0000000000..e044e0f826 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/fesm5/abp-ng.theme.basic.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.theme.basic.js","sources":["ng://@abp/ng.theme.basic/lib/components/change-password/change-password.component.ts","ng://@abp/ng.theme.basic/lib/components/layout-account/layout-account.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/layout-application/layout-application.component.ts","ng://@abp/ng.theme.basic/lib/components/layout-empty/layout-empty.component.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/components/profile/profile.component.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts"],"sourcesContent":["import { ProfileChangePassword } from '@abp/ng.core';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbActiveModal, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { comparePasswords, validatePassword } from '@ngx-validate/core';\nimport { Store } from '@ngxs/store';\nimport { from } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nconst { minLength, required } = Validators;\n\n@Component({\n selector: 'abp-change-password',\n templateUrl: './change-password.component.html',\n})\nexport class ChangePasswordComponent implements OnInit, OnChanges {\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n modalRef: NgbModalRef;\n\n constructor(private fb: FormBuilder, private modalService: NgbModal, private store: Store) {}\n\n ngOnInit(): void {\n this.form = this.fb.group(\n {\n password: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n newPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n repeatNewPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]],\n },\n {\n validators: [comparePasswords(['newPassword', 'repeatNewPassword'])],\n },\n );\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.store\n .dispatch(\n new ProfileChangePassword({\n currentPassword: this.form.get('password').value,\n newPassword: this.form.get('newPassword').value,\n }),\n )\n .subscribe(() => this.modalRef.close());\n }\n\n openModal() {\n this.modalRef = this.modalService.open(this.modalContent);\n this.visibleChange.emit(true);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './layout-account.component.html',\n})\nexport class LayoutAccountComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n\n isCollapsed: boolean = false;\n}\n","import { Layout } from '../models/layout';\n\nexport class LayoutAddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { LayoutAddNavigationElement } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(LayoutAddNavigationElement)\n layoutAction({ getState, patchState }: StateContext, { payload = [] }: LayoutAddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n ConfigGetAppConfiguration,\n ConfigState,\n eLayoutType,\n SessionSetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport { Component, TrackByFunction, ViewChild, TemplateRef, AfterViewInit, OnDestroy } from '@angular/core';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { map, distinctUntilChanged, delay, filter } from 'rxjs/operators';\nimport snq from 'snq';\nimport { LayoutAddNavigationElement } from '../../actions';\nimport { LayoutState } from '../../states';\nimport { Layout } from '../../models/layout';\nimport compare from 'just-compare';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './layout-application.component.html',\n})\nexport class LayoutApplicationComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new LayoutAddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SessionSetLanguage(cultureName));\n this.store.dispatch(new ConfigGetAppConfiguration());\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new ConfigGetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class LayoutEmptyComponent {\n // required for dynamic component\n static type = eLayoutType.empty;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n})\nexport class LayoutComponent {\n isCollapsed: boolean = false;\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { Store, Select } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { take, withLatestFrom } from 'rxjs/operators';\nimport { ProfileGet, ProfileState, Profile, ProfileUpdate } from '@abp/ng.core';\n\nconst { maxLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-profile',\n templateUrl: './profile.component.html',\n})\nexport class ProfileComponent implements OnChanges {\n @Input()\n visible: boolean;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n @Select(ProfileState.getProfile)\n profile$: Observable;\n\n form: FormGroup;\n\n modalRef: NgbModalRef;\n\n constructor(private fb: FormBuilder, private modalService: NgbModal, private store: Store) {}\n\n buildForm() {\n this.store\n .dispatch(new ProfileGet())\n .pipe(\n withLatestFrom(this.profile$),\n take(1),\n )\n .subscribe(([, profile]) => {\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\n onSubmit() {\n if (this.form.invalid) return;\n\n this.store.dispatch(new ProfileUpdate(this.form.value)).subscribe(() => this.modalRef.close());\n }\n\n openModal() {\n this.buildForm();\n\n this.modalRef = this.modalService.open(this.modalContent);\n this.visibleChange.emit(true);\n\n from(this.modalRef.result)\n .pipe(take(1))\n .subscribe(\n data => {\n this.setVisible(false);\n },\n reason => {\n this.setVisible(false);\n },\n );\n }\n\n setVisible(value: boolean) {\n this.visible = value;\n this.visibleChange.emit(value);\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.modalService.hasOpenModals()) {\n this.modalRef.close();\n }\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ChangePasswordComponent } from './components/change-password/change-password.component';\nimport { LayoutAccountComponent } from './components/layout-account/layout-account.component';\nimport { LayoutApplicationComponent } from './components/layout-application/layout-application.component';\nimport { LayoutEmptyComponent } from './components/layout-empty/layout-empty.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { ToastModule } from 'primeng/toast';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { LayoutState } from './states/layout.state';\n\nexport const LAYOUTS = [LayoutApplicationComponent, LayoutAccountComponent, LayoutEmptyComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent, ChangePasswordComponent, ProfileComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS],\n})\nexport class ThemeBasicModule {}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n"],"names":["tslib_1.__spread","tslib_1.__decorate","required"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,AAmBQ,IAAA,gCAAS,EAAE,8BAAQ;AAE3B;IAkBE,iCAAoB,EAAe,EAAU,YAAsB,EAAU,KAAY;QAArE,OAAE,GAAF,EAAE,CAAa;QAAU,iBAAY,GAAZ,YAAY,CAAU;QAAU,UAAK,GAAL,KAAK,CAAO;QATzF,kBAAa,GAAG,IAAI,YAAY,EAAW,CAAC;KASiD;;;;IAE7F,0CAAQ;;;IAAR;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CACvB;YACE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YACrG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YACxG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;SAC/G,EACD;YACE,UAAU,EAAE,CAAC,gBAAgB,CAAC,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC;SACrE,CACF,CAAC;KACH;;;;IAED,0CAAQ;;;IAAR;QAAA,iBAWC;QAVC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE9B,IAAI,CAAC,KAAK;aACP,QAAQ,CACP,IAAI,qBAAqB,CAAC;YACxB,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;YAChD,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK;SAChD,CAAC,CACH;aACA,SAAS;;;QAAC,cAAM,OAAA,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAA,EAAC,CAAC;KAC3C;;;;IAED,2CAAS;;;IAAT;QAAA,iBAcC;QAbC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;aACvB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS;;;;QACR,UAAA,IAAI;YACF,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxB;;;;QACD,UAAA,MAAM;YACJ,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxB,EACF,CAAC;KACL;;;;;IAED,4CAAU;;;;IAAV,UAAW,KAAc;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;;;;;IAED,6CAAW;;;;IAAX,UAAY,EAA0B;YAAxB,oBAAO;QACnB,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,OAAO,CAAC,YAAY,EAAE;YACxB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;aAAM,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE;YAC9E,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACvB;KACF;;gBA3EF,SAAS,SAAC;oBACT,QAAQ,EAAE,qBAAqB;oBAC/B,ggEAA+C;iBAChD;;;;gBAZQ,WAAW;gBACK,QAAQ;gBAExB,KAAK;;;0BAWX,KAAK;gCAGL,MAAM;+BAGN,SAAS,SAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;IAiE9C,8BAAC;CA5ED;;;;;;ACrBA;IAGA;QAQE,gBAAW,GAAY,KAAK,CAAC;KAC9B;;IAHQ,2BAAI,2BAAuB;;gBANnC,SAAS,SAAC;oBACT,QAAQ,EAAE,oBAAoB;oBAC9B,0xBAA8C;iBAC/C;;IAMD,6BAAC;CATD;;;;;;ACDA;IAEE,oCAAmB,OAA8D;QAA9D,YAAO,GAAP,OAAO,CAAuD;KAAI;IADrE,+BAAI,GAAG,iCAAiC,CAAC;IAE3D,iCAAC;CAHD;;;;;;;;KC0CC;;;;;IAhCQ,iCAAqB;;;;IAA5B,UAA6B,EAAoC;YAAlC,0CAAkB;QAC/C,OAAO,kBAAkB,CAAC;KAC3B;;;;;;IAGD,kCAAY;;;;;IAAZ,UAAa,EAAoD,EAAE,EAA4C;YAAhG,sBAAQ,EAAE,0BAAU;YAAkC,eAAY,EAAZ,iCAAY;QACzE,IAAA,kDAAkB;QAExB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;SACrB;QAED,IAAI,kBAAkB,CAAC,MAAM,EAAE;YAC7B,OAAO,GAAG,GAAG;;;YACX;gBACE,OAAA,oBAAC,OAAO,IAAgC,MAAM;;;;gBAC5C,UAAC,EAAQ;wBAAN,cAAI;oBAAO,OAAA,kBAAkB,CAAC,SAAS;;;;oBAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,KAAK,IAAI,GAAA,EAAC,GAAG,CAAC;iBAAA,EACzE;aAAA,GACH,EAAE,CACH,CAAC;SACH;QAED,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;QAE5B,kBAAkB,GAAGA,SAAI,kBAAkB,EAAK,OAAO,EACpD,GAAG;;;;QAAC,UAAA,OAAO,IAAI,qBAAM,OAAO,IAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,OAAG,EAAC;aAC5D,IAAI;;;;;QAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAA,EAAC,CAAC;QAErC,OAAO,UAAU,CAAC;YAChB,kBAAkB,oBAAA;SACnB,CAAC,CAAC;KACJ;IA1BDC;QADC,MAAM,CAAC,0BAA0B,CAAC;;iDACkD,0BAA0B;;mDA0B9G;IA/BDA;QADC,QAAQ,EAAE;;;;kDAGV;IAJU,WAAW;QAJvB,KAAK,CAAe;YACnB,IAAI,EAAE,aAAa;YACnB,QAAQ,qBAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAgB;SACrD,CAAC;OACW,WAAW,CAkCvB;IAAD,kBAAC;CAAA;;;;;;;ICqCC,oCAAoB,KAAY,EAAU,YAA0B;QAAhD,UAAK,GAAL,KAAK,CAAO;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAjCpE,yBAAoB,GAAY,KAAK,CAAC;QAEtC,kBAAa,GAAY,KAAK,CAAC;QAyB/B,sBAAiB,GAAuB,EAAE,CAAC;QAE3C,cAAS;;;;;QAAmC,UAAC,CAAC,EAAE,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,GAAA,EAAC;QAEnE,qBAAgB;;;;;QAAmC,UAAC,CAAC,EAAE,OAAO,IAAK,OAAA,OAAO,GAAA,EAAC;KAEH;IA7BxE,sBAAI,sDAAc;;;;QAAlB;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;;;;YAAC,UAAA,MAAM,IAAI,OAAA,gBAAgB,CAAC,MAAM,CAAC,GAAA,EAAC,CAAC,CAAC;SACnE;;;OAAA;IAED,sBAAI,wDAAgB;;;;QAApB;YAAA,iBAOC;YANC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,GAAG;;;;YACD,UAAA,SAAS,IAAI,OAAA,GAAG;;;YAAC,cAAM,OAAA,SAAS,CAAC,IAAI;;;;YAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,WAAW,KAAK,KAAI,CAAC,mBAAmB,GAAA,EAAC,CAAC,WAAW,GAAA,EAAC,GAAA,GACzG,EAAE,CACH,CACF,CAAC;SACH;;;OAAA;IAED,sBAAI,0DAAkB;;;;QAAtB;YAAA,iBAIC;YAHC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,GAAG;;;;YAAC,UAAA,SAAS,IAAI,OAAA,GAAG;;;YAAC,cAAM,OAAA,SAAS,CAAC,MAAM;;;;YAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,WAAW,KAAK,KAAI,CAAC,mBAAmB,GAAA,EAAC,GAAA,EAAC,GAAA,GAAE,EAAE,CAAC,CACzG,CAAC;SACH;;;OAAA;IAED,sBAAI,2DAAmB;;;;QAAvB;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;SAC5D;;;OAAA;;;;IAUD,oDAAe;;;IAAf;QAAA,iBAqBC;;YApBO,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,GAAG;;;;QAAC,UAAC,EAAQ;gBAAN,cAAI;YAAO,OAAA,IAAI;SAAA,EAAC;QAExG,IAAI,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,0BAA0B,CAAC;gBAC7B,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;gBAC5D,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE;aACnE,CAAC,CACH,CAAC;SACH;QAED,IAAI,CAAC,YAAY;aACd,IAAI,CACH,GAAG;;;;QAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,GAAG;;;;QAAC,UAAC,EAAW;gBAAT,oBAAO;YAAO,OAAA,OAAO;SAAA,EAAC,GAAA,EAAC,EACvD,MAAM;;;;QAAC,UAAA,QAAQ,IAAI,OAAA,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAI,CAAC,iBAAiB,CAAC,GAAA,EAAC,EAC9D,gBAAgB,CAAC,IAAI,CAAC,CACvB;aACA,SAAS;;;;QAAC,UAAA,QAAQ;YACjB,UAAU;;;YAAC,cAAM,QAAC,KAAI,CAAC,iBAAiB,GAAG,QAAQ,IAAC,GAAE,CAAC,CAAC,CAAC;SAC1D,EAAC,CAAC;KACN;;;;IAED,gDAAW;;;IAAX,eAAgB;;;;;IAEhB,iDAAY;;;;IAAZ,UAAa,WAAmB;QAC9B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;KACtD;;;;IAED,2CAAM;;;IAAN;QACE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE;YACrC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;SACzE,CAAC,CACH,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;KACtD;;IA7FM,+BAAI,mCAA2B;;gBANvC,SAAS,SAAC;oBACT,QAAQ,EAAE,wBAAwB;oBAClC,g5HAAkD;iBACnD;;;;gBAbgB,KAAK;gBACb,YAAY;;;iCA6BlB,SAAS,SAAC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE;8BAG7D,SAAS,SAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE;;IAd3DA;QADC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;kCAC5B,UAAU;+DAAkB;IAGrCA;QADC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;kCAC5B,UAAU;oEAAuC;IAG/DA;QADC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;kCAC1C,UAAU;kEAAsC;IAG5DA;QADC,MAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC;kCAC5B,UAAU;oEAA6B;IAkFvD,iCAAC;CApGD,IAoGC;;;;;AAED,SAAS,gBAAgB,CAAC,MAAuB;IAC/C,OAAO,MAAM,CAAC,MAAM;;;;;IAAC,UAAC,GAAG,EAAE,GAAG;QAC5B,IAAI,GAAG,CAAC,SAAS;YAAE,OAAO,GAAG,CAAC;QAE9B,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;YACvC,GAAG,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC/C;QAED,gBAAW,GAAG,GAAE,GAAG,GAAE;KACtB,GAAE,EAAE,CAAC,CAAC;CACR;;;;;;ACtID;IAGA;KAUC;;IADQ,yBAAI,uBAAqB;;gBATjC,SAAS,SAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,6DAGT;iBACF;;IAID,2BAAC;CAVD;;;;;;ACHA;IAEA;QAKE,gBAAW,GAAY,KAAK,CAAC;KAC9B;;gBANA,SAAS,SAAC;oBACT,QAAQ,EAAE,aAAa;oBACvB,oqBAAsC;iBACvC;;IAGD,sBAAC;CAND;;;;;;ACgBQ,IAAA,gCAAS,EAAEC,gCAAQ,EAAE,wBAAK;AAElC;IAqBE,0BAAoB,EAAe,EAAU,YAAsB,EAAU,KAAY;QAArE,OAAE,GAAF,EAAE,CAAa;QAAU,iBAAY,GAAZ,YAAY,CAAU;QAAU,UAAK,GAAL,KAAK,CAAO;QAZzF,kBAAa,GAAG,IAAI,YAAY,EAAW,CAAC;KAYiD;;;;IAE7F,oCAAS;;;IAAT;QAAA,iBAgBC;QAfC,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC;aAC1B,IAAI,CACH,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC7B,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS;;;;QAAC,UAAC,EAAW;gBAAX,kBAAW,EAAR,eAAO;YACpB,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACxB,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAACA,UAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxD,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAACA,UAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzD,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3C,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjD,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;aAC1D,CAAC,CAAC;SACJ,EAAC,CAAC;KACN;;;;IAED,mCAAQ;;;IAAR;QAAA,iBAIC;QAHC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE9B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;;;QAAC,cAAM,OAAA,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAA,EAAC,CAAC;KAChG;;;;IAED,oCAAS;;;IAAT;QAAA,iBAgBC;QAfC,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;aACvB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS;;;;QACR,UAAA,IAAI;YACF,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxB;;;;QACD,UAAA,MAAM;YACJ,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxB,EACF,CAAC;KACL;;;;;IAED,qCAAU;;;;IAAV,UAAW,KAAc;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;;;;;IAED,sCAAW;;;;IAAX,UAAY,EAA0B;YAAxB,oBAAO;QACnB,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,OAAO,CAAC,YAAY,EAAE;YACxB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;aAAM,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE;YAC9E,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACvB;KACF;;gBA9EF,SAAS,SAAC;oBACT,QAAQ,EAAE,aAAa;oBACvB,w1EAAuC;iBACxC;;;;gBAZQ,WAAW;gBACX,QAAQ;gBACR,KAAK;;;0BAYX,KAAK;gCAGL,MAAM;+BAGN,SAAS,SAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;IAI5CD;QADC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;kCACtB,UAAU;sDAAmB;IAgEzC,uBAAC;CA/ED;;;;;;;ACLA,IAAa,OAAO,GAAG,CAAC,0BAA0B,EAAE,sBAAsB,EAAE,oBAAoB,CAAC;AAEjG;IAAA;KAcgC;;gBAd/B,QAAQ,SAAC;oBACR,YAAY,WAAM,OAAO,GAAE,eAAe,EAAE,uBAAuB,EAAE,gBAAgB,EAAC;oBACtF,OAAO,EAAE;wBACP,UAAU;wBACV,iBAAiB;wBACjB,iBAAiB;wBACjB,iBAAiB;wBACjB,WAAW;wBACX,qBAAqB;wBACrB,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;qBACrC;oBACD,OAAO,WAAM,OAAO,CAAC;oBACrB,eAAe,WAAM,OAAO,CAAC;iBAC9B;;IAC8B,uBAAC;CAdhC;;;;;;ACfA,IAAiB,MAAM,CAUtB;AAVD,WAAiB,MAAM;;;;IACrB,oBAEC;;;;;IAED,gCAIC;;AACH,CAAC,EAVgB,MAAM,KAAN,MAAM,QAUtB;;;;"} \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-basic/lib/actions/index.d.ts b/npm/packs/ng/dist/theme-basic/lib/actions/index.d.ts new file mode 100644 index 0000000000..2e29080de8 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/actions/index.d.ts @@ -0,0 +1 @@ +export * from './layout.actions'; diff --git a/npm/packs/ng/dist/theme-basic/lib/actions/layout.actions.d.ts b/npm/packs/ng/dist/theme-basic/lib/actions/layout.actions.d.ts new file mode 100644 index 0000000000..b82b5a6985 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/actions/layout.actions.d.ts @@ -0,0 +1,6 @@ +import { Layout } from '../models/layout'; +export declare class LayoutAddNavigationElement { + payload: Layout.NavigationElement | Layout.NavigationElement[]; + static readonly type = "[Layout] Add Navigation Element"; + constructor(payload: Layout.NavigationElement | Layout.NavigationElement[]); +} diff --git a/npm/packs/ng/dist/theme-basic/lib/components/change-password/change-password.component.d.ts b/npm/packs/ng/dist/theme-basic/lib/components/change-password/change-password.component.d.ts new file mode 100644 index 0000000000..e33ba3f837 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/components/change-password/change-password.component.d.ts @@ -0,0 +1,20 @@ +import { EventEmitter, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; +import { Store } from '@ngxs/store'; +export declare class ChangePasswordComponent implements OnInit, OnChanges { + private fb; + private modalService; + private store; + visible: boolean; + visibleChange: EventEmitter; + modalContent: TemplateRef; + form: FormGroup; + modalRef: NgbModalRef; + constructor(fb: FormBuilder, modalService: NgbModal, store: Store); + ngOnInit(): void; + onSubmit(): void; + openModal(): void; + setVisible(value: boolean): void; + ngOnChanges({ visible }: SimpleChanges): void; +} diff --git a/npm/packs/ng/dist/theme-basic/lib/components/index.d.ts b/npm/packs/ng/dist/theme-basic/lib/components/index.d.ts new file mode 100644 index 0000000000..39d04d163d --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/components/index.d.ts @@ -0,0 +1,3 @@ +export * from './layout-account/layout-account.component'; +export * from './layout-application/layout-application.component'; +export * from './layout-empty/layout-empty.component'; diff --git a/npm/packs/ng/dist/theme-basic/lib/components/layout-account/layout-account.component.d.ts b/npm/packs/ng/dist/theme-basic/lib/components/layout-account/layout-account.component.d.ts new file mode 100644 index 0000000000..544a175628 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/components/layout-account/layout-account.component.d.ts @@ -0,0 +1,5 @@ +import { eLayoutType } from '@abp/ng.core'; +export declare class LayoutAccountComponent { + static type: eLayoutType; + isCollapsed: boolean; +} diff --git a/npm/packs/ng/dist/theme-basic/lib/components/layout-application/layout-application.component.d.ts b/npm/packs/ng/dist/theme-basic/lib/components/layout-application/layout-application.component.d.ts new file mode 100644 index 0000000000..363b83e371 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/components/layout-application/layout-application.component.d.ts @@ -0,0 +1,31 @@ +import { ABP, ApplicationConfiguration, eLayoutType } from '@abp/ng.core'; +import { TrackByFunction, TemplateRef, AfterViewInit, OnDestroy } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Observable } from 'rxjs'; +import { Layout } from '../../models/layout'; +export declare class LayoutApplicationComponent implements AfterViewInit, OnDestroy { + private store; + private oauthService; + static type: eLayoutType; + routes$: Observable; + currentUser$: Observable; + languages$: Observable; + navElements$: Observable; + currentUserRef: TemplateRef; + languageRef: TemplateRef; + isOpenChangePassword: boolean; + isOpenProfile: boolean; + readonly visibleRoutes$: Observable; + readonly defaultLanguage$: Observable; + readonly dropdownLanguages$: Observable; + readonly selectedLangCulture: string; + rightPartElements: TemplateRef[]; + trackByFn: TrackByFunction; + trackElementByFn: TrackByFunction; + constructor(store: Store, oauthService: OAuthService); + ngAfterViewInit(): void; + ngOnDestroy(): void; + onChangeLang(cultureName: string): void; + logout(): void; +} diff --git a/npm/packs/ng/dist/theme-basic/lib/components/layout-empty/layout-empty.component.d.ts b/npm/packs/ng/dist/theme-basic/lib/components/layout-empty/layout-empty.component.d.ts new file mode 100644 index 0000000000..62a0e80586 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/components/layout-empty/layout-empty.component.d.ts @@ -0,0 +1,4 @@ +import { eLayoutType } from '@abp/ng.core'; +export declare class LayoutEmptyComponent { + static type: eLayoutType; +} diff --git a/npm/packs/ng/dist/theme-basic/lib/components/layout/layout.component.d.ts b/npm/packs/ng/dist/theme-basic/lib/components/layout/layout.component.d.ts new file mode 100644 index 0000000000..c0f7a3dd1e --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/components/layout/layout.component.d.ts @@ -0,0 +1,3 @@ +export declare class LayoutComponent { + isCollapsed: boolean; +} diff --git a/npm/packs/ng/dist/theme-basic/lib/components/profile/profile.component.d.ts b/npm/packs/ng/dist/theme-basic/lib/components/profile/profile.component.d.ts new file mode 100644 index 0000000000..771bbd12eb --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/components/profile/profile.component.d.ts @@ -0,0 +1,23 @@ +import { EventEmitter, OnChanges, SimpleChanges, TemplateRef } from '@angular/core'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; +import { Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { Profile } from '@abp/ng.core'; +export declare class ProfileComponent implements OnChanges { + private fb; + private modalService; + private store; + visible: boolean; + visibleChange: EventEmitter; + modalContent: TemplateRef; + profile$: Observable; + form: FormGroup; + modalRef: NgbModalRef; + constructor(fb: FormBuilder, modalService: NgbModal, store: Store); + buildForm(): void; + onSubmit(): void; + openModal(): void; + setVisible(value: boolean): void; + ngOnChanges({ visible }: SimpleChanges): void; +} diff --git a/npm/packs/ng/dist/theme-basic/lib/models/index.d.ts b/npm/packs/ng/dist/theme-basic/lib/models/index.d.ts new file mode 100644 index 0000000000..5d15fe1b3c --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/models/index.d.ts @@ -0,0 +1 @@ +export * from './layout'; diff --git a/npm/packs/ng/dist/theme-basic/lib/models/layout.d.ts b/npm/packs/ng/dist/theme-basic/lib/models/layout.d.ts new file mode 100644 index 0000000000..f172d9682f --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/models/layout.d.ts @@ -0,0 +1,11 @@ +import { TemplateRef } from '@angular/core'; +export declare namespace Layout { + interface State { + navigationElements: NavigationElement[]; + } + interface NavigationElement { + name: string; + element: TemplateRef; + order?: number; + } +} diff --git a/npm/packs/ng/dist/theme-basic/lib/states/index.d.ts b/npm/packs/ng/dist/theme-basic/lib/states/index.d.ts new file mode 100644 index 0000000000..71bff26b8b --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/states/index.d.ts @@ -0,0 +1 @@ +export * from "./layout.state"; diff --git a/npm/packs/ng/dist/theme-basic/lib/states/layout.state.d.ts b/npm/packs/ng/dist/theme-basic/lib/states/layout.state.d.ts new file mode 100644 index 0000000000..a6578cda44 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/states/layout.state.d.ts @@ -0,0 +1,7 @@ +import { StateContext } from '@ngxs/store'; +import { LayoutAddNavigationElement } from '../actions/layout.actions'; +import { Layout } from '../models/layout'; +export declare class LayoutState { + static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[]; + layoutAction({ getState, patchState }: StateContext, { payload }: LayoutAddNavigationElement): Layout.State; +} diff --git a/npm/packs/ng/dist/theme-basic/lib/theme-basic.module.d.ts b/npm/packs/ng/dist/theme-basic/lib/theme-basic.module.d.ts new file mode 100644 index 0000000000..84e9c65a01 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/lib/theme-basic.module.d.ts @@ -0,0 +1,5 @@ +import { LayoutApplicationComponent } from './components/layout-application/layout-application.component'; +import { LayoutEmptyComponent } from './components/layout-empty/layout-empty.component'; +export declare const LAYOUTS: (typeof LayoutApplicationComponent | typeof LayoutEmptyComponent)[]; +export declare class ThemeBasicModule { +} diff --git a/npm/packs/ng/dist/theme-basic/package.json b/npm/packs/ng/dist/theme-basic/package.json new file mode 100644 index 0000000000..5acc471322 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/package.json @@ -0,0 +1,18 @@ +{ + "name": "@abp/ng.theme.basic", + "version": "0.5.0", + "dependencies": { + "@abp/ng.theme.shared": "^0.5.0", + "tslib": "^1.9.0" + }, + "main": "bundles/abp-ng.theme.basic.umd.js", + "module": "fesm5/abp-ng.theme.basic.js", + "es2015": "fesm2015/abp-ng.theme.basic.js", + "esm5": "esm5/abp-ng.theme.basic.js", + "esm2015": "esm2015/abp-ng.theme.basic.js", + "fesm5": "fesm5/abp-ng.theme.basic.js", + "fesm2015": "fesm2015/abp-ng.theme.basic.js", + "typings": "abp-ng.theme.basic.d.ts", + "metadata": "abp-ng.theme.basic.metadata.json", + "sideEffects": false +} diff --git a/npm/packs/ng/dist/theme-basic/public-api.d.ts b/npm/packs/ng/dist/theme-basic/public-api.d.ts new file mode 100644 index 0000000000..eb08fe58c4 --- /dev/null +++ b/npm/packs/ng/dist/theme-basic/public-api.d.ts @@ -0,0 +1,5 @@ +export * from './lib/theme-basic.module'; +export * from './lib/actions'; +export * from './lib/components'; +export * from './lib/models'; +export * from './lib/states'; diff --git a/npm/packs/ng/dist/theme-shared/README.md b/npm/packs/ng/dist/theme-shared/README.md new file mode 100644 index 0000000000..0e215e6579 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/README.md @@ -0,0 +1 @@ +

    @abp/ng.theme.shared

    diff --git a/npm/packs/ng/dist/theme-shared/abp-ng.theme.shared.d.ts b/npm/packs/ng/dist/theme-shared/abp-ng.theme.shared.d.ts new file mode 100644 index 0000000000..d25130fe20 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/abp-ng.theme.shared.d.ts @@ -0,0 +1,10 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './public-api'; +export { AbstractToasterClass as ɵc } from './lib/abstracts/toaster'; +export { ConfirmationComponent as ɵa } from './lib/components/confirmation/confirmation.component'; +export { ModalComponent as ɵe } from './lib/components/modal/modal.component'; +export { ToastComponent as ɵd } from './lib/components/toast/toast.component'; +export { ErrorHandler as ɵf } from './lib/handlers/error.handler'; +export { ConfirmationService as ɵb } from './lib/services/confirmation.service'; diff --git a/npm/packs/ng/dist/theme-shared/abp-ng.theme.shared.metadata.json b/npm/packs/ng/dist/theme-shared/abp-ng.theme.shared.metadata.json new file mode 100644 index 0000000000..cf70320a1b --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/abp-ng.theme.shared.metadata.json @@ -0,0 +1 @@ +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/confirmation.service"},{"from":"./lib/toaster.service"},{"from":"./lib/modal/modal.component"}],"metadata":{"appendScript":{"__symbolic":"function"},"ThemeSharedModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":32,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":34,"character":4},{"__symbolic":"reference","module":"primeng/toast","name":"ToastModule","line":35,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbModalModule","line":36,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":37,"character":4},"member":"forRoot"},"arguments":[{"targetSelector":".form-group"}]}],"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}],"exports":[{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbModalModule","line":42,"character":12},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"ThemeSharedModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":50,"character":19},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":52,"character":17},{"__symbolic":"reference","name":"ɵf"}],"useFactory":{"__symbolic":"reference","name":"appendScript"}},{"provide":{"__symbolic":"reference","module":"primeng/components/common/messageservice","name":"MessageService","line":55,"character":19},"useClass":{"__symbolic":"reference","module":"primeng/components/common/messageservice","name":"MessageService","line":55,"character":45}}]}}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"abp-confirmation","template":"\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"close":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵc"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{},"statics":{"ngInjectableDef":{}}},"ɵc":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"primeng/components/common/messageservice","name":"MessageService","line":11,"character":40}]}],"info":[{"__symbolic":"method"}],"success":[{"__symbolic":"method"}],"warn":[{"__symbolic":"method"}],"error":[{"__symbolic":"method"}],"show":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"abp-toast","template":"\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n "}]}],"members":{}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":19,"character":1},"arguments":[{"selector":"abp-modal","template":"\n \n
    \n
    \n \n\n \n
    \n
    \n \n\n
    \n \n
    \n
    \n
    \n \n\n \n\n"}]}],"members":{"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"centered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"modalClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":54,"character":3}}]}],"abpHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":56,"character":3},"arguments":["abpHeader",{"static":false}]}]}],"abpBody":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":58,"character":3},"arguments":["abpBody",{"static":false}]}]}],"abpFooter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":60,"character":3},"arguments":["abpFooter",{"static":false}]}]}],"abpClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":62,"character":3},"arguments":["abpClose",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":62,"character":51}}]}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":64,"character":3},"arguments":["abpModalContent",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":74,"character":32},{"__symbolic":"reference","name":"ɵb"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"setVisible":[{"__symbolic":"method"}],"listen":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":31,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Actions","line":33,"character":31},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":33,"character":55},{"__symbolic":"reference","name":"ɵb"}]}],"showError":[{"__symbolic":"method"}],"navigateToLogin":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}}},"origins":{"appendScript":"./lib/theme-shared.module","ThemeSharedModule":"./lib/theme-shared.module","ɵa":"./lib/components/confirmation/confirmation.component","ɵb":"./lib/services/confirmation.service","ɵc":"./lib/abstracts/toaster","ɵd":"./lib/components/toast/toast.component","ɵe":"./lib/components/modal/modal.component","ɵf":"./lib/handlers/error.handler"},"importAs":"@abp/ng.theme.shared"} \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/bundles/abp-ng.theme.shared.umd.js b/npm/packs/ng/dist/theme-shared/bundles/abp-ng.theme.shared.umd.js new file mode 100644 index 0000000000..0fc1c1a88b --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/bundles/abp-ng.theme.shared.umd.js @@ -0,0 +1,745 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@angular/core'), require('@ng-bootstrap/ng-bootstrap'), require('@ngx-validate/core'), require('primeng/components/common/messageservice'), require('primeng/toast'), require('rxjs'), require('rxjs/operators'), require('@ngxs/router-plugin'), require('@ngxs/store')) : + typeof define === 'function' && define.amd ? define('@abp/ng.theme.shared', ['exports', '@abp/ng.core', '@angular/core', '@ng-bootstrap/ng-bootstrap', '@ngx-validate/core', 'primeng/components/common/messageservice', 'primeng/toast', 'rxjs', 'rxjs/operators', '@ngxs/router-plugin', '@ngxs/store'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.theme = global.abp.ng.theme || {}, global.abp.ng.theme.shared = {}), global.ng_core, global.ng.core, global.ngBootstrap, global.core$1, global.messageservice, global.toast, global.rxjs, global.rxjs.operators, global.routerPlugin, global.store)); +}(this, function (exports, ng_core, core, ngBootstrap, core$1, messageservice, toast, rxjs, operators, routerPlugin, store) { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + /* global Reflect, Promise */ + + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + + function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + } + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; + } + + function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @template T + */ + var /** + * @template T + */ + AbstractToasterClass = /** @class */ (function () { + function AbstractToasterClass(messageService) { + this.messageService = messageService; + this.key = 'abpToast'; + this.sticky = false; + } + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.info = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'info', options); + }; + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.success = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'success', options); + }; + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.warn = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'warn', options); + }; + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.error = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'error', options); + }; + /** + * @protected + * @param {?} message + * @param {?} title + * @param {?} severity + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.show = /** + * @protected + * @param {?} message + * @param {?} title + * @param {?} severity + * @param {?=} options + * @return {?} + */ + function (message, title, severity, options) { + this.messageService.clear(this.key); + this.messageService.add(__assign({ severity: severity, detail: message, summary: title }, options, { key: this.key }, (typeof (options || ((/** @type {?} */ ({})))).sticky === 'undefined' && { sticky: this.sticky }))); + this.status$ = new rxjs.Subject(); + return this.status$; + }; + /** + * @param {?=} status + * @return {?} + */ + AbstractToasterClass.prototype.clear = /** + * @param {?=} status + * @return {?} + */ + function (status) { + this.messageService.clear(this.key); + this.status$.next(status || "dismiss" /* dismiss */); + this.status$.complete(); + }; + return AbstractToasterClass; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ConfirmationService = /** @class */ (function (_super) { + __extends(ConfirmationService, _super); + function ConfirmationService() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.key = 'abpConfirmation'; + _this.sticky = true; + return _this; + } + ConfirmationService.decorators = [ + { type: core.Injectable, args: [{ providedIn: 'root' },] } + ]; + /** @nocollapse */ ConfirmationService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ConfirmationService_Factory() { return new ConfirmationService(core.ɵɵinject(messageservice.MessageService)); }, token: ConfirmationService, providedIn: "root" }); + return ConfirmationService; + }(AbstractToasterClass)); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ConfirmationComponent = /** @class */ (function () { + function ConfirmationComponent(confirmationService) { + this.confirmationService = confirmationService; + this.confirm = "confirm" /* confirm */; + this.reject = "reject" /* reject */; + this.dismiss = "dismiss" /* dismiss */; + } + /** + * @param {?} status + * @return {?} + */ + ConfirmationComponent.prototype.close = /** + * @param {?} status + * @return {?} + */ + function (status) { + this.confirmationService.clear(status); + }; + ConfirmationComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-confirmation', + template: "\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n " + }] } + ]; + /** @nocollapse */ + ConfirmationComponent.ctorParameters = function () { return [ + { type: ConfirmationService } + ]; }; + return ConfirmationComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ModalComponent = /** @class */ (function () { + function ModalComponent(renderer, confirmationService) { + this.renderer = renderer; + this.confirmationService = confirmationService; + this.centered = true; + this.modalClass = ''; + this.size = 'lg'; + this.visibleChange = new core.EventEmitter(); + this._visible = false; + this.closable = false; + this.isOpenConfirmation = false; + this.destroy$ = new rxjs.Subject(); + } + Object.defineProperty(ModalComponent.prototype, "visible", { + get: /** + * @return {?} + */ + function () { + return this._visible; + }, + set: /** + * @param {?} value + * @return {?} + */ + function (value) { + var _this = this; + if (!this.modalContent) { + setTimeout((/** + * @return {?} + */ + function () { return (_this.visible = value); }), 0); + return; + } + if (value) { + this.setVisible(value); + this.listen(); + } + else { + this.closable = false; + this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top'); + setTimeout((/** + * @return {?} + */ + function () { + _this.setVisible(value); + _this.renderer.removeClass(_this.modalContent.nativeElement, 'fade-out-top'); + _this.ngOnDestroy(); + }), 350); + } + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + ModalComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { + this.destroy$.next(); + }; + /** + * @param {?} value + * @return {?} + */ + ModalComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + var _this = this; + this._visible = value; + this.visibleChange.emit(value); + value + ? rxjs.timer(500) + .pipe(operators.take(1)) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + function (_) { return (_this.closable = true); })) + : (this.closable = false); + }; + /** + * @return {?} + */ + ModalComponent.prototype.listen = /** + * @return {?} + */ + function () { + var _this = this; + rxjs.fromEvent(document, 'click') + .pipe(operators.debounceTime(350), operators.takeUntil(this.destroy$), operators.filter((/** + * @param {?} event + * @return {?} + */ + function (event) { + return event && + _this.closable && + _this.modalContent && + !_this.isOpenConfirmation && + !_this.modalContent.nativeElement.contains(event.target); + }))) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + function (_) { + _this.close(); + })); + rxjs.fromEvent(document, 'keyup') + .pipe(operators.takeUntil(this.destroy$), operators.filter((/** + * @param {?} key + * @return {?} + */ + function (key) { return key && key.code === 'Escape' && _this.closable; })), operators.debounceTime(350)) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + function (_) { + _this.close(); + })); + rxjs.fromEvent(this.abpClose.nativeElement, 'click') + .pipe(operators.takeUntil(this.destroy$), operators.filter((/** + * @return {?} + */ + function () { return !!(_this.closable && _this.modalContent); })), operators.debounceTime(350)) + .subscribe((/** + * @return {?} + */ + function () { return _this.close(); })); + }; + /** + * @return {?} + */ + ModalComponent.prototype.close = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var nodes = getFlatNodes(((/** @type {?} */ (this.modalContent.nativeElement.querySelector('#abp-modal-body')))).childNodes); + if (hasNgDirty(nodes)) { + if (this.isOpenConfirmation) + return; + this.isOpenConfirmation = true; + this.confirmationService + .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure') + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + rxjs.timer(400).subscribe((/** + * @return {?} + */ + function () { + _this.isOpenConfirmation = false; + })); + if (status === "confirm" /* confirm */) { + _this.visible = false; + } + })); + } + else { + this.visible = false; + } + }; + ModalComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-modal', + template: "\n \n
    \n
    \n \n\n \n
    \n
    \n \n\n
    \n \n
    \n
    \n
    \n \n\n \n\n" + }] } + ]; + /** @nocollapse */ + ModalComponent.ctorParameters = function () { return [ + { type: core.Renderer2 }, + { type: ConfirmationService } + ]; }; + ModalComponent.propDecorators = { + visible: [{ type: core.Input }], + centered: [{ type: core.Input }], + modalClass: [{ type: core.Input }], + size: [{ type: core.Input }], + visibleChange: [{ type: core.Output }], + abpHeader: [{ type: core.ContentChild, args: ['abpHeader', { static: false },] }], + abpBody: [{ type: core.ContentChild, args: ['abpBody', { static: false },] }], + abpFooter: [{ type: core.ContentChild, args: ['abpFooter', { static: false },] }], + abpClose: [{ type: core.ContentChild, args: ['abpClose', { static: false, read: core.ElementRef },] }], + modalContent: [{ type: core.ViewChild, args: ['abpModalContent', { static: false },] }] + }; + return ModalComponent; + }()); + /** + * @param {?} nodes + * @return {?} + */ + function getFlatNodes(nodes) { + return Array.from(nodes).reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return __spread(acc, (val.childNodes && val.childNodes.length ? Array.from(val.childNodes) : [val])); }), []); + } + /** + * @param {?} nodes + * @return {?} + */ + function hasNgDirty(nodes) { + return nodes.findIndex((/** + * @param {?} node + * @return {?} + */ + function (node) { return (node.className || '').indexOf('ng-dirty') > -1; })) > -1; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ToastComponent = /** @class */ (function () { + function ToastComponent() { + } + ToastComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-toast', + template: "\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n " + }] } + ]; + return ToastComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var styles = "\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n\n/* = 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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { MessageService } from 'primeng/components/common/messageservice';\nimport { Observable, Subject } from 'rxjs';\nimport { Toaster } from '../models/toaster';\n\nexport class AbstractToasterClass {\n protected status$: Subject;\n\n protected key: string = 'abpToast';\n\n protected sticky: boolean = false;\n\n constructor(protected messageService: MessageService) {}\n info(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'info', options);\n }\n\n success(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'success', options);\n }\n\n warn(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'warn', options);\n }\n\n error(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'error', options);\n }\n\n protected show(message: string, title: string, severity: Toaster.Severity, options?: T): Observable {\n this.messageService.clear(this.key);\n\n this.messageService.add({\n severity,\n detail: message,\n summary: title,\n ...options,\n key: this.key,\n ...(typeof (options || ({} as any)).sticky === 'undefined' && { sticky: this.sticky }),\n });\n this.status$ = new Subject();\n return this.status$;\n }\n\n clear(status?: Toaster.Status) {\n this.messageService.clear(this.key);\n this.status$.next(status || Toaster.Status.dismiss);\n this.status$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToasterClass } from '../abstracts/toaster';\nimport { Confirmation } from '../models/confirmation';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmationService extends AbstractToasterClass {\n protected key: string = 'abpConfirmation';\n\n protected sticky: boolean = true;\n}\n","import { Component } from '@angular/core';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\n@Component({\n selector: 'abp-confirmation',\n template: `\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n `,\n})\nexport class ConfirmationComponent {\n confirm = Toaster.Status.confirm;\n reject = Toaster.Status.reject;\n dismiss = Toaster.Status.dismiss;\n\n constructor(private confirmationService: ConfirmationService) {}\n\n close(status: Toaster.Status) {\n this.confirmationService.clear(status);\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { fromEvent, Subject, timer } from 'rxjs';\nimport { debounceTime, filter, take, takeUntil } from 'rxjs/operators';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\n\n@Component({\n selector: 'abp-modal',\n templateUrl: './modal.component.html',\n})\nexport class ModalComponent implements OnDestroy {\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n set visible(value: boolean) {\n if (!this.modalContent) {\n setTimeout(() => (this.visible = value), 0);\n return;\n }\n\n if (value) {\n this.setVisible(value);\n this.listen();\n } else {\n this.closable = false;\n this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top');\n setTimeout(() => {\n this.setVisible(value);\n this.renderer.removeClass(this.modalContent.nativeElement, 'fade-out-top');\n this.ngOnDestroy();\n }, 350);\n }\n }\n\n @Input() centered: boolean = true;\n\n @Input() modalClass: string = '';\n\n @Input() size: ModalSize = 'lg';\n\n @Output() visibleChange = new EventEmitter();\n\n @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef;\n\n @ContentChild('abpBody', { static: false }) abpBody: TemplateRef;\n\n @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef;\n\n @ContentChild('abpClose', { static: false, read: ElementRef }) abpClose: ElementRef;\n\n @ViewChild('abpModalContent', { static: false }) modalContent: ElementRef;\n\n _visible: boolean = false;\n\n closable: boolean = false;\n\n isOpenConfirmation: boolean = false;\n\n destroy$ = new Subject();\n\n constructor(private renderer: Renderer2, private confirmationService: ConfirmationService) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n setVisible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n value\n ? timer(500)\n .pipe(take(1))\n .subscribe(_ => (this.closable = true))\n : (this.closable = false);\n }\n\n listen() {\n fromEvent(document, 'click')\n .pipe(\n debounceTime(350),\n takeUntil(this.destroy$),\n filter(\n (event: MouseEvent) =>\n event &&\n this.closable &&\n this.modalContent &&\n !this.isOpenConfirmation &&\n !this.modalContent.nativeElement.contains(event.target),\n ),\n )\n .subscribe(_ => {\n this.close();\n });\n\n fromEvent(document, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n filter((key: KeyboardEvent) => key && key.code === 'Escape' && this.closable),\n debounceTime(350),\n )\n .subscribe(_ => {\n this.close();\n });\n\n fromEvent(this.abpClose.nativeElement, 'click')\n .pipe(\n takeUntil(this.destroy$),\n filter(() => !!(this.closable && this.modalContent)),\n debounceTime(350),\n )\n .subscribe(() => this.close());\n }\n\n close() {\n const nodes = getFlatNodes(\n (this.modalContent.nativeElement.querySelector('#abp-modal-body') as HTMLElement).childNodes,\n );\n\n if (hasNgDirty(nodes)) {\n if (this.isOpenConfirmation) return;\n\n this.isOpenConfirmation = true;\n this.confirmationService\n .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure')\n .subscribe((status: Toaster.Status) => {\n timer(400).subscribe(() => {\n this.isOpenConfirmation = false;\n });\n\n if (status === Toaster.Status.confirm) {\n this.visible = false;\n }\n });\n } else {\n this.visible = false;\n }\n }\n}\n\nfunction getFlatNodes(nodes: NodeList): HTMLElement[] {\n return Array.from(nodes).reduce(\n (acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? Array.from(val.childNodes) : [val])],\n [],\n );\n}\n\nfunction hasNgDirty(nodes: HTMLElement[]) {\n return nodes.findIndex(node => (node.className || '').indexOf('ng-dirty') > -1) > -1;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-toast',\n template: `\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n `,\n})\nexport class ToastComponent {}\n","export default `\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n\n/* {\n const { payload: err = {} as HttpErrorResponse | any } = res;\n const body = (err as HttpErrorResponse).error.error;\n\n if (err.headers.get('_AbpErrorFormat')) {\n const confirmation$ = this.showError(null, null, body);\n\n if (err.status === 401) {\n confirmation$.subscribe(() => {\n this.navigateToLogin();\n });\n }\n } else {\n switch ((err as HttpErrorResponse).status) {\n case 401:\n this.showError(DEFAULTS.defaultError401.details, DEFAULTS.defaultError401.message).subscribe(() =>\n this.navigateToLogin(),\n );\n break;\n case 403:\n this.showError(DEFAULTS.defaultError403.details, DEFAULTS.defaultError403.message);\n break;\n case 404:\n this.showError(DEFAULTS.defaultError404.details, DEFAULTS.defaultError404.message);\n break;\n default:\n this.showError(DEFAULTS.defaultError.details, DEFAULTS.defaultError.message);\n break;\n }\n }\n });\n }\n\n private showError(message?: string, title?: string, body?: any): Observable {\n if (body) {\n if (body.details) {\n message = body.details;\n title = body.message;\n } else {\n message = body.message || DEFAULTS.defaultError.message;\n }\n }\n\n return this.confirmationService.error(message, title, {\n hideCancelBtn: true,\n yesCopy: 'OK',\n });\n }\n\n private navigateToLogin() {\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n }\n}\n","import { CoreModule, LazyLoadService } from '@abp/ng.core';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgbModalModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { MessageService } from 'primeng/components/common/messageservice';\nimport { ToastModule } from 'primeng/toast';\nimport { forkJoin } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { ConfirmationComponent } from './components/confirmation/confirmation.component';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { ToastComponent } from './components/toast/toast.component';\nimport styles from './contants/styles';\nimport { ErrorHandler } from './handlers/error.handler';\n\nexport function appendScript(injector: Injector) {\n const fn = function() {\n const lazyLoadService: LazyLoadService = injector.get(LazyLoadService);\n\n return forkJoin(\n lazyLoadService.load(\n null,\n 'style',\n styles,\n 'head',\n 'afterbegin',\n ) /* lazyLoadService.load(null, 'script', scripts) */,\n ).pipe(take(1));\n };\n\n return fn;\n}\n\n@NgModule({\n imports: [\n CoreModule,\n ToastModule,\n NgbModalModule,\n NgxValidateCoreModule.forRoot({\n targetSelector: '.form-group',\n }),\n ],\n declarations: [ConfirmationComponent, ToastComponent, ModalComponent],\n exports: [NgbModalModule, ConfirmationComponent, ToastComponent, ModalComponent],\n})\nexport class ThemeSharedModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: ThemeSharedModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector, ErrorHandler],\n useFactory: appendScript,\n },\n { provide: MessageService, useClass: MessageService },\n ],\n };\n }\n}\n","import { Toaster } from './toaster';\n\nexport namespace Confirmation {\n export interface Options extends Toaster.Options {\n hideCancelBtn?: boolean;\n hideYesBtn?: boolean;\n cancelCopy?: string;\n yesCopy?: string;\n }\n}\n","export namespace Toaster {\n export interface Options {\n id?: any;\n closable?: boolean;\n life?: number;\n sticky?: boolean;\n data?: any;\n messageLocalizationParams?: string[];\n titleLocalizationParams?: string[];\n }\n\n export type Severity = 'success' | 'info' | 'warn' | 'error';\n\n export const enum Status {\n confirm = 'confirm',\n reject = 'reject',\n dismiss = 'dismiss',\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToasterClass } from '../abstracts/toaster';\nimport { Message } from 'primeng/components/common/message';\n\n@Injectable({ providedIn: 'root' })\nexport class ToasterService extends AbstractToasterClass {\n addAll(messages: Message[]): void {\n this.messageService.addAll(messages.map(message => ({ key: this.key, ...message })));\n }\n}\n"],"names":["Subject","tslib_1.__extends","Injectable","Component","EventEmitter","timer","take","fromEvent","debounceTime","takeUntil","filter","Renderer2","Input","Output","ContentChild","ElementRef","ViewChild","store","ofActionSuccessful","RestOccurError","Navigate","RouterState","Actions","Store","LazyLoadService","forkJoin","APP_INITIALIZER","Injector","MessageService","NgModule","CoreModule","ToastModule","NgbModalModule","NgxValidateCoreModule","Toaster"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/bundles/abp-ng.theme.shared.umd.min.js b/npm/packs/ng/dist/theme-shared/bundles/abp-ng.theme.shared.umd.min.js new file mode 100644 index 0000000000..c75db15dcf --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/bundles/abp-ng.theme.shared.umd.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@abp/ng.core"),require("@angular/core"),require("@ng-bootstrap/ng-bootstrap"),require("@ngx-validate/core"),require("primeng/components/common/messageservice"),require("primeng/toast"),require("rxjs"),require("rxjs/operators"),require("@ngxs/router-plugin"),require("@ngxs/store")):"function"==typeof define&&define.amd?define("@abp/ng.theme.shared",["exports","@abp/ng.core","@angular/core","@ng-bootstrap/ng-bootstrap","@ngx-validate/core","primeng/components/common/messageservice","primeng/toast","rxjs","rxjs/operators","@ngxs/router-plugin","@ngxs/store"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng.theme=e.abp.ng.theme||{},e.abp.ng.theme.shared={}),e.ng_core,e.ng.core,e.ngBootstrap,e.core$1,e.messageservice,e.toast,e.rxjs,e.rxjs.operators,e.routerPlugin,e.store)}(this,function(e,t,n,o,r,i,s,a,c,l,u){"use strict";var d=function(e,t){return(d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function p(e,t){function n(){this.constructor=e}d(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var m=function(){return(m=Object.assign||function(e){for(var t,n=1,o=arguments.length;n0)&&!(o=i.next()).done;)s.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return s}var b=function(){function e(e){this.messageService=e,this.key="abpToast",this.sticky=!1}return e.prototype.info=function(e,t,n){return this.show(e,t,"info",n)},e.prototype.success=function(e,t,n){return this.show(e,t,"success",n)},e.prototype.warn=function(e,t,n){return this.show(e,t,"warn",n)},e.prototype.error=function(e,t,n){return this.show(e,t,"error",n)},e.prototype.show=function(e,t,n,o){return this.messageService.clear(this.key),this.messageService.add(m({severity:n,detail:e,summary:t},o,{key:this.key},void 0===(o||{}).sticky&&{sticky:this.sticky})),this.status$=new a.Subject,this.status$},e.prototype.clear=function(e){this.messageService.clear(this.key),this.status$.next(e||"dismiss"),this.status$.complete()},e}(),g=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.key="abpConfirmation",t.sticky=!0,t}return p(t,e),t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t(n.ɵɵinject(i.MessageService))},token:t,providedIn:"root"}),t}(b),h=function(){function e(e){this.confirmationService=e,this.confirm="confirm",this.reject="reject",this.dismiss="dismiss"}return e.prototype.close=function(e){this.confirmationService.clear(e)},e.decorators=[{type:n.Component,args:[{selector:"abp-confirmation",template:'\n \n \n \n \n\n \n \n \n '}]}],e.ctorParameters=function(){return[{type:g}]},e}(),y=function(){function e(e,t){this.renderer=e,this.confirmationService=t,this.centered=!0,this.modalClass="",this.size="lg",this.visibleChange=new n.EventEmitter,this._visible=!1,this.closable=!1,this.isOpenConfirmation=!1,this.destroy$=new a.Subject}return Object.defineProperty(e.prototype,"visible",{get:function(){return this._visible},set:function(e){var t=this;this.modalContent?e?(this.setVisible(e),this.listen()):(this.closable=!1,this.renderer.addClass(this.modalContent.nativeElement,"fade-out-top"),setTimeout(function(){t.setVisible(e),t.renderer.removeClass(t.modalContent.nativeElement,"fade-out-top"),t.ngOnDestroy()},350)):setTimeout(function(){return t.visible=e},0)},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.destroy$.next()},e.prototype.setVisible=function(e){var t=this;this._visible=e,this.visibleChange.emit(e),e?a.timer(500).pipe(c.take(1)).subscribe(function(e){return t.closable=!0}):this.closable=!1},e.prototype.listen=function(){var e=this;a.fromEvent(document,"click").pipe(c.debounceTime(350),c.takeUntil(this.destroy$),c.filter(function(t){return t&&e.closable&&e.modalContent&&!e.isOpenConfirmation&&!e.modalContent.nativeElement.contains(t.target)})).subscribe(function(t){e.close()}),a.fromEvent(document,"keyup").pipe(c.takeUntil(this.destroy$),c.filter(function(t){return t&&"Escape"===t.code&&e.closable}),c.debounceTime(350)).subscribe(function(t){e.close()}),a.fromEvent(this.abpClose.nativeElement,"click").pipe(c.takeUntil(this.destroy$),c.filter(function(){return!(!e.closable||!e.modalContent)}),c.debounceTime(350)).subscribe(function(){return e.close()})},e.prototype.close=function(){var e=this;if(function(e){return e.findIndex(function(e){return(e.className||"").indexOf("ng-dirty")>-1})>-1}(function(e){return Array.from(e).reduce(function(e,t){return function(){for(var e=[],t=0;t\n \n \n \n\n \n\n'}]}],e.ctorParameters=function(){return[{type:n.Renderer2},{type:g}]},e.propDecorators={visible:[{type:n.Input}],centered:[{type:n.Input}],modalClass:[{type:n.Input}],size:[{type:n.Input}],visibleChange:[{type:n.Output}],abpHeader:[{type:n.ContentChild,args:["abpHeader",{static:!1}]}],abpBody:[{type:n.ContentChild,args:["abpBody",{static:!1}]}],abpFooter:[{type:n.ContentChild,args:["abpFooter",{static:!1}]}],abpClose:[{type:n.ContentChild,args:["abpClose",{static:!1,read:n.ElementRef}]}],modalContent:[{type:n.ViewChild,args:["abpModalContent",{static:!1}]}]},e}();var v=function(){function e(){}return e.decorators=[{type:n.Component,args:[{selector:"abp-toast",template:'\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n '}]}],e}(),C="\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n\n/* = 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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { MessageService } from 'primeng/components/common/messageservice';\nimport { Observable, Subject } from 'rxjs';\nimport { Toaster } from '../models/toaster';\n\nexport class AbstractToasterClass {\n protected status$: Subject;\n\n protected key: string = 'abpToast';\n\n protected sticky: boolean = false;\n\n constructor(protected messageService: MessageService) {}\n info(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'info', options);\n }\n\n success(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'success', options);\n }\n\n warn(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'warn', options);\n }\n\n error(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'error', options);\n }\n\n protected show(message: string, title: string, severity: Toaster.Severity, options?: T): Observable {\n this.messageService.clear(this.key);\n\n this.messageService.add({\n severity,\n detail: message,\n summary: title,\n ...options,\n key: this.key,\n ...(typeof (options || ({} as any)).sticky === 'undefined' && { sticky: this.sticky }),\n });\n this.status$ = new Subject();\n return this.status$;\n }\n\n clear(status?: Toaster.Status) {\n this.messageService.clear(this.key);\n this.status$.next(status || Toaster.Status.dismiss);\n this.status$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToasterClass } from '../abstracts/toaster';\nimport { Confirmation } from '../models/confirmation';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmationService extends AbstractToasterClass {\n protected key: string = 'abpConfirmation';\n\n protected sticky: boolean = true;\n}\n","import { Component } from '@angular/core';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\n@Component({\n selector: 'abp-confirmation',\n template: `\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n `,\n})\nexport class ConfirmationComponent {\n confirm = Toaster.Status.confirm;\n reject = Toaster.Status.reject;\n dismiss = Toaster.Status.dismiss;\n\n constructor(private confirmationService: ConfirmationService) {}\n\n close(status: Toaster.Status) {\n this.confirmationService.clear(status);\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { fromEvent, Subject, timer } from 'rxjs';\nimport { debounceTime, filter, take, takeUntil } from 'rxjs/operators';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\n\n@Component({\n selector: 'abp-modal',\n templateUrl: './modal.component.html',\n})\nexport class ModalComponent implements OnDestroy {\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n set visible(value: boolean) {\n if (!this.modalContent) {\n setTimeout(() => (this.visible = value), 0);\n return;\n }\n\n if (value) {\n this.setVisible(value);\n this.listen();\n } else {\n this.closable = false;\n this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top');\n setTimeout(() => {\n this.setVisible(value);\n this.renderer.removeClass(this.modalContent.nativeElement, 'fade-out-top');\n this.ngOnDestroy();\n }, 350);\n }\n }\n\n @Input() centered: boolean = true;\n\n @Input() modalClass: string = '';\n\n @Input() size: ModalSize = 'lg';\n\n @Output() visibleChange = new EventEmitter();\n\n @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef;\n\n @ContentChild('abpBody', { static: false }) abpBody: TemplateRef;\n\n @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef;\n\n @ContentChild('abpClose', { static: false, read: ElementRef }) abpClose: ElementRef;\n\n @ViewChild('abpModalContent', { static: false }) modalContent: ElementRef;\n\n _visible: boolean = false;\n\n closable: boolean = false;\n\n isOpenConfirmation: boolean = false;\n\n destroy$ = new Subject();\n\n constructor(private renderer: Renderer2, private confirmationService: ConfirmationService) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n setVisible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n value\n ? timer(500)\n .pipe(take(1))\n .subscribe(_ => (this.closable = true))\n : (this.closable = false);\n }\n\n listen() {\n fromEvent(document, 'click')\n .pipe(\n debounceTime(350),\n takeUntil(this.destroy$),\n filter(\n (event: MouseEvent) =>\n event &&\n this.closable &&\n this.modalContent &&\n !this.isOpenConfirmation &&\n !this.modalContent.nativeElement.contains(event.target),\n ),\n )\n .subscribe(_ => {\n this.close();\n });\n\n fromEvent(document, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n filter((key: KeyboardEvent) => key && key.code === 'Escape' && this.closable),\n debounceTime(350),\n )\n .subscribe(_ => {\n this.close();\n });\n\n fromEvent(this.abpClose.nativeElement, 'click')\n .pipe(\n takeUntil(this.destroy$),\n filter(() => !!(this.closable && this.modalContent)),\n debounceTime(350),\n )\n .subscribe(() => this.close());\n }\n\n close() {\n const nodes = getFlatNodes(\n (this.modalContent.nativeElement.querySelector('#abp-modal-body') as HTMLElement).childNodes,\n );\n\n if (hasNgDirty(nodes)) {\n if (this.isOpenConfirmation) return;\n\n this.isOpenConfirmation = true;\n this.confirmationService\n .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure')\n .subscribe((status: Toaster.Status) => {\n timer(400).subscribe(() => {\n this.isOpenConfirmation = false;\n });\n\n if (status === Toaster.Status.confirm) {\n this.visible = false;\n }\n });\n } else {\n this.visible = false;\n }\n }\n}\n\nfunction getFlatNodes(nodes: NodeList): HTMLElement[] {\n return Array.from(nodes).reduce(\n (acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? Array.from(val.childNodes) : [val])],\n [],\n );\n}\n\nfunction hasNgDirty(nodes: HTMLElement[]) {\n return nodes.findIndex(node => (node.className || '').indexOf('ng-dirty') > -1) > -1;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-toast',\n template: `\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n `,\n})\nexport class ToastComponent {}\n","export default `\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n\n/* {\n const { payload: err = {} as HttpErrorResponse | any } = res;\n const body = (err as HttpErrorResponse).error.error;\n\n if (err.headers.get('_AbpErrorFormat')) {\n const confirmation$ = this.showError(null, null, body);\n\n if (err.status === 401) {\n confirmation$.subscribe(() => {\n this.navigateToLogin();\n });\n }\n } else {\n switch ((err as HttpErrorResponse).status) {\n case 401:\n this.showError(DEFAULTS.defaultError401.details, DEFAULTS.defaultError401.message).subscribe(() =>\n this.navigateToLogin(),\n );\n break;\n case 403:\n this.showError(DEFAULTS.defaultError403.details, DEFAULTS.defaultError403.message);\n break;\n case 404:\n this.showError(DEFAULTS.defaultError404.details, DEFAULTS.defaultError404.message);\n break;\n default:\n this.showError(DEFAULTS.defaultError.details, DEFAULTS.defaultError.message);\n break;\n }\n }\n });\n }\n\n private showError(message?: string, title?: string, body?: any): Observable {\n if (body) {\n if (body.details) {\n message = body.details;\n title = body.message;\n } else {\n message = body.message || DEFAULTS.defaultError.message;\n }\n }\n\n return this.confirmationService.error(message, title, {\n hideCancelBtn: true,\n yesCopy: 'OK',\n });\n }\n\n private navigateToLogin() {\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n }\n}\n","import { CoreModule, LazyLoadService } from '@abp/ng.core';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgbModalModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { MessageService } from 'primeng/components/common/messageservice';\nimport { ToastModule } from 'primeng/toast';\nimport { forkJoin } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { ConfirmationComponent } from './components/confirmation/confirmation.component';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { ToastComponent } from './components/toast/toast.component';\nimport styles from './contants/styles';\nimport { ErrorHandler } from './handlers/error.handler';\n\nexport function appendScript(injector: Injector) {\n const fn = function() {\n const lazyLoadService: LazyLoadService = injector.get(LazyLoadService);\n\n return forkJoin(\n lazyLoadService.load(\n null,\n 'style',\n styles,\n 'head',\n 'afterbegin',\n ) /* lazyLoadService.load(null, 'script', scripts) */,\n ).pipe(take(1));\n };\n\n return fn;\n}\n\n@NgModule({\n imports: [\n CoreModule,\n ToastModule,\n NgbModalModule,\n NgxValidateCoreModule.forRoot({\n targetSelector: '.form-group',\n }),\n ],\n declarations: [ConfirmationComponent, ToastComponent, ModalComponent],\n exports: [NgbModalModule, ConfirmationComponent, ToastComponent, ModalComponent],\n})\nexport class ThemeSharedModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: ThemeSharedModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector, ErrorHandler],\n useFactory: appendScript,\n },\n { provide: MessageService, useClass: MessageService },\n ],\n };\n }\n}\n","import { Toaster } from './toaster';\n\nexport namespace Confirmation {\n export interface Options extends Toaster.Options {\n hideCancelBtn?: boolean;\n hideYesBtn?: boolean;\n cancelCopy?: string;\n yesCopy?: string;\n }\n}\n","export namespace Toaster {\n export interface Options {\n id?: any;\n closable?: boolean;\n life?: number;\n sticky?: boolean;\n data?: any;\n messageLocalizationParams?: string[];\n titleLocalizationParams?: string[];\n }\n\n export type Severity = 'success' | 'info' | 'warn' | 'error';\n\n export const enum Status {\n confirm = 'confirm',\n reject = 'reject',\n dismiss = 'dismiss',\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToasterClass } from '../abstracts/toaster';\nimport { Message } from 'primeng/components/common/message';\n\n@Injectable({ providedIn: 'root' })\nexport class ToasterService extends AbstractToasterClass {\n addAll(messages: Message[]): void {\n this.messageService.addAll(messages.map(message => ({ key: this.key, ...message })));\n }\n}\n"]} \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/abp-ng.theme.shared.js b/npm/packs/ng/dist/theme-shared/esm2015/abp-ng.theme.shared.js new file mode 100644 index 0000000000..310c64f505 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/abp-ng.theme.shared.js @@ -0,0 +1,15 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { appendScript, ThemeSharedModule, ConfirmationComponent, ToastComponent, ModalComponent, Toaster, ConfirmationService, ToasterService } from './public-api'; +export { AbstractToasterClass as ɵc } from './lib/abstracts/toaster'; +export { ConfirmationComponent as ɵa } from './lib/components/confirmation/confirmation.component'; +export { ModalComponent as ɵe } from './lib/components/modal/modal.component'; +export { ToastComponent as ɵd } from './lib/components/toast/toast.component'; +export { ErrorHandler as ɵf } from './lib/handlers/error.handler'; +export { ConfirmationService as ɵb } from './lib/services/confirmation.service'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLnNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsiYWJwLW5nLnRoZW1lLnNoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscUpBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDakcsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0Fic3RyYWN0VG9hc3RlckNsYXNzIGFzIMm1Y30gZnJvbSAnLi9saWIvYWJzdHJhY3RzL3RvYXN0ZXInO1xuZXhwb3J0IHtDb25maXJtYXRpb25Db21wb25lbnQgYXMgybVhfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7TW9kYWxDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQge1RvYXN0Q29tcG9uZW50IGFzIMm1ZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQnO1xuZXhwb3J0IHtFcnJvckhhbmRsZXIgYXMgybVmfSBmcm9tICcuL2xpYi9oYW5kbGVycy9lcnJvci5oYW5kbGVyJztcbmV4cG9ydCB7Q29uZmlybWF0aW9uU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJzsiXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/abstracts/toaster.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/abstracts/toaster.js new file mode 100644 index 0000000000..20bcdff046 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/abstracts/toaster.js @@ -0,0 +1,100 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Subject } from 'rxjs'; +/** + * @template T + */ +export class AbstractToasterClass { + /** + * @param {?} messageService + */ + constructor(messageService) { + this.messageService = messageService; + this.key = 'abpToast'; + this.sticky = false; + } + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + info(message, title, options) { + return this.show(message, title, 'info', options); + } + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + success(message, title, options) { + return this.show(message, title, 'success', options); + } + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + warn(message, title, options) { + return this.show(message, title, 'warn', options); + } + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + error(message, title, options) { + return this.show(message, title, 'error', options); + } + /** + * @protected + * @param {?} message + * @param {?} title + * @param {?} severity + * @param {?=} options + * @return {?} + */ + show(message, title, severity, options) { + this.messageService.clear(this.key); + this.messageService.add(Object.assign({ severity, detail: message, summary: title }, options, { key: this.key }, (typeof (options || ((/** @type {?} */ ({})))).sticky === 'undefined' && { sticky: this.sticky }))); + this.status$ = new Subject(); + return this.status$; + } + /** + * @param {?=} status + * @return {?} + */ + clear(status) { + this.messageService.clear(this.key); + this.status$.next(status || "dismiss" /* dismiss */); + this.status$.complete(); + } +} +if (false) { + /** + * @type {?} + * @protected + */ + AbstractToasterClass.prototype.status$; + /** + * @type {?} + * @protected + */ + AbstractToasterClass.prototype.key; + /** + * @type {?} + * @protected + */ + AbstractToasterClass.prototype.sticky; + /** + * @type {?} + * @protected + */ + AbstractToasterClass.prototype.messageService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2Fic3RyYWN0cy90b2FzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBRzNDLE1BQU0sT0FBTyxvQkFBb0I7Ozs7SUFPL0IsWUFBc0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBSjFDLFFBQUcsR0FBVyxVQUFVLENBQUM7UUFFekIsV0FBTSxHQUFZLEtBQUssQ0FBQztJQUVxQixDQUFDOzs7Ozs7O0lBQ3hELElBQUksQ0FBQyxPQUFlLEVBQUUsS0FBYSxFQUFFLE9BQVc7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7Ozs7Ozs7SUFFRCxPQUFPLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQ2pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7Ozs7O0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsT0FBVztRQUM5QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7Ozs7OztJQUVELEtBQUssQ0FBQyxPQUFlLEVBQUUsS0FBYSxFQUFFLE9BQVc7UUFDL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7Ozs7Ozs7OztJQUVTLElBQUksQ0FBQyxPQUFlLEVBQUUsS0FBYSxFQUFFLFFBQTBCLEVBQUUsT0FBVztRQUNwRixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGlCQUNyQixRQUFRLEVBQ1IsTUFBTSxFQUFFLE9BQU8sRUFDZixPQUFPLEVBQUUsS0FBSyxJQUNYLE9BQU8sSUFDVixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFDVixDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxtQkFBQSxFQUFFLEVBQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFdBQVcsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFDdEYsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBRUQsS0FBSyxDQUFDLE1BQXVCO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLDJCQUEwQixDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0Y7Ozs7OztJQTNDQyx1Q0FBMkM7Ozs7O0lBRTNDLG1DQUFtQzs7Ozs7SUFFbkMsc0NBQWtDOzs7OztJQUV0Qiw4Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvY29tcG9uZW50cy9jb21tb24vbWVzc2FnZXNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RlciB9IGZyb20gJy4uL21vZGVscy90b2FzdGVyJztcblxuZXhwb3J0IGNsYXNzIEFic3RyYWN0VG9hc3RlckNsYXNzPFQgPSBUb2FzdGVyLk9wdGlvbnM+IHtcbiAgcHJvdGVjdGVkIHN0YXR1cyQ6IFN1YmplY3Q8VG9hc3Rlci5TdGF0dXM+O1xuXG4gIHByb3RlY3RlZCBrZXk6IHN0cmluZyA9ICdhYnBUb2FzdCc7XG5cbiAgcHJvdGVjdGVkIHN0aWNreTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHt9XG4gIGluZm8obWVzc2FnZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBvcHRpb25zPzogVCk6IE9ic2VydmFibGU8VG9hc3Rlci5TdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93KG1lc3NhZ2UsIHRpdGxlLCAnaW5mbycsIG9wdGlvbnMpO1xuICB9XG5cbiAgc3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBUKTogT2JzZXJ2YWJsZTxUb2FzdGVyLlN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLnNob3cobWVzc2FnZSwgdGl0bGUsICdzdWNjZXNzJywgb3B0aW9ucyk7XG4gIH1cblxuICB3YXJuKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZywgb3B0aW9ucz86IFQpOiBPYnNlcnZhYmxlPFRvYXN0ZXIuU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyhtZXNzYWdlLCB0aXRsZSwgJ3dhcm4nLCBvcHRpb25zKTtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZywgb3B0aW9ucz86IFQpOiBPYnNlcnZhYmxlPFRvYXN0ZXIuU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyhtZXNzYWdlLCB0aXRsZSwgJ2Vycm9yJywgb3B0aW9ucyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hvdyhtZXNzYWdlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIHNldmVyaXR5OiBUb2FzdGVyLlNldmVyaXR5LCBvcHRpb25zPzogVCk6IE9ic2VydmFibGU8VG9hc3Rlci5TdGF0dXM+IHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNsZWFyKHRoaXMua2V5KTtcblxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgIHNldmVyaXR5LFxuICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgc3VtbWFyeTogdGl0bGUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgIC4uLih0eXBlb2YgKG9wdGlvbnMgfHwgKHt9IGFzIGFueSkpLnN0aWNreSA9PT0gJ3VuZGVmaW5lZCcgJiYgeyBzdGlja3k6IHRoaXMuc3RpY2t5IH0pLFxuICAgIH0pO1xuICAgIHRoaXMuc3RhdHVzJCA9IG5ldyBTdWJqZWN0PFRvYXN0ZXIuU3RhdHVzPigpO1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyQ7XG4gIH1cblxuICBjbGVhcihzdGF0dXM/OiBUb2FzdGVyLlN0YXR1cykge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIodGhpcy5rZXkpO1xuICAgIHRoaXMuc3RhdHVzJC5uZXh0KHN0YXR1cyB8fCBUb2FzdGVyLlN0YXR1cy5kaXNtaXNzKTtcbiAgICB0aGlzLnN0YXR1cyQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/components/confirmation/confirmation.component.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/components/confirmation/confirmation.component.js new file mode 100644 index 0000000000..2224d732e7 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/components/confirmation/confirmation.component.js @@ -0,0 +1,77 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +import { ConfirmationService } from '../../services/confirmation.service'; +export class ConfirmationComponent { + /** + * @param {?} confirmationService + */ + constructor(confirmationService) { + this.confirmationService = confirmationService; + this.confirm = "confirm" /* confirm */; + this.reject = "reject" /* reject */; + this.dismiss = "dismiss" /* dismiss */; + } + /** + * @param {?} status + * @return {?} + */ + close(status) { + this.confirmationService.clear(status); + } +} +ConfirmationComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-confirmation', + template: ` + + + + + + + + + ` + }] } +]; +/** @nocollapse */ +ConfirmationComponent.ctorParameters = () => [ + { type: ConfirmationService } +]; +if (false) { + /** @type {?} */ + ConfirmationComponent.prototype.confirm; + /** @type {?} */ + ConfirmationComponent.prototype.reject; + /** @type {?} */ + ConfirmationComponent.prototype.dismiss; + /** + * @type {?} + * @private + */ + ConfirmationComponent.prototype.confirmationService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFvQzFFLE1BQU0sT0FBTyxxQkFBcUI7Ozs7SUFLaEMsWUFBb0IsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFKNUQsWUFBTywyQkFBMEI7UUFDakMsV0FBTSx5QkFBeUI7UUFDL0IsWUFBTywyQkFBMEI7SUFFOEIsQ0FBQzs7Ozs7SUFFaEUsS0FBSyxDQUFDLE1BQXNCO1FBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQzs7O1lBMUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJUO2FBQ0Y7Ozs7WUFuQ1EsbUJBQW1COzs7O0lBcUMxQix3Q0FBaUM7O0lBQ2pDLHVDQUErQjs7SUFDL0Isd0NBQWlDOzs7OztJQUVyQixvREFBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RvYXN0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtY29uZmlybWF0aW9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cC10b2FzdFxuICAgICAgcG9zaXRpb249XCJjZW50ZXJcIlxuICAgICAga2V5PVwiYWJwQ29uZmlybWF0aW9uXCJcbiAgICAgIChvbkNsb3NlKT1cImNsb3NlKGRpc21pc3MpXCJcbiAgICAgIFttb2RhbF09XCJ0cnVlXCJcbiAgICAgIFtiYXNlWkluZGV4XT1cIjEwMDBcIlxuICAgICAgc3R5bGVDbGFzcz1cIlwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2Uuc3VtbWFyeVwiIGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5cbiAgICAgICAgICAgIHt7IG1lc3NhZ2Uuc3VtbWFyeSB8IGFicExvY2FsaXphdGlvbjogbWVzc2FnZS50aXRsZUxvY2FsaXphdGlvblBhcmFtcyB9fVxuICAgICAgICAgIDwvaDQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICAgIHt7IG1lc3NhZ2UuZGV0YWlsIHwgYWJwTG9jYWxpemF0aW9uOiBtZXNzYWdlLm1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXMgfX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFtZXNzYWdlLmhpZGVDYW5jZWxCdG5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZShyZWplY3QpXCI+XG4gICAgICAgICAgICB7eyBtZXNzYWdlLmNhbmNlbENvcHkgfHwgJ0FicElkZW50aXR5OjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFtZXNzYWdlLmhpZGVZZXNCdG5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZShjb25maXJtKVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgbWVzc2FnZS55ZXNDb3B5IHx8ICdBYnBJZGVudGl0eTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uQ29tcG9uZW50IHtcbiAgY29uZmlybSA9IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm07XG4gIHJlamVjdCA9IFRvYXN0ZXIuU3RhdHVzLnJlamVjdDtcbiAgZGlzbWlzcyA9IFRvYXN0ZXIuU3RhdHVzLmRpc21pc3M7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlKSB7fVxuXG4gIGNsb3NlKHN0YXR1czogVG9hc3Rlci5TdGF0dXMpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY2xlYXIoc3RhdHVzKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/components/index.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/components/index.js new file mode 100644 index 0000000000..c5ead0704c --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/components/index.js @@ -0,0 +1,8 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { ConfirmationComponent } from './confirmation/confirmation.component'; +export { ToastComponent } from './toast/toast.component'; +export { ModalComponent } from './modal/modal.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxzQ0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCwrQkFBYyx5QkFBeUIsQ0FBQztBQUN4QywrQkFBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdC90b2FzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/components/modal/modal.component.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/components/modal/modal.component.js new file mode 100644 index 0000000000..35763c956e --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/components/modal/modal.component.js @@ -0,0 +1,245 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component, ContentChild, ElementRef, EventEmitter, Input, Output, Renderer2, TemplateRef, ViewChild, } from '@angular/core'; +import { fromEvent, Subject, timer } from 'rxjs'; +import { debounceTime, filter, take, takeUntil } from 'rxjs/operators'; +import { ConfirmationService } from '../../services/confirmation.service'; +export class ModalComponent { + /** + * @param {?} renderer + * @param {?} confirmationService + */ + constructor(renderer, confirmationService) { + this.renderer = renderer; + this.confirmationService = confirmationService; + this.centered = true; + this.modalClass = ''; + this.size = 'lg'; + this.visibleChange = new EventEmitter(); + this._visible = false; + this.closable = false; + this.isOpenConfirmation = false; + this.destroy$ = new Subject(); + } + /** + * @return {?} + */ + get visible() { + return this._visible; + } + /** + * @param {?} value + * @return {?} + */ + set visible(value) { + if (!this.modalContent) { + setTimeout((/** + * @return {?} + */ + () => (this.visible = value)), 0); + return; + } + if (value) { + this.setVisible(value); + this.listen(); + } + else { + this.closable = false; + this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top'); + setTimeout((/** + * @return {?} + */ + () => { + this.setVisible(value); + this.renderer.removeClass(this.modalContent.nativeElement, 'fade-out-top'); + this.ngOnDestroy(); + }), 350); + } + } + /** + * @return {?} + */ + ngOnDestroy() { + this.destroy$.next(); + } + /** + * @param {?} value + * @return {?} + */ + setVisible(value) { + this._visible = value; + this.visibleChange.emit(value); + value + ? timer(500) + .pipe(take(1)) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + _ => (this.closable = true))) + : (this.closable = false); + } + /** + * @return {?} + */ + listen() { + fromEvent(document, 'click') + .pipe(debounceTime(350), takeUntil(this.destroy$), filter((/** + * @param {?} event + * @return {?} + */ + (event) => event && + this.closable && + this.modalContent && + !this.isOpenConfirmation && + !this.modalContent.nativeElement.contains(event.target)))) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + _ => { + this.close(); + })); + fromEvent(document, 'keyup') + .pipe(takeUntil(this.destroy$), filter((/** + * @param {?} key + * @return {?} + */ + (key) => key && key.code === 'Escape' && this.closable)), debounceTime(350)) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + _ => { + this.close(); + })); + fromEvent(this.abpClose.nativeElement, 'click') + .pipe(takeUntil(this.destroy$), filter((/** + * @return {?} + */ + () => !!(this.closable && this.modalContent))), debounceTime(350)) + .subscribe((/** + * @return {?} + */ + () => this.close())); + } + /** + * @return {?} + */ + close() { + /** @type {?} */ + const nodes = getFlatNodes(((/** @type {?} */ (this.modalContent.nativeElement.querySelector('#abp-modal-body')))).childNodes); + if (hasNgDirty(nodes)) { + if (this.isOpenConfirmation) + return; + this.isOpenConfirmation = true; + this.confirmationService + .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure') + .subscribe((/** + * @param {?} status + * @return {?} + */ + (status) => { + timer(400).subscribe((/** + * @return {?} + */ + () => { + this.isOpenConfirmation = false; + })); + if (status === "confirm" /* confirm */) { + this.visible = false; + } + })); + } + else { + this.visible = false; + } + } +} +ModalComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-modal', + template: "\n \n
    \n
    \n \n\n \n
    \n
    \n \n\n
    \n \n
    \n
    \n
    \n \n\n \n\n" + }] } +]; +/** @nocollapse */ +ModalComponent.ctorParameters = () => [ + { type: Renderer2 }, + { type: ConfirmationService } +]; +ModalComponent.propDecorators = { + visible: [{ type: Input }], + centered: [{ type: Input }], + modalClass: [{ type: Input }], + size: [{ type: Input }], + visibleChange: [{ type: Output }], + abpHeader: [{ type: ContentChild, args: ['abpHeader', { static: false },] }], + abpBody: [{ type: ContentChild, args: ['abpBody', { static: false },] }], + abpFooter: [{ type: ContentChild, args: ['abpFooter', { static: false },] }], + abpClose: [{ type: ContentChild, args: ['abpClose', { static: false, read: ElementRef },] }], + modalContent: [{ type: ViewChild, args: ['abpModalContent', { static: false },] }] +}; +if (false) { + /** @type {?} */ + ModalComponent.prototype.centered; + /** @type {?} */ + ModalComponent.prototype.modalClass; + /** @type {?} */ + ModalComponent.prototype.size; + /** @type {?} */ + ModalComponent.prototype.visibleChange; + /** @type {?} */ + ModalComponent.prototype.abpHeader; + /** @type {?} */ + ModalComponent.prototype.abpBody; + /** @type {?} */ + ModalComponent.prototype.abpFooter; + /** @type {?} */ + ModalComponent.prototype.abpClose; + /** @type {?} */ + ModalComponent.prototype.modalContent; + /** @type {?} */ + ModalComponent.prototype._visible; + /** @type {?} */ + ModalComponent.prototype.closable; + /** @type {?} */ + ModalComponent.prototype.isOpenConfirmation; + /** @type {?} */ + ModalComponent.prototype.destroy$; + /** + * @type {?} + * @private + */ + ModalComponent.prototype.renderer; + /** + * @type {?} + * @private + */ + ModalComponent.prototype.confirmationService; +} +/** + * @param {?} nodes + * @return {?} + */ +function getFlatNodes(nodes) { + return Array.from(nodes).reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? Array.from(val.childNodes) : [val])]), []); +} +/** + * @param {?} nodes + * @return {?} + */ +function hasNgDirty(nodes) { + return nodes.findIndex((/** + * @param {?} node + * @return {?} + */ + node => (node.className || '').indexOf('ng-dirty') > -1)) > -1; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBUzFFLE1BQU0sT0FBTyxjQUFjOzs7OztJQW1EekIsWUFBb0IsUUFBbUIsRUFBVSxtQkFBd0M7UUFBckUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUExQmhGLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFFekIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUV4QixTQUFJLEdBQWMsSUFBSSxDQUFDO1FBRXRCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVl0RCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRXBDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRTZELENBQUM7Ozs7SUFsRDdGLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDOzs7OztJQUNELElBQUksT0FBTyxD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QUVELFNBQVMsVUFBVSxDQUFDLEtBQW9CO0lBQ3RDLE9BQU8sS0FBSyxDQUFDLFNBQVM7Ozs7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RvYXN0ZXInO1xuXG5leHBvcnQgdHlwZSBNb2RhbFNpemUgPSAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLm1vZGFsQ29udGVudCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiAodGhpcy52aXNpYmxlID0gdmFsdWUpLCAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0VmlzaWJsZSh2YWx1ZSk7XG4gICAgICB0aGlzLmxpc3RlbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsb3NhYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQsICdmYWRlLW91dC10b3AnKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFZpc2libGUodmFsdWUpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQsICdmYWRlLW91dC10b3AnKTtcbiAgICAgICAgdGhpcy5uZ09uRGVzdHJveSgpO1xuICAgICAgfSwgMzUwKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBjZW50ZXJlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KCkgbW9kYWxDbGFzczogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgc2l6ZTogTW9kYWxTaXplID0gJ2xnJztcblxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAQ29udGVudENoaWxkKCdhYnBIZWFkZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgYWJwSGVhZGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicEJvZHknLCB7IHN0YXRpYzogZmFsc2UgfSkgYWJwQm9keTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKCdhYnBGb290ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgYWJwRm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicENsb3NlJywgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmIH0pIGFicENsb3NlOiBFbGVtZW50UmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgnYWJwTW9kYWxDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIG1vZGFsQ29udGVudDogRWxlbWVudFJlZjtcblxuICBfdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNsb3NhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgaXNPcGVuQ29uZmlybWF0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgc2V0VmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdmFsdWVcbiAgICAgID8gdGltZXIoNTAwKVxuICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgLnN1YnNjcmliZShfID0+ICh0aGlzLmNsb3NhYmxlID0gdHJ1ZSkpXG4gICAgICA6ICh0aGlzLmNsb3NhYmxlID0gZmFsc2UpO1xuICB9XG5cbiAgbGlzdGVuKCkge1xuICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJylcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMzUwKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PlxuICAgICAgICAgICAgZXZlbnQgJiZcbiAgICAgICAgICAgIHRoaXMuY2xvc2FibGUgJiZcbiAgICAgICAgICAgIHRoaXMubW9kYWxDb250ZW50ICYmXG4gICAgICAgICAgICAhdGhpcy5pc09wZW5Db25maXJtYXRpb24gJiZcbiAgICAgICAgICAgICF0aGlzLm1vZGFsQ29udGVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9KTtcblxuICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleXVwJylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgIGZpbHRlcigoa2V5OiBLZXlib2FyZEV2ZW50KSA9PiBrZXkgJiYga2V5LmNvZGUgPT09ICdFc2NhcGUnICYmIHRoaXMuY2xvc2FibGUpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMzUwKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXyA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0pO1xuXG4gICAgZnJvbUV2ZW50KHRoaXMuYWJwQ2xvc2UubmF0aXZlRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgIGZpbHRlcigoKSA9PiAhISh0aGlzLmNsb3NhYmxlICYmIHRoaXMubW9kYWxDb250ZW50KSksXG4gICAgICAgIGRlYm91bmNlVGltZSgzNTApLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBnZXRGbGF0Tm9kZXMoXG4gICAgICAodGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjYWJwLW1vZGFsLWJvZHknKSBhcyBIVE1MRWxlbWVudCkuY2hpbGROb2RlcyxcbiAgICApO1xuXG4gICAgaWYgKGhhc05nRGlydHkobm9kZXMpKSB7XG4gICAgICBpZiAodGhpcy5pc09wZW5Db25maXJtYXRpb24pIHJldHVybjtcblxuICAgICAgdGhpcy5pc09wZW5Db25maXJtYXRpb24gPSB0cnVlO1xuICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlXG4gICAgICAgIC53YXJuKCdBYnBBY2NvdW50OjpBcmVZb3VTdXJlWW91V2FudFRvQ2FuY2VsRWRpdGluZ1dhcm5pbmdNZXNzYWdlJywgJ0FicEFjY291bnQ6OkFyZVlvdVN1cmUnKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IFRvYXN0ZXIuU3RhdHVzKSA9PiB7XG4gICAgICAgICAgdGltZXIoNDAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc09wZW5Db25maXJtYXRpb24gPSBmYWxzZTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChzdGF0dXMgPT09IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm0pIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRGbGF0Tm9kZXMobm9kZXM6IE5vZGVMaXN0KTogSFRNTEVsZW1lbnRbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKG5vZGVzKS5yZWR1Y2UoXG4gICAgKGFjYywgdmFsKSA9PiBbLi4uYWNjLCAuLi4odmFsLmNoaWxkTm9kZXMgJiYgdmFsLmNoaWxkTm9kZXMubGVuZ3RoID8gQXJyYXkuZnJvbSh2YWwuY2hpbGROb2RlcykgOiBbdmFsXSldLFxuICAgIFtdLFxuICApO1xufVxuXG5mdW5jdGlvbiBoYXNOZ0RpcnR5KG5vZGVzOiBIVE1MRWxlbWVudFtdKSB7XG4gIHJldHVybiBub2Rlcy5maW5kSW5kZXgobm9kZSA9PiAobm9kZS5jbGFzc05hbWUgfHwgJycpLmluZGV4T2YoJ25nLWRpcnR5JykgPiAtMSkgPiAtMTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/components/toast/toast.component.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/components/toast/toast.component.js new file mode 100644 index 0000000000..7e67c92c9e --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/components/toast/toast.component.js @@ -0,0 +1,32 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +export class ToastComponent { +} +ToastComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-toast', + template: ` + + + +
    +
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    +
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    +
    +
    +
    + ` + }] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUF3QjFDLE1BQU0sT0FBTyxjQUFjOzs7WUF0QjFCLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQ7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtdG9hc3QnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxwLXRvYXN0IHBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCIga2V5PVwiYWJwVG9hc3RcIiBbYmFzZVpJbmRleF09XCIxMDAwXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwidWktdG9hc3QtaWNvbiBwaVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3BpLWluZm8tY2lyY2xlJzogbWVzc2FnZS5zZXZlcml0eSA9PSAnaW5mbycsXG4gICAgICAgICAgICAncGktZXhjbGFtYXRpb24tdHJpYW5nbGUnOiBtZXNzYWdlLnNldmVyaXR5ID09ICd3YXJuJyxcbiAgICAgICAgICAgICdwaS10aW1lcyc6IG1lc3NhZ2Uuc2V2ZXJpdHkgPT0gJ2Vycm9yJyxcbiAgICAgICAgICAgICdwaS1jaGVjayc6IG1lc3NhZ2Uuc2V2ZXJpdHkgPT0gJ3N1Y2Nlc3MnXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10b2FzdC1tZXNzYWdlLXRleHQtY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10b2FzdC1zdW1tYXJ5XCI+e3sgbWVzc2FnZS5zdW1tYXJ5IHwgYWJwTG9jYWxpemF0aW9uOiBtZXNzYWdlLnRpdGxlTG9jYWxpemF0aW9uUGFyYW1zIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVpLXRvYXN0LWRldGFpbFwiPnt7IG1lc3NhZ2UuZGV0YWlsIHwgYWJwTG9jYWxpemF0aW9uOiBtZXNzYWdlLm1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXMgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RDb21wb25lbnQge31cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/contants/styles.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/contants/styles.js new file mode 100644 index 0000000000..9c568b8354 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/contants/styles.js @@ -0,0 +1,65 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export default ` +.is-invalid .form-control { + border-color: #dc3545; + border-style: solid !important; +} + +.is-invalid .invalid-feedback, +.is-invalid + * .invalid-feedback { + display: block; +} + +.data-tables-filter { + text-align: right; +} + +.pointer { + cursor: pointer; +} + +.navbar .dropdown-submenu a::after { + transform: rotate(-90deg); + position: absolute; + right: 16px; + top: 18px; +} + + +/* { + const { payload: err = (/** @type {?} */ ({})) } = res; + /** @type {?} */ + const body = ((/** @type {?} */ (err))).error.error; + if (err.headers.get('_AbpErrorFormat')) { + /** @type {?} */ + const confirmation$ = this.showError(null, null, body); + if (err.status === 401) { + confirmation$.subscribe((/** + * @return {?} + */ + () => { + this.navigateToLogin(); + })); + } + } + else { + switch (((/** @type {?} */ (err))).status) { + case 401: + this.showError(DEFAULTS.defaultError401.details, DEFAULTS.defaultError401.message).subscribe((/** + * @return {?} + */ + () => this.navigateToLogin())); + break; + case 403: + this.showError(DEFAULTS.defaultError403.details, DEFAULTS.defaultError403.message); + break; + case 404: + this.showError(DEFAULTS.defaultError404.details, DEFAULTS.defaultError404.message); + break; + default: + this.showError(DEFAULTS.defaultError.details, DEFAULTS.defaultError.message); + break; + } + } + })); + } + /** + * @private + * @param {?=} message + * @param {?=} title + * @param {?=} body + * @return {?} + */ + showError(message, title, body) { + if (body) { + if (body.details) { + message = body.details; + title = body.message; + } + else { + message = body.message || DEFAULTS.defaultError.message; + } + } + return this.confirmationService.error(message, title, { + hideCancelBtn: true, + yesCopy: 'OK', + }); + } + /** + * @private + * @return {?} + */ + navigateToLogin() { + this.store.dispatch(new Navigate(['/account/login'], null, { + state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url }, + })); + } +} +ErrorHandler.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } +]; +/** @nocollapse */ +ErrorHandler.ctorParameters = () => [ + { type: Actions }, + { type: Store }, + { type: ConfirmationService } +]; +/** @nocollapse */ ErrorHandler.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ErrorHandler_Factory() { return new ErrorHandler(i0.ɵɵinject(i1.Actions), i0.ɵɵinject(i1.Store), i0.ɵɵinject(i2.ConfirmationService)); }, token: ErrorHandler, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + ErrorHandler.prototype.actions; + /** + * @type {?} + * @private + */ + ErrorHandler.prototype.store; + /** + * @type {?} + * @private + */ + ErrorHandler.prototype.confirmationService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2hhbmRsZXJzL2Vycm9yLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7OztNQUVqRSxRQUFRLEdBQUc7SUFDZixZQUFZLEVBQUU7UUFDWixPQUFPLEVBQUUsd0JBQXdCO1FBQ2pDLE9BQU8sRUFBRSxrQ0FBa0M7S0FDNUM7SUFFRCxlQUFlLEVBQUU7UUFDZixPQUFPLEVBQUUsNEJBQTRCO1FBQ3JDLE9BQU8sRUFBRSwyRUFBMkU7S0FDckY7SUFFRCxlQUFlLEVBQUU7UUFDZixPQUFPLEVBQUUseUJBQXlCO1FBQ2xDLE9BQU8sRUFBRSxnREFBZ0Q7S0FDMUQ7SUFFRCxlQUFlLEVBQUU7UUFDZixPQUFPLEVBQUUscUJBQXFCO1FBQzlCLE9BQU8sRUFBRSx1REFBdUQ7S0FDakU7Q0FDRjtBQUdELE1BQU0sT0FBTyxZQUFZOzs7Ozs7SUFDdkIsWUFBb0IsT0FBZ0IsRUFBVSxLQUFZLEVBQVUsbUJBQXdDO1FBQXhGLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUMxRyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUzs7OztRQUFD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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXN0T2NjdXJFcnJvciB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlLCBSb3V0ZXJTdGF0ZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgQWN0aW9ucywgb2ZBY3Rpb25TdWNjZXNzZnVsLCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvYXN0ZXIgfSBmcm9tICcuLi9tb2RlbHMvdG9hc3Rlcic7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UnO1xuXG5jb25zdCBERUZBVUxUUyA9IHtcbiAgZGVmYXVsdEVycm9yOiB7XG4gICAgbWVzc2FnZTogJ0FuIGVycm9yIGhhcyBvY2N1cnJlZCEnLFxuICAgIGRldGFpbHM6ICdFcnJvciBkZXRhaWwgbm90IHNlbnQgYnkgc2VydmVyLicsXG4gIH0sXG5cbiAgZGVmYXVsdEVycm9yNDAxOiB7XG4gICAgbWVzc2FnZTogJ1lvdSBhcmUgbm90IGF1dGhlbnRpY2F0ZWQhJyxcbiAgICBkZXRhaWxzOiAnWW91IHNob3VsZCBiZSBhdXRoZW50aWNhdGVkIChzaWduIGluKSBpbiBvcmRlciB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uLicsXG4gIH0sXG5cbiAgZGVmYXVsdEVycm9yNDAzOiB7XG4gICAgbWVzc2FnZTogJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQhJyxcbiAgICBkZXRhaWxzOiAnWW91IGFyZSBub3QgYWxsb3dlZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uLicsXG4gIH0sXG5cbiAgZGVmYXVsdEVycm9yNDA0OiB7XG4gICAgbWVzc2FnZTogJ1Jlc291cmNlIG5vdCBmb3VuZCEnLFxuICAgIGRldGFpbHM6ICdUaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBmb3VuZCBvbiB0aGUgc2VydmVyLicsXG4gIH0sXG59O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEVycm9ySGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uczogQWN0aW9ucywgcHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSkge1xuICAgIGFjdGlvbnMucGlwZShvZkFjdGlvblN1Y2Nlc3NmdWwoUmVzdE9jY3VyRXJyb3IpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGNvbnN0IHsgcGF5bG9hZDogZXJyID0ge30gYXMgSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkgfSA9IHJlcztcbiAgICAgIGNvbnN0IGJvZHkgPSAoZXJyIGFzIEh0dHBFcnJvclJlc3BvbnNlKS5lcnJvci5lcnJvcjtcblxuICAgICAgaWYgKGVyci5oZWFkZXJzLmdldCgnX0FicEVycm9yRm9ybWF0JykpIHtcbiAgICAgICAgY29uc3QgY29uZmlybWF0aW9uJCA9IHRoaXMuc2hvd0Vycm9yKG51bGwsIG51bGwsIGJvZHkpO1xuXG4gICAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICBjb25maXJtYXRpb24kLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRlVG9Mb2dpbigpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKChlcnIgYXMgSHR0cEVycm9yUmVzcG9uc2UpLnN0YXR1cykge1xuICAgICAgICAgIGNhc2UgNDAxOlxuICAgICAgICAgICAgdGhpcy5zaG93RXJyb3IoREVGQVVMVFMuZGVmYXVsdEVycm9yNDAxLmRldGFpbHMsIERFRkFVTFRTLmRlZmF1bHRFcnJvcjQwMS5tZXNzYWdlKS5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvTG9naW4oKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQwMzpcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKERFRkFVTFRTLmRlZmF1bHRFcnJvcjQwMy5kZXRhaWxzLCBERUZBVUxUUy5kZWZhdWx0RXJyb3I0MDMubWVzc2FnZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQwNDpcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKERFRkFVTFRTLmRlZmF1bHRFcnJvcjQwNC5kZXRhaWxzLCBERUZBVUxUUy5kZWZhdWx0RXJyb3I0MDQubWVzc2FnZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhpcy5zaG93RXJyb3IoREVGQVVMVFMuZGVmYXVsdEVycm9yLmRldGFpbHMsIERFRkFVTFRTLmRlZmF1bHRFcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dFcnJvcihtZXNzYWdlPzogc3RyaW5nLCB0aXRsZT86IHN0cmluZywgYm9keT86IGFueSk6IE9ic2VydmFibGU8VG9hc3Rlci5TdGF0dXM+IHtcbiAgICBpZiAoYm9keSkge1xuICAgICAgaWYgKGJvZHkuZGV0YWlscykge1xuICAgICAgICBtZXNzYWdlID0gYm9keS5kZXRhaWxzO1xuICAgICAgICB0aXRsZSA9IGJvZHkubWVzc2FnZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBib2R5Lm1lc3NhZ2UgfHwgREVGQVVMVFMuZGVmYXVsdEVycm9yLm1lc3NhZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5lcnJvcihtZXNzYWdlLCB0aXRsZSwge1xuICAgICAgaGlkZUNhbmNlbEJ0bjogdHJ1ZSxcbiAgICAgIHllc0NvcHk6ICdPSycsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlVG9Mb2dpbigpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgbmV3IE5hdmlnYXRlKFsnL2FjY291bnQvbG9naW4nXSwgbnVsbCwge1xuICAgICAgICBzdGF0ZTogeyByZWRpcmVjdFVybDogdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChSb3V0ZXJTdGF0ZSkuc3RhdGUudXJsIH0sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/models/confirmation.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/models/confirmation.js new file mode 100644 index 0000000000..212b0e166d --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/models/confirmation.js @@ -0,0 +1,23 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Confirmation; +(function (Confirmation) { + /** + * @record + */ + function Options() { } + Confirmation.Options = Options; + if (false) { + /** @type {?|undefined} */ + Options.prototype.hideCancelBtn; + /** @type {?|undefined} */ + Options.prototype.hideYesBtn; + /** @type {?|undefined} */ + Options.prototype.cancelCopy; + /** @type {?|undefined} */ + Options.prototype.yesCopy; + } +})(Confirmation || (Confirmation = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2NvbmZpcm1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsTUFBTSxLQUFXLFlBQVksQ0FPNUI7QUFQRCxXQUFpQixZQUFZOzs7O0lBQzNCLHNCQUtDOzs7O1FBSkMsZ0NBQXdCOztRQUN4Qiw2QkFBcUI7O1FBQ3JCLDZCQUFvQjs7UUFDcEIsMEJBQWlCOztBQUVyQixDQUFDLEVBUGdCLFlBQVksS0FBWixZQUFZLFFBTzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9hc3RlciB9IGZyb20gJy4vdG9hc3Rlcic7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29uZmlybWF0aW9uIHtcbiAgZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIGV4dGVuZHMgVG9hc3Rlci5PcHRpb25zIHtcbiAgICBoaWRlQ2FuY2VsQnRuPzogYm9vbGVhbjtcbiAgICBoaWRlWWVzQnRuPzogYm9vbGVhbjtcbiAgICBjYW5jZWxDb3B5Pzogc3RyaW5nO1xuICAgIHllc0NvcHk/OiBzdHJpbmc7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/models/index.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/models/index.js new file mode 100644 index 0000000000..cc2ac4afa2 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/models/index.js @@ -0,0 +1,7 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export {} from './confirmation'; +export { Toaster } from './toaster'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGVBQWMsZ0JBQWdCLENBQUM7QUFDL0Isd0JBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb25maXJtYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdGVyJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/models/toaster.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/models/toaster.js new file mode 100644 index 0000000000..47fe054d0b --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/models/toaster.js @@ -0,0 +1,29 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export var Toaster; +(function (Toaster) { + /** + * @record + */ + function Options() { } + Toaster.Options = Options; + if (false) { + /** @type {?|undefined} */ + Options.prototype.id; + /** @type {?|undefined} */ + Options.prototype.closable; + /** @type {?|undefined} */ + Options.prototype.life; + /** @type {?|undefined} */ + Options.prototype.sticky; + /** @type {?|undefined} */ + Options.prototype.data; + /** @type {?|undefined} */ + Options.prototype.messageLocalizationParams; + /** @type {?|undefined} */ + Options.prototype.titleLocalizationParams; + } +})(Toaster || (Toaster = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL21vZGVscy90b2FzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNLEtBQVcsT0FBTyxDQWtCdkI7QUFsQkQsV0FBaUIsT0FBTzs7OztJQUN0QixzQkFRQzs7OztRQVBDLHFCQUFTOztRQUNULDJCQUFtQjs7UUFDbkIsdUJBQWM7O1FBQ2QseUJBQWlCOztRQUNqQix1QkFBVzs7UUFDWCw0Q0FBcUM7O1FBQ3JDLDBDQUFtQzs7QUFVdkMsQ0FBQyxFQWxCZ0IsT0FBTyxLQUFQLE9BQU8sUUFrQnZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBUb2FzdGVyIHtcbiAgZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICBpZD86IGFueTtcbiAgICBjbG9zYWJsZT86IGJvb2xlYW47XG4gICAgbGlmZT86IG51bWJlcjtcbiAgICBzdGlja3k/OiBib29sZWFuO1xuICAgIGRhdGE/OiBhbnk7XG4gICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtcz86IHN0cmluZ1tdO1xuICAgIHRpdGxlTG9jYWxpemF0aW9uUGFyYW1zPzogc3RyaW5nW107XG4gIH1cblxuICBleHBvcnQgdHlwZSBTZXZlcml0eSA9ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdlcnJvcic7XG5cbiAgZXhwb3J0IGNvbnN0IGVudW0gU3RhdHVzIHtcbiAgICBjb25maXJtID0gJ2NvbmZpcm0nLFxuICAgIHJlamVjdCA9ICdyZWplY3QnLFxuICAgIGRpc21pc3MgPSAnZGlzbWlzcycsXG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/services/confirmation.service.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/services/confirmation.service.js new file mode 100644 index 0000000000..d2a6377965 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/services/confirmation.service.js @@ -0,0 +1,32 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { AbstractToasterClass } from '../abstracts/toaster'; +import * as i0 from "@angular/core"; +import * as i1 from "primeng/components/common/messageservice"; +export class ConfirmationService extends AbstractToasterClass { + constructor() { + super(...arguments); + this.key = 'abpConfirmation'; + this.sticky = true; + } +} +ConfirmationService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } +]; +/** @nocollapse */ ConfirmationService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ConfirmationService_Factory() { return new ConfirmationService(i0.ɵɵinject(i1.MessageService)); }, token: ConfirmationService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @protected + */ + ConfirmationService.prototype.key; + /** + * @type {?} + * @protected + */ + ConfirmationService.prototype.sticky; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBSTVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxvQkFBMEM7SUFEbkY7O1FBRVksUUFBRyxHQUFXLGlCQUFpQixDQUFDO1FBRWhDLFdBQU0sR0FBWSxJQUFJLENBQUM7S0FDbEM7OztZQUxBLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7Ozs7Ozs7O0lBRWhDLGtDQUEwQzs7Ozs7SUFFMUMscUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RUb2FzdGVyQ2xhc3MgfSBmcm9tICcuLi9hYnN0cmFjdHMvdG9hc3Rlcic7XG5pbXBvcnQgeyBDb25maXJtYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvY29uZmlybWF0aW9uJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb25maXJtYXRpb25TZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RUb2FzdGVyQ2xhc3M8Q29uZmlybWF0aW9uLk9wdGlvbnM+IHtcbiAgcHJvdGVjdGVkIGtleTogc3RyaW5nID0gJ2FicENvbmZpcm1hdGlvbic7XG5cbiAgcHJvdGVjdGVkIHN0aWNreTogYm9vbGVhbiA9IHRydWU7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/services/index.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/services/index.js new file mode 100644 index 0000000000..99399450aa --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/services/index.js @@ -0,0 +1,7 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { ConfirmationService } from './confirmation.service'; +export { ToasterService } from './toaster.service'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsb0NBQWMsd0JBQXdCLENBQUM7QUFDdkMsK0JBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9hc3Rlci5zZXJ2aWNlJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/services/toaster.service.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/services/toaster.service.js new file mode 100644 index 0000000000..9e7b2e3a0a --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/services/toaster.service.js @@ -0,0 +1,26 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { AbstractToasterClass } from '../abstracts/toaster'; +import * as i0 from "@angular/core"; +import * as i1 from "primeng/components/common/messageservice"; +export class ToasterService extends AbstractToasterClass { + /** + * @param {?} messages + * @return {?} + */ + addAll(messages) { + this.messageService.addAll(messages.map((/** + * @param {?} message + * @return {?} + */ + message => (Object.assign({ key: this.key }, message))))); + } +} +ToasterService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } +]; +/** @nocollapse */ ToasterService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ToasterService_Factory() { return new ToasterService(i0.ɵɵinject(i1.MessageService)); }, token: ToasterService, providedIn: "root" }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdG9hc3Rlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFJNUQsTUFBTSxPQUFPLGNBQWUsU0FBUSxvQkFBb0I7Ozs7O0lBQ3RELE1BQU0sQ0FBQyxRQUFtQjtRQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRzs7OztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsaUJBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUssT0FBTyxFQUFHLEVBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7OztZQUpGLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFRvYXN0ZXJDbGFzcyB9IGZyb20gJy4uL2Fic3RyYWN0cy90b2FzdGVyJztcbmltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tICdwcmltZW5nL2NvbXBvbmVudHMvY29tbW9uL21lc3NhZ2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRvYXN0ZXJTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RUb2FzdGVyQ2xhc3Mge1xuICBhZGRBbGwobWVzc2FnZXM6IE1lc3NhZ2VbXSk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkQWxsKG1lc3NhZ2VzLm1hcChtZXNzYWdlID0+ICh7IGtleTogdGhpcy5rZXksIC4uLm1lc3NhZ2UgfSkpKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/lib/theme-shared.module.js b/npm/packs/ng/dist/theme-shared/esm2015/lib/theme-shared.module.js new file mode 100644 index 0000000000..d2400dcf96 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/lib/theme-shared.module.js @@ -0,0 +1,67 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { CoreModule, LazyLoadService } from '@abp/ng.core'; +import { APP_INITIALIZER, Injector, NgModule } from '@angular/core'; +import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; +import { MessageService } from 'primeng/components/common/messageservice'; +import { ToastModule } from 'primeng/toast'; +import { forkJoin } from 'rxjs'; +import { take } from 'rxjs/operators'; +import { ConfirmationComponent } from './components/confirmation/confirmation.component'; +import { ModalComponent } from './components/modal/modal.component'; +import { ToastComponent } from './components/toast/toast.component'; +import styles from './contants/styles'; +import { ErrorHandler } from './handlers/error.handler'; +/** + * @param {?} injector + * @return {?} + */ +export function appendScript(injector) { + /** @type {?} */ + const fn = (/** + * @return {?} + */ + function () { + /** @type {?} */ + const lazyLoadService = injector.get(LazyLoadService); + return forkJoin(lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin') /* lazyLoadService.load(null, 'script', scripts) */).pipe(take(1)); + }); + return fn; +} +export class ThemeSharedModule { + /** + * @return {?} + */ + static forRoot() { + return { + ngModule: ThemeSharedModule, + providers: [ + { + provide: APP_INITIALIZER, + multi: true, + deps: [Injector, ErrorHandler], + useFactory: appendScript, + }, + { provide: MessageService, useClass: MessageService }, + ], + }; + } +} +ThemeSharedModule.decorators = [ + { type: NgModule, args: [{ + imports: [ + CoreModule, + ToastModule, + NgbModalModule, + NgxValidateCoreModule.forRoot({ + targetSelector: '.form-group', + }), + ], + declarations: [ConfirmationComponent, ToastComponent, ModalComponent], + exports: [NgbModalModule, ConfirmationComponent, ToastComponent, ModalComponent], + },] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL3RoZW1lLXNoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxNQUFNLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUV4RCxNQUFNLFVBQVUsWUFBWSxDQUFDLFFBQWtCOztVQUN2QyxFQUFFOzs7SUFBRzs7Y0FDSCxlQUFlLEdBQW9CLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO1FBRXRFLE9BQU8sUUFBUSxDQUNiLGVBQWUsQ0FBQyxJQUFJLENBQ2xCLElBQUksRUFDSixPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixZQUFZLENBQ2IsQ0FBQyxtREFBbUQsQ0FDdEQsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFBO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBY0QsTUFBTSxPQUFPLGlCQUFpQjs7OztJQUM1QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsZUFBZTtvQkFDeEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztvQkFDOUIsVUFBVSxFQUFFLFlBQVk7aUJBQ3pCO2dCQUNELEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFO2FBQ3REO1NBQ0YsQ0FBQztJQUNKLENBQUM7OztZQTFCRixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFVBQVU7b0JBQ1YsV0FBVztvQkFDWCxjQUFjO29CQUNkLHFCQUFxQixDQUFDLE9BQU8sQ0FBQzt3QkFDNUIsY0FBYyxFQUFFLGFBQWE7cUJBQzlCLENBQUM7aUJBQ0g7Z0JBQ0QsWUFBWSxFQUFFLENBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQztnQkFDckUsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUM7YUFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlLCBMYXp5TG9hZFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYk1vZGFsTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9jb21wb25lbnRzL2NvbW1vbi9tZXNzYWdlc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vY29udGFudHMvc3R5bGVzJztcbmltcG9ydCB7IEVycm9ySGFuZGxlciB9IGZyb20gJy4vaGFuZGxlcnMvZXJyb3IuaGFuZGxlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRTY3JpcHQoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gIGNvbnN0IGZuID0gZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgbGF6eUxvYWRTZXJ2aWNlOiBMYXp5TG9hZFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoTGF6eUxvYWRTZXJ2aWNlKTtcblxuICAgIHJldHVybiBmb3JrSm9pbihcbiAgICAgIGxhenlMb2FkU2VydmljZS5sb2FkKFxuICAgICAgICBudWxsLFxuICAgICAgICAnc3R5bGUnLFxuICAgICAgICBzdHlsZXMsXG4gICAgICAgICdoZWFkJyxcbiAgICAgICAgJ2FmdGVyYmVnaW4nLFxuICAgICAgKSAvKiBsYXp5TG9hZFNlcnZpY2UubG9hZChudWxsLCAnc2NyaXB0Jywgc2NyaXB0cykgKi8sXG4gICAgKS5waXBlKHRha2UoMSkpO1xuICB9O1xuXG4gIHJldHVybiBmbjtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvcmVNb2R1bGUsXG4gICAgVG9hc3RNb2R1bGUsXG4gICAgTmdiTW9kYWxNb2R1bGUsXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgdGFyZ2V0U2VsZWN0b3I6ICcuZm9ybS1ncm91cCcsXG4gICAgfSksXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW0NvbmZpcm1hdGlvbkNvbXBvbmVudCwgVG9hc3RDb21wb25lbnQsIE1vZGFsQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW05nYk1vZGFsTW9kdWxlLCBDb25maXJtYXRpb25Db21wb25lbnQsIFRvYXN0Q29tcG9uZW50LCBNb2RhbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFRoZW1lU2hhcmVkTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBUaGVtZVNoYXJlZE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgIGRlcHM6IFtJbmplY3RvciwgRXJyb3JIYW5kbGVyXSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBhcHBlbmRTY3JpcHQsXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTWVzc2FnZVNlcnZpY2UsIHVzZUNsYXNzOiBNZXNzYWdlU2VydmljZSB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm2015/public-api.js b/npm/packs/ng/dist/theme-shared/esm2015/public-api.js new file mode 100644 index 0000000000..76b93dad5b --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm2015/public-api.js @@ -0,0 +1,12 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/* + * Public API Surface of theme-shared + */ +export { appendScript, ThemeSharedModule } from './lib/theme-shared.module'; +export { ConfirmationComponent, ToastComponent, ModalComponent } from './lib/components'; +export { Toaster } from './lib/models'; +export { ConfirmationService, ToasterService } from './lib/services'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsZ0RBQWMsMkJBQTJCLENBQUM7QUFDMUMsc0VBQWMsa0JBQWtCLENBQUM7QUFDakMsd0JBQWMsY0FBYyxDQUFDO0FBQzdCLG9EQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0aGVtZS1zaGFyZWRcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90aGVtZS1zaGFyZWQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm5/abp-ng.theme.shared.js b/npm/packs/ng/dist/theme-shared/esm5/abp-ng.theme.shared.js new file mode 100644 index 0000000000..310c64f505 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm5/abp-ng.theme.shared.js @@ -0,0 +1,15 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * Generated bundle index. Do not edit. + */ +export { appendScript, ThemeSharedModule, ConfirmationComponent, ToastComponent, ModalComponent, Toaster, ConfirmationService, ToasterService } from './public-api'; +export { AbstractToasterClass as ɵc } from './lib/abstracts/toaster'; +export { ConfirmationComponent as ɵa } from './lib/components/confirmation/confirmation.component'; +export { ModalComponent as ɵe } from './lib/components/modal/modal.component'; +export { ToastComponent as ɵd } from './lib/components/toast/toast.component'; +export { ErrorHandler as ɵf } from './lib/handlers/error.handler'; +export { ConfirmationService as ɵb } from './lib/services/confirmation.service'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLnNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsiYWJwLW5nLnRoZW1lLnNoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscUpBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDakcsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0Fic3RyYWN0VG9hc3RlckNsYXNzIGFzIMm1Y30gZnJvbSAnLi9saWIvYWJzdHJhY3RzL3RvYXN0ZXInO1xuZXhwb3J0IHtDb25maXJtYXRpb25Db21wb25lbnQgYXMgybVhfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7TW9kYWxDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQge1RvYXN0Q29tcG9uZW50IGFzIMm1ZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQnO1xuZXhwb3J0IHtFcnJvckhhbmRsZXIgYXMgybVmfSBmcm9tICcuL2xpYi9oYW5kbGVycy9lcnJvci5oYW5kbGVyJztcbmV4cG9ydCB7Q29uZmlybWF0aW9uU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJzsiXX0= \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm5/lib/abstracts/toaster.js b/npm/packs/ng/dist/theme-shared/esm5/lib/abstracts/toaster.js new file mode 100644 index 0000000000..f6543f8d5e --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm5/lib/abstracts/toaster.js @@ -0,0 +1,142 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Subject } from 'rxjs'; +/** + * @template T + */ +var /** + * @template T + */ +AbstractToasterClass = /** @class */ (function () { + function AbstractToasterClass(messageService) { + this.messageService = messageService; + this.key = 'abpToast'; + this.sticky = false; + } + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.info = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'info', options); + }; + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.success = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'success', options); + }; + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.warn = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'warn', options); + }; + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.error = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'error', options); + }; + /** + * @protected + * @param {?} message + * @param {?} title + * @param {?} severity + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.show = /** + * @protected + * @param {?} message + * @param {?} title + * @param {?} severity + * @param {?=} options + * @return {?} + */ + function (message, title, severity, options) { + this.messageService.clear(this.key); + this.messageService.add(tslib_1.__assign({ severity: severity, detail: message, summary: title }, options, { key: this.key }, (typeof (options || ((/** @type {?} */ ({})))).sticky === 'undefined' && { sticky: this.sticky }))); + this.status$ = new Subject(); + return this.status$; + }; + /** + * @param {?=} status + * @return {?} + */ + AbstractToasterClass.prototype.clear = /** + * @param {?=} status + * @return {?} + */ + function (status) { + this.messageService.clear(this.key); + this.status$.next(status || "dismiss" /* dismiss */); + this.status$.complete(); + }; + return AbstractToasterClass; +}()); +/** + * @template T + */ +export { AbstractToasterClass }; +if (false) { + /** + * @type {?} + * @protected + */ + AbstractToasterClass.prototype.status$; + /** + * @type {?} + * @protected + */ + AbstractToasterClass.prototype.key; + /** + * @type {?} + * @protected + */ + AbstractToasterClass.prototype.sticky; + /** + * @type {?} + * @protected + */ + AbstractToasterClass.prototype.messageService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2Fic3RyYWN0cy90b2FzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUczQzs7OztJQU9FLDhCQUFzQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFKMUMsUUFBRyxHQUFXLFVBQVUsQ0FBQztRQUV6QixXQUFNLEdBQVksS0FBSyxDQUFDO0lBRXFCLENBQUM7Ozs7Ozs7SUFDeEQsbUNBQUk7Ozs7OztJQUFKLFVBQUssT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDOzs7Ozs7O0lBRUQsc0NBQU87Ozs7OztJQUFQLFVBQVEsT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQ2pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7Ozs7O0lBRUQsbUNBQUk7Ozs7OztJQUFKLFVBQUssT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDOzs7Ozs7O0lBRUQsb0NBQUs7Ozs7OztJQUFMLFVBQU0sT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDOzs7Ozs7Ozs7SUFFUyxtQ0FBSTs7Ozs7Ozs7SUFBZCxVQUFlLE9BQWUsRUFBRSxLQUFhLEVBQUUsUUFBMEIsRUFBRSxPQUFXO1FBQ3BGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsb0JBQ3JCLFFBQVEsVUFBQSxFQUNSLE1BQU0sRUFBRSxPQUFPLEVBQ2YsT0FBTyxFQUFFLEtBQUssSUFDWCxPQUFPLElBQ1YsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLElBQ1YsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsbUJBQUEsRUFBRSxFQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxXQUFXLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQ3RGLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFrQixDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDOzs7OztJQUVELG9DQUFLOzs7O0lBQUwsVUFBTSxNQUF1QjtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSwyQkFBMEIsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNILDJCQUFDO0FBQUQsQ0FBQyxBQTVDRCxJQTRDQzs7Ozs7Ozs7OztJQTNDQyx1Q0FBMkM7Ozs7O0lBRTNDLG1DQUFtQzs7Ozs7SUFFbkMsc0NBQWtDOzs7OztJQUV0Qiw4Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvY29tcG9uZW50cy9jb21tb24vbWVzc2FnZXNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RlciB9IGZyb20gJy4uL21vZGVscy90b2FzdGVyJztcblxuZXhwb3J0IGNsYXNzIEFic3RyYWN0VG9hc3RlckNsYXNzPFQgPSBUb2FzdGVyLk9wdGlvbnM+IHtcbiAgcHJvdGVjdGVkIHN0YXR1cyQ6IFN1YmplY3Q8VG9hc3Rlci5TdGF0dXM+O1xuXG4gIHByb3RlY3RlZCBrZXk6IHN0cmluZyA9ICdhYnBUb2FzdCc7XG5cbiAgcHJvdGVjdGVkIHN0aWNreTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHt9XG4gIGluZm8obWVzc2FnZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBvcHRpb25zPzogVCk6IE9ic2VydmFibGU8VG9hc3Rlci5TdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93KG1lc3NhZ2UsIHRpdGxlLCAnaW5mbycsIG9wdGlvbnMpO1xuICB9XG5cbiAgc3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBUKTogT2JzZXJ2YWJsZTxUb2FzdGVyLlN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLnNob3cobWVzc2FnZSwgdGl0bGUsICdzdWNjZXNzJywgb3B0aW9ucyk7XG4gIH1cblxuICB3YXJuKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZywgb3B0aW9ucz86IFQpOiBPYnNlcnZhYmxlPFRvYXN0ZXIuU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyhtZXNzYWdlLCB0aXRsZSwgJ3dhcm4nLCBvcHRpb25zKTtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZywgb3B0aW9ucz86IFQpOiBPYnNlcnZhYmxlPFRvYXN0ZXIuU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyhtZXNzYWdlLCB0aXRsZSwgJ2Vycm9yJywgb3B0aW9ucyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hvdyhtZXNzYWdlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIHNldmVyaXR5OiBUb2FzdGVyLlNldmVyaXR5LCBvcHRpb25zPzogVCk6IE9ic2VydmFibGU8VG9hc3Rlci5TdGF0dXM+IHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNsZWFyKHRoaXMua2V5KTtcblxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgIHNldmVyaXR5LFxuICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgc3VtbWFyeTogdGl0bGUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgIC4uLih0eXBlb2YgKG9wdGlvbnMgfHwgKHt9IGFzIGFueSkpLnN0aWNreSA9PT0gJ3VuZGVmaW5lZCcgJiYgeyBzdGlja3k6IHRoaXMuc3RpY2t5IH0pLFxuICAgIH0pO1xuICAgIHRoaXMuc3RhdHVzJCA9IG5ldyBTdWJqZWN0PFRvYXN0ZXIuU3RhdHVzPigpO1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyQ7XG4gIH1cblxuICBjbGVhcihzdGF0dXM/OiBUb2FzdGVyLlN0YXR1cykge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIodGhpcy5rZXkpO1xuICAgIHRoaXMuc3RhdHVzJC5uZXh0KHN0YXR1cyB8fCBUb2FzdGVyLlN0YXR1cy5kaXNtaXNzKTtcbiAgICB0aGlzLnN0YXR1cyQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm5/lib/components/confirmation/confirmation.component.js b/npm/packs/ng/dist/theme-shared/esm5/lib/components/confirmation/confirmation.component.js new file mode 100644 index 0000000000..74f44b2c36 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm5/lib/components/confirmation/confirmation.component.js @@ -0,0 +1,51 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +import { ConfirmationService } from '../../services/confirmation.service'; +var ConfirmationComponent = /** @class */ (function () { + function ConfirmationComponent(confirmationService) { + this.confirmationService = confirmationService; + this.confirm = "confirm" /* confirm */; + this.reject = "reject" /* reject */; + this.dismiss = "dismiss" /* dismiss */; + } + /** + * @param {?} status + * @return {?} + */ + ConfirmationComponent.prototype.close = /** + * @param {?} status + * @return {?} + */ + function (status) { + this.confirmationService.clear(status); + }; + ConfirmationComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-confirmation', + template: "\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n " + }] } + ]; + /** @nocollapse */ + ConfirmationComponent.ctorParameters = function () { return [ + { type: ConfirmationService } + ]; }; + return ConfirmationComponent; +}()); +export { ConfirmationComponent }; +if (false) { + /** @type {?} */ + ConfirmationComponent.prototype.confirm; + /** @type {?} */ + ConfirmationComponent.prototype.reject; + /** @type {?} */ + ConfirmationComponent.prototype.dismiss; + /** + * @type {?} + * @private + */ + ConfirmationComponent.prototype.confirmationService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHMUU7SUFzQ0UsK0JBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBSjVELFlBQU8sMkJBQTBCO1FBQ2pDLFdBQU0seUJBQXlCO1FBQy9CLFlBQU8sMkJBQTBCO0lBRThCLENBQUM7Ozs7O0lBRWhFLHFDQUFLOzs7O0lBQUwsVUFBTSxNQUFzQjtRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O2dCQTFDRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLDhwQ0E2QlQ7aUJBQ0Y7Ozs7Z0JBbkNRLG1CQUFtQjs7SUE4QzVCLDRCQUFDO0NBQUEsQUEzQ0QsSUEyQ0M7U0FWWSxxQkFBcUI7OztJQUNoQyx3Q0FBaUM7O0lBQ2pDLHVDQUErQjs7SUFDL0Isd0NBQWlDOzs7OztJQUVyQixvREFBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RvYXN0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtY29uZmlybWF0aW9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cC10b2FzdFxuICAgICAgcG9zaXRpb249XCJjZW50ZXJcIlxuICAgICAga2V5PVwiYWJwQ29uZmlybWF0aW9uXCJcbiAgICAgIChvbkNsb3NlKT1cImNsb3NlKGRpc21pc3MpXCJcbiAgICAgIFttb2RhbF09XCJ0cnVlXCJcbiAgICAgIFtiYXNlWkluZGV4XT1cIjEwMDBcIlxuICAgICAgc3R5bGVDbGFzcz1cIlwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2Uuc3VtbWFyeVwiIGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5cbiAgICAgICAgICAgIHt7IG1lc3NhZ2Uuc3VtbWFyeSB8IGFicExvY2FsaXphdGlvbjogbWVzc2FnZS50aXRsZUxvY2FsaXphdGlvblBhcmFtcyB9fVxuICAgICAgICAgIDwvaDQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICAgIHt7IG1lc3NhZ2UuZGV0YWlsIHwgYWJwTG9jYWxpemF0aW9uOiBtZXNzYWdlLm1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXMgfX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFtZXNzYWdlLmhpZGVDYW5jZWxCdG5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZShyZWplY3QpXCI+XG4gICAgICAgICAgICB7eyBtZXNzYWdlLmNhbmNlbENvcHkgfHwgJ0FicElkZW50aXR5OjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFtZXNzYWdlLmhpZGVZZXNCdG5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZShjb25maXJtKVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgbWVzc2FnZS55ZXNDb3B5IHx8ICdBYnBJZGVudGl0eTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uQ29tcG9uZW50IHtcbiAgY29uZmlybSA9IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm07XG4gIHJlamVjdCA9IFRvYXN0ZXIuU3RhdHVzLnJlamVjdDtcbiAgZGlzbWlzcyA9IFRvYXN0ZXIuU3RhdHVzLmRpc21pc3M7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlKSB7fVxuXG4gIGNsb3NlKHN0YXR1czogVG9hc3Rlci5TdGF0dXMpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY2xlYXIoc3RhdHVzKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm5/lib/components/index.js b/npm/packs/ng/dist/theme-shared/esm5/lib/components/index.js new file mode 100644 index 0000000000..c5ead0704c --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm5/lib/components/index.js @@ -0,0 +1,8 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { ConfirmationComponent } from './confirmation/confirmation.component'; +export { ToastComponent } from './toast/toast.component'; +export { ModalComponent } from './modal/modal.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxzQ0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCwrQkFBYyx5QkFBeUIsQ0FBQztBQUN4QywrQkFBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdC90b2FzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm5/lib/components/modal/modal.component.js b/npm/packs/ng/dist/theme-shared/esm5/lib/components/modal/modal.component.js new file mode 100644 index 0000000000..47b4c1de7e --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm5/lib/components/modal/modal.component.js @@ -0,0 +1,267 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component, ContentChild, ElementRef, EventEmitter, Input, Output, Renderer2, TemplateRef, ViewChild, } from '@angular/core'; +import { fromEvent, Subject, timer } from 'rxjs'; +import { debounceTime, filter, take, takeUntil } from 'rxjs/operators'; +import { ConfirmationService } from '../../services/confirmation.service'; +var ModalComponent = /** @class */ (function () { + function ModalComponent(renderer, confirmationService) { + this.renderer = renderer; + this.confirmationService = confirmationService; + this.centered = true; + this.modalClass = ''; + this.size = 'lg'; + this.visibleChange = new EventEmitter(); + this._visible = false; + this.closable = false; + this.isOpenConfirmation = false; + this.destroy$ = new Subject(); + } + Object.defineProperty(ModalComponent.prototype, "visible", { + get: /** + * @return {?} + */ + function () { + return this._visible; + }, + set: /** + * @param {?} value + * @return {?} + */ + function (value) { + var _this = this; + if (!this.modalContent) { + setTimeout((/** + * @return {?} + */ + function () { return (_this.visible = value); }), 0); + return; + } + if (value) { + this.setVisible(value); + this.listen(); + } + else { + this.closable = false; + this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top'); + setTimeout((/** + * @return {?} + */ + function () { + _this.setVisible(value); + _this.renderer.removeClass(_this.modalContent.nativeElement, 'fade-out-top'); + _this.ngOnDestroy(); + }), 350); + } + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + ModalComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { + this.destroy$.next(); + }; + /** + * @param {?} value + * @return {?} + */ + ModalComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + var _this = this; + this._visible = value; + this.visibleChange.emit(value); + value + ? timer(500) + .pipe(take(1)) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + function (_) { return (_this.closable = true); })) + : (this.closable = false); + }; + /** + * @return {?} + */ + ModalComponent.prototype.listen = /** + * @return {?} + */ + function () { + var _this = this; + fromEvent(document, 'click') + .pipe(debounceTime(350), takeUntil(this.destroy$), filter((/** + * @param {?} event + * @return {?} + */ + function (event) { + return event && + _this.closable && + _this.modalContent && + !_this.isOpenConfirmation && + !_this.modalContent.nativeElement.contains(event.target); + }))) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + function (_) { + _this.close(); + })); + fromEvent(document, 'keyup') + .pipe(takeUntil(this.destroy$), filter((/** + * @param {?} key + * @return {?} + */ + function (key) { return key && key.code === 'Escape' && _this.closable; })), debounceTime(350)) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + function (_) { + _this.close(); + })); + fromEvent(this.abpClose.nativeElement, 'click') + .pipe(takeUntil(this.destroy$), filter((/** + * @return {?} + */ + function () { return !!(_this.closable && _this.modalContent); })), debounceTime(350)) + .subscribe((/** + * @return {?} + */ + function () { return _this.close(); })); + }; + /** + * @return {?} + */ + ModalComponent.prototype.close = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var nodes = getFlatNodes(((/** @type {?} */ (this.modalContent.nativeElement.querySelector('#abp-modal-body')))).childNodes); + if (hasNgDirty(nodes)) { + if (this.isOpenConfirmation) + return; + this.isOpenConfirmation = true; + this.confirmationService + .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure') + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + timer(400).subscribe((/** + * @return {?} + */ + function () { + _this.isOpenConfirmation = false; + })); + if (status === "confirm" /* confirm */) { + _this.visible = false; + } + })); + } + else { + this.visible = false; + } + }; + ModalComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-modal', + template: "\n \n
    \n
    \n \n\n \n
    \n
    \n \n\n
    \n \n
    \n
    \n
    \n \n\n \n\n" + }] } + ]; + /** @nocollapse */ + ModalComponent.ctorParameters = function () { return [ + { type: Renderer2 }, + { type: ConfirmationService } + ]; }; + ModalComponent.propDecorators = { + visible: [{ type: Input }], + centered: [{ type: Input }], + modalClass: [{ type: Input }], + size: [{ type: Input }], + visibleChange: [{ type: Output }], + abpHeader: [{ type: ContentChild, args: ['abpHeader', { static: false },] }], + abpBody: [{ type: ContentChild, args: ['abpBody', { static: false },] }], + abpFooter: [{ type: ContentChild, args: ['abpFooter', { static: false },] }], + abpClose: [{ type: ContentChild, args: ['abpClose', { static: false, read: ElementRef },] }], + modalContent: [{ type: ViewChild, args: ['abpModalContent', { static: false },] }] + }; + return ModalComponent; +}()); +export { ModalComponent }; +if (false) { + /** @type {?} */ + ModalComponent.prototype.centered; + /** @type {?} */ + ModalComponent.prototype.modalClass; + /** @type {?} */ + ModalComponent.prototype.size; + /** @type {?} */ + ModalComponent.prototype.visibleChange; + /** @type {?} */ + ModalComponent.prototype.abpHeader; + /** @type {?} */ + ModalComponent.prototype.abpBody; + /** @type {?} */ + ModalComponent.prototype.abpFooter; + /** @type {?} */ + ModalComponent.prototype.abpClose; + /** @type {?} */ + ModalComponent.prototype.modalContent; + /** @type {?} */ + ModalComponent.prototype._visible; + /** @type {?} */ + ModalComponent.prototype.closable; + /** @type {?} */ + ModalComponent.prototype.isOpenConfirmation; + /** @type {?} */ + ModalComponent.prototype.destroy$; + /** + * @type {?} + * @private + */ + ModalComponent.prototype.renderer; + /** + * @type {?} + * @private + */ + ModalComponent.prototype.confirmationService; +} +/** + * @param {?} nodes + * @return {?} + */ +function getFlatNodes(nodes) { + return Array.from(nodes).reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return tslib_1.__spread(acc, (val.childNodes && val.childNodes.length ? Array.from(val.childNodes) : [val])); }), []); +} +/** + * @param {?} nodes + * @return {?} + */ +function hasNgDirty(nodes) { + return nodes.findIndex((/** + * @param {?} node + * @return {?} + */ + function (node) { return (node.className || '').indexOf('ng-dirty') > -1; })) > -1; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUsxRTtJQXVERSx3QkFBb0IsUUFBbUIsRUFBVSxtQkFBd0M7UUFBckUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUExQmhGLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFFekIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUV4QixTQUFJLEdBQWMsSUFBSSxDQUFDO1FBRXRCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVl0RCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRXBDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRTZELENBQUM7SUFsRDdGLHNCQUNJLG1DQUFPOzs7O1FBRFg7WUFFRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQzs7Ozs7UUFDRCxVQUFZLEtBQWM7WUFBMUIsaUJBa0JD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QUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUExRixDQUEyRixHQUN6RyxFQUFFLENBQ0gsQ0FBQztBQUNKLENBQUM7Ozs7O0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBb0I7SUFDdEMsT0FBTyxLQUFLLENBQUMsU0FBUzs7OztJQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBL0MsQ0FBK0MsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3ZGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0ZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdG9hc3Rlcic7XG5cbmV4cG9ydCB0eXBlIE1vZGFsU2l6ZSA9ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMubW9kYWxDb250ZW50KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLnZpc2libGUgPSB2YWx1ZSksIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zZXRWaXNpYmxlKHZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2FibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudCwgJ2ZhZGUtb3V0LXRvcCcpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudCwgJ2ZhZGUtb3V0LXRvcCcpO1xuICAgICAgICB0aGlzLm5nT25EZXN0cm95KCk7XG4gICAgICB9LCAzNTApO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIGNlbnRlcmVkOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKSBtb2RhbENsYXNzOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSBzaXplOiBNb2RhbFNpemUgPSAnbGcnO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicEhlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBIZWFkZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnYWJwQm9keScsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBCb2R5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicEZvb3RlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBGb290ZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnYWJwQ2xvc2UnLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IEVsZW1lbnRSZWYgfSkgYWJwQ2xvc2U6IEVsZW1lbnRSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdhYnBNb2RhbENvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgbW9kYWxDb250ZW50OiBFbGVtZW50UmVmO1xuXG4gIF92aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY2xvc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBpc09wZW5Db25maXJtYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICBzZXRWaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB2YWx1ZVxuICAgICAgPyB0aW1lcig1MDApXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKF8gPT4gKHRoaXMuY2xvc2FibGUgPSB0cnVlKSlcbiAgICAgIDogKHRoaXMuY2xvc2FibGUgPSBmYWxzZSk7XG4gIH1cblxuICBsaXN0ZW4oKSB7XG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgzNTApLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+XG4gICAgICAgICAgICBldmVudCAmJlxuICAgICAgICAgICAgdGhpcy5jbG9zYWJsZSAmJlxuICAgICAgICAgICAgdGhpcy5tb2RhbENvbnRlbnQgJiZcbiAgICAgICAgICAgICF0aGlzLmlzT3BlbkNvbmZpcm1hdGlvbiAmJlxuICAgICAgICAgICAgIXRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXyA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0pO1xuXG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5dXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZmlsdGVyKChrZXk6IEtleWJvYXJkRXZlbnQpID0+IGtleSAmJiBrZXkuY29kZSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5jbG9zYWJsZSksXG4gICAgICAgIGRlYm91bmNlVGltZSgzNTApLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShfID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSk7XG5cbiAgICBmcm9tRXZlbnQodGhpcy5hYnBDbG9zZS5uYXRpdmVFbGVtZW50LCAnY2xpY2snKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZmlsdGVyKCgpID0+ICEhKHRoaXMuY2xvc2FibGUgJiYgdGhpcy5tb2RhbENvbnRlbnQpKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDM1MCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICBjb25zdCBub2RlcyA9IGdldEZsYXROb2RlcyhcbiAgICAgICh0aGlzLm1vZGFsQ29udGVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJyNhYnAtbW9kYWwtYm9keScpIGFzIEhUTUxFbGVtZW50KS5jaGlsZE5vZGVzLFxuICAgICk7XG5cbiAgICBpZiAoaGFzTmdEaXJ0eShub2RlcykpIHtcbiAgICAgIGlmICh0aGlzLmlzT3BlbkNvbmZpcm1hdGlvbikgcmV0dXJuO1xuXG4gICAgICB0aGlzLmlzT3BlbkNvbmZpcm1hdGlvbiA9IHRydWU7XG4gICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2VcbiAgICAgICAgLndhcm4oJ0FicEFjY291bnQ6OkFyZVlvdVN1cmVZb3VXYW50VG9DYW5jZWxFZGl0aW5nV2FybmluZ01lc3NhZ2UnLCAnQWJwQWNjb3VudDo6QXJlWW91U3VyZScpXG4gICAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogVG9hc3Rlci5TdGF0dXMpID0+IHtcbiAgICAgICAgICB0aW1lcig0MDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzT3BlbkNvbmZpcm1hdGlvbiA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gVG9hc3Rlci5TdGF0dXMuY29uZmlybSkge1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEZsYXROb2Rlcyhub2RlczogTm9kZUxpc3QpOiBIVE1MRWxlbWVudFtdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20obm9kZXMpLnJlZHVjZShcbiAgICAoYWNjLCB2YWwpID0+IFsuLi5hY2MsIC4uLih2YWwuY2hpbGROb2RlcyAmJiB2YWwuY2hpbGROb2Rlcy5sZW5ndGggPyBBcnJheS5mcm9tKHZhbC5jaGlsZE5vZGVzKSA6IFt2YWxdKV0sXG4gICAgW10sXG4gICk7XG59XG5cbmZ1bmN0aW9uIGhhc05nRGlydHkobm9kZXM6IEhUTUxFbGVtZW50W10pIHtcbiAgcmV0dXJuIG5vZGVzLmZpbmRJbmRleChub2RlID0+IChub2RlLmNsYXNzTmFtZSB8fCAnJykuaW5kZXhPZignbmctZGlydHknKSA+IC0xKSA+IC0xO1xufVxuIl19 \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm5/lib/components/toast/toast.component.js b/npm/packs/ng/dist/theme-shared/esm5/lib/components/toast/toast.component.js new file mode 100644 index 0000000000..b44bf3a1b4 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm5/lib/components/toast/toast.component.js @@ -0,0 +1,18 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +var ToastComponent = /** @class */ (function () { + function ToastComponent() { + } + ToastComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-toast', + template: "\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n " + }] } + ]; + return ToastComponent; +}()); +export { ToastComponent }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUM7SUFBQTtJQXNCNkIsQ0FBQzs7Z0JBdEI3QixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSx5MEJBa0JUO2lCQUNGOztJQUM0QixxQkFBQztDQUFBLEFBdEI5QixJQXNCOEI7U0FBakIsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtdG9hc3QnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxwLXRvYXN0IHBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCIga2V5PVwiYWJwVG9hc3RcIiBbYmFzZVpJbmRleF09XCIxMDAwXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwidWktdG9hc3QtaWNvbiBwaVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3BpLWluZm8tY2lyY2xlJzogbWVzc2FnZS5zZXZlcml0eSA9PSAnaW5mbycsXG4gICAgICAgICAgICAncGktZXhjbGFtYXRpb24tdHJpYW5nbGUnOiBtZXNzYWdlLnNldmVyaXR5ID09ICd3YXJuJyxcbiAgICAgICAgICAgICdwaS10aW1lcyc6IG1lc3NhZ2Uuc2V2ZXJpdHkgPT0gJ2Vycm9yJyxcbiAgICAgICAgICAgICdwaS1jaGVjayc6IG1lc3NhZ2Uuc2V2ZXJpdHkgPT0gJ3N1Y2Nlc3MnXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10b2FzdC1tZXNzYWdlLXRleHQtY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10b2FzdC1zdW1tYXJ5XCI+e3sgbWVzc2FnZS5zdW1tYXJ5IHwgYWJwTG9jYWxpemF0aW9uOiBtZXNzYWdlLnRpdGxlTG9jYWxpemF0aW9uUGFyYW1zIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVpLXRvYXN0LWRldGFpbFwiPnt7IG1lc3NhZ2UuZGV0YWlsIHwgYWJwTG9jYWxpemF0aW9uOiBtZXNzYWdlLm1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXMgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RDb21wb25lbnQge31cbiJdfQ== \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/esm5/lib/contants/styles.js b/npm/packs/ng/dist/theme-shared/esm5/lib/contants/styles.js new file mode 100644 index 0000000000..b7f762410f --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/esm5/lib/contants/styles.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export default "\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n\n/* + + + + + + + + ` + }] } +]; +/** @nocollapse */ +ConfirmationComponent.ctorParameters = () => [ + { type: ConfirmationService } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class ModalComponent { + /** + * @param {?} renderer + * @param {?} confirmationService + */ + constructor(renderer, confirmationService) { + this.renderer = renderer; + this.confirmationService = confirmationService; + this.centered = true; + this.modalClass = ''; + this.size = 'lg'; + this.visibleChange = new EventEmitter(); + this._visible = false; + this.closable = false; + this.isOpenConfirmation = false; + this.destroy$ = new Subject(); + } + /** + * @return {?} + */ + get visible() { + return this._visible; + } + /** + * @param {?} value + * @return {?} + */ + set visible(value) { + if (!this.modalContent) { + setTimeout((/** + * @return {?} + */ + () => (this.visible = value)), 0); + return; + } + if (value) { + this.setVisible(value); + this.listen(); + } + else { + this.closable = false; + this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top'); + setTimeout((/** + * @return {?} + */ + () => { + this.setVisible(value); + this.renderer.removeClass(this.modalContent.nativeElement, 'fade-out-top'); + this.ngOnDestroy(); + }), 350); + } + } + /** + * @return {?} + */ + ngOnDestroy() { + this.destroy$.next(); + } + /** + * @param {?} value + * @return {?} + */ + setVisible(value) { + this._visible = value; + this.visibleChange.emit(value); + value + ? timer(500) + .pipe(take(1)) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + _ => (this.closable = true))) + : (this.closable = false); + } + /** + * @return {?} + */ + listen() { + fromEvent(document, 'click') + .pipe(debounceTime(350), takeUntil(this.destroy$), filter((/** + * @param {?} event + * @return {?} + */ + (event) => event && + this.closable && + this.modalContent && + !this.isOpenConfirmation && + !this.modalContent.nativeElement.contains(event.target)))) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + _ => { + this.close(); + })); + fromEvent(document, 'keyup') + .pipe(takeUntil(this.destroy$), filter((/** + * @param {?} key + * @return {?} + */ + (key) => key && key.code === 'Escape' && this.closable)), debounceTime(350)) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + _ => { + this.close(); + })); + fromEvent(this.abpClose.nativeElement, 'click') + .pipe(takeUntil(this.destroy$), filter((/** + * @return {?} + */ + () => !!(this.closable && this.modalContent))), debounceTime(350)) + .subscribe((/** + * @return {?} + */ + () => this.close())); + } + /** + * @return {?} + */ + close() { + /** @type {?} */ + const nodes = getFlatNodes(((/** @type {?} */ (this.modalContent.nativeElement.querySelector('#abp-modal-body')))).childNodes); + if (hasNgDirty(nodes)) { + if (this.isOpenConfirmation) + return; + this.isOpenConfirmation = true; + this.confirmationService + .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure') + .subscribe((/** + * @param {?} status + * @return {?} + */ + (status) => { + timer(400).subscribe((/** + * @return {?} + */ + () => { + this.isOpenConfirmation = false; + })); + if (status === "confirm" /* confirm */) { + this.visible = false; + } + })); + } + else { + this.visible = false; + } + } +} +ModalComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-modal', + template: "\n \n
    \n
    \n \n\n \n
    \n
    \n \n\n
    \n \n
    \n
    \n
    \n \n\n \n\n" + }] } +]; +/** @nocollapse */ +ModalComponent.ctorParameters = () => [ + { type: Renderer2 }, + { type: ConfirmationService } +]; +ModalComponent.propDecorators = { + visible: [{ type: Input }], + centered: [{ type: Input }], + modalClass: [{ type: Input }], + size: [{ type: Input }], + visibleChange: [{ type: Output }], + abpHeader: [{ type: ContentChild, args: ['abpHeader', { static: false },] }], + abpBody: [{ type: ContentChild, args: ['abpBody', { static: false },] }], + abpFooter: [{ type: ContentChild, args: ['abpFooter', { static: false },] }], + abpClose: [{ type: ContentChild, args: ['abpClose', { static: false, read: ElementRef },] }], + modalContent: [{ type: ViewChild, args: ['abpModalContent', { static: false },] }] +}; +/** + * @param {?} nodes + * @return {?} + */ +function getFlatNodes(nodes) { + return Array.from(nodes).reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? Array.from(val.childNodes) : [val])]), []); +} +/** + * @param {?} nodes + * @return {?} + */ +function hasNgDirty(nodes) { + return nodes.findIndex((/** + * @param {?} node + * @return {?} + */ + node => (node.className || '').indexOf('ng-dirty') > -1)) > -1; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class ToastComponent { +} +ToastComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-toast', + template: ` + + + +
    +
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    +
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    +
    +
    +
    + ` + }] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var styles = ` +.is-invalid .form-control { + border-color: #dc3545; + border-style: solid !important; +} + +.is-invalid .invalid-feedback, +.is-invalid + * .invalid-feedback { + display: block; +} + +.data-tables-filter { + text-align: right; +} + +.pointer { + cursor: pointer; +} + +.navbar .dropdown-submenu a::after { + transform: rotate(-90deg); + position: absolute; + right: 16px; + top: 18px; +} + + +/* { + const { payload: err = (/** @type {?} */ ({})) } = res; + /** @type {?} */ + const body = ((/** @type {?} */ (err))).error.error; + if (err.headers.get('_AbpErrorFormat')) { + /** @type {?} */ + const confirmation$ = this.showError(null, null, body); + if (err.status === 401) { + confirmation$.subscribe((/** + * @return {?} + */ + () => { + this.navigateToLogin(); + })); + } + } + else { + switch (((/** @type {?} */ (err))).status) { + case 401: + this.showError(DEFAULTS.defaultError401.details, DEFAULTS.defaultError401.message).subscribe((/** + * @return {?} + */ + () => this.navigateToLogin())); + break; + case 403: + this.showError(DEFAULTS.defaultError403.details, DEFAULTS.defaultError403.message); + break; + case 404: + this.showError(DEFAULTS.defaultError404.details, DEFAULTS.defaultError404.message); + break; + default: + this.showError(DEFAULTS.defaultError.details, DEFAULTS.defaultError.message); + break; + } + } + })); + } + /** + * @private + * @param {?=} message + * @param {?=} title + * @param {?=} body + * @return {?} + */ + showError(message, title, body) { + if (body) { + if (body.details) { + message = body.details; + title = body.message; + } + else { + message = body.message || DEFAULTS.defaultError.message; + } + } + return this.confirmationService.error(message, title, { + hideCancelBtn: true, + yesCopy: 'OK', + }); + } + /** + * @private + * @return {?} + */ + navigateToLogin() { + this.store.dispatch(new Navigate(['/account/login'], null, { + state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url }, + })); + } +} +ErrorHandler.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } +]; +/** @nocollapse */ +ErrorHandler.ctorParameters = () => [ + { type: Actions }, + { type: Store }, + { type: ConfirmationService } +]; +/** @nocollapse */ ErrorHandler.ngInjectableDef = ɵɵdefineInjectable({ factory: function ErrorHandler_Factory() { return new ErrorHandler(ɵɵinject(Actions), ɵɵinject(Store), ɵɵinject(ConfirmationService)); }, token: ErrorHandler, providedIn: "root" }); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} injector + * @return {?} + */ +function appendScript(injector) { + /** @type {?} */ + const fn = (/** + * @return {?} + */ + function () { + /** @type {?} */ + const lazyLoadService = injector.get(LazyLoadService); + return forkJoin(lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin') /* lazyLoadService.load(null, 'script', scripts) */).pipe(take(1)); + }); + return fn; +} +class ThemeSharedModule { + /** + * @return {?} + */ + static forRoot() { + return { + ngModule: ThemeSharedModule, + providers: [ + { + provide: APP_INITIALIZER, + multi: true, + deps: [Injector, ErrorHandler], + useFactory: appendScript, + }, + { provide: MessageService, useClass: MessageService }, + ], + }; + } +} +ThemeSharedModule.decorators = [ + { type: NgModule, args: [{ + imports: [ + CoreModule, + ToastModule, + NgbModalModule, + NgxValidateCoreModule.forRoot({ + targetSelector: '.form-group', + }), + ], + declarations: [ConfirmationComponent, ToastComponent, ModalComponent], + exports: [NgbModalModule, ConfirmationComponent, ToastComponent, ModalComponent], + },] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var Confirmation; +(function (Confirmation) { + /** + * @record + */ + function Options() { } + Confirmation.Options = Options; +})(Confirmation || (Confirmation = {})); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var Toaster; +(function (Toaster) { + /** + * @record + */ + function Options() { } + Toaster.Options = Options; +})(Toaster || (Toaster = {})); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class ToasterService extends AbstractToasterClass { + /** + * @param {?} messages + * @return {?} + */ + addAll(messages) { + this.messageService.addAll(messages.map((/** + * @param {?} message + * @return {?} + */ + message => (Object.assign({ key: this.key }, message))))); + } +} +ToasterService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } +]; +/** @nocollapse */ ToasterService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ToasterService_Factory() { return new ToasterService(ɵɵinject(MessageService)); }, token: ToasterService, providedIn: "root" }); + +export { ConfirmationComponent, ConfirmationService, ModalComponent, ThemeSharedModule, ToastComponent, Toaster, ToasterService, appendScript, ConfirmationComponent as ɵa, ConfirmationService as ɵb, AbstractToasterClass as ɵc, ToastComponent as ɵd, ModalComponent as ɵe, ErrorHandler as ɵf }; +//# sourceMappingURL=abp-ng.theme.shared.js.map diff --git a/npm/packs/ng/dist/theme-shared/fesm2015/abp-ng.theme.shared.js.map b/npm/packs/ng/dist/theme-shared/fesm2015/abp-ng.theme.shared.js.map new file mode 100644 index 0000000000..b6380669b7 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/fesm2015/abp-ng.theme.shared.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.theme.shared.js","sources":["ng://@abp/ng.theme.shared/lib/abstracts/toaster.ts","ng://@abp/ng.theme.shared/lib/services/confirmation.service.ts","ng://@abp/ng.theme.shared/lib/components/confirmation/confirmation.component.ts","ng://@abp/ng.theme.shared/lib/components/modal/modal.component.ts","ng://@abp/ng.theme.shared/lib/components/toast/toast.component.ts","ng://@abp/ng.theme.shared/lib/contants/styles.ts","ng://@abp/ng.theme.shared/lib/handlers/error.handler.ts","ng://@abp/ng.theme.shared/lib/theme-shared.module.ts","ng://@abp/ng.theme.shared/lib/models/confirmation.ts","ng://@abp/ng.theme.shared/lib/models/toaster.ts","ng://@abp/ng.theme.shared/lib/services/toaster.service.ts"],"sourcesContent":["import { MessageService } from 'primeng/components/common/messageservice';\nimport { Observable, Subject } from 'rxjs';\nimport { Toaster } from '../models/toaster';\n\nexport class AbstractToasterClass {\n protected status$: Subject;\n\n protected key: string = 'abpToast';\n\n protected sticky: boolean = false;\n\n constructor(protected messageService: MessageService) {}\n info(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'info', options);\n }\n\n success(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'success', options);\n }\n\n warn(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'warn', options);\n }\n\n error(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'error', options);\n }\n\n protected show(message: string, title: string, severity: Toaster.Severity, options?: T): Observable {\n this.messageService.clear(this.key);\n\n this.messageService.add({\n severity,\n detail: message,\n summary: title,\n ...options,\n key: this.key,\n ...(typeof (options || ({} as any)).sticky === 'undefined' && { sticky: this.sticky }),\n });\n this.status$ = new Subject();\n return this.status$;\n }\n\n clear(status?: Toaster.Status) {\n this.messageService.clear(this.key);\n this.status$.next(status || Toaster.Status.dismiss);\n this.status$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToasterClass } from '../abstracts/toaster';\nimport { Confirmation } from '../models/confirmation';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmationService extends AbstractToasterClass {\n protected key: string = 'abpConfirmation';\n\n protected sticky: boolean = true;\n}\n","import { Component } from '@angular/core';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\n@Component({\n selector: 'abp-confirmation',\n template: `\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n `,\n})\nexport class ConfirmationComponent {\n confirm = Toaster.Status.confirm;\n reject = Toaster.Status.reject;\n dismiss = Toaster.Status.dismiss;\n\n constructor(private confirmationService: ConfirmationService) {}\n\n close(status: Toaster.Status) {\n this.confirmationService.clear(status);\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { fromEvent, Subject, timer } from 'rxjs';\nimport { debounceTime, filter, take, takeUntil } from 'rxjs/operators';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\n\n@Component({\n selector: 'abp-modal',\n templateUrl: './modal.component.html',\n})\nexport class ModalComponent implements OnDestroy {\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n set visible(value: boolean) {\n if (!this.modalContent) {\n setTimeout(() => (this.visible = value), 0);\n return;\n }\n\n if (value) {\n this.setVisible(value);\n this.listen();\n } else {\n this.closable = false;\n this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top');\n setTimeout(() => {\n this.setVisible(value);\n this.renderer.removeClass(this.modalContent.nativeElement, 'fade-out-top');\n this.ngOnDestroy();\n }, 350);\n }\n }\n\n @Input() centered: boolean = true;\n\n @Input() modalClass: string = '';\n\n @Input() size: ModalSize = 'lg';\n\n @Output() visibleChange = new EventEmitter();\n\n @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef;\n\n @ContentChild('abpBody', { static: false }) abpBody: TemplateRef;\n\n @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef;\n\n @ContentChild('abpClose', { static: false, read: ElementRef }) abpClose: ElementRef;\n\n @ViewChild('abpModalContent', { static: false }) modalContent: ElementRef;\n\n _visible: boolean = false;\n\n closable: boolean = false;\n\n isOpenConfirmation: boolean = false;\n\n destroy$ = new Subject();\n\n constructor(private renderer: Renderer2, private confirmationService: ConfirmationService) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n setVisible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n value\n ? timer(500)\n .pipe(take(1))\n .subscribe(_ => (this.closable = true))\n : (this.closable = false);\n }\n\n listen() {\n fromEvent(document, 'click')\n .pipe(\n debounceTime(350),\n takeUntil(this.destroy$),\n filter(\n (event: MouseEvent) =>\n event &&\n this.closable &&\n this.modalContent &&\n !this.isOpenConfirmation &&\n !this.modalContent.nativeElement.contains(event.target),\n ),\n )\n .subscribe(_ => {\n this.close();\n });\n\n fromEvent(document, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n filter((key: KeyboardEvent) => key && key.code === 'Escape' && this.closable),\n debounceTime(350),\n )\n .subscribe(_ => {\n this.close();\n });\n\n fromEvent(this.abpClose.nativeElement, 'click')\n .pipe(\n takeUntil(this.destroy$),\n filter(() => !!(this.closable && this.modalContent)),\n debounceTime(350),\n )\n .subscribe(() => this.close());\n }\n\n close() {\n const nodes = getFlatNodes(\n (this.modalContent.nativeElement.querySelector('#abp-modal-body') as HTMLElement).childNodes,\n );\n\n if (hasNgDirty(nodes)) {\n if (this.isOpenConfirmation) return;\n\n this.isOpenConfirmation = true;\n this.confirmationService\n .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure')\n .subscribe((status: Toaster.Status) => {\n timer(400).subscribe(() => {\n this.isOpenConfirmation = false;\n });\n\n if (status === Toaster.Status.confirm) {\n this.visible = false;\n }\n });\n } else {\n this.visible = false;\n }\n }\n}\n\nfunction getFlatNodes(nodes: NodeList): HTMLElement[] {\n return Array.from(nodes).reduce(\n (acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? Array.from(val.childNodes) : [val])],\n [],\n );\n}\n\nfunction hasNgDirty(nodes: HTMLElement[]) {\n return nodes.findIndex(node => (node.className || '').indexOf('ng-dirty') > -1) > -1;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-toast',\n template: `\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n `,\n})\nexport class ToastComponent {}\n","export default `\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n\n/* {\n const { payload: err = {} as HttpErrorResponse | any } = res;\n const body = (err as HttpErrorResponse).error.error;\n\n if (err.headers.get('_AbpErrorFormat')) {\n const confirmation$ = this.showError(null, null, body);\n\n if (err.status === 401) {\n confirmation$.subscribe(() => {\n this.navigateToLogin();\n });\n }\n } else {\n switch ((err as HttpErrorResponse).status) {\n case 401:\n this.showError(DEFAULTS.defaultError401.details, DEFAULTS.defaultError401.message).subscribe(() =>\n this.navigateToLogin(),\n );\n break;\n case 403:\n this.showError(DEFAULTS.defaultError403.details, DEFAULTS.defaultError403.message);\n break;\n case 404:\n this.showError(DEFAULTS.defaultError404.details, DEFAULTS.defaultError404.message);\n break;\n default:\n this.showError(DEFAULTS.defaultError.details, DEFAULTS.defaultError.message);\n break;\n }\n }\n });\n }\n\n private showError(message?: string, title?: string, body?: any): Observable {\n if (body) {\n if (body.details) {\n message = body.details;\n title = body.message;\n } else {\n message = body.message || DEFAULTS.defaultError.message;\n }\n }\n\n return this.confirmationService.error(message, title, {\n hideCancelBtn: true,\n yesCopy: 'OK',\n });\n }\n\n private navigateToLogin() {\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n }\n}\n","import { CoreModule, LazyLoadService } from '@abp/ng.core';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgbModalModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { MessageService } from 'primeng/components/common/messageservice';\nimport { ToastModule } from 'primeng/toast';\nimport { forkJoin } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { ConfirmationComponent } from './components/confirmation/confirmation.component';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { ToastComponent } from './components/toast/toast.component';\nimport styles from './contants/styles';\nimport { ErrorHandler } from './handlers/error.handler';\n\nexport function appendScript(injector: Injector) {\n const fn = function() {\n const lazyLoadService: LazyLoadService = injector.get(LazyLoadService);\n\n return forkJoin(\n lazyLoadService.load(\n null,\n 'style',\n styles,\n 'head',\n 'afterbegin',\n ) /* lazyLoadService.load(null, 'script', scripts) */,\n ).pipe(take(1));\n };\n\n return fn;\n}\n\n@NgModule({\n imports: [\n CoreModule,\n ToastModule,\n NgbModalModule,\n NgxValidateCoreModule.forRoot({\n targetSelector: '.form-group',\n }),\n ],\n declarations: [ConfirmationComponent, ToastComponent, ModalComponent],\n exports: [NgbModalModule, ConfirmationComponent, ToastComponent, ModalComponent],\n})\nexport class ThemeSharedModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: ThemeSharedModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector, ErrorHandler],\n useFactory: appendScript,\n },\n { provide: MessageService, useClass: MessageService },\n ],\n };\n }\n}\n","import { Toaster } from './toaster';\n\nexport namespace Confirmation {\n export interface Options extends Toaster.Options {\n hideCancelBtn?: boolean;\n hideYesBtn?: boolean;\n cancelCopy?: string;\n yesCopy?: string;\n }\n}\n","export namespace Toaster {\n export interface Options {\n id?: any;\n closable?: boolean;\n life?: number;\n sticky?: boolean;\n data?: any;\n messageLocalizationParams?: string[];\n titleLocalizationParams?: string[];\n }\n\n export type Severity = 'success' | 'info' | 'warn' | 'error';\n\n export const enum Status {\n confirm = 'confirm',\n reject = 'reject',\n dismiss = 'dismiss',\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToasterClass } from '../abstracts/toaster';\nimport { Message } from 'primeng/components/common/message';\n\n@Injectable({ providedIn: 'root' })\nexport class ToasterService extends AbstractToasterClass {\n addAll(messages: Message[]): void {\n this.messageService.addAll(messages.map(message => ({ key: this.key, ...message })));\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/fesm5/abp-ng.theme.shared.js b/npm/packs/ng/dist/theme-shared/fesm5/abp-ng.theme.shared.js new file mode 100644 index 0000000000..7b6f3c3728 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/fesm5/abp-ng.theme.shared.js @@ -0,0 +1,672 @@ +import { RestOccurError, CoreModule, LazyLoadService } from '@abp/ng.core'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, Renderer2, Input, Output, ContentChild, ElementRef, ViewChild, EventEmitter, NgModule, APP_INITIALIZER, Injector } from '@angular/core'; +import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; +import { MessageService } from 'primeng/components/common/messageservice'; +import { ToastModule } from 'primeng/toast'; +import { Subject, timer, fromEvent, forkJoin } from 'rxjs'; +import { take, debounceTime, takeUntil, filter } from 'rxjs/operators'; +import { __assign, __extends, __spread } from 'tslib'; +import { Navigate, RouterState } from '@ngxs/router-plugin'; +import { Actions, Store, ofActionSuccessful } from '@ngxs/store'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @template T + */ +var /** + * @template T + */ +AbstractToasterClass = /** @class */ (function () { + function AbstractToasterClass(messageService) { + this.messageService = messageService; + this.key = 'abpToast'; + this.sticky = false; + } + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.info = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'info', options); + }; + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.success = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'success', options); + }; + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.warn = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'warn', options); + }; + /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.error = /** + * @param {?} message + * @param {?} title + * @param {?=} options + * @return {?} + */ + function (message, title, options) { + return this.show(message, title, 'error', options); + }; + /** + * @protected + * @param {?} message + * @param {?} title + * @param {?} severity + * @param {?=} options + * @return {?} + */ + AbstractToasterClass.prototype.show = /** + * @protected + * @param {?} message + * @param {?} title + * @param {?} severity + * @param {?=} options + * @return {?} + */ + function (message, title, severity, options) { + this.messageService.clear(this.key); + this.messageService.add(__assign({ severity: severity, detail: message, summary: title }, options, { key: this.key }, (typeof (options || ((/** @type {?} */ ({})))).sticky === 'undefined' && { sticky: this.sticky }))); + this.status$ = new Subject(); + return this.status$; + }; + /** + * @param {?=} status + * @return {?} + */ + AbstractToasterClass.prototype.clear = /** + * @param {?=} status + * @return {?} + */ + function (status) { + this.messageService.clear(this.key); + this.status$.next(status || "dismiss" /* dismiss */); + this.status$.complete(); + }; + return AbstractToasterClass; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ConfirmationService = /** @class */ (function (_super) { + __extends(ConfirmationService, _super); + function ConfirmationService() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.key = 'abpConfirmation'; + _this.sticky = true; + return _this; + } + ConfirmationService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } + ]; + /** @nocollapse */ ConfirmationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ConfirmationService_Factory() { return new ConfirmationService(ɵɵinject(MessageService)); }, token: ConfirmationService, providedIn: "root" }); + return ConfirmationService; +}(AbstractToasterClass)); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ConfirmationComponent = /** @class */ (function () { + function ConfirmationComponent(confirmationService) { + this.confirmationService = confirmationService; + this.confirm = "confirm" /* confirm */; + this.reject = "reject" /* reject */; + this.dismiss = "dismiss" /* dismiss */; + } + /** + * @param {?} status + * @return {?} + */ + ConfirmationComponent.prototype.close = /** + * @param {?} status + * @return {?} + */ + function (status) { + this.confirmationService.clear(status); + }; + ConfirmationComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-confirmation', + template: "\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n " + }] } + ]; + /** @nocollapse */ + ConfirmationComponent.ctorParameters = function () { return [ + { type: ConfirmationService } + ]; }; + return ConfirmationComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ModalComponent = /** @class */ (function () { + function ModalComponent(renderer, confirmationService) { + this.renderer = renderer; + this.confirmationService = confirmationService; + this.centered = true; + this.modalClass = ''; + this.size = 'lg'; + this.visibleChange = new EventEmitter(); + this._visible = false; + this.closable = false; + this.isOpenConfirmation = false; + this.destroy$ = new Subject(); + } + Object.defineProperty(ModalComponent.prototype, "visible", { + get: /** + * @return {?} + */ + function () { + return this._visible; + }, + set: /** + * @param {?} value + * @return {?} + */ + function (value) { + var _this = this; + if (!this.modalContent) { + setTimeout((/** + * @return {?} + */ + function () { return (_this.visible = value); }), 0); + return; + } + if (value) { + this.setVisible(value); + this.listen(); + } + else { + this.closable = false; + this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top'); + setTimeout((/** + * @return {?} + */ + function () { + _this.setVisible(value); + _this.renderer.removeClass(_this.modalContent.nativeElement, 'fade-out-top'); + _this.ngOnDestroy(); + }), 350); + } + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + ModalComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { + this.destroy$.next(); + }; + /** + * @param {?} value + * @return {?} + */ + ModalComponent.prototype.setVisible = /** + * @param {?} value + * @return {?} + */ + function (value) { + var _this = this; + this._visible = value; + this.visibleChange.emit(value); + value + ? timer(500) + .pipe(take(1)) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + function (_) { return (_this.closable = true); })) + : (this.closable = false); + }; + /** + * @return {?} + */ + ModalComponent.prototype.listen = /** + * @return {?} + */ + function () { + var _this = this; + fromEvent(document, 'click') + .pipe(debounceTime(350), takeUntil(this.destroy$), filter((/** + * @param {?} event + * @return {?} + */ + function (event) { + return event && + _this.closable && + _this.modalContent && + !_this.isOpenConfirmation && + !_this.modalContent.nativeElement.contains(event.target); + }))) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + function (_) { + _this.close(); + })); + fromEvent(document, 'keyup') + .pipe(takeUntil(this.destroy$), filter((/** + * @param {?} key + * @return {?} + */ + function (key) { return key && key.code === 'Escape' && _this.closable; })), debounceTime(350)) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + function (_) { + _this.close(); + })); + fromEvent(this.abpClose.nativeElement, 'click') + .pipe(takeUntil(this.destroy$), filter((/** + * @return {?} + */ + function () { return !!(_this.closable && _this.modalContent); })), debounceTime(350)) + .subscribe((/** + * @return {?} + */ + function () { return _this.close(); })); + }; + /** + * @return {?} + */ + ModalComponent.prototype.close = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var nodes = getFlatNodes(((/** @type {?} */ (this.modalContent.nativeElement.querySelector('#abp-modal-body')))).childNodes); + if (hasNgDirty(nodes)) { + if (this.isOpenConfirmation) + return; + this.isOpenConfirmation = true; + this.confirmationService + .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure') + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + timer(400).subscribe((/** + * @return {?} + */ + function () { + _this.isOpenConfirmation = false; + })); + if (status === "confirm" /* confirm */) { + _this.visible = false; + } + })); + } + else { + this.visible = false; + } + }; + ModalComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-modal', + template: "\n \n
    \n
    \n \n\n \n
    \n
    \n \n\n
    \n \n
    \n
    \n
    \n \n\n \n\n" + }] } + ]; + /** @nocollapse */ + ModalComponent.ctorParameters = function () { return [ + { type: Renderer2 }, + { type: ConfirmationService } + ]; }; + ModalComponent.propDecorators = { + visible: [{ type: Input }], + centered: [{ type: Input }], + modalClass: [{ type: Input }], + size: [{ type: Input }], + visibleChange: [{ type: Output }], + abpHeader: [{ type: ContentChild, args: ['abpHeader', { static: false },] }], + abpBody: [{ type: ContentChild, args: ['abpBody', { static: false },] }], + abpFooter: [{ type: ContentChild, args: ['abpFooter', { static: false },] }], + abpClose: [{ type: ContentChild, args: ['abpClose', { static: false, read: ElementRef },] }], + modalContent: [{ type: ViewChild, args: ['abpModalContent', { static: false },] }] + }; + return ModalComponent; +}()); +/** + * @param {?} nodes + * @return {?} + */ +function getFlatNodes(nodes) { + return Array.from(nodes).reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { return __spread(acc, (val.childNodes && val.childNodes.length ? Array.from(val.childNodes) : [val])); }), []); +} +/** + * @param {?} nodes + * @return {?} + */ +function hasNgDirty(nodes) { + return nodes.findIndex((/** + * @param {?} node + * @return {?} + */ + function (node) { return (node.className || '').indexOf('ng-dirty') > -1; })) > -1; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ToastComponent = /** @class */ (function () { + function ToastComponent() { + } + ToastComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-toast', + template: "\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n " + }] } + ]; + return ToastComponent; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var styles = "\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n\n/* {\n protected status$: Subject;\n\n protected key: string = 'abpToast';\n\n protected sticky: boolean = false;\n\n constructor(protected messageService: MessageService) {}\n info(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'info', options);\n }\n\n success(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'success', options);\n }\n\n warn(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'warn', options);\n }\n\n error(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'error', options);\n }\n\n protected show(message: string, title: string, severity: Toaster.Severity, options?: T): Observable {\n this.messageService.clear(this.key);\n\n this.messageService.add({\n severity,\n detail: message,\n summary: title,\n ...options,\n key: this.key,\n ...(typeof (options || ({} as any)).sticky === 'undefined' && { sticky: this.sticky }),\n });\n this.status$ = new Subject();\n return this.status$;\n }\n\n clear(status?: Toaster.Status) {\n this.messageService.clear(this.key);\n this.status$.next(status || Toaster.Status.dismiss);\n this.status$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToasterClass } from '../abstracts/toaster';\nimport { Confirmation } from '../models/confirmation';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmationService extends AbstractToasterClass {\n protected key: string = 'abpConfirmation';\n\n protected sticky: boolean = true;\n}\n","import { Component } from '@angular/core';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\n@Component({\n selector: 'abp-confirmation',\n template: `\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n `,\n})\nexport class ConfirmationComponent {\n confirm = Toaster.Status.confirm;\n reject = Toaster.Status.reject;\n dismiss = Toaster.Status.dismiss;\n\n constructor(private confirmationService: ConfirmationService) {}\n\n close(status: Toaster.Status) {\n this.confirmationService.clear(status);\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { fromEvent, Subject, timer } from 'rxjs';\nimport { debounceTime, filter, take, takeUntil } from 'rxjs/operators';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\n\n@Component({\n selector: 'abp-modal',\n templateUrl: './modal.component.html',\n})\nexport class ModalComponent implements OnDestroy {\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n set visible(value: boolean) {\n if (!this.modalContent) {\n setTimeout(() => (this.visible = value), 0);\n return;\n }\n\n if (value) {\n this.setVisible(value);\n this.listen();\n } else {\n this.closable = false;\n this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top');\n setTimeout(() => {\n this.setVisible(value);\n this.renderer.removeClass(this.modalContent.nativeElement, 'fade-out-top');\n this.ngOnDestroy();\n }, 350);\n }\n }\n\n @Input() centered: boolean = true;\n\n @Input() modalClass: string = '';\n\n @Input() size: ModalSize = 'lg';\n\n @Output() visibleChange = new EventEmitter();\n\n @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef;\n\n @ContentChild('abpBody', { static: false }) abpBody: TemplateRef;\n\n @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef;\n\n @ContentChild('abpClose', { static: false, read: ElementRef }) abpClose: ElementRef;\n\n @ViewChild('abpModalContent', { static: false }) modalContent: ElementRef;\n\n _visible: boolean = false;\n\n closable: boolean = false;\n\n isOpenConfirmation: boolean = false;\n\n destroy$ = new Subject();\n\n constructor(private renderer: Renderer2, private confirmationService: ConfirmationService) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n setVisible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n value\n ? timer(500)\n .pipe(take(1))\n .subscribe(_ => (this.closable = true))\n : (this.closable = false);\n }\n\n listen() {\n fromEvent(document, 'click')\n .pipe(\n debounceTime(350),\n takeUntil(this.destroy$),\n filter(\n (event: MouseEvent) =>\n event &&\n this.closable &&\n this.modalContent &&\n !this.isOpenConfirmation &&\n !this.modalContent.nativeElement.contains(event.target),\n ),\n )\n .subscribe(_ => {\n this.close();\n });\n\n fromEvent(document, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n filter((key: KeyboardEvent) => key && key.code === 'Escape' && this.closable),\n debounceTime(350),\n )\n .subscribe(_ => {\n this.close();\n });\n\n fromEvent(this.abpClose.nativeElement, 'click')\n .pipe(\n takeUntil(this.destroy$),\n filter(() => !!(this.closable && this.modalContent)),\n debounceTime(350),\n )\n .subscribe(() => this.close());\n }\n\n close() {\n const nodes = getFlatNodes(\n (this.modalContent.nativeElement.querySelector('#abp-modal-body') as HTMLElement).childNodes,\n );\n\n if (hasNgDirty(nodes)) {\n if (this.isOpenConfirmation) return;\n\n this.isOpenConfirmation = true;\n this.confirmationService\n .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure')\n .subscribe((status: Toaster.Status) => {\n timer(400).subscribe(() => {\n this.isOpenConfirmation = false;\n });\n\n if (status === Toaster.Status.confirm) {\n this.visible = false;\n }\n });\n } else {\n this.visible = false;\n }\n }\n}\n\nfunction getFlatNodes(nodes: NodeList): HTMLElement[] {\n return Array.from(nodes).reduce(\n (acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? Array.from(val.childNodes) : [val])],\n [],\n );\n}\n\nfunction hasNgDirty(nodes: HTMLElement[]) {\n return nodes.findIndex(node => (node.className || '').indexOf('ng-dirty') > -1) > -1;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-toast',\n template: `\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n `,\n})\nexport class ToastComponent {}\n","export default `\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n\n/* {\n const { payload: err = {} as HttpErrorResponse | any } = res;\n const body = (err as HttpErrorResponse).error.error;\n\n if (err.headers.get('_AbpErrorFormat')) {\n const confirmation$ = this.showError(null, null, body);\n\n if (err.status === 401) {\n confirmation$.subscribe(() => {\n this.navigateToLogin();\n });\n }\n } else {\n switch ((err as HttpErrorResponse).status) {\n case 401:\n this.showError(DEFAULTS.defaultError401.details, DEFAULTS.defaultError401.message).subscribe(() =>\n this.navigateToLogin(),\n );\n break;\n case 403:\n this.showError(DEFAULTS.defaultError403.details, DEFAULTS.defaultError403.message);\n break;\n case 404:\n this.showError(DEFAULTS.defaultError404.details, DEFAULTS.defaultError404.message);\n break;\n default:\n this.showError(DEFAULTS.defaultError.details, DEFAULTS.defaultError.message);\n break;\n }\n }\n });\n }\n\n private showError(message?: string, title?: string, body?: any): Observable {\n if (body) {\n if (body.details) {\n message = body.details;\n title = body.message;\n } else {\n message = body.message || DEFAULTS.defaultError.message;\n }\n }\n\n return this.confirmationService.error(message, title, {\n hideCancelBtn: true,\n yesCopy: 'OK',\n });\n }\n\n private navigateToLogin() {\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n }\n}\n","import { CoreModule, LazyLoadService } from '@abp/ng.core';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgbModalModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { MessageService } from 'primeng/components/common/messageservice';\nimport { ToastModule } from 'primeng/toast';\nimport { forkJoin } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { ConfirmationComponent } from './components/confirmation/confirmation.component';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { ToastComponent } from './components/toast/toast.component';\nimport styles from './contants/styles';\nimport { ErrorHandler } from './handlers/error.handler';\n\nexport function appendScript(injector: Injector) {\n const fn = function() {\n const lazyLoadService: LazyLoadService = injector.get(LazyLoadService);\n\n return forkJoin(\n lazyLoadService.load(\n null,\n 'style',\n styles,\n 'head',\n 'afterbegin',\n ) /* lazyLoadService.load(null, 'script', scripts) */,\n ).pipe(take(1));\n };\n\n return fn;\n}\n\n@NgModule({\n imports: [\n CoreModule,\n ToastModule,\n NgbModalModule,\n NgxValidateCoreModule.forRoot({\n targetSelector: '.form-group',\n }),\n ],\n declarations: [ConfirmationComponent, ToastComponent, ModalComponent],\n exports: [NgbModalModule, ConfirmationComponent, ToastComponent, ModalComponent],\n})\nexport class ThemeSharedModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: ThemeSharedModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector, ErrorHandler],\n useFactory: appendScript,\n },\n { provide: MessageService, useClass: MessageService },\n ],\n };\n }\n}\n","import { Toaster } from './toaster';\n\nexport namespace Confirmation {\n export interface Options extends Toaster.Options {\n hideCancelBtn?: boolean;\n hideYesBtn?: boolean;\n cancelCopy?: string;\n yesCopy?: string;\n }\n}\n","export namespace Toaster {\n export interface Options {\n id?: any;\n closable?: boolean;\n life?: number;\n sticky?: boolean;\n data?: any;\n messageLocalizationParams?: string[];\n titleLocalizationParams?: string[];\n }\n\n export type Severity = 'success' | 'info' | 'warn' | 'error';\n\n export const enum Status {\n confirm = 'confirm',\n reject = 'reject',\n dismiss = 'dismiss',\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToasterClass } from '../abstracts/toaster';\nimport { Message } from 'primeng/components/common/message';\n\n@Injectable({ providedIn: 'root' })\nexport class ToasterService extends AbstractToasterClass {\n addAll(messages: Message[]): void {\n this.messageService.addAll(messages.map(message => ({ key: this.key, ...message })));\n }\n}\n"],"names":["tslib_1.__extends"],"mappings":"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"} \ No newline at end of file diff --git a/npm/packs/ng/dist/theme-shared/lib/abstracts/toaster.d.ts b/npm/packs/ng/dist/theme-shared/lib/abstracts/toaster.d.ts new file mode 100644 index 0000000000..5d42fc0d29 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/lib/abstracts/toaster.d.ts @@ -0,0 +1,16 @@ +import { MessageService } from 'primeng/components/common/messageservice'; +import { Observable, Subject } from 'rxjs'; +import { Toaster } from '../models/toaster'; +export declare class AbstractToasterClass { + protected messageService: MessageService; + protected status$: Subject; + protected key: string; + protected sticky: boolean; + constructor(messageService: MessageService); + info(message: string, title: string, options?: T): Observable; + success(message: string, title: string, options?: T): Observable; + warn(message: string, title: string, options?: T): Observable; + error(message: string, title: string, options?: T): Observable; + protected show(message: string, title: string, severity: Toaster.Severity, options?: T): Observable; + clear(status?: Toaster.Status): void; +} diff --git a/npm/packs/ng/dist/theme-shared/lib/components/confirmation/confirmation.component.d.ts b/npm/packs/ng/dist/theme-shared/lib/components/confirmation/confirmation.component.d.ts new file mode 100644 index 0000000000..3173bbc9b3 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/lib/components/confirmation/confirmation.component.d.ts @@ -0,0 +1,10 @@ +import { ConfirmationService } from '../../services/confirmation.service'; +import { Toaster } from '../../models/toaster'; +export declare class ConfirmationComponent { + private confirmationService; + confirm: Toaster.Status; + reject: Toaster.Status; + dismiss: Toaster.Status; + constructor(confirmationService: ConfirmationService); + close(status: Toaster.Status): void; +} diff --git a/npm/packs/ng/dist/theme-shared/lib/components/index.d.ts b/npm/packs/ng/dist/theme-shared/lib/components/index.d.ts new file mode 100644 index 0000000000..d288f2dafa --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/lib/components/index.d.ts @@ -0,0 +1,3 @@ +export * from './confirmation/confirmation.component'; +export * from './toast/toast.component'; +export * from './modal/modal.component'; diff --git a/npm/packs/ng/dist/theme-shared/lib/components/modal/modal.component.d.ts b/npm/packs/ng/dist/theme-shared/lib/components/modal/modal.component.d.ts new file mode 100644 index 0000000000..7a50dbb3f3 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/lib/components/modal/modal.component.d.ts @@ -0,0 +1,27 @@ +import { ElementRef, EventEmitter, OnDestroy, Renderer2, TemplateRef } from '@angular/core'; +import { Subject } from 'rxjs'; +import { ConfirmationService } from '../../services/confirmation.service'; +export declare type ModalSize = 'sm' | 'md' | 'lg' | 'xl'; +export declare class ModalComponent implements OnDestroy { + private renderer; + private confirmationService; + visible: boolean; + centered: boolean; + modalClass: string; + size: ModalSize; + visibleChange: EventEmitter; + abpHeader: TemplateRef; + abpBody: TemplateRef; + abpFooter: TemplateRef; + abpClose: ElementRef; + modalContent: ElementRef; + _visible: boolean; + closable: boolean; + isOpenConfirmation: boolean; + destroy$: Subject; + constructor(renderer: Renderer2, confirmationService: ConfirmationService); + ngOnDestroy(): void; + setVisible(value: boolean): void; + listen(): void; + close(): void; +} diff --git a/npm/packs/ng/dist/theme-shared/lib/components/toast/toast.component.d.ts b/npm/packs/ng/dist/theme-shared/lib/components/toast/toast.component.d.ts new file mode 100644 index 0000000000..1361635de2 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/lib/components/toast/toast.component.d.ts @@ -0,0 +1,2 @@ +export declare class ToastComponent { +} diff --git a/npm/packs/ng/dist/theme-shared/lib/contants/styles.d.ts b/npm/packs/ng/dist/theme-shared/lib/contants/styles.d.ts new file mode 100644 index 0000000000..29e644982b --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/lib/contants/styles.d.ts @@ -0,0 +1,2 @@ +declare const _default: "\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n\n/* { + protected key: string; + protected sticky: boolean; +} diff --git a/npm/packs/ng/dist/theme-shared/lib/services/index.d.ts b/npm/packs/ng/dist/theme-shared/lib/services/index.d.ts new file mode 100644 index 0000000000..c53455a433 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/lib/services/index.d.ts @@ -0,0 +1,2 @@ +export * from './confirmation.service'; +export * from './toaster.service'; diff --git a/npm/packs/ng/dist/theme-shared/lib/services/toaster.service.d.ts b/npm/packs/ng/dist/theme-shared/lib/services/toaster.service.d.ts new file mode 100644 index 0000000000..723687b1e1 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/lib/services/toaster.service.d.ts @@ -0,0 +1,5 @@ +import { AbstractToasterClass } from '../abstracts/toaster'; +import { Message } from 'primeng/components/common/message'; +export declare class ToasterService extends AbstractToasterClass { + addAll(messages: Message[]): void; +} diff --git a/npm/packs/ng/dist/theme-shared/lib/theme-shared.module.d.ts b/npm/packs/ng/dist/theme-shared/lib/theme-shared.module.d.ts new file mode 100644 index 0000000000..361189ad4e --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/lib/theme-shared.module.d.ts @@ -0,0 +1,5 @@ +import { Injector, ModuleWithProviders } from '@angular/core'; +export declare function appendScript(injector: Injector): () => import("rxjs").Observable; +export declare class ThemeSharedModule { + static forRoot(): ModuleWithProviders; +} diff --git a/npm/packs/ng/dist/theme-shared/package.json b/npm/packs/ng/dist/theme-shared/package.json new file mode 100644 index 0000000000..6ca6f9f60d --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/package.json @@ -0,0 +1,26 @@ +{ + "name": "@abp/ng.theme.shared", + "version": "0.5.0", + "dependencies": { + "@abp/ng.core": "^0.5.0", + "@angular/cdk": "^8.0.1", + "@ng-bootstrap/ng-bootstrap": "^5.0.0-rc.1", + "@ngx-validate/core": "^0.0.1", + "bootstrap": "^4.3.1", + "font-awesome": "^4.7.0", + "ngx-perfect-scrollbar": "^8.0.0", + "primeicons": "^1.0.0", + "primeng": "^8.0.0", + "tslib": "^1.9.0" + }, + "main": "bundles/abp-ng.theme.shared.umd.js", + "module": "fesm5/abp-ng.theme.shared.js", + "es2015": "fesm2015/abp-ng.theme.shared.js", + "esm5": "esm5/abp-ng.theme.shared.js", + "esm2015": "esm2015/abp-ng.theme.shared.js", + "fesm5": "fesm5/abp-ng.theme.shared.js", + "fesm2015": "fesm2015/abp-ng.theme.shared.js", + "typings": "abp-ng.theme.shared.d.ts", + "metadata": "abp-ng.theme.shared.metadata.json", + "sideEffects": false +} diff --git a/npm/packs/ng/dist/theme-shared/public-api.d.ts b/npm/packs/ng/dist/theme-shared/public-api.d.ts new file mode 100644 index 0000000000..b118bb87b6 --- /dev/null +++ b/npm/packs/ng/dist/theme-shared/public-api.d.ts @@ -0,0 +1,4 @@ +export * from './lib/theme-shared.module'; +export * from './lib/components'; +export * from './lib/models'; +export * from './lib/services'; diff --git a/npm/packs/ng/package.json b/npm/packs/ng/package.json new file mode 100644 index 0000000000..a350397940 --- /dev/null +++ b/npm/packs/ng/package.json @@ -0,0 +1,51 @@ +{ + "name": "abp-ng-packages", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/animations": "~8.1.2", + "@angular/common": "~8.1.2", + "@angular/compiler": "~8.1.2", + "@angular/core": "~8.1.2", + "@angular/forms": "~8.1.2", + "@angular/platform-browser": "~8.1.2", + "@angular/platform-browser-dynamic": "~8.1.2", + "@angular/router": "~8.1.2", + "rxjs": "~6.4.0", + "tslib": "^1.9.0", + "zone.js": "~0.9.1" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.801.2", + "@angular-devkit/build-ng-packagr": "~0.801.2", + "@angular/cli": "~8.1.2", + "@angular/compiler-cli": "~8.1.2", + "@angular/language-service": "~8.1.2", + "@types/jasmine": "~3.3.8", + "@types/jasminewd2": "~2.0.3", + "@types/node": "~8.9.4", + "codelyzer": "^5.0.0", + "jasmine-core": "~3.4.0", + "jasmine-spec-reporter": "~4.2.1", + "karma": "~4.1.0", + "karma-chrome-launcher": "~2.2.0", + "karma-coverage-istanbul-reporter": "~2.0.1", + "karma-jasmine": "~2.0.1", + "karma-jasmine-html-reporter": "^1.4.0", + "ng-packagr": "^5.1.0", + "protractor": "~5.4.0", + "symlink-manager": "^1.1.2", + "ts-node": "~7.0.0", + "tsickle": "^0.35.0", + "tslint": "~5.15.0", + "typescript": "~3.4.3" + } +} diff --git a/npm/packs/ng/packages/account/README.md b/npm/packs/ng/packages/account/README.md new file mode 100644 index 0000000000..dc2cd4534a --- /dev/null +++ b/npm/packs/ng/packages/account/README.md @@ -0,0 +1 @@ +

    @abp/ng.account

    diff --git a/npm/packs/ng/packages/account/karma.conf.js b/npm/packs/ng/packages/account/karma.conf.js new file mode 100644 index 0000000000..ccfa764753 --- /dev/null +++ b/npm/packs/ng/packages/account/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../../coverage/account'), + reports: ['html', 'lcovonly'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/npm/packs/ng/packages/account/ng-package.json b/npm/packs/ng/packages/account/ng-package.json new file mode 100644 index 0000000000..9e94619264 --- /dev/null +++ b/npm/packs/ng/packages/account/ng-package.json @@ -0,0 +1,8 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/account", + "lib": { + "entryFile": "src/public-api.ts" + }, + "whitelistedNonPeerDependencies": ["@abp/ng.theme.shared"] +} diff --git a/npm/packs/ng/packages/account/package.json b/npm/packs/ng/packages/account/package.json new file mode 100644 index 0000000000..d66e976fc4 --- /dev/null +++ b/npm/packs/ng/packages/account/package.json @@ -0,0 +1,7 @@ +{ + "name": "@abp/ng.account", + "version": "0.5.0", + "dependencies": { + "@abp/ng.theme.shared": "^0.5.0" + } +} diff --git a/npm/packs/ng/packages/account/src/lib/account-routing.module.ts b/npm/packs/ng/packages/account/src/lib/account-routing.module.ts new file mode 100644 index 0000000000..9ad3e78f93 --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/account-routing.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { LoginComponent } from './components/login/login.component'; +import { RegisterComponent } from './components/register/register.component'; +import { DynamicLayoutComponent } from '@abp/ng.core'; + +const routes: Routes = [ + { path: '', pathMatch: 'full', redirectTo: 'login' }, + { + path: '', + component: DynamicLayoutComponent, + children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class AccountRoutingModule {} diff --git a/npm/packs/ng/packages/account/src/lib/account.module.ts b/npm/packs/ng/packages/account/src/lib/account.module.ts new file mode 100644 index 0000000000..d30ad3485b --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/account.module.ts @@ -0,0 +1,33 @@ +import { CoreModule } from '@abp/ng.core'; +import { NgModule, ModuleWithProviders } from '@angular/core'; +import { AccountRoutingModule } from './account-routing.module'; +import { LoginComponent } from './components/login/login.component'; +import { RegisterComponent } from './components/register/register.component'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { TenantBoxComponent } from './components/tenant-box/tenant-box.component'; +import { Options } from './models/options'; +import { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token'; +import { TableModule } from 'primeng/table'; +import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; + +@NgModule({ + declarations: [LoginComponent, RegisterComponent, TenantBoxComponent], + imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule], + exports: [], +}) +export class AccountModule { + static forRoot(options = {} as Options): ModuleWithProviders { + return { + ngModule: AccountModule, + providers: [ + { provide: ACCOUNT_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: optionsFactory, + deps: [ACCOUNT_OPTIONS], + }, + ], + }; + } +} diff --git a/npm/packs/ng/packages/account/src/lib/components/index.ts b/npm/packs/ng/packages/account/src/lib/components/index.ts new file mode 100644 index 0000000000..8e943f0bad --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/components/index.ts @@ -0,0 +1,2 @@ +export * from './login/login.component'; +export * from './register/register.component'; diff --git a/npm/packs/ng/packages/account/src/lib/components/login/login.component.html b/npm/packs/ng/packages/account/src/lib/components/login/login.component.html new file mode 100644 index 0000000000..3f5c6f6292 --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/components/login/login.component.html @@ -0,0 +1,43 @@ +
    +
    + + + +
    +
    diff --git a/npm/packs/ng/packages/account/src/lib/components/login/login.component.ts b/npm/packs/ng/packages/account/src/lib/components/login/login.component.ts new file mode 100644 index 0000000000..133d9da503 --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/components/login/login.component.ts @@ -0,0 +1,53 @@ +import { ConfigGetAppConfiguration, ConfigState } from '@abp/ng.core'; +import { Component, Inject, Optional } from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { Navigate } from '@ngxs/router-plugin'; +import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { from } from 'rxjs'; +import { Options } from '../../models/options'; + +const { maxLength, minLength, required } = Validators; + +@Component({ + selector: 'abp-login', + templateUrl: './login.component.html', +}) +export class LoginComponent { + form: FormGroup; + + constructor( + private fb: FormBuilder, + private oauthService: OAuthService, + private store: Store, + @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options, + ) { + this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig); + this.oauthService.loadDiscoveryDocument(); + + this.form = this.fb.group({ + username: ['', [required, maxLength(255)]], + password: ['', [required, maxLength(32)]], + remember: [false], + }); + } + + onSubmit() { + if (this.form.invalid) return; + + this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage); + + from( + this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value), + ).subscribe({ + next: () => { + const redirectUrl = window.history.state.redirectUrl || this.options.redirectUrl; + + this.store + .dispatch(new ConfigGetAppConfiguration()) + .subscribe(() => this.store.dispatch(new Navigate([redirectUrl || '/']))); + }, + error: () => console.error('an error occured'), + }); + } +} diff --git a/npm/packs/ng/packages/account/src/lib/components/register/register.component.html b/npm/packs/ng/packages/account/src/lib/components/register/register.component.html new file mode 100644 index 0000000000..097af3ad0d --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/components/register/register.component.html @@ -0,0 +1,24 @@ +
    +
    + + + +
    +
    diff --git a/npm/packs/ng/packages/account/src/lib/components/register/register.component.ts b/npm/packs/ng/packages/account/src/lib/components/register/register.component.ts new file mode 100644 index 0000000000..01e6eb59bd --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/components/register/register.component.ts @@ -0,0 +1,30 @@ +import { Component } from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { Router } from '@angular/router'; +import { validatePassword } from '@ngx-validate/core'; +import { OAuthService } from 'angular-oauth2-oidc'; + +const { maxLength, minLength, required, email } = Validators; + +@Component({ + selector: 'abp-register', + templateUrl: './register.component.html', +}) +export class RegisterComponent { + form: FormGroup; + + constructor(private fb: FormBuilder, private oauthService: OAuthService, private router: Router) { + this.form = this.fb.group({ + username: ['', [required, maxLength(255)]], + password: [ + '', + [required, maxLength(32), minLength(6), validatePassword(['small', 'capital', 'number', 'special'])], + ], + email: ['', [required, email]], + }); + } + + onSubmit() { + if (this.form.invalid) return; + } +} diff --git a/npm/packs/ng/packages/account/src/lib/components/tenant-box/tenant-box.component.html b/npm/packs/ng/packages/account/src/lib/components/tenant-box/tenant-box.component.html new file mode 100644 index 0000000000..2df7ace400 --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/components/tenant-box/tenant-box.component.html @@ -0,0 +1,44 @@ +
    + {{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: + + {{ selected?.name ? selected.name : ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }} + + ({{ + 'AbpUiMultiTenancy::Switch' | abpLocalization + }}) +
    + + + +
    + + + +
    +
    diff --git a/npm/packs/ng/packages/account/src/lib/components/tenant-box/tenant-box.component.ts b/npm/packs/ng/packages/account/src/lib/components/tenant-box/tenant-box.component.ts new file mode 100644 index 0000000000..ab10940f10 --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/components/tenant-box/tenant-box.component.ts @@ -0,0 +1,40 @@ +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { ABP } from '@abp/ng.core'; + +@Component({ + selector: 'abp-tenant-box', + templateUrl: './tenant-box.component.html', +}) +export class TenantBoxComponent { + constructor(private modalService: NgbModal, private fb: FormBuilder) {} + + form: FormGroup; + + selected: ABP.BasicItem; + + @ViewChild('modalContent', { static: false }) + modalContent: TemplateRef; + + createForm() { + this.form = this.fb.group({ + name: [this.selected.name], + }); + } + + openModal() { + this.createForm(); + this.modalService.open(this.modalContent); + } + + onSwitch() { + this.selected = {} as ABP.BasicItem; + this.openModal(); + } + + save() { + this.selected = this.form.value; + this.modalService.dismissAll(); + } +} diff --git a/npm/packs/ng/packages/account/src/lib/constants/routes.ts b/npm/packs/ng/packages/account/src/lib/constants/routes.ts new file mode 100644 index 0000000000..c1ba80be83 --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/constants/routes.ts @@ -0,0 +1,11 @@ +import { ABP, eLayoutType } from '@abp/ng.core'; + +export const ACCOUNT_ROUTES = [ + { + name: 'Account', + path: 'account', + invisible: true, + layout: eLayoutType.application, + children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], + }, +] as ABP.FullRoute[]; diff --git a/npm/packs/ng/packages/account/src/lib/models/index.ts b/npm/packs/ng/packages/account/src/lib/models/index.ts new file mode 100644 index 0000000000..5f30ef383a --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/models/index.ts @@ -0,0 +1 @@ +export * from './options'; diff --git a/npm/packs/ng/packages/account/src/lib/models/options.ts b/npm/packs/ng/packages/account/src/lib/models/options.ts new file mode 100644 index 0000000000..f07ccb8900 --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/models/options.ts @@ -0,0 +1,3 @@ +export interface Options { + redirectUrl?: string; +} diff --git a/npm/packs/ng/packages/account/src/lib/tokens/index.ts b/npm/packs/ng/packages/account/src/lib/tokens/index.ts new file mode 100644 index 0000000000..683bc4b3db --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/tokens/index.ts @@ -0,0 +1 @@ +export * from './options.token'; diff --git a/npm/packs/ng/packages/account/src/lib/tokens/options.token.ts b/npm/packs/ng/packages/account/src/lib/tokens/options.token.ts new file mode 100644 index 0000000000..92b142b09c --- /dev/null +++ b/npm/packs/ng/packages/account/src/lib/tokens/options.token.ts @@ -0,0 +1,11 @@ +import { InjectionToken } from '@angular/core'; +import { Options } from '../models/options'; + +export function optionsFactory(options: Options) { + return { + redirectUrl: '/', + ...options, + }; +} + +export const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); diff --git a/npm/packs/ng/packages/account/src/public-api.ts b/npm/packs/ng/packages/account/src/public-api.ts new file mode 100644 index 0000000000..2a8e2468ab --- /dev/null +++ b/npm/packs/ng/packages/account/src/public-api.ts @@ -0,0 +1,9 @@ +/* + * Public API Surface of auth + */ + +export * from './lib/account.module'; +export * from './lib/components'; +export * from './lib/constants/routes'; +export * from './lib/tokens'; +export * from './lib/models'; diff --git a/npm/packs/ng/packages/account/src/test.ts b/npm/packs/ng/packages/account/src/test.ts new file mode 100644 index 0000000000..978c64fb83 --- /dev/null +++ b/npm/packs/ng/packages/account/src/test.ts @@ -0,0 +1,21 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone'; +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/npm/packs/ng/packages/account/tsconfig.lib.json b/npm/packs/ng/packages/account/tsconfig.lib.json new file mode 100644 index 0000000000..2972099ba1 --- /dev/null +++ b/npm/packs/ng/packages/account/tsconfig.lib.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "target": "es2015", + "declaration": true, + "inlineSources": true, + "types": [], + "lib": ["dom", "es2018"] + }, + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true, + "enableResourceInlining": true + }, + "exclude": ["src/test.ts", "**/*.spec.ts"] +} diff --git a/npm/packs/ng/packages/account/tsconfig.spec.json b/npm/packs/ng/packages/account/tsconfig.spec.json new file mode 100644 index 0000000000..16da33db07 --- /dev/null +++ b/npm/packs/ng/packages/account/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "src/test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/npm/packs/ng/packages/account/tslint.json b/npm/packs/ng/packages/account/tslint.json new file mode 100644 index 0000000000..8c3919ea62 --- /dev/null +++ b/npm/packs/ng/packages/account/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "abp", + "camelCase" + ], + "component-selector": [ + true, + "element", + "abp", + "kebab-case" + ] + } +} diff --git a/npm/packs/ng/packages/core/README.md b/npm/packs/ng/packages/core/README.md new file mode 100644 index 0000000000..aeef2da412 --- /dev/null +++ b/npm/packs/ng/packages/core/README.md @@ -0,0 +1 @@ +

    @abp/ng.core

    diff --git a/npm/packs/ng/packages/core/karma.conf.js b/npm/packs/ng/packages/core/karma.conf.js new file mode 100644 index 0000000000..46e0cb1d0a --- /dev/null +++ b/npm/packs/ng/packages/core/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../../coverage/core'), + reports: ['html', 'lcovonly'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/npm/packs/ng/packages/core/ng-package.json b/npm/packs/ng/packages/core/ng-package.json new file mode 100644 index 0000000000..c38f8aa834 --- /dev/null +++ b/npm/packs/ng/packages/core/ng-package.json @@ -0,0 +1,16 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/core", + "lib": { + "entryFile": "src/public-api.ts" + }, + "deleteDestPath": false, + "whitelistedNonPeerDependencies": [ + "@ngxs/router-plugin", + "@ngxs/storage-plugin", + "@ngxs/store", + "angular-oauth2-oidc", + "just-compare", + "snq" + ] +} diff --git a/npm/packs/ng/packages/core/package.json b/npm/packs/ng/packages/core/package.json new file mode 100644 index 0000000000..55b69153b6 --- /dev/null +++ b/npm/packs/ng/packages/core/package.json @@ -0,0 +1,19 @@ +{ + "name": "@abp/ng.core", + "version": "0.5.0", + "dependencies": { + "@ngxs/router-plugin": "^3.5.0", + "@ngxs/storage-plugin": "^3.5.0", + "@ngxs/store": "^3.5.0", + "angular-oauth2-oidc": "^8.0.1", + "just-compare": "^1.3.0", + "snq": "^1.0.3" + }, + "peerDependencies": { + "@angular/common": ">=8.1.0", + "@angular/core": ">=8.1.0", + "@angular/forms": ">=8.1.0", + "@angular/router": ">=8.1.0", + "rxjs": ">=6.4.0" + } +} diff --git a/npm/packs/ng/packages/core/src/lib/actions/config.actions.ts b/npm/packs/ng/packages/core/src/lib/actions/config.actions.ts new file mode 100644 index 0000000000..1251436c07 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/actions/config.actions.ts @@ -0,0 +1,10 @@ +import { ABP } from '../models'; + +export class PatchRouteByName { + static readonly type = '[Config] Patch Route By Name'; + constructor(public name: string, public newValue: Partial) {} +} + +export class ConfigGetAppConfiguration { + static readonly type = '[Config] Get App Configuration'; +} diff --git a/npm/packs/ng/packages/core/src/lib/actions/index.ts b/npm/packs/ng/packages/core/src/lib/actions/index.ts new file mode 100644 index 0000000000..54a0e9ab48 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/actions/index.ts @@ -0,0 +1,4 @@ +export * from './config.actions'; +export * from './profile.actions'; +export * from './rest.actions'; +export * from './session.actions'; diff --git a/npm/packs/ng/packages/core/src/lib/actions/profile.actions.ts b/npm/packs/ng/packages/core/src/lib/actions/profile.actions.ts new file mode 100644 index 0000000000..235e587bf9 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/actions/profile.actions.ts @@ -0,0 +1,15 @@ +import { Profile } from '../models'; + +export class ProfileGet { + static readonly type = '[Profile] Get'; +} + +export class ProfileUpdate { + static readonly type = '[Profile] Update'; + constructor(public payload: Profile.Response) {} +} + +export class ProfileChangePassword { + static readonly type = '[Profile] Change Password'; + constructor(public payload: Profile.ChangePasswordRequest) {} +} diff --git a/npm/packs/ng/packages/core/src/lib/actions/rest.actions.ts b/npm/packs/ng/packages/core/src/lib/actions/rest.actions.ts new file mode 100644 index 0000000000..5f00eea3d8 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/actions/rest.actions.ts @@ -0,0 +1,6 @@ +import { HttpErrorResponse } from '@angular/common/http'; + +export class RestOccurError { + static readonly type = '[Rest] Error'; + constructor(public payload: HttpErrorResponse | any) {} +} diff --git a/npm/packs/ng/packages/core/src/lib/actions/session.actions.ts b/npm/packs/ng/packages/core/src/lib/actions/session.actions.ts new file mode 100644 index 0000000000..7b596a25c3 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/actions/session.actions.ts @@ -0,0 +1,4 @@ +export class SessionSetLanguage { + static readonly type = '[Session] Set Language'; + constructor(public payload: string) {} +} diff --git a/npm/packs/ng/packages/core/src/lib/components/dynamic-layout.component.ts b/npm/packs/ng/packages/core/src/lib/components/dynamic-layout.component.ts new file mode 100644 index 0000000000..0504da38b4 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/components/dynamic-layout.component.ts @@ -0,0 +1,67 @@ +import { Component, OnDestroy, Type } from '@angular/core'; +import { NavigationEnd, Router, UrlSegment } from '@angular/router'; +import { Select, Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { eLayoutType } from '../enums'; +import { ABP, Config } from '../models'; +import { ConfigState } from '../states'; +import { takeUntilDestroy } from '../utils'; +import snq from 'snq'; + +@Component({ + selector: 'abp-dynamic-layout', + template: ` + + + + + `, +}) +export class DynamicLayoutComponent implements OnDestroy { + @Select(ConfigState.getOne('requirements')) + requirements$: Observable; + + layout: Type; + + constructor(private router: Router, private store: Store) { + this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => { + if (event instanceof NavigationEnd) { + const { segments } = this.router.parseUrl(event.url).root.children.primary; + const { + requirements: { layouts }, + routes, + } = this.store.selectSnapshot(ConfigState.getAll); + + const layout = findLayout(segments, routes); + + this.layout = layouts.filter(l => !!l).find(l => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1); + } + }); + } + + ngOnDestroy() {} +} + +function findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType { + let layout = eLayoutType.empty; + + const route = routes + .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), []) + .find(r => r.path === segments[0].path); + + if (route) { + if (route.layout) { + layout = route.layout; + } + + if (route.children && route.children.length) { + const child = route.children.find(c => c.path === segments[1].path); + + if (child.layout) { + layout = child.layout; + } + } + } + + return layout; +} diff --git a/npm/packs/ng/packages/core/src/lib/components/index.ts b/npm/packs/ng/packages/core/src/lib/components/index.ts new file mode 100644 index 0000000000..d54b2d2175 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/components/index.ts @@ -0,0 +1,2 @@ +export * from './dynamic-layout.component'; +export * from './router-outlet.component'; diff --git a/npm/packs/ng/packages/core/src/lib/components/router-outlet.component.ts b/npm/packs/ng/packages/core/src/lib/components/router-outlet.component.ts new file mode 100644 index 0000000000..1fc5d002ac --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/components/router-outlet.component.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'abp-router-outlet', + template: ` + + `, +}) +export class RouterOutletComponent {} diff --git a/npm/packs/ng/packages/core/src/lib/constants/index.ts b/npm/packs/ng/packages/core/src/lib/constants/index.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/npm/packs/ng/packages/core/src/lib/core.module.ts b/npm/packs/ng/packages/core/src/lib/core.module.ts new file mode 100644 index 0000000000..55cc810d8a --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/core.module.ts @@ -0,0 +1,83 @@ +import { CommonModule } from '@angular/common'; +import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; +import { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { RouterModule } from '@angular/router'; +import { NgxsRouterPluginModule } from '@ngxs/router-plugin'; +import { NgxsStoragePluginModule } from '@ngxs/storage-plugin'; +import { NgxsModule, NGXS_PLUGINS } from '@ngxs/store'; +import { DynamicLayoutComponent } from './components/dynamic-layout.component'; +import { RouterOutletComponent } from './components/router-outlet.component'; +import { PermissionDirective } from './directives/permission.directive'; +import { VisibilityDirective } from './directives/visibility.directive'; +import { ApiInterceptor } from './interceptors/api.interceptor'; +import { ABP } from './models/common'; +import { LocalizationPipe } from './pipes/localization.pipe'; +import { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config.plugin'; +import { ConfigState } from './states/config.state'; +import { ProfileState } from './states/profile.state'; +import { SessionState } from './states/session.state'; +import { getInitialData } from './utils/initial-utils'; + +@NgModule({ + imports: [ + NgxsModule.forFeature([ProfileState, SessionState, ConfigState]), + NgxsStoragePluginModule.forRoot({ key: 'SessionState' }), + NgxsRouterPluginModule.forRoot(), + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + RouterModule, + ], + declarations: [ + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + exports: [ + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + RouterModule, + RouterOutletComponent, + DynamicLayoutComponent, + PermissionDirective, + VisibilityDirective, + LocalizationPipe, + ], + providers: [LocalizationPipe], + entryComponents: [RouterOutletComponent, DynamicLayoutComponent], +}) +export class CoreModule { + static forRoot(options = {} as ABP.Root): ModuleWithProviders { + return { + ngModule: CoreModule, + providers: [ + { + provide: NGXS_PLUGINS, + useClass: ConfigPlugin, + multi: true, + }, + { + provide: NGXS_CONFIG_PLUGIN_OPTIONS, + useValue: options, + }, + { + provide: HTTP_INTERCEPTORS, + useClass: ApiInterceptor, + multi: true, + }, + { + provide: APP_INITIALIZER, + multi: true, + deps: [Injector], + useFactory: getInitialData, + }, + ], + }; + } +} diff --git a/npm/packs/ng/packages/core/src/lib/directives/index.ts b/npm/packs/ng/packages/core/src/lib/directives/index.ts new file mode 100644 index 0000000000..e10d3d1cc4 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/directives/index.ts @@ -0,0 +1,2 @@ +export * from './permission.directive'; +export * from './visibility.directive'; diff --git a/npm/packs/ng/packages/core/src/lib/directives/permission.directive.ts b/npm/packs/ng/packages/core/src/lib/directives/permission.directive.ts new file mode 100644 index 0000000000..68a5ae6f75 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/directives/permission.directive.ts @@ -0,0 +1,31 @@ +import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import { takeUntilDestroy } from '../utils'; + +@Directive({ + selector: '[abpPermission]', +}) +export class PermissionDirective implements OnInit, OnDestroy { + @Input('abpPermission') condition: string; + + constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {} + + ngOnInit() { + if (this.condition) { + this.store + .select(ConfigState.getGrantedPolicy(this.condition)) + .pipe(takeUntilDestroy(this)) + .subscribe(isGranted => { + if (!isGranted) { + this.renderer.removeChild( + (this.elRef.nativeElement as HTMLElement).parentElement, + this.elRef.nativeElement, + ); + } + }); + } + } + + ngOnDestroy(): void {} +} diff --git a/npm/packs/ng/packages/core/src/lib/directives/visibility.directive.ts b/npm/packs/ng/packages/core/src/lib/directives/visibility.directive.ts new file mode 100644 index 0000000000..da379b250a --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/directives/visibility.directive.ts @@ -0,0 +1,48 @@ +import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core'; +import { Subject } from 'rxjs'; +import snq from 'snq'; + +@Directive({ + selector: '[abpVisibility]', +}) +export class VisibilityDirective implements AfterViewInit { + @Input('abpVisibility') + focusedElement: HTMLElement; + + completed$ = new Subject(); + + constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {} + + ngAfterViewInit() { + const observer = new MutationObserver(mutations => { + mutations.forEach(mutation => { + if (!mutation.target) return; + + const htmlNodes = snq( + () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement), + [], + ); + + if (!htmlNodes.length) { + this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement); + this.disconnect(); + } else { + setTimeout(() => { + this.disconnect(); + }, 0); + } + }); + }); + + observer.observe(this.focusedElement, { + childList: true, + }); + + this.completed$.subscribe(() => observer.disconnect()); + } + + disconnect() { + this.completed$.next(); + this.completed$.complete(); + } +} diff --git a/npm/packs/ng/packages/core/src/lib/enums/common.ts b/npm/packs/ng/packages/core/src/lib/enums/common.ts new file mode 100644 index 0000000000..08ddf05b6d --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/enums/common.ts @@ -0,0 +1,5 @@ +export const enum eLayoutType { + account = 'account', + application = 'application', + empty = 'empty', +} diff --git a/npm/packs/ng/packages/core/src/lib/enums/index.ts b/npm/packs/ng/packages/core/src/lib/enums/index.ts new file mode 100644 index 0000000000..d0b9323665 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/enums/index.ts @@ -0,0 +1 @@ +export * from './common'; diff --git a/npm/packs/ng/packages/core/src/lib/guards/auth.guard.ts b/npm/packs/ng/packages/core/src/lib/guards/auth.guard.ts new file mode 100644 index 0000000000..bd6ad0306b --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/guards/auth.guard.ts @@ -0,0 +1,23 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router'; +import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Observable } from 'rxjs'; +import { Navigate } from '@ngxs/router-plugin'; + +@Injectable({ + providedIn: 'root', +}) +export class AuthGuard implements CanActivate { + constructor(private oauthService: OAuthService, private store: Store) {} + canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree { + const hasValidAccessToken = this.oauthService.hasValidAccessToken(); + if (hasValidAccessToken) { + return hasValidAccessToken; + } + + this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } })); + + return false; + } +} diff --git a/npm/packs/ng/packages/core/src/lib/guards/index.ts b/npm/packs/ng/packages/core/src/lib/guards/index.ts new file mode 100644 index 0000000000..6d31d6bf14 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/guards/index.ts @@ -0,0 +1,2 @@ +export * from './auth.guard'; +export * from './permission.guard'; diff --git a/npm/packs/ng/packages/core/src/lib/guards/permission.guard.ts b/npm/packs/ng/packages/core/src/lib/guards/permission.guard.ts new file mode 100644 index 0000000000..d4e4b80ea9 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/guards/permission.guard.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, CanActivate } from '@angular/router'; +import { Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { ConfigState } from '../states'; + +@Injectable({ + providedIn: 'root', +}) +export class PermissionGuard implements CanActivate { + constructor(private store: Store) {} + + canActivate({ data }: ActivatedRouteSnapshot): Observable { + const resource = data.requiredPolicy as string; + return this.store.select(ConfigState.getGrantedPolicy(resource)); + } +} diff --git a/npm/packs/ng/packages/core/src/lib/handlers/index.ts b/npm/packs/ng/packages/core/src/lib/handlers/index.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/npm/packs/ng/packages/core/src/lib/interceptors/api.interceptor.ts b/npm/packs/ng/packages/core/src/lib/interceptors/api.interceptor.ts new file mode 100644 index 0000000000..d1465ff5a2 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/interceptors/api.interceptor.ts @@ -0,0 +1,29 @@ +import { Injectable } from '@angular/core'; +import { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Store } from '@ngxs/store'; +import { SessionState } from '../states'; + +@Injectable() +export class ApiInterceptor implements HttpInterceptor { + constructor(private oAuthService: OAuthService, private store: Store) {} + + intercept(request: HttpRequest, next: HttpHandler) { + const headers = {} as any; + const token = this.oAuthService.getAccessToken(); + if (!request.headers.has('Authorization') && token) { + headers['Authorization'] = `Bearer ${token}`; + } + + const lang = this.store.selectSnapshot(SessionState.getLanguage); + if (!request.headers.has('Accept-Language') && lang) { + headers['Accept-Language'] = lang; + } + + return next.handle( + request.clone({ + setHeaders: headers, + }), + ); + } +} diff --git a/npm/packs/ng/packages/core/src/lib/interceptors/index.ts b/npm/packs/ng/packages/core/src/lib/interceptors/index.ts new file mode 100644 index 0000000000..d7479a7684 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/interceptors/index.ts @@ -0,0 +1 @@ +export * from './api.interceptor'; diff --git a/npm/packs/ng/packages/core/src/lib/models/application-configuration.ts b/npm/packs/ng/packages/core/src/lib/models/application-configuration.ts new file mode 100644 index 0000000000..9912810399 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/models/application-configuration.ts @@ -0,0 +1,49 @@ +export namespace ApplicationConfiguration { + export interface Response { + localization: Localization; + auth: Auth; + setting: Setting; + currentUser: CurrentUser; + features: Features; + } + + export interface Localization { + values: LocalizationValue; + languages: Language[]; + } + + export interface LocalizationValue { + [key: string]: { [key: string]: string }; + } + + export interface Language { + cultureName: string; + uiCultureName: string; + displayName: string; + flagIcon: string; + } + + export interface Auth { + policies: Policy; + grantedPolicies: Policy; + } + + export interface Policy { + [key: string]: boolean; + } + + export interface Setting { + values: { [key: string]: 'Abp.Localization.DefaultLanguage' }; + } + + export interface CurrentUser { + isAuthenticated: boolean; + id: string; + tenantId: string; + userName: string; + } + + export interface Features { + values: Setting; + } +} diff --git a/npm/packs/ng/packages/core/src/lib/models/common.ts b/npm/packs/ng/packages/core/src/lib/models/common.ts new file mode 100644 index 0000000000..11ba43f755 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/models/common.ts @@ -0,0 +1,45 @@ +import { Config } from './config'; +import { eLayoutType } from '../enums'; + +export namespace ABP { + export interface Root { + environment: Partial; + requirements: Config.Requirements; + } + + export type PagedResponse = { + totalCount: number; + } & PagedItemsResponse; + + export interface PagedItemsResponse { + items: T[]; + } + + export interface PageQueryParams { + filter?: string; + sorting?: string; + skipCount?: number; + maxResultCount?: number; + } + + export interface Route { + children?: Route[]; + invisible?: boolean; + layout?: eLayoutType; + name: string; + order?: number; + parentName?: string; + path: string; + requiredPolicy?: string; + } + + export interface FullRoute extends Route { + url?: string; + wrapper?: boolean; + } + + export interface BasicItem { + id: string; + name: string; + } +} diff --git a/npm/packs/ng/packages/core/src/lib/models/config.ts b/npm/packs/ng/packages/core/src/lib/models/config.ts new file mode 100644 index 0000000000..a92d97254a --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/models/config.ts @@ -0,0 +1,22 @@ +import { AuthConfig } from 'angular-oauth2-oidc'; +import { Type } from '@angular/core'; + +export namespace Config { + export interface State { + [key: string]: any; + } + + export interface Environment { + production: boolean; + oAuthConfig: AuthConfig; + apis: Apis; + } + + export interface Apis { + [key: string]: { [key: string]: string }; + } + + export interface Requirements { + layouts: Type[]; + } +} diff --git a/npm/packs/ng/packages/core/src/lib/models/index.ts b/npm/packs/ng/packages/core/src/lib/models/index.ts new file mode 100644 index 0000000000..63302c9ab8 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/models/index.ts @@ -0,0 +1,6 @@ +export * from './application-configuration'; +export * from './common'; +export * from './config'; +export * from './rest'; +export * from './session'; +export * from './profile'; diff --git a/npm/packs/ng/packages/core/src/lib/models/profile.ts b/npm/packs/ng/packages/core/src/lib/models/profile.ts new file mode 100644 index 0000000000..068a3fad39 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/models/profile.ts @@ -0,0 +1,18 @@ +export namespace Profile { + export interface State { + profile: Response; + } + + export interface Response { + userName: string; + email: string; + name: string; + surname: string; + phoneNumber: string; + } + + export interface ChangePasswordRequest { + currentPassword: string; + newPassword: string; + } +} diff --git a/npm/packs/ng/packages/core/src/lib/models/rest.ts b/npm/packs/ng/packages/core/src/lib/models/rest.ts new file mode 100644 index 0000000000..81e035f0d4 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/models/rest.ts @@ -0,0 +1,40 @@ +import { HttpHeaders, HttpParams } from '@angular/common/http'; + +export namespace Rest { + export interface Config { + throwErr?: boolean; + observe?: Observe; + } + + export const enum Observe { + Body = 'body', + Events = 'events', + Response = 'response', + } + + export const enum ResponseType { + ArrayBuffer = 'arraybuffer', + Blob = 'blob', + JSON = 'json', + Text = 'text', + } + + export interface Request { + body?: T; + headers?: + | HttpHeaders + | { + [header: string]: string | string[]; + }; + method: string; + params?: + | HttpParams + | { + [param: string]: any; + }; + reportProgress?: boolean; + responseType?: ResponseType; + url: string; + withCredentials?: boolean; + } +} diff --git a/npm/packs/ng/packages/core/src/lib/models/session.ts b/npm/packs/ng/packages/core/src/lib/models/session.ts new file mode 100644 index 0000000000..ec595ff38d --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/models/session.ts @@ -0,0 +1,5 @@ +export namespace Session { + export interface State { + language: string; + } +} diff --git a/npm/packs/ng/packages/core/src/lib/pipes/index.ts b/npm/packs/ng/packages/core/src/lib/pipes/index.ts new file mode 100644 index 0000000000..7bbacf6329 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/pipes/index.ts @@ -0,0 +1 @@ +export * from './localization.pipe'; diff --git a/npm/packs/ng/packages/core/src/lib/pipes/localization.pipe.ts b/npm/packs/ng/packages/core/src/lib/pipes/localization.pipe.ts new file mode 100644 index 0000000000..7073f6da3a --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/pipes/localization.pipe.ts @@ -0,0 +1,40 @@ +import { Pipe, PipeTransform, OnDestroy } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import { takeUntilDestroy } from '../utils'; +import { distinctUntilChanged } from 'rxjs/operators'; + +@Pipe({ + name: 'abpLocalization', + pure: false, // required to update the value +}) +export class LocalizationPipe implements PipeTransform, OnDestroy { + initialized: boolean = false; + + value: string; + + constructor(private store: Store) {} + + transform(value: string, ...interpolateParams: string[]): string { + if (!this.initialized) { + this.initialized = true; + + this.store + .select( + ConfigState.getCopy( + value, + ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []), + ), + ) + .pipe( + takeUntilDestroy(this), + distinctUntilChanged(), + ) + .subscribe(copy => (this.value = copy)); + } + + return this.value; + } + + ngOnDestroy() {} +} diff --git a/npm/packs/ng/packages/core/src/lib/plugins/config.plugin.ts b/npm/packs/ng/packages/core/src/lib/plugins/config.plugin.ts new file mode 100644 index 0000000000..719de83566 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/plugins/config.plugin.ts @@ -0,0 +1,91 @@ +import { Injectable, Inject, InjectionToken, Type } from '@angular/core'; +import { NgxsPlugin, setValue, actionMatcher, InitState, UpdateState, NgxsNextPluginFn } from '@ngxs/store'; +import { Router, Routes } from '@angular/router'; +import { ABP } from '../models'; +import snq from 'snq'; +import { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils'; + +export const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS'); + +@Injectable() +export class ConfigPlugin implements NgxsPlugin { + private initialized: boolean = false; + + constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {} + + handle(state: any, event: any, next: NgxsNextPluginFn) { + const matches = actionMatcher(event); + const isInitAction = matches(InitState) || matches(UpdateState); + + // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []); + if (isInitAction && !this.initialized) { + let { routes, wrappers } = transformRoutes(this.router.config); + routes = organizeRoutes(routes, wrappers); + + state = setValue(state, 'ConfigState', { + ...(state.ConfigState && { ...state.ConfigState }), + ...this.options, + routes, + }); + + this.initialized = true; + } + + return next(state, event); + } +} + +function transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any { + const abpRoutes: ABP.FullRoute[] = routes + .filter(route => { + return snq(() => route.data.routes.find(r => r.path === route.path), false); + }) + .reduce((acc, val) => [...acc, ...val.data.routes], []); + + wrappers = abpRoutes.filter(ar => ar.wrapper); + const transformed = [] as ABP.FullRoute[]; + routes + .filter(route => route.component || route.loadChildren) + .forEach(route => { + const abpPackage = abpRoutes.find(abp => abp.path.toLowerCase() === route.path.toLowerCase()); + const { length } = transformed; + + if (abpPackage) { + transformed.push(abpPackage); + } + + if (transformed.length === length) { + transformed.push({ + path: route.path, + name: snq(() => route.data.routes.name, route.path), + children: route.data.routes.children || [], + } as ABP.FullRoute); + } + }); + + return { routes: setUrls(transformed), wrappers }; +} + +function setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] { + if (parentUrl) { + // this if block using for only recursive call + + return routes.map(route => ({ + ...route, + url: `${parentUrl}/${route.path}`, + ...(route.children && + route.children.length && { + children: setUrls(route.children, `${parentUrl}/${route.path}`), + }), + })); + } + + return routes.map(route => ({ + ...route, + url: `/${route.path}`, + ...(route.children && + route.children.length && { + children: setUrls(route.children, `/${route.path}`), + }), + })); +} diff --git a/npm/packs/ng/packages/core/src/lib/plugins/index.ts b/npm/packs/ng/packages/core/src/lib/plugins/index.ts new file mode 100644 index 0000000000..42ab2f291c --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/plugins/index.ts @@ -0,0 +1 @@ +export * from './config.plugin'; diff --git a/npm/packs/ng/packages/core/src/lib/services/application-configuration.service.ts b/npm/packs/ng/packages/core/src/lib/services/application-configuration.service.ts new file mode 100644 index 0000000000..d0a653e1e0 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/services/application-configuration.service.ts @@ -0,0 +1,20 @@ +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { ApplicationConfiguration, Rest } from '../models'; +import { RestService } from './rest.service'; + +@Injectable({ + providedIn: 'root', +}) +export class ApplicationConfigurationService { + constructor(private rest: RestService) {} + + getConfiguration(): Observable { + const request: Rest.Request = { + method: 'GET', + url: '/api/abp/application-configuration', + }; + + return this.rest.request(request); + } +} diff --git a/npm/packs/ng/packages/core/src/lib/services/config.service.ts b/npm/packs/ng/packages/core/src/lib/services/config.service.ts new file mode 100644 index 0000000000..21050f2b79 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/services/config.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; + +@Injectable({ + providedIn: 'root', +}) +export class ConfigService { + constructor(private store: Store) {} + + getAll() { + return this.store.selectSnapshot(ConfigState.getAll); + } + + getOne(key: string) { + return this.store.selectSnapshot(ConfigState.getOne(key)); + } + + getDeep(keys: string[] | string) { + return this.store.selectSnapshot(ConfigState.getDeep(keys)); + } + + getSetting(key: string) { + return this.store.selectSnapshot(ConfigState.getSetting(key)); + } +} diff --git a/npm/packs/ng/packages/core/src/lib/services/index.ts b/npm/packs/ng/packages/core/src/lib/services/index.ts new file mode 100644 index 0000000000..8ae05cabaa --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/services/index.ts @@ -0,0 +1,6 @@ +export * from './application-configuration.service'; +export * from './config.service'; +export * from './lazy-load.service'; +export * from './localization.service'; +export * from './profile.service'; +export * from './rest.service'; diff --git a/npm/packs/ng/packages/core/src/lib/services/lazy-load.service.ts b/npm/packs/ng/packages/core/src/lib/services/lazy-load.service.ts new file mode 100644 index 0000000000..a6e8eb1f5c --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/services/lazy-load.service.ts @@ -0,0 +1,58 @@ +import { Inject, Injectable } from '@angular/core'; +import { Observable, ReplaySubject } from 'rxjs'; +import { uuid } from '../utils'; + +@Injectable({ + providedIn: 'root', +}) +export class LazyLoadService { + loadedLibraries: { [url: string]: ReplaySubject } = {}; + + load( + url: string, + type: 'script' | 'style', + content: string = '', + targetQuery: string = 'body', + position: InsertPosition = 'afterend', + ): Observable { + if (!url && !content) return; + const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid(); + + if (this.loadedLibraries[key]) { + return this.loadedLibraries[key].asObservable(); + } + + this.loadedLibraries[key] = new ReplaySubject(); + + let library; + if (type === 'script') { + library = document.createElement('script'); + library.type = 'text/javascript'; + if (url) { + (library as HTMLScriptElement).src = url; + } + + (library as HTMLScriptElement).text = content; + } else if (url) { + library = document.createElement('link'); + library.type = 'text/css'; + (library as HTMLLinkElement).rel = 'stylesheet'; + + if (url) { + (library as HTMLLinkElement).href = url; + } + } else { + library = document.createElement('style'); + (library as HTMLStyleElement).textContent = content; + } + + library.onload = () => { + this.loadedLibraries[key].next(); + this.loadedLibraries[key].complete(); + }; + + document.querySelector(targetQuery).insertAdjacentElement(position, library); + + return this.loadedLibraries[key].asObservable(); + } +} diff --git a/npm/packs/ng/packages/core/src/lib/services/localization.service.ts b/npm/packs/ng/packages/core/src/lib/services/localization.service.ts new file mode 100644 index 0000000000..a86ef53203 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/services/localization.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigState } from '../states'; +import { Observable } from 'rxjs'; + +@Injectable({ providedIn: 'root' }) +export class LocalizationService { + constructor(private store: Store) {} + + get(keys: string, ...interpolateParams: string[]): Observable { + return this.store.select(ConfigState.getCopy(keys, ...interpolateParams)); + } + + instant(keys: string, ...interpolateParams: string[]): string { + return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams)); + } +} diff --git a/npm/packs/ng/packages/core/src/lib/services/profile.service.ts b/npm/packs/ng/packages/core/src/lib/services/profile.service.ts new file mode 100644 index 0000000000..c8d6f07d1a --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/services/profile.service.ts @@ -0,0 +1,40 @@ +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { RestService } from './rest.service'; +import { Profile, Rest } from '../models'; + +@Injectable({ + providedIn: 'root', +}) +export class ProfileService { + constructor(private rest: RestService) {} + + get(): Observable { + const request: Rest.Request = { + method: 'GET', + url: '/api/identity/profile', + }; + + return this.rest.request(request); + } + + update(body: Profile.Response): Observable { + const request: Rest.Request = { + method: 'PUT', + url: '/api/identity/profile', + body, + }; + + return this.rest.request(request); + } + + changePassword(body: Profile.ChangePasswordRequest): Observable { + const request: Rest.Request = { + method: 'POST', + url: '/api/identity/profile/changePassword', + body, + }; + + return this.rest.request(request); + } +} diff --git a/npm/packs/ng/packages/core/src/lib/services/rest.service.ts b/npm/packs/ng/packages/core/src/lib/services/rest.service.ts new file mode 100644 index 0000000000..4d003e2daf --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/services/rest.service.ts @@ -0,0 +1,37 @@ +import { HttpClient, HttpRequest } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { NEVER, Observable, throwError } from 'rxjs'; +import { catchError, take } from 'rxjs/operators'; +import { Rest } from '../models/rest'; +import { ConfigState } from '../states'; +import { RestOccurError } from '../actions'; + +@Injectable({ + providedIn: 'root', +}) +export class RestService { + constructor(private http: HttpClient, private store: Store) {} + + handleError(err: any): Observable { + this.store.dispatch(new RestOccurError(err)); + console.error(err); + return NEVER; + } + + request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable { + const { observe = Rest.Observe.Body, throwErr } = config; + const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; + const { method, ...options } = request; + return this.http.request(method, url, { observe, ...options } as any).pipe( + observe === Rest.Observe.Body ? take(1) : null, + catchError(err => { + if (throwErr) { + return throwError(err); + } + + return this.handleError(err); + }), + ); + } +} diff --git a/npm/packs/ng/packages/core/src/lib/states/config.state.ts b/npm/packs/ng/packages/core/src/lib/states/config.state.ts new file mode 100644 index 0000000000..f5bf9ffbe6 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/states/config.state.ts @@ -0,0 +1,219 @@ +import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store'; +import { Config, ABP } from '../models'; +import { ConfigGetAppConfiguration, PatchRouteByName } from '../actions/config.actions'; +import { ApplicationConfigurationService } from '../services/application-configuration.service'; +import { tap, switchMap } from 'rxjs/operators'; +import snq from 'snq'; +import { SessionSetLanguage } from '../actions'; +import { SessionState } from './session.state'; +import { of } from 'rxjs'; +import { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils'; + +@State({ + name: 'ConfigState', + defaults: {} as Config.State, +}) +export class ConfigState { + @Selector() + static getAll(state: Config.State) { + return state; + } + + static getOne(key: string) { + const selector = createSelector( + [ConfigState], + function(state: Config.State) { + return state[key]; + }, + ); + + return selector; + } + + static getDeep(keys: string[] | string) { + if (typeof keys === 'string') { + keys = keys.split('.'); + } + + if (!Array.isArray(keys)) { + throw new Error('The argument must be a dot string or an string array.'); + } + + const selector = createSelector( + [ConfigState], + function(state: Config.State) { + return (keys as string[]).reduce((acc, val) => { + if (acc) { + return acc[val]; + } + + return undefined; + }, state); + }, + ); + + return selector; + } + + static getApiUrl(key?: string) { + const selector = createSelector( + [ConfigState], + function(state: Config.State): string { + return state.environment.apis[key || 'default'].url; + }, + ); + + return selector; + } + + static getSetting(key: string) { + const selector = createSelector( + [ConfigState], + function(state: Config.State) { + return snq(() => state.setting.values[key]); + }, + ); + + return selector; + } + + static getGrantedPolicy(condition: string = '') { + const keys = condition + .replace(/\(|\)|\!|\s/g, '') + .split(/\|\||&&/) + .filter(key => key); + + const selector = createSelector( + [ConfigState], + function(state: Config.State): boolean { + if (!keys.length) return true; + + const getPolicy = key => snq(() => state.auth.grantedPolicies[key], false); + if (keys.length > 1) { + keys.forEach(key => { + const value = getPolicy(key); + condition = condition.replace(key, value); + }); + + // tslint:disable-next-line: no-eval + return eval(`!!${condition}`); + } + + return getPolicy(condition); + }, + ); + + return selector; + } + + static getCopy(key: string, ...interpolateParams: string[]) { + const keys = key.split('::') as string[]; + const selector = createSelector( + [ConfigState], + function(state: Config.State) { + const { defaultResourceName } = state.environment.localization; + if (keys[0] === '') { + if (!defaultResourceName) { + throw new Error( + `Please check your environment. May you forget set defaultResourceName? + Here is the example: + { production: false, + localization: { + defaultResourceName: 'MyProjectName' + } + }`, + ); + } + + keys[0] = snq(() => defaultResourceName); + } + + let copy = keys.reduce((acc, val) => { + if (acc) { + return acc[val]; + } + + return undefined; + }, state.localization.values); + + if (copy && interpolateParams && interpolateParams.length) { + interpolateParams.forEach((param, index) => { + copy = copy.replace(`'{${index}}'`, param); + }); + } + + return copy || key; + }, + ); + + return selector; + } + + constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {} + + @Action(ConfigGetAppConfiguration) + addData({ patchState, dispatch }: StateContext) { + return this.appConfigurationService.getConfiguration().pipe( + tap(configuration => + patchState({ + ...configuration, + }), + ), + switchMap(configuration => + this.store.selectSnapshot(SessionState.getLanguage) + ? of(null) + : dispatch( + new SessionSetLanguage(snq(() => configuration.setting.values['Abp.Localization.DefaultLanguage'])), + ), + ), + ); + } + + @Action(PatchRouteByName) + patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) { + let routes: ABP.FullRoute[] = getState().routes; + + const index = routes.findIndex(route => route.name === name); + + routes = patchRouteDeep(routes, name, newValue); + + return patchState({ + routes, + }); + } +} + +function patchRouteDeep( + routes: ABP.FullRoute[], + name: string, + newValue: Partial, + parentUrl: string = null, +): ABP.FullRoute[] { + routes = routes.map(route => { + if (route.name === name) { + if (newValue.path) { + newValue.url = `${parentUrl}/${newValue.path}`; + } + + if (newValue.children && newValue.children.length) { + newValue.children = newValue.children.map(child => ({ + ...child, + url: `${parentUrl}/${route.path}/${child.path}`, + })); + } + + return { ...route, ...newValue }; + } else if (route.children && route.children.length) { + route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path); + } + + return route; + }); + + if (parentUrl) { + // recursive block + return routes; + } + + return organizeRoutes(routes); +} diff --git a/npm/packs/ng/packages/core/src/lib/states/index.ts b/npm/packs/ng/packages/core/src/lib/states/index.ts new file mode 100644 index 0000000000..b7626c2842 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/states/index.ts @@ -0,0 +1,3 @@ +export * from './profile.state'; +export * from './config.state'; +export * from './session.state'; diff --git a/npm/packs/ng/packages/core/src/lib/states/profile.state.ts b/npm/packs/ng/packages/core/src/lib/states/profile.state.ts new file mode 100644 index 0000000000..7e5dcdda32 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/states/profile.state.ts @@ -0,0 +1,45 @@ +import { State, Action, StateContext, Selector } from '@ngxs/store'; +import { ProfileGet, ProfileChangePassword, ProfileUpdate } from '../actions/profile.actions'; +import { Profile } from '../models/profile'; +import { ProfileService } from '../services/profile.service'; +import { tap } from 'rxjs/operators'; + +@State({ + name: 'ProfileState', + defaults: {} as Profile.State, +}) +export class ProfileState { + @Selector() + static getProfile({ profile }: Profile.State): Profile.Response { + return profile; + } + + constructor(private profileService: ProfileService) {} + + @Action(ProfileGet) + profileGet({ patchState }: StateContext) { + return this.profileService.get().pipe( + tap(profile => + patchState({ + profile, + }), + ), + ); + } + + @Action(ProfileUpdate) + profileUpdate({ patchState }: StateContext, { payload }: ProfileUpdate) { + return this.profileService.update(payload).pipe( + tap(profile => + patchState({ + profile, + }), + ), + ); + } + + @Action(ProfileChangePassword) + changePassword(_, { payload }: ProfileChangePassword) { + return this.profileService.changePassword(payload); + } +} diff --git a/npm/packs/ng/packages/core/src/lib/states/session.state.ts b/npm/packs/ng/packages/core/src/lib/states/session.state.ts new file mode 100644 index 0000000000..e312d605e8 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/states/session.state.ts @@ -0,0 +1,23 @@ +import { State, Action, StateContext, Selector } from '@ngxs/store'; +import { SessionSetLanguage } from '../actions/session.actions'; +import { Session } from '../models/session'; + +@State({ + name: 'SessionState', + defaults: {} as Session.State, +}) +export class SessionState { + @Selector() + static getLanguage({ language }: Session.State): string { + return language; + } + + constructor() {} + + @Action(SessionSetLanguage) + sessionSetLanguage({ patchState }: StateContext, { payload }: SessionSetLanguage) { + patchState({ + language: payload, + }); + } +} diff --git a/npm/packs/ng/packages/core/src/lib/tokens/common.token.ts b/npm/packs/ng/packages/core/src/lib/tokens/common.token.ts new file mode 100644 index 0000000000..28f16aaee2 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/tokens/common.token.ts @@ -0,0 +1,18 @@ +import { InjectionToken } from '@angular/core'; +import { Config } from '../models'; + +export function environmentFactory(environment: Config.Environment) { + return { + ...environment, + }; +} + +export function configFactory(config: Config.Requirements) { + return { + ...config, + }; +} + +export const ENVIRONMENT = new InjectionToken('ENVIRONMENT'); + +export const CONFIG = new InjectionToken('CONFIG'); diff --git a/npm/packs/ng/packages/core/src/lib/tokens/index.ts b/npm/packs/ng/packages/core/src/lib/tokens/index.ts new file mode 100644 index 0000000000..1472bbfee9 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/tokens/index.ts @@ -0,0 +1 @@ +export * from './common.token'; diff --git a/npm/packs/ng/packages/core/src/lib/utils/generator-utils.ts b/npm/packs/ng/packages/core/src/lib/utils/generator-utils.ts new file mode 100644 index 0000000000..4e6bf5e09c --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/utils/generator-utils.ts @@ -0,0 +1,5 @@ +export function uuid(a?: any): string { + return a + ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) + : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); +} diff --git a/npm/packs/ng/packages/core/src/lib/utils/index.ts b/npm/packs/ng/packages/core/src/lib/utils/index.ts new file mode 100644 index 0000000000..e2a72ebd3f --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/utils/index.ts @@ -0,0 +1,4 @@ +export * from './generator-utils'; +export * from './initial-utils'; +export * from './route-utils'; +export * from './rxjs-utils'; diff --git a/npm/packs/ng/packages/core/src/lib/utils/initial-utils.ts b/npm/packs/ng/packages/core/src/lib/utils/initial-utils.ts new file mode 100644 index 0000000000..dc1e403612 --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/utils/initial-utils.ts @@ -0,0 +1,13 @@ +import { Injector } from '@angular/core'; +import { Store } from '@ngxs/store'; +import { ConfigGetAppConfiguration } from '../actions/config.actions'; + +export function getInitialData(injector: Injector) { + const fn = function() { + const store: Store = injector.get(Store); + + return store.dispatch(new ConfigGetAppConfiguration()).toPromise(); + }; + + return fn; +} diff --git a/npm/packs/ng/packages/core/src/lib/utils/route-utils.ts b/npm/packs/ng/packages/core/src/lib/utils/route-utils.ts new file mode 100644 index 0000000000..8b59d933cb --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/utils/route-utils.ts @@ -0,0 +1,64 @@ +import { ABP } from '../models'; + +export function organizeRoutes( + routes: ABP.FullRoute[], + wrappers: ABP.FullRoute[] = [], + parentNameArr = [] as ABP.FullRoute[], + parentName: string = null, +): ABP.FullRoute[] { + const filter = route => { + if (route.children) { + route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name); + } + + if (route.parentName && route.parentName !== parentName) { + parentNameArr.push(route); + return false; + } + + return true; + }; + + if (parentName) { + // recursive block + return routes.filter(filter); + } + + const filteredRoutes = routes.filter(filter); + + if (parentNameArr.length) { + return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr)); + } + + return filteredRoutes; +} + +export function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] { + return routes + .map(route => { + if (route.children && route.children.length) { + route.children = setChildRoute(route.children, parentNameArr); + } + + const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name); + if (foundedChildren && foundedChildren.length) { + route.children = [...(route.children || []), ...foundedChildren]; + } + + return route; + }) + .filter(route => route.path || (route.children && route.children.length)); +} + +export function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] { + if (!routes.length) return []; + return routes + .sort((a, b) => a.order - b.order) + .map(route => { + if (route.children && route.children.length) { + route.children = sortRoutes(route.children); + } + + return route; + }); +} diff --git a/npm/packs/ng/packages/core/src/lib/utils/rxjs-utils.ts b/npm/packs/ng/packages/core/src/lib/utils/rxjs-utils.ts new file mode 100644 index 0000000000..533e4cc30d --- /dev/null +++ b/npm/packs/ng/packages/core/src/lib/utils/rxjs-utils.ts @@ -0,0 +1,27 @@ +import { Observable, Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; + +function isFunction(value) { + return typeof value === 'function'; +} + +export const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => ( + source: Observable, +) => { + const originalDestroy = componentInstance[destroyMethodName]; + if (isFunction(originalDestroy) === false) { + throw new Error( + `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`, + ); + } + if (!componentInstance['__takeUntilDestroy']) { + componentInstance['__takeUntilDestroy'] = new Subject(); + + componentInstance[destroyMethodName] = function() { + isFunction(originalDestroy) && originalDestroy.apply(this, arguments); + componentInstance['__takeUntilDestroy'].next(true); + componentInstance['__takeUntilDestroy'].complete(); + }; + } + return source.pipe(takeUntil(componentInstance['__takeUntilDestroy'])); +}; diff --git a/npm/packs/ng/packages/core/src/public-api.ts b/npm/packs/ng/packages/core/src/public-api.ts new file mode 100644 index 0000000000..b10edcbbc9 --- /dev/null +++ b/npm/packs/ng/packages/core/src/public-api.ts @@ -0,0 +1,20 @@ +/* + * Public API Surface of core + */ + +// export * from './lib/handlers'; +export * from './lib/actions'; +export * from './lib/components'; +// export * from './lib/constants'; +export * from './lib/directives'; +export * from './lib/enums'; +export * from './lib/guards'; +export * from './lib/interceptors'; +export * from './lib/models'; +export * from './lib/plugins'; +export * from './lib/services'; +export * from './lib/states'; +export * from './lib/tokens'; +export * from './lib/utils'; + +export * from './lib/core.module'; diff --git a/npm/packs/ng/packages/core/src/test.ts b/npm/packs/ng/packages/core/src/test.ts new file mode 100644 index 0000000000..978c64fb83 --- /dev/null +++ b/npm/packs/ng/packages/core/src/test.ts @@ -0,0 +1,21 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone'; +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/npm/packs/ng/packages/core/tsconfig.lib.json b/npm/packs/ng/packages/core/tsconfig.lib.json new file mode 100644 index 0000000000..2972099ba1 --- /dev/null +++ b/npm/packs/ng/packages/core/tsconfig.lib.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "target": "es2015", + "declaration": true, + "inlineSources": true, + "types": [], + "lib": ["dom", "es2018"] + }, + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true, + "enableResourceInlining": true + }, + "exclude": ["src/test.ts", "**/*.spec.ts"] +} diff --git a/npm/packs/ng/packages/core/tsconfig.spec.json b/npm/packs/ng/packages/core/tsconfig.spec.json new file mode 100644 index 0000000000..16da33db07 --- /dev/null +++ b/npm/packs/ng/packages/core/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "src/test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/npm/packs/ng/packages/core/tslint.json b/npm/packs/ng/packages/core/tslint.json new file mode 100644 index 0000000000..8c3919ea62 --- /dev/null +++ b/npm/packs/ng/packages/core/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "abp", + "camelCase" + ], + "component-selector": [ + true, + "element", + "abp", + "kebab-case" + ] + } +} diff --git a/npm/packs/ng/packages/identity/README.md b/npm/packs/ng/packages/identity/README.md new file mode 100644 index 0000000000..7d4c7a2814 --- /dev/null +++ b/npm/packs/ng/packages/identity/README.md @@ -0,0 +1 @@ +

    @abp/ng.identity

    diff --git a/npm/packs/ng/packages/identity/karma.conf.js b/npm/packs/ng/packages/identity/karma.conf.js new file mode 100644 index 0000000000..96fe6c9293 --- /dev/null +++ b/npm/packs/ng/packages/identity/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../../coverage/identity'), + reports: ['html', 'lcovonly'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/npm/packs/ng/packages/identity/ng-package.json b/npm/packs/ng/packages/identity/ng-package.json new file mode 100644 index 0000000000..aa178ed0d5 --- /dev/null +++ b/npm/packs/ng/packages/identity/ng-package.json @@ -0,0 +1,8 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/identity", + "lib": { + "entryFile": "src/public-api.ts" + }, + "whitelistedNonPeerDependencies": ["@abp/ng.theme.shared", "@abp/ng.permission-management"] +} diff --git a/npm/packs/ng/packages/identity/package.json b/npm/packs/ng/packages/identity/package.json new file mode 100644 index 0000000000..df294b9e74 --- /dev/null +++ b/npm/packs/ng/packages/identity/package.json @@ -0,0 +1,7 @@ +{ + "name": "@abp/ng.identity", + "version": "0.5.0", + "dependencies": { + "@abp/ng.permission-management": "^0.5.0" + } +} diff --git a/npm/packs/ng/packages/identity/src/lib/actions/identity.actions.ts b/npm/packs/ng/packages/identity/src/lib/actions/identity.actions.ts new file mode 100644 index 0000000000..577569bf9d --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/actions/identity.actions.ts @@ -0,0 +1,56 @@ +import { Identity } from '../models/identity'; +import { ABP } from '@abp/ng.core'; + +export class IdentityGetRoles { + static readonly type = '[Identity] Get Roles'; +} + +export class IdentityGetRoleById { + static readonly type = '[Identity] Get Role By Id'; + constructor(public payload: string) {} +} + +export class IdentityDeleteRole { + static readonly type = '[Identity] Delete Role'; + constructor(public payload: string) {} +} + +export class IdentityAddRole { + static readonly type = '[Identity] Add Role'; + constructor(public payload: Identity.RoleSaveRequest) {} +} + +export class IdentityUpdateRole { + static readonly type = '[Identity] Update Role'; + constructor(public payload: Identity.RoleItem) {} +} + +export class IdentityGetUsers { + static readonly type = '[Identity] Get Users'; + constructor(public payload?: ABP.PageQueryParams) {} +} + +export class IdentityGetUserById { + static readonly type = '[Identity] Get User By Id'; + constructor(public payload: string) {} +} + +export class IdentityDeleteUser { + static readonly type = '[Identity] Delete User'; + constructor(public payload: string) {} +} + +export class IdentityAddUser { + static readonly type = '[Identity] Add User'; + constructor(public payload: Identity.UserSaveRequest) {} +} + +export class IdentityUpdateUser { + static readonly type = '[Identity] Update User'; + constructor(public payload: Identity.UserSaveRequest & { id: string }) {} +} + +export class IdentityGetUserRoles { + static readonly type = '[Identity] Get User Roles'; + constructor(public payload: string) {} +} diff --git a/npm/packs/ng/packages/identity/src/lib/components/roles/roles.component.html b/npm/packs/ng/packages/identity/src/lib/components/roles/roles.component.html new file mode 100644 index 0000000000..ca93374446 --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/components/roles/roles.component.html @@ -0,0 +1,108 @@ +
    +
    +
    +
    +
    {{ 'AbpIdentity::Roles' | abpLocalization }}
    +
    +
    + +
    +
    +
    +
    +
    + +
    + + + + {{ 'AbpIdentity::Actions' | abpLocalization }} + {{ 'AbpIdentity::RoleName' | abpLocalization }} + + + + + +
    + +
    + + + +
    +
    + + {{ data.name }} + +
    +
    +
    +
    + + + +
    + + + +
    +
    + + diff --git a/npm/packs/ng/packages/identity/src/lib/components/roles/roles.component.ts b/npm/packs/ng/packages/identity/src/lib/components/roles/roles.component.ts new file mode 100644 index 0000000000..2647b88b68 --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/components/roles/roles.component.ts @@ -0,0 +1,94 @@ +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { Select, Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { IdentityState } from '../../states/identity.state'; +import { Identity } from '../../models/identity'; +import { + IdentityUpdateRole, + IdentityAddRole, + IdentityDeleteRole, + IdentityGetRoleById, +} from '../../actions/identity.actions'; +import { pluck } from 'rxjs/operators'; +import { ConfirmationService, Toaster } from '@abp/ng.theme.shared'; + +@Component({ + selector: 'abp-roles', + templateUrl: './roles.component.html', +}) +export class RolesComponent { + @Select(IdentityState.getRoles) + roles$: Observable; + + form: FormGroup; + + selected: Identity.RoleItem; + + visiblePermissions: boolean = false; + + providerKey: string; + + @ViewChild('modalContent', { static: false }) + modalContent: TemplateRef; + + constructor( + private confirmationService: ConfirmationService, + private modalService: NgbModal, + private fb: FormBuilder, + private store: Store, + ) {} + + createForm() { + this.form = this.fb.group({ + name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + isDefault: [this.selected.isDefault || false], + isPublic: [this.selected.isPublic || false], + }); + } + + openModal() { + this.createForm(); + this.modalService.open(this.modalContent); + } + + onAdd() { + this.selected = {} as Identity.RoleItem; + this.openModal(); + } + + onEdit(id: string) { + this.store + .dispatch(new IdentityGetRoleById(id)) + .pipe(pluck('IdentityState', 'selectedRole')) + .subscribe(selectedRole => { + this.selected = selectedRole; + this.openModal(); + }); + } + + save() { + if (!this.form.valid) return; + + this.store + .dispatch( + this.selected.id + ? new IdentityUpdateRole({ ...this.form.value, id: this.selected.id }) + : new IdentityAddRole(this.form.value), + ) + .subscribe(() => this.modalService.dismissAll()); + } + + delete(id: string, name: string) { + this.confirmationService + .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((status: Toaster.Status) => { + if (status === Toaster.Status.confirm) { + this.store.dispatch(new IdentityDeleteRole(id)); + } + }); + } +} diff --git a/npm/packs/ng/packages/identity/src/lib/components/users/users.component.html b/npm/packs/ng/packages/identity/src/lib/components/users/users.component.html new file mode 100644 index 0000000000..abce666c4d --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/components/users/users.component.html @@ -0,0 +1,197 @@ +
    +
    +
    +
    +
    {{ 'AbpIdentity::Users' | abpLocalization }}
    +
    +
    + +
    +
    +
    +
    +
    + +
    + + + + {{ 'AbpIdentity::Actions' | abpLocalization }} + {{ 'AbpIdentity::UserName' | abpLocalization }} + {{ 'AbpIdentity::EmailAddress' | abpLocalization }} + {{ 'AbpIdentity::PhoneNumber' | abpLocalization }} + + + + + +
    + +
    + + + +
    +
    + + {{ data.userName }} + {{ data.email }} + {{ data.phoneNumber }} + +
    +
    +
    +
    + + + +
    + + + +
    +
    + diff --git a/npm/packs/ng/packages/identity/src/lib/components/users/users.component.ts b/npm/packs/ng/packages/identity/src/lib/components/users/users.component.ts new file mode 100644 index 0000000000..12a19578ef --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/components/users/users.component.ts @@ -0,0 +1,177 @@ +import { Component, TemplateRef, ViewChild, TrackByFunction, OnInit } from '@angular/core'; +import { Select, Store } from '@ngxs/store'; +import { Observable, combineLatest, Subject } from 'rxjs'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { FormBuilder, FormGroup, Validators, FormArray, AbstractControl } from '@angular/forms'; +import { IdentityState } from '../../states/identity.state'; +import { Identity } from '../../models/identity'; +import { + IdentityUpdateUser, + IdentityAddUser, + IdentityDeleteUser, + IdentityGetUserById, + IdentityGetUsers, +} from '../../actions/identity.actions'; +import { pluck, filter, map, take, debounceTime } from 'rxjs/operators'; +import { ConfirmationService, Toaster } from '@abp/ng.theme.shared'; +import snq from 'snq'; +import { IdentityGetUserRoles } from '../../actions/identity.actions'; +import { validatePassword } from '@ngx-validate/core'; +import { ABP } from '@abp/ng.core'; + +@Component({ + selector: 'abp-users', + templateUrl: './users.component.html', +}) +export class UsersComponent implements OnInit { + @Select(IdentityState.getUsers) + data$: Observable; + + @Select(IdentityState.getUsersTotalCount) + totalCount$: Observable; + + @ViewChild('modalContent', { static: false }) + modalContent: TemplateRef; + + form: FormGroup; + + selected: Identity.UserItem; + + selectedUserRoles: Identity.RoleItem[]; + + roles: Identity.RoleItem[]; + + visiblePermissions: boolean = false; + + providerKey: string; + + pageQuery: ABP.PageQueryParams = { + sorting: 'userName', + }; + + loading: boolean = false; + + search$ = new Subject(); + + trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index; + + get roleGroups(): FormGroup[] { + return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []); + } + + constructor( + private confirmationService: ConfirmationService, + private modalService: NgbModal, + private fb: FormBuilder, + private store: Store, + ) {} + + ngOnInit() { + this.search$.pipe(debounceTime(300)).subscribe(value => { + this.pageQuery.filter = value; + this.get(); + }); + } + + buildForm() { + this.roles = this.store.selectSnapshot(IdentityState.getRoles); + + this.form = this.fb.group({ + password: [ + '', + [ + Validators.required, + Validators.maxLength(32), + Validators.minLength(6), + validatePassword(['small', 'capital', 'number', 'special']), + ], + ], + userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]], + email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]], + name: [this.selected.name || '', [Validators.maxLength(64)]], + surname: [this.selected.surname || '', [Validators.maxLength(64)]], + phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]], + lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)], + roleNames: this.fb.array( + this.roles.map(role => + this.fb.group({ + [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))], + }), + ), + ), + }); + } + + openModal() { + this.buildForm(); + this.modalService.open(this.modalContent); + } + + onAdd() { + this.selected = {} as Identity.UserItem; + this.selectedUserRoles = [] as Identity.RoleItem[]; + this.openModal(); + } + + onEdit(id: string) { + combineLatest([this.store.dispatch(new IdentityGetUserById(id)), this.store.dispatch(new IdentityGetUserRoles(id))]) + .pipe( + filter(([res1, res2]) => res1 && res2), + map(([state, _]) => state), + pluck('IdentityState'), + take(1), + ) + .subscribe((state: Identity.State) => { + this.selected = state.selectedUser; + this.selectedUserRoles = state.selectedUserRoles; + this.openModal(); + }); + } + + save() { + if (!this.form.valid) return; + + const { roleNames } = this.form.value; + const mappedRoleNames = snq( + () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]), + [], + ); + + this.store + .dispatch( + this.selected.id + ? new IdentityUpdateUser({ + ...this.form.value, + id: this.selected.id, + roleNames: mappedRoleNames, + }) + : new IdentityAddUser({ ...this.form.value, roleNames: mappedRoleNames }), + ) + .subscribe(() => this.modalService.dismissAll()); + } + + delete(id: string, userName: string) { + this.confirmationService + .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', { + messageLocalizationParams: [userName], + }) + .subscribe((status: Toaster.Status) => { + if (status === Toaster.Status.confirm) { + this.store.dispatch(new IdentityDeleteUser(id)); + } + }); + } + + onPageChange(data) { + this.pageQuery.skipCount = data.first; + this.pageQuery.maxResultCount = data.rows; + + this.get(); + } + + get() { + this.loading = true; + this.store.dispatch(new IdentityGetUsers(this.pageQuery)).subscribe(() => (this.loading = false)); + } +} diff --git a/npm/packs/ng/packages/identity/src/lib/constants/routes.ts b/npm/packs/ng/packages/identity/src/lib/constants/routes.ts new file mode 100644 index 0000000000..24df21cda6 --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/constants/routes.ts @@ -0,0 +1,21 @@ +import { eLayoutType, ABP } from '@abp/ng.core'; + +export const IDENTITY_ROUTES = [ + { + name: 'Administration', + path: '', + order: 1, + wrapper: true, + }, + { + name: 'Identity', + path: 'identity', + order: 1, + parentName: 'Administration', + layout: eLayoutType.application, + children: [ + { path: 'roles', name: 'Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' }, + { path: 'users', name: 'Users', order: 1, requiredPolicy: 'AbpIdentity.Users' }, + ], + }, +] as ABP.FullRoute[]; diff --git a/npm/packs/ng/packages/identity/src/lib/identity-routing.module.ts b/npm/packs/ng/packages/identity/src/lib/identity-routing.module.ts new file mode 100644 index 0000000000..fbbecffc9b --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/identity-routing.module.ts @@ -0,0 +1,38 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { RolesComponent } from './components/roles/roles.component'; +import { RoleResolver } from './resolvers/roles.resolver'; +import { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core'; +import { UsersComponent } from './components/users/users.component'; +import { UserResolver } from './resolvers/users.resolver'; + +const routes: Routes = [ + { path: '', redirectTo: 'roles', pathMatch: 'full' }, + { + path: 'roles', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: { requiredPolicy: 'AbpIdentity.Roles' }, + children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }], + }, + { + path: 'users', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: { requiredPolicy: 'AbpIdentity.Users' }, + children: [ + { + path: '', + component: UsersComponent, + resolve: [RoleResolver, UserResolver], + }, + ], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + providers: [RoleResolver, UserResolver], +}) +export class IdentityRoutingModule {} diff --git a/npm/packs/ng/packages/identity/src/lib/identity.module.ts b/npm/packs/ng/packages/identity/src/lib/identity.module.ts new file mode 100644 index 0000000000..7ae218a5f3 --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/identity.module.ts @@ -0,0 +1,28 @@ +import { CoreModule } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { NgxsModule } from '@ngxs/store'; +import { RolesComponent } from './components/roles/roles.component'; +import { IdentityRoutingModule } from './identity-routing.module'; +import { IdentityState } from './states/identity.state'; +import { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { UsersComponent } from './components/users/users.component'; +import { PermissionManagementModule } from '@abp/ng.permission-management'; +import { TableModule } from 'primeng/table'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; + +@NgModule({ + declarations: [RolesComponent, UsersComponent], + imports: [ + NgxsModule.forFeature([IdentityState]), + CoreModule, + IdentityRoutingModule, + NgbTabsetModule, + ThemeSharedModule, + TableModule, + NgbDropdownModule, + PermissionManagementModule, + NgxValidateCoreModule, + ], +}) +export class IdentityModule {} diff --git a/npm/packs/ng/packages/identity/src/lib/models/identity.ts b/npm/packs/ng/packages/identity/src/lib/models/identity.ts new file mode 100644 index 0000000000..b296eda95f --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/models/identity.ts @@ -0,0 +1,51 @@ +import { ABP } from '@abp/ng.core'; + +export namespace Identity { + export interface State { + roles: RoleResponse; + users: UserResponse; + selectedRole: RoleItem; + selectedUser: UserItem; + selectedUserRoles: RoleItem[]; + } + + export type RoleResponse = ABP.PagedResponse; + + export interface RoleSaveRequest { + name: string; + isDefault: boolean; + isPublic: boolean; + } + + export interface RoleItem extends RoleSaveRequest { + isStatic: boolean; + concurrencyStamp: string; + id: string; + } + + export type UserResponse = ABP.PagedResponse; + + export interface UserItem extends User { + tenantId: string; + emailConfirmed: boolean; + phoneNumberConfirmed: boolean; + isLockedOut: boolean; + concurrencyStamp: string; + id: string; + } + + export interface User { + userName: string; + name: string; + surname: string; + email: string; + phoneNumber: string; + twoFactorEnabled: true; + lockoutEnabled: true; + } + + export interface UserSaveRequest extends User { + password: string; + roleNames: string[]; + } +} diff --git a/npm/packs/ng/packages/identity/src/lib/resolvers/roles.resolver.ts b/npm/packs/ng/packages/identity/src/lib/resolvers/roles.resolver.ts new file mode 100644 index 0000000000..1d9416d28c --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/resolvers/roles.resolver.ts @@ -0,0 +1,16 @@ +import { Injectable } from '@angular/core'; +import { Resolve } from '@angular/router'; +import { Store } from '@ngxs/store'; +import { IdentityGetRoles } from '../actions/identity.actions'; +import { Identity } from '../models/identity'; +import { IdentityState } from '../states/identity.state'; + +@Injectable() +export class RoleResolver implements Resolve { + constructor(private store: Store) {} + + resolve() { + const roles = this.store.selectSnapshot(IdentityState.getRoles); + return roles && roles.length ? null : this.store.dispatch(new IdentityGetRoles()); + } +} diff --git a/npm/packs/ng/packages/identity/src/lib/resolvers/users.resolver.ts b/npm/packs/ng/packages/identity/src/lib/resolvers/users.resolver.ts new file mode 100644 index 0000000000..3dc7a39372 --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/resolvers/users.resolver.ts @@ -0,0 +1,16 @@ +import { Injectable } from '@angular/core'; +import { Resolve } from '@angular/router'; +import { Store } from '@ngxs/store'; +import { IdentityGetUsers } from '../actions/identity.actions'; +import { Identity } from '../models/identity'; +import { IdentityState } from '../states/identity.state'; + +@Injectable() +export class UserResolver implements Resolve { + constructor(private store: Store) {} + + resolve() { + const users = this.store.selectSnapshot(IdentityState.getUsers); + return users && users.length ? null : this.store.dispatch(new IdentityGetUsers()); + } +} diff --git a/npm/packs/ng/packages/identity/src/lib/services/identity.service.ts b/npm/packs/ng/packages/identity/src/lib/services/identity.service.ts new file mode 100644 index 0000000000..99a258b720 --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/services/identity.service.ts @@ -0,0 +1,121 @@ +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { RestService, Rest, ABP } from '@abp/ng.core'; +import { Identity } from '../models/identity'; + +@Injectable({ + providedIn: 'root', +}) +export class IdentityService { + constructor(private rest: RestService) {} + + getRoles(): Observable { + const request: Rest.Request = { + method: 'GET', + url: '/api/identity/role', + }; + + return this.rest.request(request); + } + + getRoleById(id: string): Observable { + const request: Rest.Request = { + method: 'GET', + url: `/api/identity/role/${id}`, + }; + + return this.rest.request(request); + } + + deleteRole(id: string): Observable { + const request: Rest.Request = { + method: 'DELETE', + url: `/api/identity/role/${id}`, + }; + + return this.rest.request(request); + } + + addRole(body: Identity.RoleSaveRequest): Observable { + const request: Rest.Request = { + method: 'POST', + url: '/api/identity/role', + body, + }; + + return this.rest.request(request); + } + + updateRole(body: Identity.RoleItem): Observable { + const url = `/api/identity/role/${body.id}`; + delete body.id; + + const request: Rest.Request = { + method: 'PUT', + url, + body, + }; + + return this.rest.request(request); + } + + getUsers(params = {} as ABP.PageQueryParams): Observable { + const request: Rest.Request = { + method: 'GET', + url: '/api/identity/user', + params, + }; + + return this.rest.request(request); + } + + getUserById(id: string): Observable { + const request: Rest.Request = { + method: 'GET', + url: `/api/identity/user/${id}`, + }; + + return this.rest.request(request); + } + + getUserRoles(id: string): Observable { + const request: Rest.Request = { + method: 'GET', + url: `/api/identity/user/${id}/roles`, + }; + + return this.rest.request(request); + } + + deleteUser(id: string): Observable { + const request: Rest.Request = { + method: 'DELETE', + url: `/api/identity/user/${id}`, + }; + + return this.rest.request(request); + } + + addUser(body: Identity.UserSaveRequest): Observable { + const request: Rest.Request = { + method: 'POST', + url: '/api/identity/user', + body, + }; + + return this.rest.request(request); + } + + updateUser(body: Identity.UserItem): Observable { + const url = `/identity/users/${body.id}`; + delete body.id; + + const request: Rest.Request = { + method: 'PUT', + url, + body, + }; + + return this.rest.request(request); + } +} diff --git a/npm/packs/ng/packages/identity/src/lib/states/identity.state.ts b/npm/packs/ng/packages/identity/src/lib/states/identity.state.ts new file mode 100644 index 0000000000..ad2d31c3ff --- /dev/null +++ b/npm/packs/ng/packages/identity/src/lib/states/identity.state.ts @@ -0,0 +1,137 @@ +import { Action, Selector, State, StateContext } from '@ngxs/store'; +import { switchMap, tap, pluck } from 'rxjs/operators'; +import { + IdentityAddRole, + IdentityAddUser, + IdentityDeleteRole, + IdentityDeleteUser, + IdentityGetRoleById, + IdentityGetRoles, + IdentityGetUserById, + IdentityGetUsers, + IdentityUpdateRole, + IdentityUpdateUser, + IdentityGetUserRoles, +} from '../actions/identity.actions'; +import { Identity } from '../models/identity'; +import { IdentityService } from '../services/identity.service'; + +@State({ + name: 'IdentityState', + defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State, +}) +export class IdentityState { + @Selector() + static getRoles({ roles }: Identity.State): Identity.RoleItem[] { + return roles.items; + } + + @Selector() + static getRolesTotalCount({ roles }: Identity.State): number { + return roles.totalCount; + } + + @Selector() + static getUsers({ users }: Identity.State): Identity.UserItem[] { + return users.items; + } + + @Selector() + static getUsersTotalCount({ users }: Identity.State): number { + return users.totalCount; + } + + constructor(private identityService: IdentityService) {} + + @Action(IdentityGetRoles) + getRoles({ patchState }: StateContext) { + return this.identityService.getRoles().pipe( + tap(roles => + patchState({ + roles, + }), + ), + ); + } + + @Action(IdentityGetRoleById) + getRole({ patchState }: StateContext, { payload }: IdentityGetRoleById) { + return this.identityService.getRoleById(payload).pipe( + tap(selectedRole => + patchState({ + selectedRole, + }), + ), + ); + } + + @Action(IdentityDeleteRole) + deleteRole({ dispatch }: StateContext, { payload }: IdentityGetRoleById) { + return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new IdentityGetRoles()))); + } + + @Action(IdentityAddRole) + addRole({ dispatch }: StateContext, { payload }: IdentityAddRole) { + return this.identityService.addRole(payload).pipe(switchMap(() => dispatch(new IdentityGetRoles()))); + } + + @Action(IdentityUpdateRole) + updateRole({ getState, dispatch }: StateContext, { payload }: IdentityUpdateRole) { + return dispatch(new IdentityGetRoleById(payload.id)).pipe( + switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })), + switchMap(() => dispatch(new IdentityGetRoles())), + ); + } + + @Action(IdentityGetUsers) + getUsers({ patchState }: StateContext, { payload }: IdentityGetUsers) { + return this.identityService.getUsers(payload).pipe( + tap(users => + patchState({ + users, + }), + ), + ); + } + + @Action(IdentityGetUserById) + getUser({ patchState }: StateContext, { payload }: IdentityGetUserById) { + return this.identityService.getUserById(payload).pipe( + tap(selectedUser => + patchState({ + selectedUser, + }), + ), + ); + } + + @Action(IdentityDeleteUser) + deleteUser({ dispatch }: StateContext, { payload }: IdentityGetUserById) { + return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new IdentityGetUsers()))); + } + + @Action(IdentityAddUser) + addUser({ dispatch }: StateContext, { payload }: IdentityAddUser) { + return this.identityService.addUser(payload).pipe(switchMap(() => dispatch(new IdentityGetUsers()))); + } + + @Action(IdentityUpdateUser) + updateUser({ getState, dispatch }: StateContext, { payload }: IdentityUpdateUser) { + return dispatch(new IdentityGetUserById(payload.id)).pipe( + switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })), + switchMap(() => dispatch(new IdentityGetUsers())), + ); + } + + @Action(IdentityGetUserRoles) + getUserRoles({ patchState }: StateContext, { payload }: IdentityGetUserRoles) { + return this.identityService.getUserRoles(payload).pipe( + pluck('items'), + tap(selectedUserRoles => + patchState({ + selectedUserRoles, + }), + ), + ); + } +} diff --git a/npm/packs/ng/packages/identity/src/public-api.ts b/npm/packs/ng/packages/identity/src/public-api.ts new file mode 100644 index 0000000000..be547b1c34 --- /dev/null +++ b/npm/packs/ng/packages/identity/src/public-api.ts @@ -0,0 +1,12 @@ +/* + * Public API Surface of identity + */ + +export * from './lib/identity.module'; +export * from './lib/actions/identity.actions'; +export * from './lib/components/roles/roles.component'; +export * from './lib/constants/routes'; +export * from './lib/models/identity'; +export * from './lib/resolvers/roles.resolver'; +export * from './lib/services/identity.service'; +export * from './lib/states/identity.state'; diff --git a/npm/packs/ng/packages/identity/src/test.ts b/npm/packs/ng/packages/identity/src/test.ts new file mode 100644 index 0000000000..978c64fb83 --- /dev/null +++ b/npm/packs/ng/packages/identity/src/test.ts @@ -0,0 +1,21 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone'; +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/npm/packs/ng/packages/identity/tsconfig.lib.json b/npm/packs/ng/packages/identity/tsconfig.lib.json new file mode 100644 index 0000000000..2972099ba1 --- /dev/null +++ b/npm/packs/ng/packages/identity/tsconfig.lib.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "target": "es2015", + "declaration": true, + "inlineSources": true, + "types": [], + "lib": ["dom", "es2018"] + }, + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true, + "enableResourceInlining": true + }, + "exclude": ["src/test.ts", "**/*.spec.ts"] +} diff --git a/npm/packs/ng/packages/identity/tsconfig.spec.json b/npm/packs/ng/packages/identity/tsconfig.spec.json new file mode 100644 index 0000000000..16da33db07 --- /dev/null +++ b/npm/packs/ng/packages/identity/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "src/test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/npm/packs/ng/packages/identity/tslint.json b/npm/packs/ng/packages/identity/tslint.json new file mode 100644 index 0000000000..8c3919ea62 --- /dev/null +++ b/npm/packs/ng/packages/identity/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "abp", + "camelCase" + ], + "component-selector": [ + true, + "element", + "abp", + "kebab-case" + ] + } +} diff --git a/npm/packs/ng/packages/permission-management/README.md b/npm/packs/ng/packages/permission-management/README.md new file mode 100644 index 0000000000..29fbdc1a7f --- /dev/null +++ b/npm/packs/ng/packages/permission-management/README.md @@ -0,0 +1 @@ +

    @abp/ng.permission-management

    diff --git a/npm/packs/ng/packages/permission-management/karma.conf.js b/npm/packs/ng/packages/permission-management/karma.conf.js new file mode 100644 index 0000000000..9bbd5907ef --- /dev/null +++ b/npm/packs/ng/packages/permission-management/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../../coverage/permission-management'), + reports: ['html', 'lcovonly'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/npm/packs/ng/packages/permission-management/ng-package.json b/npm/packs/ng/packages/permission-management/ng-package.json new file mode 100644 index 0000000000..03f80c37cc --- /dev/null +++ b/npm/packs/ng/packages/permission-management/ng-package.json @@ -0,0 +1,8 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/permission-management", + "lib": { + "entryFile": "src/public-api.ts" + }, + "whitelistedNonPeerDependencies": ["@abp/ng.theme.shared"] +} diff --git a/npm/packs/ng/packages/permission-management/package.json b/npm/packs/ng/packages/permission-management/package.json new file mode 100644 index 0000000000..f36c7578d2 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/package.json @@ -0,0 +1,7 @@ +{ + "name": "@abp/ng.permission-management", + "version": "0.5.0", + "dependencies": { + "@abp/ng.theme.shared": "^0.5.0" + } +} diff --git a/npm/packs/ng/packages/permission-management/src/lib/actions/index.ts b/npm/packs/ng/packages/permission-management/src/lib/actions/index.ts new file mode 100644 index 0000000000..5fb2c9e8e4 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/actions/index.ts @@ -0,0 +1 @@ +export * from './permission-management.actions'; diff --git a/npm/packs/ng/packages/permission-management/src/lib/actions/permission-management.actions.ts b/npm/packs/ng/packages/permission-management/src/lib/actions/permission-management.actions.ts new file mode 100644 index 0000000000..139f4d50eb --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/actions/permission-management.actions.ts @@ -0,0 +1,11 @@ +import { PermissionManagement } from '../models/permission-management'; + +export class PermissionManagementGetPermissions { + static readonly type = '[PermissionManagement] Get Permissions'; + constructor(public payload: PermissionManagement.GrantedProvider) {} +} + +export class PermissionManagementUpdatePermissions { + static readonly type = '[PermissionManagement] Update Permissions'; + constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {} +} diff --git a/npm/packs/ng/packages/permission-management/src/lib/components/index.ts b/npm/packs/ng/packages/permission-management/src/lib/components/index.ts new file mode 100644 index 0000000000..efa91b45a2 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/components/index.ts @@ -0,0 +1 @@ +export * from './permission-management.component'; diff --git a/npm/packs/ng/packages/permission-management/src/lib/components/permission-management.component.html b/npm/packs/ng/packages/permission-management/src/lib/components/permission-management.component.html new file mode 100644 index 0000000000..589ed2cd2c --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/components/permission-management.component.html @@ -0,0 +1,94 @@ + + + + + + + + diff --git a/npm/packs/ng/packages/permission-management/src/lib/components/permission-management.component.ts b/npm/packs/ng/packages/permission-management/src/lib/components/permission-management.component.ts new file mode 100644 index 0000000000..f82c552b93 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/components/permission-management.component.ts @@ -0,0 +1,259 @@ +import { + Component, + EventEmitter, + Input, + OnChanges, + OnInit, + Output, + Renderer2, + SimpleChanges, + TemplateRef, + TrackByFunction, + ViewChild, +} from '@angular/core'; +import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; +import { Select, Store } from '@ngxs/store'; +import { from, Observable } from 'rxjs'; +import { map, pluck, take } from 'rxjs/operators'; +import { + PermissionManagementGetPermissions, + PermissionManagementUpdatePermissions, +} from '../actions/permission-management.actions'; +import { PermissionManagement } from '../models/permission-management'; +import { PermissionManagementState } from '../states/permission-management.state'; + +type PermissionWithMargin = PermissionManagement.Permission & { margin: number }; + +@Component({ + selector: 'abp-permission-management', + templateUrl: './permission-management.component.html', +}) +export class PermissionManagementComponent implements OnInit, OnChanges { + @Input() + providerName: string; + + @Input() + providerKey: string; + + @Input() + visible: boolean; + + @Output() + visibleChange = new EventEmitter(); + + @ViewChild('modalContent', { static: false }) + modalContent: TemplateRef; + + @Select(PermissionManagementState.getPermissionGroups) + groups$: Observable; + + @Select(PermissionManagementState.getEntitiyDisplayName) + entityName$: Observable; + + modalRef: NgbModalRef; + + selectedGroup: PermissionManagement.Group; + + permissions: PermissionManagement.Permission[] = []; + + selectThisTab: boolean = false; + + selectAllTab: boolean = false; + + trackByFn: TrackByFunction = (_, item) => item.name; + + get selectedGroupPermissions$(): Observable { + return this.groups$.pipe( + map(groups => + this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [], + ), + map(permissions => + permissions.map( + permission => + (({ + ...permission, + margin: findMargin(permissions, permission), + isGranted: this.permissions.find(per => per.name === permission.name).isGranted, + } as any) as PermissionWithMargin), + ), + ), + ); + } + + constructor(private modalService: NgbModal, private store: Store, private renderer: Renderer2) {} + + ngOnInit(): void {} + + getChecked(name: string) { + return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted; + } + + onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) { + setTimeout(() => { + this.permissions = this.permissions.map(per => { + if (clickedPermission.name === per.name) { + return { ...per, isGranted: !per.isGranted }; + } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) { + return { ...per, isGranted: false }; + } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) { + return { ...per, isGranted: true }; + } + + return per; + }); + + this.setTabCheckboxState(); + this.setGrantCheckboxState(); + }, 0); + } + + setTabCheckboxState() { + this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => { + const selectedPermissions = permissions.filter(per => per.isGranted); + const element = document.querySelector('#select-all-in-this-tabs') as any; + + if (selectedPermissions.length === permissions.length) { + element.indeterminate = false; + this.selectThisTab = true; + } else if (selectedPermissions.length === 0) { + element.indeterminate = false; + this.selectThisTab = false; + } else { + element.indeterminate = true; + } + }); + } + + setGrantCheckboxState() { + const selectedAllPermissions = this.permissions.filter(per => per.isGranted); + const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any; + + if (selectedAllPermissions.length === this.permissions.length) { + checkboxElement.indeterminate = false; + this.selectAllTab = true; + } else if (selectedAllPermissions.length === 0) { + checkboxElement.indeterminate = false; + this.selectAllTab = false; + } else { + checkboxElement.indeterminate = true; + } + } + + onClickSelectThisTab() { + this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => { + permissions.forEach(permission => { + const index = this.permissions.findIndex(per => per.name === permission.name); + + this.permissions = [ + ...this.permissions.slice(0, index), + { ...this.permissions[index], isGranted: !this.selectThisTab }, + ...this.permissions.slice(index + 1), + ]; + }); + }); + + this.setGrantCheckboxState(); + } + + onClickSelectAll() { + this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab })); + + this.selectThisTab = !this.selectAllTab; + } + + onChangeGroup(group: PermissionManagement.Group) { + this.selectedGroup = group; + this.setTabCheckboxState(); + } + + onSubmit() { + const unchangedPermissions = getPermissions( + this.store.selectSnapshot(PermissionManagementState.getPermissionGroups), + ); + + const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions + .filter(per => + unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true, + ) + .map(({ name, isGranted }) => ({ name, isGranted })); + + if (changedPermissions.length) { + this.store + .dispatch( + new PermissionManagementUpdatePermissions({ + providerKey: this.providerKey, + providerName: this.providerName, + permissions: changedPermissions, + }), + ) + .subscribe(() => this.modalRef.close()); + } else { + this.modalRef.close(); + } + } + + openModal() { + if (!this.providerKey || !this.providerName) { + throw new Error('Provider Key and Provider Name are required.'); + } + + this.store + .dispatch( + new PermissionManagementGetPermissions({ providerKey: this.providerKey, providerName: this.providerName }), + ) + .pipe(pluck('PermissionManagementState', 'permissionRes')) + .subscribe((permissionRes: PermissionManagement.Response) => { + this.selectedGroup = permissionRes.groups[0]; + this.permissions = getPermissions(permissionRes.groups); + + this.modalRef = this.modalService.open(this.modalContent, { size: 'lg' }); + this.visibleChange.emit(true); + + setTimeout(() => { + this.setTabCheckboxState(); + this.setGrantCheckboxState(); + }, 0); + + from(this.modalRef.result) + .pipe(take(1)) + .subscribe( + data => { + this.setVisible(false); + }, + reason => { + this.setVisible(false); + }, + ); + }); + } + + setVisible(value: boolean) { + this.visible = value; + this.visibleChange.emit(value); + } + + ngOnChanges({ visible }: SimpleChanges): void { + if (!visible) return; + + if (visible.currentValue) { + this.openModal(); + } else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + } +} + +function findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) { + const parentPermission = permissions.find(per => per.name === permission.parentName); + + if (parentPermission && parentPermission.parentName) { + let margin = 20; + return (margin += findMargin(permissions, parentPermission)); + } + + return parentPermission ? 20 : 0; +} + +function getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] { + return groups.reduce((acc, val) => [...acc, ...val.permissions], []); +} diff --git a/npm/packs/ng/packages/permission-management/src/lib/models/index.ts b/npm/packs/ng/packages/permission-management/src/lib/models/index.ts new file mode 100644 index 0000000000..6a06f3adab --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/models/index.ts @@ -0,0 +1 @@ +export * from './permission-management'; diff --git a/npm/packs/ng/packages/permission-management/src/lib/models/permission-management.ts b/npm/packs/ng/packages/permission-management/src/lib/models/permission-management.ts new file mode 100644 index 0000000000..cf5d3b2371 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/models/permission-management.ts @@ -0,0 +1,37 @@ +export namespace PermissionManagement { + export interface State { + permissionRes: Response; + } + + export interface Response { + entityDisplayName: string; + groups: Group[]; + } + + export interface Group { + name: string; + displayName: string; + permissions: Permission[]; + } + + export interface MinimumPermission { + name: string; + isGranted: boolean; + } + + export interface Permission extends MinimumPermission { + displayName: string; + parentName: string; + allowedProviders: string[]; + grantedProviders: GrantedProvider[]; + } + + export interface GrantedProvider { + providerName: string; + providerKey: string; + } + + export interface UpdateRequest { + permissions: MinimumPermission[]; + } +} diff --git a/npm/packs/ng/packages/permission-management/src/lib/permission-management.module.ts b/npm/packs/ng/packages/permission-management/src/lib/permission-management.module.ts new file mode 100644 index 0000000000..3986689c41 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/permission-management.module.ts @@ -0,0 +1,14 @@ +import { CoreModule } from '@abp/ng.core'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { NgModule } from '@angular/core'; +import { NgxsModule } from '@ngxs/store'; +import { PermissionManagementComponent } from './components/permission-management.component'; +import { PermissionManagementState } from './states/permission-management.state'; +import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; + +@NgModule({ + declarations: [PermissionManagementComponent], + imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule], + exports: [PermissionManagementComponent], +}) +export class PermissionManagementModule {} diff --git a/npm/packs/ng/packages/permission-management/src/lib/services/index.ts b/npm/packs/ng/packages/permission-management/src/lib/services/index.ts new file mode 100644 index 0000000000..47ac05d8fa --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/services/index.ts @@ -0,0 +1 @@ +export * from './permission-management.service'; diff --git a/npm/packs/ng/packages/permission-management/src/lib/services/permission-management.service.ts b/npm/packs/ng/packages/permission-management/src/lib/services/permission-management.service.ts new file mode 100644 index 0000000000..e7fdd98ce3 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/services/permission-management.service.ts @@ -0,0 +1,36 @@ +import { Injectable } from '@angular/core'; +import { RestService, Rest } from '@abp/ng.core'; +import { Observable } from 'rxjs'; +import { PermissionManagement } from '../models/permission-management'; + +@Injectable({ + providedIn: 'root', +}) +export class PermissionManagementService { + constructor(private rest: RestService) {} + + getPermissions(params: PermissionManagement.GrantedProvider): Observable { + const request: Rest.Request = { + method: 'GET', + url: '/api/abp/permissions', + params, + }; + + return this.rest.request(request); + } + + updatePermissions({ + permissions, + providerKey, + providerName, + }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable { + const request: Rest.Request = { + method: 'PUT', + url: '/api/abp/permissions', + body: { permissions }, + params: { providerKey, providerName }, + }; + + return this.rest.request(request); + } +} diff --git a/npm/packs/ng/packages/permission-management/src/lib/states/index.ts b/npm/packs/ng/packages/permission-management/src/lib/states/index.ts new file mode 100644 index 0000000000..11166b2e3b --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/states/index.ts @@ -0,0 +1 @@ +export * from "./permission-management.state"; diff --git a/npm/packs/ng/packages/permission-management/src/lib/states/permission-management.state.ts b/npm/packs/ng/packages/permission-management/src/lib/states/permission-management.state.ts new file mode 100644 index 0000000000..842795ca16 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/lib/states/permission-management.state.ts @@ -0,0 +1,45 @@ +import { State, Action, StateContext, Selector } from '@ngxs/store'; +import { + PermissionManagementGetPermissions, + PermissionManagementUpdatePermissions, +} from '../actions/permission-management.actions'; +import { PermissionManagement } from '../models/permission-management'; +import { PermissionManagementService } from '../services/permission-management.service'; +import { tap } from 'rxjs/operators'; + +@State({ + name: 'PermissionManagementState', + defaults: { permissionRes: {} } as PermissionManagement.State, +}) +export class PermissionManagementState { + @Selector() + static getPermissionGroups({ permissionRes }: PermissionManagement.State) { + return permissionRes.groups || []; + } + + @Selector() + static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string { + return permissionRes.entityDisplayName; + } + + constructor(private permissionManagementService: PermissionManagementService) {} + + @Action(PermissionManagementGetPermissions) + permissionManagementGet( + { patchState }: StateContext, + { payload }: PermissionManagementGetPermissions, + ) { + return this.permissionManagementService.getPermissions(payload).pipe( + tap(permissionResponse => + patchState({ + permissionRes: permissionResponse, + }), + ), + ); + } + + @Action(PermissionManagementUpdatePermissions) + permissionManagementUpdate(_, { payload }: PermissionManagementUpdatePermissions) { + return this.permissionManagementService.updatePermissions(payload); + } +} diff --git a/npm/packs/ng/packages/permission-management/src/public-api.ts b/npm/packs/ng/packages/permission-management/src/public-api.ts new file mode 100644 index 0000000000..3182363f25 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/public-api.ts @@ -0,0 +1,10 @@ +/* + * Public API Surface of permission-management + */ + +export * from './lib/permission-management.module'; +export * from './lib/actions'; +export * from './lib/components'; +export * from './lib/models'; +export * from './lib/services'; +export * from './lib/states'; diff --git a/npm/packs/ng/packages/permission-management/src/test.ts b/npm/packs/ng/packages/permission-management/src/test.ts new file mode 100644 index 0000000000..978c64fb83 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/src/test.ts @@ -0,0 +1,21 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone'; +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/npm/packs/ng/packages/permission-management/tsconfig.lib.json b/npm/packs/ng/packages/permission-management/tsconfig.lib.json new file mode 100644 index 0000000000..2972099ba1 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/tsconfig.lib.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "target": "es2015", + "declaration": true, + "inlineSources": true, + "types": [], + "lib": ["dom", "es2018"] + }, + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true, + "enableResourceInlining": true + }, + "exclude": ["src/test.ts", "**/*.spec.ts"] +} diff --git a/npm/packs/ng/packages/permission-management/tsconfig.spec.json b/npm/packs/ng/packages/permission-management/tsconfig.spec.json new file mode 100644 index 0000000000..16da33db07 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "src/test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/npm/packs/ng/packages/permission-management/tslint.json b/npm/packs/ng/packages/permission-management/tslint.json new file mode 100644 index 0000000000..8c3919ea62 --- /dev/null +++ b/npm/packs/ng/packages/permission-management/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "abp", + "camelCase" + ], + "component-selector": [ + true, + "element", + "abp", + "kebab-case" + ] + } +} diff --git a/npm/packs/ng/packages/tenant-management/README.md b/npm/packs/ng/packages/tenant-management/README.md new file mode 100644 index 0000000000..0d67aa2d24 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/README.md @@ -0,0 +1 @@ +

    @abp/ng.tenant-management

    diff --git a/npm/packs/ng/packages/tenant-management/karma.conf.js b/npm/packs/ng/packages/tenant-management/karma.conf.js new file mode 100644 index 0000000000..eb6cfa24b4 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../../coverage/tenant-management'), + reports: ['html', 'lcovonly', 'text-summary'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/npm/packs/ng/packages/tenant-management/ng-package.json b/npm/packs/ng/packages/tenant-management/ng-package.json new file mode 100644 index 0000000000..bfe48d3a7c --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/ng-package.json @@ -0,0 +1,9 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/tenant-management", + "lib": { + "entryFile": "src/public-api.ts" + }, + "deleteDestPath": false, + "whitelistedNonPeerDependencies": ["@abp/ng.theme.shared"] +} diff --git a/npm/packs/ng/packages/tenant-management/package.json b/npm/packs/ng/packages/tenant-management/package.json new file mode 100644 index 0000000000..b30cb52371 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/package.json @@ -0,0 +1,7 @@ +{ + "name": "@abp/ng.tenant-management", + "version": "0.5.0", + "peerDependencies": { + "@abp/ng.theme.shared": "^0.5.0" + } +} diff --git a/npm/packs/ng/packages/tenant-management/src/lib/actions/index.ts b/npm/packs/ng/packages/tenant-management/src/lib/actions/index.ts new file mode 100644 index 0000000000..5c9207873f --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/actions/index.ts @@ -0,0 +1 @@ +export * from './tenant-management.actions'; diff --git a/npm/packs/ng/packages/tenant-management/src/lib/actions/tenant-management.actions.ts b/npm/packs/ng/packages/tenant-management/src/lib/actions/tenant-management.actions.ts new file mode 100644 index 0000000000..c9c2af5c11 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/actions/tenant-management.actions.ts @@ -0,0 +1,25 @@ +import { TenantManagement } from '../models/tenant-management'; + +export class TenantManagementGet { + static readonly type = '[TenantManagement] Get'; +} + +export class TenantManagementGetById { + static readonly type = '[TenantManagement] Get By Id'; + constructor(public payload: string) {} +} + +export class TenantManagementAdd { + static readonly type = '[TenantManagement] Add'; + constructor(public payload: TenantManagement.AddRequest) {} +} + +export class TenantManagementUpdate { + static readonly type = '[TenantManagement] Update'; + constructor(public payload: TenantManagement.UpdateRequest) {} +} + +export class TenantManagementDelete { + static readonly type = '[TenantManagement] Delete'; + constructor(public payload: string) {} +} diff --git a/npm/packs/ng/packages/tenant-management/src/lib/components/index.ts b/npm/packs/ng/packages/tenant-management/src/lib/components/index.ts new file mode 100644 index 0000000000..3174cf9458 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/components/index.ts @@ -0,0 +1 @@ +export * from './tenants/tenants.component'; diff --git a/npm/packs/ng/packages/tenant-management/src/lib/components/tenants/tenants.component.html b/npm/packs/ng/packages/tenant-management/src/lib/components/tenants/tenants.component.html new file mode 100644 index 0000000000..199c118b19 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/components/tenants/tenants.component.html @@ -0,0 +1,147 @@ +
    +
    +
    +
    +
    + {{ 'AbpTenantManagement::Tenants' | abpLocalization }} +
    +
    +
    + +
    +
    +
    +
    +
    + +
    + + + + {{ 'AbpTenantManagement::Actions' | abpLocalization }} + {{ 'AbpTenantManagement::TenantName' | abpLocalization }} + + + + + +
    + +
    + + + + +
    +
    + + {{ data.name }} + +
    +
    +
    +
    + + + + +
    + + + +
    +
    + + +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + + Manage Features + diff --git a/npm/packs/ng/packages/tenant-management/src/lib/components/tenants/tenants.component.ts b/npm/packs/ng/packages/tenant-management/src/lib/components/tenants/tenants.component.ts new file mode 100644 index 0000000000..134d942d50 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/components/tenants/tenants.component.ts @@ -0,0 +1,176 @@ +import { ABP } from '@abp/ng.core'; +import { ConfirmationService, Toaster } from '@abp/ng.theme.shared'; +import { Component, TemplateRef, ViewChild } from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { Select, Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { pluck, switchMap, take } from 'rxjs/operators'; +import { + TenantManagementAdd, + TenantManagementDelete, + TenantManagementGetById, + TenantManagementUpdate, +} from '../../actions/tenant-management.actions'; +import { TenantManagementService } from '../../services'; +import { TenantManagementState } from '../../states/tenant-management.state'; + +@Component({ + selector: 'abp-tenants', + templateUrl: './tenants.component.html', +}) +export class TenantsComponent { + @Select(TenantManagementState.get) + datas$: Observable; + + selected: ABP.BasicItem; + + tenantForm: FormGroup; + + defaultConnectionStringForm: FormGroup; + + defaultConnectionString: string; + + useSharedDatabase: boolean; + + selectedModalContent: { + title: string; + template: TemplateRef; + onSave: () => void; + }; + + get showInput(): boolean { + return !this.defaultConnectionStringForm.get('useSharedDatabase').value; + } + + get connectionString(): string { + return this.defaultConnectionStringForm.get('defaultConnectionString').value; + } + + @ViewChild('modalWrapper', { static: false }) + modalWrapper: TemplateRef; + + @ViewChild('mTemplateConnStr', { static: false }) + mTemplateConnStr: TemplateRef; + + @ViewChild('mTemplateFeatures', { static: false }) + mTemplateFeatures: TemplateRef; + + @ViewChild('mTemplateTenant', { static: false }) + mTemplateTenant: TemplateRef; + + constructor( + private confirmationService: ConfirmationService, + private tenantService: TenantManagementService, + private modalService: NgbModal, + private fb: FormBuilder, + private store: Store, + ) {} + + openModal() { + this.modalService.open(this.modalWrapper); + } + + private createTenantForm() { + this.tenantForm = this.fb.group({ + name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + }); + } + + private createDefaultConnectionStringForm() { + this.defaultConnectionStringForm = this.fb.group({ + useSharedDatabase: this.useSharedDatabase, + defaultConnectionString: this.defaultConnectionString || '', + }); + } + + onEditConnStr(id: string) { + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateConnStr, + onSave: () => this.saveConnStr, + }; + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe( + pluck('TenantManagementState', 'selectedItem'), + switchMap(selected => { + this.selected = selected; + return this.tenantService.getDefaultConnectionString(id); + }), + ) + .subscribe(fetchedConnectionString => { + this.useSharedDatabase = fetchedConnectionString ? false : true; + this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : ''; + this.createDefaultConnectionStringForm(); + this.openModal(); + }); + } + + saveConnStr() { + this.tenantService + .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString }) + .pipe(take(1)) + .subscribe(() => this.modalService.dismissAll()); + } + + onManageFeatures(id: string) { + this.selectedModalContent = { + title: this.selected && this.selected.id ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant', + template: this.mTemplateFeatures, + onSave: () => {}, + }; + this.openModal(); + } + + onAdd() { + this.selected = {} as ABP.BasicItem; + this.createTenantForm(); + this.openModal(); + this.selectedModalContent = { + title: 'AbpTenantManagement::NewTenant', + template: this.mTemplateTenant, + onSave: () => this.saveTenant, + }; + } + + onEdit(id: string) { + this.store + .dispatch(new TenantManagementGetById(id)) + .pipe(pluck('TenantManagementState', 'selectedItem')) + .subscribe(selected => { + this.selected = selected; + this.selectedModalContent = { + title: 'AbpTenantManagement::Edit', + template: this.mTemplateTenant, + onSave: () => this.saveTenant, + }; + this.createTenantForm(); + this.openModal(); + }); + } + + saveTenant() { + if (!this.tenantForm.valid) return; + + this.store + .dispatch( + this.selected.id + ? new TenantManagementUpdate({ ...this.tenantForm.value, id: this.selected.id }) + : new TenantManagementAdd(this.tenantForm.value), + ) + .subscribe(() => this.modalService.dismissAll()); + } + + delete(id: string, name: string) { + this.confirmationService + .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', { + messageLocalizationParams: [name], + }) + .subscribe((status: Toaster.Status) => { + if (status === Toaster.Status.confirm) { + this.store.dispatch(new TenantManagementDelete(id)); + } + }); + } +} diff --git a/npm/packs/ng/packages/tenant-management/src/lib/constants/index.ts b/npm/packs/ng/packages/tenant-management/src/lib/constants/index.ts new file mode 100644 index 0000000000..a3820983e2 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/constants/index.ts @@ -0,0 +1 @@ +export * from './routes'; diff --git a/npm/packs/ng/packages/tenant-management/src/lib/constants/routes.ts b/npm/packs/ng/packages/tenant-management/src/lib/constants/routes.ts new file mode 100644 index 0000000000..13cb5d13a4 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/constants/routes.ts @@ -0,0 +1,19 @@ +import { ABP, eLayoutType } from '@abp/ng.core'; + +export const TENANT_MANAGEMENT_ROUTES = [ + { + name: 'TenantManagement', + path: 'tenant-management', + parentName: 'Administration', + layout: eLayoutType.application, + children: [ + { + path: 'tenants', + name: 'Tenants', + order: 1, + requiredPolicy: 'AbpTenantManagement.Tenants', + parentName: 'TenantManagement', + }, + ], + }, +] as ABP.FullRoute[]; diff --git a/npm/packs/ng/packages/tenant-management/src/lib/models/index.ts b/npm/packs/ng/packages/tenant-management/src/lib/models/index.ts new file mode 100644 index 0000000000..580d09d215 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/models/index.ts @@ -0,0 +1 @@ +export * from './tenant-management'; diff --git a/npm/packs/ng/packages/tenant-management/src/lib/models/tenant-management.ts b/npm/packs/ng/packages/tenant-management/src/lib/models/tenant-management.ts new file mode 100644 index 0000000000..40a9c06d11 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/models/tenant-management.ts @@ -0,0 +1,28 @@ +import { ABP } from '@abp/ng.core'; + +export namespace TenantManagement { + export interface State { + result: Response; + selectedItem: Item; + } + + export type Response = ABP.PagedResponse; + + export interface Item { + id: string; + name: string; + } + + export interface AddRequest { + name: string; + } + + export interface UpdateRequest extends AddRequest { + id: string; + } + + export interface DefaultConnectionStringRequest { + id: string; + defaultConnectionString: string; + } +} diff --git a/npm/packs/ng/packages/tenant-management/src/lib/resolvers/index.ts b/npm/packs/ng/packages/tenant-management/src/lib/resolvers/index.ts new file mode 100644 index 0000000000..3c5a42a2ac --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/resolvers/index.ts @@ -0,0 +1 @@ +export * from './tenants.resolver'; diff --git a/npm/packs/ng/packages/tenant-management/src/lib/resolvers/tenants.resolver.ts b/npm/packs/ng/packages/tenant-management/src/lib/resolvers/tenants.resolver.ts new file mode 100644 index 0000000000..4ad2a81d9e --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/resolvers/tenants.resolver.ts @@ -0,0 +1,18 @@ +import { Injectable } from '@angular/core'; +import { Resolve } from '@angular/router'; +import { Store } from '@ngxs/store'; +import { TenantManagementGet } from '../actions/tenant-management.actions'; +import { TenantManagement } from '../models/tenant-management'; +import { TenantManagementState } from '../states/tenant-management.state'; + +@Injectable() +export class TenantsResolver implements Resolve { + constructor(private store: Store) {} + + resolve() { + const data = this.store.selectSnapshot(TenantManagementState.get); + return data && data.length + ? null + : this.store.dispatch(new TenantManagementGet()); + } +} diff --git a/npm/packs/ng/packages/tenant-management/src/lib/services/index.ts b/npm/packs/ng/packages/tenant-management/src/lib/services/index.ts new file mode 100644 index 0000000000..25e55ae978 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/services/index.ts @@ -0,0 +1 @@ +export * from './tenant-management.service'; diff --git a/npm/packs/ng/packages/tenant-management/src/lib/services/tenant-management.service.ts b/npm/packs/ng/packages/tenant-management/src/lib/services/tenant-management.service.ts new file mode 100644 index 0000000000..e01b635135 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/services/tenant-management.service.ts @@ -0,0 +1,83 @@ +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { RestService, Rest, ABP } from '@abp/ng.core'; +import { TenantManagement } from '../models/tenant-management'; + +@Injectable({ + providedIn: 'root', +}) +export class TenantManagementService { + constructor(private rest: RestService) {} + + get(): Observable { + const request: Rest.Request = { + method: 'GET', + url: '/api/multi-tenancy/tenant', + }; + + return this.rest.request(request); + } + + getById(id: string): Observable { + const request: Rest.Request = { + method: 'GET', + url: `/api/multi-tenancy/tenant/${id}`, + }; + + return this.rest.request(request); + } + + delete(id: string): Observable { + const request: Rest.Request = { + method: 'DELETE', + url: `/api/multi-tenancy/tenant/${id}`, + }; + + return this.rest.request(request); + } + + add(body: TenantManagement.AddRequest): Observable { + const request: Rest.Request = { + method: 'POST', + url: `/api/multi-tenancy/tenant`, + body, + }; + + return this.rest.request(request); + } + + update(body: TenantManagement.UpdateRequest): Observable { + const url = `/api/multi-tenancy/tenant/${body.id}`; + delete body.id; + + const request: Rest.Request = { + method: 'PUT', + url, + body, + }; + + return this.rest.request(request); + } + + getDefaultConnectionString(id: string): Observable { + const url = `/api/multi-tenancy/tenant/${id}/defaultConnectionString`; + + const request: Rest.Request = { + method: 'GET', + responseType: Rest.ResponseType.Text, + url, + }; + return this.rest.request(request); + } + + updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable { + const url = `/api/multi-tenancy/tenant/${payload.id}/defaultConnectionString`; + + const request: Rest.Request = { + method: 'PUT', + url, + params: { defaultConnectionString: payload.defaultConnectionString }, + }; + return this.rest.request(request); + } +} diff --git a/npm/packs/ng/packages/tenant-management/src/lib/states/index.ts b/npm/packs/ng/packages/tenant-management/src/lib/states/index.ts new file mode 100644 index 0000000000..a6fb4168fe --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/states/index.ts @@ -0,0 +1 @@ +export * from './tenant-management.state'; diff --git a/npm/packs/ng/packages/tenant-management/src/lib/states/tenant-management.state.ts b/npm/packs/ng/packages/tenant-management/src/lib/states/tenant-management.state.ts new file mode 100644 index 0000000000..d4bce9955e --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/states/tenant-management.state.ts @@ -0,0 +1,65 @@ +import { Action, Selector, State, StateContext } from '@ngxs/store'; +import { switchMap, tap } from 'rxjs/operators'; +import { + TenantManagementAdd, + TenantManagementDelete, + TenantManagementGet, + TenantManagementGetById, + TenantManagementUpdate, +} from '../actions/tenant-management.actions'; +import { TenantManagement } from '../models/tenant-management'; +import { TenantManagementService } from '../services/tenant-management.service'; +import { ABP } from '@abp/ng.core'; + +@State({ + name: 'TenantManagementState', + defaults: { result: {}, selectedItem: {} } as TenantManagement.State, +}) +export class TenantManagementState { + @Selector() + static get({ result }: TenantManagement.State): ABP.BasicItem[] { + return result.items || []; + } + + constructor(private tenantManagementService: TenantManagementService) {} + + @Action(TenantManagementGet) + get({ patchState }: StateContext) { + return this.tenantManagementService.get().pipe( + tap(result => + patchState({ + result, + }), + ), + ); + } + + @Action(TenantManagementGetById) + getById({ patchState }: StateContext, { payload }: TenantManagementGetById) { + return this.tenantManagementService.getById(payload).pipe( + tap(selectedItem => + patchState({ + selectedItem, + }), + ), + ); + } + + @Action(TenantManagementDelete) + delete({ dispatch }: StateContext, { payload }: TenantManagementDelete) { + return this.tenantManagementService.delete(payload).pipe(switchMap(() => dispatch(new TenantManagementGet()))); + } + + @Action(TenantManagementAdd) + add({ dispatch }: StateContext, { payload }: TenantManagementAdd) { + return this.tenantManagementService.add(payload).pipe(switchMap(() => dispatch(new TenantManagementGet()))); + } + + @Action(TenantManagementUpdate) + update({ dispatch, getState }: StateContext, { payload }: TenantManagementUpdate) { + return dispatch(new TenantManagementGetById(payload.id)).pipe( + switchMap(() => this.tenantManagementService.update({ ...getState().selectedItem, ...payload })), + switchMap(() => dispatch(new TenantManagementGet())), + ); + } +} diff --git a/npm/packs/ng/packages/tenant-management/src/lib/tenant-management-routing.module.ts b/npm/packs/ng/packages/tenant-management/src/lib/tenant-management-routing.module.ts new file mode 100644 index 0000000000..f705d4d689 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/tenant-management-routing.module.ts @@ -0,0 +1,23 @@ +import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { TenantsResolver } from './resolvers/tenants.resolver'; +import { TenantsComponent } from './components/tenants/tenants.component'; + +const routes: Routes = [ + { path: '', redirectTo: 'tenants', pathMatch: 'full' }, + { + path: 'tenants', + component: DynamicLayoutComponent, + canActivate: [AuthGuard, PermissionGuard], + data: { requiredPolicy: 'AbpTenantManagement.Tenants' }, + children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + providers: [TenantsResolver], +}) +export class TenantManagementRoutingModule {} diff --git a/npm/packs/ng/packages/tenant-management/src/lib/tenant-management.module.ts b/npm/packs/ng/packages/tenant-management/src/lib/tenant-management.module.ts new file mode 100644 index 0000000000..2850111dcc --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/lib/tenant-management.module.ts @@ -0,0 +1,22 @@ +import { CoreModule } from '@abp/ng.core'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { NgModule } from '@angular/core'; +import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgxsModule } from '@ngxs/store'; +import { TableModule } from 'primeng/table'; +import { TenantsComponent } from './components/tenants/tenants.component'; +import { TenantManagementState } from './states/tenant-management.state'; +import { TenantManagementRoutingModule } from './tenant-management-routing.module'; + +@NgModule({ + declarations: [TenantsComponent], + imports: [ + TenantManagementRoutingModule, + NgxsModule.forFeature([TenantManagementState]), + CoreModule, + TableModule, + ThemeSharedModule, + NgbDropdownModule, + ], +}) +export class TenantManagementModule {} diff --git a/npm/packs/ng/packages/tenant-management/src/public-api.ts b/npm/packs/ng/packages/tenant-management/src/public-api.ts new file mode 100644 index 0000000000..9bae9a9edb --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/public-api.ts @@ -0,0 +1,8 @@ +export * from './lib/tenant-management.module'; +export * from './lib/actions'; +export * from './lib/components'; +export * from './lib/constants'; +export * from './lib/models'; +export * from './lib/resolvers'; +export * from './lib/services'; +export * from './lib/states'; diff --git a/npm/packs/ng/packages/tenant-management/src/test.ts b/npm/packs/ng/packages/tenant-management/src/test.ts new file mode 100644 index 0000000000..978c64fb83 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/src/test.ts @@ -0,0 +1,21 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone'; +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/npm/packs/ng/packages/tenant-management/tsconfig.lib.json b/npm/packs/ng/packages/tenant-management/tsconfig.lib.json new file mode 100644 index 0000000000..11fb84af38 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/tsconfig.lib.json @@ -0,0 +1,27 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "target": "es2015", + "declaration": true, + "inlineSources": true, + "types": [], + "lib": [ + "dom", + "es2018" + ], + "paths": {} + }, + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true, + "enableResourceInlining": true + }, + "exclude": [ + "src/test.ts", + "**/*.spec.ts" + ] +} diff --git a/npm/packs/ng/packages/tenant-management/tsconfig.spec.json b/npm/packs/ng/packages/tenant-management/tsconfig.spec.json new file mode 100644 index 0000000000..16da33db07 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "src/test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/npm/packs/ng/packages/tenant-management/tslint.json b/npm/packs/ng/packages/tenant-management/tslint.json new file mode 100644 index 0000000000..8c3919ea62 --- /dev/null +++ b/npm/packs/ng/packages/tenant-management/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "abp", + "camelCase" + ], + "component-selector": [ + true, + "element", + "abp", + "kebab-case" + ] + } +} diff --git a/npm/packs/ng/packages/theme-basic/README.md b/npm/packs/ng/packages/theme-basic/README.md new file mode 100644 index 0000000000..fc9a74c13d --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/README.md @@ -0,0 +1 @@ +

    @abp/ng.theme.basic

    diff --git a/npm/packs/ng/packages/theme-basic/karma.conf.js b/npm/packs/ng/packages/theme-basic/karma.conf.js new file mode 100644 index 0000000000..e04be0a193 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../../coverage/theme-basic'), + reports: ['html', 'lcovonly'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/npm/packs/ng/packages/theme-basic/ng-package.json b/npm/packs/ng/packages/theme-basic/ng-package.json new file mode 100644 index 0000000000..600c112dee --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/ng-package.json @@ -0,0 +1,8 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/theme-basic", + "lib": { + "entryFile": "src/public-api.ts" + }, + "whitelistedNonPeerDependencies": ["@abp/ng.theme.shared"] +} diff --git a/npm/packs/ng/packages/theme-basic/package.json b/npm/packs/ng/packages/theme-basic/package.json new file mode 100644 index 0000000000..97e950d0c8 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/package.json @@ -0,0 +1,7 @@ +{ + "name": "@abp/ng.theme.basic", + "version": "0.5.0", + "dependencies": { + "@abp/ng.theme.shared": "^0.5.0" + } +} diff --git a/npm/packs/ng/packages/theme-basic/src/lib/actions/index.ts b/npm/packs/ng/packages/theme-basic/src/lib/actions/index.ts new file mode 100644 index 0000000000..2e29080de8 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/actions/index.ts @@ -0,0 +1 @@ +export * from './layout.actions'; diff --git a/npm/packs/ng/packages/theme-basic/src/lib/actions/layout.actions.ts b/npm/packs/ng/packages/theme-basic/src/lib/actions/layout.actions.ts new file mode 100644 index 0000000000..899953b86d --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/actions/layout.actions.ts @@ -0,0 +1,6 @@ +import { Layout } from '../models/layout'; + +export class LayoutAddNavigationElement { + static readonly type = '[Layout] Add Navigation Element'; + constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {} +} diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/change-password/change-password.component.html b/npm/packs/ng/packages/theme-basic/src/lib/components/change-password/change-password.component.html new file mode 100644 index 0000000000..ba138e281b --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/change-password/change-password.component.html @@ -0,0 +1,37 @@ + + +
    + + + +
    +
    diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/change-password/change-password.component.ts b/npm/packs/ng/packages/theme-basic/src/lib/components/change-password/change-password.component.ts new file mode 100644 index 0000000000..8c127dae18 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/change-password/change-password.component.ts @@ -0,0 +1,98 @@ +import { ProfileChangePassword } from '@abp/ng.core'; +import { + Component, + EventEmitter, + Input, + OnChanges, + OnInit, + Output, + SimpleChanges, + TemplateRef, + ViewChild, +} from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { NgbActiveModal, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; +import { comparePasswords, validatePassword } from '@ngx-validate/core'; +import { Store } from '@ngxs/store'; +import { from } from 'rxjs'; +import { take } from 'rxjs/operators'; + +const { minLength, required } = Validators; + +@Component({ + selector: 'abp-change-password', + templateUrl: './change-password.component.html', +}) +export class ChangePasswordComponent implements OnInit, OnChanges { + @Input() + visible: boolean; + + @Output() + visibleChange = new EventEmitter(); + + @ViewChild('modalContent', { static: false }) + modalContent: TemplateRef; + + form: FormGroup; + + modalRef: NgbModalRef; + + constructor(private fb: FormBuilder, private modalService: NgbModal, private store: Store) {} + + ngOnInit(): void { + this.form = this.fb.group( + { + password: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + newPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + repeatNewPassword: ['', [required, minLength(6), validatePassword(['small', 'capital', 'number', 'special'])]], + }, + { + validators: [comparePasswords(['newPassword', 'repeatNewPassword'])], + }, + ); + } + + onSubmit() { + if (this.form.invalid) return; + + this.store + .dispatch( + new ProfileChangePassword({ + currentPassword: this.form.get('password').value, + newPassword: this.form.get('newPassword').value, + }), + ) + .subscribe(() => this.modalRef.close()); + } + + openModal() { + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + + from(this.modalRef.result) + .pipe(take(1)) + .subscribe( + data => { + this.setVisible(false); + }, + reason => { + this.setVisible(false); + }, + ); + } + + setVisible(value: boolean) { + this.visible = value; + this.visibleChange.emit(value); + } + + ngOnChanges({ visible }: SimpleChanges): void { + if (!visible) return; + + if (visible.currentValue) { + this.openModal(); + } else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + } +} diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/index.ts b/npm/packs/ng/packages/theme-basic/src/lib/components/index.ts new file mode 100644 index 0000000000..39d04d163d --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/index.ts @@ -0,0 +1,3 @@ +export * from './layout-account/layout-account.component'; +export * from './layout-application/layout-application.component'; +export * from './layout-empty/layout-empty.component'; diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/layout-account/layout-account.component.html b/npm/packs/ng/packages/theme-basic/src/lib/components/layout-account/layout-account.component.html new file mode 100644 index 0000000000..2c3f3c1fd2 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/layout-account/layout-account.component.html @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/layout-account/layout-account.component.ts b/npm/packs/ng/packages/theme-basic/src/lib/components/layout-account/layout-account.component.ts new file mode 100644 index 0000000000..32f358b869 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/layout-account/layout-account.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; +import { eLayoutType } from '@abp/ng.core'; + +@Component({ + selector: 'abp-layout-account', + templateUrl: './layout-account.component.html', +}) +export class LayoutAccountComponent { + // required for dynamic component + static type = eLayoutType.account; + + isCollapsed: boolean = false; +} diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html b/npm/packs/ng/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html new file mode 100644 index 0000000000..7016872e7c --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/layout-application/layout-application.component.ts b/npm/packs/ng/packages/theme-basic/src/lib/components/layout-application/layout-application.component.ts new file mode 100644 index 0000000000..25f1c5f682 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/layout-application/layout-application.component.ts @@ -0,0 +1,135 @@ +import { + ABP, + ApplicationConfiguration, + ConfigGetAppConfiguration, + ConfigState, + eLayoutType, + SessionSetLanguage, + SessionState, + takeUntilDestroy, +} from '@abp/ng.core'; +import { Component, TrackByFunction, ViewChild, TemplateRef, AfterViewInit, OnDestroy } from '@angular/core'; +import { Navigate, RouterState } from '@ngxs/router-plugin'; +import { Select, Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { Observable } from 'rxjs'; +import { map, distinctUntilChanged, delay, filter } from 'rxjs/operators'; +import snq from 'snq'; +import { LayoutAddNavigationElement } from '../../actions'; +import { LayoutState } from '../../states'; +import { Layout } from '../../models/layout'; +import compare from 'just-compare'; + +@Component({ + selector: 'abp-layout-application', + templateUrl: './layout-application.component.html', +}) +export class LayoutApplicationComponent implements AfterViewInit, OnDestroy { + // required for dynamic component + static type = eLayoutType.application; + + @Select(ConfigState.getOne('routes')) + routes$: Observable; + + @Select(ConfigState.getOne('currentUser')) + currentUser$: Observable; + + @Select(ConfigState.getDeep('localization.languages')) + languages$: Observable; + + @Select(LayoutState.getNavigationElements) + navElements$: Observable; + + @ViewChild('currentUser', { static: false, read: TemplateRef }) + currentUserRef: TemplateRef; + + @ViewChild('language', { static: false, read: TemplateRef }) + languageRef: TemplateRef; + + isOpenChangePassword: boolean = false; + + isOpenProfile: boolean = false; + + get visibleRoutes$(): Observable { + return this.routes$.pipe(map(routes => getVisibleRoutes(routes))); + } + + get defaultLanguage$(): Observable { + return this.languages$.pipe( + map( + languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName), + '', + ), + ); + } + + get dropdownLanguages$(): Observable { + return this.languages$.pipe( + map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []), + ); + } + + get selectedLangCulture(): string { + return this.store.selectSnapshot(SessionState.getLanguage); + } + + rightPartElements: TemplateRef[] = []; + + trackByFn: TrackByFunction = (_, item) => item.name; + + trackElementByFn: TrackByFunction = (_, element) => element; + + constructor(private store: Store, private oauthService: OAuthService) {} + + ngAfterViewInit() { + const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name); + + if (navigations.indexOf('LanguageRef') < 0) { + this.store.dispatch( + new LayoutAddNavigationElement([ + { element: this.languageRef, order: 4, name: 'LanguageRef' }, + { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' }, + ]), + ); + } + + this.navElements$ + .pipe( + map(elements => elements.map(({ element }) => element)), + filter(elements => !compare(elements, this.rightPartElements)), + takeUntilDestroy(this), + ) + .subscribe(elements => { + setTimeout(() => (this.rightPartElements = elements), 0); + }); + } + + ngOnDestroy() {} + + onChangeLang(cultureName: string) { + this.store.dispatch(new SessionSetLanguage(cultureName)); + this.store.dispatch(new ConfigGetAppConfiguration()); + } + + logout() { + this.oauthService.logOut(); + this.store.dispatch( + new Navigate(['/account/login'], null, { + state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url }, + }), + ); + this.store.dispatch(new ConfigGetAppConfiguration()); + } +} + +function getVisibleRoutes(routes: ABP.FullRoute[]) { + return routes.reduce((acc, val) => { + if (val.invisible) return acc; + + if (val.children && val.children.length) { + val.children = getVisibleRoutes(val.children); + } + + return [...acc, val]; + }, []); +} diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/layout-empty/layout-empty.component.ts b/npm/packs/ng/packages/theme-basic/src/lib/components/layout-empty/layout-empty.component.ts new file mode 100644 index 0000000000..3c2186dd4a --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/layout-empty/layout-empty.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; +import { eLayoutType } from '@abp/ng.core'; + +@Component({ + selector: 'abp-layout-empty', + template: ` + Layout-empty + + `, +}) +export class LayoutEmptyComponent { + // required for dynamic component + static type = eLayoutType.empty; +} diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/layout/layout.component.html b/npm/packs/ng/packages/theme-basic/src/lib/components/layout/layout.component.html new file mode 100644 index 0000000000..969f41fa1c --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/layout/layout.component.html @@ -0,0 +1,16 @@ + + +
    + +
    + + + diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/layout/layout.component.ts b/npm/packs/ng/packages/theme-basic/src/lib/components/layout/layout.component.ts new file mode 100644 index 0000000000..cc2113d31a --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/layout/layout.component.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: ' abp-layout', + templateUrl: './layout.component.html', +}) +export class LayoutComponent { + isCollapsed: boolean = false; +} diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/profile/profile.component.html b/npm/packs/ng/packages/theme-basic/src/lib/components/profile/profile.component.html new file mode 100644 index 0000000000..be65b43280 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/profile/profile.component.html @@ -0,0 +1,47 @@ + + +
    + + + +
    +
    diff --git a/npm/packs/ng/packages/theme-basic/src/lib/components/profile/profile.component.ts b/npm/packs/ng/packages/theme-basic/src/lib/components/profile/profile.component.ts new file mode 100644 index 0000000000..0111eb5221 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/components/profile/profile.component.ts @@ -0,0 +1,100 @@ +import { + Component, + EventEmitter, + Input, + OnChanges, + OnInit, + Output, + SimpleChanges, + TemplateRef, + ViewChild, +} from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; +import { Store, Select } from '@ngxs/store'; +import { from, Observable } from 'rxjs'; +import { take, withLatestFrom } from 'rxjs/operators'; +import { ProfileGet, ProfileState, Profile, ProfileUpdate } from '@abp/ng.core'; + +const { maxLength, required, email } = Validators; + +@Component({ + selector: 'abp-profile', + templateUrl: './profile.component.html', +}) +export class ProfileComponent implements OnChanges { + @Input() + visible: boolean; + + @Output() + visibleChange = new EventEmitter(); + + @ViewChild('modalContent', { static: false }) + modalContent: TemplateRef; + + @Select(ProfileState.getProfile) + profile$: Observable; + + form: FormGroup; + + modalRef: NgbModalRef; + + constructor(private fb: FormBuilder, private modalService: NgbModal, private store: Store) {} + + buildForm() { + this.store + .dispatch(new ProfileGet()) + .pipe( + withLatestFrom(this.profile$), + take(1), + ) + .subscribe(([, profile]) => { + this.form = this.fb.group({ + userName: [profile.userName, [required, maxLength(256)]], + email: [profile.email, [required, email, maxLength(256)]], + name: [profile.name || '', [maxLength(64)]], + surname: [profile.surname || '', [maxLength(64)]], + phoneNumber: [profile.phoneNumber || '', [maxLength(16)]], + }); + }); + } + + onSubmit() { + if (this.form.invalid) return; + + this.store.dispatch(new ProfileUpdate(this.form.value)).subscribe(() => this.modalRef.close()); + } + + openModal() { + this.buildForm(); + + this.modalRef = this.modalService.open(this.modalContent); + this.visibleChange.emit(true); + + from(this.modalRef.result) + .pipe(take(1)) + .subscribe( + data => { + this.setVisible(false); + }, + reason => { + this.setVisible(false); + }, + ); + } + + setVisible(value: boolean) { + this.visible = value; + this.visibleChange.emit(value); + } + + ngOnChanges({ visible }: SimpleChanges): void { + if (!visible) return; + + if (visible.currentValue) { + this.openModal(); + } else if (visible.currentValue === false && this.modalService.hasOpenModals()) { + this.modalRef.close(); + } + } +} diff --git a/npm/packs/ng/packages/theme-basic/src/lib/models/index.ts b/npm/packs/ng/packages/theme-basic/src/lib/models/index.ts new file mode 100644 index 0000000000..5d15fe1b3c --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/models/index.ts @@ -0,0 +1 @@ +export * from './layout'; diff --git a/npm/packs/ng/packages/theme-basic/src/lib/models/layout.ts b/npm/packs/ng/packages/theme-basic/src/lib/models/layout.ts new file mode 100644 index 0000000000..e2636e4f53 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/models/layout.ts @@ -0,0 +1,13 @@ +import { TemplateRef } from '@angular/core'; + +export namespace Layout { + export interface State { + navigationElements: NavigationElement[]; + } + + export interface NavigationElement { + name: string; + element: TemplateRef; + order?: number; + } +} diff --git a/npm/packs/ng/packages/theme-basic/src/lib/states/index.ts b/npm/packs/ng/packages/theme-basic/src/lib/states/index.ts new file mode 100644 index 0000000000..71bff26b8b --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/states/index.ts @@ -0,0 +1 @@ +export * from "./layout.state"; diff --git a/npm/packs/ng/packages/theme-basic/src/lib/states/layout.state.ts b/npm/packs/ng/packages/theme-basic/src/lib/states/layout.state.ts new file mode 100644 index 0000000000..42ba5f46be --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/states/layout.state.ts @@ -0,0 +1,45 @@ +import { State, Action, StateContext, Selector } from '@ngxs/store'; +import { LayoutAddNavigationElement } from '../actions/layout.actions'; +import { Layout } from '../models/layout'; +import { TemplateRef } from '@angular/core'; +import snq from 'snq'; + +@State({ + name: 'LayoutState', + defaults: { navigationElements: [] } as Layout.State, +}) +export class LayoutState { + @Selector() + static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] { + return navigationElements; + } + + @Action(LayoutAddNavigationElement) + layoutAction({ getState, patchState }: StateContext, { payload = [] }: LayoutAddNavigationElement) { + let { navigationElements } = getState(); + + if (!Array.isArray(payload)) { + payload = [payload]; + } + + if (navigationElements.length) { + payload = snq( + () => + (payload as Layout.NavigationElement[]).filter( + ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0, + ), + [], + ); + } + + if (!payload.length) return; + + navigationElements = [...navigationElements, ...payload] + .map(element => ({ ...element, order: element.order || 99 })) + .sort((a, b) => a.order - b.order); + + return patchState({ + navigationElements, + }); + } +} diff --git a/npm/packs/ng/packages/theme-basic/src/lib/theme-basic.module.ts b/npm/packs/ng/packages/theme-basic/src/lib/theme-basic.module.ts new file mode 100644 index 0000000000..4175cdbd13 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/lib/theme-basic.module.ts @@ -0,0 +1,32 @@ +import { CoreModule } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { ChangePasswordComponent } from './components/change-password/change-password.component'; +import { LayoutAccountComponent } from './components/layout-account/layout-account.component'; +import { LayoutApplicationComponent } from './components/layout-application/layout-application.component'; +import { LayoutEmptyComponent } from './components/layout-empty/layout-empty.component'; +import { LayoutComponent } from './components/layout/layout.component'; +import { ProfileComponent } from './components/profile/profile.component'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { ToastModule } from 'primeng/toast'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; +import { NgxsModule } from '@ngxs/store'; +import { LayoutState } from './states/layout.state'; + +export const LAYOUTS = [LayoutApplicationComponent, LayoutAccountComponent, LayoutEmptyComponent]; + +@NgModule({ + declarations: [...LAYOUTS, LayoutComponent, ChangePasswordComponent, ProfileComponent], + imports: [ + CoreModule, + ThemeSharedModule, + NgbCollapseModule, + NgbDropdownModule, + ToastModule, + NgxValidateCoreModule, + NgxsModule.forFeature([LayoutState]), + ], + exports: [...LAYOUTS], + entryComponents: [...LAYOUTS], +}) +export class ThemeBasicModule {} diff --git a/npm/packs/ng/packages/theme-basic/src/public-api.ts b/npm/packs/ng/packages/theme-basic/src/public-api.ts new file mode 100644 index 0000000000..b1316143c0 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/public-api.ts @@ -0,0 +1,9 @@ +/* + * Public API Surface of theme-basic + */ + +export * from './lib/theme-basic.module'; +export * from './lib/actions'; +export * from './lib/components'; +export * from './lib/models'; +export * from './lib/states'; diff --git a/npm/packs/ng/packages/theme-basic/src/test.ts b/npm/packs/ng/packages/theme-basic/src/test.ts new file mode 100644 index 0000000000..978c64fb83 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/src/test.ts @@ -0,0 +1,21 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone'; +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/npm/packs/ng/packages/theme-basic/tsconfig.lib.json b/npm/packs/ng/packages/theme-basic/tsconfig.lib.json new file mode 100644 index 0000000000..2972099ba1 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/tsconfig.lib.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "target": "es2015", + "declaration": true, + "inlineSources": true, + "types": [], + "lib": ["dom", "es2018"] + }, + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true, + "enableResourceInlining": true + }, + "exclude": ["src/test.ts", "**/*.spec.ts"] +} diff --git a/npm/packs/ng/packages/theme-basic/tsconfig.spec.json b/npm/packs/ng/packages/theme-basic/tsconfig.spec.json new file mode 100644 index 0000000000..16da33db07 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "src/test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/npm/packs/ng/packages/theme-basic/tslint.json b/npm/packs/ng/packages/theme-basic/tslint.json new file mode 100644 index 0000000000..8c3919ea62 --- /dev/null +++ b/npm/packs/ng/packages/theme-basic/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "abp", + "camelCase" + ], + "component-selector": [ + true, + "element", + "abp", + "kebab-case" + ] + } +} diff --git a/npm/packs/ng/packages/theme-shared/README.md b/npm/packs/ng/packages/theme-shared/README.md new file mode 100644 index 0000000000..0e215e6579 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/README.md @@ -0,0 +1 @@ +

    @abp/ng.theme.shared

    diff --git a/npm/packs/ng/packages/theme-shared/karma.conf.js b/npm/packs/ng/packages/theme-shared/karma.conf.js new file mode 100644 index 0000000000..5703b124a6 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function(config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma'), + ], + client: { + clearContext: false, // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../../coverage/theme-shared'), + reports: ['html', 'lcovonly'], + fixWebpackSourcePaths: true, + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true, + }); +}; diff --git a/npm/packs/ng/packages/theme-shared/ng-package.json b/npm/packs/ng/packages/theme-shared/ng-package.json new file mode 100644 index 0000000000..bcd238cd36 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/ng-package.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/theme-shared", + "lib": { + "entryFile": "src/public-api.ts" + }, + "whitelistedNonPeerDependencies": [ + "@abp/ng.core", + "@angular/cdk", + "@ng-bootstrap/ng-bootstrap", + "@ngx-validate/core", + "bootstrap", + "font-awesome", + "ngx-perfect-scrollbar", + "primeicons", + "primeng" + ] +} diff --git a/npm/packs/ng/packages/theme-shared/package.json b/npm/packs/ng/packages/theme-shared/package.json new file mode 100644 index 0000000000..16d451f9f5 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/package.json @@ -0,0 +1,15 @@ +{ + "name": "@abp/ng.theme.shared", + "version": "0.5.0", + "dependencies": { + "@abp/ng.core": "^0.5.0", + "@angular/cdk": "^8.0.1", + "@ng-bootstrap/ng-bootstrap": "^5.0.0-rc.1", + "@ngx-validate/core": "^0.0.1", + "bootstrap": "^4.3.1", + "font-awesome": "^4.7.0", + "ngx-perfect-scrollbar": "^8.0.0", + "primeicons": "^1.0.0", + "primeng": "^8.0.0" + } +} diff --git a/npm/packs/ng/packages/theme-shared/src/lib/abstracts/toaster.ts b/npm/packs/ng/packages/theme-shared/src/lib/abstracts/toaster.ts new file mode 100644 index 0000000000..0e7d017edd --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/abstracts/toaster.ts @@ -0,0 +1,49 @@ +import { MessageService } from 'primeng/components/common/messageservice'; +import { Observable, Subject } from 'rxjs'; +import { Toaster } from '../models/toaster'; + +export class AbstractToasterClass { + protected status$: Subject; + + protected key: string = 'abpToast'; + + protected sticky: boolean = false; + + constructor(protected messageService: MessageService) {} + info(message: string, title: string, options?: T): Observable { + return this.show(message, title, 'info', options); + } + + success(message: string, title: string, options?: T): Observable { + return this.show(message, title, 'success', options); + } + + warn(message: string, title: string, options?: T): Observable { + return this.show(message, title, 'warn', options); + } + + error(message: string, title: string, options?: T): Observable { + return this.show(message, title, 'error', options); + } + + protected show(message: string, title: string, severity: Toaster.Severity, options?: T): Observable { + this.messageService.clear(this.key); + + this.messageService.add({ + severity, + detail: message, + summary: title, + ...options, + key: this.key, + ...(typeof (options || ({} as any)).sticky === 'undefined' && { sticky: this.sticky }), + }); + this.status$ = new Subject(); + return this.status$; + } + + clear(status?: Toaster.Status) { + this.messageService.clear(this.key); + this.status$.next(status || Toaster.Status.dismiss); + this.status$.complete(); + } +} diff --git a/npm/packs/ng/packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts b/npm/packs/ng/packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts new file mode 100644 index 0000000000..6c3b9254c4 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts @@ -0,0 +1,48 @@ +import { Component } from '@angular/core'; +import { ConfirmationService } from '../../services/confirmation.service'; +import { Toaster } from '../../models/toaster'; + +@Component({ + selector: 'abp-confirmation', + template: ` + + + + + + + + + `, +}) +export class ConfirmationComponent { + confirm = Toaster.Status.confirm; + reject = Toaster.Status.reject; + dismiss = Toaster.Status.dismiss; + + constructor(private confirmationService: ConfirmationService) {} + + close(status: Toaster.Status) { + this.confirmationService.clear(status); + } +} diff --git a/npm/packs/ng/packages/theme-shared/src/lib/components/index.ts b/npm/packs/ng/packages/theme-shared/src/lib/components/index.ts new file mode 100644 index 0000000000..d288f2dafa --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/components/index.ts @@ -0,0 +1,3 @@ +export * from './confirmation/confirmation.component'; +export * from './toast/toast.component'; +export * from './modal/modal.component'; diff --git a/npm/packs/ng/packages/theme-shared/src/lib/components/modal/README.md b/npm/packs/ng/packages/theme-shared/src/lib/components/modal/README.md new file mode 100644 index 0000000000..bb4f9a7aa2 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/components/modal/README.md @@ -0,0 +1,25 @@ +

     Abp Modal

    + +Example Usage: + +```html + + +

    Modal Title

    +
    + + +
    + + +
    +
    + + + + + +
    + + +``` diff --git a/npm/packs/ng/packages/theme-shared/src/lib/components/modal/modal.component.html b/npm/packs/ng/packages/theme-shared/src/lib/components/modal/modal.component.html new file mode 100644 index 0000000000..607350879f --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/components/modal/modal.component.html @@ -0,0 +1,34 @@ + diff --git a/npm/packs/ng/packages/theme-shared/src/lib/components/modal/modal.component.ts b/npm/packs/ng/packages/theme-shared/src/lib/components/modal/modal.component.ts new file mode 100644 index 0000000000..9b832c4c71 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/components/modal/modal.component.ts @@ -0,0 +1,163 @@ +import { + Component, + ContentChild, + ElementRef, + EventEmitter, + Input, + OnDestroy, + Output, + Renderer2, + TemplateRef, + ViewChild, +} from '@angular/core'; +import { fromEvent, Subject, timer } from 'rxjs'; +import { debounceTime, filter, take, takeUntil } from 'rxjs/operators'; +import { ConfirmationService } from '../../services/confirmation.service'; +import { Toaster } from '../../models/toaster'; + +export type ModalSize = 'sm' | 'md' | 'lg' | 'xl'; + +@Component({ + selector: 'abp-modal', + templateUrl: './modal.component.html', +}) +export class ModalComponent implements OnDestroy { + @Input() + get visible(): boolean { + return this._visible; + } + set visible(value: boolean) { + if (!this.modalContent) { + setTimeout(() => (this.visible = value), 0); + return; + } + + if (value) { + this.setVisible(value); + this.listen(); + } else { + this.closable = false; + this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top'); + setTimeout(() => { + this.setVisible(value); + this.renderer.removeClass(this.modalContent.nativeElement, 'fade-out-top'); + this.ngOnDestroy(); + }, 350); + } + } + + @Input() centered: boolean = true; + + @Input() modalClass: string = ''; + + @Input() size: ModalSize = 'lg'; + + @Output() visibleChange = new EventEmitter(); + + @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef; + + @ContentChild('abpBody', { static: false }) abpBody: TemplateRef; + + @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef; + + @ContentChild('abpClose', { static: false, read: ElementRef }) abpClose: ElementRef; + + @ViewChild('abpModalContent', { static: false }) modalContent: ElementRef; + + _visible: boolean = false; + + closable: boolean = false; + + isOpenConfirmation: boolean = false; + + destroy$ = new Subject(); + + constructor(private renderer: Renderer2, private confirmationService: ConfirmationService) {} + + ngOnDestroy(): void { + this.destroy$.next(); + } + + setVisible(value: boolean) { + this._visible = value; + this.visibleChange.emit(value); + value + ? timer(500) + .pipe(take(1)) + .subscribe(_ => (this.closable = true)) + : (this.closable = false); + } + + listen() { + fromEvent(document, 'click') + .pipe( + debounceTime(350), + takeUntil(this.destroy$), + filter( + (event: MouseEvent) => + event && + this.closable && + this.modalContent && + !this.isOpenConfirmation && + !this.modalContent.nativeElement.contains(event.target), + ), + ) + .subscribe(_ => { + this.close(); + }); + + fromEvent(document, 'keyup') + .pipe( + takeUntil(this.destroy$), + filter((key: KeyboardEvent) => key && key.code === 'Escape' && this.closable), + debounceTime(350), + ) + .subscribe(_ => { + this.close(); + }); + + fromEvent(this.abpClose.nativeElement, 'click') + .pipe( + takeUntil(this.destroy$), + filter(() => !!(this.closable && this.modalContent)), + debounceTime(350), + ) + .subscribe(() => this.close()); + } + + close() { + const nodes = getFlatNodes( + (this.modalContent.nativeElement.querySelector('#abp-modal-body') as HTMLElement).childNodes, + ); + + if (hasNgDirty(nodes)) { + if (this.isOpenConfirmation) return; + + this.isOpenConfirmation = true; + this.confirmationService + .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure') + .subscribe((status: Toaster.Status) => { + timer(400).subscribe(() => { + this.isOpenConfirmation = false; + }); + + if (status === Toaster.Status.confirm) { + this.visible = false; + } + }); + } else { + this.visible = false; + } + } +} + +function getFlatNodes(nodes: NodeList): HTMLElement[] { + return Array.from(nodes).reduce( + (acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? Array.from(val.childNodes) : [val])], + [], + ); +} + +function hasNgDirty(nodes: HTMLElement[]) { + return nodes.findIndex(node => (node.className || '').indexOf('ng-dirty') > -1) > -1; +} diff --git a/npm/packs/ng/packages/theme-shared/src/lib/components/toast/toast.component.ts b/npm/packs/ng/packages/theme-shared/src/lib/components/toast/toast.component.ts new file mode 100644 index 0000000000..12005e4935 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/components/toast/toast.component.ts @@ -0,0 +1,25 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'abp-toast', + template: ` + + + +
    +
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    +
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    +
    +
    +
    + `, +}) +export class ToastComponent {} diff --git a/npm/packs/ng/packages/theme-shared/src/lib/contants/scripts.ts b/npm/packs/ng/packages/theme-shared/src/lib/contants/scripts.ts new file mode 100644 index 0000000000..1bc3ad0fa9 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/contants/scripts.ts @@ -0,0 +1 @@ +export default ``; diff --git a/npm/packs/ng/packages/theme-shared/src/lib/contants/styles.ts b/npm/packs/ng/packages/theme-shared/src/lib/contants/styles.ts new file mode 100644 index 0000000000..a798bccd76 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/contants/styles.ts @@ -0,0 +1,60 @@ +export default ` +.is-invalid .form-control { + border-color: #dc3545; + border-style: solid !important; +} + +.is-invalid .invalid-feedback, +.is-invalid + * .invalid-feedback { + display: block; +} + +.data-tables-filter { + text-align: right; +} + +.pointer { + cursor: pointer; +} + +.navbar .dropdown-submenu a::after { + transform: rotate(-90deg); + position: absolute; + right: 16px; + top: 18px; +} + + +/* { + const { payload: err = {} as HttpErrorResponse | any } = res; + const body = (err as HttpErrorResponse).error.error; + + if (err.headers.get('_AbpErrorFormat')) { + const confirmation$ = this.showError(null, null, body); + + if (err.status === 401) { + confirmation$.subscribe(() => { + this.navigateToLogin(); + }); + } + } else { + switch ((err as HttpErrorResponse).status) { + case 401: + this.showError(DEFAULTS.defaultError401.details, DEFAULTS.defaultError401.message).subscribe(() => + this.navigateToLogin(), + ); + break; + case 403: + this.showError(DEFAULTS.defaultError403.details, DEFAULTS.defaultError403.message); + break; + case 404: + this.showError(DEFAULTS.defaultError404.details, DEFAULTS.defaultError404.message); + break; + default: + this.showError(DEFAULTS.defaultError.details, DEFAULTS.defaultError.message); + break; + } + } + }); + } + + private showError(message?: string, title?: string, body?: any): Observable { + if (body) { + if (body.details) { + message = body.details; + title = body.message; + } else { + message = body.message || DEFAULTS.defaultError.message; + } + } + + return this.confirmationService.error(message, title, { + hideCancelBtn: true, + yesCopy: 'OK', + }); + } + + private navigateToLogin() { + this.store.dispatch( + new Navigate(['/account/login'], null, { + state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url }, + }), + ); + } +} diff --git a/npm/packs/ng/packages/theme-shared/src/lib/handlers/index.ts b/npm/packs/ng/packages/theme-shared/src/lib/handlers/index.ts new file mode 100644 index 0000000000..7b46abdd69 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/handlers/index.ts @@ -0,0 +1 @@ +export * from './error.handler'; diff --git a/npm/packs/ng/packages/theme-shared/src/lib/models/confirmation.ts b/npm/packs/ng/packages/theme-shared/src/lib/models/confirmation.ts new file mode 100644 index 0000000000..86aaf64eb9 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/models/confirmation.ts @@ -0,0 +1,10 @@ +import { Toaster } from './toaster'; + +export namespace Confirmation { + export interface Options extends Toaster.Options { + hideCancelBtn?: boolean; + hideYesBtn?: boolean; + cancelCopy?: string; + yesCopy?: string; + } +} diff --git a/npm/packs/ng/packages/theme-shared/src/lib/models/index.ts b/npm/packs/ng/packages/theme-shared/src/lib/models/index.ts new file mode 100644 index 0000000000..2da3330aa7 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/models/index.ts @@ -0,0 +1,2 @@ +export * from './confirmation'; +export * from './toaster'; diff --git a/npm/packs/ng/packages/theme-shared/src/lib/models/toaster.ts b/npm/packs/ng/packages/theme-shared/src/lib/models/toaster.ts new file mode 100644 index 0000000000..f029911dae --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/models/toaster.ts @@ -0,0 +1,19 @@ +export namespace Toaster { + export interface Options { + id?: any; + closable?: boolean; + life?: number; + sticky?: boolean; + data?: any; + messageLocalizationParams?: string[]; + titleLocalizationParams?: string[]; + } + + export type Severity = 'success' | 'info' | 'warn' | 'error'; + + export const enum Status { + confirm = 'confirm', + reject = 'reject', + dismiss = 'dismiss', + } +} diff --git a/npm/packs/ng/packages/theme-shared/src/lib/services/confirmation.service.ts b/npm/packs/ng/packages/theme-shared/src/lib/services/confirmation.service.ts new file mode 100644 index 0000000000..dd70e696e2 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/services/confirmation.service.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { AbstractToasterClass } from '../abstracts/toaster'; +import { Confirmation } from '../models/confirmation'; + +@Injectable({ providedIn: 'root' }) +export class ConfirmationService extends AbstractToasterClass { + protected key: string = 'abpConfirmation'; + + protected sticky: boolean = true; +} diff --git a/npm/packs/ng/packages/theme-shared/src/lib/services/index.ts b/npm/packs/ng/packages/theme-shared/src/lib/services/index.ts new file mode 100644 index 0000000000..c53455a433 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/services/index.ts @@ -0,0 +1,2 @@ +export * from './confirmation.service'; +export * from './toaster.service'; diff --git a/npm/packs/ng/packages/theme-shared/src/lib/services/toaster.service.ts b/npm/packs/ng/packages/theme-shared/src/lib/services/toaster.service.ts new file mode 100644 index 0000000000..74845b9e9c --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/services/toaster.service.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { AbstractToasterClass } from '../abstracts/toaster'; +import { Message } from 'primeng/components/common/message'; + +@Injectable({ providedIn: 'root' }) +export class ToasterService extends AbstractToasterClass { + addAll(messages: Message[]): void { + this.messageService.addAll(messages.map(message => ({ key: this.key, ...message }))); + } +} diff --git a/npm/packs/ng/packages/theme-shared/src/lib/theme-shared.module.ts b/npm/packs/ng/packages/theme-shared/src/lib/theme-shared.module.ts new file mode 100644 index 0000000000..7f3fa40ef5 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/lib/theme-shared.module.ts @@ -0,0 +1,60 @@ +import { CoreModule, LazyLoadService } from '@abp/ng.core'; +import { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core'; +import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; +import { MessageService } from 'primeng/components/common/messageservice'; +import { ToastModule } from 'primeng/toast'; +import { forkJoin } from 'rxjs'; +import { take } from 'rxjs/operators'; +import { ConfirmationComponent } from './components/confirmation/confirmation.component'; +import { ModalComponent } from './components/modal/modal.component'; +import { ToastComponent } from './components/toast/toast.component'; +import styles from './contants/styles'; +import { ErrorHandler } from './handlers/error.handler'; + +export function appendScript(injector: Injector) { + const fn = function() { + const lazyLoadService: LazyLoadService = injector.get(LazyLoadService); + + return forkJoin( + lazyLoadService.load( + null, + 'style', + styles, + 'head', + 'afterbegin', + ) /* lazyLoadService.load(null, 'script', scripts) */, + ).pipe(take(1)); + }; + + return fn; +} + +@NgModule({ + imports: [ + CoreModule, + ToastModule, + NgbModalModule, + NgxValidateCoreModule.forRoot({ + targetSelector: '.form-group', + }), + ], + declarations: [ConfirmationComponent, ToastComponent, ModalComponent], + exports: [NgbModalModule, ConfirmationComponent, ToastComponent, ModalComponent], +}) +export class ThemeSharedModule { + static forRoot(): ModuleWithProviders { + return { + ngModule: ThemeSharedModule, + providers: [ + { + provide: APP_INITIALIZER, + multi: true, + deps: [Injector, ErrorHandler], + useFactory: appendScript, + }, + { provide: MessageService, useClass: MessageService }, + ], + }; + } +} diff --git a/npm/packs/ng/packages/theme-shared/src/public-api.ts b/npm/packs/ng/packages/theme-shared/src/public-api.ts new file mode 100644 index 0000000000..b7f52bc3f0 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/public-api.ts @@ -0,0 +1,8 @@ +/* + * Public API Surface of theme-shared + */ + +export * from './lib/theme-shared.module'; +export * from './lib/components'; +export * from './lib/models'; +export * from './lib/services'; diff --git a/npm/packs/ng/packages/theme-shared/src/test.ts b/npm/packs/ng/packages/theme-shared/src/test.ts new file mode 100644 index 0000000000..978c64fb83 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/src/test.ts @@ -0,0 +1,21 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone'; +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/npm/packs/ng/packages/theme-shared/tsconfig.lib.json b/npm/packs/ng/packages/theme-shared/tsconfig.lib.json new file mode 100644 index 0000000000..2972099ba1 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/tsconfig.lib.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "target": "es2015", + "declaration": true, + "inlineSources": true, + "types": [], + "lib": ["dom", "es2018"] + }, + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true, + "enableResourceInlining": true + }, + "exclude": ["src/test.ts", "**/*.spec.ts"] +} diff --git a/npm/packs/ng/packages/theme-shared/tsconfig.spec.json b/npm/packs/ng/packages/theme-shared/tsconfig.spec.json new file mode 100644 index 0000000000..16da33db07 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "src/test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/npm/packs/ng/packages/theme-shared/tslint.json b/npm/packs/ng/packages/theme-shared/tslint.json new file mode 100644 index 0000000000..124133f849 --- /dev/null +++ b/npm/packs/ng/packages/theme-shared/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "lib", + "camelCase" + ], + "component-selector": [ + true, + "element", + "lib", + "kebab-case" + ] + } +} diff --git a/npm/packs/ng/tsconfig.json b/npm/packs/ng/tsconfig.json new file mode 100644 index 0000000000..643cec2bde --- /dev/null +++ b/npm/packs/ng/tsconfig.json @@ -0,0 +1,40 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "module": "esnext", + "moduleResolution": "node", + "importHelpers": true, + "target": "es2015", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2018", + "dom" + ], + "paths": { + "theme-basic": [ + "dist/theme-basic" + ], + "theme-basic/*": [ + "dist/theme-basic/*" + ], + "tenant-management": [ + "dist/tenant-management" + ], + "tenant-management/*": [ + "dist/tenant-management/*" + ] + } + }, + "angularCompilerOptions": { + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true + } +} \ No newline at end of file diff --git a/npm/packs/ng/tslint.json b/npm/packs/ng/tslint.json new file mode 100644 index 0000000000..9c729f991d --- /dev/null +++ b/npm/packs/ng/tslint.json @@ -0,0 +1,80 @@ +{ + "extends": "tslint:recommended", + "rulesDirectory": [ + "codelyzer" + ], + "rules": { + "array-type": false, + "arrow-parens": false, + "deprecation": { + "severity": "warning" + }, + "import-blacklist": [ + true, + "rxjs/Rx" + ], + "interface-name": false, + "max-classes-per-file": false, + "max-line-length": [ + true, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-consecutive-blank-lines": false, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-empty": false, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-non-null-assertion": true, + "no-redundant-jsdoc": true, + "no-switch-case-fall-through": true, + "no-use-before-declare": true, + "no-var-requires": false, + "object-literal-key-quotes": [ + true, + "as-needed" + ], + "object-literal-sort-keys": false, + "ordered-imports": false, + "quotemark": [ + true, + "single" + ], + "trailing-comma": false, + "component-class-suffix": true, + "contextual-lifecycle": true, + "directive-class-suffix": true, + "no-conflicting-lifecycle": true, + "no-host-metadata-property": true, + "no-input-rename": true, + "no-inputs-metadata-property": true, + "no-output-native": true, + "no-output-on-prefix": true, + "no-output-rename": true, + "no-outputs-metadata-property": true, + "template-banana-in-box": true, + "template-no-negated-async": true, + "use-lifecycle-interface": true, + "use-pipe-transform-interface": true + } +}