@abp/ng.theme.basic 4.4.0 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/abp-ng.theme.basic.d.ts +1 -15
- package/bundles/abp-ng.theme.basic-testing.umd.js +33 -7
- package/bundles/abp-ng.theme.basic-testing.umd.js.map +1 -1
- package/bundles/abp-ng.theme.basic.umd.js +305 -263
- package/bundles/abp-ng.theme.basic.umd.js.map +1 -1
- package/esm2015/abp-ng.theme.basic.js +1 -16
- package/esm2015/abp-ng.theme.basic.js.map +1 -0
- package/esm2015/lib/components/account-layout/account-layout.component.js +22 -11
- package/esm2015/lib/components/account-layout/account-layout.component.js.map +1 -0
- package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js +17 -13
- package/esm2015/lib/components/account-layout/auth-wrapper/auth-wrapper.component.js.map +1 -0
- package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js +18 -13
- package/esm2015/lib/components/account-layout/tenant-box/tenant-box.component.js.map +1 -0
- package/esm2015/lib/components/application-layout/application-layout.component.js +22 -12
- package/esm2015/lib/components/application-layout/application-layout.component.js.map +1 -0
- package/esm2015/lib/components/empty-layout/empty-layout.component.js +17 -8
- package/esm2015/lib/components/empty-layout/empty-layout.component.js.map +1 -0
- package/esm2015/lib/components/index.js +1 -1
- package/esm2015/lib/components/index.js.map +1 -0
- package/esm2015/lib/components/logo/logo.component.js +29 -11
- package/esm2015/lib/components/logo/logo.component.js.map +1 -0
- package/esm2015/lib/components/nav-items/current-user.component.js +17 -13
- package/esm2015/lib/components/nav-items/current-user.component.js.map +1 -0
- package/esm2015/lib/components/nav-items/languages.component.js +51 -16
- package/esm2015/lib/components/nav-items/languages.component.js.map +1 -0
- package/esm2015/lib/components/nav-items/nav-items.component.js +14 -10
- package/esm2015/lib/components/nav-items/nav-items.component.js.map +1 -0
- package/esm2015/lib/components/page-alert-container/page-alert-container.component.js +15 -11
- package/esm2015/lib/components/page-alert-container/page-alert-container.component.js.map +1 -0
- package/esm2015/lib/components/routes/routes.component.js +22 -16
- package/esm2015/lib/components/routes/routes.component.js.map +1 -0
- package/esm2015/lib/components/validation-error/validation-error.component.js +19 -9
- package/esm2015/lib/components/validation-error/validation-error.component.js.map +1 -0
- package/esm2015/lib/constants/styles.js +1 -1
- package/esm2015/lib/constants/styles.js.map +1 -0
- package/esm2015/lib/enums/components.js +1 -1
- package/esm2015/lib/enums/components.js.map +1 -0
- package/esm2015/lib/enums/index.js +1 -1
- package/esm2015/lib/enums/index.js.map +1 -0
- package/esm2015/lib/models/index.js +1 -1
- package/esm2015/lib/models/index.js.map +1 -0
- package/esm2015/lib/models/layout.js +1 -1
- package/esm2015/lib/models/layout.js.map +1 -0
- package/esm2015/lib/providers/index.js +1 -1
- package/esm2015/lib/providers/index.js.map +1 -0
- package/esm2015/lib/providers/nav-item.provider.js +1 -1
- package/esm2015/lib/providers/nav-item.provider.js.map +1 -0
- package/esm2015/lib/providers/styles.provider.js +2 -2
- package/esm2015/lib/providers/styles.provider.js.map +1 -0
- package/esm2015/lib/services/layout.service.js +8 -8
- package/esm2015/lib/services/layout.service.js.map +1 -0
- package/esm2015/lib/theme-basic.module.js +74 -41
- package/esm2015/lib/theme-basic.module.js.map +1 -0
- package/esm2015/public-api.js +1 -1
- package/esm2015/public-api.js.map +1 -0
- package/esm2015/testing/abp-ng.theme.basic-testing.js +1 -1
- package/esm2015/testing/abp-ng.theme.basic-testing.js.map +1 -0
- package/esm2015/testing/lib/theme-basic-testing.module.js +12 -7
- package/esm2015/testing/lib/theme-basic-testing.module.js.map +1 -0
- package/esm2015/testing/public-api.js +1 -1
- package/esm2015/testing/public-api.js.map +1 -0
- package/fesm2015/abp-ng.theme.basic-testing.js +11 -6
- package/fesm2015/abp-ng.theme.basic-testing.js.map +1 -1
- package/fesm2015/abp-ng.theme.basic.js +334 -240
- package/fesm2015/abp-ng.theme.basic.js.map +1 -1
- package/lib/components/account-layout/account-layout.component.d.ts +3 -0
- package/lib/components/account-layout/auth-wrapper/auth-wrapper.component.d.ts +4 -3
- package/lib/components/account-layout/tenant-box/tenant-box.component.d.ts +4 -3
- package/lib/components/application-layout/application-layout.component.d.ts +3 -0
- package/lib/components/empty-layout/empty-layout.component.d.ts +3 -0
- package/lib/components/logo/logo.component.d.ts +3 -0
- package/lib/components/nav-items/current-user.component.d.ts +3 -0
- package/lib/components/nav-items/languages.component.d.ts +3 -0
- package/lib/components/nav-items/nav-items.component.d.ts +3 -0
- package/lib/components/page-alert-container/page-alert-container.component.d.ts +3 -0
- package/lib/components/routes/routes.component.d.ts +3 -0
- package/lib/components/validation-error/validation-error.component.d.ts +3 -0
- package/lib/providers/nav-item.provider.d.ts +1 -1
- package/lib/providers/styles.provider.d.ts +2 -2
- package/lib/services/layout.service.d.ts +3 -0
- package/lib/theme-basic.module.d.ts +23 -0
- package/package.json +7 -5
- package/testing/abp-ng.theme.basic-testing.d.ts +1 -0
- package/testing/lib/theme-basic-testing.module.d.ts +5 -0
- package/testing/package.json +0 -1
- package/abp-ng.theme.basic.metadata.json +0 -1
- package/bundles/abp-ng.theme.basic-testing.umd.min.js +0 -2
- package/bundles/abp-ng.theme.basic-testing.umd.min.js.map +0 -1
- package/bundles/abp-ng.theme.basic.umd.min.js +0 -17
- package/bundles/abp-ng.theme.basic.umd.min.js.map +0 -1
- package/testing/abp-ng.theme.basic-testing.metadata.json +0 -1
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@abp/ng.core"),require("rxjs"),require("rxjs/operators"),require("@abp/ng.account.core"),require("@abp/ng.theme.shared"),require("snq"),require("@ngx-validate/core"),require("@ng-bootstrap/ng-bootstrap")):"function"==typeof define&&define.amd?define("@abp/ng.theme.basic",["exports","@angular/core","@abp/ng.core","rxjs","rxjs/operators","@abp/ng.account.core","@abp/ng.theme.shared","snq","@ngx-validate/core","@ng-bootstrap/ng-bootstrap"],e):e(((n="undefined"!=typeof globalThis?globalThis:n||self).abp=n.abp||{},n.abp.ng=n.abp.ng||{},n.abp.ng.theme=n.abp.ng.theme||{},n.abp.ng.theme.basic={}),n.ng.core,n.ng_core,n.rxjs,n.rxjs.operators,n.ng_account_core,n.ng_theme_shared,n.snq,n.core$1,n.ngBootstrap)}(this,(function(n,e,t,o,a,r,i,c,s,l){"use strict";function p(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var d=p(c),u=function(){function n(n,e){this.subscription=n,this.cdRef=e,this.isCollapsed=!0,this.logoComponentKey="Theme.LogoComponent",this.routesComponentKey="Theme.RoutesComponent",this.navItemsComponentKey="Theme.NavItemsComponent"}return n.prototype.checkWindowWidth=function(){var n=this,e=window.innerWidth<992;e&&!1===this.smallScreen&&(this.isCollapsed=!1,setTimeout((function(){n.isCollapsed=!0}),100)),this.smallScreen=e,this.cdRef.detectChanges()},n.prototype.subscribeWindowSize=function(){var n=this;this.checkWindowWidth();var e=o.fromEvent(window,"resize").pipe(a.debounceTime(150));this.subscription.addOne(e,(function(){return n.checkWindowWidth()}))},n}();u.decorators=[{type:e.Injectable}],u.ctorParameters=function(){return[{type:t.SubscriptionService},{type:e.ChangeDetectorRef}]};var m=function(){function n(n){this.service=n,this.authWrapperKey="Account.AuthWrapperComponent"}return n.prototype.ngAfterViewInit=function(){this.service.subscribeWindowSize()},n}();m.type="account",m.decorators=[{type:e.Component,args:[{selector:"abp-layout-account",template:'<nav\n class="navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4"\n id="main-navbar"\n style="min-height: 4rem"\n>\n <div class="container">\n <abp-logo *abpReplaceableTemplate="{ componentKey: service.logoComponentKey }"></abp-logo>\n <button\n class="navbar-toggler"\n type="button"\n [attr.aria-expanded]="!service.isCollapsed"\n (click)="service.isCollapsed = !service.isCollapsed"\n >\n <span class="navbar-toggler-icon"></span>\n </button>\n <div\n class="navbar-collapse"\n [class.overflow-hidden]="service.smallScreen"\n id="main-navbar-collapse"\n >\n <ng-container *ngTemplateOutlet="!service.smallScreen ? navigations : null"></ng-container>\n\n <div\n *ngIf="service.smallScreen"\n [@collapseWithMargin]="service.isCollapsed ? \'collapsed\' : \'expanded\'"\n >\n <ng-container *ngTemplateOutlet="navigations"></ng-container>\n </div>\n\n <ng-template #navigations>\n <abp-routes\n *abpReplaceableTemplate="{\n componentKey: service.routesComponentKey,\n inputs: {\n smallScreen: { value: service.smallScreen }\n }\n }"\n class="mx-auto"\n [smallScreen]="service.smallScreen"\n ></abp-routes>\n\n <abp-nav-items\n *abpReplaceableTemplate="{\n componentKey: service.navItemsComponentKey\n }"\n ></abp-nav-items>\n </ng-template>\n </div>\n </div>\n</nav>\n\n\x3c!-- [@slideFromBottom]="outlet.isActivated && outlet.activatedRoute?.routeConfig?.path" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed --\x3e\n<div class="container">\n <abp-page-alert-container></abp-page-alert-container>\n <abp-auth-wrapper\n *abpReplaceableTemplate="{\n componentKey: authWrapperKey\n }"\n >\n <router-outlet #outlet="outlet"></router-outlet>\n </abp-auth-wrapper>\n</div>\n',providers:[u,t.SubscriptionService]}]}],m.ctorParameters=function(){return[{type:u}]};var g=function(){function n(n){this.service=n}return n.prototype.ngOnInit=function(){},n}();g.decorators=[{type:e.Component,args:[{selector:"abp-auth-wrapper",template:'<div class="row">\n <div class="mx-auto col col-md-5">\n <ng-container *ngIf="(service.isMultiTenancyEnabled$ | async) && service.isTenantBoxVisible">\n <abp-tenant-box\n *abpReplaceableTemplate="{ componentKey: service.tenantBoxKey }"\n ></abp-tenant-box>\n </ng-container>\n\n <div class="abp-account-container">\n <div\n *ngIf="service.enableLocalLogin$ | async; else disableLocalLoginTemplate"\n class="card mt-3 shadow-sm rounded"\n >\n <div class="card-body p-5">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #disableLocalLoginTemplate>\n <div class="alert alert-warning">\n <strong>{{ \'AbpAccount::InvalidLoginRequest\' | abpLocalization }}</strong>\n {{ \'AbpAccount::ThereAreNoLoginSchemesConfiguredForThisClient\' | abpLocalization }}\n </div>\n</ng-template>\n',providers:[r.AuthWrapperService]}]}],g.ctorParameters=function(){return[{type:r.AuthWrapperService}]};var b=function(){function n(n){this.service=n}return n.prototype.ngOnInit=function(){},n}();b.decorators=[{type:e.Component,args:[{selector:"abp-tenant-box",template:'<ng-container *ngIf="(service.currentTenant$ | async) || {} as currentTenant">\n <div class="card shadow-sm rounded mb-3">\n <div class="card-body px-5">\n <div class="row">\n <div class="col">\n <span style="font-size: 0.8em" class="text-uppercase text-muted">{{\n \'AbpUiMultiTenancy::Tenant\' | abpLocalization\n }}</span\n ><br />\n <h6 class="m-0 d-inline-block">\n <i>{{ currentTenant.name || (\'AbpUiMultiTenancy::NotSelected\' | abpLocalization) }}</i>\n </h6>\n </div>\n <div class="col-auto">\n <a\n id="AbpTenantSwitchLink"\n href="javascript:void(0);"\n class="btn btn-sm mt-3 btn-outline-primary"\n (click)="service.onSwitch()"\n >{{ \'AbpUiMultiTenancy::Switch\' | abpLocalization }}</a\n >\n </div>\n </div>\n </div>\n </div>\n\n <abp-modal size="md" [(visible)]="service.isModalVisible" [busy]="service.modalBusy">\n <ng-template #abpHeader>\n <h5>Switch Tenant</h5>\n </ng-template>\n <ng-template #abpBody>\n <form (ngSubmit)="service.save()">\n <div class="mt-2">\n <div class="form-group">\n <label for="name">{{ \'AbpUiMultiTenancy::Name\' | abpLocalization }}</label>\n <input\n [(ngModel)]="service.name"\n type="text"\n id="name"\n name="tenant"\n class="form-control"\n autofocus\n />\n </div>\n <p>{{ \'AbpUiMultiTenancy::SwitchTenantHint\' | abpLocalization }}</p>\n </div>\n </form>\n </ng-template>\n <ng-template #abpFooter>\n <button abpClose type="button" class="btn btn-secondary">\n {{ \'AbpTenantManagement::Cancel\' | abpLocalization }}\n </button>\n <abp-button\n type="abp-button"\n iconClass="fa fa-check"\n (click)="service.save()"\n [disabled]="currentTenant?.name === service.name"\n >\n <span>{{ \'AbpTenantManagement::Save\' | abpLocalization }}</span>\n </abp-button>\n </ng-template>\n </abp-modal>\n</ng-container>\n',providers:[r.TenantBoxService]}]}],b.ctorParameters=function(){return[{type:r.TenantBoxService}]};var f=function(){function n(n){this.service=n}return n.prototype.ngAfterViewInit=function(){this.service.subscribeWindowSize()},n}();f.type="application",f.decorators=[{type:e.Component,args:[{selector:"abp-layout-application",template:'<nav\n class="navbar navbar-expand-lg navbar-dark bg-dark shadow-sm flex-column flex-md-row mb-4"\n id="main-navbar"\n style="min-height: 4rem"\n>\n <div class="container">\n <abp-logo *abpReplaceableTemplate="{ componentKey: service.logoComponentKey }"></abp-logo>\n <button\n class="navbar-toggler"\n type="button"\n [attr.aria-expanded]="!service.isCollapsed"\n (click)="service.isCollapsed = !service.isCollapsed"\n >\n <span class="navbar-toggler-icon"></span>\n </button>\n <div class="navbar-collapse" [class.overflow-hidden]="service.smallScreen" id="main-navbar-collapse">\n <ng-container *ngTemplateOutlet="!service.smallScreen ? navigations : null"></ng-container>\n\n <div *ngIf="service.smallScreen" [@collapseWithMargin]="service.isCollapsed ? \'collapsed\' : \'expanded\'">\n <ng-container *ngTemplateOutlet="navigations"></ng-container>\n </div>\n\n <ng-template #navigations>\n <abp-routes\n *abpReplaceableTemplate="{\n componentKey: service.routesComponentKey,\n inputs: {\n smallScreen: { value: service.smallScreen }\n }\n }"\n class="mx-auto"\n [smallScreen]="service.smallScreen"\n ></abp-routes>\n\n <abp-nav-items\n *abpReplaceableTemplate="{\n componentKey: service.navItemsComponentKey\n }"\n ></abp-nav-items>\n </ng-template>\n </div>\n </div>\n</nav>\n\n\x3c!-- [@slideFromBottom]="outlet.isActivated && outlet.activatedRoute?.routeConfig?.path" TODO: throws ExpressionChangedAfterItHasBeenCheck when animation is active. It should be fixed --\x3e\n<div class="container">\n <abp-page-alert-container></abp-page-alert-container>\n\n <router-outlet #outlet="outlet"></router-outlet>\n</div>\n',animations:[i.slideFromBottom,i.collapseWithMargin],providers:[u,t.SubscriptionService]}]}],f.ctorParameters=function(){return[{type:u}]};var v=function(){};v.type="empty",v.decorators=[{type:e.Component,args:[{selector:"abp-layout-empty",template:"\n <router-outlet></router-outlet>\n <abp-confirmation></abp-confirmation>\n "}]}];var h=function(){function n(n){this.environment=n}return Object.defineProperty(n.prototype,"appInfo",{get:function(){return this.environment.getEnvironment().application},enumerable:!1,configurable:!0}),n}();h.decorators=[{type:e.Component,args:[{selector:"abp-logo",template:'\n <a class="navbar-brand" routerLink="/">\n <img\n *ngIf="appInfo.logoUrl; else appName"\n [src]="appInfo.logoUrl"\n [alt]="appInfo.name"\n width="100%"\n height="auto"\n />\n </a>\n\n <ng-template #appName>\n {{ appInfo.name }}\n </ng-template>\n '}]}],h.ctorParameters=function(){return[{type:t.EnvironmentService}]};var y=function(){function n(n,e,t,o){this.navigateToManageProfile=n,this.authService=e,this.configState=t,this.sessionState=o,this.currentUser$=this.configState.getOne$("currentUser"),this.selectedTenant$=this.sessionState.getTenant$()}return Object.defineProperty(n.prototype,"smallScreen",{get:function(){return window.innerWidth<992},enumerable:!1,configurable:!0}),n.prototype.navigateToLogin=function(){this.authService.navigateToLogin()},n.prototype.logout=function(){this.authService.logout().subscribe()},n}();y.decorators=[{type:e.Component,args:[{selector:"abp-current-user",template:'<ng-template #loginBtn>\n <a role="button" class="nav-link pointer" (click)="navigateToLogin()">{{\n \'AbpAccount::Login\' | abpLocalization\n }}</a>\n</ng-template>\n<div\n *ngIf="(currentUser$ | async)?.isAuthenticated; else loginBtn"\n ngbDropdown\n class="dropdown"\n #currentUserDropdown="ngbDropdown"\n display="static"\n>\n <a\n ngbDropdownToggle\n class="nav-link"\n href="javascript:void(0)"\n role="button"\n id="dropdownMenuLink"\n data-toggle="dropdown"\n aria-haspopup="true"\n aria-expanded="false"\n >\n <small *ngIf="(selectedTenant$ | async)?.name as tenantName"\n ><i>{{ tenantName }}</i\n >\\</small\n >\n <strong>{{ (currentUser$ | async)?.userName }}</strong>\n </a>\n <div\n class="dropdown-menu dropdown-menu-right border-0 shadow-sm"\n aria-labelledby="dropdownMenuLink"\n [class.d-block]="smallScreen && currentUserDropdown.isOpen()"\n >\n <a class="dropdown-item pointer" (click)="navigateToManageProfile()"\n ><i class="fa fa-cog mr-1"></i>{{ \'AbpAccount::MyAccount\' | abpLocalization }}</a\n >\n <a class="dropdown-item" href="javascript:void(0)" (click)="logout()"\n ><i class="fa fa-power-off mr-1"></i>{{ \'AbpUi::Logout\' | abpLocalization }}</a\n >\n </div>\n</div>\n'}]}],y.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[t.NAVIGATE_TO_MANAGE_PROFILE]}]},{type:t.AuthService},{type:t.ConfigStateService},{type:t.SessionStateService}]};var w=function(){function n(n,e){this.sessionState=n,this.configState=e,this.languages$=this.configState.getDeep$("localization.languages")}return Object.defineProperty(n.prototype,"smallScreen",{get:function(){return window.innerWidth<992},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"defaultLanguage$",{get:function(){var n=this;return this.languages$.pipe(a.map((function(e){return d.default((function(){return e.find((function(e){return e.cultureName===n.selectedLangCulture})).displayName}))}),""))},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"dropdownLanguages$",{get:function(){var n=this;return this.languages$.pipe(a.map((function(e){return d.default((function(){return e.filter((function(e){return e.cultureName!==n.selectedLangCulture}))}))}),[]))},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"selectedLangCulture",{get:function(){return this.sessionState.getLanguage()},enumerable:!1,configurable:!0}),n.prototype.onChangeLang=function(n){this.sessionState.setLanguage(n)},n}();w.decorators=[{type:e.Component,args:[{selector:"abp-languages",template:'\n <div\n *ngIf="(dropdownLanguages$ | async)?.length > 0"\n class="dropdown"\n ngbDropdown\n #languageDropdown="ngbDropdown"\n display="static"\n >\n <a\n ngbDropdownToggle\n class="nav-link"\n href="javascript:void(0)"\n role="button"\n id="dropdownMenuLink"\n data-toggle="dropdown"\n aria-haspopup="true"\n aria-expanded="false"\n >\n {{ defaultLanguage$ | async }}\n </a>\n <div\n class="dropdown-menu dropdown-menu-right border-0 shadow-sm"\n aria-labelledby="dropdownMenuLink"\n [class.d-block]="smallScreen && languageDropdown.isOpen()"\n >\n <a\n *ngFor="let lang of dropdownLanguages$ | async"\n href="javascript:void(0)"\n class="dropdown-item"\n (click)="onChangeLang(lang.cultureName)"\n >{{ lang?.displayName }}</a\n >\n </div>\n </div>\n '}]}],w.ctorParameters=function(){return[{type:t.SessionStateService},{type:t.ConfigStateService}]};var C=function(n){this.navItems=n,this.trackByFn=function(n,e){return e.id}};C.decorators=[{type:e.Component,args:[{selector:"abp-nav-items",template:'<ul class="navbar-nav">\n <ng-container *ngFor="let item of navItems.items$ | async; trackBy: trackByFn">\n <ng-container *ngIf="item.visible()">\n <li class="nav-item d-flex align-items-center" *abpPermission="item.requiredPolicy">\n <ng-container\n *ngIf="item.component; else htmlTemplate"\n [ngComponentOutlet]="item.component"\n ></ng-container>\n\n <ng-template #htmlTemplate>\n <div [innerHTML]="item.html" (click)="item.action ? item.action() : null"></div>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n</ul>\n'}]}],C.ctorParameters=function(){return[{type:i.NavItemsService}]};var S=function(){function n(n,e){this.routesService=n,this.renderer=e,this.trackByFn=function(n,e){return e.name}}return n.prototype.isDropdown=function(n){return!(null==n?void 0:n.isLeaf)||this.routesService.hasChildren(n.name)},n.prototype.closeDropdown=function(){var n=this;this.childrenContainers.forEach((function(e){var t=e.nativeElement;n.renderer.addClass(t,"d-none"),setTimeout((function(){return n.renderer.removeClass(t,"d-none")}),0)}))},n}();S.decorators=[{type:e.Component,args:[{selector:"abp-routes",template:'<ul class="navbar-nav">\n <ng-container\n *ngFor="let route of routesService.visible$ | async; trackBy: trackByFn"\n [ngTemplateOutlet]="isDropdown(route) ? dropdownLink : defaultLink"\n [ngTemplateOutletContext]="{ $implicit: route }"\n >\n </ng-container>\n\n <ng-template #defaultLink let-route>\n <li class="nav-item" *abpPermission="route.requiredPolicy">\n <a class="nav-link" [routerLink]="[route.path]"\n ><i *ngIf="route.iconClass" [ngClass]="route.iconClass"></i>\n {{ route.name | abpLocalization }}</a\n >\n </li>\n </ng-template>\n\n <ng-template #dropdownLink let-route>\n <ng-container *ngIf="route.children?.length">\n <li\n #navbarRootDropdown\n class="nav-item dropdown"\n display="static"\n *abpPermission="route.requiredPolicy"\n (click)="\n navbarRootDropdown.expand\n ? (navbarRootDropdown.expand = false)\n : (navbarRootDropdown.expand = true)\n "\n >\n <a\n class="nav-link dropdown-toggle"\n data-toggle="dropdown"\n aria-haspopup="true"\n aria-expanded="false"\n href="javascript:void(0)"\n >\n <i *ngIf="route.iconClass" [ngClass]="route.iconClass"></i>\n {{ route.name | abpLocalization }}\n </a>\n <div\n #routeContainer\n class="dropdown-menu border-0 shadow-sm"\n (click)="$event.preventDefault(); $event.stopPropagation()"\n [class.d-block]="smallScreen && navbarRootDropdown.expand"\n >\n <ng-container\n *ngTemplateOutlet="forTemplate; context: { $implicit: route }"\n ></ng-container>\n </div>\n </li>\n </ng-container>\n </ng-template>\n\n <ng-template #forTemplate let-route>\n <ng-container *ngFor="let child of route.children">\n <ng-template\n [ngTemplateOutlet]="child.children?.length ? dropdownChild : defaultChild"\n [ngTemplateOutletContext]="{ $implicit: child }"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #defaultChild let-child>\n <ng-container *ngIf="child.path">\n <div class="dropdown-submenu" *abpPermission="child.requiredPolicy">\n <a class="dropdown-item" [routerLink]="[child.path]" (click)="closeDropdown()">\n <i *ngIf="child.iconClass" [ngClass]="child.iconClass"></i>\n {{ child.name | abpLocalization }}</a\n >\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #dropdownChild let-child>\n <div\n class="dropdown-submenu"\n ngbDropdown\n #dropdownSubmenu="ngbDropdown"\n placement="right-top"\n [autoClose]="true"\n *abpPermission="child.requiredPolicy"\n >\n <div ngbDropdownToggle [class.dropdown-toggle]="false">\n <a\n abpEllipsis="210px"\n [abpEllipsisEnabled]="!smallScreen"\n role="button"\n class="btn d-block text-left dropdown-toggle"\n >\n <i *ngIf="child.iconClass" [ngClass]="child.iconClass"></i>\n {{ child.name | abpLocalization }}\n </a>\n </div>\n <div\n #childrenContainer\n class="dropdown-menu border-0 shadow-sm"\n [class.d-block]="smallScreen && dropdownSubmenu.isOpen()"\n >\n <ng-container *ngTemplateOutlet="forTemplate; context: { $implicit: child }"></ng-container>\n </div>\n </div>\n </ng-template>\n</ul>\n'}]}],S.ctorParameters=function(){return[{type:t.RoutesService},{type:e.Renderer2}]},S.propDecorators={smallScreen:[{type:e.Input}],childrenContainers:[{type:e.ViewChildren,args:["childrenContainer"]}]};
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */
|
|
16
|
-
var T=function(n,e){return(T=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,e){n.__proto__=e}||function(n,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t])})(n,e)};Object.create;function x(n,e){var t="function"==typeof Symbol&&n[Symbol.iterator];if(!t)return n;var o,a,r=t.call(n),i=[];try{for(;(void 0===e||e-- >0)&&!(o=r.next()).done;)i.push(o.value)}catch(n){a={error:n}}finally{try{o&&!o.done&&(t=r.return)&&t.call(r)}finally{if(a)throw a.error}}return i}function L(){for(var n=[],e=0;e<arguments.length;e++)n=n.concat(x(arguments[e]));return n}Object.create;var k=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function t(){this.constructor=n}T(n,e),n.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}(e,n),Object.defineProperty(e.prototype,"abpErrors",{get:function(){return this.errors&&this.errors.length?this.errors.map((function(n){if(!n.message)return n;var e=n.message.indexOf("[");return e>-1?Object.assign(Object.assign({},n),{message:n.message.slice(0,e),interpoliteParams:n.message.slice(e+1,n.message.length-1).split(",")}):n})):[]},enumerable:!1,configurable:!0}),e}(s.ValidationErrorComponent);k.decorators=[{type:e.Component,args:[{selector:"abp-validation-error",template:'\n <div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">\n {{ error.message | abpLocalization: error.interpoliteParams }}\n </div>\n ',changeDetection:e.ChangeDetectionStrategy.OnPush,encapsulation:e.ViewEncapsulation.None}]}];var I=function(n){this.service=n};I.decorators=[{type:e.Component,args:[{selector:"abp-page-alert-container",template:'<ng-container *ngFor="let alert of service.alerts$ | async; let i = index">\n <div\n class="alert alert-{{ alert.type }} fade show"\n [ngClass]="{ \'alert-dismissible fade show\': alert.dismissible }"\n role="alert"\n >\n <h4 class="alert-heading" *ngIf="alert.title">\n {{ alert.title | abpLocalization: alert.titleLocalizationParams }}\n </h4>\n {{ alert.message | abpLocalization: alert.messageLocalizationParams }}\n <button\n *ngIf="alert.dismissible"\n type="button"\n class="close"\n data-dismiss="alert"\n aria-label="Close"\n (click)="service.remove(i)"\n >\n <span aria-hidden="true">×</span>\n </button>\n </div>\n</ng-container>\n',encapsulation:e.ViewEncapsulation.None}]}],I.ctorParameters=function(){return[{type:i.PageAlertService}]};var A=[{provide:e.APP_INITIALIZER,useFactory:O,deps:[i.NavItemsService],multi:!0}];function O(n){return function(){n.addItems([{id:"Theme.LanguagesComponent",order:100,component:w},{id:"Theme.CurrentUserComponent",order:100,component:y}])}}var P=[{provide:e.APP_INITIALIZER,useFactory:E,deps:[t.DomInsertionService,t.ReplaceableComponentsService],multi:!0}];function E(n,e){return function(){n.insertContent(t.CONTENT_STRATEGY.AppendStyleToHead("\n.content-header-title {\n font-size: 24px;\n}\n.entry-row {\n margin-bottom: 15px;\n}\n#main-navbar-tools a.dropdown-toggle {\n text-decoration: none;\n color: #fff;\n}\n.navbar .dropdown-submenu {\n position: relative;\n}\n.navbar .dropdown-menu {\n margin: 0;\n padding: 0;\n}\n.navbar .dropdown-menu a {\n font-size: .9em;\n padding: 10px 15px;\n display: block;\n min-width: 210px;\n text-align: left;\n border-radius: 0.25rem;\n min-height: 44px;\n}\n[dir=rtl] .navbar .dropdown-menu a {\n text-align: right!important;\n}\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n[dir=rtl] .navbar .dropdown-submenu a::after {\n transform: rotate(90deg);\n left: 16px;\n right: auto;\n top: 20px;\n}\n.navbar .dropdown-submenu .dropdown-menu {\n top: 0;\n left: 100%;\n}\n.card-header .btn {\n padding: 2px 6px;\n}\n.card-header h5 {\n margin: 0;\n}\n.container > .card {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n@media screen and (min-width: 992px) {\n .navbar .dropdown:hover > .dropdown-menu {\n display: block;\n }\n\n .navbar .dropdown-submenu:hover > .dropdown-menu {\n display: block;\n }\n}\n.input-validation-error {\n border-color: #dc3545;\n}\n.field-validation-error {\n font-size: 0.8em;\n}\n.ui-table .ui-table-tbody > tr.empty-row > div.empty-row-content {\n border: 1px solid #c8c8c8;\n }\n.abp-loading {\n background: rgba(0, 0, 0, 0.05);\n}\n.modal-backdrop {\nbackground-color: rgba(0, 0, 0, 0.6);\n}\n\n.confirmation .confirmation-backdrop {\n\t background: rgba(0, 0, 0, 0.7) !important;\n}\n .confirmation .confirmation-dialog {\n\t border: none;\n\t border-radius: 10px;\n\t background-color: #fff;\n\t box-shadow: 0 0 10px -5px rgba(0, 0, 0, 0.5);\n}\n .confirmation .confirmation-dialog .icon-container .icon {\n\t stroke: #fff;\n\t color: #fff;\n}\n .confirmation .confirmation-dialog .icon-container.info .icon {\n\t stroke: #2f96b4;\n\t color: #2f96b4;\n}\n .confirmation .confirmation-dialog .icon-container.success .icon {\n\t stroke: #51a351;\n\t color: #51a351;\n}\n .confirmation .confirmation-dialog .icon-container.warning .icon {\n\t stroke: #f89406;\n\t color: #f89406;\n}\n .confirmation .confirmation-dialog .icon-container.error .icon {\n\t stroke: #bd362f;\n\t color: #bd362f;\n}\n .confirmation .confirmation-dialog .content .title {\n\t color: #222;\n}\n .confirmation .confirmation-dialog .content .message {\n\t color: #777;\n}\n .confirmation .confirmation-dialog .footer {\n\t background: transparent;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button {\n\t background-color: #eee;\n\t color: #777;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button:hover, .confirmation .confirmation-dialog .footer .confirmation-button:focus, .confirmation .confirmation-dialog .footer .confirmation-button:active {\n\t background-color: #bbb;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button--confirm {\n\t background-color: #2f96b4;\n\t color: #fff;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button--confirm:hover {\n\t background-color: #2e819b;\n}\n.ui-table .pagination-wrapper {\n background-color: #f4f4f4;\n border: 1px solid #c8c8c8;\n}\n.bordered .datatable-body-row {\n border-top: 1px solid #eee;\n margin-top: -1px;\n}\n.breadcrumb {\n background-color: transparent;\n padding: 0.27rem;\n}\n")),function(n){n.add({key:"Theme.ApplicationLayoutComponent",component:f}),n.add({key:"Theme.AccountLayoutComponent",component:m}),n.add({key:"Theme.EmptyLayoutComponent",component:v})}(e)}}var D=[f,m,v],R=function(){};R.decorators=[{type:e.NgModule,args:[{declarations:L(D,[k,h,C,S,y,w,I,b,g]),exports:L(D,[k,h,C,S,y,w,I]),imports:[t.CoreModule,i.ThemeSharedModule,l.NgbCollapseModule,l.NgbDropdownModule,s.NgxValidateCoreModule],entryComponents:L(D,[k,y,w])}]}];var M=function(){function n(){}return n.forRoot=function(){return{ngModule:n,providers:[A,P,{provide:s.VALIDATION_ERROR_TEMPLATE,useValue:k},{provide:s.VALIDATION_TARGET_SELECTOR,useValue:".form-group"},{provide:s.VALIDATION_INVALID_CLASSES,useValue:"is-invalid"}]}},n}();M.decorators=[{type:e.NgModule,args:[{exports:[R],imports:[R]}]}],n.AccountLayoutComponent=m,n.ApplicationLayoutComponent=f,n.AuthWrapperComponent=g,n.BASIC_THEME_NAV_ITEM_PROVIDERS=A,n.BASIC_THEME_STYLES_PROVIDERS=P,n.BaseThemeBasicModule=R,n.CurrentUserComponent=y,n.EmptyLayoutComponent=v,n.LAYOUTS=D,n.LanguagesComponent=w,n.LogoComponent=h,n.NavItemsComponent=C,n.PageAlertContainerComponent=I,n.RoutesComponent=S,n.TenantBoxComponent=b,n.ThemeBasicModule=M,n.ValidationErrorComponent=k,n.configureNavItems=O,n.configureStyles=E,n.ɵa=f,n.ɵb=u,n.ɵc=m,n.ɵd=v,n.ɵe=k,n.ɵf=h,n.ɵg=C,n.ɵh=S,n.ɵi=y,n.ɵj=w,n.ɵk=I,n.ɵl=b,n.ɵm=g,n.ɵn=A,n.ɵo=O,n.ɵp=P,n.ɵq=E,Object.defineProperty(n,"__esModule",{value:!0})}));
|
|
17
|
-
//# sourceMappingURL=abp-ng.theme.basic.umd.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../packages/theme-basic/src/lib/services/layout.service.ts","../../../packages/theme-basic/src/lib/components/account-layout/account-layout.component.ts","../../../packages/theme-basic/src/lib/components/account-layout/auth-wrapper/auth-wrapper.component.ts","../../../packages/theme-basic/src/lib/components/account-layout/tenant-box/tenant-box.component.ts","../../../packages/theme-basic/src/lib/components/application-layout/application-layout.component.ts","../../../packages/theme-basic/src/lib/components/empty-layout/empty-layout.component.ts","../../../packages/theme-basic/src/lib/components/logo/logo.component.ts","../../../packages/theme-basic/src/lib/components/nav-items/current-user.component.ts","../../../packages/theme-basic/src/lib/components/nav-items/languages.component.ts","../../../packages/theme-basic/src/lib/components/nav-items/nav-items.component.ts","../../../packages/theme-basic/src/lib/components/routes/routes.component.ts","../../../node_modules/tslib/tslib.es6.js","../../../packages/theme-basic/src/lib/components/validation-error/validation-error.component.ts","../../../packages/theme-basic/src/lib/components/page-alert-container/page-alert-container.component.ts","../../../packages/theme-basic/src/lib/providers/nav-item.provider.ts","../../../packages/theme-basic/src/lib/constants/styles.ts","../../../packages/theme-basic/src/lib/providers/styles.provider.ts","../../../packages/theme-basic/src/lib/theme-basic.module.ts"],"names":["LayoutService","subscription","cdRef","this","isCollapsed","logoComponentKey","routesComponentKey","navItemsComponentKey","prototype","checkWindowWidth","_this","isSmallScreen","window","innerWidth","smallScreen","setTimeout","detectChanges","subscribeWindowSize","resize$","fromEvent","pipe","debounceTime","addOne","Injectable","SubscriptionService","ChangeDetectorRef","AccountLayoutComponent","service","authWrapperKey","ngAfterViewInit","type","Component","args","selector","template","providers","AuthWrapperComponent","ngOnInit","AuthWrapperService","TenantBoxComponent","TenantBoxService","ApplicationLayoutComponent","animations","slideFromBottom","collapseWithMargin","EmptyLayoutComponent","LogoComponent","environment","Object","defineProperty","getEnvironment","application","EnvironmentService","CurrentUserComponent","navigateToManageProfile","authService","configState","sessionState","currentUser$","getOne$","selectedTenant$","getTenant$","navigateToLogin","logout","subscribe","Inject","NAVIGATE_TO_MANAGE_PROFILE","AuthService","ConfigStateService","SessionStateService","LanguagesComponent","languages$","getDeep$","map","languages","snq","find","lang","cultureName","selectedLangCulture","displayName","filter","getLanguage","onChangeLang","setLanguage","navItems","trackByFn","_","element","id","NavItemsService","RoutesComponent","routesService","renderer","item","name","isDropdown","node","isLeaf","hasChildren","closeDropdown","childrenContainers","forEach","_a","nativeElement","addClass","removeClass","RoutesService","Renderer2","Input","ViewChildren","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","call","create","__read","o","n","m","Symbol","iterator","r","e","i","ar","next","done","push","value","error","__spread","arguments","length","concat","ValidationErrorComponent","TypeError","String","__","constructor","__extends","_super","errors","message","index","indexOf","assign","slice","interpoliteParams","split","ErrorComponent","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","PageAlertService","BASIC_THEME_NAV_ITEM_PROVIDERS","provide","APP_INITIALIZER","useFactory","configureNavItems","deps","multi","addItems","order","component","BASIC_THEME_STYLES_PROVIDERS","configureStyles","DomInsertionService","ReplaceableComponentsService","domInsertion","replaceableComponents","insertContent","CONTENT_STRATEGY","AppendStyleToHead","add","key","initLayouts","LAYOUTS","NgModule","declarations","NavItemsComponent","PageAlertContainerComponent","exports","imports","CoreModule","ThemeSharedModule","NgbCollapseModule","NgbDropdownModule","NgxValidateCoreModule","entryComponents","ThemeBasicModule","forRoot","ngModule","VALIDATION_ERROR_TEMPLATE","useValue","VALIDATION_TARGET_SELECTOR","VALIDATION_INVALID_CLASSES","BaseThemeBasicModule"],"mappings":"o8BAkBE,SAAAA,EAAoBC,EAA2CC,GAA3CC,KAAAF,aAAAA,EAA2CE,KAAAD,MAAAA,EAV/DC,KAAAC,aAAc,EAIdD,KAAAE,iBAAgB,sBAEhBF,KAAAG,mBAAkB,wBAElBH,KAAAI,qBAAoB,iCAIZP,EAAAQ,UAAAC,iBAAA,WAAA,IAAAC,EAAAP,KACAQ,EAAgBC,OAAOC,WAAa,IACtCF,IAAsC,IAArBR,KAAKW,cACxBX,KAAKC,aAAc,EACnBW,YAAW,WACTL,EAAKN,aAAc,IAClB,MAELD,KAAKW,YAAcH,EACnBR,KAAKD,MAAMc,iBAGbhB,EAAAQ,UAAAS,oBAAA,WAAA,IAAAP,EAAAP,KACEA,KAAKM,mBAEL,IAAMS,EAAUC,EAAAA,UAAUP,OAAQ,UAAUQ,KAAKC,EAAAA,aAAa,MAC9DlB,KAAKF,aAAaqB,OAAOJ,GAAS,WAAM,OAAAR,EAAKD,gDA9BhDc,EAAAA,sDAJQC,EAAAA,2BAFAC,EAAAA,sCCeP,SAAAC,EAAmBC,GAAAxB,KAAAwB,QAAAA,EAFnBxB,KAAAyB,eAAiB,sCAIjBF,EAAAlB,UAAAqB,gBAAA,WACE1B,KAAKwB,QAAQV,4BAPRS,EAAAI,KAAI,8BAPZC,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,qBACVC,SAAA,u+DACAC,UAAW,CAACnC,EAAewB,EAAAA,kEALpBxB,sBCOP,SAAAoC,EAAmBT,GAAAxB,KAAAwB,QAAAA,SAEnBS,EAAA5B,UAAA6B,SAAA,sCARDN,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,mBACVC,SAAA,64BACAC,UAAW,CAACG,EAAAA,iEALLA,EAAAA,uCCQP,SAAAC,EAAmBZ,GAAAxB,KAAAwB,QAAAA,SAEnBY,EAAA/B,UAAA6B,SAAA,sCARDN,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,iBACVC,SAAA,8pEACAC,UAAW,CAACK,EAAAA,+DALLA,EAAAA,qCCcP,SAAAC,EAAmBd,GAAAxB,KAAAwB,QAAAA,SAEnBc,EAAAjC,UAAAqB,gBAAA,WACE1B,KAAKwB,QAAQV,4BALRwB,EAAAX,KAAI,kCARZC,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,yBACVC,SAAA,qzDACAQ,WAAY,CAACC,EAAAA,gBAAiBC,EAAAA,oBAC9BT,UAAW,CAACnC,EAAewB,EAAAA,kEANpBxB,WCOT,aACS6C,EAAAf,KAAI,4BARZC,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,mBACVC,SAAU,4GCqBV,SAAAY,EAAoBC,GAAA5C,KAAA4C,YAAAA,SAJpBC,OAAAC,eAAIH,EAAAtC,UAAA,UAAO,KAAX,WACE,OAAOL,KAAK4C,YAAYG,iBAAiBC,sEApB5CpB,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,WACVC,SAAU,wWALckB,EAAAA,uCCsBxB,SAAAC,EAC6CC,EACnCC,EACAC,EACAC,GAHmCtD,KAAAmD,wBAAAA,EACnCnD,KAAAoD,YAAAA,EACApD,KAAAqD,YAAAA,EACArD,KAAAsD,aAAAA,EAXVtD,KAAAuD,aAA2CvD,KAAKqD,YAAYG,QAAQ,eACpExD,KAAAyD,gBAAkBzD,KAAKsD,aAAaI,oBAEpCb,OAAAC,eAAII,EAAA7C,UAAA,cAAW,KAAf,WACE,OAAOI,OAAOC,WAAa,qCAU7BwC,EAAA7C,UAAAsD,gBAAA,WACE3D,KAAKoD,YAAYO,mBAGnBT,EAAA7C,UAAAuD,OAAA,WACE5D,KAAKoD,YAAYQ,SAASC,sCAxB7BjC,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,mBACVC,SAAA,q1CAWG+B,EAAAA,OAAMjC,KAAA,CAACkC,EAAAA,qCAtBVC,EAAAA,mBACAC,EAAAA,0BAGAC,EAAAA,wCCyEA,SAAAC,EAAoBb,EAA2CD,GAA3CrD,KAAAsD,aAAAA,EAA2CtD,KAAAqD,YAAAA,EA5B/DrD,KAAAoE,WAAyCpE,KAAKqD,YAAYgB,SAAS,iCAJnExB,OAAAC,eAAIqB,EAAA9D,UAAA,cAAW,KAAf,WACE,OAAOI,OAAOC,WAAa,qCAK7BmC,OAAAC,eAAIqB,EAAA9D,UAAA,mBAAgB,KAApB,WAAA,IAAAE,EAAAP,KACE,OAAOA,KAAKoE,WAAWnD,KACrBqD,EAAAA,KACE,SAAAC,GACE,OAAAC,EAAAA,SACE,WAAM,OAAAD,EAAUE,MAAK,SAAAC,GAAQ,OAAAA,EAAKC,cAAgBpE,EAAKqE,uBAAqBC,iBAEhF,sCAKNhC,OAAAC,eAAIqB,EAAA9D,UAAA,qBAAkB,KAAtB,WAAA,IAAAE,EAAAP,KACE,OAAOA,KAAKoE,WAAWnD,KACrBqD,EAAAA,KACE,SAAAC,GACE,OAAAC,EAAAA,SAAI,WAAM,OAAAD,EAAUO,QAAO,SAAAJ,GAAQ,OAAAA,EAAKC,cAAgBpE,EAAKqE,4BAC/D,sCAKN/B,OAAAC,eAAIqB,EAAA9D,UAAA,sBAAmB,KAAvB,WACE,OAAOL,KAAKsD,aAAayB,+CAK3BZ,EAAA9D,UAAA2E,aAAA,SAAaL,GACX3E,KAAKsD,aAAa2B,YAAYN,6BA3EjC/C,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,gBAEVC,SAAU,i/BAT+BmC,EAAAA,2BAAlCD,EAAAA,4BCUP,SAA4BiB,GAAAlF,KAAAkF,SAAAA,EAF5BlF,KAAAmF,UAAsC,SAACC,EAAGC,GAAY,OAAAA,EAAQC,yBAL/D1D,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,gBACVC,SAAA,gpBALgBwD,EAAAA,oCCsBhB,SAAAC,EAA4BC,EAAwCC,GAAxC1F,KAAAyF,cAAAA,EAAwCzF,KAAA0F,SAAAA,EAFpE1F,KAAAmF,UAAkD,SAACC,EAAGO,GAAS,OAAAA,EAAKC,aAIpEJ,EAAAnF,UAAAwF,WAAA,SAAWC,GACT,QAAQA,MAAAA,OAAI,EAAJA,EAAMC,SAAU/F,KAAKyF,cAAcO,YAAYF,EAAKF,OAG9DJ,EAAAnF,UAAA4F,cAAA,WAAA,IAAA1F,EAAAP,KACEA,KAAKkG,mBAAmBC,SAAQ,SAACC,OAAEC,EAAaD,EAAAC,cAC9C9F,EAAKmF,SAASY,SAASD,EAAe,UACtCzF,YAAW,WAAM,OAAAL,EAAKmF,SAASa,YAAYF,EAAe,YAAW,gCApB1EzE,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,aACVC,SAAA,y9GAbYyE,EAAAA,qBAMZC,EAAAA,kDAUCC,EAAAA,kCAEAC,EAAAA,aAAY9E,KAAA,CAAC;;;;;;;;;;;;;;;ACFhB,IAAI+E,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgB/D,OAAOkE,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOjE,OAAOxC,UAAU8G,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,MAC3EL,EAAGC,IAuFCjE,OAAOwE,gBAwBpBC,EAAOC,EAAGC,GACtB,IAAIC,EAAsB,mBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAYC,EAA3BC,EAAIL,EAAEL,KAAKG,GAAOQ,EAAK,GAC3B,IACI,WAAc,IAANP,GAAgBA,KAAM,MAAQI,EAAIE,EAAEE,QAAQC,MAAMF,EAAGG,KAAKN,EAAEO,OAExE,MAAOC,GAASP,EAAI,CAAEO,MAAOA,WAEzB,IACQR,IAAMA,EAAEK,OAASR,EAAIK,EAAU,SAAIL,EAAEL,KAAKU,WAExC,GAAID,EAAG,MAAMA,EAAEO,OAE7B,OAAOL,WAIKM,IACZ,IAAK,IAAIN,EAAK,GAAID,EAAI,EAAGA,EAAIQ,UAAUC,OAAQT,IAC3CC,EAAKA,EAAGS,OAAOlB,EAAOgB,UAAUR,KACpC,OAAOC,EAyDclF,OAAOwE,yBCpMhC,SAAAoB,mEDU0B5B,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI4B,UAAU,uBAAyBC,OAAO7B,GAAK,iCAE7D,SAAS8B,IAAO5I,KAAK6I,YAAchC,EADnCD,EAAcC,EAAGC,GAEjBD,EAAExG,UAAkB,OAANyG,EAAajE,OAAOwE,OAAOP,IAAM8B,EAAGvI,UAAYyG,EAAEzG,UAAW,IAAIuI,GCfrCE,CAAAL,EAAAM,GAC5ClG,OAAAC,eAAI2F,EAAApI,UAAA,YAAS,KAAb,WACE,OAAKL,KAAKgJ,QAAWhJ,KAAKgJ,OAAOT,OAE1BvI,KAAKgJ,OAAO1E,KAAI,SAAA8D,GACrB,IAAKA,EAAMa,QAAS,OAAOb,EAE3B,IAAMc,EAAQd,EAAMa,QAAQE,QAAQ,KAEpC,OAAID,GAAS,EACXrG,OAAAuG,OAAAvG,OAAAuG,OAAA,GACKhB,GAAK,CACRa,QAASb,EAAMa,QAAQI,MAAM,EAAGH,GAChCI,kBAAmBlB,EAAMa,QAAQI,MAAMH,EAAQ,EAAGd,EAAMa,QAAQV,OAAS,GAAGgB,MAAM,OAI/EnB,KAfuC,uCAFNoB,EAAAA,8CAV7C5H,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,uBACVC,SAAU,iLAKV0H,gBAAiBC,EAAAA,wBAAwBC,OACzCC,cAAeC,EAAAA,kBAAkBC,eCFjC,SAAmBtI,GAAAxB,KAAAwB,QAAAA,uBANpBI,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,2BACVC,SAAA,itBACA6H,cAAeC,EAAAA,kBAAkBC,kDAL1BC,EAAAA,wBCKIC,EAAiC,CAC5C,CACEC,QAASC,EAAAA,gBACTC,WAAYC,EACZC,KAAM,CAAC9E,EAAAA,iBACP+E,OAAO,aAIKF,EAAkBlF,GAChC,OAAO,WACLA,EAASqF,SAAS,CAChB,CACEjF,GAAE,2BACFkF,MAAO,IACPC,UAAWtG,GAEb,CACEmB,GAAE,6BACFkF,MAAO,IACPC,UAAWvH,MC1BnB,ICSawH,EAA+B,CAC1C,CACET,QAASC,EAAAA,gBACTC,WAAYQ,EACZN,KAAM,CAACO,EAAAA,oBAAqBC,EAAAA,8BAC5BP,OAAO,aAIKK,EACdG,EACAC,GAEA,OAAO,WACLD,EAAaE,cAAcC,EAAAA,iBAAiBC,kBDvBjC,s+GC6Bf,SAAqBH,GACnBA,EAAsBI,IAAI,CACxBC,IAAG,mCACHX,UAAWnI,IAEbyI,EAAsBI,IAAI,CACxBC,IAAG,+BACHX,UAAWlJ,IAEbwJ,EAAsBI,IAAI,CACxBC,IAAG,6BACHX,UAAW/H,IAfX2I,CAAYN,QCAHO,EAAU,CAAChJ,EAA4Bf,EAAwBmB,KAkC5E,iCAhCC6I,EAAAA,SAAQ1J,KAAA,CAAC,CACR2J,aAAYnD,EACPiD,EAAO,CACV7C,EACA9F,EACA8I,EACAjG,EACAtC,EACAiB,EACAuH,EACAtJ,EACAH,IAEF0J,QAAOtD,EACFiD,EAAO,CACV7C,EACA9F,EACA8I,EACAjG,EACAtC,EACAiB,EACAuH,IAEFE,QAAS,CACPC,EAAAA,WACAC,EAAAA,kBACAC,EAAAA,kBACAC,EAAAA,kBACAC,EAAAA,uBAEFC,gBAAe7D,EAAMiD,EAAO,CAAE7C,EAA0BvF,EAAsBiB,yBAQhF,SAAAgI,YACSA,EAAAC,QAAP,WACE,MAAO,CACLC,SAAUF,EACVnK,UAAW,CACTgI,EACAU,EACA,CACET,QAASqC,EAAAA,0BACTC,SAAU9D,GAEZ,CACEwB,QAASuC,EAAAA,2BACTD,SAAU,eAEZ,CACEtC,QAASwC,EAAAA,2BACTF,SAAU,0CArBnBhB,EAAAA,SAAQ1J,KAAA,CAAC,CACR8J,QAAS,CAACe,GACVd,QAAS,CAACc","sourcesContent":["import { ChangeDetectorRef, Injectable } from '@angular/core';\nimport { eThemeBasicComponents } from '../enums';\nimport { SubscriptionService } from '@abp/ng.core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Injectable()\nexport class LayoutService {\n isCollapsed = true;\n\n smallScreen: boolean; // do not set true or false\n\n logoComponentKey = eThemeBasicComponents.Logo;\n\n routesComponentKey = eThemeBasicComponents.Routes;\n\n navItemsComponentKey = eThemeBasicComponents.NavItems;\n\n constructor(private subscription: SubscriptionService, private cdRef: ChangeDetectorRef) {}\n\n private checkWindowWidth() {\n const isSmallScreen = window.innerWidth < 992;\n if (isSmallScreen && this.smallScreen === false) {\n this.isCollapsed = false;\n setTimeout(() => {\n this.isCollapsed = true;\n }, 100);\n }\n this.smallScreen = isSmallScreen;\n this.cdRef.detectChanges();\n }\n\n subscribeWindowSize() {\n this.checkWindowWidth();\n\n const resize$ = fromEvent(window, 'resize').pipe(debounceTime(150));\n this.subscription.addOne(resize$, () => this.checkWindowWidth());\n }\n}\n","import { AfterViewInit, Component } from '@angular/core';\nimport { eLayoutType, SubscriptionService } from '@abp/ng.core';\nimport { LayoutService } from '../../services/layout.service';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './account-layout.component.html',\n providers: [LayoutService, SubscriptionService],\n})\nexport class AccountLayoutComponent implements AfterViewInit {\n // required for dynamic component\n static type = eLayoutType.account;\n\n authWrapperKey = 'Account.AuthWrapperComponent';\n\n constructor(public service: LayoutService) {}\n\n ngAfterViewInit() {\n this.service.subscribeWindowSize();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AuthWrapperService } from '@abp/ng.account.core';\n\n@Component({\n selector: 'abp-auth-wrapper',\n templateUrl: './auth-wrapper.component.html',\n providers: [AuthWrapperService],\n})\nexport class AuthWrapperComponent implements OnInit {\n constructor(public service: AuthWrapperService) {}\n\n ngOnInit(): void {}\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TenantBoxService } from '@abp/ng.account.core';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n providers: [TenantBoxService],\n})\nexport class TenantBoxComponent implements OnInit {\n constructor(public service: TenantBoxService) {}\n\n ngOnInit(): void {}\n}\n","import { eLayoutType, SubscriptionService } from '@abp/ng.core';\nimport { collapseWithMargin, slideFromBottom } from '@abp/ng.theme.shared';\nimport { AfterViewInit, Component } from '@angular/core';\nimport { LayoutService } from '../../services/layout.service';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './application-layout.component.html',\n animations: [slideFromBottom, collapseWithMargin],\n providers: [LayoutService, SubscriptionService],\n})\nexport class ApplicationLayoutComponent implements AfterViewInit {\n // required for dynamic component\n static type = eLayoutType.application;\n\n constructor(public service: LayoutService) {}\n\n ngAfterViewInit() {\n this.service.subscribeWindowSize();\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 <router-outlet></router-outlet>\n <abp-confirmation></abp-confirmation>\n `,\n})\nexport class EmptyLayoutComponent {\n static type = eLayoutType.empty;\n}\n","import { ApplicationInfo, EnvironmentService } from '@abp/ng.core';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-logo',\n template: `\n <a class=\"navbar-brand\" routerLink=\"/\">\n <img\n *ngIf=\"appInfo.logoUrl; else appName\"\n [src]=\"appInfo.logoUrl\"\n [alt]=\"appInfo.name\"\n width=\"100%\"\n height=\"auto\"\n />\n </a>\n\n <ng-template #appName>\n {{ appInfo.name }}\n </ng-template>\n `,\n})\nexport class LogoComponent {\n get appInfo(): ApplicationInfo {\n return this.environment.getEnvironment().application;\n }\n\n constructor(private environment: EnvironmentService) {}\n}\n","import {\n AuthService,\n ConfigStateService,\n CurrentUserDto,\n NAVIGATE_TO_MANAGE_PROFILE,\n SessionStateService,\n} from '@abp/ng.core';\nimport { Component, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'abp-current-user',\n templateUrl: './current-user.component.html',\n})\nexport class CurrentUserComponent {\n currentUser$: Observable<CurrentUserDto> = this.configState.getOne$('currentUser');\n selectedTenant$ = this.sessionState.getTenant$();\n\n get smallScreen(): boolean {\n return window.innerWidth < 992;\n }\n\n constructor(\n @Inject(NAVIGATE_TO_MANAGE_PROFILE) public navigateToManageProfile,\n private authService: AuthService,\n private configState: ConfigStateService,\n private sessionState: SessionStateService,\n ) {}\n\n navigateToLogin() {\n this.authService.navigateToLogin();\n }\n\n logout() {\n this.authService.logout().subscribe();\n }\n}\n","import { ConfigStateService, LanguageInfo, SessionStateService } from '@abp/ng.core';\nimport { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport snq from 'snq';\n\n@Component({\n selector: 'abp-languages',\n // tslint:disable-next-line: component-max-inline-declarations\n template: `\n <div\n *ngIf=\"(dropdownLanguages$ | async)?.length > 0\"\n class=\"dropdown\"\n ngbDropdown\n #languageDropdown=\"ngbDropdown\"\n display=\"static\"\n >\n <a\n ngbDropdownToggle\n class=\"nav-link\"\n href=\"javascript:void(0)\"\n role=\"button\"\n id=\"dropdownMenuLink\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n {{ defaultLanguage$ | async }}\n </a>\n <div\n class=\"dropdown-menu dropdown-menu-right border-0 shadow-sm\"\n aria-labelledby=\"dropdownMenuLink\"\n [class.d-block]=\"smallScreen && languageDropdown.isOpen()\"\n >\n <a\n *ngFor=\"let lang of dropdownLanguages$ | async\"\n href=\"javascript:void(0)\"\n class=\"dropdown-item\"\n (click)=\"onChangeLang(lang.cultureName)\"\n >{{ lang?.displayName }}</a\n >\n </div>\n </div>\n `,\n})\nexport class LanguagesComponent {\n get smallScreen(): boolean {\n return window.innerWidth < 992;\n }\n\n languages$: Observable<LanguageInfo[]> = this.configState.getDeep$('localization.languages');\n\n get defaultLanguage$(): Observable<string> {\n return this.languages$.pipe(\n map(\n languages =>\n snq(\n () => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName,\n ),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable<LanguageInfo[]> {\n return this.languages$.pipe(\n map(\n languages =>\n snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)),\n [],\n ),\n );\n }\n\n get selectedLangCulture(): string {\n return this.sessionState.getLanguage();\n }\n\n constructor(private sessionState: SessionStateService, private configState: ConfigStateService) {}\n\n onChangeLang(cultureName: string) {\n this.sessionState.setLanguage(cultureName);\n }\n}\n","import { NavItem, NavItemsService } from '@abp/ng.theme.shared';\nimport { Component, Input, TrackByFunction } from '@angular/core';\n\n@Component({\n selector: 'abp-nav-items',\n templateUrl: 'nav-items.component.html',\n})\nexport class NavItemsComponent {\n trackByFn: TrackByFunction<NavItem> = (_, element) => element.id;\n\n constructor(public readonly navItems: NavItemsService) {}\n}\n","import { ABP, RoutesService, TreeNode } from '@abp/ng.core';\nimport {\n Component,\n ElementRef,\n Input,\n QueryList,\n Renderer2,\n TrackByFunction,\n ViewChildren,\n} from '@angular/core';\n\n@Component({\n selector: 'abp-routes',\n templateUrl: 'routes.component.html',\n})\nexport class RoutesComponent {\n @Input() smallScreen: boolean;\n\n @ViewChildren('childrenContainer') childrenContainers: QueryList<ElementRef<HTMLDivElement>>;\n\n trackByFn: TrackByFunction<TreeNode<ABP.Route>> = (_, item) => item.name;\n\n constructor(public readonly routesService: RoutesService, protected renderer: Renderer2) {}\n\n isDropdown(node: TreeNode<ABP.Route>) {\n return !node?.isLeaf || this.routesService.hasChildren(node.name);\n }\n\n closeDropdown() {\n this.childrenContainers.forEach(({ nativeElement }) => {\n this.renderer.addClass(nativeElement, 'd-none');\n setTimeout(() => this.renderer.removeClass(nativeElement, 'd-none'), 0);\n });\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Validation, ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core';\n\n@Component({\n selector: 'abp-validation-error',\n template: `\n <div class=\"invalid-feedback\" *ngFor=\"let error of abpErrors; trackBy: trackByFn\">\n {{ error.message | abpLocalization: error.interpoliteParams }}\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ValidationErrorComponent extends ErrorComponent {\n get abpErrors(): Validation.Error[] & { interpoliteParams?: string[] } {\n if (!this.errors || !this.errors.length) return [];\n\n return this.errors.map(error => {\n if (!error.message) return error;\n\n const index = error.message.indexOf('[');\n\n if (index > -1) {\n return {\n ...error,\n message: error.message.slice(0, index),\n interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(','),\n };\n }\n\n return error;\n });\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { PageAlertService } from '@abp/ng.theme.shared';\n\n@Component({\n selector: 'abp-page-alert-container',\n templateUrl: './page-alert-container.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class PageAlertContainerComponent {\n constructor(public service: PageAlertService) {}\n}\n","import { NavItemsService } from '@abp/ng.theme.shared';\nimport { APP_INITIALIZER } from '@angular/core';\nimport { CurrentUserComponent } from '../components/nav-items/current-user.component';\nimport { LanguagesComponent } from '../components/nav-items/languages.component';\nimport { eThemeBasicComponents } from '../enums/components';\n\nexport const BASIC_THEME_NAV_ITEM_PROVIDERS = [\n {\n provide: APP_INITIALIZER,\n useFactory: configureNavItems,\n deps: [NavItemsService],\n multi: true,\n },\n];\n\nexport function configureNavItems(navItems: NavItemsService) {\n return () => {\n navItems.addItems([\n {\n id: eThemeBasicComponents.Languages,\n order: 100,\n component: LanguagesComponent,\n },\n {\n id: eThemeBasicComponents.CurrentUser,\n order: 100,\n component: CurrentUserComponent,\n },\n ]);\n };\n}\n","export default `\n.content-header-title {\n font-size: 24px;\n}\n.entry-row {\n margin-bottom: 15px;\n}\n#main-navbar-tools a.dropdown-toggle {\n text-decoration: none;\n color: #fff;\n}\n.navbar .dropdown-submenu {\n position: relative;\n}\n.navbar .dropdown-menu {\n margin: 0;\n padding: 0;\n}\n.navbar .dropdown-menu a {\n font-size: .9em;\n padding: 10px 15px;\n display: block;\n min-width: 210px;\n text-align: left;\n border-radius: 0.25rem;\n min-height: 44px;\n}\n[dir=rtl] .navbar .dropdown-menu a {\n text-align: right!important;\n}\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n[dir=rtl] .navbar .dropdown-submenu a::after {\n transform: rotate(90deg);\n left: 16px;\n right: auto;\n top: 20px;\n}\n.navbar .dropdown-submenu .dropdown-menu {\n top: 0;\n left: 100%;\n}\n.card-header .btn {\n padding: 2px 6px;\n}\n.card-header h5 {\n margin: 0;\n}\n.container > .card {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n@media screen and (min-width: 992px) {\n .navbar .dropdown:hover > .dropdown-menu {\n display: block;\n }\n\n .navbar .dropdown-submenu:hover > .dropdown-menu {\n display: block;\n }\n}\n.input-validation-error {\n border-color: #dc3545;\n}\n.field-validation-error {\n font-size: 0.8em;\n}\n.ui-table .ui-table-tbody > tr.empty-row > div.empty-row-content {\n border: 1px solid #c8c8c8;\n }\n.abp-loading {\n background: rgba(0, 0, 0, 0.05);\n}\n.modal-backdrop {\nbackground-color: rgba(0, 0, 0, 0.6);\n}\n\n.confirmation .confirmation-backdrop {\n\t background: rgba(0, 0, 0, 0.7) !important;\n}\n .confirmation .confirmation-dialog {\n\t border: none;\n\t border-radius: 10px;\n\t background-color: #fff;\n\t box-shadow: 0 0 10px -5px rgba(0, 0, 0, 0.5);\n}\n .confirmation .confirmation-dialog .icon-container .icon {\n\t stroke: #fff;\n\t color: #fff;\n}\n .confirmation .confirmation-dialog .icon-container.info .icon {\n\t stroke: #2f96b4;\n\t color: #2f96b4;\n}\n .confirmation .confirmation-dialog .icon-container.success .icon {\n\t stroke: #51a351;\n\t color: #51a351;\n}\n .confirmation .confirmation-dialog .icon-container.warning .icon {\n\t stroke: #f89406;\n\t color: #f89406;\n}\n .confirmation .confirmation-dialog .icon-container.error .icon {\n\t stroke: #bd362f;\n\t color: #bd362f;\n}\n .confirmation .confirmation-dialog .content .title {\n\t color: #222;\n}\n .confirmation .confirmation-dialog .content .message {\n\t color: #777;\n}\n .confirmation .confirmation-dialog .footer {\n\t background: transparent;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button {\n\t background-color: #eee;\n\t color: #777;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button:hover, .confirmation .confirmation-dialog .footer .confirmation-button:focus, .confirmation .confirmation-dialog .footer .confirmation-button:active {\n\t background-color: #bbb;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button--confirm {\n\t background-color: #2f96b4;\n\t color: #fff;\n}\n .confirmation .confirmation-dialog .footer .confirmation-button--confirm:hover {\n\t background-color: #2e819b;\n}\n.ui-table .pagination-wrapper {\n background-color: #f4f4f4;\n border: 1px solid #c8c8c8;\n}\n.bordered .datatable-body-row {\n border-top: 1px solid #eee;\n margin-top: -1px;\n}\n.breadcrumb {\n background-color: transparent;\n padding: 0.27rem;\n}\n`;\n","import { ReplaceableComponentsService, CONTENT_STRATEGY, DomInsertionService } from '@abp/ng.core';\nimport { APP_INITIALIZER } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { AccountLayoutComponent } from '../components/account-layout/account-layout.component';\nimport { ApplicationLayoutComponent } from '../components/application-layout/application-layout.component';\nimport { EmptyLayoutComponent } from '../components/empty-layout/empty-layout.component';\nimport styles from '../constants/styles';\nimport { eThemeBasicComponents } from '../enums/components';\n\nexport const BASIC_THEME_STYLES_PROVIDERS = [\n {\n provide: APP_INITIALIZER,\n useFactory: configureStyles,\n deps: [DomInsertionService, ReplaceableComponentsService],\n multi: true,\n },\n];\n\nexport function configureStyles(\n domInsertion: DomInsertionService,\n replaceableComponents: ReplaceableComponentsService,\n) {\n return () => {\n domInsertion.insertContent(CONTENT_STRATEGY.AppendStyleToHead(styles));\n\n initLayouts(replaceableComponents);\n };\n}\n\nfunction initLayouts(replaceableComponents: ReplaceableComponentsService) {\n replaceableComponents.add({\n key: eThemeBasicComponents.ApplicationLayout,\n component: ApplicationLayoutComponent,\n });\n replaceableComponents.add({\n key: eThemeBasicComponents.AccountLayout,\n component: AccountLayoutComponent,\n });\n replaceableComponents.add({\n key: eThemeBasicComponents.EmptyLayout,\n component: EmptyLayoutComponent,\n });\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport {\n NgxValidateCoreModule,\n VALIDATION_ERROR_TEMPLATE,\n VALIDATION_INVALID_CLASSES,\n VALIDATION_TARGET_SELECTOR,\n} from '@ngx-validate/core';\nimport { AccountLayoutComponent } from './components/account-layout/account-layout.component';\nimport { ApplicationLayoutComponent } from './components/application-layout/application-layout.component';\nimport { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component';\nimport { LogoComponent } from './components/logo/logo.component';\nimport { CurrentUserComponent } from './components/nav-items/current-user.component';\nimport { LanguagesComponent } from './components/nav-items/languages.component';\nimport { NavItemsComponent } from './components/nav-items/nav-items.component';\nimport { RoutesComponent } from './components/routes/routes.component';\nimport { ValidationErrorComponent } from './components/validation-error/validation-error.component';\nimport { BASIC_THEME_NAV_ITEM_PROVIDERS } from './providers/nav-item.provider';\nimport { BASIC_THEME_STYLES_PROVIDERS } from './providers/styles.provider';\nimport { PageAlertContainerComponent } from './components/page-alert-container/page-alert-container.component';\nimport { TenantBoxComponent } from './components/account-layout/tenant-box/tenant-box.component';\nimport { AuthWrapperComponent } from './components/account-layout/auth-wrapper/auth-wrapper.component';\n\nexport const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];\n\n@NgModule({\n declarations: [\n ...LAYOUTS,\n ValidationErrorComponent,\n LogoComponent,\n NavItemsComponent,\n RoutesComponent,\n CurrentUserComponent,\n LanguagesComponent,\n PageAlertContainerComponent,\n TenantBoxComponent,\n AuthWrapperComponent,\n ],\n exports: [\n ...LAYOUTS,\n ValidationErrorComponent,\n LogoComponent,\n NavItemsComponent,\n RoutesComponent,\n CurrentUserComponent,\n LanguagesComponent,\n PageAlertContainerComponent,\n ],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n NgxValidateCoreModule,\n ],\n entryComponents: [...LAYOUTS, ValidationErrorComponent, CurrentUserComponent, LanguagesComponent],\n})\nexport class BaseThemeBasicModule {}\n\n@NgModule({\n exports: [BaseThemeBasicModule],\n imports: [BaseThemeBasicModule],\n})\nexport class ThemeBasicModule {\n static forRoot(): ModuleWithProviders<ThemeBasicModule> {\n return {\n ngModule: ThemeBasicModule,\n providers: [\n BASIC_THEME_NAV_ITEM_PROVIDERS,\n BASIC_THEME_STYLES_PROVIDERS,\n {\n provide: VALIDATION_ERROR_TEMPLATE,\n useValue: ValidationErrorComponent,\n },\n {\n provide: VALIDATION_TARGET_SELECTOR,\n useValue: '.form-group',\n },\n {\n provide: VALIDATION_INVALID_CLASSES,\n useValue: 'is-invalid',\n },\n ],\n };\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"ThemeBasicTestingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","module":"@abp/ng.theme.basic","name":"BaseThemeBasicModule","line":14,"character":12}],"imports":[{"__symbolic":"reference","module":"@abp/ng.theme.basic","name":"BaseThemeBasicModule","line":15,"character":12}]}]}],"members":{},"statics":{"withConfig":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"ThemeBasicTestingModule"},"providers":[{"__symbolic":"reference","module":"@abp/ng.theme.basic","name":"BASIC_THEME_NAV_ITEM_PROVIDERS","line":22,"character":8},{"__symbolic":"reference","module":"@abp/ng.theme.basic","name":"BASIC_THEME_STYLES_PROVIDERS","line":23,"character":8},{"provide":{"__symbolic":"reference","module":"@ngx-validate/core","name":"VALIDATION_ERROR_TEMPLATE","line":25,"character":19},"useValue":{"__symbolic":"reference","module":"@abp/ng.theme.basic","name":"ValidationErrorComponent","line":26,"character":20}},{"provide":{"__symbolic":"reference","module":"@ngx-validate/core","name":"VALIDATION_TARGET_SELECTOR","line":29,"character":19},"useValue":".form-group"},{"provide":{"__symbolic":"reference","module":"@ngx-validate/core","name":"VALIDATION_INVALID_CLASSES","line":33,"character":19},"useValue":"is-invalid"}]}}}}},"origins":{"ThemeBasicTestingModule":"./lib/theme-basic-testing.module"},"importAs":"@abp/ng.theme.basic/testing"}
|