@eo4geo/ngx-bok-utils 1.2.1 → 1.2.2
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.
|
@@ -6,9 +6,9 @@ import * as i5$1 from '@angular/common';
|
|
|
6
6
|
import { CommonModule } from '@angular/common';
|
|
7
7
|
import * as i2 from 'primeng/button';
|
|
8
8
|
import { ButtonModule } from 'primeng/button';
|
|
9
|
-
import * as
|
|
9
|
+
import * as i4$1 from 'primeng/tieredmenu';
|
|
10
10
|
import { TieredMenuModule } from 'primeng/tieredmenu';
|
|
11
|
-
import * as
|
|
11
|
+
import * as i6$1 from 'primeng/avatar';
|
|
12
12
|
import { AvatarModule } from 'primeng/avatar';
|
|
13
13
|
import { AvatarGroupModule } from 'primeng/avatargroup';
|
|
14
14
|
import * as i6 from 'primeng/inputtext';
|
|
@@ -27,12 +27,12 @@ import { Message } from 'primeng/message';
|
|
|
27
27
|
import { Auth, authState, signInWithEmailAndPassword, createUserWithEmailAndPassword, signInWithPopup, GoogleAuthProvider, sendPasswordResetEmail, signOut, updateProfile } from '@angular/fire/auth';
|
|
28
28
|
import { Firestore, collection, doc, getDoc, setDoc, updateDoc, docData, query, where, getDocs, collectionData, deleteDoc } from '@angular/fire/firestore';
|
|
29
29
|
import { BehaviorSubject, switchMap, of, Observable, from, take, Subject, forkJoin, first, map, concatMap, catchError, finalize } from 'rxjs';
|
|
30
|
-
import * as
|
|
30
|
+
import * as i2$1 from '@angular/router';
|
|
31
31
|
import * as i9 from 'primeng/toast';
|
|
32
32
|
import { ToastModule } from 'primeng/toast';
|
|
33
|
-
import * as i2$
|
|
33
|
+
import * as i2$2 from 'primeng/api';
|
|
34
34
|
import { MessageService, ConfirmationService } from 'primeng/api';
|
|
35
|
-
import * as i6$
|
|
35
|
+
import * as i6$3 from 'primeng/card';
|
|
36
36
|
import { CardModule } from 'primeng/card';
|
|
37
37
|
import * as i9$1 from 'primeng/accordion';
|
|
38
38
|
import { AccordionModule } from 'primeng/accordion';
|
|
@@ -42,7 +42,7 @@ import * as i14 from 'primeng/confirmdialog';
|
|
|
42
42
|
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
43
43
|
import * as i10 from 'primeng/tooltip';
|
|
44
44
|
import { TooltipModule } from 'primeng/tooltip';
|
|
45
|
-
import * as i6$
|
|
45
|
+
import * as i6$2 from 'primeng/table';
|
|
46
46
|
import { TableModule } from 'primeng/table';
|
|
47
47
|
import * as i7$1 from 'primeng/toggleswitch';
|
|
48
48
|
import { ToggleSwitchModule } from 'primeng/toggleswitch';
|
|
@@ -331,6 +331,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
331
331
|
|
|
332
332
|
class HeaderComponent {
|
|
333
333
|
userService;
|
|
334
|
+
router;
|
|
334
335
|
items = [
|
|
335
336
|
{
|
|
336
337
|
label: 'Tools',
|
|
@@ -419,6 +420,16 @@ class HeaderComponent {
|
|
|
419
420
|
}
|
|
420
421
|
}
|
|
421
422
|
];
|
|
423
|
+
unregisteredUserItems = [
|
|
424
|
+
{
|
|
425
|
+
label: 'Login',
|
|
426
|
+
icon: 'pi pi-sign-in',
|
|
427
|
+
command: () => {
|
|
428
|
+
this.showLoginModal = !this.showLoginModal;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
];
|
|
432
|
+
buttonItems = this.items.concat(this.unregisteredUserItems);
|
|
422
433
|
toolName = "BoK Visualization & Search";
|
|
423
434
|
login = false;
|
|
424
435
|
profileClick = new EventEmitter();
|
|
@@ -428,13 +439,18 @@ class HeaderComponent {
|
|
|
428
439
|
nameInitial = 'A';
|
|
429
440
|
showLoginModal = false;
|
|
430
441
|
userStateSubscription;
|
|
431
|
-
constructor(userService) {
|
|
442
|
+
constructor(userService, router) {
|
|
432
443
|
this.userService = userService;
|
|
444
|
+
this.router = router;
|
|
433
445
|
}
|
|
434
446
|
ngOnInit() {
|
|
435
447
|
this.userStateSubscription = this.userService.getUserState().subscribe(({ logged, nameInitial }) => {
|
|
436
448
|
this.logged = logged;
|
|
437
449
|
this.nameInitial = nameInitial;
|
|
450
|
+
if (this.logged)
|
|
451
|
+
this.buttonItems = this.items.concat(this.userItems);
|
|
452
|
+
else
|
|
453
|
+
this.buttonItems = this.items.concat(this.unregisteredUserItems);
|
|
438
454
|
});
|
|
439
455
|
}
|
|
440
456
|
ngOnDestroy() {
|
|
@@ -448,13 +464,16 @@ class HeaderComponent {
|
|
|
448
464
|
this.hideMenu = true;
|
|
449
465
|
}
|
|
450
466
|
}
|
|
451
|
-
|
|
452
|
-
|
|
467
|
+
navigateToMainPage() {
|
|
468
|
+
this.router.navigate([''], { replaceUrl: true });
|
|
469
|
+
}
|
|
470
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HeaderComponent, deps: [{ token: UserService }, { token: i2$1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
471
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: HeaderComponent, isStandalone: true, selector: "header", inputs: { items: "items", toolName: "toolName", login: "login" }, outputs: { profileClick: "profileClick", organizationClick: "organizationClick" }, host: { listeners: { "document:click": "clickout($event)" } }, ngImport: i0, template: "<div class=\"header\">\r\n <div class=\"flex align-content-center p-4 mx-4\">\r\n <a href=\"https://www.spacesuite-project.eu/\" target=\"_blank\" class=\"align-self-center\"><img class=\"logo flex align-items-center justify-content-center\" src=\"assets/images/SpaceSUITE_horizontal_color.png\" alt=\"LogoSpaceSUITE\"></a>\r\n <div class=\"hidden xl:flex align-self-center fixed-text\">\r\n <strong class=\"text-2xl overflow-hidden white-space-nowrap text-overflow-ellipsis\" style=\"cursor: pointer;\" (click)=\"navigateToMainPage()\">\r\n {{toolName}}\r\n </strong>\r\n </div>\r\n <div class=\"flex gap-6 ml-auto\">\r\n <div class=\"justify-content-center hidden md:flex\" *ngFor=\"let item of items;\">\r\n <div class=\"flex align-items-center justify-content-center gap-2 text-xl font-bold header-option\" (click)=\"subMenu.toggle($event)\" *ngIf=\"item.label != 'Share'; else share\">\r\n <i [class]=\"item.icon\"></i>\r\n <div>{{item.label}}</div>\r\n <i *ngIf=\"item.items\" class=\"pi pi-angle-down\"></i>\r\n </div>\r\n <p-tieredmenu #subMenu [model]=\"item.items\" [breakpoint]=\"'767px'\" class=\"custom-p-tieredmenu\" [popup]=\"true\" />\r\n <ng-template #share>\r\n <div class=\"flex align-items-center justify-content-center gap-3\">\r\n <div *ngFor=\"let social of item.items;\">\r\n <a [href]=\"social.url\" target=\"_blank\" class=\"flex\">\r\n <i [class]=\"social.icon\" style=\"font-size: 1.25rem\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div *ngIf=\"login\" class=\"hidden md:flex align-items-center justify-content-center\">\r\n <p-avatar *ngIf=\"logged; else loginButton\" [label]=\"nameInitial\" class=\"custom-p-avatar\" shape=\"circle\" (click)=\"userMenu.toggle($event)\"></p-avatar>\r\n </div>\r\n <p-tieredmenu #userMenu [model]=\"userItems\" [breakpoint]=\"'767px'\" class=\"custom-p-tieredmenu\" [popup]=\"true\" />\r\n <ng-template #loginButton>\r\n <p-button class=\"custom-header-button\" size=\"small\" label=\"Login\" aria-label=\"Login\" (onClick)=\"showLoginModal = !showLoginModal\"></p-button>\r\n </ng-template>\r\n </div>\r\n \r\n <p-button #menuButton (click)=\"hideMenu = !hideMenu\" class=\"md:hidden flex align-items-center custom-header-button ml-auto\" icon=\"pi pi-bars\" aria-label=\"Menu\"></p-button>\r\n </div>\r\n <p-tieredmenu #menu [hidden]=\"hideMenu\" [model]=\"buttonItems\" class=\"md:hidden custom-p-tieredmenu\"/>\r\n</div>\r\n\r\n<sessionModal [(visible)]=\"showLoginModal\"></sessionModal>\r\n", styles: [".header{background-color:#fff;color:var(--primary-color);position:relative;top:0;left:0;width:100%}.header:after{content:\"\";position:absolute;bottom:0;left:2rem;right:2rem;height:1px;background-color:#0000001a}.header a{color:var(--primary-color);cursor:pointer;text-decoration:none}.header a:hover{color:var(--hover-color)}.logo{width:auto;height:50px}.custom-header-button{--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}.header-option:hover{color:var(--hover-color);cursor:pointer}.custom-p-tieredmenu{--p-tieredmenu-item-icon-color: var(--primary-color);--p-tieredmenu-item-icon-active-color: var(--hover-color);--p-tieredmenu-item-icon-focus-color: var(--hover-color);--p-tieredmenu-item-color: var(--primary-color);--p-tieredmenu-item-active-color: var(--hover-color);--p-tieredmenu-item-focus-color: var(--hover-color)}.custom-p-avatar{color:var(--primary-color);cursor:pointer}.custom-p-avatar:hover{color:var(--hover-color)}.fixed-text{position:absolute;left:50%;transform:translate(-50%);z-index:10;max-width:20%}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: TieredMenuModule }, { kind: "component", type: i4$1.TieredMenu, selector: "p-tieredMenu, p-tieredmenu, p-tiered-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "breakpoint", "autoZIndex", "baseZIndex", "autoDisplay", "showTransitionOptions", "hideTransitionOptions", "id", "ariaLabel", "ariaLabelledBy", "disabled", "tabindex"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i6$1.Avatar, selector: "p-avatar", inputs: ["label", "icon", "image", "size", "shape", "style", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "ngmodule", type: AvatarGroupModule }, { kind: "component", type: SessionModalComponent, selector: "sessionModal", inputs: ["visible"], outputs: ["visibleChange"] }] });
|
|
453
472
|
}
|
|
454
473
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
455
474
|
type: Component,
|
|
456
|
-
args: [{ standalone: true, selector: 'header', imports: [ButtonModule, TieredMenuModule, CommonModule, AvatarModule, AvatarGroupModule, SessionModalComponent], template: "<div class=\"header\">\r\n <div class=\"flex align-content-center p-4 mx-4\">\r\n <a href=\"https://www.spacesuite-project.eu/\" target=\"_blank\" class=\"align-self-center\"><img class=\"logo flex align-items-center justify-content-center\" src=\"assets/images/SpaceSUITE_horizontal_color.png\" alt=\"LogoSpaceSUITE\"></a>\r\n <div class=\"hidden xl:flex align-self-center fixed-text\">\r\n <strong class=\"text-2xl overflow-hidden white-space-nowrap text-overflow-ellipsis\">\r\n {{toolName}}\r\n </strong>\r\n </div>\r\n <div class=\"flex gap-6 ml-auto\">\r\n <div class=\"justify-content-center hidden md:flex\" *ngFor=\"let item of items;\">\r\n <div class=\"flex align-items-center justify-content-center gap-2 text-xl font-bold header-option\" (click)=\"subMenu.toggle($event)\" *ngIf=\"item.label != 'Share'; else share\">\r\n <i [class]=\"item.icon\"></i>\r\n <div>{{item.label}}</div>\r\n <i *ngIf=\"item.items\" class=\"pi pi-angle-down\"></i>\r\n </div>\r\n <p-tieredmenu #subMenu [model]=\"item.items\" [breakpoint]=\"'767px'\" class=\"custom-p-tieredmenu\" [popup]=\"true\" />\r\n <ng-template #share>\r\n <div class=\"flex align-items-center justify-content-center gap-3\">\r\n <div *ngFor=\"let social of item.items;\">\r\n <a [href]=\"social.url\" target=\"_blank\" class=\"flex\">\r\n <i [class]=\"social.icon\" style=\"font-size: 1.25rem\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div *ngIf=\"login\" class=\"hidden md:flex align-items-center justify-content-center\">\r\n <p-avatar *ngIf=\"logged; else loginButton\" [label]=\"nameInitial\" class=\"custom-p-avatar\" shape=\"circle\" (click)=\"userMenu.toggle($event)\"></p-avatar>\r\n </div>\r\n <p-tieredmenu #userMenu [model]=\"userItems\" [breakpoint]=\"'767px'\" class=\"custom-p-tieredmenu\" [popup]=\"true\" />\r\n <ng-template #loginButton>\r\n <p-button class=\"custom-header-button\" size=\"small\" label=\"Login\" aria-label=\"Login\" (onClick)=\"showLoginModal = !showLoginModal\"></p-button>\r\n </ng-template>\r\n </div>\r\n \r\n <p-button #menuButton (click)=\"hideMenu = !hideMenu\" class=\"md:hidden flex align-items-center custom-header-button ml-auto\" icon=\"pi pi-bars\" aria-label=\"Menu\"></p-button>\r\n </div>\r\n <p-tieredmenu #menu [hidden]=\"hideMenu\" [model]=\"
|
|
457
|
-
}], ctorParameters: () => [{ type: UserService }], propDecorators: { items: [{
|
|
475
|
+
args: [{ standalone: true, selector: 'header', imports: [ButtonModule, TieredMenuModule, CommonModule, AvatarModule, AvatarGroupModule, SessionModalComponent], template: "<div class=\"header\">\r\n <div class=\"flex align-content-center p-4 mx-4\">\r\n <a href=\"https://www.spacesuite-project.eu/\" target=\"_blank\" class=\"align-self-center\"><img class=\"logo flex align-items-center justify-content-center\" src=\"assets/images/SpaceSUITE_horizontal_color.png\" alt=\"LogoSpaceSUITE\"></a>\r\n <div class=\"hidden xl:flex align-self-center fixed-text\">\r\n <strong class=\"text-2xl overflow-hidden white-space-nowrap text-overflow-ellipsis\" style=\"cursor: pointer;\" (click)=\"navigateToMainPage()\">\r\n {{toolName}}\r\n </strong>\r\n </div>\r\n <div class=\"flex gap-6 ml-auto\">\r\n <div class=\"justify-content-center hidden md:flex\" *ngFor=\"let item of items;\">\r\n <div class=\"flex align-items-center justify-content-center gap-2 text-xl font-bold header-option\" (click)=\"subMenu.toggle($event)\" *ngIf=\"item.label != 'Share'; else share\">\r\n <i [class]=\"item.icon\"></i>\r\n <div>{{item.label}}</div>\r\n <i *ngIf=\"item.items\" class=\"pi pi-angle-down\"></i>\r\n </div>\r\n <p-tieredmenu #subMenu [model]=\"item.items\" [breakpoint]=\"'767px'\" class=\"custom-p-tieredmenu\" [popup]=\"true\" />\r\n <ng-template #share>\r\n <div class=\"flex align-items-center justify-content-center gap-3\">\r\n <div *ngFor=\"let social of item.items;\">\r\n <a [href]=\"social.url\" target=\"_blank\" class=\"flex\">\r\n <i [class]=\"social.icon\" style=\"font-size: 1.25rem\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div *ngIf=\"login\" class=\"hidden md:flex align-items-center justify-content-center\">\r\n <p-avatar *ngIf=\"logged; else loginButton\" [label]=\"nameInitial\" class=\"custom-p-avatar\" shape=\"circle\" (click)=\"userMenu.toggle($event)\"></p-avatar>\r\n </div>\r\n <p-tieredmenu #userMenu [model]=\"userItems\" [breakpoint]=\"'767px'\" class=\"custom-p-tieredmenu\" [popup]=\"true\" />\r\n <ng-template #loginButton>\r\n <p-button class=\"custom-header-button\" size=\"small\" label=\"Login\" aria-label=\"Login\" (onClick)=\"showLoginModal = !showLoginModal\"></p-button>\r\n </ng-template>\r\n </div>\r\n \r\n <p-button #menuButton (click)=\"hideMenu = !hideMenu\" class=\"md:hidden flex align-items-center custom-header-button ml-auto\" icon=\"pi pi-bars\" aria-label=\"Menu\"></p-button>\r\n </div>\r\n <p-tieredmenu #menu [hidden]=\"hideMenu\" [model]=\"buttonItems\" class=\"md:hidden custom-p-tieredmenu\"/>\r\n</div>\r\n\r\n<sessionModal [(visible)]=\"showLoginModal\"></sessionModal>\r\n", styles: [".header{background-color:#fff;color:var(--primary-color);position:relative;top:0;left:0;width:100%}.header:after{content:\"\";position:absolute;bottom:0;left:2rem;right:2rem;height:1px;background-color:#0000001a}.header a{color:var(--primary-color);cursor:pointer;text-decoration:none}.header a:hover{color:var(--hover-color)}.logo{width:auto;height:50px}.custom-header-button{--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}.header-option:hover{color:var(--hover-color);cursor:pointer}.custom-p-tieredmenu{--p-tieredmenu-item-icon-color: var(--primary-color);--p-tieredmenu-item-icon-active-color: var(--hover-color);--p-tieredmenu-item-icon-focus-color: var(--hover-color);--p-tieredmenu-item-color: var(--primary-color);--p-tieredmenu-item-active-color: var(--hover-color);--p-tieredmenu-item-focus-color: var(--hover-color)}.custom-p-avatar{color:var(--primary-color);cursor:pointer}.custom-p-avatar:hover{color:var(--hover-color)}.fixed-text{position:absolute;left:50%;transform:translate(-50%);z-index:10;max-width:20%}\n"] }]
|
|
476
|
+
}], ctorParameters: () => [{ type: UserService }, { type: i2$1.Router }], propDecorators: { items: [{
|
|
458
477
|
type: Input
|
|
459
478
|
}], toolName: [{
|
|
460
479
|
type: Input
|
|
@@ -477,13 +496,13 @@ class NotFoundPageComponent {
|
|
|
477
496
|
goToHomepage() {
|
|
478
497
|
this.router.navigate([''], { replaceUrl: true });
|
|
479
498
|
}
|
|
480
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NotFoundPageComponent, deps: [{ token:
|
|
499
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NotFoundPageComponent, deps: [{ token: i2$1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
481
500
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: NotFoundPageComponent, isStandalone: true, selector: "not-found-page", ngImport: i0, template: "<div class=\"flex flex-column justify-content-center align-items-center m-8\">\r\n <img src=\"assets/images/hosting-404-error-1.png\" alt=\"not Found\" class=\"w-4 m-4\">\r\n <h1>page not found</h1>\r\n <p-button label=\"Go To Homepage\" size=\"large\" class=\"custom-button\" (onClick)=\"goToHomepage()\"></p-button>\r\n</div>", styles: [".custom-button{--p-button-primary-color: white;--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }] });
|
|
482
501
|
}
|
|
483
502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NotFoundPageComponent, decorators: [{
|
|
484
503
|
type: Component,
|
|
485
504
|
args: [{ standalone: true, selector: 'not-found-page', imports: [ButtonModule], template: "<div class=\"flex flex-column justify-content-center align-items-center m-8\">\r\n <img src=\"assets/images/hosting-404-error-1.png\" alt=\"not Found\" class=\"w-4 m-4\">\r\n <h1>page not found</h1>\r\n <p-button label=\"Go To Homepage\" size=\"large\" class=\"custom-button\" (onClick)=\"goToHomepage()\"></p-button>\r\n</div>", styles: [".custom-button{--p-button-primary-color: white;--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}\n"] }]
|
|
486
|
-
}], ctorParameters: () => [{ type:
|
|
505
|
+
}], ctorParameters: () => [{ type: i2$1.Router }] });
|
|
487
506
|
|
|
488
507
|
class UserPageComponent {
|
|
489
508
|
userService;
|
|
@@ -527,13 +546,13 @@ class UserPageComponent {
|
|
|
527
546
|
});
|
|
528
547
|
}
|
|
529
548
|
}
|
|
530
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: UserPageComponent, deps: [{ token: UserService }, { token: i2$
|
|
549
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: UserPageComponent, deps: [{ token: UserService }, { token: i2$2.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
531
550
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: UserPageComponent, isStandalone: true, selector: "user-page", providers: [MessageService], ngImport: i0, template: "<p-toast class=\"custom-toast\" position=\"bottom-right\"/>\r\n<div class=\"flex flex-column align-items-center justify-content-center p-4\">\r\n <h2>User Profile</h2>\r\n <div class=\"flex gap-4\">\r\n <p-floatlabel variant=\"on\" class=\"custom-floatlabel\">\r\n <p-iconfield>\r\n <p-inputicon class=\"pi pi-envelope\" />\r\n <input pInputText id=\"email\" [disabled]=\"true\" autocomplete=\"off\" class=\"w-full max-w-25rem custom-input\" [(ngModel)]=\"email\"/>\r\n </p-iconfield>\r\n <label for=\"email\">Email</label>\r\n </p-floatlabel>\r\n </div>\r\n <div class=\"flex gap-4 mt-4 mb-4\">\r\n <p-floatlabel variant=\"on\" class=\"custom-floatlabel\">\r\n <p-iconfield>\r\n <p-inputicon class=\"pi pi-user\" />\r\n <input pInputText id=\"password\" [disabled]=\"email == ''\" autocomplete=\"off\" class=\"w-full max-w-25rem custom-input\" [(ngModel)]=\"newName\"/>\r\n </p-iconfield>\r\n <label for=\"password\">Name</label>\r\n </p-floatlabel>\r\n </div>\r\n <p-button class=\"custom-button\" label=\"Update Name\" [disabled]=\"(name == newName || email == '')\" (click)=\"updateName()\" />\r\n</div>", styles: [".custom-input{--p-inputtext-focus-border-color: var(--hover-color);--p-inputtext-hover-border-color: var(--hover-color)}.custom-floatlabel{--p-floatlabel-focus-color: var(--hover-color)}.custom-secondary-button{--p-button-secondary-hover-color: var(--primary-color);--p-button-secondary-active-color: var(--primary-color)}.custom-button{--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}a{cursor:pointer}a:hover{color:var(--hover-color)}.custom-toast{--p-toast-info-background: color-mix(in srgb, var(--secondary-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-info-border-color: var(--secondary-color);--p-toast-info-color: var(--secondary-color);--p-toast-info-detail-color: var(--primary-color);--p-toast-error-background: color-mix(in srgb, var(--danger-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-error-border-color: var(--danger-color);--p-toast-error-color: var(--danger-color);--p-toast-error-detail-color: var(--primary-color)}::ng-deep .p-toast-close-button .p-button-label{font-size:0}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: InputIconModule }, { kind: "component", type: i4.InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["styleClass"] }, { kind: "ngmodule", type: IconFieldModule }, { kind: "component", type: i5.IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["iconPosition", "styleClass"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i6.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i7.FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }] });
|
|
532
551
|
}
|
|
533
552
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: UserPageComponent, decorators: [{
|
|
534
553
|
type: Component,
|
|
535
554
|
args: [{ standalone: true, selector: 'user-page', imports: [ButtonModule, InputIconModule, IconFieldModule, InputTextModule, FloatLabelModule, FormsModule, CommonModule, ToastModule], providers: [MessageService], template: "<p-toast class=\"custom-toast\" position=\"bottom-right\"/>\r\n<div class=\"flex flex-column align-items-center justify-content-center p-4\">\r\n <h2>User Profile</h2>\r\n <div class=\"flex gap-4\">\r\n <p-floatlabel variant=\"on\" class=\"custom-floatlabel\">\r\n <p-iconfield>\r\n <p-inputicon class=\"pi pi-envelope\" />\r\n <input pInputText id=\"email\" [disabled]=\"true\" autocomplete=\"off\" class=\"w-full max-w-25rem custom-input\" [(ngModel)]=\"email\"/>\r\n </p-iconfield>\r\n <label for=\"email\">Email</label>\r\n </p-floatlabel>\r\n </div>\r\n <div class=\"flex gap-4 mt-4 mb-4\">\r\n <p-floatlabel variant=\"on\" class=\"custom-floatlabel\">\r\n <p-iconfield>\r\n <p-inputicon class=\"pi pi-user\" />\r\n <input pInputText id=\"password\" [disabled]=\"email == ''\" autocomplete=\"off\" class=\"w-full max-w-25rem custom-input\" [(ngModel)]=\"newName\"/>\r\n </p-iconfield>\r\n <label for=\"password\">Name</label>\r\n </p-floatlabel>\r\n </div>\r\n <p-button class=\"custom-button\" label=\"Update Name\" [disabled]=\"(name == newName || email == '')\" (click)=\"updateName()\" />\r\n</div>", styles: [".custom-input{--p-inputtext-focus-border-color: var(--hover-color);--p-inputtext-hover-border-color: var(--hover-color)}.custom-floatlabel{--p-floatlabel-focus-color: var(--hover-color)}.custom-secondary-button{--p-button-secondary-hover-color: var(--primary-color);--p-button-secondary-active-color: var(--primary-color)}.custom-button{--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}a{cursor:pointer}a:hover{color:var(--hover-color)}.custom-toast{--p-toast-info-background: color-mix(in srgb, var(--secondary-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-info-border-color: var(--secondary-color);--p-toast-info-color: var(--secondary-color);--p-toast-info-detail-color: var(--primary-color);--p-toast-error-background: color-mix(in srgb, var(--danger-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-error-border-color: var(--danger-color);--p-toast-error-color: var(--danger-color);--p-toast-error-detail-color: var(--primary-color)}::ng-deep .p-toast-close-button .p-button-label{font-size:0}\n"] }]
|
|
536
|
-
}], ctorParameters: () => [{ type: UserService }, { type: i2$
|
|
555
|
+
}], ctorParameters: () => [{ type: UserService }, { type: i2$2.MessageService }] });
|
|
537
556
|
|
|
538
557
|
class OrganizationFormComponent {
|
|
539
558
|
organization;
|
|
@@ -1124,14 +1143,14 @@ class OrganizationAdminComponent {
|
|
|
1124
1143
|
}
|
|
1125
1144
|
})).subscribe();
|
|
1126
1145
|
}
|
|
1127
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: OrganizationAdminComponent, deps: [{ token: OrganizationService }, { token: UserService }, { token: i2$
|
|
1128
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: OrganizationAdminComponent, isStandalone: true, selector: "organization-admin", inputs: { organization: "organization" }, providers: [ConfirmationService], ngImport: i0, template: "<p-confirmdialog />\r\n\r\n<div class=\"mt-4\" *ngIf=\"inplaceIndicator; else AdminContent\">\r\n <p-accordion [value]=\"[]\" [multiple]=\"true\" class=\"custom-acordion\">\r\n <p-accordion-panel value=\"0\">\r\n <p-accordion-header>Description</p-accordion-header>\r\n <p-accordion-content>\r\n <organization-form [organization]=\"organization\" [descriptionError]=\"descriptionError\" (formChange)=\"updateDescription($event)\"></organization-form>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n <p-accordion-panel value=\"1\">\r\n <p-accordion-header>Users</p-accordion-header>\r\n <p-accordion-content>\r\n <div class=\"flex flex-wrap my-3 justify-content-center align-items-center gap-4\">\r\n <p-floatlabel variant=\"on\" [class]=\"userError ? 'custom-floatlabel error-floatlabel' : 'custom-floatlabel'\">\r\n <p-iconfield>\r\n <p-inputicon class=\"pi pi-envelope\" />\r\n <input pInputText id=\"nDivision\" autocomplete=\"off\" class=\"w-full max-w-25rem\" [class]=\"userError ? 'custom-input error-input' : 'custom-input'\" \r\n [(ngModel)]=\"newUser\" (ngModelChange)=\"userError = false;\"/>\r\n </p-iconfield>\r\n <label for=\"nDivision\">User Email</label>\r\n </p-floatlabel>\r\n <p-button class=\"custom-button\" label=\"Add User\" size=\"small\" [disabled]=\"!newUser\" (onClick)=\"addUserToOrganization()\"/>\r\n </div>\r\n <p-table [value]=\"users\" [paginator]=\"true\" [rows]=\"5\" class=\"custom-table\">\r\n <ng-template #header>\r\n <tr>\r\n <th>Email</th>\r\n <th>Name</th>\r\n <th>Admin</th>\r\n <th style=\"width: 5rem\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-user>\r\n <tr >\r\n <td>{{ user.email }}</td>\r\n <td>{{ user.name }}</td>\r\n <td>\r\n <p-toggleswitch class=\"custom-toogle\" [(ngModel)]=\"user.isAdmin\" (onChange)=\"switchAdminState(user._id, user.name, $event.checked)\"/>\r\n </td>\r\n <td>\r\n <p-button class=\"flex trash-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-trash\" [disabled]=\"isCurrentUser(user._id)\" (onClick)=\"deleteUserModal($event, user._id, user.name)\"/>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n <p-accordion-panel value=\"2\">\r\n <p-accordion-header>Divisions</p-accordion-header>\r\n <p-accordion-content>\r\n <div class=\"flex flex-wrap my-3 justify-content-center align-items-center gap-4\">\r\n <p-floatlabel variant=\"on\" [class]=\"divisionError ? 'custom-floatlabel error-floatlabel' : 'custom-floatlabel'\">\r\n <p-iconfield>\r\n <p-inputicon class=\"pi pi-pencil\" />\r\n <input pInputText id=\"nDivision\" autocomplete=\"off\" class=\"w-full max-w-25rem\" [class]=\"divisionError ? 'custom-input error-input' : 'custom-input'\" \r\n [(ngModel)]=\"newDivision\" (ngModelChange)=\"divisionError = false;\"/>\r\n </p-iconfield>\r\n <label for=\"nDivision\">New Division</label>\r\n </p-floatlabel>\r\n <p-button class=\"custom-button\" label=\"Add Division\" size=\"small\" [disabled]=\"!newDivision\" (onClick)=\"addDivision()\"/>\r\n </div>\r\n <p-table [value]=\"divisions\" [paginator]=\"true\" [rows]=\"5\" class=\"custom-table\">\r\n <ng-template #header>\r\n <tr>\r\n <th>Name</th>\r\n <th style=\"width: 5rem\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-division>\r\n <tr >\r\n <td>{{ division }}</td>\r\n <td>\r\n <p-button class=\"flex trash-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-trash\" (onClick)=\"deleteDivisionModal($event, division)\"/>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n </p-accordion>\r\n \r\n <div class=\"flex justify-content-between align-items-center mt-4 gap-4\">\r\n <div class=\"custom-inplace-display\" (click)=\"inplaceIndicator = false\">Collapse</div>\r\n <p-button class=\"delete-button\" label=\"Delete Organization\" size=\"small\" (onClick)=\"deleteOrganizationModal($event)\"/>\r\n </div>\r\n</div>\r\n\r\n<ng-template #AdminContent>\r\n <p class=\"mb-0 custom-inplace-display\" (click)=\"inplaceIndicator = true\">Admin Content</p>\r\n</ng-template>", styles: [".custom-button{--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}.delete-button{--p-button-primary-background: var(--danger-color);--p-button-primary-border-color: var(--danger-color);--p-button-primary-hover-background: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-hover-border-color: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-active-background: color-mix(in srgb, var(--danger-color) 70%, black 30%);--p-button-primary-active-border-color: color-mix(in srgb, var(--danger-color) 80%, black 20%)}.trash-button{--p-button-text-primary-color: var(--danger-color);--p-button-text-primary-hover-background: color-mix(in srgb, var(--danger-color) 10%, rgba(255, 255, 255, 0) 90%);--p-button-text-primary-active-background: color-mix(in srgb, var(--danger-color) 20%, rgba(255, 255, 255, 0) 80%)}.custom-toogle{--p-toggleswitch-checked-border-color: var(--secondary-color);--p-toggleswitch-checked-hover-border-color: var(--hover-color);--p-toggleswitch-checked-background: var(--secondary-color);--p-toggleswitch-checked-hover-background: var(--hover-color)}.custom-acordion{--p-accordion-header-color: color-mix(in srgb, var(--primary-color) 60%, rgba(255, 255, 255, 0) 40%);--p-accordion-header-hover-color: var(--hover-color);--p-accordion-header-active-color: var(--primary-color);--p-accordion-content-color: var(--primary-color)}.custom-table{--p-datatable-header-cell-color: var(--primary-color);--p-datatable-row-color: var(--primary-color);--p-paginator-nav-button-color: color-mix(in srgb, var(--primary-color) 60%, rgba(255, 255, 255, 0) 40%);--p-paginator-nav-button-selected-background: color-mix(in srgb, var(--hover-color) 10%, rgba(255, 255, 255, 0) 90%);--p-paginator-nav-button-hover-background: color-mix(in srgb, var(--secondary-color) 10%, rgba(255, 255, 255, 0) 90%)}.custom-input{--p-inputtext-focus-border-color: var(--hover-color);--p-inputtext-hover-border-color: var(--hover-color)}.custom-floatlabel{--p-floatlabel-focus-color: var(--hover-color)}.error-input{--p-inputtext-border-color: var(--danger-color)}.error-floatlabel{--p-floatlabel-color: var(--danger-color)}::ng-deep .p-confirmdialog{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-confirmdialog-icon{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-button{--p-button-primary-background: var(--danger-color);--p-button-primary-border-color: var(--danger-color);--p-button-primary-hover-background: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-hover-border-color: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-active-background: color-mix(in srgb, var(--danger-color) 70%, black 30%);--p-button-primary-active-border-color: color-mix(in srgb, var(--danger-color) 80%, black 20%)}.custom-inplace-display{display:block!important;max-width:fit-content;white-space:nowrap;cursor:pointer;color:var(--secondary-color);padding:0!important;border:none!important;border-radius:.1rem;outline:none}.custom-inplace-display:hover,.custom-inplace-display:focus{color:var(--hover-color)}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i6$1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "ngmodule", type: ToggleSwitchModule }, { kind: "component", type: i7$1.ToggleSwitch, selector: "p-toggleswitch, p-toggleSwitch, p-toggle-switch", inputs: ["style", "styleClass", "tabindex", "inputId", "name", "disabled", "readonly", "trueValue", "falseValue", "ariaLabel", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AccordionModule }, { kind: "component", type: i9$1.Accordion, selector: "p-accordion", inputs: ["value", "multiple", "style", "styleClass", "expandIcon", "collapseIcon", "selectOnFocus", "transitionOptions", "activeIndex", "headerAriaLevel"], outputs: ["valueChange", "activeIndexChange", "onClose", "onOpen"] }, { kind: "component", type: i9$1.AccordionPanel, selector: "p-accordion-panel, p-accordionpanel", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: i9$1.AccordionHeader, selector: "p-accordion-header, p-accordionheader" }, { kind: "component", type: i9$1.AccordionContent, selector: "p-accordion-content, p-accordioncontent" }, { kind: "ngmodule", type: InputIconModule }, { kind: "component", type: i4.InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["styleClass"] }, { kind: "ngmodule", type: IconFieldModule }, { kind: "component", type: i5.IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["iconPosition", "styleClass"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i6.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i7.FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i14.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "component", type: OrganizationFormComponent, selector: "organization-form", inputs: ["organization", "descriptionError", "buttonLabel", "validationFunction"], outputs: ["formChange"] }] });
|
|
1146
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: OrganizationAdminComponent, deps: [{ token: OrganizationService }, { token: UserService }, { token: i2$2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1147
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: OrganizationAdminComponent, isStandalone: true, selector: "organization-admin", inputs: { organization: "organization" }, providers: [ConfirmationService], ngImport: i0, template: "<p-confirmdialog />\r\n\r\n<div class=\"mt-4\" *ngIf=\"inplaceIndicator; else AdminContent\">\r\n <p-accordion [value]=\"[]\" [multiple]=\"true\" class=\"custom-acordion\">\r\n <p-accordion-panel value=\"0\">\r\n <p-accordion-header>Description</p-accordion-header>\r\n <p-accordion-content>\r\n <organization-form [organization]=\"organization\" [descriptionError]=\"descriptionError\" (formChange)=\"updateDescription($event)\"></organization-form>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n <p-accordion-panel value=\"1\">\r\n <p-accordion-header>Users</p-accordion-header>\r\n <p-accordion-content>\r\n <div class=\"flex flex-wrap my-3 justify-content-center align-items-center gap-4\">\r\n <p-floatlabel variant=\"on\" [class]=\"userError ? 'custom-floatlabel error-floatlabel' : 'custom-floatlabel'\">\r\n <p-iconfield>\r\n <p-inputicon class=\"pi pi-envelope\" />\r\n <input pInputText id=\"nDivision\" autocomplete=\"off\" class=\"w-full max-w-25rem\" [class]=\"userError ? 'custom-input error-input' : 'custom-input'\" \r\n [(ngModel)]=\"newUser\" (ngModelChange)=\"userError = false;\"/>\r\n </p-iconfield>\r\n <label for=\"nDivision\">User Email</label>\r\n </p-floatlabel>\r\n <p-button class=\"custom-button\" label=\"Add User\" size=\"small\" [disabled]=\"!newUser\" (onClick)=\"addUserToOrganization()\"/>\r\n </div>\r\n <p-table [value]=\"users\" [paginator]=\"true\" [rows]=\"5\" class=\"custom-table\">\r\n <ng-template #header>\r\n <tr>\r\n <th>Email</th>\r\n <th>Name</th>\r\n <th>Admin</th>\r\n <th style=\"width: 5rem\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-user>\r\n <tr >\r\n <td>{{ user.email }}</td>\r\n <td>{{ user.name }}</td>\r\n <td>\r\n <p-toggleswitch class=\"custom-toogle\" [(ngModel)]=\"user.isAdmin\" (onChange)=\"switchAdminState(user._id, user.name, $event.checked)\"/>\r\n </td>\r\n <td>\r\n <p-button class=\"flex trash-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-trash\" [disabled]=\"isCurrentUser(user._id)\" (onClick)=\"deleteUserModal($event, user._id, user.name)\"/>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n <p-accordion-panel value=\"2\">\r\n <p-accordion-header>Divisions</p-accordion-header>\r\n <p-accordion-content>\r\n <div class=\"flex flex-wrap my-3 justify-content-center align-items-center gap-4\">\r\n <p-floatlabel variant=\"on\" [class]=\"divisionError ? 'custom-floatlabel error-floatlabel' : 'custom-floatlabel'\">\r\n <p-iconfield>\r\n <p-inputicon class=\"pi pi-pencil\" />\r\n <input pInputText id=\"nDivision\" autocomplete=\"off\" class=\"w-full max-w-25rem\" [class]=\"divisionError ? 'custom-input error-input' : 'custom-input'\" \r\n [(ngModel)]=\"newDivision\" (ngModelChange)=\"divisionError = false;\"/>\r\n </p-iconfield>\r\n <label for=\"nDivision\">New Division</label>\r\n </p-floatlabel>\r\n <p-button class=\"custom-button\" label=\"Add Division\" size=\"small\" [disabled]=\"!newDivision\" (onClick)=\"addDivision()\"/>\r\n </div>\r\n <p-table [value]=\"divisions\" [paginator]=\"true\" [rows]=\"5\" class=\"custom-table\">\r\n <ng-template #header>\r\n <tr>\r\n <th>Name</th>\r\n <th style=\"width: 5rem\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-division>\r\n <tr >\r\n <td>{{ division }}</td>\r\n <td>\r\n <p-button class=\"flex trash-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-trash\" (onClick)=\"deleteDivisionModal($event, division)\"/>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n </p-accordion>\r\n \r\n <div class=\"flex justify-content-between align-items-center mt-4 gap-4\">\r\n <div class=\"custom-inplace-display\" (click)=\"inplaceIndicator = false\">Collapse</div>\r\n <p-button class=\"delete-button\" label=\"Delete Organization\" size=\"small\" (onClick)=\"deleteOrganizationModal($event)\"/>\r\n </div>\r\n</div>\r\n\r\n<ng-template #AdminContent>\r\n <p class=\"mb-0 custom-inplace-display\" (click)=\"inplaceIndicator = true\">Admin Content</p>\r\n</ng-template>", styles: [".custom-button{--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}.delete-button{--p-button-primary-background: var(--danger-color);--p-button-primary-border-color: var(--danger-color);--p-button-primary-hover-background: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-hover-border-color: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-active-background: color-mix(in srgb, var(--danger-color) 70%, black 30%);--p-button-primary-active-border-color: color-mix(in srgb, var(--danger-color) 80%, black 20%)}.trash-button{--p-button-text-primary-color: var(--danger-color);--p-button-text-primary-hover-background: color-mix(in srgb, var(--danger-color) 10%, rgba(255, 255, 255, 0) 90%);--p-button-text-primary-active-background: color-mix(in srgb, var(--danger-color) 20%, rgba(255, 255, 255, 0) 80%)}.custom-toogle{--p-toggleswitch-checked-border-color: var(--secondary-color);--p-toggleswitch-checked-hover-border-color: var(--hover-color);--p-toggleswitch-checked-background: var(--secondary-color);--p-toggleswitch-checked-hover-background: var(--hover-color)}.custom-acordion{--p-accordion-header-color: color-mix(in srgb, var(--primary-color) 60%, rgba(255, 255, 255, 0) 40%);--p-accordion-header-hover-color: var(--hover-color);--p-accordion-header-active-color: var(--primary-color);--p-accordion-content-color: var(--primary-color)}.custom-table{--p-datatable-header-cell-color: var(--primary-color);--p-datatable-row-color: var(--primary-color);--p-paginator-nav-button-color: color-mix(in srgb, var(--primary-color) 60%, rgba(255, 255, 255, 0) 40%);--p-paginator-nav-button-selected-background: color-mix(in srgb, var(--hover-color) 10%, rgba(255, 255, 255, 0) 90%);--p-paginator-nav-button-hover-background: color-mix(in srgb, var(--secondary-color) 10%, rgba(255, 255, 255, 0) 90%)}.custom-input{--p-inputtext-focus-border-color: var(--hover-color);--p-inputtext-hover-border-color: var(--hover-color)}.custom-floatlabel{--p-floatlabel-focus-color: var(--hover-color)}.error-input{--p-inputtext-border-color: var(--danger-color)}.error-floatlabel{--p-floatlabel-color: var(--danger-color)}::ng-deep .p-confirmdialog{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-confirmdialog-icon{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-button{--p-button-primary-background: var(--danger-color);--p-button-primary-border-color: var(--danger-color);--p-button-primary-hover-background: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-hover-border-color: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-active-background: color-mix(in srgb, var(--danger-color) 70%, black 30%);--p-button-primary-active-border-color: color-mix(in srgb, var(--danger-color) 80%, black 20%)}.custom-inplace-display{display:block!important;max-width:fit-content;white-space:nowrap;cursor:pointer;color:var(--secondary-color);padding:0!important;border:none!important;border-radius:.1rem;outline:none}.custom-inplace-display:hover,.custom-inplace-display:focus{color:var(--hover-color)}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i6$2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "ngmodule", type: ToggleSwitchModule }, { kind: "component", type: i7$1.ToggleSwitch, selector: "p-toggleswitch, p-toggleSwitch, p-toggle-switch", inputs: ["style", "styleClass", "tabindex", "inputId", "name", "disabled", "readonly", "trueValue", "falseValue", "ariaLabel", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AccordionModule }, { kind: "component", type: i9$1.Accordion, selector: "p-accordion", inputs: ["value", "multiple", "style", "styleClass", "expandIcon", "collapseIcon", "selectOnFocus", "transitionOptions", "activeIndex", "headerAriaLevel"], outputs: ["valueChange", "activeIndexChange", "onClose", "onOpen"] }, { kind: "component", type: i9$1.AccordionPanel, selector: "p-accordion-panel, p-accordionpanel", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: i9$1.AccordionHeader, selector: "p-accordion-header, p-accordionheader" }, { kind: "component", type: i9$1.AccordionContent, selector: "p-accordion-content, p-accordioncontent" }, { kind: "ngmodule", type: InputIconModule }, { kind: "component", type: i4.InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["styleClass"] }, { kind: "ngmodule", type: IconFieldModule }, { kind: "component", type: i5.IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["iconPosition", "styleClass"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i6.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i7.FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i14.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "component", type: OrganizationFormComponent, selector: "organization-form", inputs: ["organization", "descriptionError", "buttonLabel", "validationFunction"], outputs: ["formChange"] }] });
|
|
1129
1148
|
}
|
|
1130
1149
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: OrganizationAdminComponent, decorators: [{
|
|
1131
1150
|
type: Component,
|
|
1132
1151
|
args: [{ standalone: true, selector: 'organization-admin', imports: [ButtonModule, CommonModule, TableModule, ToggleSwitchModule, FormsModule, AccordionModule, InputIconModule,
|
|
1133
1152
|
IconFieldModule, InputTextModule, FloatLabelModule, ConfirmDialogModule, OrganizationFormComponent], providers: [ConfirmationService], template: "<p-confirmdialog />\r\n\r\n<div class=\"mt-4\" *ngIf=\"inplaceIndicator; else AdminContent\">\r\n <p-accordion [value]=\"[]\" [multiple]=\"true\" class=\"custom-acordion\">\r\n <p-accordion-panel value=\"0\">\r\n <p-accordion-header>Description</p-accordion-header>\r\n <p-accordion-content>\r\n <organization-form [organization]=\"organization\" [descriptionError]=\"descriptionError\" (formChange)=\"updateDescription($event)\"></organization-form>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n <p-accordion-panel value=\"1\">\r\n <p-accordion-header>Users</p-accordion-header>\r\n <p-accordion-content>\r\n <div class=\"flex flex-wrap my-3 justify-content-center align-items-center gap-4\">\r\n <p-floatlabel variant=\"on\" [class]=\"userError ? 'custom-floatlabel error-floatlabel' : 'custom-floatlabel'\">\r\n <p-iconfield>\r\n <p-inputicon class=\"pi pi-envelope\" />\r\n <input pInputText id=\"nDivision\" autocomplete=\"off\" class=\"w-full max-w-25rem\" [class]=\"userError ? 'custom-input error-input' : 'custom-input'\" \r\n [(ngModel)]=\"newUser\" (ngModelChange)=\"userError = false;\"/>\r\n </p-iconfield>\r\n <label for=\"nDivision\">User Email</label>\r\n </p-floatlabel>\r\n <p-button class=\"custom-button\" label=\"Add User\" size=\"small\" [disabled]=\"!newUser\" (onClick)=\"addUserToOrganization()\"/>\r\n </div>\r\n <p-table [value]=\"users\" [paginator]=\"true\" [rows]=\"5\" class=\"custom-table\">\r\n <ng-template #header>\r\n <tr>\r\n <th>Email</th>\r\n <th>Name</th>\r\n <th>Admin</th>\r\n <th style=\"width: 5rem\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-user>\r\n <tr >\r\n <td>{{ user.email }}</td>\r\n <td>{{ user.name }}</td>\r\n <td>\r\n <p-toggleswitch class=\"custom-toogle\" [(ngModel)]=\"user.isAdmin\" (onChange)=\"switchAdminState(user._id, user.name, $event.checked)\"/>\r\n </td>\r\n <td>\r\n <p-button class=\"flex trash-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-trash\" [disabled]=\"isCurrentUser(user._id)\" (onClick)=\"deleteUserModal($event, user._id, user.name)\"/>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n <p-accordion-panel value=\"2\">\r\n <p-accordion-header>Divisions</p-accordion-header>\r\n <p-accordion-content>\r\n <div class=\"flex flex-wrap my-3 justify-content-center align-items-center gap-4\">\r\n <p-floatlabel variant=\"on\" [class]=\"divisionError ? 'custom-floatlabel error-floatlabel' : 'custom-floatlabel'\">\r\n <p-iconfield>\r\n <p-inputicon class=\"pi pi-pencil\" />\r\n <input pInputText id=\"nDivision\" autocomplete=\"off\" class=\"w-full max-w-25rem\" [class]=\"divisionError ? 'custom-input error-input' : 'custom-input'\" \r\n [(ngModel)]=\"newDivision\" (ngModelChange)=\"divisionError = false;\"/>\r\n </p-iconfield>\r\n <label for=\"nDivision\">New Division</label>\r\n </p-floatlabel>\r\n <p-button class=\"custom-button\" label=\"Add Division\" size=\"small\" [disabled]=\"!newDivision\" (onClick)=\"addDivision()\"/>\r\n </div>\r\n <p-table [value]=\"divisions\" [paginator]=\"true\" [rows]=\"5\" class=\"custom-table\">\r\n <ng-template #header>\r\n <tr>\r\n <th>Name</th>\r\n <th style=\"width: 5rem\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-division>\r\n <tr >\r\n <td>{{ division }}</td>\r\n <td>\r\n <p-button class=\"flex trash-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-trash\" (onClick)=\"deleteDivisionModal($event, division)\"/>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n </p-accordion>\r\n \r\n <div class=\"flex justify-content-between align-items-center mt-4 gap-4\">\r\n <div class=\"custom-inplace-display\" (click)=\"inplaceIndicator = false\">Collapse</div>\r\n <p-button class=\"delete-button\" label=\"Delete Organization\" size=\"small\" (onClick)=\"deleteOrganizationModal($event)\"/>\r\n </div>\r\n</div>\r\n\r\n<ng-template #AdminContent>\r\n <p class=\"mb-0 custom-inplace-display\" (click)=\"inplaceIndicator = true\">Admin Content</p>\r\n</ng-template>", styles: [".custom-button{--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}.delete-button{--p-button-primary-background: var(--danger-color);--p-button-primary-border-color: var(--danger-color);--p-button-primary-hover-background: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-hover-border-color: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-active-background: color-mix(in srgb, var(--danger-color) 70%, black 30%);--p-button-primary-active-border-color: color-mix(in srgb, var(--danger-color) 80%, black 20%)}.trash-button{--p-button-text-primary-color: var(--danger-color);--p-button-text-primary-hover-background: color-mix(in srgb, var(--danger-color) 10%, rgba(255, 255, 255, 0) 90%);--p-button-text-primary-active-background: color-mix(in srgb, var(--danger-color) 20%, rgba(255, 255, 255, 0) 80%)}.custom-toogle{--p-toggleswitch-checked-border-color: var(--secondary-color);--p-toggleswitch-checked-hover-border-color: var(--hover-color);--p-toggleswitch-checked-background: var(--secondary-color);--p-toggleswitch-checked-hover-background: var(--hover-color)}.custom-acordion{--p-accordion-header-color: color-mix(in srgb, var(--primary-color) 60%, rgba(255, 255, 255, 0) 40%);--p-accordion-header-hover-color: var(--hover-color);--p-accordion-header-active-color: var(--primary-color);--p-accordion-content-color: var(--primary-color)}.custom-table{--p-datatable-header-cell-color: var(--primary-color);--p-datatable-row-color: var(--primary-color);--p-paginator-nav-button-color: color-mix(in srgb, var(--primary-color) 60%, rgba(255, 255, 255, 0) 40%);--p-paginator-nav-button-selected-background: color-mix(in srgb, var(--hover-color) 10%, rgba(255, 255, 255, 0) 90%);--p-paginator-nav-button-hover-background: color-mix(in srgb, var(--secondary-color) 10%, rgba(255, 255, 255, 0) 90%)}.custom-input{--p-inputtext-focus-border-color: var(--hover-color);--p-inputtext-hover-border-color: var(--hover-color)}.custom-floatlabel{--p-floatlabel-focus-color: var(--hover-color)}.error-input{--p-inputtext-border-color: var(--danger-color)}.error-floatlabel{--p-floatlabel-color: var(--danger-color)}::ng-deep .p-confirmdialog{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-confirmdialog-icon{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-button{--p-button-primary-background: var(--danger-color);--p-button-primary-border-color: var(--danger-color);--p-button-primary-hover-background: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-hover-border-color: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-active-background: color-mix(in srgb, var(--danger-color) 70%, black 30%);--p-button-primary-active-border-color: color-mix(in srgb, var(--danger-color) 80%, black 20%)}.custom-inplace-display{display:block!important;max-width:fit-content;white-space:nowrap;cursor:pointer;color:var(--secondary-color);padding:0!important;border:none!important;border-radius:.1rem;outline:none}.custom-inplace-display:hover,.custom-inplace-display:focus{color:var(--hover-color)}\n"] }]
|
|
1134
|
-
}], ctorParameters: () => [{ type: OrganizationService }, { type: UserService }, { type: i2$
|
|
1153
|
+
}], ctorParameters: () => [{ type: OrganizationService }, { type: UserService }, { type: i2$2.ConfirmationService }], propDecorators: { organization: [{
|
|
1135
1154
|
type: Input
|
|
1136
1155
|
}] } });
|
|
1137
1156
|
|
|
@@ -1320,13 +1339,13 @@ class OrganizationPageComponent {
|
|
|
1320
1339
|
newOrganizationValidation(data) {
|
|
1321
1340
|
return data.some(([first, second]) => first === second || first === "");
|
|
1322
1341
|
}
|
|
1323
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: OrganizationPageComponent, deps: [{ token: OrganizationService }, { token: i2$
|
|
1324
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: OrganizationPageComponent, isStandalone: true, selector: "organization-page", providers: [MessageService, ConfirmationService], ngImport: i0, template: "<p-toast class=\"custom-toast\" position=\"bottom-right\"/>\r\n<p-confirmdialog />\r\n<div class=\"flex flex-column align-items-stretch p-4\">\r\n <h2 class=\"mx-auto\">Your Organization(s) Details</h2>\r\n <p class=\"mx-auto\">You are part of {{userOrganizations.length}} organization(s). You can also create your own organization.</p>\r\n <div class=\"flex flex-wrap mb-4 align-items-center gap-4 justify-content-center w-full\">\r\n <p-select [options]=\"organizations\" [showClear]=\"true\" [disabled]=\"!logged\" [(ngModel)]=\"selectedOrganization\" \r\n [optionLabel]=\"'name'\" placeholder=\"Select an Organization\" [ngClass]=\"duplicatedOrg ? 'invalid-select' : 'custom-select'\" \r\n (onChange)=\"updateDuplicatedOrg()\" class=\"w-full max-w-30rem\" [checkmark]=\"true\" panelStyleClass=\"max-w-30rem\" />\r\n <p-button class=\"custom-button\" label=\"Join Organization\" size=\"small\" (click)=\"joinOrganization()\" [disabled]=\"!logged || !selectedOrganization\"/>\r\n </div>\r\n <div class=\"flex flex-column gap-4\">\r\n <p-card class=\"custom-color-card flex justify-content-center\" styleClass=\"flex-auto\" [style]=\"{ 'max-width': '50rem', 'min-width': '20rem', height: 'auto'}\" *ngFor=\"let organization of userOrganizations; let i = index\">\r\n <ng-template #header>\r\n <div class=\"flex justify-content-between\" style=\"padding-left: 1.25rem; padding-right: 1.25rem; padding-top: 1.25rem;\">\r\n <div class=\"p-card-title\">{{organization.name}}</div>\r\n <div class=\"flex gap-1\">\r\n <p-button class=\"flex email-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-envelope\" [disabled]=\"!organization.email\" \r\n (click)=\"copyEmail(organization.email, organization.name)\" pTooltip=\"{{organization.email}}\" tooltipPosition=\"top\"/>\r\n <p-button class=\"flex trash-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-sign-out\" (click)=\"deleteModal($event, organization._id, organization.name)\"/>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <p class=\"m-0\">\r\n {{organization.description}}\r\n </p>\r\n <div *ngIf=\"organization.isAdmin\">\r\n <organization-admin [organization]=\"organization\"></organization-admin>\r\n </div>\r\n </p-card>\r\n <p-card class=\"custom-color-card flex justify-content-center\" styleClass=\"flex-auto plus-card\" [style]=\"{ 'max-width': '50rem', 'min-width': '20rem', height: 'auto'}\">\r\n <ng-template #content>\r\n <p-accordion [value]=\"newOrganizationAcordion\" [multiple]=\"true\" class=\"custom-acordion\" [expandIcon]=\"'pi pi-plus'\" [collapseIcon]=\"'pi pi-minus'\">\r\n <p-accordion-panel class=\"custom-accordionpanel\" value=\"0\">\r\n <p-accordion-header class=\"custom-accordionheader\">Create New Organization</p-accordion-header>\r\n <p-accordion-content>\r\n <div class=\"pt-4\">\r\n <organization-form [organization]=\"newOrganization\" [descriptionError]=\"newOrganizationError\" [buttonLabel]=\"'Create Organization'\" [validationFunction]=\"newOrganizationValidation\" (formChange)=\"createOrganization($event)\"></organization-form>\r\n </div>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n </p-accordion>\r\n </ng-template>\r\n </p-card>\r\n </div>\r\n</div>", styles: [".custom-button{--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}.custom-color-card{--p-card-color: var(--primary-color);--p-card-subtitle-color: var(--secondary-color);--p-card-title-font-size: 1.25rem;--p-card-title-font-weight: 600}.custom-toast{--p-toast-info-background: color-mix(in srgb, var(--secondary-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-info-border-color: var(--secondary-color);--p-toast-info-color: var(--secondary-color);--p-toast-info-detail-color: var(--primary-color);--p-toast-error-background: color-mix(in srgb, var(--danger-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-error-border-color: var(--danger-color);--p-toast-error-color: var(--danger-color);--p-toast-error-detail-color: var(--primary-color);--p-toast-warn-background: color-mix(in srgb, var(--warning-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-warn-border-color: var(--warning-color);--p-toast-warn-color: var(--warning-color);--p-toast-warn-detail-color: var(--primary-color)}::ng-deep .p-toast-close-button .p-button-label{font-size:0}.custom-select{--p-select-hover-border-color: var(--hover-color);--p-select-focus-border-color: var(--hover-color)}.invalid-select{--p-select-border-color: var(--danger-color);--p-select-color: var(--danger-color);--p-select-hover-border-color: var(--hover-color);--p-select-focus-border-color: var(--hover-color)}.trash-button{--p-button-text-primary-color: var(--danger-color);--p-button-text-primary-hover-background: color-mix(in srgb, var(--danger-color) 10%, rgba(255, 255, 255, 0) 90%);--p-button-text-primary-active-background: color-mix(in srgb, var(--danger-color) 20%, rgba(255, 255, 255, 0) 80%)}.email-button{--p-button-text-primary-color: var(--secondary-color);--p-button-text-primary-hover-background: color-mix(in srgb, var(--secondary-color) 10%, rgba(255, 255, 255, 0) 90%);--p-button-text-primary-active-background: color-mix(in srgb, var(--secondary-color) 20%, rgba(255, 255, 255, 0) 80%)}::ng-deep .p-tooltip{--p-tooltip-background: var(--primary-color);--p-tooltip-max-width: 20rem}::ng-deep .p-tooltip-text{white-space:nowrap!important;word-break:keep-all!important;overflow:hidden!important;text-overflow:ellipsis!important}::ng-deep .p-confirmdialog{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-confirmdialog-icon{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-button{--p-button-primary-background: var(--danger-color);--p-button-primary-border-color: var(--danger-color);--p-button-primary-hover-background: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-hover-border-color: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-active-background: color-mix(in srgb, var(--danger-color) 70%, black 30%);--p-button-primary-active-border-color: color-mix(in srgb, var(--danger-color) 80%, black 20%)}.custom-acordion{--p-accordion-header-color: color-mix(in srgb, var(--primary-color) 60%, rgba(255, 255, 255, 0) 40%);--p-accordion-header-hover-color: var(--hover-color);--p-accordion-header-active-color: var(--primary-color);--p-accordion-content-color: var(--primary-color)}.custom-accordionpanel{border-style:none!important}.custom-accordionheader{padding:0!important;padding-right:.75rem!important}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CardModule }, { kind: "component", type: i6$2.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i8$2.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: OrganizationAdminComponent, selector: "organization-admin", inputs: ["organization"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i14.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: AccordionModule }, { kind: "component", type: i9$1.Accordion, selector: "p-accordion", inputs: ["value", "multiple", "style", "styleClass", "expandIcon", "collapseIcon", "selectOnFocus", "transitionOptions", "activeIndex", "headerAriaLevel"], outputs: ["valueChange", "activeIndexChange", "onClose", "onOpen"] }, { kind: "component", type: i9$1.AccordionPanel, selector: "p-accordion-panel, p-accordionpanel", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: i9$1.AccordionHeader, selector: "p-accordion-header, p-accordionheader" }, { kind: "component", type: i9$1.AccordionContent, selector: "p-accordion-content, p-accordioncontent" }, { kind: "component", type: OrganizationFormComponent, selector: "organization-form", inputs: ["organization", "descriptionError", "buttonLabel", "validationFunction"], outputs: ["formChange"] }] });
|
|
1342
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: OrganizationPageComponent, deps: [{ token: OrganizationService }, { token: i2$2.MessageService }, { token: UserService }, { token: i2$2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1343
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: OrganizationPageComponent, isStandalone: true, selector: "organization-page", providers: [MessageService, ConfirmationService], ngImport: i0, template: "<p-toast class=\"custom-toast\" position=\"bottom-right\"/>\r\n<p-confirmdialog />\r\n<div class=\"flex flex-column align-items-stretch p-4\">\r\n <h2 class=\"mx-auto\">Your Organization(s) Details</h2>\r\n <p class=\"mx-auto\">You are part of {{userOrganizations.length}} organization(s). You can also create your own organization.</p>\r\n <div class=\"flex flex-wrap mb-4 align-items-center gap-4 justify-content-center w-full\">\r\n <p-select [options]=\"organizations\" [showClear]=\"true\" [disabled]=\"!logged\" [(ngModel)]=\"selectedOrganization\" \r\n [optionLabel]=\"'name'\" placeholder=\"Select an Organization\" [ngClass]=\"duplicatedOrg ? 'invalid-select' : 'custom-select'\" \r\n (onChange)=\"updateDuplicatedOrg()\" class=\"w-full max-w-30rem\" [checkmark]=\"true\" panelStyleClass=\"max-w-30rem\" />\r\n <p-button class=\"custom-button\" label=\"Join Organization\" size=\"small\" (click)=\"joinOrganization()\" [disabled]=\"!logged || !selectedOrganization\"/>\r\n </div>\r\n <div class=\"flex flex-column gap-4\">\r\n <p-card class=\"custom-color-card flex justify-content-center\" styleClass=\"flex-auto\" [style]=\"{ 'max-width': '50rem', 'min-width': '20rem', height: 'auto'}\" *ngFor=\"let organization of userOrganizations; let i = index\">\r\n <ng-template #header>\r\n <div class=\"flex justify-content-between\" style=\"padding-left: 1.25rem; padding-right: 1.25rem; padding-top: 1.25rem;\">\r\n <div class=\"p-card-title\">{{organization.name}}</div>\r\n <div class=\"flex gap-1\">\r\n <p-button class=\"flex email-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-envelope\" [disabled]=\"!organization.email\" \r\n (click)=\"copyEmail(organization.email, organization.name)\" pTooltip=\"{{organization.email}}\" tooltipPosition=\"top\"/>\r\n <p-button class=\"flex trash-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-sign-out\" (click)=\"deleteModal($event, organization._id, organization.name)\"/>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <p class=\"m-0\">\r\n {{organization.description}}\r\n </p>\r\n <div *ngIf=\"organization.isAdmin\">\r\n <organization-admin [organization]=\"organization\"></organization-admin>\r\n </div>\r\n </p-card>\r\n <p-card class=\"custom-color-card flex justify-content-center\" styleClass=\"flex-auto plus-card\" [style]=\"{ 'max-width': '50rem', 'min-width': '20rem', height: 'auto'}\">\r\n <ng-template #content>\r\n <p-accordion [value]=\"newOrganizationAcordion\" [multiple]=\"true\" class=\"custom-acordion\" [expandIcon]=\"'pi pi-plus'\" [collapseIcon]=\"'pi pi-minus'\">\r\n <p-accordion-panel class=\"custom-accordionpanel\" value=\"0\">\r\n <p-accordion-header class=\"custom-accordionheader\">Create New Organization</p-accordion-header>\r\n <p-accordion-content>\r\n <div class=\"pt-4\">\r\n <organization-form [organization]=\"newOrganization\" [descriptionError]=\"newOrganizationError\" [buttonLabel]=\"'Create Organization'\" [validationFunction]=\"newOrganizationValidation\" (formChange)=\"createOrganization($event)\"></organization-form>\r\n </div>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n </p-accordion>\r\n </ng-template>\r\n </p-card>\r\n </div>\r\n</div>", styles: [".custom-button{--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}.custom-color-card{--p-card-color: var(--primary-color);--p-card-subtitle-color: var(--secondary-color);--p-card-title-font-size: 1.25rem;--p-card-title-font-weight: 600}.custom-toast{--p-toast-info-background: color-mix(in srgb, var(--secondary-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-info-border-color: var(--secondary-color);--p-toast-info-color: var(--secondary-color);--p-toast-info-detail-color: var(--primary-color);--p-toast-error-background: color-mix(in srgb, var(--danger-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-error-border-color: var(--danger-color);--p-toast-error-color: var(--danger-color);--p-toast-error-detail-color: var(--primary-color);--p-toast-warn-background: color-mix(in srgb, var(--warning-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-warn-border-color: var(--warning-color);--p-toast-warn-color: var(--warning-color);--p-toast-warn-detail-color: var(--primary-color)}::ng-deep .p-toast-close-button .p-button-label{font-size:0}.custom-select{--p-select-hover-border-color: var(--hover-color);--p-select-focus-border-color: var(--hover-color)}.invalid-select{--p-select-border-color: var(--danger-color);--p-select-color: var(--danger-color);--p-select-hover-border-color: var(--hover-color);--p-select-focus-border-color: var(--hover-color)}.trash-button{--p-button-text-primary-color: var(--danger-color);--p-button-text-primary-hover-background: color-mix(in srgb, var(--danger-color) 10%, rgba(255, 255, 255, 0) 90%);--p-button-text-primary-active-background: color-mix(in srgb, var(--danger-color) 20%, rgba(255, 255, 255, 0) 80%)}.email-button{--p-button-text-primary-color: var(--secondary-color);--p-button-text-primary-hover-background: color-mix(in srgb, var(--secondary-color) 10%, rgba(255, 255, 255, 0) 90%);--p-button-text-primary-active-background: color-mix(in srgb, var(--secondary-color) 20%, rgba(255, 255, 255, 0) 80%)}::ng-deep .p-tooltip{--p-tooltip-background: var(--primary-color);--p-tooltip-max-width: 20rem}::ng-deep .p-tooltip-text{white-space:nowrap!important;word-break:keep-all!important;overflow:hidden!important;text-overflow:ellipsis!important}::ng-deep .p-confirmdialog{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-confirmdialog-icon{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-button{--p-button-primary-background: var(--danger-color);--p-button-primary-border-color: var(--danger-color);--p-button-primary-hover-background: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-hover-border-color: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-active-background: color-mix(in srgb, var(--danger-color) 70%, black 30%);--p-button-primary-active-border-color: color-mix(in srgb, var(--danger-color) 80%, black 20%)}.custom-acordion{--p-accordion-header-color: color-mix(in srgb, var(--primary-color) 60%, rgba(255, 255, 255, 0) 40%);--p-accordion-header-hover-color: var(--hover-color);--p-accordion-header-active-color: var(--primary-color);--p-accordion-content-color: var(--primary-color)}.custom-accordionpanel{border-style:none!important}.custom-accordionheader{padding:0!important;padding-right:.75rem!important}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CardModule }, { kind: "component", type: i6$3.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i8$2.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: OrganizationAdminComponent, selector: "organization-admin", inputs: ["organization"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i14.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: AccordionModule }, { kind: "component", type: i9$1.Accordion, selector: "p-accordion", inputs: ["value", "multiple", "style", "styleClass", "expandIcon", "collapseIcon", "selectOnFocus", "transitionOptions", "activeIndex", "headerAriaLevel"], outputs: ["valueChange", "activeIndexChange", "onClose", "onOpen"] }, { kind: "component", type: i9$1.AccordionPanel, selector: "p-accordion-panel, p-accordionpanel", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: i9$1.AccordionHeader, selector: "p-accordion-header, p-accordionheader" }, { kind: "component", type: i9$1.AccordionContent, selector: "p-accordion-content, p-accordioncontent" }, { kind: "component", type: OrganizationFormComponent, selector: "organization-form", inputs: ["organization", "descriptionError", "buttonLabel", "validationFunction"], outputs: ["formChange"] }] });
|
|
1325
1344
|
}
|
|
1326
1345
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: OrganizationPageComponent, decorators: [{
|
|
1327
1346
|
type: Component,
|
|
1328
1347
|
args: [{ standalone: true, selector: 'organization-page', imports: [ButtonModule, CommonModule, CardModule, ToastModule, SelectModule, FormsModule, OrganizationAdminComponent, TooltipModule, ConfirmDialogModule, AccordionModule, OrganizationFormComponent], providers: [MessageService, ConfirmationService], template: "<p-toast class=\"custom-toast\" position=\"bottom-right\"/>\r\n<p-confirmdialog />\r\n<div class=\"flex flex-column align-items-stretch p-4\">\r\n <h2 class=\"mx-auto\">Your Organization(s) Details</h2>\r\n <p class=\"mx-auto\">You are part of {{userOrganizations.length}} organization(s). You can also create your own organization.</p>\r\n <div class=\"flex flex-wrap mb-4 align-items-center gap-4 justify-content-center w-full\">\r\n <p-select [options]=\"organizations\" [showClear]=\"true\" [disabled]=\"!logged\" [(ngModel)]=\"selectedOrganization\" \r\n [optionLabel]=\"'name'\" placeholder=\"Select an Organization\" [ngClass]=\"duplicatedOrg ? 'invalid-select' : 'custom-select'\" \r\n (onChange)=\"updateDuplicatedOrg()\" class=\"w-full max-w-30rem\" [checkmark]=\"true\" panelStyleClass=\"max-w-30rem\" />\r\n <p-button class=\"custom-button\" label=\"Join Organization\" size=\"small\" (click)=\"joinOrganization()\" [disabled]=\"!logged || !selectedOrganization\"/>\r\n </div>\r\n <div class=\"flex flex-column gap-4\">\r\n <p-card class=\"custom-color-card flex justify-content-center\" styleClass=\"flex-auto\" [style]=\"{ 'max-width': '50rem', 'min-width': '20rem', height: 'auto'}\" *ngFor=\"let organization of userOrganizations; let i = index\">\r\n <ng-template #header>\r\n <div class=\"flex justify-content-between\" style=\"padding-left: 1.25rem; padding-right: 1.25rem; padding-top: 1.25rem;\">\r\n <div class=\"p-card-title\">{{organization.name}}</div>\r\n <div class=\"flex gap-1\">\r\n <p-button class=\"flex email-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-envelope\" [disabled]=\"!organization.email\" \r\n (click)=\"copyEmail(organization.email, organization.name)\" pTooltip=\"{{organization.email}}\" tooltipPosition=\"top\"/>\r\n <p-button class=\"flex trash-button\" variant=\"text\" rounded=\"true\" size=\"large\" icon=\"pi pi-sign-out\" (click)=\"deleteModal($event, organization._id, organization.name)\"/>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <p class=\"m-0\">\r\n {{organization.description}}\r\n </p>\r\n <div *ngIf=\"organization.isAdmin\">\r\n <organization-admin [organization]=\"organization\"></organization-admin>\r\n </div>\r\n </p-card>\r\n <p-card class=\"custom-color-card flex justify-content-center\" styleClass=\"flex-auto plus-card\" [style]=\"{ 'max-width': '50rem', 'min-width': '20rem', height: 'auto'}\">\r\n <ng-template #content>\r\n <p-accordion [value]=\"newOrganizationAcordion\" [multiple]=\"true\" class=\"custom-acordion\" [expandIcon]=\"'pi pi-plus'\" [collapseIcon]=\"'pi pi-minus'\">\r\n <p-accordion-panel class=\"custom-accordionpanel\" value=\"0\">\r\n <p-accordion-header class=\"custom-accordionheader\">Create New Organization</p-accordion-header>\r\n <p-accordion-content>\r\n <div class=\"pt-4\">\r\n <organization-form [organization]=\"newOrganization\" [descriptionError]=\"newOrganizationError\" [buttonLabel]=\"'Create Organization'\" [validationFunction]=\"newOrganizationValidation\" (formChange)=\"createOrganization($event)\"></organization-form>\r\n </div>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n </p-accordion>\r\n </ng-template>\r\n </p-card>\r\n </div>\r\n</div>", styles: [".custom-button{--p-button-primary-background: var(--secondary-color);--p-button-primary-border-color: var(--secondary-color);--p-button-primary-hover-background: var(--hover-color);--p-button-primary-hover-border-color: var(--hover-color);--p-button-primary-active-background: color-mix(in srgb, var(--hover-color) 80%, black 20%);--p-button-primary-active-border-color: color-mix(in srgb, var(--hover-color) 90%, black 10%)}.custom-color-card{--p-card-color: var(--primary-color);--p-card-subtitle-color: var(--secondary-color);--p-card-title-font-size: 1.25rem;--p-card-title-font-weight: 600}.custom-toast{--p-toast-info-background: color-mix(in srgb, var(--secondary-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-info-border-color: var(--secondary-color);--p-toast-info-color: var(--secondary-color);--p-toast-info-detail-color: var(--primary-color);--p-toast-error-background: color-mix(in srgb, var(--danger-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-error-border-color: var(--danger-color);--p-toast-error-color: var(--danger-color);--p-toast-error-detail-color: var(--primary-color);--p-toast-warn-background: color-mix(in srgb, var(--warning-color) 10%, rgba(255, 255, 255, .9) 90%);--p-toast-warn-border-color: var(--warning-color);--p-toast-warn-color: var(--warning-color);--p-toast-warn-detail-color: var(--primary-color)}::ng-deep .p-toast-close-button .p-button-label{font-size:0}.custom-select{--p-select-hover-border-color: var(--hover-color);--p-select-focus-border-color: var(--hover-color)}.invalid-select{--p-select-border-color: var(--danger-color);--p-select-color: var(--danger-color);--p-select-hover-border-color: var(--hover-color);--p-select-focus-border-color: var(--hover-color)}.trash-button{--p-button-text-primary-color: var(--danger-color);--p-button-text-primary-hover-background: color-mix(in srgb, var(--danger-color) 10%, rgba(255, 255, 255, 0) 90%);--p-button-text-primary-active-background: color-mix(in srgb, var(--danger-color) 20%, rgba(255, 255, 255, 0) 80%)}.email-button{--p-button-text-primary-color: var(--secondary-color);--p-button-text-primary-hover-background: color-mix(in srgb, var(--secondary-color) 10%, rgba(255, 255, 255, 0) 90%);--p-button-text-primary-active-background: color-mix(in srgb, var(--secondary-color) 20%, rgba(255, 255, 255, 0) 80%)}::ng-deep .p-tooltip{--p-tooltip-background: var(--primary-color);--p-tooltip-max-width: 20rem}::ng-deep .p-tooltip-text{white-space:nowrap!important;word-break:keep-all!important;overflow:hidden!important;text-overflow:ellipsis!important}::ng-deep .p-confirmdialog{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-confirmdialog-icon{color:var(--primary-color)!important}::ng-deep .p-confirmdialog .p-button{--p-button-primary-background: var(--danger-color);--p-button-primary-border-color: var(--danger-color);--p-button-primary-hover-background: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-hover-border-color: color-mix(in srgb, var(--danger-color) 90%, black 10%);--p-button-primary-active-background: color-mix(in srgb, var(--danger-color) 70%, black 30%);--p-button-primary-active-border-color: color-mix(in srgb, var(--danger-color) 80%, black 20%)}.custom-acordion{--p-accordion-header-color: color-mix(in srgb, var(--primary-color) 60%, rgba(255, 255, 255, 0) 40%);--p-accordion-header-hover-color: var(--hover-color);--p-accordion-header-active-color: var(--primary-color);--p-accordion-content-color: var(--primary-color)}.custom-accordionpanel{border-style:none!important}.custom-accordionheader{padding:0!important;padding-right:.75rem!important}\n"] }]
|
|
1329
|
-
}], ctorParameters: () => [{ type: OrganizationService }, { type: i2$
|
|
1348
|
+
}], ctorParameters: () => [{ type: OrganizationService }, { type: i2$2.MessageService }, { type: UserService }, { type: i2$2.ConfirmationService }] });
|
|
1330
1349
|
|
|
1331
1350
|
/*
|
|
1332
1351
|
* Public API Surface of ngx-bok-utils
|