@biit-solutions/wizardry-theme 1.21.35 → 1.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/esm2020/button/biit-action-button/biit-action-button.component.mjs +2 -2
  2. package/esm2020/button/biit-button/biit-button.component.mjs +2 -2
  3. package/esm2020/button/biit-icon-button/biit-icon-button.component.mjs +2 -2
  4. package/esm2020/calendar/biit-calendar/biit-calendar.component.mjs +2 -2
  5. package/esm2020/charts/bar-chart/bar-chart.component.mjs +2 -2
  6. package/esm2020/charts/line-chart/line-chart.component.mjs +2 -2
  7. package/esm2020/charts/meta-view-chart/meta-view-chart.component.mjs +3 -3
  8. package/esm2020/charts/pie-chart/pie-chart.component.mjs +2 -2
  9. package/esm2020/charts/radar-chart/radar-chart.component.mjs +2 -2
  10. package/esm2020/charts/radial-chart/radial-chart.component.mjs +2 -2
  11. package/esm2020/charts/timeline-viewer-chart/timeline-viewer-chart.component.mjs +2 -2
  12. package/esm2020/info/biit-cookies-consent/biit-cookies-consent.component.mjs +2 -2
  13. package/esm2020/info/biit-gallery-card/biit-gallery-card.component.mjs +2 -2
  14. package/esm2020/info/biit-progress-bar/biit-progress-bar.component.mjs +2 -2
  15. package/esm2020/info/biit-snackbar/biit-notification/biit-notification.component.mjs +2 -2
  16. package/esm2020/info/biit-tooltip/biit-tooltip.component.mjs +2 -2
  17. package/esm2020/info/biit-tooltip-icon/biit-tooltip-icon.component.mjs +2 -2
  18. package/esm2020/inputs/biit-checkbox/biit-checkbox.component.mjs +2 -2
  19. package/esm2020/inputs/biit-datepicker/biit-datepicker.component.mjs +2 -2
  20. package/esm2020/inputs/biit-dropdown/biit-dropdown.component.mjs +2 -2
  21. package/esm2020/inputs/biit-group/biit-group.component.mjs +2 -2
  22. package/esm2020/inputs/biit-input-text/biit-input-text.component.mjs +2 -2
  23. package/esm2020/inputs/biit-multiselect/biit-multiselect.component.mjs +2 -2
  24. package/esm2020/inputs/biit-radio-button/biit-radio-button.component.mjs +2 -2
  25. package/esm2020/inputs/biit-slider/biit-slider.component.mjs +2 -2
  26. package/esm2020/inputs/biit-slider-option/biit-slider-option.component.mjs +2 -2
  27. package/esm2020/inputs/biit-slider-option-vertical/biit-slider-option-vertical.component.mjs +2 -2
  28. package/esm2020/inputs/biit-slider-range/biit-slider-range.component.mjs +2 -2
  29. package/esm2020/inputs/biit-ternary-togle/biit-ternary-toggle.component.mjs +2 -2
  30. package/esm2020/inputs/biit-textarea/biit-textarea.component.mjs +2 -2
  31. package/esm2020/inputs/biit-toggle/biit-toggle.component.mjs +2 -2
  32. package/esm2020/login/biit-login/biit-login.component.mjs +2 -2
  33. package/esm2020/navigation/biit-nav-menu/biit-nav-menu.component.mjs +2 -2
  34. package/esm2020/navigation/biit-nav-user/biit-nav-user.component.mjs +2 -2
  35. package/esm2020/navigation/biit-tab-group/biit-tab-group.component.mjs +2 -2
  36. package/esm2020/navigation/biit-vertical-menu/biit-vertical-menu.component.mjs +2 -2
  37. package/esm2020/popup/biit-popup/biit-popup.component.mjs +2 -2
  38. package/esm2020/table/biit-datatable/biit-datatable.component.mjs +2 -2
  39. package/esm2020/table/biit-datatable-pager/biit-datatable-pager.component.mjs +2 -2
  40. package/esm2020/table/biit-paginator/biit-paginator.component.mjs +2 -2
  41. package/esm2020/table/biit-table/biit-table.component.mjs +3 -3
  42. package/fesm2015/biit-solutions-wizardry-theme-button.mjs +6 -6
  43. package/fesm2015/biit-solutions-wizardry-theme-button.mjs.map +1 -1
  44. package/fesm2015/biit-solutions-wizardry-theme-calendar.mjs +2 -2
  45. package/fesm2015/biit-solutions-wizardry-theme-calendar.mjs.map +1 -1
  46. package/fesm2015/biit-solutions-wizardry-theme-charts.mjs +14 -14
  47. package/fesm2015/biit-solutions-wizardry-theme-charts.mjs.map +1 -1
  48. package/fesm2015/biit-solutions-wizardry-theme-info.mjs +12 -12
  49. package/fesm2015/biit-solutions-wizardry-theme-info.mjs.map +1 -1
  50. package/fesm2015/biit-solutions-wizardry-theme-inputs.mjs +28 -28
  51. package/fesm2015/biit-solutions-wizardry-theme-inputs.mjs.map +1 -1
  52. package/fesm2015/biit-solutions-wizardry-theme-login.mjs +2 -2
  53. package/fesm2015/biit-solutions-wizardry-theme-login.mjs.map +1 -1
  54. package/fesm2015/biit-solutions-wizardry-theme-navigation.mjs +8 -8
  55. package/fesm2015/biit-solutions-wizardry-theme-navigation.mjs.map +1 -1
  56. package/fesm2015/biit-solutions-wizardry-theme-popup.mjs +2 -2
  57. package/fesm2015/biit-solutions-wizardry-theme-popup.mjs.map +1 -1
  58. package/fesm2015/biit-solutions-wizardry-theme-table.mjs +8 -8
  59. package/fesm2015/biit-solutions-wizardry-theme-table.mjs.map +1 -1
  60. package/fesm2020/biit-solutions-wizardry-theme-button.mjs +6 -6
  61. package/fesm2020/biit-solutions-wizardry-theme-button.mjs.map +1 -1
  62. package/fesm2020/biit-solutions-wizardry-theme-calendar.mjs +2 -2
  63. package/fesm2020/biit-solutions-wizardry-theme-calendar.mjs.map +1 -1
  64. package/fesm2020/biit-solutions-wizardry-theme-charts.mjs +14 -14
  65. package/fesm2020/biit-solutions-wizardry-theme-charts.mjs.map +1 -1
  66. package/fesm2020/biit-solutions-wizardry-theme-info.mjs +12 -12
  67. package/fesm2020/biit-solutions-wizardry-theme-info.mjs.map +1 -1
  68. package/fesm2020/biit-solutions-wizardry-theme-inputs.mjs +28 -28
  69. package/fesm2020/biit-solutions-wizardry-theme-inputs.mjs.map +1 -1
  70. package/fesm2020/biit-solutions-wizardry-theme-login.mjs +2 -2
  71. package/fesm2020/biit-solutions-wizardry-theme-login.mjs.map +1 -1
  72. package/fesm2020/biit-solutions-wizardry-theme-navigation.mjs +8 -8
  73. package/fesm2020/biit-solutions-wizardry-theme-navigation.mjs.map +1 -1
  74. package/fesm2020/biit-solutions-wizardry-theme-popup.mjs +2 -2
  75. package/fesm2020/biit-solutions-wizardry-theme-popup.mjs.map +1 -1
  76. package/fesm2020/biit-solutions-wizardry-theme-table.mjs +8 -8
  77. package/fesm2020/biit-solutions-wizardry-theme-table.mjs.map +1 -1
  78. package/package.json +1 -1
@@ -223,7 +223,7 @@ BiitLoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
223
223
  provide: TRANSLOCO_SCOPE,
224
224
  useValue: { scope: 'wizardry-theme/login-welcome', alias: "login-welcome" },
225
225
  multi: true
226
- }], ngImport: i0, template: "<biit-popup no-header *transloco=\"let t\">\n <div id=\"login-tabs\"\n *ngIf=\"allowSignUp && !resetView\"\n class=\"tab-buttons\"\n >\n <div id=\"tab-login\"\n [class.selected]=\"!signUpView\"\n (click)=\"signUpView = false\"\n >\n {{ t('login.log_in') }}\n </div>\n <div id=\"tab-signup\"\n [class.selected]=\"signUpView\"\n (click)=\"signUpView = true\"\n >\n {{ t('login.sign_up') }}\n </div>\n </div>\n <div class=\"login-container\" [class.allow-signup]=\"allowSignUp\">\n <div class=\"login-column\">\n <div class=\"login-icon-square\">\n <div class=\"login-keyring\"></div>\n <biit-icon [name]=\"$any('key_' + keyId)\" class=\"login-key-icon\"></biit-icon>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"resetView ? resetForm : signUpView ? signUpForm : loginForm\"></ng-container>\n </div>\n</biit-popup>\n\n<ng-template #loginForm>\n <div id=\"login-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"login-username\" [(ngModel)]=\"login.username\" fieldName=\"username\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"login-password\" [(ngModel)]=\"login.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <biit-toggle\n class=\"margin-vertical-14\"\n [(ngModel)]=\"login.remember\">\n {{ t('login.remember') }}\n </biit-toggle>\n <div class=\"margin-top-18 centered\">\n <button id=\"login-button\" biit-button primary\n (click)=\"performLogin()\"\n >\n {{ t('login.take_me_in') }}\n </button>\n </div>\n <div class=\"margin-top-18 centered\">\n <button biit-button tertiary *ngIf=\"allowResetPassword\"\n (click)=\"resetView = true\"\n class=\"smaller-text\"\n >\n {{ t('login.forgot') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #resetForm>\n <div class=\"login-column-expanded\" *transloco=\"let t\">\n <span class=\"title\">\n {{ t('login.reset_password_title') }}\n </span>\n <span class=\"subtitle\"\n style=\"margin-top: 1em;\">\n {{ t('login.reset_password_subtitle') }}\n </span>\n <span class=\"body\"\n style=\"margin-top: 0.5em\">\n {{ t('login.reset_password_body') }}\n </span>\n <biit-input-text [(ngModel)]=\"resetEmail\" fieldName=\"email\" [type]=\"Type.EMAIL\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\"\n (keyup.enter)=\"performResetPassword()\" style=\"margin-top: 2em; margin-bottom: 2.5em\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <div class=\"buttons\">\n <button biit-button (click)=\"performResetPassword()\">\n {{ t('login.reset') }}\n </button>\n <button biit-button tertiary (click)=\"restartView()\" class=\"smaller-text\">\n {{ t('login.i_remember') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #signUpForm>\n <div id=\"signup-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"signup-username\" [(ngModel)]=\"signUpData.username\" fieldName=\"username\"\n *ngIf=\"!signUpGeneratedUsername\"\n [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n (ngModelChange)=\"usernameSearch.next($event)\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-name\" [(ngModel)]=\"signUpData.name\" fieldName=\"name\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.NAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.name')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-lastname\" [(ngModel)]=\"signUpData.lastname\" fieldName=\"lastname\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.LASTNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.lastname')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-email\" [(ngModel)]=\"signUpData.email\" fieldName=\"email\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\" [required]=\"true\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <biit-dropdown\n *ngIf=\"teams && teams.length\"\n [(ngModel)]=\"dumbTeam\"\n [required]=\"true\"\n [data]=\"teams\"\n value=\"key\"\n label=\"label\"\n title=\"{{t('login.team')}}\" class=\"login-input\"/>\n <biit-input-text id=\"signup-password\" [(ngModel)]=\"signUpData.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\" *ngIf=\"!signUpGeneratedPassword\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <div class=\"margin-top-18 centered\">\n <button id=\"signup-button\" biit-button primary\n (click)=\"performSignUp()\"\n >\n {{ t('login.sign_me_up') }}\n </button>\n </div>\n </div>\n <div *transloco=\"let t\">\n <biit-popup *ngIf=\"notification && showNotification\" id=\"warning-popup\"\n [title]=\"t('login-welcome.warning_window.tittle')\"\n closable\n (onClosed)=\"showNotification = false\">\n <div [innerHTML]=\"t('login-welcome.warning_window.content')\"></div>\n </biit-popup>\n </div>\n</ng-template>\n", styles: [".login-container{display:flex;font-size:inherit;column-gap:4.2rem}.login-container.allow-signup{padding:.5rem}.login-column{width:12.8em;display:inline-flex;flex-direction:column}.login-column-expanded{width:20em;display:inline-flex;flex-direction:column}.login-key-icon{position:absolute;margin-top:1em;rotate:90deg;height:12.8em;width:12.8em}.login-keyring{width:1.1em;background:#F20D5E;height:2.85em}.login-icon-square{display:inline-flex;border:solid .175em #262626;width:12.8em;height:12.8em;box-sizing:border-box;flex-direction:column;align-items:center}.login-input{margin-top:1.05em;margin-bottom:1.05em}.margin-vertical-14{margin:.7em 0}.margin-top-18{margin-top:.9em}.centered{display:inline-flex;justify-content:center}.smaller-text{font-size:.9em}.title{font-size:1.5em;font-weight:700}.subtitle{font-size:1em;font-weight:700}.body{font-size:.85em}.buttons{display:flex;align-items:center;gap:2.5em}.tab-buttons{position:absolute;right:0;top:0;width:50%;height:calc(2rem + 3px);display:flex}.tab-buttons div{display:flex;flex-grow:1;flex-shrink:0;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:gray}.tab-buttons div:hover{border-bottom:3px solid #808080}.tab-buttons div.selected{background:transparent;color:#262626;border-bottom:3px solid #262626}@media (max-width: 600px){::ng-deep .popup-canvas{min-width:auto!important}::ng-deep .popup-canvas .login-container{flex-direction:column-reverse;gap:1.5rem}::ng-deep .popup-canvas .login-column-expanded{min-width:12.8em}.buttons{gap:1.5em;flex-wrap:wrap}.tab-buttons{width:100%}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.BiitPopupComponent, selector: "biit-popup", inputs: ["title", "mouseEvent"], outputs: ["onClosed"] }, { kind: "directive", type: i3.BiitPopupNoHeaderDirective, selector: "[no-header]" }, { kind: "directive", type: i3.BiitPopupClosableDirective, selector: "[closable]" }, { kind: "component", type: i4.BiitIconComponent, selector: "biit-icon", inputs: ["name", "svgStyle", "pathStyle"] }, { kind: "component", type: i5.BiitInputTextComponent, selector: "biit-input-text", inputs: ["placeholder", "error", "description", "info", "type", "icon", "fieldName", "disabled", "required", "readonly", "min", "max", "minLength", "maxLength", "regEx"], outputs: ["onActionPerformed"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.BiitToggleComponent, selector: "biit-toggle", inputs: ["disabled"] }, { kind: "component", type: i7.BiitButtonComponent, selector: "button[biit-button]" }, { kind: "directive", type: i7.BiitButtonPrimaryDirective, selector: "[primary]" }, { kind: "directive", type: i7.BiitButtonTertiaryDirective, selector: "[tertiary]" }, { kind: "directive", type: i1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i5.BiitDropdownComponent, selector: "biit-dropdown", inputs: ["title", "label", "value", "descriptionLabel", "description", "data", "primitive", "compact", "disabled", "required", "sort-asc", "sort-desc", "icon"] }] });
226
+ }], ngImport: i0, template: "<biit-popup no-header *transloco=\"let t\">\n <div id=\"login-tabs\"\n *ngIf=\"allowSignUp && !resetView\"\n class=\"tab-buttons\"\n >\n <div id=\"tab-login\"\n [class.selected]=\"!signUpView\"\n (click)=\"signUpView = false\"\n >\n {{ t('login.log_in') }}\n </div>\n <div id=\"tab-signup\"\n [class.selected]=\"signUpView\"\n (click)=\"signUpView = true\"\n >\n {{ t('login.sign_up') }}\n </div>\n </div>\n <div class=\"login-container\" [class.allow-signup]=\"allowSignUp\">\n <div class=\"login-column\">\n <div class=\"login-icon-square\">\n <div class=\"login-keyring\"></div>\n <biit-icon [name]=\"$any('key_' + keyId)\" class=\"login-key-icon\"></biit-icon>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"resetView ? resetForm : signUpView ? signUpForm : loginForm\"></ng-container>\n </div>\n</biit-popup>\n\n<ng-template #loginForm>\n <div id=\"login-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"login-username\" [(ngModel)]=\"login.username\" fieldName=\"username\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"login-password\" [(ngModel)]=\"login.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <biit-toggle\n class=\"margin-vertical-14\"\n [(ngModel)]=\"login.remember\">\n {{ t('login.remember') }}\n </biit-toggle>\n <div class=\"margin-top-18 centered\">\n <button id=\"login-button\" biit-button primary\n (click)=\"performLogin()\"\n >\n {{ t('login.take_me_in') }}\n </button>\n </div>\n <div class=\"margin-top-18 centered\">\n <button biit-button tertiary *ngIf=\"allowResetPassword\"\n (click)=\"resetView = true\"\n class=\"smaller-text\"\n >\n {{ t('login.forgot') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #resetForm>\n <div class=\"login-column-expanded\" *transloco=\"let t\">\n <span class=\"title\">\n {{ t('login.reset_password_title') }}\n </span>\n <span class=\"subtitle\"\n style=\"margin-top: 1em;\">\n {{ t('login.reset_password_subtitle') }}\n </span>\n <span class=\"body\"\n style=\"margin-top: 0.5em\">\n {{ t('login.reset_password_body') }}\n </span>\n <biit-input-text [(ngModel)]=\"resetEmail\" fieldName=\"email\" [type]=\"Type.EMAIL\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\"\n (keyup.enter)=\"performResetPassword()\" style=\"margin-top: 2em; margin-bottom: 2.5em\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <div class=\"buttons\">\n <button biit-button (click)=\"performResetPassword()\">\n {{ t('login.reset') }}\n </button>\n <button biit-button tertiary (click)=\"restartView()\" class=\"smaller-text\">\n {{ t('login.i_remember') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #signUpForm>\n <div id=\"signup-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"signup-username\" [(ngModel)]=\"signUpData.username\" fieldName=\"username\"\n *ngIf=\"!signUpGeneratedUsername\"\n [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n (ngModelChange)=\"usernameSearch.next($event)\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-name\" [(ngModel)]=\"signUpData.name\" fieldName=\"name\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.NAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.name')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-lastname\" [(ngModel)]=\"signUpData.lastname\" fieldName=\"lastname\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.LASTNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.lastname')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-email\" [(ngModel)]=\"signUpData.email\" fieldName=\"email\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\" [required]=\"true\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <biit-dropdown\n *ngIf=\"teams && teams.length\"\n [(ngModel)]=\"dumbTeam\"\n [required]=\"true\"\n [data]=\"teams\"\n value=\"key\"\n label=\"label\"\n title=\"{{t('login.team')}}\" class=\"login-input\"/>\n <biit-input-text id=\"signup-password\" [(ngModel)]=\"signUpData.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\" *ngIf=\"!signUpGeneratedPassword\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <div class=\"margin-top-18 centered\">\n <button id=\"signup-button\" biit-button primary\n (click)=\"performSignUp()\"\n >\n {{ t('login.sign_me_up') }}\n </button>\n </div>\n </div>\n <div *transloco=\"let t\">\n <biit-popup *ngIf=\"notification && showNotification\" id=\"warning-popup\"\n [title]=\"t('login-welcome.warning_window.tittle')\"\n closable\n (onClosed)=\"showNotification = false\">\n <div [innerHTML]=\"t('login-welcome.warning_window.content')\"></div>\n </biit-popup>\n </div>\n</ng-template>\n", styles: [".login-container{display:flex;font-size:inherit;column-gap:4.2rem}.login-container.allow-signup{padding:.5rem}.login-column{width:12.8em;display:inline-flex;flex-direction:column}.login-column-expanded{width:20em;display:inline-flex;flex-direction:column}.login-key-icon{position:absolute;margin-top:1em;rotate:90deg;height:12.8em;width:12.8em}.login-keyring{width:1.1em;background:var(--main-color);height:2.85em}.login-icon-square{display:inline-flex;border:solid .175em var(--component-color);width:12.8em;height:12.8em;box-sizing:border-box;flex-direction:column;align-items:center}.login-input{margin-top:1.05em;margin-bottom:1.05em}.margin-vertical-14{margin:.7em 0}.margin-top-18{margin-top:.9em}.centered{display:inline-flex;justify-content:center}.smaller-text{font-size:.9em}.title{font-size:1.5em;font-weight:700}.subtitle{font-size:1em;font-weight:700}.body{font-size:.85em}.buttons{display:flex;align-items:center;gap:2.5em}.tab-buttons{position:absolute;right:0;top:0;width:50%;height:calc(2rem + 3px);display:flex}.tab-buttons div{display:flex;flex-grow:1;flex-shrink:0;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:var(--disabled-primary-color)}.tab-buttons div:hover{border-bottom:3px solid var(--disabled-primary-color)}.tab-buttons div.selected{background:transparent;color:#262626;border-bottom:3px solid var(--active-color)}@media (max-width: 600px){::ng-deep .popup-canvas{min-width:auto!important}::ng-deep .popup-canvas .login-container{flex-direction:column-reverse;gap:1.5rem}::ng-deep .popup-canvas .login-column-expanded{min-width:12.8em}.buttons{gap:1.5em;flex-wrap:wrap}.tab-buttons{width:100%}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.BiitPopupComponent, selector: "biit-popup", inputs: ["title", "mouseEvent"], outputs: ["onClosed"] }, { kind: "directive", type: i3.BiitPopupNoHeaderDirective, selector: "[no-header]" }, { kind: "directive", type: i3.BiitPopupClosableDirective, selector: "[closable]" }, { kind: "component", type: i4.BiitIconComponent, selector: "biit-icon", inputs: ["name", "svgStyle", "pathStyle"] }, { kind: "component", type: i5.BiitInputTextComponent, selector: "biit-input-text", inputs: ["placeholder", "error", "description", "info", "type", "icon", "fieldName", "disabled", "required", "readonly", "min", "max", "minLength", "maxLength", "regEx"], outputs: ["onActionPerformed"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.BiitToggleComponent, selector: "biit-toggle", inputs: ["disabled"] }, { kind: "component", type: i7.BiitButtonComponent, selector: "button[biit-button]" }, { kind: "directive", type: i7.BiitButtonPrimaryDirective, selector: "[primary]" }, { kind: "directive", type: i7.BiitButtonTertiaryDirective, selector: "[tertiary]" }, { kind: "directive", type: i1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i5.BiitDropdownComponent, selector: "biit-dropdown", inputs: ["title", "label", "value", "descriptionLabel", "description", "data", "primitive", "compact", "disabled", "required", "sort-asc", "sort-desc", "icon"] }] });
227
227
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitLoginComponent, decorators: [{
228
228
  type: Component,
229
229
  args: [{ selector: 'biit-login', providers: [{
@@ -234,7 +234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
234
234
  provide: TRANSLOCO_SCOPE,
235
235
  useValue: { scope: 'wizardry-theme/login-welcome', alias: "login-welcome" },
236
236
  multi: true
237
- }], template: "<biit-popup no-header *transloco=\"let t\">\n <div id=\"login-tabs\"\n *ngIf=\"allowSignUp && !resetView\"\n class=\"tab-buttons\"\n >\n <div id=\"tab-login\"\n [class.selected]=\"!signUpView\"\n (click)=\"signUpView = false\"\n >\n {{ t('login.log_in') }}\n </div>\n <div id=\"tab-signup\"\n [class.selected]=\"signUpView\"\n (click)=\"signUpView = true\"\n >\n {{ t('login.sign_up') }}\n </div>\n </div>\n <div class=\"login-container\" [class.allow-signup]=\"allowSignUp\">\n <div class=\"login-column\">\n <div class=\"login-icon-square\">\n <div class=\"login-keyring\"></div>\n <biit-icon [name]=\"$any('key_' + keyId)\" class=\"login-key-icon\"></biit-icon>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"resetView ? resetForm : signUpView ? signUpForm : loginForm\"></ng-container>\n </div>\n</biit-popup>\n\n<ng-template #loginForm>\n <div id=\"login-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"login-username\" [(ngModel)]=\"login.username\" fieldName=\"username\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"login-password\" [(ngModel)]=\"login.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <biit-toggle\n class=\"margin-vertical-14\"\n [(ngModel)]=\"login.remember\">\n {{ t('login.remember') }}\n </biit-toggle>\n <div class=\"margin-top-18 centered\">\n <button id=\"login-button\" biit-button primary\n (click)=\"performLogin()\"\n >\n {{ t('login.take_me_in') }}\n </button>\n </div>\n <div class=\"margin-top-18 centered\">\n <button biit-button tertiary *ngIf=\"allowResetPassword\"\n (click)=\"resetView = true\"\n class=\"smaller-text\"\n >\n {{ t('login.forgot') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #resetForm>\n <div class=\"login-column-expanded\" *transloco=\"let t\">\n <span class=\"title\">\n {{ t('login.reset_password_title') }}\n </span>\n <span class=\"subtitle\"\n style=\"margin-top: 1em;\">\n {{ t('login.reset_password_subtitle') }}\n </span>\n <span class=\"body\"\n style=\"margin-top: 0.5em\">\n {{ t('login.reset_password_body') }}\n </span>\n <biit-input-text [(ngModel)]=\"resetEmail\" fieldName=\"email\" [type]=\"Type.EMAIL\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\"\n (keyup.enter)=\"performResetPassword()\" style=\"margin-top: 2em; margin-bottom: 2.5em\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <div class=\"buttons\">\n <button biit-button (click)=\"performResetPassword()\">\n {{ t('login.reset') }}\n </button>\n <button biit-button tertiary (click)=\"restartView()\" class=\"smaller-text\">\n {{ t('login.i_remember') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #signUpForm>\n <div id=\"signup-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"signup-username\" [(ngModel)]=\"signUpData.username\" fieldName=\"username\"\n *ngIf=\"!signUpGeneratedUsername\"\n [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n (ngModelChange)=\"usernameSearch.next($event)\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-name\" [(ngModel)]=\"signUpData.name\" fieldName=\"name\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.NAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.name')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-lastname\" [(ngModel)]=\"signUpData.lastname\" fieldName=\"lastname\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.LASTNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.lastname')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-email\" [(ngModel)]=\"signUpData.email\" fieldName=\"email\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\" [required]=\"true\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <biit-dropdown\n *ngIf=\"teams && teams.length\"\n [(ngModel)]=\"dumbTeam\"\n [required]=\"true\"\n [data]=\"teams\"\n value=\"key\"\n label=\"label\"\n title=\"{{t('login.team')}}\" class=\"login-input\"/>\n <biit-input-text id=\"signup-password\" [(ngModel)]=\"signUpData.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\" *ngIf=\"!signUpGeneratedPassword\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <div class=\"margin-top-18 centered\">\n <button id=\"signup-button\" biit-button primary\n (click)=\"performSignUp()\"\n >\n {{ t('login.sign_me_up') }}\n </button>\n </div>\n </div>\n <div *transloco=\"let t\">\n <biit-popup *ngIf=\"notification && showNotification\" id=\"warning-popup\"\n [title]=\"t('login-welcome.warning_window.tittle')\"\n closable\n (onClosed)=\"showNotification = false\">\n <div [innerHTML]=\"t('login-welcome.warning_window.content')\"></div>\n </biit-popup>\n </div>\n</ng-template>\n", styles: [".login-container{display:flex;font-size:inherit;column-gap:4.2rem}.login-container.allow-signup{padding:.5rem}.login-column{width:12.8em;display:inline-flex;flex-direction:column}.login-column-expanded{width:20em;display:inline-flex;flex-direction:column}.login-key-icon{position:absolute;margin-top:1em;rotate:90deg;height:12.8em;width:12.8em}.login-keyring{width:1.1em;background:#F20D5E;height:2.85em}.login-icon-square{display:inline-flex;border:solid .175em #262626;width:12.8em;height:12.8em;box-sizing:border-box;flex-direction:column;align-items:center}.login-input{margin-top:1.05em;margin-bottom:1.05em}.margin-vertical-14{margin:.7em 0}.margin-top-18{margin-top:.9em}.centered{display:inline-flex;justify-content:center}.smaller-text{font-size:.9em}.title{font-size:1.5em;font-weight:700}.subtitle{font-size:1em;font-weight:700}.body{font-size:.85em}.buttons{display:flex;align-items:center;gap:2.5em}.tab-buttons{position:absolute;right:0;top:0;width:50%;height:calc(2rem + 3px);display:flex}.tab-buttons div{display:flex;flex-grow:1;flex-shrink:0;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:gray}.tab-buttons div:hover{border-bottom:3px solid #808080}.tab-buttons div.selected{background:transparent;color:#262626;border-bottom:3px solid #262626}@media (max-width: 600px){::ng-deep .popup-canvas{min-width:auto!important}::ng-deep .popup-canvas .login-container{flex-direction:column-reverse;gap:1.5rem}::ng-deep .popup-canvas .login-column-expanded{min-width:12.8em}.buttons{gap:1.5em;flex-wrap:wrap}.tab-buttons{width:100%}}\n"] }]
237
+ }], template: "<biit-popup no-header *transloco=\"let t\">\n <div id=\"login-tabs\"\n *ngIf=\"allowSignUp && !resetView\"\n class=\"tab-buttons\"\n >\n <div id=\"tab-login\"\n [class.selected]=\"!signUpView\"\n (click)=\"signUpView = false\"\n >\n {{ t('login.log_in') }}\n </div>\n <div id=\"tab-signup\"\n [class.selected]=\"signUpView\"\n (click)=\"signUpView = true\"\n >\n {{ t('login.sign_up') }}\n </div>\n </div>\n <div class=\"login-container\" [class.allow-signup]=\"allowSignUp\">\n <div class=\"login-column\">\n <div class=\"login-icon-square\">\n <div class=\"login-keyring\"></div>\n <biit-icon [name]=\"$any('key_' + keyId)\" class=\"login-key-icon\"></biit-icon>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"resetView ? resetForm : signUpView ? signUpForm : loginForm\"></ng-container>\n </div>\n</biit-popup>\n\n<ng-template #loginForm>\n <div id=\"login-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"login-username\" [(ngModel)]=\"login.username\" fieldName=\"username\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"login-password\" [(ngModel)]=\"login.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <biit-toggle\n class=\"margin-vertical-14\"\n [(ngModel)]=\"login.remember\">\n {{ t('login.remember') }}\n </biit-toggle>\n <div class=\"margin-top-18 centered\">\n <button id=\"login-button\" biit-button primary\n (click)=\"performLogin()\"\n >\n {{ t('login.take_me_in') }}\n </button>\n </div>\n <div class=\"margin-top-18 centered\">\n <button biit-button tertiary *ngIf=\"allowResetPassword\"\n (click)=\"resetView = true\"\n class=\"smaller-text\"\n >\n {{ t('login.forgot') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #resetForm>\n <div class=\"login-column-expanded\" *transloco=\"let t\">\n <span class=\"title\">\n {{ t('login.reset_password_title') }}\n </span>\n <span class=\"subtitle\"\n style=\"margin-top: 1em;\">\n {{ t('login.reset_password_subtitle') }}\n </span>\n <span class=\"body\"\n style=\"margin-top: 0.5em\">\n {{ t('login.reset_password_body') }}\n </span>\n <biit-input-text [(ngModel)]=\"resetEmail\" fieldName=\"email\" [type]=\"Type.EMAIL\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\"\n (keyup.enter)=\"performResetPassword()\" style=\"margin-top: 2em; margin-bottom: 2.5em\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <div class=\"buttons\">\n <button biit-button (click)=\"performResetPassword()\">\n {{ t('login.reset') }}\n </button>\n <button biit-button tertiary (click)=\"restartView()\" class=\"smaller-text\">\n {{ t('login.i_remember') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #signUpForm>\n <div id=\"signup-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"signup-username\" [(ngModel)]=\"signUpData.username\" fieldName=\"username\"\n *ngIf=\"!signUpGeneratedUsername\"\n [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n (ngModelChange)=\"usernameSearch.next($event)\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-name\" [(ngModel)]=\"signUpData.name\" fieldName=\"name\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.NAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.name')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-lastname\" [(ngModel)]=\"signUpData.lastname\" fieldName=\"lastname\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.LASTNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.lastname')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-email\" [(ngModel)]=\"signUpData.email\" fieldName=\"email\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\" [required]=\"true\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <biit-dropdown\n *ngIf=\"teams && teams.length\"\n [(ngModel)]=\"dumbTeam\"\n [required]=\"true\"\n [data]=\"teams\"\n value=\"key\"\n label=\"label\"\n title=\"{{t('login.team')}}\" class=\"login-input\"/>\n <biit-input-text id=\"signup-password\" [(ngModel)]=\"signUpData.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\" *ngIf=\"!signUpGeneratedPassword\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <div class=\"margin-top-18 centered\">\n <button id=\"signup-button\" biit-button primary\n (click)=\"performSignUp()\"\n >\n {{ t('login.sign_me_up') }}\n </button>\n </div>\n </div>\n <div *transloco=\"let t\">\n <biit-popup *ngIf=\"notification && showNotification\" id=\"warning-popup\"\n [title]=\"t('login-welcome.warning_window.tittle')\"\n closable\n (onClosed)=\"showNotification = false\">\n <div [innerHTML]=\"t('login-welcome.warning_window.content')\"></div>\n </biit-popup>\n </div>\n</ng-template>\n", styles: [".login-container{display:flex;font-size:inherit;column-gap:4.2rem}.login-container.allow-signup{padding:.5rem}.login-column{width:12.8em;display:inline-flex;flex-direction:column}.login-column-expanded{width:20em;display:inline-flex;flex-direction:column}.login-key-icon{position:absolute;margin-top:1em;rotate:90deg;height:12.8em;width:12.8em}.login-keyring{width:1.1em;background:var(--main-color);height:2.85em}.login-icon-square{display:inline-flex;border:solid .175em var(--component-color);width:12.8em;height:12.8em;box-sizing:border-box;flex-direction:column;align-items:center}.login-input{margin-top:1.05em;margin-bottom:1.05em}.margin-vertical-14{margin:.7em 0}.margin-top-18{margin-top:.9em}.centered{display:inline-flex;justify-content:center}.smaller-text{font-size:.9em}.title{font-size:1.5em;font-weight:700}.subtitle{font-size:1em;font-weight:700}.body{font-size:.85em}.buttons{display:flex;align-items:center;gap:2.5em}.tab-buttons{position:absolute;right:0;top:0;width:50%;height:calc(2rem + 3px);display:flex}.tab-buttons div{display:flex;flex-grow:1;flex-shrink:0;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:var(--disabled-primary-color)}.tab-buttons div:hover{border-bottom:3px solid var(--disabled-primary-color)}.tab-buttons div.selected{background:transparent;color:#262626;border-bottom:3px solid var(--active-color)}@media (max-width: 600px){::ng-deep .popup-canvas{min-width:auto!important}::ng-deep .popup-canvas .login-container{flex-direction:column-reverse;gap:1.5rem}::ng-deep .popup-canvas .login-column-expanded{min-width:12.8em}.buttons{gap:1.5em;flex-wrap:wrap}.tab-buttons{width:100%}}\n"] }]
238
238
  }], ctorParameters: function () { return [{ type: i1.TranslocoService }]; }, propDecorators: { login: [{
239
239
  type: Input
240
240
  }], allowSignUp: [{
@@ -1 +1 @@
1
- {"version":3,"file":"biit-solutions-wizardry-theme-login.mjs","sources":["../../../projects/wizardry-theme/login/src/biit-login/models/LoginErrors.ts","../../../projects/wizardry-theme/login/src/biit-login/models/sign-up-request.ts","../../../projects/wizardry-theme/login/src/biit-login/biit-login.component.ts","../../../projects/wizardry-theme/login/src/biit-login/biit-login.component.html","../../../projects/wizardry-theme/login/src/biit-login/biit-login.module.ts","../../../projects/wizardry-theme/login/src/public-api.ts","../../../projects/wizardry-theme/login/src/biit-solutions-wizardry-theme-login.ts"],"sourcesContent":["export enum LoginErrors {\n USERNAME = \"USERNAME\",\n PASSWORD = \"PASSWORD\",\n EMAIL = \"EMAIL\",\n NAME = \"NAME\",\n TEAM = \"TEAM\",\n LASTNAME = \"LASTNAME\"\n}\n","export class SignUpRequest {\n name: string;\n lastname: string;\n username: string;\n email: string;\n password: string;\n team: string;\n organization: string;\n constructor() {\n this.name = '';\n this.lastname = '';\n this.username = '';\n this.email = '';\n this.password = '';\n this.team = null;\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {Type} from '@biit-solutions/wizardry-theme/inputs';\nimport {BiitLogin} from \"@biit-solutions/wizardry-theme/models\";\nimport {LoginErrors} from \"./models/LoginErrors\";\nimport {TRANSLOCO_SCOPE, TranslocoService} from \"@ngneat/transloco\";\nimport {SignUpRequest} from \"./models/sign-up-request\";\nimport {HttpErrorResponse} from \"@angular/common/http\";\nimport {BiitLoginServiceSupport} from \"./models/biit-login-service-support\";\nimport {debounceTime, Subject} from \"rxjs\";\n\n@Component({\n selector: 'biit-login',\n templateUrl: './biit-login.component.html',\n styleUrls: ['./biit-login.component.scss'],\n providers: [{\n provide: TRANSLOCO_SCOPE,\n useValue: {scope: 'wizardry-theme/login', alias: \"login\"},\n multi: true\n }, {\n provide: TRANSLOCO_SCOPE,\n useValue: {scope: 'wizardry-theme/login-welcome', alias: \"login-welcome\"},\n multi: true\n }]\n})\nexport class BiitLoginComponent implements OnInit {\n\n @Input() login: BiitLogin;\n @Input() allowSignUp = false;\n @Input() allowResetPassword = true;\n @Input() signUpGeneratedPassword = false;\n @Input() signUpGeneratedUsername = true;\n @Input() teams: { key: any, label: string }[];\n @Input() biitLoginServiceSupport: BiitLoginServiceSupport;\n @Input() notification: boolean = false;\n @Input() displayLogin: boolean = false;\n @Input() signupIfCookies: boolean = true;\n\n @Output() onLogin: EventEmitter<BiitLogin>;\n @Output() onNotRemember: EventEmitter<void>;\n @Output() onResetPassword: EventEmitter<string>;\n @Output() onSignUp: EventEmitter<SignUpRequest>;\n\n protected readonly keyId: string;\n protected readonly Type = Type;\n protected readonly LoginError = LoginErrors;\n\n protected signUpView = false;\n protected signUpData: SignUpRequest = new SignUpRequest();\n protected resetView = false;\n protected resetEmail = \"\";\n protected dumbTeam: { key: any, label: string };\n\n protected loginErrors: Map<LoginErrors, string>;\n protected readonly LoginErrors = LoginErrors;\n protected readonly PWD_MIN_LENGTH = 12\n protected readonly PWD_MAX_LENGTH = 25\n\n protected usernameSearch: Subject<string> = new Subject();\n protected showNotification: boolean = true;\n\n constructor(public translocoService: TranslocoService) {\n if (!this.login) {\n this.login = new BiitLogin();\n }\n this.usernameSearch.pipe(debounceTime(1000)).subscribe(() => this.checkUsernameExists());\n this.onLogin = new EventEmitter<BiitLogin>();\n this.onNotRemember = new EventEmitter<void>();\n this.onResetPassword = new EventEmitter<string>();\n this.onSignUp = new EventEmitter<SignUpRequest>();\n this.loginErrors = new Map<LoginErrors, string>();\n const generatedId: number = Math.floor(Math.random() * (20 - 1 + 1) + 1);\n this.keyId = `${generatedId < 10 ? '0' : ''}${generatedId}`\n }\n\n ngOnInit() {\n if (this.allowSignUp && !this.displayLogin) {\n if (this.signupIfCookies) {\n const cookiesAccepted: string | null = localStorage.getItem(\"cookies-consent\");\n if (!cookiesAccepted) {\n this.signUpView = true;\n }\n } else {\n this.signUpView = true;\n }\n }\n if (this.teams && this.teams.length) {\n this.dumbTeam = this.teams[0];\n this.signUpData.team = this.dumbTeam.key;\n }\n }\n\n protected performLogin(): void {\n if (this.validateLogin()) {\n //Trim username\n if (this.login && this.login.username) {\n this.login.username = this.login.username.trim();\n }\n this.onLogin.emit(this.login)\n }\n }\n\n private validateLogin(): boolean {\n this.loginErrors.clear();\n if (!this.login.username || !this.login.username.length) {\n this.loginErrors.set(LoginErrors.USERNAME, this.translocoService.translate('login.username-empty'));\n }\n if (!this.login.password || !this.login.password.length) {\n this.loginErrors.set(LoginErrors.PASSWORD, this.translocoService.translate('login.password-empty'));\n }\n return !this.loginErrors.size;\n }\n\n protected performResetPassword(): void {\n if (this.validateResetPassword()) {\n this.onResetPassword.emit(this.resetEmail);\n this.restartView();\n }\n }\n\n private validateResetPassword(): boolean {\n this.loginErrors.clear();\n if (!this.resetEmail.length) {\n this.loginErrors.set(LoginErrors.EMAIL, this.translocoService.translate('login.email-empty'));\n }\n return !this.loginErrors.get(LoginErrors.EMAIL);\n }\n\n restartView() {\n this.loginErrors.clear();\n\n this.resetView = false;\n this.resetEmail = \"\";\n\n this.signUpView = false;\n this.signUpData = new SignUpRequest();\n }\n\n protected performSignUp(): void {\n this.signUpData.team = this.dumbTeam?.key;\n if (this.validateSignUp()) {\n if (this.signUpGeneratedPassword) {\n this.signUpData.password = this.generatePassword();\n }\n if (this.dumbTeam) {\n this.signUpData.team = this.dumbTeam.key;\n }\n this.onSignUp.emit(this.signUpData);\n }\n }\n\n private validateSignUp(): boolean {\n this.loginErrors.clear();\n // if (!this.signUpData.name || !this.signUpData.name.length) {\n // this.loginErrors.set(LoginErrors.NAME, this.translocoService.translate('login.name-empty'));\n // }\n // if (!this.signUpData.lastname || !this.signUpData.lastname.length) {\n // this.loginErrors.set(LoginErrors.LASTNAME, this.translocoService.translate('login.lastname-empty'));\n // }\n if (!this.signUpData.email || !this.signUpData.email.length) {\n this.loginErrors.set(LoginErrors.EMAIL, this.translocoService.translate('login.email-empty'));\n console.error(\"Email is mandatory\");\n }\n if (!this.signUpGeneratedPassword && (!this.signUpData.password || !this.signUpData.password.length)) {\n this.loginErrors.set(LoginErrors.PASSWORD, this.translocoService.translate('login.password-empty'));\n console.error(\"Password is mandatory\");\n }\n if (!this.signUpGeneratedUsername && (!this.signUpData.username || !this.signUpData.username.length)) {\n this.loginErrors.set(LoginErrors.USERNAME, this.translocoService.translate('login.username-empty'));\n console.error(\"Username is mandatory\");\n }\n if ((this.teams && this.teams.length) && (!this.signUpData.team || !this.signUpData.team.length)) {\n this.loginErrors.set(LoginErrors.TEAM, this.translocoService.translate('login.team-mandatory'));\n console.error(\"Team is mandatory\");\n }\n return !this.loginErrors.size;\n }\n\n public generatePassword(): string {\n const pattern: RegExp = /[A-Za-z\\d@$!%*?&]/;\n const randomSize: number = Math.floor(Math.random() * (this.PWD_MAX_LENGTH - this.PWD_MIN_LENGTH + 1))\n + this.PWD_MIN_LENGTH;\n let password: string = '';\n while (password.length < randomSize) {\n const result: string = String.fromCharCode(this.randomChar());\n if (pattern.test(result)) {\n password += result;\n }\n }\n return password;\n }\n\n private randomChar(): number {\n if (window.crypto && window.crypto.getRandomValues) {\n const buffer: Uint8Array = new Uint8Array(1);\n window.crypto.getRandomValues(buffer);\n return buffer[0];\n } else {\n return Math.floor(Math.random() * 256);\n }\n }\n\n\n protected checkUsernameExists(): void {\n if (this.signUpData.username && this.signUpData.username.length) {\n this.biitLoginServiceSupport.checkUserName(this.signUpData.username).then((exists: boolean) => {\n if (exists) {\n this.loginErrors.set(this.LoginError.USERNAME, this.translocoService.translate('login.username-exists'));\n } else {\n this.loginErrors.delete(this.LoginError.USERNAME);\n }\n }).catch((error: HttpErrorResponse) => {\n if (error instanceof HttpErrorResponse) {\n switch (error.status) {\n case 409:\n case 400:\n this.loginErrors.set(this.LoginError.USERNAME, this.translocoService.translate('login.username-exists'));\n break;\n default:\n throw error;\n }\n }\n });\n }\n }\n}\n","<biit-popup no-header *transloco=\"let t\">\n <div id=\"login-tabs\"\n *ngIf=\"allowSignUp && !resetView\"\n class=\"tab-buttons\"\n >\n <div id=\"tab-login\"\n [class.selected]=\"!signUpView\"\n (click)=\"signUpView = false\"\n >\n {{ t('login.log_in') }}\n </div>\n <div id=\"tab-signup\"\n [class.selected]=\"signUpView\"\n (click)=\"signUpView = true\"\n >\n {{ t('login.sign_up') }}\n </div>\n </div>\n <div class=\"login-container\" [class.allow-signup]=\"allowSignUp\">\n <div class=\"login-column\">\n <div class=\"login-icon-square\">\n <div class=\"login-keyring\"></div>\n <biit-icon [name]=\"$any('key_' + keyId)\" class=\"login-key-icon\"></biit-icon>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"resetView ? resetForm : signUpView ? signUpForm : loginForm\"></ng-container>\n </div>\n</biit-popup>\n\n<ng-template #loginForm>\n <div id=\"login-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"login-username\" [(ngModel)]=\"login.username\" fieldName=\"username\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"login-password\" [(ngModel)]=\"login.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <biit-toggle\n class=\"margin-vertical-14\"\n [(ngModel)]=\"login.remember\">\n {{ t('login.remember') }}\n </biit-toggle>\n <div class=\"margin-top-18 centered\">\n <button id=\"login-button\" biit-button primary\n (click)=\"performLogin()\"\n >\n {{ t('login.take_me_in') }}\n </button>\n </div>\n <div class=\"margin-top-18 centered\">\n <button biit-button tertiary *ngIf=\"allowResetPassword\"\n (click)=\"resetView = true\"\n class=\"smaller-text\"\n >\n {{ t('login.forgot') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #resetForm>\n <div class=\"login-column-expanded\" *transloco=\"let t\">\n <span class=\"title\">\n {{ t('login.reset_password_title') }}\n </span>\n <span class=\"subtitle\"\n style=\"margin-top: 1em;\">\n {{ t('login.reset_password_subtitle') }}\n </span>\n <span class=\"body\"\n style=\"margin-top: 0.5em\">\n {{ t('login.reset_password_body') }}\n </span>\n <biit-input-text [(ngModel)]=\"resetEmail\" fieldName=\"email\" [type]=\"Type.EMAIL\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\"\n (keyup.enter)=\"performResetPassword()\" style=\"margin-top: 2em; margin-bottom: 2.5em\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <div class=\"buttons\">\n <button biit-button (click)=\"performResetPassword()\">\n {{ t('login.reset') }}\n </button>\n <button biit-button tertiary (click)=\"restartView()\" class=\"smaller-text\">\n {{ t('login.i_remember') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #signUpForm>\n <div id=\"signup-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"signup-username\" [(ngModel)]=\"signUpData.username\" fieldName=\"username\"\n *ngIf=\"!signUpGeneratedUsername\"\n [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n (ngModelChange)=\"usernameSearch.next($event)\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-name\" [(ngModel)]=\"signUpData.name\" fieldName=\"name\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.NAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.name')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-lastname\" [(ngModel)]=\"signUpData.lastname\" fieldName=\"lastname\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.LASTNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.lastname')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-email\" [(ngModel)]=\"signUpData.email\" fieldName=\"email\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\" [required]=\"true\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <biit-dropdown\n *ngIf=\"teams && teams.length\"\n [(ngModel)]=\"dumbTeam\"\n [required]=\"true\"\n [data]=\"teams\"\n value=\"key\"\n label=\"label\"\n title=\"{{t('login.team')}}\" class=\"login-input\"/>\n <biit-input-text id=\"signup-password\" [(ngModel)]=\"signUpData.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\" *ngIf=\"!signUpGeneratedPassword\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <div class=\"margin-top-18 centered\">\n <button id=\"signup-button\" biit-button primary\n (click)=\"performSignUp()\"\n >\n {{ t('login.sign_me_up') }}\n </button>\n </div>\n </div>\n <div *transloco=\"let t\">\n <biit-popup *ngIf=\"notification && showNotification\" id=\"warning-popup\"\n [title]=\"t('login-welcome.warning_window.tittle')\"\n closable\n (onClosed)=\"showNotification = false\">\n <div [innerHTML]=\"t('login-welcome.warning_window.content')\"></div>\n </biit-popup>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BiitLoginComponent } from './biit-login.component';\nimport {BiitPopupModule} from \"@biit-solutions/wizardry-theme/popup\";\nimport {BiitIconModule} from \"@biit-solutions/wizardry-theme/icon\";\nimport {BiitDropdownModule, BiitInputTextModule, BiitToggleModule} from \"@biit-solutions/wizardry-theme/inputs\";\nimport {FormsModule} from \"@angular/forms\";\nimport {BiitButtonModule} from \"@biit-solutions/wizardry-theme/button\";\nimport {TranslocoRootModule} from \"@biit-solutions/wizardry-theme/i18n\";\n\n\n@NgModule({\n declarations: [\n BiitLoginComponent\n ],\n imports: [\n CommonModule,\n BiitPopupModule,\n BiitIconModule,\n BiitInputTextModule,\n FormsModule,\n BiitToggleModule,\n BiitButtonModule,\n TranslocoRootModule,\n BiitDropdownModule\n ], exports: [\n BiitLoginComponent\n ]\n})\nexport class BiitLoginModule { }\n","/*\n * Public API Surface of wizardry-theme/login\n */\n\nexport * from './biit-login/biit-login.component';\nexport * from './biit-login/biit-login.module';\nexport * from './biit-login/models/sign-up-request';\nexport * from './biit-login/models/biit-login-service-support';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"biit-solutions-wizardry-theme-login.mjs","sources":["../../../projects/wizardry-theme/login/src/biit-login/models/LoginErrors.ts","../../../projects/wizardry-theme/login/src/biit-login/models/sign-up-request.ts","../../../projects/wizardry-theme/login/src/biit-login/biit-login.component.ts","../../../projects/wizardry-theme/login/src/biit-login/biit-login.component.html","../../../projects/wizardry-theme/login/src/biit-login/biit-login.module.ts","../../../projects/wizardry-theme/login/src/public-api.ts","../../../projects/wizardry-theme/login/src/biit-solutions-wizardry-theme-login.ts"],"sourcesContent":["export enum LoginErrors {\n USERNAME = \"USERNAME\",\n PASSWORD = \"PASSWORD\",\n EMAIL = \"EMAIL\",\n NAME = \"NAME\",\n TEAM = \"TEAM\",\n LASTNAME = \"LASTNAME\"\n}\n","export class SignUpRequest {\n name: string;\n lastname: string;\n username: string;\n email: string;\n password: string;\n team: string;\n organization: string;\n constructor() {\n this.name = '';\n this.lastname = '';\n this.username = '';\n this.email = '';\n this.password = '';\n this.team = null;\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {Type} from '@biit-solutions/wizardry-theme/inputs';\nimport {BiitLogin} from \"@biit-solutions/wizardry-theme/models\";\nimport {LoginErrors} from \"./models/LoginErrors\";\nimport {TRANSLOCO_SCOPE, TranslocoService} from \"@ngneat/transloco\";\nimport {SignUpRequest} from \"./models/sign-up-request\";\nimport {HttpErrorResponse} from \"@angular/common/http\";\nimport {BiitLoginServiceSupport} from \"./models/biit-login-service-support\";\nimport {debounceTime, Subject} from \"rxjs\";\n\n@Component({\n selector: 'biit-login',\n templateUrl: './biit-login.component.html',\n styleUrls: ['./biit-login.component.scss'],\n providers: [{\n provide: TRANSLOCO_SCOPE,\n useValue: {scope: 'wizardry-theme/login', alias: \"login\"},\n multi: true\n }, {\n provide: TRANSLOCO_SCOPE,\n useValue: {scope: 'wizardry-theme/login-welcome', alias: \"login-welcome\"},\n multi: true\n }]\n})\nexport class BiitLoginComponent implements OnInit {\n\n @Input() login: BiitLogin;\n @Input() allowSignUp = false;\n @Input() allowResetPassword = true;\n @Input() signUpGeneratedPassword = false;\n @Input() signUpGeneratedUsername = true;\n @Input() teams: { key: any, label: string }[];\n @Input() biitLoginServiceSupport: BiitLoginServiceSupport;\n @Input() notification: boolean = false;\n @Input() displayLogin: boolean = false;\n @Input() signupIfCookies: boolean = true;\n\n @Output() onLogin: EventEmitter<BiitLogin>;\n @Output() onNotRemember: EventEmitter<void>;\n @Output() onResetPassword: EventEmitter<string>;\n @Output() onSignUp: EventEmitter<SignUpRequest>;\n\n protected readonly keyId: string;\n protected readonly Type = Type;\n protected readonly LoginError = LoginErrors;\n\n protected signUpView = false;\n protected signUpData: SignUpRequest = new SignUpRequest();\n protected resetView = false;\n protected resetEmail = \"\";\n protected dumbTeam: { key: any, label: string };\n\n protected loginErrors: Map<LoginErrors, string>;\n protected readonly LoginErrors = LoginErrors;\n protected readonly PWD_MIN_LENGTH = 12\n protected readonly PWD_MAX_LENGTH = 25\n\n protected usernameSearch: Subject<string> = new Subject();\n protected showNotification: boolean = true;\n\n constructor(public translocoService: TranslocoService) {\n if (!this.login) {\n this.login = new BiitLogin();\n }\n this.usernameSearch.pipe(debounceTime(1000)).subscribe(() => this.checkUsernameExists());\n this.onLogin = new EventEmitter<BiitLogin>();\n this.onNotRemember = new EventEmitter<void>();\n this.onResetPassword = new EventEmitter<string>();\n this.onSignUp = new EventEmitter<SignUpRequest>();\n this.loginErrors = new Map<LoginErrors, string>();\n const generatedId: number = Math.floor(Math.random() * (20 - 1 + 1) + 1);\n this.keyId = `${generatedId < 10 ? '0' : ''}${generatedId}`\n }\n\n ngOnInit() {\n if (this.allowSignUp && !this.displayLogin) {\n if (this.signupIfCookies) {\n const cookiesAccepted: string | null = localStorage.getItem(\"cookies-consent\");\n if (!cookiesAccepted) {\n this.signUpView = true;\n }\n } else {\n this.signUpView = true;\n }\n }\n if (this.teams && this.teams.length) {\n this.dumbTeam = this.teams[0];\n this.signUpData.team = this.dumbTeam.key;\n }\n }\n\n protected performLogin(): void {\n if (this.validateLogin()) {\n //Trim username\n if (this.login && this.login.username) {\n this.login.username = this.login.username.trim();\n }\n this.onLogin.emit(this.login)\n }\n }\n\n private validateLogin(): boolean {\n this.loginErrors.clear();\n if (!this.login.username || !this.login.username.length) {\n this.loginErrors.set(LoginErrors.USERNAME, this.translocoService.translate('login.username-empty'));\n }\n if (!this.login.password || !this.login.password.length) {\n this.loginErrors.set(LoginErrors.PASSWORD, this.translocoService.translate('login.password-empty'));\n }\n return !this.loginErrors.size;\n }\n\n protected performResetPassword(): void {\n if (this.validateResetPassword()) {\n this.onResetPassword.emit(this.resetEmail);\n this.restartView();\n }\n }\n\n private validateResetPassword(): boolean {\n this.loginErrors.clear();\n if (!this.resetEmail.length) {\n this.loginErrors.set(LoginErrors.EMAIL, this.translocoService.translate('login.email-empty'));\n }\n return !this.loginErrors.get(LoginErrors.EMAIL);\n }\n\n restartView() {\n this.loginErrors.clear();\n\n this.resetView = false;\n this.resetEmail = \"\";\n\n this.signUpView = false;\n this.signUpData = new SignUpRequest();\n }\n\n protected performSignUp(): void {\n this.signUpData.team = this.dumbTeam?.key;\n if (this.validateSignUp()) {\n if (this.signUpGeneratedPassword) {\n this.signUpData.password = this.generatePassword();\n }\n if (this.dumbTeam) {\n this.signUpData.team = this.dumbTeam.key;\n }\n this.onSignUp.emit(this.signUpData);\n }\n }\n\n private validateSignUp(): boolean {\n this.loginErrors.clear();\n // if (!this.signUpData.name || !this.signUpData.name.length) {\n // this.loginErrors.set(LoginErrors.NAME, this.translocoService.translate('login.name-empty'));\n // }\n // if (!this.signUpData.lastname || !this.signUpData.lastname.length) {\n // this.loginErrors.set(LoginErrors.LASTNAME, this.translocoService.translate('login.lastname-empty'));\n // }\n if (!this.signUpData.email || !this.signUpData.email.length) {\n this.loginErrors.set(LoginErrors.EMAIL, this.translocoService.translate('login.email-empty'));\n console.error(\"Email is mandatory\");\n }\n if (!this.signUpGeneratedPassword && (!this.signUpData.password || !this.signUpData.password.length)) {\n this.loginErrors.set(LoginErrors.PASSWORD, this.translocoService.translate('login.password-empty'));\n console.error(\"Password is mandatory\");\n }\n if (!this.signUpGeneratedUsername && (!this.signUpData.username || !this.signUpData.username.length)) {\n this.loginErrors.set(LoginErrors.USERNAME, this.translocoService.translate('login.username-empty'));\n console.error(\"Username is mandatory\");\n }\n if ((this.teams && this.teams.length) && (!this.signUpData.team || !this.signUpData.team.length)) {\n this.loginErrors.set(LoginErrors.TEAM, this.translocoService.translate('login.team-mandatory'));\n console.error(\"Team is mandatory\");\n }\n return !this.loginErrors.size;\n }\n\n public generatePassword(): string {\n const pattern: RegExp = /[A-Za-z\\d@$!%*?&]/;\n const randomSize: number = Math.floor(Math.random() * (this.PWD_MAX_LENGTH - this.PWD_MIN_LENGTH + 1))\n + this.PWD_MIN_LENGTH;\n let password: string = '';\n while (password.length < randomSize) {\n const result: string = String.fromCharCode(this.randomChar());\n if (pattern.test(result)) {\n password += result;\n }\n }\n return password;\n }\n\n private randomChar(): number {\n if (window.crypto && window.crypto.getRandomValues) {\n const buffer: Uint8Array = new Uint8Array(1);\n window.crypto.getRandomValues(buffer);\n return buffer[0];\n } else {\n return Math.floor(Math.random() * 256);\n }\n }\n\n\n protected checkUsernameExists(): void {\n if (this.signUpData.username && this.signUpData.username.length) {\n this.biitLoginServiceSupport.checkUserName(this.signUpData.username).then((exists: boolean) => {\n if (exists) {\n this.loginErrors.set(this.LoginError.USERNAME, this.translocoService.translate('login.username-exists'));\n } else {\n this.loginErrors.delete(this.LoginError.USERNAME);\n }\n }).catch((error: HttpErrorResponse) => {\n if (error instanceof HttpErrorResponse) {\n switch (error.status) {\n case 409:\n case 400:\n this.loginErrors.set(this.LoginError.USERNAME, this.translocoService.translate('login.username-exists'));\n break;\n default:\n throw error;\n }\n }\n });\n }\n }\n}\n","<biit-popup no-header *transloco=\"let t\">\n <div id=\"login-tabs\"\n *ngIf=\"allowSignUp && !resetView\"\n class=\"tab-buttons\"\n >\n <div id=\"tab-login\"\n [class.selected]=\"!signUpView\"\n (click)=\"signUpView = false\"\n >\n {{ t('login.log_in') }}\n </div>\n <div id=\"tab-signup\"\n [class.selected]=\"signUpView\"\n (click)=\"signUpView = true\"\n >\n {{ t('login.sign_up') }}\n </div>\n </div>\n <div class=\"login-container\" [class.allow-signup]=\"allowSignUp\">\n <div class=\"login-column\">\n <div class=\"login-icon-square\">\n <div class=\"login-keyring\"></div>\n <biit-icon [name]=\"$any('key_' + keyId)\" class=\"login-key-icon\"></biit-icon>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"resetView ? resetForm : signUpView ? signUpForm : loginForm\"></ng-container>\n </div>\n</biit-popup>\n\n<ng-template #loginForm>\n <div id=\"login-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"login-username\" [(ngModel)]=\"login.username\" fieldName=\"username\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"login-password\" [(ngModel)]=\"login.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <biit-toggle\n class=\"margin-vertical-14\"\n [(ngModel)]=\"login.remember\">\n {{ t('login.remember') }}\n </biit-toggle>\n <div class=\"margin-top-18 centered\">\n <button id=\"login-button\" biit-button primary\n (click)=\"performLogin()\"\n >\n {{ t('login.take_me_in') }}\n </button>\n </div>\n <div class=\"margin-top-18 centered\">\n <button biit-button tertiary *ngIf=\"allowResetPassword\"\n (click)=\"resetView = true\"\n class=\"smaller-text\"\n >\n {{ t('login.forgot') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #resetForm>\n <div class=\"login-column-expanded\" *transloco=\"let t\">\n <span class=\"title\">\n {{ t('login.reset_password_title') }}\n </span>\n <span class=\"subtitle\"\n style=\"margin-top: 1em;\">\n {{ t('login.reset_password_subtitle') }}\n </span>\n <span class=\"body\"\n style=\"margin-top: 0.5em\">\n {{ t('login.reset_password_body') }}\n </span>\n <biit-input-text [(ngModel)]=\"resetEmail\" fieldName=\"email\" [type]=\"Type.EMAIL\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\"\n (keyup.enter)=\"performResetPassword()\" style=\"margin-top: 2em; margin-bottom: 2.5em\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <div class=\"buttons\">\n <button biit-button (click)=\"performResetPassword()\">\n {{ t('login.reset') }}\n </button>\n <button biit-button tertiary (click)=\"restartView()\" class=\"smaller-text\">\n {{ t('login.i_remember') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #signUpForm>\n <div id=\"signup-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"signup-username\" [(ngModel)]=\"signUpData.username\" fieldName=\"username\"\n *ngIf=\"!signUpGeneratedUsername\"\n [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n (ngModelChange)=\"usernameSearch.next($event)\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-name\" [(ngModel)]=\"signUpData.name\" fieldName=\"name\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.NAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.name')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-lastname\" [(ngModel)]=\"signUpData.lastname\" fieldName=\"lastname\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.LASTNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.lastname')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-email\" [(ngModel)]=\"signUpData.email\" fieldName=\"email\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\" [required]=\"true\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <biit-dropdown\n *ngIf=\"teams && teams.length\"\n [(ngModel)]=\"dumbTeam\"\n [required]=\"true\"\n [data]=\"teams\"\n value=\"key\"\n label=\"label\"\n title=\"{{t('login.team')}}\" class=\"login-input\"/>\n <biit-input-text id=\"signup-password\" [(ngModel)]=\"signUpData.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\" *ngIf=\"!signUpGeneratedPassword\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <div class=\"margin-top-18 centered\">\n <button id=\"signup-button\" biit-button primary\n (click)=\"performSignUp()\"\n >\n {{ t('login.sign_me_up') }}\n </button>\n </div>\n </div>\n <div *transloco=\"let t\">\n <biit-popup *ngIf=\"notification && showNotification\" id=\"warning-popup\"\n [title]=\"t('login-welcome.warning_window.tittle')\"\n closable\n (onClosed)=\"showNotification = false\">\n <div [innerHTML]=\"t('login-welcome.warning_window.content')\"></div>\n </biit-popup>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BiitLoginComponent } from './biit-login.component';\nimport {BiitPopupModule} from \"@biit-solutions/wizardry-theme/popup\";\nimport {BiitIconModule} from \"@biit-solutions/wizardry-theme/icon\";\nimport {BiitDropdownModule, BiitInputTextModule, BiitToggleModule} from \"@biit-solutions/wizardry-theme/inputs\";\nimport {FormsModule} from \"@angular/forms\";\nimport {BiitButtonModule} from \"@biit-solutions/wizardry-theme/button\";\nimport {TranslocoRootModule} from \"@biit-solutions/wizardry-theme/i18n\";\n\n\n@NgModule({\n declarations: [\n BiitLoginComponent\n ],\n imports: [\n CommonModule,\n BiitPopupModule,\n BiitIconModule,\n BiitInputTextModule,\n FormsModule,\n BiitToggleModule,\n BiitButtonModule,\n TranslocoRootModule,\n BiitDropdownModule\n ], exports: [\n BiitLoginComponent\n ]\n})\nexport class BiitLoginModule { }\n","/*\n * Public API Surface of wizardry-theme/login\n */\n\nexport * from './biit-login/biit-login.component';\nexport * from './biit-login/biit-login.module';\nexport * from './biit-login/models/sign-up-request';\nexport * from './biit-login/models/biit-login-service-support';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAY,WAOX,CAAA;AAPD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAPW,WAAW,KAAX,WAAW,GAOtB,EAAA,CAAA,CAAA;;MCPY,aAAa,CAAA;AAQxB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;AACF;;MCQY,kBAAkB,CAAA;AAoC7B,IAAA,WAAA,CAAmB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAjC5C,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;QAC1B,IAAuB,CAAA,uBAAA,GAAG,KAAK,CAAC;QAChC,IAAuB,CAAA,uBAAA,GAAG,IAAI,CAAC;QAG/B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;QAQtB,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC;QACZ,IAAU,CAAA,UAAA,GAAG,WAAW,CAAC;QAElC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AACnB,QAAA,IAAA,CAAA,UAAU,GAAkB,IAAI,aAAa,EAAE,CAAC;QAChD,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAIP,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAC1B,IAAc,CAAA,cAAA,GAAG,EAAE,CAAA;QACnB,IAAc,CAAA,cAAA,GAAG,EAAE,CAAA;AAE5B,QAAA,IAAA,CAAA,cAAc,GAAoB,IAAI,OAAO,EAAE,CAAC;QAChD,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;AAGzC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;AAC9B,SAAA;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;AACzF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,EAAa,CAAC;AAC7C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAQ,CAAC;AAC9C,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;AAClD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAiB,CAAC;AAClD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;QAClD,MAAM,WAAW,GAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,WAAW,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,WAAW,EAAE,CAAA;KAC5D;IAED,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC1C,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,MAAM,eAAe,GAAkB,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBAC/E,IAAI,CAAC,eAAe,EAAE;AACpB,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,aAAA;AACF,SAAA;QACD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1C,SAAA;KACF;IAES,YAAY,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;;YAExB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACrC,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAClD,aAAA;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC9B,SAAA;KACF;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AACvD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACrG,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AACvD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACrG,SAAA;AACD,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;KAC/B;IAES,oBAAoB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC/F,SAAA;QACD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACjD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AAEzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AAErB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;KACvC;IAES,aAAa,GAAA;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC1C,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBAChC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACpD,aAAA;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1C,aAAA;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrC,SAAA;KACF;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;;;;;;;AAOzB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE;AAC3D,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC9F,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACrC,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACpG,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACpG,YAAA,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACxC,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACpG,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACpG,YAAA,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAChG,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAChG,YAAA,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACpC,SAAA;AACD,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;KAC/B;IAEM,gBAAgB,GAAA;QACrB,MAAM,OAAO,GAAW,mBAAmB,CAAC;QAC5C,MAAM,UAAU,GAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;cAClG,IAAI,CAAC,cAAc,CAAC;QACxB,IAAI,QAAQ,GAAW,EAAE,CAAC;AAC1B,QAAA,OAAO,QAAQ,CAAC,MAAM,GAAG,UAAU,EAAE;YACnC,MAAM,MAAM,GAAW,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,YAAA,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACxB,QAAQ,IAAI,MAAM,CAAC;AACpB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,QAAQ,CAAC;KACjB;IAEO,UAAU,GAAA;QAChB,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE;AAClD,YAAA,MAAM,MAAM,GAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7C,YAAA,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACtC,YAAA,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;AACxC,SAAA;KACF;IAGS,mBAAmB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC/D,YAAA,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAe,KAAI;AAC5F,gBAAA,IAAI,MAAM,EAAE;oBACV,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAC1G,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnD,iBAAA;AACH,aAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAwB,KAAI;gBACpC,IAAI,KAAK,YAAY,iBAAiB,EAAE;oBACtC,QAAQ,KAAK,CAAC,MAAM;AAClB,wBAAA,KAAK,GAAG,CAAC;AACT,wBAAA,KAAK,GAAG;4BACN,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC;4BACzG,MAAM;AACR,wBAAA;AACE,4BAAA,MAAM,KAAK,CAAC;AACf,qBAAA;AACF,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;;gHAvMU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,8gBAVlB,CAAC;AACV,YAAA,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,EAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAC;AACzD,YAAA,KAAK,EAAE,IAAI;SACZ,EAAE;AACD,YAAA,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,EAAC,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,eAAe,EAAC;AACzE,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA,CAAC,0BCtBJ,mzMA4IA,EAAA,MAAA,EAAA,CAAA,qoDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDpHa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAd9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,aAGX,CAAC;AACV,4BAAA,OAAO,EAAE,eAAe;4BACxB,QAAQ,EAAE,EAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAC;AACzD,4BAAA,KAAK,EAAE,IAAI;yBACZ,EAAE;AACD,4BAAA,OAAO,EAAE,eAAe;4BACxB,QAAQ,EAAE,EAAC,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,eAAe,EAAC;AACzE,4BAAA,KAAK,EAAE,IAAI;yBACZ,CAAC,EAAA,QAAA,EAAA,mzMAAA,EAAA,MAAA,EAAA,CAAA,qoDAAA,CAAA,EAAA,CAAA;uGAIO,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBACG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MEXI,eAAe,CAAA;;6GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;8GAAf,eAAe,EAAA,YAAA,EAAA,CAhBxB,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAGlB,YAAY;QACZ,eAAe;QACf,cAAc;QACd,mBAAmB;QACnB,WAAW;QACX,gBAAgB;QAChB,gBAAgB;QAChB,mBAAmB;AACnB,QAAA,kBAAkB,aAElB,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAGT,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAbxB,YAAY;QACZ,eAAe;QACf,cAAc;QACd,mBAAmB;QACnB,WAAW;QACX,gBAAgB;QAChB,gBAAgB;QAChB,mBAAmB;QACnB,kBAAkB,CAAA,EAAA,CAAA,CAAA;4FAKT,eAAe,EAAA,UAAA,EAAA,CAAA;kBAlB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,cAAc;wBACd,mBAAmB;wBACnB,WAAW;wBACX,gBAAgB;wBAChB,gBAAgB;wBAChB,mBAAmB;wBACnB,kBAAkB;AACnB,qBAAA,EAAE,OAAO,EAAE;wBACV,kBAAkB;AACnB,qBAAA;AACF,iBAAA,CAAA;;;AC5BD;;AAEG;;ACFH;;AAEG;;;;"}
@@ -67,10 +67,10 @@ class BiitTabGroupComponent {
67
67
  }
68
68
  }
69
69
  BiitTabGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitTabGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
70
- BiitTabGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitTabGroupComponent, selector: "biit-tab-group", inputs: { loading: "loading" }, outputs: { onTabClick: "onTabClick" }, queries: [{ propertyName: "tabs", predicate: BiitTabComponent }], viewQueries: [{ propertyName: "header", first: true, predicate: ["tabHeader"], descendants: true }], ngImport: i0, template: "<div class=\"tab-group\" id=\"tabs\">\n <div class=\"tab-header\" #tabHeader>\n <div *ngFor=\"let tab of tabs\"\n [attr.id]=\"'tab-' + tab.name\"\n (click)=\"activateTab(tab)\"\n [class.active]=\"tab.active\"\n [class.error]=\"tab.error\"\n [class.compact-mode]=\"compactMode\"\n class=\"tab-selector\"\n [tooltip]=\"compactMode && !tab.active ? tab.name : null\"\n >\n <a>{{ tab.name }}</a>\n </div>\n </div>\n <biit-progress-bar *ngIf=\"loading\"\n [type]=\"BiitProgressBarType.INDETERMINATE\"\n ></biit-progress-bar>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".tab-group{width:inherit;height:inherit;max-height:100%;line-height:100%;display:flex;flex-direction:column;background:transparent}.tab-group>.tab-header{width:100%;height:calc(2rem + 3px);min-height:calc(2rem + 3px);font-weight:400;font-size:1rem;display:flex}.tab-group>.tab-header>.tab-selector{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:0 1rem;border-bottom:3px solid transparent}.tab-group>.tab-header>.tab-selector.compact-mode.active{min-width:20%}.tab-group>.tab-header>.tab-selector.compact-mode:not(.active) a{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.tab-group>.tab-header>.tab-selector.error{color:#a1093f}.tab-group>.tab-header>.tab-selector.active{flex-shrink:0}.tab-group>.tab-header>.tab-selector.active.error{color:#a1093f;border-bottom:3px solid #A1093F}.tab-group>.tab-header>.tab-selector.active:not(.error){color:#262626;border-bottom:3px solid #262626}.tab-group>.tab-header>.tab-selector:not(.active){color:gray;flex-basis:50%;flex-wrap:wrap;min-width:0}.tab-group>.tab-header>.tab-selector:not(.active).error{color:#a1093f}.tab-group>.tab-header>.tab-selector:not(.active):hover:not(.error){border-bottom:3px solid #808080;color:gray}.tab-group>.tab-header>.tab-selector:not(.active):hover.error{border-bottom:3px solid #A1093F;color:#a1093f}.tab-group>.content{padding:1.5rem;overflow-y:scroll;flex-grow:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BiitTooltipDirective, selector: "[tooltip]", inputs: ["tooltip", "ignorePadding"] }, { kind: "component", type: i2.BiitProgressBarComponent, selector: "biit-progress-bar", inputs: ["type", "_value", "value"] }] });
70
+ BiitTabGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitTabGroupComponent, selector: "biit-tab-group", inputs: { loading: "loading" }, outputs: { onTabClick: "onTabClick" }, queries: [{ propertyName: "tabs", predicate: BiitTabComponent }], viewQueries: [{ propertyName: "header", first: true, predicate: ["tabHeader"], descendants: true }], ngImport: i0, template: "<div class=\"tab-group\" id=\"tabs\">\n <div class=\"tab-header\" #tabHeader>\n <div *ngFor=\"let tab of tabs\"\n [attr.id]=\"'tab-' + tab.name\"\n (click)=\"activateTab(tab)\"\n [class.active]=\"tab.active\"\n [class.error]=\"tab.error\"\n [class.compact-mode]=\"compactMode\"\n class=\"tab-selector\"\n [tooltip]=\"compactMode && !tab.active ? tab.name : null\"\n >\n <a>{{ tab.name }}</a>\n </div>\n </div>\n <biit-progress-bar *ngIf=\"loading\"\n [type]=\"BiitProgressBarType.INDETERMINATE\"\n ></biit-progress-bar>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".tab-group{width:inherit;height:inherit;max-height:100%;line-height:100%;display:flex;flex-direction:column;background:transparent}.tab-group>.tab-header{width:100%;height:calc(2rem + 3px);min-height:calc(2rem + 3px);font-weight:400;font-size:1rem;display:flex}.tab-group>.tab-header>.tab-selector{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:0 1rem;border-bottom:3px solid transparent}.tab-group>.tab-header>.tab-selector.compact-mode.active{min-width:20%}.tab-group>.tab-header>.tab-selector.compact-mode:not(.active) a{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.tab-group>.tab-header>.tab-selector.error{color:var(--error-color)}.tab-group>.tab-header>.tab-selector.active{flex-shrink:0}.tab-group>.tab-header>.tab-selector.active.error{color:var(--error-color);border-bottom:3px solid var(--error-color)}.tab-group>.tab-header>.tab-selector.active:not(.error){color:var(--component-color);border-bottom:3px solid var(--component-color)}.tab-group>.tab-header>.tab-selector:not(.active){color:var(--disabled-primary-color);flex-basis:50%;flex-wrap:wrap;min-width:0}.tab-group>.tab-header>.tab-selector:not(.active).error{color:var(--error-color)}.tab-group>.tab-header>.tab-selector:not(.active):hover:not(.error){border-bottom:3px solid var(--disabled-primary-color);color:var(--disabled-primary-color)}.tab-group>.tab-header>.tab-selector:not(.active):hover.error{border-bottom:3px solid var(--error-color);color:var(--error-color)}.tab-group>.content{padding:1.5rem;overflow-y:scroll;flex-grow:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BiitTooltipDirective, selector: "[tooltip]", inputs: ["tooltip", "ignorePadding"] }, { kind: "component", type: i2.BiitProgressBarComponent, selector: "biit-progress-bar", inputs: ["type", "_value", "value"] }] });
71
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitTabGroupComponent, decorators: [{
72
72
  type: Component,
73
- args: [{ selector: 'biit-tab-group', template: "<div class=\"tab-group\" id=\"tabs\">\n <div class=\"tab-header\" #tabHeader>\n <div *ngFor=\"let tab of tabs\"\n [attr.id]=\"'tab-' + tab.name\"\n (click)=\"activateTab(tab)\"\n [class.active]=\"tab.active\"\n [class.error]=\"tab.error\"\n [class.compact-mode]=\"compactMode\"\n class=\"tab-selector\"\n [tooltip]=\"compactMode && !tab.active ? tab.name : null\"\n >\n <a>{{ tab.name }}</a>\n </div>\n </div>\n <biit-progress-bar *ngIf=\"loading\"\n [type]=\"BiitProgressBarType.INDETERMINATE\"\n ></biit-progress-bar>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".tab-group{width:inherit;height:inherit;max-height:100%;line-height:100%;display:flex;flex-direction:column;background:transparent}.tab-group>.tab-header{width:100%;height:calc(2rem + 3px);min-height:calc(2rem + 3px);font-weight:400;font-size:1rem;display:flex}.tab-group>.tab-header>.tab-selector{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:0 1rem;border-bottom:3px solid transparent}.tab-group>.tab-header>.tab-selector.compact-mode.active{min-width:20%}.tab-group>.tab-header>.tab-selector.compact-mode:not(.active) a{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.tab-group>.tab-header>.tab-selector.error{color:#a1093f}.tab-group>.tab-header>.tab-selector.active{flex-shrink:0}.tab-group>.tab-header>.tab-selector.active.error{color:#a1093f;border-bottom:3px solid #A1093F}.tab-group>.tab-header>.tab-selector.active:not(.error){color:#262626;border-bottom:3px solid #262626}.tab-group>.tab-header>.tab-selector:not(.active){color:gray;flex-basis:50%;flex-wrap:wrap;min-width:0}.tab-group>.tab-header>.tab-selector:not(.active).error{color:#a1093f}.tab-group>.tab-header>.tab-selector:not(.active):hover:not(.error){border-bottom:3px solid #808080;color:gray}.tab-group>.tab-header>.tab-selector:not(.active):hover.error{border-bottom:3px solid #A1093F;color:#a1093f}.tab-group>.content{padding:1.5rem;overflow-y:scroll;flex-grow:1}\n"] }]
73
+ args: [{ selector: 'biit-tab-group', template: "<div class=\"tab-group\" id=\"tabs\">\n <div class=\"tab-header\" #tabHeader>\n <div *ngFor=\"let tab of tabs\"\n [attr.id]=\"'tab-' + tab.name\"\n (click)=\"activateTab(tab)\"\n [class.active]=\"tab.active\"\n [class.error]=\"tab.error\"\n [class.compact-mode]=\"compactMode\"\n class=\"tab-selector\"\n [tooltip]=\"compactMode && !tab.active ? tab.name : null\"\n >\n <a>{{ tab.name }}</a>\n </div>\n </div>\n <biit-progress-bar *ngIf=\"loading\"\n [type]=\"BiitProgressBarType.INDETERMINATE\"\n ></biit-progress-bar>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".tab-group{width:inherit;height:inherit;max-height:100%;line-height:100%;display:flex;flex-direction:column;background:transparent}.tab-group>.tab-header{width:100%;height:calc(2rem + 3px);min-height:calc(2rem + 3px);font-weight:400;font-size:1rem;display:flex}.tab-group>.tab-header>.tab-selector{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:0 1rem;border-bottom:3px solid transparent}.tab-group>.tab-header>.tab-selector.compact-mode.active{min-width:20%}.tab-group>.tab-header>.tab-selector.compact-mode:not(.active) a{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.tab-group>.tab-header>.tab-selector.error{color:var(--error-color)}.tab-group>.tab-header>.tab-selector.active{flex-shrink:0}.tab-group>.tab-header>.tab-selector.active.error{color:var(--error-color);border-bottom:3px solid var(--error-color)}.tab-group>.tab-header>.tab-selector.active:not(.error){color:var(--component-color);border-bottom:3px solid var(--component-color)}.tab-group>.tab-header>.tab-selector:not(.active){color:var(--disabled-primary-color);flex-basis:50%;flex-wrap:wrap;min-width:0}.tab-group>.tab-header>.tab-selector:not(.active).error{color:var(--error-color)}.tab-group>.tab-header>.tab-selector:not(.active):hover:not(.error){border-bottom:3px solid var(--disabled-primary-color);color:var(--disabled-primary-color)}.tab-group>.tab-header>.tab-selector:not(.active):hover.error{border-bottom:3px solid var(--error-color);color:var(--error-color)}.tab-group>.content{padding:1.5rem;overflow-y:scroll;flex-grow:1}\n"] }]
74
74
  }], propDecorators: { tabs: [{
75
75
  type: ContentChildren,
76
76
  args: [BiitTabComponent]
@@ -123,10 +123,10 @@ class BiitNavUserComponent {
123
123
  }
124
124
  }
125
125
  BiitNavUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitNavUserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
126
- BiitNavUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitNavUserComponent, selector: "biit-nav-user", inputs: { title: "title", subtitle: "subtitle", leftAlign: ["left-align", "leftAlign"] }, ngImport: i0, template: "<div class=\"navbar-user-canvas\" [class.left-align]=\"leftAlign\" id=\"user-area\">\n <div class=\"content\">\n <div class=\"titles\" id=\"user-name\">\n <a *ngIf=\"subtitle?.length\" class=\"subtitle\">{{subtitle}}</a>\n <a>{{title?.length ? (title.length > 16 && title.split(\" \").length > 1 ? title.split(\" \")[0].substring(0, 1) + '. ' + title.split(\" \")[1] : title) : ''}}</a>\n </div>\n <div class=\"avatar\" id=\"user-avatar\">\n <a>{{title?.length ? title.substring(0,1) + title.split(\" \")[1]?.substring(0,1) : ''}}</a>\n </div>\n </div>\n</div>\n", styles: [".navbar-user-canvas{height:2.5rem;width:15rem;display:flex;flex-direction:row;justify-content:flex-end;box-sizing:border-box}.navbar-user-canvas .content{height:inherit;display:flex;flex-direction:row;align-items:center;column-gap:1rem;box-sizing:border-box;padding:.4rem .4rem .4rem .6rem;-webkit-user-select:none;user-select:none;cursor:pointer}.navbar-user-canvas .content:hover{background:#D9D9D9}.navbar-user-canvas .content:active{background:#EDEDED}.navbar-user-canvas .content .titles{display:flex;flex-direction:column;text-align:right;line-height:1rem;width:11.5rem}.navbar-user-canvas .content .titles *{width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.navbar-user-canvas .content .titles .subtitle{font-size:.7rem;text-transform:uppercase}.navbar-user-canvas .content .avatar{height:1.7rem;width:1.7rem;background:#F20D5E;display:flex;align-items:center;justify-content:center;flex-shrink:0}.navbar-user-canvas .content .avatar a{text-transform:uppercase;font-size:.7rem;color:#fff}.navbar-user-canvas.left-align{justify-content:flex-start}.navbar-user-canvas.left-align .content{flex-direction:row-reverse;padding:.4rem .6rem .4rem .4rem}.navbar-user-canvas.left-align .content .titles{text-align:left}@media screen and (max-width: 600px){.navbar-user-canvas{width:unset!important}.titles{display:none!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
126
+ BiitNavUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitNavUserComponent, selector: "biit-nav-user", inputs: { title: "title", subtitle: "subtitle", leftAlign: ["left-align", "leftAlign"] }, ngImport: i0, template: "<div class=\"navbar-user-canvas\" [class.left-align]=\"leftAlign\" id=\"user-area\">\n <div class=\"content\">\n <div class=\"titles\" id=\"user-name\">\n <a *ngIf=\"subtitle?.length\" class=\"subtitle\">{{subtitle}}</a>\n <a>{{title?.length ? (title.length > 16 && title.split(\" \").length > 1 ? title.split(\" \")[0].substring(0, 1) + '. ' + title.split(\" \")[1] : title) : ''}}</a>\n </div>\n <div class=\"avatar\" id=\"user-avatar\">\n <a>{{title?.length ? title.substring(0,1) + title.split(\" \")[1]?.substring(0,1) : ''}}</a>\n </div>\n </div>\n</div>\n", styles: [".navbar-user-canvas{height:2.5rem;width:15rem;display:flex;flex-direction:row;justify-content:flex-end;box-sizing:border-box}.navbar-user-canvas .content{height:inherit;display:flex;flex-direction:row;align-items:center;column-gap:1rem;box-sizing:border-box;padding:.4rem .4rem .4rem .6rem;-webkit-user-select:none;user-select:none;cursor:pointer}.navbar-user-canvas .content:hover{background:var(--main-background)}.navbar-user-canvas .content:active{background:var(--hover-color)}.navbar-user-canvas .content .titles{display:flex;flex-direction:column;text-align:right;line-height:1rem;width:11.5rem}.navbar-user-canvas .content .titles *{width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.navbar-user-canvas .content .titles .subtitle{font-size:.7rem;text-transform:uppercase}.navbar-user-canvas .content .avatar{height:1.7rem;width:1.7rem;background:var(--main-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.navbar-user-canvas .content .avatar a{text-transform:uppercase;font-size:.7rem;color:var(--main-font-color)}.navbar-user-canvas.left-align{justify-content:flex-start}.navbar-user-canvas.left-align .content{flex-direction:row-reverse;padding:.4rem .6rem .4rem .4rem}.navbar-user-canvas.left-align .content .titles{text-align:left}@media screen and (max-width: 600px){.navbar-user-canvas{width:unset!important}.titles{display:none!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
127
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitNavUserComponent, decorators: [{
128
128
  type: Component,
129
- args: [{ selector: 'biit-nav-user', template: "<div class=\"navbar-user-canvas\" [class.left-align]=\"leftAlign\" id=\"user-area\">\n <div class=\"content\">\n <div class=\"titles\" id=\"user-name\">\n <a *ngIf=\"subtitle?.length\" class=\"subtitle\">{{subtitle}}</a>\n <a>{{title?.length ? (title.length > 16 && title.split(\" \").length > 1 ? title.split(\" \")[0].substring(0, 1) + '. ' + title.split(\" \")[1] : title) : ''}}</a>\n </div>\n <div class=\"avatar\" id=\"user-avatar\">\n <a>{{title?.length ? title.substring(0,1) + title.split(\" \")[1]?.substring(0,1) : ''}}</a>\n </div>\n </div>\n</div>\n", styles: [".navbar-user-canvas{height:2.5rem;width:15rem;display:flex;flex-direction:row;justify-content:flex-end;box-sizing:border-box}.navbar-user-canvas .content{height:inherit;display:flex;flex-direction:row;align-items:center;column-gap:1rem;box-sizing:border-box;padding:.4rem .4rem .4rem .6rem;-webkit-user-select:none;user-select:none;cursor:pointer}.navbar-user-canvas .content:hover{background:#D9D9D9}.navbar-user-canvas .content:active{background:#EDEDED}.navbar-user-canvas .content .titles{display:flex;flex-direction:column;text-align:right;line-height:1rem;width:11.5rem}.navbar-user-canvas .content .titles *{width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.navbar-user-canvas .content .titles .subtitle{font-size:.7rem;text-transform:uppercase}.navbar-user-canvas .content .avatar{height:1.7rem;width:1.7rem;background:#F20D5E;display:flex;align-items:center;justify-content:center;flex-shrink:0}.navbar-user-canvas .content .avatar a{text-transform:uppercase;font-size:.7rem;color:#fff}.navbar-user-canvas.left-align{justify-content:flex-start}.navbar-user-canvas.left-align .content{flex-direction:row-reverse;padding:.4rem .6rem .4rem .4rem}.navbar-user-canvas.left-align .content .titles{text-align:left}@media screen and (max-width: 600px){.navbar-user-canvas{width:unset!important}.titles{display:none!important}}\n"] }]
129
+ args: [{ selector: 'biit-nav-user', template: "<div class=\"navbar-user-canvas\" [class.left-align]=\"leftAlign\" id=\"user-area\">\n <div class=\"content\">\n <div class=\"titles\" id=\"user-name\">\n <a *ngIf=\"subtitle?.length\" class=\"subtitle\">{{subtitle}}</a>\n <a>{{title?.length ? (title.length > 16 && title.split(\" \").length > 1 ? title.split(\" \")[0].substring(0, 1) + '. ' + title.split(\" \")[1] : title) : ''}}</a>\n </div>\n <div class=\"avatar\" id=\"user-avatar\">\n <a>{{title?.length ? title.substring(0,1) + title.split(\" \")[1]?.substring(0,1) : ''}}</a>\n </div>\n </div>\n</div>\n", styles: [".navbar-user-canvas{height:2.5rem;width:15rem;display:flex;flex-direction:row;justify-content:flex-end;box-sizing:border-box}.navbar-user-canvas .content{height:inherit;display:flex;flex-direction:row;align-items:center;column-gap:1rem;box-sizing:border-box;padding:.4rem .4rem .4rem .6rem;-webkit-user-select:none;user-select:none;cursor:pointer}.navbar-user-canvas .content:hover{background:var(--main-background)}.navbar-user-canvas .content:active{background:var(--hover-color)}.navbar-user-canvas .content .titles{display:flex;flex-direction:column;text-align:right;line-height:1rem;width:11.5rem}.navbar-user-canvas .content .titles *{width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.navbar-user-canvas .content .titles .subtitle{font-size:.7rem;text-transform:uppercase}.navbar-user-canvas .content .avatar{height:1.7rem;width:1.7rem;background:var(--main-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.navbar-user-canvas .content .avatar a{text-transform:uppercase;font-size:.7rem;color:var(--main-font-color)}.navbar-user-canvas.left-align{justify-content:flex-start}.navbar-user-canvas.left-align .content{flex-direction:row-reverse;padding:.4rem .6rem .4rem .4rem}.navbar-user-canvas.left-align .content .titles{text-align:left}@media screen and (max-width: 600px){.navbar-user-canvas{width:unset!important}.titles{display:none!important}}\n"] }]
130
130
  }], propDecorators: { title: [{
131
131
  type: Input
132
132
  }], subtitle: [{
@@ -219,10 +219,10 @@ class BiitNavMenuComponent {
219
219
  }
220
220
  }
221
221
  BiitNavMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitNavMenuComponent, deps: [{ token: i1$1.Router }, { token: i2$1.ContextMenuService }], target: i0.ɵɵFactoryTarget.Component });
222
- BiitNavMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitNavMenuComponent, selector: "biit-nav-menu", inputs: { routes: "routes" }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["navbarMenu"], descendants: true }, { propertyName: "navbarRef", first: true, predicate: ["navbarMenu"], descendants: true, read: ElementRef }, { propertyName: "menuCanvas", first: true, predicate: ["menuCanvas"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"nav-wrapper\">\n <button class=\"nav-arrow left\" id=\"nav-menu-left\"\n *ngIf=\"showLeft\"\n (click)=\"scrollLeft()\"\n aria-label=\"Scroll left\">\n \u2039\n </button>\n\n <div #menuCanvas class=\"navbar-menu-canvas scroll-x\" id=\"nav-menu\">\n <div class=\"item\" #navItem\n *ngFor=\"let route of routes\"\n [attr.id]=\"'nav-item-' + route.path\"\n [routerLink]=\"route.children ? null : [route.path]\"\n [routerLinkActive]=\"['active']\"\n [class.active]=\"router.url.includes('/'+route.path)\"\n [class.hover]=\"route == hovered && contextMenuService.hasOpenMenu()\"\n [class.disabled]=\"route.data?.['disabled']\"\n [style.display]=\"route.data?.['hidden'] ? 'none' : 'inline-flex'\"\n (click)=\"route.children ? onContextMenu(route, navItem) : null\">\n {{ route.title }}\n <context-menu #navbarMenu menuClass=\"custom-style\">\n <ng-template contextMenuItem\n *ngFor=\"let item of contextMenuItems\"\n [disabled]=\"item.disabled\"\n [visible]=\"item.visible\"\n (execute)=\"router.navigate([item.parent, item.path])\">\n <div [attr.id]=\"'nav-subitem-' + item.path\"\n [class.active]=\"router.url.includes('/' + item.parent + '/' + item.path)\">\n {{ item.title }}\n </div>\n </ng-template>\n </context-menu>\n </div>\n </div>\n\n <button class=\"nav-arrow right\" id=\"nav-menu-right\"\n *ngIf=\"showRight\"\n (click)=\"scrollRight()\n\"\n aria-label=\"Scroll right\">\n \u203A\n </button>\n</div>\n", styles: ["@charset \"UTF-8\";.navbar-menu-canvas{height:2.5rem;display:flex;background:white;overflow-x:auto}.navbar-menu-canvas .item{display:inline-flex;align-items:center;justify-content:center;padding:0 1rem;-webkit-user-select:none;user-select:none;cursor:pointer}.navbar-menu-canvas .item:active,.navbar-menu-canvas .item.active,.navbar-menu-canvas .item.open{background:#EDEDED}.navbar-menu-canvas .item:hover,.navbar-menu-canvas .item.hover{background:#D9D9D9}.disabled{color:#ededed;pointer-events:none}.nav-wrapper{position:relative;display:flex;align-items:stretch}.navbar-menu-canvas.scroll-x{overflow-x:auto;overflow-y:hidden;display:flex;gap:.5rem;scrollbar-width:none}.navbar-menu-canvas.scroll-x::-webkit-scrollbar{display:none}.item{flex:0 0 auto}.nav-arrow{position:absolute;top:0;bottom:0;width:32px;padding:0;border:none;background:linear-gradient(to right,rgba(255,255,255,.9),rgba(255,255,255,0)) center/100% 100%;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;z-index:5;color:#333;backdrop-filter:blur(2px)}.nav-arrow.left{left:0;background:linear-gradient(to right,rgba(255,255,255,.9),transparent)}.nav-arrow.right{right:0;background:linear-gradient(to left,rgba(255,255,255,.9),transparent)}.nav-arrow:hover{color:#000}.custom-style{--ngx-contextmenu-focusable-border-bottom: 1px dotted #70757e;--ngx-contextmenu-border-radius: 4px;--ngx-contextmenu-border: 1px solid rgba(0, 0, 0, .18);--ngx-contextmenu-margin: 2px 0 0;--ngx-contextmenu-min-width: 160px;--ngx-contextmenu-padding: 5px 0;--ngx-contextmenu-max-height: 100vh;--ngx-contextmenu-item-arrow-left: \"\\25c0\";--ngx-contextmenu-item-arrow-right: \"\\25b6\";--ngx-contextmenu-item-separator-color: #8a909a;--ngx-contextmenu-item-separator-padding: 10px;--ngx-contextmenu-item-separator-width: 96%;--ngx-contextmenu-item-padding: 6px 20px;--ngx-contextmenu-item-text-hover-color: #5a6473}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i2$1.ContextMenuComponent, selector: "context-menu", inputs: ["menuClass", "disabled", "dir"], outputs: ["open", "close"] }, { kind: "directive", type: i2$1.ContextMenuItemDirective, selector: "[contextMenuItem]", inputs: ["subMenu", "divider", "disabled", "passive", "visible"], outputs: ["execute"] }], encapsulation: i0.ViewEncapsulation.None });
222
+ BiitNavMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitNavMenuComponent, selector: "biit-nav-menu", inputs: { routes: "routes" }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["navbarMenu"], descendants: true }, { propertyName: "navbarRef", first: true, predicate: ["navbarMenu"], descendants: true, read: ElementRef }, { propertyName: "menuCanvas", first: true, predicate: ["menuCanvas"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"nav-wrapper\">\n <button class=\"nav-arrow left\" id=\"nav-menu-left\"\n *ngIf=\"showLeft\"\n (click)=\"scrollLeft()\"\n aria-label=\"Scroll left\">\n \u2039\n </button>\n\n <div #menuCanvas class=\"navbar-menu-canvas scroll-x\" id=\"nav-menu\">\n <div class=\"item\" #navItem\n *ngFor=\"let route of routes\"\n [attr.id]=\"'nav-item-' + route.path\"\n [routerLink]=\"route.children ? null : [route.path]\"\n [routerLinkActive]=\"['active']\"\n [class.active]=\"router.url.includes('/'+route.path)\"\n [class.hover]=\"route == hovered && contextMenuService.hasOpenMenu()\"\n [class.disabled]=\"route.data?.['disabled']\"\n [style.display]=\"route.data?.['hidden'] ? 'none' : 'inline-flex'\"\n (click)=\"route.children ? onContextMenu(route, navItem) : null\">\n {{ route.title }}\n <context-menu #navbarMenu menuClass=\"custom-style\">\n <ng-template contextMenuItem\n *ngFor=\"let item of contextMenuItems\"\n [disabled]=\"item.disabled\"\n [visible]=\"item.visible\"\n (execute)=\"router.navigate([item.parent, item.path])\">\n <div [attr.id]=\"'nav-subitem-' + item.path\"\n [class.active]=\"router.url.includes('/' + item.parent + '/' + item.path)\">\n {{ item.title }}\n </div>\n </ng-template>\n </context-menu>\n </div>\n </div>\n\n <button class=\"nav-arrow right\" id=\"nav-menu-right\"\n *ngIf=\"showRight\"\n (click)=\"scrollRight()\n\"\n aria-label=\"Scroll right\">\n \u203A\n </button>\n</div>\n", styles: ["@charset \"UTF-8\";.navbar-menu-canvas{height:2.5rem;display:flex;background:white;overflow-x:auto}.navbar-menu-canvas .item{display:inline-flex;align-items:center;justify-content:center;padding:0 1rem;-webkit-user-select:none;user-select:none;cursor:pointer}.navbar-menu-canvas .item:active,.navbar-menu-canvas .item.active,.navbar-menu-canvas .item.open{background:var(--hover-color)}.navbar-menu-canvas .item:hover,.navbar-menu-canvas .item.hover{background:var(--main-background)}.disabled{color:var(--hover-color);pointer-events:none}.nav-wrapper{position:relative;display:flex;align-items:stretch}.navbar-menu-canvas.scroll-x{overflow-x:auto;overflow-y:hidden;display:flex;gap:.5rem;scrollbar-width:none}.navbar-menu-canvas.scroll-x::-webkit-scrollbar{display:none}.item{flex:0 0 auto}.nav-arrow{position:absolute;top:0;bottom:0;width:32px;padding:0;border:none;background:linear-gradient(to right,rgba(255,255,255,.9),rgba(255,255,255,0)) center/100% 100%;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;z-index:5;color:#333;backdrop-filter:blur(2px)}.nav-arrow.left{left:0;background:linear-gradient(to right,rgba(255,255,255,.9),transparent)}.nav-arrow.right{right:0;background:linear-gradient(to left,rgba(255,255,255,.9),transparent)}.nav-arrow:hover{color:#000}.custom-style{--ngx-contextmenu-focusable-border-bottom: 1px dotted #70757e;--ngx-contextmenu-border-radius: 4px;--ngx-contextmenu-border: 1px solid rgba(0, 0, 0, .18);--ngx-contextmenu-margin: 2px 0 0;--ngx-contextmenu-min-width: 160px;--ngx-contextmenu-padding: 5px 0;--ngx-contextmenu-max-height: 100vh;--ngx-contextmenu-item-arrow-left: \"\\25c0\";--ngx-contextmenu-item-arrow-right: \"\\25b6\";--ngx-contextmenu-item-separator-color: $separator-color;--ngx-contextmenu-item-separator-padding: 10px;--ngx-contextmenu-item-separator-width: 96%;--ngx-contextmenu-item-padding: 6px 20px;--ngx-contextmenu-item-text-hover-color: $text-over-color}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i2$1.ContextMenuComponent, selector: "context-menu", inputs: ["menuClass", "disabled", "dir"], outputs: ["open", "close"] }, { kind: "directive", type: i2$1.ContextMenuItemDirective, selector: "[contextMenuItem]", inputs: ["subMenu", "divider", "disabled", "passive", "visible"], outputs: ["execute"] }], encapsulation: i0.ViewEncapsulation.None });
223
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitNavMenuComponent, decorators: [{
224
224
  type: Component,
225
- args: [{ selector: 'biit-nav-menu', encapsulation: ViewEncapsulation.None, template: "<div class=\"nav-wrapper\">\n <button class=\"nav-arrow left\" id=\"nav-menu-left\"\n *ngIf=\"showLeft\"\n (click)=\"scrollLeft()\"\n aria-label=\"Scroll left\">\n \u2039\n </button>\n\n <div #menuCanvas class=\"navbar-menu-canvas scroll-x\" id=\"nav-menu\">\n <div class=\"item\" #navItem\n *ngFor=\"let route of routes\"\n [attr.id]=\"'nav-item-' + route.path\"\n [routerLink]=\"route.children ? null : [route.path]\"\n [routerLinkActive]=\"['active']\"\n [class.active]=\"router.url.includes('/'+route.path)\"\n [class.hover]=\"route == hovered && contextMenuService.hasOpenMenu()\"\n [class.disabled]=\"route.data?.['disabled']\"\n [style.display]=\"route.data?.['hidden'] ? 'none' : 'inline-flex'\"\n (click)=\"route.children ? onContextMenu(route, navItem) : null\">\n {{ route.title }}\n <context-menu #navbarMenu menuClass=\"custom-style\">\n <ng-template contextMenuItem\n *ngFor=\"let item of contextMenuItems\"\n [disabled]=\"item.disabled\"\n [visible]=\"item.visible\"\n (execute)=\"router.navigate([item.parent, item.path])\">\n <div [attr.id]=\"'nav-subitem-' + item.path\"\n [class.active]=\"router.url.includes('/' + item.parent + '/' + item.path)\">\n {{ item.title }}\n </div>\n </ng-template>\n </context-menu>\n </div>\n </div>\n\n <button class=\"nav-arrow right\" id=\"nav-menu-right\"\n *ngIf=\"showRight\"\n (click)=\"scrollRight()\n\"\n aria-label=\"Scroll right\">\n \u203A\n </button>\n</div>\n", styles: ["@charset \"UTF-8\";.navbar-menu-canvas{height:2.5rem;display:flex;background:white;overflow-x:auto}.navbar-menu-canvas .item{display:inline-flex;align-items:center;justify-content:center;padding:0 1rem;-webkit-user-select:none;user-select:none;cursor:pointer}.navbar-menu-canvas .item:active,.navbar-menu-canvas .item.active,.navbar-menu-canvas .item.open{background:#EDEDED}.navbar-menu-canvas .item:hover,.navbar-menu-canvas .item.hover{background:#D9D9D9}.disabled{color:#ededed;pointer-events:none}.nav-wrapper{position:relative;display:flex;align-items:stretch}.navbar-menu-canvas.scroll-x{overflow-x:auto;overflow-y:hidden;display:flex;gap:.5rem;scrollbar-width:none}.navbar-menu-canvas.scroll-x::-webkit-scrollbar{display:none}.item{flex:0 0 auto}.nav-arrow{position:absolute;top:0;bottom:0;width:32px;padding:0;border:none;background:linear-gradient(to right,rgba(255,255,255,.9),rgba(255,255,255,0)) center/100% 100%;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;z-index:5;color:#333;backdrop-filter:blur(2px)}.nav-arrow.left{left:0;background:linear-gradient(to right,rgba(255,255,255,.9),transparent)}.nav-arrow.right{right:0;background:linear-gradient(to left,rgba(255,255,255,.9),transparent)}.nav-arrow:hover{color:#000}.custom-style{--ngx-contextmenu-focusable-border-bottom: 1px dotted #70757e;--ngx-contextmenu-border-radius: 4px;--ngx-contextmenu-border: 1px solid rgba(0, 0, 0, .18);--ngx-contextmenu-margin: 2px 0 0;--ngx-contextmenu-min-width: 160px;--ngx-contextmenu-padding: 5px 0;--ngx-contextmenu-max-height: 100vh;--ngx-contextmenu-item-arrow-left: \"\\25c0\";--ngx-contextmenu-item-arrow-right: \"\\25b6\";--ngx-contextmenu-item-separator-color: #8a909a;--ngx-contextmenu-item-separator-padding: 10px;--ngx-contextmenu-item-separator-width: 96%;--ngx-contextmenu-item-padding: 6px 20px;--ngx-contextmenu-item-text-hover-color: #5a6473}\n"] }]
225
+ args: [{ selector: 'biit-nav-menu', encapsulation: ViewEncapsulation.None, template: "<div class=\"nav-wrapper\">\n <button class=\"nav-arrow left\" id=\"nav-menu-left\"\n *ngIf=\"showLeft\"\n (click)=\"scrollLeft()\"\n aria-label=\"Scroll left\">\n \u2039\n </button>\n\n <div #menuCanvas class=\"navbar-menu-canvas scroll-x\" id=\"nav-menu\">\n <div class=\"item\" #navItem\n *ngFor=\"let route of routes\"\n [attr.id]=\"'nav-item-' + route.path\"\n [routerLink]=\"route.children ? null : [route.path]\"\n [routerLinkActive]=\"['active']\"\n [class.active]=\"router.url.includes('/'+route.path)\"\n [class.hover]=\"route == hovered && contextMenuService.hasOpenMenu()\"\n [class.disabled]=\"route.data?.['disabled']\"\n [style.display]=\"route.data?.['hidden'] ? 'none' : 'inline-flex'\"\n (click)=\"route.children ? onContextMenu(route, navItem) : null\">\n {{ route.title }}\n <context-menu #navbarMenu menuClass=\"custom-style\">\n <ng-template contextMenuItem\n *ngFor=\"let item of contextMenuItems\"\n [disabled]=\"item.disabled\"\n [visible]=\"item.visible\"\n (execute)=\"router.navigate([item.parent, item.path])\">\n <div [attr.id]=\"'nav-subitem-' + item.path\"\n [class.active]=\"router.url.includes('/' + item.parent + '/' + item.path)\">\n {{ item.title }}\n </div>\n </ng-template>\n </context-menu>\n </div>\n </div>\n\n <button class=\"nav-arrow right\" id=\"nav-menu-right\"\n *ngIf=\"showRight\"\n (click)=\"scrollRight()\n\"\n aria-label=\"Scroll right\">\n \u203A\n </button>\n</div>\n", styles: ["@charset \"UTF-8\";.navbar-menu-canvas{height:2.5rem;display:flex;background:white;overflow-x:auto}.navbar-menu-canvas .item{display:inline-flex;align-items:center;justify-content:center;padding:0 1rem;-webkit-user-select:none;user-select:none;cursor:pointer}.navbar-menu-canvas .item:active,.navbar-menu-canvas .item.active,.navbar-menu-canvas .item.open{background:var(--hover-color)}.navbar-menu-canvas .item:hover,.navbar-menu-canvas .item.hover{background:var(--main-background)}.disabled{color:var(--hover-color);pointer-events:none}.nav-wrapper{position:relative;display:flex;align-items:stretch}.navbar-menu-canvas.scroll-x{overflow-x:auto;overflow-y:hidden;display:flex;gap:.5rem;scrollbar-width:none}.navbar-menu-canvas.scroll-x::-webkit-scrollbar{display:none}.item{flex:0 0 auto}.nav-arrow{position:absolute;top:0;bottom:0;width:32px;padding:0;border:none;background:linear-gradient(to right,rgba(255,255,255,.9),rgba(255,255,255,0)) center/100% 100%;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;z-index:5;color:#333;backdrop-filter:blur(2px)}.nav-arrow.left{left:0;background:linear-gradient(to right,rgba(255,255,255,.9),transparent)}.nav-arrow.right{right:0;background:linear-gradient(to left,rgba(255,255,255,.9),transparent)}.nav-arrow:hover{color:#000}.custom-style{--ngx-contextmenu-focusable-border-bottom: 1px dotted #70757e;--ngx-contextmenu-border-radius: 4px;--ngx-contextmenu-border: 1px solid rgba(0, 0, 0, .18);--ngx-contextmenu-margin: 2px 0 0;--ngx-contextmenu-min-width: 160px;--ngx-contextmenu-padding: 5px 0;--ngx-contextmenu-max-height: 100vh;--ngx-contextmenu-item-arrow-left: \"\\25c0\";--ngx-contextmenu-item-arrow-right: \"\\25b6\";--ngx-contextmenu-item-separator-color: $separator-color;--ngx-contextmenu-item-separator-padding: 10px;--ngx-contextmenu-item-separator-width: 96%;--ngx-contextmenu-item-padding: 6px 20px;--ngx-contextmenu-item-text-hover-color: $text-over-color}\n"] }]
226
226
  }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i2$1.ContextMenuService }]; }, propDecorators: { routes: [{
227
227
  type: Input
228
228
  }], contextMenu: [{
@@ -282,10 +282,10 @@ class BiitVerticalMenuComponent {
282
282
  }
283
283
  }
284
284
  BiitVerticalMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitVerticalMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
285
- BiitVerticalMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitVerticalMenuComponent, selector: "biit-vertical-menu", ngImport: i0, template: "<div class=\"vertical-container\">\n <button\n biit-icon\n icon=\"project_add\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"icon-btn\"\n type=\"button\"\n (click)=\"toggleMenu()\">\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayPositions]=\"positions\"\n (overlayOutsideClick)=\"close()\"\n (detach)=\"close()\">\n <div class=\"floating-menu\" role=\"menu\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n\n\n</div>\n", styles: [".vertical-container{position:relative;display:flex;flex-direction:column;gap:4px}.icon-btn{padding:4px;cursor:pointer;display:inline-flex;align-items:center}.icon-btn:focus-visible{outline:2px solid #1976d2;border-radius:4px}.floating-menu{background:#fff;border:3px solid #262626;padding:4px;box-shadow:0 4px 12px #00000026;display:flex;flex-direction:column;z-index:1000}.floating-menu button{background:none;border:none;text-align:left;padding:6px 10px;cursor:pointer;border-radius:4px}.floating-menu button:hover{background:#f3f3f3}\n"], dependencies: [{ kind: "directive", type: i1$2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1$2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i2$2.BiitIconButtonComponent, selector: "button[biit-icon]", inputs: ["icon", "checked"] }] });
285
+ BiitVerticalMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitVerticalMenuComponent, selector: "biit-vertical-menu", ngImport: i0, template: "<div class=\"vertical-container\">\n <button\n biit-icon\n icon=\"project_add\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"icon-btn\"\n type=\"button\"\n (click)=\"toggleMenu()\">\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayPositions]=\"positions\"\n (overlayOutsideClick)=\"close()\"\n (detach)=\"close()\">\n <div class=\"floating-menu\" role=\"menu\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n\n\n</div>\n", styles: [".vertical-container{position:relative;display:flex;flex-direction:column;gap:4px}.icon-btn{padding:4px;cursor:pointer;display:inline-flex;align-items:center}.icon-btn:focus-visible{outline:2px solid var(--component-color);border-radius:4px}.floating-menu{background:var(--light-background);border:3px solid var(--component-color);padding:4px;box-shadow:0 4px 12px #00000026;display:flex;flex-direction:column;z-index:1000}.floating-menu button{background:none;border:none;text-align:left;padding:6px 10px;cursor:pointer;border-radius:4px}.floating-menu button:hover{background:var(--hover-color)}\n"], dependencies: [{ kind: "directive", type: i1$2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1$2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i2$2.BiitIconButtonComponent, selector: "button[biit-icon]", inputs: ["icon", "checked"] }] });
286
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitVerticalMenuComponent, decorators: [{
287
287
  type: Component,
288
- args: [{ selector: 'biit-vertical-menu', template: "<div class=\"vertical-container\">\n <button\n biit-icon\n icon=\"project_add\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"icon-btn\"\n type=\"button\"\n (click)=\"toggleMenu()\">\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayPositions]=\"positions\"\n (overlayOutsideClick)=\"close()\"\n (detach)=\"close()\">\n <div class=\"floating-menu\" role=\"menu\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n\n\n</div>\n", styles: [".vertical-container{position:relative;display:flex;flex-direction:column;gap:4px}.icon-btn{padding:4px;cursor:pointer;display:inline-flex;align-items:center}.icon-btn:focus-visible{outline:2px solid #1976d2;border-radius:4px}.floating-menu{background:#fff;border:3px solid #262626;padding:4px;box-shadow:0 4px 12px #00000026;display:flex;flex-direction:column;z-index:1000}.floating-menu button{background:none;border:none;text-align:left;padding:6px 10px;cursor:pointer;border-radius:4px}.floating-menu button:hover{background:#f3f3f3}\n"] }]
288
+ args: [{ selector: 'biit-vertical-menu', template: "<div class=\"vertical-container\">\n <button\n biit-icon\n icon=\"project_add\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"icon-btn\"\n type=\"button\"\n (click)=\"toggleMenu()\">\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayPositions]=\"positions\"\n (overlayOutsideClick)=\"close()\"\n (detach)=\"close()\">\n <div class=\"floating-menu\" role=\"menu\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n\n\n</div>\n", styles: [".vertical-container{position:relative;display:flex;flex-direction:column;gap:4px}.icon-btn{padding:4px;cursor:pointer;display:inline-flex;align-items:center}.icon-btn:focus-visible{outline:2px solid var(--component-color);border-radius:4px}.floating-menu{background:var(--light-background);border:3px solid var(--component-color);padding:4px;box-shadow:0 4px 12px #00000026;display:flex;flex-direction:column;z-index:1000}.floating-menu button{background:none;border:none;text-align:left;padding:6px 10px;cursor:pointer;border-radius:4px}.floating-menu button:hover{background:var(--hover-color)}\n"] }]
289
289
  }] });
290
290
 
291
291
  class BiitVerticalMenuModule {