herum-shared 0.1.32 → 0.1.34

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostListener, Input, Directive, EventEmitter, ViewChild, Output, Component, Pipe, Inject, HostBinding, forwardRef, ViewChildren, Optional, Self, Injectable, ViewEncapsulation, NgModule } from '@angular/core';
2
+ import { EventEmitter, ViewChild, Output, Input, Component, Pipe, HostListener, Inject, forwardRef, ViewChildren, Optional, Self, Injectable, Directive, ViewEncapsulation, HostBinding, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { formatDate, DOCUMENT, CommonModule, DatePipe } from '@angular/common';
5
5
  import { Subject, BehaviorSubject, forkJoin, EMPTY } from 'rxjs';
@@ -18,18 +18,18 @@ import { MatInputModule } from '@angular/material/input';
18
18
  import { MatSelectModule } from '@angular/material/select';
19
19
  import * as i2$1 from '@angular/material/tooltip';
20
20
  import { MatTooltipModule } from '@angular/material/tooltip';
21
- import * as i1$4 from '@angular/forms';
21
+ import * as i1$3 from '@angular/forms';
22
22
  import { NG_VALUE_ACCESSOR, FormControl, Validators, FormControlName, ControlContainer, ReactiveFormsModule, FormsModule } from '@angular/forms';
23
- import { HERUM_SHARED_CONFIG_TOKEN } from 'herum-shared/environment';
24
- import * as i1$3 from '@angular/common/http';
25
- import { HttpHeaders } from '@angular/common/http';
26
23
  import lottie from 'lottie-web';
27
- import * as i1$5 from 'herum-shared/herum-types';
24
+ import { HERUM_SHARED_CONFIG_TOKEN } from 'herum-shared/environment';
25
+ import * as i4 from 'herum-shared/directives';
26
+ import { DirectivesModule as DirectivesModule$1 } from 'herum-shared/directives';
27
+ import * as i1$4 from 'herum-shared/herum-types';
28
28
  import { QuizHeaderState, microResourceAuthorizationType, ResourceState, TimeUnit, Gender, StepStatus, TableActions } from 'herum-shared/herum-types';
29
29
  import { isTruncatedTitleElement, convertToDate, updateFullYear, getDropdownAnimationStates, toHash, buildPath, setHeaders, remainJustWantedValueInDictionary, getVersionPathParameter, getAssignmentStateDisplayName, replaceInterpolateKeysWithObjectProperties, convertHeightToPixels } from 'herum-shared/utils';
30
30
  import * as i1$8 from '@angular/cdk/clipboard';
31
31
  import { ClipboardModule } from '@angular/cdk/clipboard';
32
- import * as i4 from 'herum-shared/pipes';
32
+ import * as i4$1 from 'herum-shared/pipes';
33
33
  import { PipesModule as PipesModule$1 } from 'herum-shared/pipes';
34
34
  import * as i2$2 from 'herum-shared/atoms';
35
35
  import { AtomsModule as AtomsModule$1 } from 'herum-shared/atoms';
@@ -43,6 +43,8 @@ import * as i1$7 from '@angular/material/core';
43
43
  import { MatNativeDateModule, MAT_DATE_LOCALE } from '@angular/material/core';
44
44
  import { v4 } from 'uuid';
45
45
  import { SYSTEM_AUDIO_VISUAL_CONFIGURATION, SYSTEM_TRACK_TEXT_CHANGES_SERVICE } from 'herum-shared/tokens';
46
+ import * as i1$5 from '@angular/common/http';
47
+ import { HttpHeaders } from '@angular/common/http';
46
48
  import { StorageService } from 'herum-shared/static-services';
47
49
  import { selfIsTeacherExample, closedListExample, permissionsTemplatesExample } from 'herum-shared/objectsExample';
48
50
  import * as i2$4 from '@angular/router';
@@ -58,62 +60,6 @@ import { TableRowHeight } from 'herum-shared/decorators';
58
60
  import { trigger, state, style, transition, animate } from '@angular/animations';
59
61
  import { ErrorMessageDialogComponent as ErrorMessageDialogComponent$1 } from 'herum-shared/errors';
60
62
 
61
- class HerumToolTipDirective {
62
- el;
63
- tooltipText = '';
64
- tooltip;
65
- constructor(el) {
66
- this.el = el;
67
- this.tooltip = document.createElement('div');
68
- this.tooltip.className = 'tooltip';
69
- }
70
- onMouseEnter() {
71
- this.showTooltip();
72
- }
73
- onMouseLeave() {
74
- this.hideTooltip();
75
- }
76
- showTooltip() {
77
- const hostPosition = this.el.nativeElement.getBoundingClientRect();
78
- const tooltipPosition = {
79
- top: window.scrollY + hostPosition.top - this.tooltip.offsetHeight - 30,
80
- left: window.scrollX + hostPosition.left + hostPosition.width / 4 //+ this.tooltip.offsetWidth
81
- };
82
- const bodyRect = document.body.getBoundingClientRect();
83
- const tooltipRect = this.tooltip.getBoundingClientRect();
84
- if (tooltipPosition.left < bodyRect.left) {
85
- tooltipPosition.left = bodyRect.left;
86
- }
87
- else if (tooltipPosition.left + tooltipRect.width > bodyRect.right) {
88
- tooltipPosition.left = bodyRect.right - tooltipRect.width;
89
- }
90
- this.tooltip.style.top = `${tooltipPosition.top}px`;
91
- this.tooltip.style.left = `${tooltipPosition.left}px`;
92
- document.body.appendChild(this.tooltip);
93
- this.tooltip.innerText = this.tooltipText;
94
- }
95
- hideTooltip() {
96
- document.body.removeChild(this.tooltip);
97
- }
98
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumToolTipDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
99
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.17", type: HerumToolTipDirective, isStandalone: false, selector: "[appHerumToolTip]", inputs: { tooltipText: "tooltipText" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 });
100
- }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumToolTipDirective, decorators: [{
102
- type: Directive,
103
- args: [{
104
- standalone: false,
105
- selector: '[appHerumToolTip]'
106
- }]
107
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { tooltipText: [{
108
- type: Input
109
- }], onMouseEnter: [{
110
- type: HostListener,
111
- args: ['mouseenter']
112
- }], onMouseLeave: [{
113
- type: HostListener,
114
- args: ['mouseleave']
115
- }] } });
116
-
117
63
  const max = 3;
118
64
  const min = 0.1;
119
65
  const step = 0.1;
@@ -639,55 +585,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
639
585
  type: Output
640
586
  }] } });
641
587
 
642
- const unwantedSelectors = ["div", null];
643
- class UserActionDirective {
644
- el;
645
- http;
646
- environmentConfig;
647
- description;
648
- constructor(el, http, environmentConfig) {
649
- this.el = el;
650
- this.http = http;
651
- this.environmentConfig = environmentConfig;
652
- }
653
- onClick(event) {
654
- var obj = {
655
- system: this.environmentConfig?.environment?.envName,
656
- currentUrl: this.el.nativeElement?.formAction,
657
- innerText: this.el.nativeElement?.innerText,
658
- attributes: Array.from(Object.values(this.el.nativeElement?.attributes)).map((attribute) => ({
659
- attribute: attribute.name,
660
- value: attribute.value
661
- })),
662
- selector: this.el.nativeElement?.tagName,
663
- viewPath: event.path?.map(viewElement => viewElement.localName).filter(selector => !unwantedSelectors.includes(selector) && selector),
664
- timeStamp: event.timeStamp,
665
- screenX: event.screenX,
666
- screenY: event.screenY,
667
- description: this.description
668
- };
669
- this.http.post(this.environmentConfig?.environment?.userAction, obj).subscribe(res => { });
670
- }
671
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: UserActionDirective, deps: [{ token: i0.ElementRef }, { token: i1$3.HttpClient }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Directive });
672
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.17", type: UserActionDirective, isStandalone: false, selector: "[userAction]", inputs: { description: ["userAction", "description"] }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 });
673
- }
674
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: UserActionDirective, decorators: [{
675
- type: Directive,
676
- args: [{
677
- standalone: false,
678
- selector: '[userAction]'
679
- }]
680
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$3.HttpClient }, { type: undefined, decorators: [{
681
- type: Inject,
682
- args: [HERUM_SHARED_CONFIG_TOKEN]
683
- }] }], propDecorators: { description: [{
684
- type: Input,
685
- args: ['userAction']
686
- }], onClick: [{
687
- type: HostListener,
688
- args: ['click', ['$event']]
689
- }] } });
690
-
691
588
  class HerumPresentationViewerComponent {
692
589
  srcPath;
693
590
  resourceId;
@@ -763,62 +660,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
763
660
  args: ['lottieRef', { static: true }]
764
661
  }] } });
765
662
 
766
- const iconDefaultColor = '#7897a8';
767
- const attribute = 'stroke';
768
- const pathSelector = 'path';
769
- const svgSelector = 'svg';
770
- class SvgOnHoverDirective {
771
- element;
772
- iconHoverColor;
773
- onMouseEnter() {
774
- if (!this.iconHoverColor)
775
- this.iconHoverColor = window.getComputedStyle(document.body).getPropertyValue('--icons-color');
776
- if (this.element.nativeElement.querySelector(svgSelector)?.querySelectorAll(pathSelector).length === 1)
777
- this.setElementAttribute(this.iconHoverColor);
778
- else
779
- ;
780
- this.setElementsAttribute(this.iconHoverColor);
781
- }
782
- onMouseLeave() {
783
- if (this.element.nativeElement.querySelector(svgSelector)?.querySelectorAll(pathSelector).length === 1)
784
- this.setElementAttribute(iconDefaultColor);
785
- else
786
- this.setElementsAttribute(iconDefaultColor);
787
- }
788
- stroke;
789
- constructor(element) {
790
- this.element = element;
791
- }
792
- setElementAttribute(color) {
793
- const element = this.element.nativeElement.querySelector(svgSelector)?.querySelector(pathSelector);
794
- element?.setAttribute(attribute, color);
795
- }
796
- setElementsAttribute(color) {
797
- const elements = this.element.nativeElement.querySelector(svgSelector)?.querySelectorAll(pathSelector);
798
- elements?.forEach(element => element.setAttribute(attribute, color));
799
- }
800
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: SvgOnHoverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
801
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.17", type: SvgOnHoverDirective, isStandalone: false, selector: "[svgOnHover]", inputs: { iconHoverColor: ["svgOnHover", "iconHoverColor"] }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "stroke": "this.stroke" } }, ngImport: i0 });
802
- }
803
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: SvgOnHoverDirective, decorators: [{
804
- type: Directive,
805
- args: [{
806
- standalone: false,
807
- selector: '[svgOnHover]'
808
- }]
809
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { iconHoverColor: [{
810
- type: Input,
811
- args: ['svgOnHover']
812
- }], onMouseEnter: [{
813
- type: HostListener,
814
- args: ['mouseenter']
815
- }], onMouseLeave: [{
816
- type: HostListener,
817
- args: ['mouseleave']
818
- }], stroke: [{
819
- type: HostBinding
820
- }] } });
821
-
822
663
  class HerumButtonComponent {
823
664
  type = 'primary';
824
665
  color = 'regular';
@@ -828,7 +669,7 @@ class HerumButtonComponent {
828
669
  isLoading = false;
829
670
  name;
830
671
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
831
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumButtonComponent, isStandalone: false, selector: "herum-button", inputs: { type: "type", color: "color", size: "size", roundedCorners: "roundedCorners", disabled: "disabled", isLoading: "isLoading", name: "name" }, ngImport: i0, template: "<button userAction class=\"herum-button shadow\" [name]=\"name\"\r\n [ngClass]=\"[type, color ?? '', size, roundedCorners + '-rounded-corners', isLoading ? 'skeleton' : '']\"\r\n [disabled]=\"disabled\">\r\n <ng-content></ng-content>\r\n</button>", styles: ["button{padding:var(--button-padding-size);width:100%;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;font-weight:500;font-size:var(--standard-font-size);box-shadow:0 0 var(--box-shadow-blur) #00000029!important}button:active{transform:scale(.96)}button:focus-visible{outline:none;transform:scale(.96)}.default-rounded-corners{border-radius:var(--border-radius)}.up-rounded-corners{border-radius:8px 8px 0 0}.down-rounded-corners{border-radius:0 0 8px 8px}shadow{box-shadow:0 0 var(--box-shadow-blur) #00000029!important}.fit{width:fit-content;height:fit-content;padding:4px 8px}.small{min-width:var(--minimum-small-button-width-size);height:var(--small-button-height-size)}.medium{min-width:var(--minimum-medium-button-width-size);height:var(--medium-button-height-size)}.big{min-width:var(--minimum-medium-button-width-size);height:var(--big-button-height-size)}.medium-square{min-width:var(--minimum-medium-quare-button-width-size);height:var(--medium-button-height-size)}.primary{background:var(--primary-color);color:var(--light-text-color)}.primary:hover{background:var(--lighter-primary-color)}.primary:active{background:var(--darker-primary-color)}.white{background:#fff;color:var(--icons-color)}.primary[disabled]{background:var(--disabled-background-color);color:var(--disabled-text-color)}.secondary{background:var(--light-background-color);border:var(--secondary-color) 2px solid;color:var(--secondary-color)}.secondary:hover{background:var(--light-background-color);border:var(--lighter-secondary-color) 2px solid;color:var(--lighter-secondary-color)}.secondary:active{border:var(--darker-secondary-color) 2px solid;color:var(--darker-secondary-color)}.secondary[disabled]{background:var(--disabled-background-color);border:var(--disabled-background-color);color:var(--disabled-text-color)}.ghost{background:transparent;outline:transparent;color:var(--secondary-color);box-shadow:none!important}.ghost:hover{color:var(--lighter-secondary-color)}.ghost:active{background:var(--darker-light-background-color);outline:transparent;color:var(--secondary-color);box-shadow:0 0 var(--box-shadow-blur) #00000029!important}.ghost[disabled]{color:var(--disabled-text-color);background-color:transparent}[disabled]{cursor:not-allowed;color:var(--disabled-text-color)}.error{background:var(--error-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
672
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumButtonComponent, isStandalone: false, selector: "herum-button", inputs: { type: "type", color: "color", size: "size", roundedCorners: "roundedCorners", disabled: "disabled", isLoading: "isLoading", name: "name" }, ngImport: i0, template: "<button userAction class=\"herum-button shadow\" [name]=\"name\"\r\n [ngClass]=\"[type, color ?? '', size, roundedCorners + '-rounded-corners', isLoading ? 'skeleton' : '']\"\r\n [disabled]=\"disabled\">\r\n <ng-content></ng-content>\r\n</button>", styles: ["button{padding:var(--button-padding-size);width:100%;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;font-weight:500;font-size:var(--standard-font-size);box-shadow:0 0 var(--box-shadow-blur) #00000029!important}button:active{transform:scale(.96)}button:focus-visible{outline:none;transform:scale(.96)}.default-rounded-corners{border-radius:var(--border-radius)}.up-rounded-corners{border-radius:8px 8px 0 0}.down-rounded-corners{border-radius:0 0 8px 8px}shadow{box-shadow:0 0 var(--box-shadow-blur) #00000029!important}.fit{width:fit-content;height:fit-content;padding:4px 8px}.small{min-width:var(--minimum-small-button-width-size);height:var(--small-button-height-size)}.medium{min-width:var(--minimum-medium-button-width-size);height:var(--medium-button-height-size)}.big{min-width:var(--minimum-medium-button-width-size);height:var(--big-button-height-size)}.medium-square{min-width:var(--minimum-medium-quare-button-width-size);height:var(--medium-button-height-size)}.primary{background:var(--primary-color);color:var(--light-text-color)}.primary:hover{background:var(--lighter-primary-color)}.primary:active{background:var(--darker-primary-color)}.white{background:#fff;color:var(--icons-color)}.primary[disabled]{background:var(--disabled-background-color);color:var(--disabled-text-color)}.secondary{background:var(--light-background-color);border:var(--secondary-color) 2px solid;color:var(--secondary-color)}.secondary:hover{background:var(--light-background-color);border:var(--lighter-secondary-color) 2px solid;color:var(--lighter-secondary-color)}.secondary:active{border:var(--darker-secondary-color) 2px solid;color:var(--darker-secondary-color)}.secondary[disabled]{background:var(--disabled-background-color);border:var(--disabled-background-color);color:var(--disabled-text-color)}.ghost{background:transparent;outline:transparent;color:var(--secondary-color);box-shadow:none!important}.ghost:hover{color:var(--lighter-secondary-color)}.ghost:active{background:var(--darker-light-background-color);outline:transparent;color:var(--secondary-color);box-shadow:0 0 var(--box-shadow-blur) #00000029!important}.ghost[disabled]{color:var(--disabled-text-color);background-color:transparent}[disabled]{cursor:not-allowed;color:var(--disabled-text-color)}.error{background:var(--error-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.UserActionDirective, selector: "[userAction]", inputs: ["userAction"] }] });
832
673
  }
833
674
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumButtonComponent, decorators: [{
834
675
  type: Component,
@@ -1341,7 +1182,7 @@ class QuizOneAnswerQuestionComponent {
1341
1182
  this.destroySubject$.complete();
1342
1183
  }
1343
1184
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QuizOneAnswerQuestionComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
1344
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: QuizOneAnswerQuestionComponent, isStandalone: false, selector: "quiz-one-answer-question", inputs: { instructionTitle: "instructionTitle", question: "question", userAnswers: "userAnswers", quizData: "quizData", areAnswersRevealed: "areAnswersRevealed", areAnswersBlocked: "areAnswersBlocked", isCheckingMode: "isCheckingMode" }, outputs: { onAnswersChange: "onAnswersChange" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"instructionTitle\" class=\"instruction-title\">{{ instructionTitle }}</div>\r\n\r\n<herum-radio-button [options]=\"convertedOptions\" [secondarySelectedOption]=\"correctAnswer\"\r\n [showAdditionalOptionsText]=\"areAnswersRevealed || isCheckingMode\" [isBlocked]=\"areAnswersBlocked\"\r\n [isVertical]=\"true\" [formControl]=\"selectedAnswer\"\r\n [ngClass]=\"{'revealed-answers':areAnswersRevealed || isCheckingMode}\" [additionalOptionsText]=\"answerNotes\">\r\n</herum-radio-button>", styles: ["", ".quiz-container{display:flex;flex-direction:column;gap:16px}.quiz-container p,.quiz-container b{font-size:16px;margin-bottom:.25rem}.quiz-container .quiz-title{font-weight:700}.quiz-container .error-message{color:var(--error-color);font-weight:700}.quiz-container .answer-item{display:flex;flex-direction:row;gap:8px}.answers-container{display:flex;flex-direction:column;gap:16px}.answers-container .answer-item{display:flex;flex-direction:row;gap:8px}.answers-container .answer-note{background-color:var(--light-text-color);border-radius:var(border-radius);font-size:14px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: HerumRadioButtonComponent, selector: "herum-radio-button", inputs: ["options", "isValid", "errorMsg", "isVertical", "isBlocked", "type", "selectedOption", "additionalOptionsText", "showAdditionalOptionsText", "secondarySelectedOption"], outputs: ["selectOptionEmitter"] }] });
1185
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: QuizOneAnswerQuestionComponent, isStandalone: false, selector: "quiz-one-answer-question", inputs: { instructionTitle: "instructionTitle", question: "question", userAnswers: "userAnswers", quizData: "quizData", areAnswersRevealed: "areAnswersRevealed", areAnswersBlocked: "areAnswersBlocked", isCheckingMode: "isCheckingMode" }, outputs: { onAnswersChange: "onAnswersChange" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"instructionTitle\" class=\"instruction-title\">{{ instructionTitle }}</div>\r\n\r\n<herum-radio-button [options]=\"convertedOptions\" [secondarySelectedOption]=\"correctAnswer\"\r\n [showAdditionalOptionsText]=\"areAnswersRevealed || isCheckingMode\" [isBlocked]=\"areAnswersBlocked\"\r\n [isVertical]=\"true\" [formControl]=\"selectedAnswer\"\r\n [ngClass]=\"{'revealed-answers':areAnswersRevealed || isCheckingMode}\" [additionalOptionsText]=\"answerNotes\">\r\n</herum-radio-button>", styles: ["", ".quiz-container{display:flex;flex-direction:column;gap:16px}.quiz-container p,.quiz-container b{font-size:16px;margin-bottom:.25rem}.quiz-container .quiz-title{font-weight:700}.quiz-container .error-message{color:var(--error-color);font-weight:700}.quiz-container .answer-item{display:flex;flex-direction:row;gap:8px}.answers-container{display:flex;flex-direction:column;gap:16px}.answers-container .answer-item{display:flex;flex-direction:row;gap:8px}.answers-container .answer-note{background-color:var(--light-text-color);border-radius:var(border-radius);font-size:14px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: HerumRadioButtonComponent, selector: "herum-radio-button", inputs: ["options", "isValid", "errorMsg", "isVertical", "isBlocked", "type", "selectedOption", "additionalOptionsText", "showAdditionalOptionsText", "secondarySelectedOption"], outputs: ["selectOptionEmitter"] }] });
1345
1186
  }
1346
1187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QuizOneAnswerQuestionComponent, decorators: [{
1347
1188
  type: Component,
@@ -1652,13 +1493,13 @@ class QuizMultiAnswerQuestionComponent {
1652
1493
  this.destroySubject$.next(null);
1653
1494
  this.destroySubject$.complete();
1654
1495
  }
1655
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QuizMultiAnswerQuestionComponent, deps: [{ token: i1$4.FormBuilder }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
1656
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: QuizMultiAnswerQuestionComponent, isStandalone: false, selector: "quiz-multi-answer-question", inputs: { question: "question", quizData: "quizData", userAnswers: "userAnswers", isCheckingMode: "isCheckingMode", areAnswersRevealed: "areAnswersRevealed", areAnswersBlocked: "areAnswersBlocked", correctAnswerCount: "correctAnswerCount" }, outputs: { onAnswersChange: "onAnswersChange", onValidationChange: "onValidationChange" }, viewQueries: [{ propertyName: "checkboxes", predicate: HerumCheckboxComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"main-container\">\r\n <p class=\"correct-answer-count\">\u05D9\u05E9 \u05DC\u05E1\u05DE\u05DF {{ correctAnswerCount }} \u05EA\u05E9\u05D5\u05D1\u05D5\u05EA</p>\r\n\r\n <form *ngIf=\"question.answers\" [formGroup]=\"answersForm\" class=\"answers-container\">\r\n <div class=\"answer-item\" *ngFor=\"let answer of question.answers;let i=index\">\r\n <div class=\"answer-container\" [ngClass]=\"{'revealed-answers':(areAnswersRevealed || isCheckingMode)}\"\r\n [attr.type]=\"(areAnswersRevealed || isCheckingMode) ? answerTypeAttributes[i] : ''\"\r\n [attr.includes-additional-option-text]=\"(additionalOptionsText && additionalOptionsText[i]) ? 'true' : 'false'\">\r\n <herum-checkbox [isBlocked]=\"isBlocked\" [formControlName]=\"controlNamePrefix + i\"\r\n [id]=\"controlNamePrefix + i\">\r\n </herum-checkbox>\r\n\r\n <p class=\"answer-text cursor-pointer\" [ngClass]=\"{'cursor-pointer':!isBlocked}\"\r\n (click)=\"_onAnswerClicked(i)\">{{ answer.content }}</p>\r\n </div>\r\n\r\n <span *ngIf=\"answer.note && (areAnswersRevealed || isCheckingMode)\" class=\"answer-note\">\r\n {{ answer.note }}\r\n </span>\r\n </div>\r\n </form>\r\n</div>", styles: [".answer-text{line-height:1;font-size:14px;font-weight:700}.correct-answer-count{margin-block-end:0;font-size:14px}.answers-container,.main-container{display:flex;flex-direction:column;gap:8px;width:100%}.answer-container{display:flex;align-items:center;gap:8px}.answer-container,.answer-note{flex:1}\n", ".quiz-container{display:flex;flex-direction:column;gap:16px}.quiz-container p,.quiz-container b{font-size:16px;margin-bottom:.25rem}.quiz-container .quiz-title{font-weight:700}.quiz-container .error-message{color:var(--error-color);font-weight:700}.quiz-container .answer-item{display:flex;flex-direction:row;gap:8px}.answers-container{display:flex;flex-direction:column;gap:16px}.answers-container .answer-item{display:flex;flex-direction:row;gap:8px}.answers-container .answer-note{background-color:var(--light-text-color);border-radius:var(border-radius);font-size:14px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: HerumCheckboxComponent, selector: "herum-checkbox", inputs: ["type", "isChecked", "isBlocked"], outputs: ["checkedEmitter"] }] });
1496
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QuizMultiAnswerQuestionComponent, deps: [{ token: i1$3.FormBuilder }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
1497
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: QuizMultiAnswerQuestionComponent, isStandalone: false, selector: "quiz-multi-answer-question", inputs: { question: "question", quizData: "quizData", userAnswers: "userAnswers", isCheckingMode: "isCheckingMode", areAnswersRevealed: "areAnswersRevealed", areAnswersBlocked: "areAnswersBlocked", correctAnswerCount: "correctAnswerCount" }, outputs: { onAnswersChange: "onAnswersChange", onValidationChange: "onValidationChange" }, viewQueries: [{ propertyName: "checkboxes", predicate: HerumCheckboxComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"main-container\">\r\n <p class=\"correct-answer-count\">\u05D9\u05E9 \u05DC\u05E1\u05DE\u05DF {{ correctAnswerCount }} \u05EA\u05E9\u05D5\u05D1\u05D5\u05EA</p>\r\n\r\n <form *ngIf=\"question.answers\" [formGroup]=\"answersForm\" class=\"answers-container\">\r\n <div class=\"answer-item\" *ngFor=\"let answer of question.answers;let i=index\">\r\n <div class=\"answer-container\" [ngClass]=\"{'revealed-answers':(areAnswersRevealed || isCheckingMode)}\"\r\n [attr.type]=\"(areAnswersRevealed || isCheckingMode) ? answerTypeAttributes[i] : ''\"\r\n [attr.includes-additional-option-text]=\"(additionalOptionsText && additionalOptionsText[i]) ? 'true' : 'false'\">\r\n <herum-checkbox [isBlocked]=\"isBlocked\" [formControlName]=\"controlNamePrefix + i\"\r\n [id]=\"controlNamePrefix + i\">\r\n </herum-checkbox>\r\n\r\n <p class=\"answer-text cursor-pointer\" [ngClass]=\"{'cursor-pointer':!isBlocked}\"\r\n (click)=\"_onAnswerClicked(i)\">{{ answer.content }}</p>\r\n </div>\r\n\r\n <span *ngIf=\"answer.note && (areAnswersRevealed || isCheckingMode)\" class=\"answer-note\">\r\n {{ answer.note }}\r\n </span>\r\n </div>\r\n </form>\r\n</div>", styles: [".answer-text{line-height:1;font-size:14px;font-weight:700}.correct-answer-count{margin-block-end:0;font-size:14px}.answers-container,.main-container{display:flex;flex-direction:column;gap:8px;width:100%}.answer-container{display:flex;align-items:center;gap:8px}.answer-container,.answer-note{flex:1}\n", ".quiz-container{display:flex;flex-direction:column;gap:16px}.quiz-container p,.quiz-container b{font-size:16px;margin-bottom:.25rem}.quiz-container .quiz-title{font-weight:700}.quiz-container .error-message{color:var(--error-color);font-weight:700}.quiz-container .answer-item{display:flex;flex-direction:row;gap:8px}.answers-container{display:flex;flex-direction:column;gap:16px}.answers-container .answer-item{display:flex;flex-direction:row;gap:8px}.answers-container .answer-note{background-color:var(--light-text-color);border-radius:var(border-radius);font-size:14px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: HerumCheckboxComponent, selector: "herum-checkbox", inputs: ["type", "isChecked", "isBlocked"], outputs: ["checkedEmitter"] }] });
1657
1498
  }
1658
1499
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QuizMultiAnswerQuestionComponent, decorators: [{
1659
1500
  type: Component,
1660
1501
  args: [{ standalone: false, selector: 'quiz-multi-answer-question', template: "<div class=\"main-container\">\r\n <p class=\"correct-answer-count\">\u05D9\u05E9 \u05DC\u05E1\u05DE\u05DF {{ correctAnswerCount }} \u05EA\u05E9\u05D5\u05D1\u05D5\u05EA</p>\r\n\r\n <form *ngIf=\"question.answers\" [formGroup]=\"answersForm\" class=\"answers-container\">\r\n <div class=\"answer-item\" *ngFor=\"let answer of question.answers;let i=index\">\r\n <div class=\"answer-container\" [ngClass]=\"{'revealed-answers':(areAnswersRevealed || isCheckingMode)}\"\r\n [attr.type]=\"(areAnswersRevealed || isCheckingMode) ? answerTypeAttributes[i] : ''\"\r\n [attr.includes-additional-option-text]=\"(additionalOptionsText && additionalOptionsText[i]) ? 'true' : 'false'\">\r\n <herum-checkbox [isBlocked]=\"isBlocked\" [formControlName]=\"controlNamePrefix + i\"\r\n [id]=\"controlNamePrefix + i\">\r\n </herum-checkbox>\r\n\r\n <p class=\"answer-text cursor-pointer\" [ngClass]=\"{'cursor-pointer':!isBlocked}\"\r\n (click)=\"_onAnswerClicked(i)\">{{ answer.content }}</p>\r\n </div>\r\n\r\n <span *ngIf=\"answer.note && (areAnswersRevealed || isCheckingMode)\" class=\"answer-note\">\r\n {{ answer.note }}\r\n </span>\r\n </div>\r\n </form>\r\n</div>", styles: [".answer-text{line-height:1;font-size:14px;font-weight:700}.correct-answer-count{margin-block-end:0;font-size:14px}.answers-container,.main-container{display:flex;flex-direction:column;gap:8px;width:100%}.answer-container{display:flex;align-items:center;gap:8px}.answer-container,.answer-note{flex:1}\n", ".quiz-container{display:flex;flex-direction:column;gap:16px}.quiz-container p,.quiz-container b{font-size:16px;margin-bottom:.25rem}.quiz-container .quiz-title{font-weight:700}.quiz-container .error-message{color:var(--error-color);font-weight:700}.quiz-container .answer-item{display:flex;flex-direction:row;gap:8px}.answers-container{display:flex;flex-direction:column;gap:16px}.answers-container .answer-item{display:flex;flex-direction:row;gap:8px}.answers-container .answer-note{background-color:var(--light-text-color);border-radius:var(border-radius);font-size:14px}\n"] }]
1661
- }], ctorParameters: () => [{ type: i1$4.FormBuilder }, { type: undefined, decorators: [{
1502
+ }], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: undefined, decorators: [{
1662
1503
  type: Inject,
1663
1504
  args: [HERUM_SHARED_CONFIG_TOKEN]
1664
1505
  }] }], propDecorators: { question: [{
@@ -1981,6 +1822,7 @@ class HerumInputFieldComponent {
1981
1822
  })).subscribe();
1982
1823
  }
1983
1824
  setInputsByFormControl() {
1825
+ console.log(this.ngControl);
1984
1826
  if (!this.ngControl)
1985
1827
  return;
1986
1828
  if (this.ngControl instanceof FormControlName)
@@ -2109,13 +1951,13 @@ class HerumInputFieldComponent {
2109
1951
  this.destroySubject$.complete();
2110
1952
  }
2111
1953
  }
2112
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumInputFieldComponent, deps: [{ token: i1$4.NgControl, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2113
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumInputFieldComponent, isStandalone: false, selector: "herum-input-field", inputs: { type: "type", placeholder: "placeholder", disabled: "disabled", isBlocked: "isBlocked", isValid: "isValid", errorMsg: "errorMsg", showErrorMsgGap: "showErrorMsgGap", inputValue: "inputValue", isLoading: "isLoading", id: "id", debounceTime: "debounceTime", minValue: "minValue", maxValue: "maxValue", isBlurred: "isBlurred", touched: "touched", ltrMode: "ltrMode", preventMacroKeysPressEvent: "preventMacroKeysPressEvent" }, outputs: { inputValueEmitter: "inputValueEmitter" }, host: { listeners: { "keypress": "onKeyPress($event)", "paste": "onPaste($event)" }, properties: { "class.required-control": "isRequired" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div class=\"input-container\" [class]=\"type\">\r\n <input [type]=\"inputHtmlType\" dir=\"rtl\" class=\"w-100 input-field\"\r\n [ngClass]=\"{'error-input':!isValid && !isLoading && touched && isBlurred , 'transparent-text': isLoading, 'ltr':ltrMode}\"\r\n [ngStyle]=\"{'resize': type == 'textBox' ? 'vertical' : 'none'}\" [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || isBlocked || isLoading\" [(ngModel)]=\"inputValue\" [alt]=\"type\"\r\n [id]=\"id ? id :formControlName\" [attr.prevent-macro-keys-press-event]=\"preventMacroKeysPressEvent\"\r\n (ngModelChange)=\"_onInput($event)\" (blur)=\"_setBlurred()\" />\r\n\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngIf=\"type=='search' || type=='search-blur'\">\r\n <span class=\"icon\" [innerHTML]=\"searchImageSvg | safeHtml\" *ngIf=\"!inputValue && !disabled\">\r\n </span>\r\n\r\n <span class=\"icon\" *ngIf=\"disabled\">\r\n <img src=\"assets/shared/icons/input/grey-search.png\" />\r\n </span>\r\n </ng-container>\r\n\r\n <span class=\"icon clickable small-icon\" *ngIf=\"shouldShowClearIcon\" (click)=\"clearInput()\">\r\n <span class=\"small-icon\" [innerHTML]=\"xImageSvg | safeHtml\"></span>\r\n </span>\r\n\r\n <span class=\"icon clickable eye-icon\" *ngIf=\"shouldShowPasswordToggle\"\r\n (mousedown)=\"$event.preventDefault()\" (click)=\"_onTogglePasswordVisibility($event)\">\r\n <img [src]=\"passwordEyeSource\">\r\n </span>\r\n </ng-container>\r\n\r\n <div *ngIf=\"isLoading\" class=\"skeleton skeleton-text input-skeleton\"></div>\r\n</div>\r\n\r\n<label class=\"error-msg right\" *ngIf=\"shouldShowErrorMsg\">\r\n {{errorMsg}}\r\n</label>", styles: [":host{--icon-size: 16px}.input-container .icon{position:absolute;left:12px;cursor:pointer}.icon{stroke:var(--icons-color);height:var(--icon-size);width:var(--icon-size)}.small-icon{fill:var(--icons-color);height:9px}.icon img{width:var(--icon-size);height:var(--icon-size);display:block}.eye-icon{display:inline-flex;align-items:center;justify-content:center}.input-field:disabled{opacity:.6;cursor:not-allowed}.input-skeleton{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90%}.search-blur input{border:1px solid rgba(255,255,255,.6)!important;background-color:#ffffff39!important;color:#fff!important}.search-blur input::placeholder{color:#fff!important}.search-blur .icon,.search-blur .small-icon{stroke:#fff!important}\n", ".input-container{position:relative;display:flex;align-items:center}.input-container .input-field{padding:8px 12px 8px 30px;color:#000;height:var(--atom-input-height)}.input-field{border:1px solid var(--inactive-border-color);padding:var(--button-padding-size);border-radius:var(--border-radius);font-size:var(--standard-font-size);box-shadow:0 0 var(--box-shadow-blur) #00000029!important}.input-field:hover{border-color:var(--icons-color-light-2)}.input-field:focus{outline:none;border-color:var(--icons-color-light-1);box-shadow:0 0 5px var(--icons-color-light-1)}.input-field::placeholder{color:var(--disabled-text-color)}span{justify-content:center;display:flex}img{height:16px}.right{justify-content:right}.error-input,.error-input:focus{border-color:var(--error-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] });
1954
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumInputFieldComponent, deps: [{ token: i1$3.NgControl, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1955
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumInputFieldComponent, isStandalone: false, selector: "herum-input-field", inputs: { type: "type", placeholder: "placeholder", disabled: "disabled", isBlocked: "isBlocked", isValid: "isValid", errorMsg: "errorMsg", showErrorMsgGap: "showErrorMsgGap", inputValue: "inputValue", isLoading: "isLoading", id: "id", debounceTime: "debounceTime", minValue: "minValue", maxValue: "maxValue", isBlurred: "isBlurred", touched: "touched", ltrMode: "ltrMode", preventMacroKeysPressEvent: "preventMacroKeysPressEvent" }, outputs: { inputValueEmitter: "inputValueEmitter" }, host: { listeners: { "keypress": "onKeyPress($event)", "paste": "onPaste($event)" }, properties: { "class.required-control": "isRequired" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div class=\"input-container\" [class]=\"type\">\r\n <input [type]=\"inputHtmlType\" dir=\"rtl\" class=\"w-100 input-field\"\r\n [ngClass]=\"{'error-input':!isValid && !isLoading && touched && isBlurred , 'transparent-text': isLoading, 'ltr':ltrMode}\"\r\n [ngStyle]=\"{'resize': type == 'textBox' ? 'vertical' : 'none'}\" [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || isBlocked || isLoading\" [(ngModel)]=\"inputValue\" [alt]=\"type\"\r\n [id]=\"id ? id :formControlName\" [attr.prevent-macro-keys-press-event]=\"preventMacroKeysPressEvent\"\r\n (ngModelChange)=\"_onInput($event)\" (blur)=\"_setBlurred()\" />\r\n\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngIf=\"type=='search' || type=='search-blur'\">\r\n <span class=\"icon\" [innerHTML]=\"searchImageSvg | safeHtml\" *ngIf=\"!inputValue && !disabled\">\r\n </span>\r\n\r\n <span class=\"icon\" *ngIf=\"disabled\">\r\n <img src=\"assets/shared/icons/input/grey-search.png\" />\r\n </span>\r\n </ng-container>\r\n\r\n <span class=\"icon clickable small-icon\" *ngIf=\"shouldShowClearIcon\" (click)=\"clearInput()\">\r\n <span class=\"small-icon\" [innerHTML]=\"xImageSvg | safeHtml\"></span>\r\n </span>\r\n\r\n <span class=\"icon clickable eye-icon\" *ngIf=\"shouldShowPasswordToggle\"\r\n (mousedown)=\"$event.preventDefault()\" (click)=\"_onTogglePasswordVisibility($event)\">\r\n <img [src]=\"passwordEyeSource\">\r\n </span>\r\n </ng-container>\r\n\r\n <div *ngIf=\"isLoading\" class=\"skeleton skeleton-text input-skeleton\"></div>\r\n</div>\r\n\r\n<label class=\"error-msg right\" *ngIf=\"shouldShowErrorMsg\">\r\n {{errorMsg}}\r\n</label>", styles: [":host{--icon-size: 16px}.input-container .icon{position:absolute;left:12px;cursor:pointer}.icon{stroke:var(--icons-color);height:var(--icon-size);width:var(--icon-size)}.small-icon{fill:var(--icons-color);height:9px}.icon img{width:var(--icon-size);height:var(--icon-size);display:block}.eye-icon{display:inline-flex;align-items:center;justify-content:center}.input-field:disabled{opacity:.6;cursor:not-allowed}.input-skeleton{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90%}.search-blur input{border:1px solid rgba(255,255,255,.6)!important;background-color:#ffffff39!important;color:#fff!important}.search-blur input::placeholder{color:#fff!important}.search-blur .icon,.search-blur .small-icon{stroke:#fff!important}\n", ".input-container{position:relative;display:flex;align-items:center}.input-container .input-field{padding:8px 12px 8px 30px;color:#000;height:var(--atom-input-height)}.input-field{border:1px solid var(--inactive-border-color);padding:var(--button-padding-size);border-radius:var(--border-radius);font-size:var(--standard-font-size);box-shadow:0 0 var(--box-shadow-blur) #00000029!important}.input-field:hover{border-color:var(--icons-color-light-2)}.input-field:focus{outline:none;border-color:var(--icons-color-light-1);box-shadow:0 0 5px var(--icons-color-light-1)}.input-field::placeholder{color:var(--disabled-text-color)}span{justify-content:center;display:flex}img{height:16px}.right{justify-content:right}.error-input,.error-input:focus{border-color:var(--error-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }] });
2114
1956
  }
2115
1957
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumInputFieldComponent, decorators: [{
2116
1958
  type: Component,
2117
1959
  args: [{ standalone: false, selector: 'herum-input-field', host: { '[class.required-control]': 'isRequired' }, template: "<div class=\"input-container\" [class]=\"type\">\r\n <input [type]=\"inputHtmlType\" dir=\"rtl\" class=\"w-100 input-field\"\r\n [ngClass]=\"{'error-input':!isValid && !isLoading && touched && isBlurred , 'transparent-text': isLoading, 'ltr':ltrMode}\"\r\n [ngStyle]=\"{'resize': type == 'textBox' ? 'vertical' : 'none'}\" [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || isBlocked || isLoading\" [(ngModel)]=\"inputValue\" [alt]=\"type\"\r\n [id]=\"id ? id :formControlName\" [attr.prevent-macro-keys-press-event]=\"preventMacroKeysPressEvent\"\r\n (ngModelChange)=\"_onInput($event)\" (blur)=\"_setBlurred()\" />\r\n\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngIf=\"type=='search' || type=='search-blur'\">\r\n <span class=\"icon\" [innerHTML]=\"searchImageSvg | safeHtml\" *ngIf=\"!inputValue && !disabled\">\r\n </span>\r\n\r\n <span class=\"icon\" *ngIf=\"disabled\">\r\n <img src=\"assets/shared/icons/input/grey-search.png\" />\r\n </span>\r\n </ng-container>\r\n\r\n <span class=\"icon clickable small-icon\" *ngIf=\"shouldShowClearIcon\" (click)=\"clearInput()\">\r\n <span class=\"small-icon\" [innerHTML]=\"xImageSvg | safeHtml\"></span>\r\n </span>\r\n\r\n <span class=\"icon clickable eye-icon\" *ngIf=\"shouldShowPasswordToggle\"\r\n (mousedown)=\"$event.preventDefault()\" (click)=\"_onTogglePasswordVisibility($event)\">\r\n <img [src]=\"passwordEyeSource\">\r\n </span>\r\n </ng-container>\r\n\r\n <div *ngIf=\"isLoading\" class=\"skeleton skeleton-text input-skeleton\"></div>\r\n</div>\r\n\r\n<label class=\"error-msg right\" *ngIf=\"shouldShowErrorMsg\">\r\n {{errorMsg}}\r\n</label>", styles: [":host{--icon-size: 16px}.input-container .icon{position:absolute;left:12px;cursor:pointer}.icon{stroke:var(--icons-color);height:var(--icon-size);width:var(--icon-size)}.small-icon{fill:var(--icons-color);height:9px}.icon img{width:var(--icon-size);height:var(--icon-size);display:block}.eye-icon{display:inline-flex;align-items:center;justify-content:center}.input-field:disabled{opacity:.6;cursor:not-allowed}.input-skeleton{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90%}.search-blur input{border:1px solid rgba(255,255,255,.6)!important;background-color:#ffffff39!important;color:#fff!important}.search-blur input::placeholder{color:#fff!important}.search-blur .icon,.search-blur .small-icon{stroke:#fff!important}\n", ".input-container{position:relative;display:flex;align-items:center}.input-container .input-field{padding:8px 12px 8px 30px;color:#000;height:var(--atom-input-height)}.input-field{border:1px solid var(--inactive-border-color);padding:var(--button-padding-size);border-radius:var(--border-radius);font-size:var(--standard-font-size);box-shadow:0 0 var(--box-shadow-blur) #00000029!important}.input-field:hover{border-color:var(--icons-color-light-2)}.input-field:focus{outline:none;border-color:var(--icons-color-light-1);box-shadow:0 0 5px var(--icons-color-light-1)}.input-field::placeholder{color:var(--disabled-text-color)}span{justify-content:center;display:flex}img{height:16px}.right{justify-content:right}.error-input,.error-input:focus{border-color:var(--error-color)}\n"] }]
2118
- }], ctorParameters: () => [{ type: i1$4.NgControl, decorators: [{
1960
+ }], ctorParameters: () => [{ type: i1$3.NgControl, decorators: [{
2119
1961
  type: Optional
2120
1962
  }, {
2121
1963
  type: Self
@@ -2517,7 +2359,7 @@ class HerumHierarchyTreeNodeComponent {
2517
2359
  return this.environmentConfig?.environment?.systemIdentifier == system.hadracha;
2518
2360
  }
2519
2361
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumHierarchyTreeNodeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
2520
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumHierarchyTreeNodeComponent, isStandalone: false, selector: "herum-hierarchy-tree-node", inputs: { treeNodeData: "treeNodeData", size: "size", expandedMode: "expandedMode", showArrow: "showArrow", showAssignmentsDetails: "showAssignmentsDetails", nodeMenuItems: "nodeMenuItems" }, outputs: { onNodeSelected: "onNodeSelected", onMenuItemSelected: "onMenuItemSelected", onExpand: "onExpand" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"node-container\" [class]=\"systemIdentifier\" [id]=\"'tree-node-container-' + treeNodeData.id\"\r\n *ngIf=\"treeNodeData\" [ngClass]=\"treeNodeData.status + ' ' + size + ' ' + expandedMode\" #nodeTitle appHerumToolTip>\r\n <div class=\"decorative-line\"></div>\r\n\r\n <div class=\"menu-icon-container\" *ngIf=\"nodeMenuItems?.length > 0\">\r\n <img src=\"/assets/hadracha/general/menu-button.svg\" [matMenuTriggerFor]=\"menu\">\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item *ngFor=\"let nodeMenuItem of nodeMenuItems\"\r\n (click)=\"_onMenuItemSelected(nodeMenuItem)\">\r\n <img src=\"/assets/hadracha/structs/{{nodeMenuItem.iconName}}.svg\">\r\n {{ nodeMenuItem.displayText }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n\r\n <p #treeNodeDataTitle [id]=\"'tree-node-title-' + treeNodeData.id\"\r\n [matTooltip]=\"_isTruncatedTitleElement(nodeTitle) ? treeNodeData.title : ''\" (click)=\"_onNodeSelected()\">\r\n {{treeNodeData.title | ellipsis:treeNodeDataTitle }}\r\n </p>\r\n\r\n <p class=\"totals\" *ngIf=\"showAssignmentsDetails\">\r\n <ng-container *ngIf=\"isHerum\">\r\n <span [matTooltip]='toRPActualAssignmentsDisplayText'> {{this.treeNodeData.totals?.toRPActualAssignments}}\r\n </span> /\r\n <span [matTooltip]='expectedAssignmentsDisplayText'> {{this.treeNodeData.totals?.toRPExpectedAssignments}}\r\n </span>\r\n <span class=\"invalid-assignments\" [ngClass]=\"{'green':this.treeNodeData.totals?.invalidAssignments == 0}\"\r\n [matTooltip]='invalidAssignmentsDisplayText'>\r\n +{{this.treeNodeData.totals?.invalidAssignments}}\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"isHadracha\">\r\n <div class=\"total-value\">\r\n {{this.treeNodeData.totals.total}}\r\n </div>\r\n <p class=\"total-text\">\u05D7\u05E0\u05D9\u05DB\u05D9\u05DD</p>\r\n </ng-container>\r\n </p>\r\n\r\n <br *ngIf=\"!showAssignmentsDetails\">\r\n\r\n <div class=\"row\">\r\n <herum-progress-bar *ngIf=\"!isHadracha\" [percentage]=\"treeNodeData.percentage ? treeNodeData.percentage:0 \"\r\n [negativePercentage]=\"negativePercentage\" [type]=\"'solid'\" [size]=\"'tight'\">\r\n </herum-progress-bar>\r\n\r\n <span class=\"chevron\" *ngIf=\"showArrow\" [ngStyle]=\"{transform: isExpand ? 'rotate(180deg)' : 'none'}\"\r\n [innerHTML]=\"smallChevronSvg | safeHtml\" (click)=\"_onExpand()\">\r\n </span>\r\n </div>\r\n</div>", styles: [":host{border-radius:0 0 var(--border-radius) var(--border-radius)}.node-container{box-shadow:0 0 var(--box-shadow-blur) #00000029!important;display:flex;flex-direction:column;width:170px;gap:4px;padding:4px;border-radius:var(--border-radius);background-color:#fff}.node-container p{margin:0;font-weight:700;font-size:14px}.node-container .row{justify-content:center;align-items:center;position:relative}.node-container .row .chevron{position:absolute;bottom:-20px;background-color:#fff;border-radius:50%;box-shadow:0 0 var(--box-shadow-blur) #00000029!important;width:20px;cursor:pointer;height:20px;z-index:99;padding:1px;stroke:var(--icons-color)}.node-container .totals{font-size:12px;direction:ltr;margin-bottom:8px}.node-container .totals .invalid-assignments{color:var(--error-color);margin-left:8px}.competency-cluster-container{width:100%;display:flex;justify-content:center;align-items:center;padding-bottom:8px}.regular{width:170px}.small{width:140px!important}.close .row .chevron,.open .row .chevron{display:block}.d-flex{justify-content:space-between}.none .row .chevron{display:none}.high{border-top:4px solid var(--icons-color)}.medium{border-top:4px solid orange}.low{border-top:4px solid var(--error-color)}.green{color:var(--icons-color)!important}.decorative-line,.menu-icon-container{display:none}.mat-menu-item{font-family:heebo;font-size:14px;font-weight:400;color:var(--icons-color)}.mat-menu-item:not(:last-child){border-bottom:1px solid var(--divider-color)}::ng-deep .mat-menu-panel{border-radius:var(--border-radius)!important}::ng-deep .mat-menu-content{padding-top:0!important;padding-bottom:0!important}::ng-deep .mat-menu-content button{display:flex;align-items:center;gap:8px;height:36px}.hadracha:hover .menu-icon-container{display:block;height:10px;position:absolute;top:4px;left:12px;z-index:1}.hadracha:hover .menu-icon-container img{height:14px}.hadracha{border-top:none!important;border-radius:0 0 var(--border-radius) var(--border-radius);position:relative}.hadracha .decorative-line{display:block;width:100%;height:4px;background-color:var(--icons-color);border-radius:10px;position:absolute;top:-6px;left:0;z-index:1}.hadracha .totals{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0}.hadracha .totals .total-value{padding:4px;width:33px;height:33px;background-color:var(--icons-color-light-2);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center}.hadracha .totals p.total-text{font-size:12px;font-weight:400;text-align:center;margin:0}.hadracha .node-container:hover .totals .total-value{background-color:var(--divider-color)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i2$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i2$2.HerumProgressBarComponent, selector: "herum-progress-bar", inputs: ["percentage", "invalidPercentage", "showPercentage", "percentagePosition", "type", "size", "color", "borderRadius", "total", "showBorder", "thickness"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }, { kind: "pipe", type: i4.EllipsisPipe, name: "ellipsis" }] });
2362
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumHierarchyTreeNodeComponent, isStandalone: false, selector: "herum-hierarchy-tree-node", inputs: { treeNodeData: "treeNodeData", size: "size", expandedMode: "expandedMode", showArrow: "showArrow", showAssignmentsDetails: "showAssignmentsDetails", nodeMenuItems: "nodeMenuItems" }, outputs: { onNodeSelected: "onNodeSelected", onMenuItemSelected: "onMenuItemSelected", onExpand: "onExpand" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"node-container\" [class]=\"systemIdentifier\" [id]=\"'tree-node-container-' + treeNodeData.id\"\r\n *ngIf=\"treeNodeData\" [ngClass]=\"treeNodeData.status + ' ' + size + ' ' + expandedMode\" #nodeTitle appHerumToolTip>\r\n <div class=\"decorative-line\"></div>\r\n\r\n <div class=\"menu-icon-container\" *ngIf=\"nodeMenuItems?.length > 0\">\r\n <img src=\"/assets/hadracha/general/menu-button.svg\" [matMenuTriggerFor]=\"menu\">\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item *ngFor=\"let nodeMenuItem of nodeMenuItems\"\r\n (click)=\"_onMenuItemSelected(nodeMenuItem)\">\r\n <img src=\"/assets/hadracha/structs/{{nodeMenuItem.iconName}}.svg\">\r\n {{ nodeMenuItem.displayText }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n\r\n <p #treeNodeDataTitle [id]=\"'tree-node-title-' + treeNodeData.id\"\r\n [matTooltip]=\"_isTruncatedTitleElement(nodeTitle) ? treeNodeData.title : ''\" (click)=\"_onNodeSelected()\">\r\n {{treeNodeData.title | ellipsis:treeNodeDataTitle }}\r\n </p>\r\n\r\n <p class=\"totals\" *ngIf=\"showAssignmentsDetails\">\r\n <ng-container *ngIf=\"isHerum\">\r\n <span [matTooltip]='toRPActualAssignmentsDisplayText'> {{this.treeNodeData.totals?.toRPActualAssignments}}\r\n </span> /\r\n <span [matTooltip]='expectedAssignmentsDisplayText'> {{this.treeNodeData.totals?.toRPExpectedAssignments}}\r\n </span>\r\n <span class=\"invalid-assignments\" [ngClass]=\"{'green':this.treeNodeData.totals?.invalidAssignments == 0}\"\r\n [matTooltip]='invalidAssignmentsDisplayText'>\r\n +{{this.treeNodeData.totals?.invalidAssignments}}\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"isHadracha\">\r\n <div class=\"total-value\">\r\n {{this.treeNodeData.totals.total}}\r\n </div>\r\n <p class=\"total-text\">\u05D7\u05E0\u05D9\u05DB\u05D9\u05DD</p>\r\n </ng-container>\r\n </p>\r\n\r\n <br *ngIf=\"!showAssignmentsDetails\">\r\n\r\n <div class=\"row\">\r\n <herum-progress-bar *ngIf=\"!isHadracha\" [percentage]=\"treeNodeData.percentage ? treeNodeData.percentage:0 \"\r\n [negativePercentage]=\"negativePercentage\" [type]=\"'solid'\" [size]=\"'tight'\">\r\n </herum-progress-bar>\r\n\r\n <span class=\"chevron\" *ngIf=\"showArrow\" [ngStyle]=\"{transform: isExpand ? 'rotate(180deg)' : 'none'}\"\r\n [innerHTML]=\"smallChevronSvg | safeHtml\" (click)=\"_onExpand()\">\r\n </span>\r\n </div>\r\n</div>", styles: [":host{border-radius:0 0 var(--border-radius) var(--border-radius)}.node-container{box-shadow:0 0 var(--box-shadow-blur) #00000029!important;display:flex;flex-direction:column;width:170px;gap:4px;padding:4px;border-radius:var(--border-radius);background-color:#fff}.node-container p{margin:0;font-weight:700;font-size:14px}.node-container .row{justify-content:center;align-items:center;position:relative}.node-container .row .chevron{position:absolute;bottom:-20px;background-color:#fff;border-radius:50%;box-shadow:0 0 var(--box-shadow-blur) #00000029!important;width:20px;cursor:pointer;height:20px;z-index:99;padding:1px;stroke:var(--icons-color)}.node-container .totals{font-size:12px;direction:ltr;margin-bottom:8px}.node-container .totals .invalid-assignments{color:var(--error-color);margin-left:8px}.competency-cluster-container{width:100%;display:flex;justify-content:center;align-items:center;padding-bottom:8px}.regular{width:170px}.small{width:140px!important}.close .row .chevron,.open .row .chevron{display:block}.d-flex{justify-content:space-between}.none .row .chevron{display:none}.high{border-top:4px solid var(--icons-color)}.medium{border-top:4px solid orange}.low{border-top:4px solid var(--error-color)}.green{color:var(--icons-color)!important}.decorative-line,.menu-icon-container{display:none}.mat-menu-item{font-family:heebo;font-size:14px;font-weight:400;color:var(--icons-color)}.mat-menu-item:not(:last-child){border-bottom:1px solid var(--divider-color)}::ng-deep .mat-menu-panel{border-radius:var(--border-radius)!important}::ng-deep .mat-menu-content{padding-top:0!important;padding-bottom:0!important}::ng-deep .mat-menu-content button{display:flex;align-items:center;gap:8px;height:36px}.hadracha:hover .menu-icon-container{display:block;height:10px;position:absolute;top:4px;left:12px;z-index:1}.hadracha:hover .menu-icon-container img{height:14px}.hadracha{border-top:none!important;border-radius:0 0 var(--border-radius) var(--border-radius);position:relative}.hadracha .decorative-line{display:block;width:100%;height:4px;background-color:var(--icons-color);border-radius:10px;position:absolute;top:-6px;left:0;z-index:1}.hadracha .totals{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0}.hadracha .totals .total-value{padding:4px;width:33px;height:33px;background-color:var(--icons-color-light-2);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center}.hadracha .totals p.total-text{font-size:12px;font-weight:400;text-align:center;margin:0}.hadracha .node-container:hover .totals .total-value{background-color:var(--divider-color)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i2$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4.HerumToolTipDirective, selector: "[appHerumToolTip]", inputs: ["tooltipText"] }, { kind: "component", type: i2$2.HerumProgressBarComponent, selector: "herum-progress-bar", inputs: ["percentage", "invalidPercentage", "showPercentage", "percentagePosition", "type", "size", "color", "borderRadius", "total", "showBorder", "thickness"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }, { kind: "pipe", type: i4$1.EllipsisPipe, name: "ellipsis" }] });
2521
2363
  }
2522
2364
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumHierarchyTreeNodeComponent, decorators: [{
2523
2365
  type: Component,
@@ -3512,7 +3354,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
3512
3354
  args: [{
3513
3355
  providedIn: 'root'
3514
3356
  }]
3515
- }], ctorParameters: () => [{ type: i1$5.AudioVisualConfiguration, decorators: [{
3357
+ }], ctorParameters: () => [{ type: i1$4.AudioVisualConfiguration, decorators: [{
3516
3358
  type: Inject,
3517
3359
  args: [SYSTEM_AUDIO_VISUAL_CONFIGURATION]
3518
3360
  }] }] });
@@ -3703,7 +3545,7 @@ class GraphQLService {
3703
3545
  });
3704
3546
  return orderString + '}';
3705
3547
  }
3706
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: GraphQLService, deps: [{ token: i1$3.HttpClient }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
3548
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: GraphQLService, deps: [{ token: i1$5.HttpClient }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
3707
3549
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: GraphQLService, providedIn: 'root' });
3708
3550
  }
3709
3551
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: GraphQLService, decorators: [{
@@ -3711,7 +3553,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
3711
3553
  args: [{
3712
3554
  providedIn: 'root'
3713
3555
  }]
3714
- }], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: undefined, decorators: [{
3556
+ }], ctorParameters: () => [{ type: i1$5.HttpClient }, { type: undefined, decorators: [{
3715
3557
  type: Inject,
3716
3558
  args: [HERUM_SHARED_CONFIG_TOKEN]
3717
3559
  }] }] });
@@ -3808,7 +3650,7 @@ class AuthService {
3808
3650
  generateStringForAuthenticationHash(personalId, militaryId) {
3809
3651
  return personalId + militaryId;
3810
3652
  }
3811
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AuthService, deps: [{ token: i1$3.HttpClient }, { token: i2$4.Router }, { token: GraphQLService }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
3653
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AuthService, deps: [{ token: i1$5.HttpClient }, { token: i2$4.Router }, { token: GraphQLService }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
3812
3654
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AuthService, providedIn: 'root' });
3813
3655
  }
3814
3656
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AuthService, decorators: [{
@@ -3816,7 +3658,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
3816
3658
  args: [{
3817
3659
  providedIn: 'root'
3818
3660
  }]
3819
- }], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: i2$4.Router }, { type: GraphQLService }, { type: undefined, decorators: [{
3661
+ }], ctorParameters: () => [{ type: i1$5.HttpClient }, { type: i2$4.Router }, { type: GraphQLService }, { type: undefined, decorators: [{
3820
3662
  type: Inject,
3821
3663
  args: [HERUM_SHARED_CONFIG_TOKEN]
3822
3664
  }] }] });
@@ -4147,7 +3989,7 @@ class DbActionRequestsService {
4147
3989
  this.environmentConfig?.mongoUpdates?.Methods?.ModelInfo
4148
3990
  ]));
4149
3991
  }
4150
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DbActionRequestsService, deps: [{ token: i1$3.HttpClient }, { token: DbActionsInnerIdManagerService }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
3992
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DbActionRequestsService, deps: [{ token: i1$5.HttpClient }, { token: DbActionsInnerIdManagerService }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
4151
3993
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DbActionRequestsService, providedIn: 'root' });
4152
3994
  }
4153
3995
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DbActionRequestsService, decorators: [{
@@ -4155,7 +3997,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
4155
3997
  args: [{
4156
3998
  providedIn: 'root'
4157
3999
  }]
4158
- }], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: DbActionsInnerIdManagerService }, { type: undefined, decorators: [{
4000
+ }], ctorParameters: () => [{ type: i1$5.HttpClient }, { type: DbActionsInnerIdManagerService }, { type: undefined, decorators: [{
4159
4001
  type: Inject,
4160
4002
  args: [HERUM_SHARED_CONFIG_TOKEN]
4161
4003
  }] }] });
@@ -4512,7 +4354,7 @@ class MicroResourcesService {
4512
4354
  });
4513
4355
  return forkJoin(updates.map(request => this.http.post(this.environmentConfig?.environment?.siteServerPath + this.environmentConfig?.resourcePaths?.resourceUpdateAuthorizations, request)));
4514
4356
  }
4515
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: MicroResourcesService, deps: [{ token: i1$3.HttpClient }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
4357
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: MicroResourcesService, deps: [{ token: i1$5.HttpClient }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
4516
4358
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: MicroResourcesService, providedIn: 'root' });
4517
4359
  }
4518
4360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: MicroResourcesService, decorators: [{
@@ -4520,7 +4362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
4520
4362
  args: [{
4521
4363
  providedIn: 'root'
4522
4364
  }]
4523
- }], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: undefined, decorators: [{
4365
+ }], ctorParameters: () => [{ type: i1$5.HttpClient }, { type: undefined, decorators: [{
4524
4366
  type: Inject,
4525
4367
  args: [HERUM_SHARED_CONFIG_TOKEN]
4526
4368
  }] }] });
@@ -4702,11 +4544,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
4702
4544
  args: [{
4703
4545
  providedIn: 'root'
4704
4546
  }]
4705
- }], ctorParameters: () => [{ type: i1$5.ISystemTrackTextChangesService, decorators: [{
4547
+ }], ctorParameters: () => [{ type: i1$4.ISystemTrackTextChangesService, decorators: [{
4706
4548
  type: Inject,
4707
4549
  args: [SYSTEM_TRACK_TEXT_CHANGES_SERVICE]
4708
4550
  }] }] });
4709
4551
 
4552
+ const unwantedSelectors = ["div", null];
4553
+ class UserActionDirective {
4554
+ el;
4555
+ http;
4556
+ environmentConfig;
4557
+ description;
4558
+ constructor(el, http, environmentConfig) {
4559
+ this.el = el;
4560
+ this.http = http;
4561
+ this.environmentConfig = environmentConfig;
4562
+ }
4563
+ onClick(event) {
4564
+ var obj = {
4565
+ system: this.environmentConfig?.environment?.envName,
4566
+ currentUrl: this.el.nativeElement?.formAction,
4567
+ innerText: this.el.nativeElement?.innerText,
4568
+ attributes: Array.from(Object.values(this.el.nativeElement?.attributes)).map((attribute) => ({
4569
+ attribute: attribute.name,
4570
+ value: attribute.value
4571
+ })),
4572
+ selector: this.el.nativeElement?.tagName,
4573
+ viewPath: event.path?.map(viewElement => viewElement.localName).filter(selector => !unwantedSelectors.includes(selector) && selector),
4574
+ timeStamp: event.timeStamp,
4575
+ screenX: event.screenX,
4576
+ screenY: event.screenY,
4577
+ description: this.description
4578
+ };
4579
+ this.http.post(this.environmentConfig?.environment?.userAction, obj).subscribe(res => { });
4580
+ }
4581
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: UserActionDirective, deps: [{ token: i0.ElementRef }, { token: i1$5.HttpClient }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Directive });
4582
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.17", type: UserActionDirective, isStandalone: false, selector: "[userAction]", inputs: { description: ["userAction", "description"] }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 });
4583
+ }
4584
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: UserActionDirective, decorators: [{
4585
+ type: Directive,
4586
+ args: [{
4587
+ standalone: false,
4588
+ selector: '[userAction]'
4589
+ }]
4590
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$5.HttpClient }, { type: undefined, decorators: [{
4591
+ type: Inject,
4592
+ args: [HERUM_SHARED_CONFIG_TOKEN]
4593
+ }] }], propDecorators: { description: [{
4594
+ type: Input,
4595
+ args: ['userAction']
4596
+ }], onClick: [{
4597
+ type: HostListener,
4598
+ args: ['click', ['$event']]
4599
+ }] } });
4600
+
4710
4601
  class HerumSpinnerComponent {
4711
4602
  size = 'default-size';
4712
4603
  borderColor = 'default-border-color';
@@ -4750,7 +4641,7 @@ class AudioSliderComponent {
4750
4641
  this.sliderChange.emit(this.sliderValue);
4751
4642
  }
4752
4643
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AudioSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4753
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: AudioSliderComponent, isStandalone: false, selector: "audio-slider", inputs: { sliderValue: "sliderValue", maxValue: "maxValue", color: "color", id: "id" }, outputs: { sliderChange: "sliderChange" }, viewQueries: [{ propertyName: "slider", first: true, predicate: ["slider"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"wrapper\">\r\n <div class=\"range\">\r\n <input [style.background]=\"'linear-gradient(to right, #f50 100%, #ccc 0%);'\" type=\"range\" [id]=\"id\" [min]=\"0\" [max]=\"maxValue\" [value]=\"100\" [(ngModel)]=\"sliderValue\"\r\n (input)=\"updateSliderBackground()\" />\r\n </div>\r\n</div>", styles: [".wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;direction:ltr}.wrapper .range{position:relative}.wrapper input[type=range]{-webkit-appearance:none;width:100%;direction:ltr;height:4px;border-radius:5px;outline:none;transition:background .3s ease}.wrapper input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;width:14px!important;height:14px!important;filter:drop-shadow(0px 0px 6px rgba(0,0,0,.16))!important;border-radius:50%!important;cursor:pointer!important}.wrapper input[type=range]::-moz-range-thumb{background:#fff;width:14px!important;height:14px!important;filter:drop-shadow(0px 0px 6px rgba(0,0,0,.16))!important;border-radius:50%!important;cursor:pointer!important}.wrapper .value{margin-top:10px;font-size:16px;color:#333;text-align:center}\n"], dependencies: [{ kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
4644
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: AudioSliderComponent, isStandalone: false, selector: "audio-slider", inputs: { sliderValue: "sliderValue", maxValue: "maxValue", color: "color", id: "id" }, outputs: { sliderChange: "sliderChange" }, viewQueries: [{ propertyName: "slider", first: true, predicate: ["slider"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"wrapper\">\r\n <div class=\"range\">\r\n <input [style.background]=\"'linear-gradient(to right, #f50 100%, #ccc 0%);'\" type=\"range\" [id]=\"id\" [min]=\"0\" [max]=\"maxValue\" [value]=\"100\" [(ngModel)]=\"sliderValue\"\r\n (input)=\"updateSliderBackground()\" />\r\n </div>\r\n</div>", styles: [".wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;direction:ltr}.wrapper .range{position:relative}.wrapper input[type=range]{-webkit-appearance:none;width:100%;direction:ltr;height:4px;border-radius:5px;outline:none;transition:background .3s ease}.wrapper input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;width:14px!important;height:14px!important;filter:drop-shadow(0px 0px 6px rgba(0,0,0,.16))!important;border-radius:50%!important;cursor:pointer!important}.wrapper input[type=range]::-moz-range-thumb{background:#fff;width:14px!important;height:14px!important;filter:drop-shadow(0px 0px 6px rgba(0,0,0,.16))!important;border-radius:50%!important;cursor:pointer!important}.wrapper .value{margin-top:10px;font-size:16px;color:#333;text-align:center}\n"], dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
4754
4645
  }
4755
4646
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AudioSliderComponent, decorators: [{
4756
4647
  type: Component,
@@ -5128,12 +5019,12 @@ class AudioPlayerComponent {
5128
5019
  this.removeAudioElementEventListeners();
5129
5020
  }
5130
5021
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AudioPlayerComponent, deps: [{ token: AudioVisualizationService }, { token: GlobalKeyboardListenerService }, { token: KeyPressService }, { token: UtilsService }, { token: SYSTEM_AUDIO_VISUAL_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Component });
5131
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: AudioPlayerComponent, isStandalone: false, selector: "herum-audio-player", inputs: { showVolumeSliders: "showVolumeSliders", isPreview: "isPreview", getTimeUpdate: "getTimeUpdate", playbackSpeed: "playbackSpeed", isBlock: "isBlock", currentTime: "currentTime", isAudioPlaying: "isAudioPlaying", width: "width", id: "id", audioFile: "audioFile", mediaSettings: "mediaSettings", bucketName: "bucketName" }, outputs: { periodicCurrentTime: "periodicCurrentTime", isLoadingChange: "isLoadingChange", timingUpdateByRequest: "timingUpdateByRequest", mediaSettingsUpdate: "mediaSettingsUpdate" }, host: { listeners: { "window:resize": "onWindowResize()", "document:keyup": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "audioCanvas", first: true, predicate: ["audioCanvas"], descendants: true }, { propertyName: "slider", first: true, predicate: ["slider"], descendants: true, static: true }, { propertyName: "audioContainer", first: true, predicate: ["audioContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"audio-container\" #audioContainer>\r\n <p class=\"current-time\" *ngIf=\"!errorMessage\">{{ currentTimeLabel }}</p>\r\n\r\n <p *ngIf=\"errorMessage\" class=\"m-0 d-flex gap-2 align-items-center\">\r\n <img src=\"/assets/college/learningArea/error.svg\">\r\n {{ errorMessage }}\r\n </p>\r\n\r\n <div class=\"audio-loader-container\" [userAction]=\"'currentTime: ' + currentTime\">\r\n <canvas [class.transparent]=\"isLoading\" #audioCanvas (click)=\"_onCanvasClick($event)\"> </canvas>\r\n </div>\r\n\r\n <div class=\"audio-controls\">\r\n <div *ngIf=\"showVolumeSliders\" class=\"volume-container\">\r\n <div class=\"right slider-container\">\r\n <label>R</label>\r\n <audio-slider color=\"#3B2DBE\" [id]=\"'right'\" userAction\r\n (sliderChange)=\"rightVolume=$event/100; _updateVolume()\">\r\n </audio-slider>\r\n </div>\r\n\r\n <div class=\"left slider-container\">\r\n <label>L</label>\r\n <audio-slider color=\"#2D7ABE\" [id]=\"'left'\" userAction\r\n (sliderChange)=\"leftVolume=$event/100; _updateVolume()\">\r\n </audio-slider>\r\n </div>\r\n </div>\r\n\r\n <button class=\"control-button\" [userAction]=\"'currentTime: ' + currentTime\" (click)=\"_skipForward(15)\" userAction>\r\n <img src=\"assets/shared/audio-images/next15.svg\" alt=\"Fast Forward\" />\r\n </button>\r\n\r\n <button class=\"control-button play-button\" [userAction]=\"isAudioPlaying ? 'play' : 'pause'\"\r\n (click)=\"_onTogglePlay()\">\r\n <ng-container *ngIf=\"!isLoading\">\r\n <img *ngIf=\"!isBlock\"\r\n [src]=\"isAudioPlaying ? 'assets/shared/audio-images/pause.svg' : 'assets/shared/audio-images/play.svg'\"\r\n alt=\"Play/Pause\" />\r\n <img *ngIf=\"isBlock\"\r\n [src]=\"isAudioPlaying ? 'assets/shared/audio-images/gray-pause.svg' : 'assets/shared/audio-images/gray-play.svg'\"\r\n alt=\"Play/Pause\" />\r\n </ng-container>\r\n <herum-spinner *ngIf=\"isLoading\"></herum-spinner>\r\n </button>\r\n\r\n <button class=\"control-button\" (click)=\"_skipBackward(15)\" [userAction]=\"'currentTime: ' + currentTime\">\r\n <img src=\"assets/shared/audio-images/previous15.svg\" alt=\"Rewind\" />\r\n </button>\r\n\r\n <div class=\"speed-control\">\r\n <herum-video-select class=\"video-speed-select\" userAction [options]=\"speedOptions\"\r\n [currentVideoSpeed]=\"playbackSpeed\" (selectedOptionEmitter)=\"_updatePlaybackSpeed($event)\">\r\n </herum-video-select>\r\n </div>\r\n </div>\r\n</div>", styles: [":root{--background-color: #f2f2f2;background-color:var(--background-color)}*{box-sizing:border-box}.audio-container{text-align:center;flex:1}.time-control{margin:20px}canvas{width:100%;height:116px;border-radius:8px;margin-top:4px;opacity:1}.transparent{opacity:0!important}.audio-loader-container{position:relative;display:flex;align-items:center;justify-content:center}.audio-loader-container .d-flex{position:absolute;z-index:2}.audio-controls{padding:12px;display:flex;align-items:center;justify-content:center;gap:10px;background-color:var(--background-color);height:calc(100% - 160px)}.control-button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f9f9f9;border:none;border-radius:12px;cursor:pointer;transition:background .3s ease;fill:#fff;filter:drop-shadow(0px 0px 6px rgba(0,0,0,.16))}.control-button img{width:20px;height:20px}.control-button:hover{background:#f0f0f0}.play-button{width:50px;height:50px;border:none;border-radius:50%}.play-button img{width:25px;height:25px}.speed-control{display:flex;align-items:center;justify-content:center;background:#f9f9f9;border:none;border-radius:5px;padding:5px 10px;fill:#fff;filter:drop-shadow(0px 0px 6px rgba(0,0,0,.16))}.current-time{font-weight:400;font-size:14px;text-align:left;margin:0;padding-left:12px}.speed-control select{border:none;background:transparent;font-size:14px;outline:none;cursor:pointer}.volume-sliders{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:10px}.volume-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.slider-container{display:flex;flex-direction:row-reverse;align-items:center;justify-content:center;gap:10px}.slider-container label{margin:0;background:#d18a8a;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;color:#fff}.left label{background-color:#2d7abe}.right label{background-color:#3b2dbe}audio-slider{width:90px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: HerumSpinnerComponent, selector: "herum-spinner", inputs: ["size", "borderColor", "borderWidth", "borderTopColor", "shape"] }, { kind: "component", type: HerumVideoSelectComponent, selector: "herum-video-select", inputs: ["currentVideoSpeed", "options"], outputs: ["selectedOptionEmitter"] }, { kind: "directive", type: UserActionDirective, selector: "[userAction]", inputs: ["userAction"] }, { kind: "component", type: AudioSliderComponent, selector: "audio-slider", inputs: ["sliderValue", "maxValue", "color", "id"], outputs: ["sliderChange"] }] });
5022
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: AudioPlayerComponent, isStandalone: false, selector: "herum-audio-player", inputs: { showVolumeSliders: "showVolumeSliders", isPreview: "isPreview", getTimeUpdate: "getTimeUpdate", playbackSpeed: "playbackSpeed", isBlock: "isBlock", currentTime: "currentTime", isAudioPlaying: "isAudioPlaying", width: "width", id: "id", audioFile: "audioFile", mediaSettings: "mediaSettings", bucketName: "bucketName" }, outputs: { periodicCurrentTime: "periodicCurrentTime", isLoadingChange: "isLoadingChange", timingUpdateByRequest: "timingUpdateByRequest", mediaSettingsUpdate: "mediaSettingsUpdate" }, host: { listeners: { "window:resize": "onWindowResize()", "document:keyup": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "audioCanvas", first: true, predicate: ["audioCanvas"], descendants: true }, { propertyName: "slider", first: true, predicate: ["slider"], descendants: true, static: true }, { propertyName: "audioContainer", first: true, predicate: ["audioContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"audio-container\" #audioContainer>\r\n <p class=\"current-time\" *ngIf=\"!errorMessage\">{{ currentTimeLabel }}</p>\r\n\r\n <p *ngIf=\"errorMessage\" class=\"m-0 d-flex gap-2 align-items-center\">\r\n <img src=\"/assets/college/learningArea/error.svg\">\r\n {{ errorMessage }}\r\n </p>\r\n\r\n <div class=\"audio-loader-container\" [userAction]=\"'currentTime: ' + currentTime\">\r\n <canvas [class.transparent]=\"isLoading\" #audioCanvas (click)=\"_onCanvasClick($event)\"> </canvas>\r\n </div>\r\n\r\n <div class=\"audio-controls\">\r\n <div *ngIf=\"showVolumeSliders\" class=\"volume-container\">\r\n <div class=\"right slider-container\">\r\n <label>R</label>\r\n <audio-slider color=\"#3B2DBE\" [id]=\"'right'\" userAction\r\n (sliderChange)=\"rightVolume=$event/100; _updateVolume()\">\r\n </audio-slider>\r\n </div>\r\n\r\n <div class=\"left slider-container\">\r\n <label>L</label>\r\n <audio-slider color=\"#2D7ABE\" [id]=\"'left'\" userAction\r\n (sliderChange)=\"leftVolume=$event/100; _updateVolume()\">\r\n </audio-slider>\r\n </div>\r\n </div>\r\n\r\n <button class=\"control-button\" [userAction]=\"'currentTime: ' + currentTime\" (click)=\"_skipForward(15)\" userAction>\r\n <img src=\"assets/shared/audio-images/next15.svg\" alt=\"Fast Forward\" />\r\n </button>\r\n\r\n <button class=\"control-button play-button\" [userAction]=\"isAudioPlaying ? 'play' : 'pause'\"\r\n (click)=\"_onTogglePlay()\">\r\n <ng-container *ngIf=\"!isLoading\">\r\n <img *ngIf=\"!isBlock\"\r\n [src]=\"isAudioPlaying ? 'assets/shared/audio-images/pause.svg' : 'assets/shared/audio-images/play.svg'\"\r\n alt=\"Play/Pause\" />\r\n <img *ngIf=\"isBlock\"\r\n [src]=\"isAudioPlaying ? 'assets/shared/audio-images/gray-pause.svg' : 'assets/shared/audio-images/gray-play.svg'\"\r\n alt=\"Play/Pause\" />\r\n </ng-container>\r\n <herum-spinner *ngIf=\"isLoading\"></herum-spinner>\r\n </button>\r\n\r\n <button class=\"control-button\" (click)=\"_skipBackward(15)\" [userAction]=\"'currentTime: ' + currentTime\">\r\n <img src=\"assets/shared/audio-images/previous15.svg\" alt=\"Rewind\" />\r\n </button>\r\n\r\n <div class=\"speed-control\">\r\n <herum-video-select class=\"video-speed-select\" userAction [options]=\"speedOptions\"\r\n [currentVideoSpeed]=\"playbackSpeed\" (selectedOptionEmitter)=\"_updatePlaybackSpeed($event)\">\r\n </herum-video-select>\r\n </div>\r\n </div>\r\n</div>", styles: [":root{--background-color: #f2f2f2;background-color:var(--background-color)}*{box-sizing:border-box}.audio-container{text-align:center;flex:1}.time-control{margin:20px}canvas{width:100%;height:116px;border-radius:8px;margin-top:4px;opacity:1}.transparent{opacity:0!important}.audio-loader-container{position:relative;display:flex;align-items:center;justify-content:center}.audio-loader-container .d-flex{position:absolute;z-index:2}.audio-controls{padding:12px;display:flex;align-items:center;justify-content:center;gap:10px;background-color:var(--background-color);height:calc(100% - 160px)}.control-button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f9f9f9;border:none;border-radius:12px;cursor:pointer;transition:background .3s ease;fill:#fff;filter:drop-shadow(0px 0px 6px rgba(0,0,0,.16))}.control-button img{width:20px;height:20px}.control-button:hover{background:#f0f0f0}.play-button{width:50px;height:50px;border:none;border-radius:50%}.play-button img{width:25px;height:25px}.speed-control{display:flex;align-items:center;justify-content:center;background:#f9f9f9;border:none;border-radius:5px;padding:5px 10px;fill:#fff;filter:drop-shadow(0px 0px 6px rgba(0,0,0,.16))}.current-time{font-weight:400;font-size:14px;text-align:left;margin:0;padding-left:12px}.speed-control select{border:none;background:transparent;font-size:14px;outline:none;cursor:pointer}.volume-sliders{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:10px}.volume-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.slider-container{display:flex;flex-direction:row-reverse;align-items:center;justify-content:center;gap:10px}.slider-container label{margin:0;background:#d18a8a;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;color:#fff}.left label{background-color:#2d7abe}.right label{background-color:#3b2dbe}audio-slider{width:90px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: UserActionDirective, selector: "[userAction]", inputs: ["userAction"] }, { kind: "component", type: HerumSpinnerComponent, selector: "herum-spinner", inputs: ["size", "borderColor", "borderWidth", "borderTopColor", "shape"] }, { kind: "component", type: HerumVideoSelectComponent, selector: "herum-video-select", inputs: ["currentVideoSpeed", "options"], outputs: ["selectedOptionEmitter"] }, { kind: "component", type: AudioSliderComponent, selector: "audio-slider", inputs: ["sliderValue", "maxValue", "color", "id"], outputs: ["sliderChange"] }] });
5132
5023
  }
5133
5024
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AudioPlayerComponent, decorators: [{
5134
5025
  type: Component,
5135
5026
  args: [{ standalone: false, selector: 'herum-audio-player', template: "<div class=\"audio-container\" #audioContainer>\r\n <p class=\"current-time\" *ngIf=\"!errorMessage\">{{ currentTimeLabel }}</p>\r\n\r\n <p *ngIf=\"errorMessage\" class=\"m-0 d-flex gap-2 align-items-center\">\r\n <img src=\"/assets/college/learningArea/error.svg\">\r\n {{ errorMessage }}\r\n </p>\r\n\r\n <div class=\"audio-loader-container\" [userAction]=\"'currentTime: ' + currentTime\">\r\n <canvas [class.transparent]=\"isLoading\" #audioCanvas (click)=\"_onCanvasClick($event)\"> </canvas>\r\n </div>\r\n\r\n <div class=\"audio-controls\">\r\n <div *ngIf=\"showVolumeSliders\" class=\"volume-container\">\r\n <div class=\"right slider-container\">\r\n <label>R</label>\r\n <audio-slider color=\"#3B2DBE\" [id]=\"'right'\" userAction\r\n (sliderChange)=\"rightVolume=$event/100; _updateVolume()\">\r\n </audio-slider>\r\n </div>\r\n\r\n <div class=\"left slider-container\">\r\n <label>L</label>\r\n <audio-slider color=\"#2D7ABE\" [id]=\"'left'\" userAction\r\n (sliderChange)=\"leftVolume=$event/100; _updateVolume()\">\r\n </audio-slider>\r\n </div>\r\n </div>\r\n\r\n <button class=\"control-button\" [userAction]=\"'currentTime: ' + currentTime\" (click)=\"_skipForward(15)\" userAction>\r\n <img src=\"assets/shared/audio-images/next15.svg\" alt=\"Fast Forward\" />\r\n </button>\r\n\r\n <button class=\"control-button play-button\" [userAction]=\"isAudioPlaying ? 'play' : 'pause'\"\r\n (click)=\"_onTogglePlay()\">\r\n <ng-container *ngIf=\"!isLoading\">\r\n <img *ngIf=\"!isBlock\"\r\n [src]=\"isAudioPlaying ? 'assets/shared/audio-images/pause.svg' : 'assets/shared/audio-images/play.svg'\"\r\n alt=\"Play/Pause\" />\r\n <img *ngIf=\"isBlock\"\r\n [src]=\"isAudioPlaying ? 'assets/shared/audio-images/gray-pause.svg' : 'assets/shared/audio-images/gray-play.svg'\"\r\n alt=\"Play/Pause\" />\r\n </ng-container>\r\n <herum-spinner *ngIf=\"isLoading\"></herum-spinner>\r\n </button>\r\n\r\n <button class=\"control-button\" (click)=\"_skipBackward(15)\" [userAction]=\"'currentTime: ' + currentTime\">\r\n <img src=\"assets/shared/audio-images/previous15.svg\" alt=\"Rewind\" />\r\n </button>\r\n\r\n <div class=\"speed-control\">\r\n <herum-video-select class=\"video-speed-select\" userAction [options]=\"speedOptions\"\r\n [currentVideoSpeed]=\"playbackSpeed\" (selectedOptionEmitter)=\"_updatePlaybackSpeed($event)\">\r\n </herum-video-select>\r\n </div>\r\n </div>\r\n</div>", styles: [":root{--background-color: #f2f2f2;background-color:var(--background-color)}*{box-sizing:border-box}.audio-container{text-align:center;flex:1}.time-control{margin:20px}canvas{width:100%;height:116px;border-radius:8px;margin-top:4px;opacity:1}.transparent{opacity:0!important}.audio-loader-container{position:relative;display:flex;align-items:center;justify-content:center}.audio-loader-container .d-flex{position:absolute;z-index:2}.audio-controls{padding:12px;display:flex;align-items:center;justify-content:center;gap:10px;background-color:var(--background-color);height:calc(100% - 160px)}.control-button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f9f9f9;border:none;border-radius:12px;cursor:pointer;transition:background .3s ease;fill:#fff;filter:drop-shadow(0px 0px 6px rgba(0,0,0,.16))}.control-button img{width:20px;height:20px}.control-button:hover{background:#f0f0f0}.play-button{width:50px;height:50px;border:none;border-radius:50%}.play-button img{width:25px;height:25px}.speed-control{display:flex;align-items:center;justify-content:center;background:#f9f9f9;border:none;border-radius:5px;padding:5px 10px;fill:#fff;filter:drop-shadow(0px 0px 6px rgba(0,0,0,.16))}.current-time{font-weight:400;font-size:14px;text-align:left;margin:0;padding-left:12px}.speed-control select{border:none;background:transparent;font-size:14px;outline:none;cursor:pointer}.volume-sliders{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:10px}.volume-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.slider-container{display:flex;flex-direction:row-reverse;align-items:center;justify-content:center;gap:10px}.slider-container label{margin:0;background:#d18a8a;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;color:#fff}.left label{background-color:#2d7abe}.right label{background-color:#3b2dbe}audio-slider{width:90px}\n"] }]
5136
- }], ctorParameters: () => [{ type: AudioVisualizationService }, { type: GlobalKeyboardListenerService }, { type: KeyPressService }, { type: UtilsService }, { type: i1$5.AudioVisualConfiguration, decorators: [{
5027
+ }], ctorParameters: () => [{ type: AudioVisualizationService }, { type: GlobalKeyboardListenerService }, { type: KeyPressService }, { type: UtilsService }, { type: i1$4.AudioVisualConfiguration, decorators: [{
5137
5028
  type: Inject,
5138
5029
  args: [SYSTEM_AUDIO_VISUAL_CONFIGURATION]
5139
5030
  }] }], propDecorators: { showVolumeSliders: [{
@@ -5185,6 +5076,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
5185
5076
  args: ['document:keyup', ['$event']]
5186
5077
  }] } });
5187
5078
 
5079
+ class HerumToolTipDirective {
5080
+ el;
5081
+ tooltipText = '';
5082
+ tooltip;
5083
+ constructor(el) {
5084
+ this.el = el;
5085
+ this.tooltip = document.createElement('div');
5086
+ this.tooltip.className = 'tooltip';
5087
+ }
5088
+ onMouseEnter() {
5089
+ this.showTooltip();
5090
+ }
5091
+ onMouseLeave() {
5092
+ this.hideTooltip();
5093
+ }
5094
+ showTooltip() {
5095
+ const hostPosition = this.el.nativeElement.getBoundingClientRect();
5096
+ const tooltipPosition = {
5097
+ top: window.scrollY + hostPosition.top - this.tooltip.offsetHeight - 30,
5098
+ left: window.scrollX + hostPosition.left + hostPosition.width / 4 //+ this.tooltip.offsetWidth
5099
+ };
5100
+ const bodyRect = document.body.getBoundingClientRect();
5101
+ const tooltipRect = this.tooltip.getBoundingClientRect();
5102
+ if (tooltipPosition.left < bodyRect.left) {
5103
+ tooltipPosition.left = bodyRect.left;
5104
+ }
5105
+ else if (tooltipPosition.left + tooltipRect.width > bodyRect.right) {
5106
+ tooltipPosition.left = bodyRect.right - tooltipRect.width;
5107
+ }
5108
+ this.tooltip.style.top = `${tooltipPosition.top}px`;
5109
+ this.tooltip.style.left = `${tooltipPosition.left}px`;
5110
+ document.body.appendChild(this.tooltip);
5111
+ this.tooltip.innerText = this.tooltipText;
5112
+ }
5113
+ hideTooltip() {
5114
+ document.body.removeChild(this.tooltip);
5115
+ }
5116
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumToolTipDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
5117
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.17", type: HerumToolTipDirective, isStandalone: false, selector: "[appHerumToolTip]", inputs: { tooltipText: "tooltipText" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 });
5118
+ }
5119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumToolTipDirective, decorators: [{
5120
+ type: Directive,
5121
+ args: [{
5122
+ standalone: false,
5123
+ selector: '[appHerumToolTip]'
5124
+ }]
5125
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { tooltipText: [{
5126
+ type: Input
5127
+ }], onMouseEnter: [{
5128
+ type: HostListener,
5129
+ args: ['mouseenter']
5130
+ }], onMouseLeave: [{
5131
+ type: HostListener,
5132
+ args: ['mouseleave']
5133
+ }] } });
5134
+
5188
5135
  const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
5189
5136
  provide: NG_VALUE_ACCESSOR,
5190
5137
  useExisting: forwardRef(() => HerumTextAreaComponent),
@@ -5245,7 +5192,7 @@ class HerumTextAreaComponent {
5245
5192
  return svgsStrings.X;
5246
5193
  }
5247
5194
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumTextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5248
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumTextAreaComponent, isStandalone: false, selector: "herum-text-area", inputs: { placeholder: "placeholder", disabled: "disabled", formControlName: "formControlName", isValid: "isValid", isLoading: "isLoading", errorMsg: "errorMsg", showErrorMsgGap: "showErrorMsgGap", id: "id", preventMacroKeysPressEvent: "preventMacroKeysPressEvent", heightMode: "heightMode", fontSize: "fontSize", inputValue: "inputValue", maxLength: "maxLength" }, outputs: { inputValueEmitter: "inputValueEmitter" }, host: { listeners: { "keypress": "onKeyPress($event)" } }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true }], ngImport: i0, template: "<div class=\"input-container custom-resizer\" [ngClass]=\"heightMode\">\r\n <textarea #textarea class=\"input-field no-resizer min-height-input w-100\"\r\n [ngClass]=\"{'error-input':!isValid && touched && isBlurred}\" [placeholder]=\"placeholder\" [disabled]=\"disabled\" [maxlength]=\"maxLength\"\r\n [(ngModel)]=\"inputValue\" [id]=\"id ? id : formControlName\"\r\n [attr.prevent-macro-keys-press-event]=\"preventMacroKeysPressEvent\" (ngModelChange)=\"_onInput($event)\"\r\n (blur)=\"setBlurred()\">\r\n </textarea>\r\n\r\n <span class=\"icon clickable\" *ngIf=\"inputValue && !disabled && !isLoading\" (click)=\"_onClearTextArea()\">\r\n <span class=\"small-icon\" [innerHTML]=\"xSvg | safeHtml\"></span>\r\n </span>\r\n\r\n <herum-spinner class=\"small-icon\" *ngIf=\"isLoading\"></herum-spinner>\r\n</div>\r\n\r\n<ng-container *ngIf=\"!isValid && touched && isBlurred\">\r\n <label class=\"error-msg right\" *ngIf=\"showErrorMsgGap\">\r\n {{ errorMsg }}\r\n </label>\r\n</ng-container>", styles: [":host{--atom-input-height: 60px}.max{height:100%}.max textarea{height:100%!important}textarea{color:var(--text-color)}.min-height-input{min-height:var(--atom-input-height)}.small-icon{position:absolute;cursor:pointer;height:9px;top:16px;left:16px;fill:var(--icons-color)}.custom-resizer{position:relative}.custom-resizer:before{content:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"9.914\" height=\"9.414\" viewBox=\"0 0 9.914 9.414\">%0D%0A <g id=\"Group_955\" data-name=\"Group 955\" transform=\"translate(-1485.894 -372.793)\">%0D%0A <line id=\"Line_326\" data-name=\"Line 326\" x2=\"5\" y2=\"5\" transform=\"translate(1486.602 376.5)\" fill=\"none\" stroke=\"%237897a8\" stroke-linecap=\"round\" stroke-width=\"1\"/>%0D%0A <line id=\"Line_327\" data-name=\"Line 327\" x2=\"8\" y2=\"8\" transform=\"translate(1487.102 373.5)\" fill=\"none\" stroke=\"%237897a8\" stroke-linecap=\"round\" stroke-width=\"1\"/>%0D%0A </g>%0D%0A</svg>%0D%0A');position:absolute;left:0;bottom:-4px;color:green;pointer-events:none}.no-resizer::-webkit-resizer{display:none}.no-resizer::-moz-resizer{display:none}.no-resizer::-ms-resizer{display:none}\n", ".input-container{position:relative;display:flex;align-items:center}.input-container .input-field{padding:8px 12px 8px 30px;color:#000;height:var(--atom-input-height)}.input-field{border:1px solid var(--inactive-border-color);padding:var(--button-padding-size);border-radius:var(--border-radius);font-size:var(--standard-font-size);box-shadow:0 0 var(--box-shadow-blur) #00000029!important}.input-field:hover{border-color:var(--icons-color-light-2)}.input-field:focus{outline:none;border-color:var(--icons-color-light-1);box-shadow:0 0 5px var(--icons-color-light-1)}.input-field::placeholder{color:var(--disabled-text-color)}span{justify-content:center;display:flex}img{height:16px}.right{justify-content:right}.error-input,.error-input:focus{border-color:var(--error-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: HerumSpinnerComponent, selector: "herum-spinner", inputs: ["size", "borderColor", "borderWidth", "borderTopColor", "shape"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] });
5195
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumTextAreaComponent, isStandalone: false, selector: "herum-text-area", inputs: { placeholder: "placeholder", disabled: "disabled", formControlName: "formControlName", isValid: "isValid", isLoading: "isLoading", errorMsg: "errorMsg", showErrorMsgGap: "showErrorMsgGap", id: "id", preventMacroKeysPressEvent: "preventMacroKeysPressEvent", heightMode: "heightMode", fontSize: "fontSize", inputValue: "inputValue", maxLength: "maxLength" }, outputs: { inputValueEmitter: "inputValueEmitter" }, host: { listeners: { "keypress": "onKeyPress($event)" } }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true }], ngImport: i0, template: "<div class=\"input-container custom-resizer\" [ngClass]=\"heightMode\">\r\n <textarea #textarea class=\"input-field no-resizer min-height-input w-100\"\r\n [ngClass]=\"{'error-input':!isValid && touched && isBlurred}\" [placeholder]=\"placeholder\" [disabled]=\"disabled\" [maxlength]=\"maxLength\"\r\n [(ngModel)]=\"inputValue\" [id]=\"id ? id : formControlName\"\r\n [attr.prevent-macro-keys-press-event]=\"preventMacroKeysPressEvent\" (ngModelChange)=\"_onInput($event)\"\r\n (blur)=\"setBlurred()\">\r\n </textarea>\r\n\r\n <span class=\"icon clickable\" *ngIf=\"inputValue && !disabled && !isLoading\" (click)=\"_onClearTextArea()\">\r\n <span class=\"small-icon\" [innerHTML]=\"xSvg | safeHtml\"></span>\r\n </span>\r\n\r\n <herum-spinner class=\"small-icon\" *ngIf=\"isLoading\"></herum-spinner>\r\n</div>\r\n\r\n<ng-container *ngIf=\"!isValid && touched && isBlurred\">\r\n <label class=\"error-msg right\" *ngIf=\"showErrorMsgGap\">\r\n {{ errorMsg }}\r\n </label>\r\n</ng-container>", styles: [":host{--atom-input-height: 60px}.max{height:100%}.max textarea{height:100%!important}textarea{color:var(--text-color)}.min-height-input{min-height:var(--atom-input-height)}.small-icon{position:absolute;cursor:pointer;height:9px;top:16px;left:16px;fill:var(--icons-color)}.custom-resizer{position:relative}.custom-resizer:before{content:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"9.914\" height=\"9.414\" viewBox=\"0 0 9.914 9.414\">%0D%0A <g id=\"Group_955\" data-name=\"Group 955\" transform=\"translate(-1485.894 -372.793)\">%0D%0A <line id=\"Line_326\" data-name=\"Line 326\" x2=\"5\" y2=\"5\" transform=\"translate(1486.602 376.5)\" fill=\"none\" stroke=\"%237897a8\" stroke-linecap=\"round\" stroke-width=\"1\"/>%0D%0A <line id=\"Line_327\" data-name=\"Line 327\" x2=\"8\" y2=\"8\" transform=\"translate(1487.102 373.5)\" fill=\"none\" stroke=\"%237897a8\" stroke-linecap=\"round\" stroke-width=\"1\"/>%0D%0A </g>%0D%0A</svg>%0D%0A');position:absolute;left:0;bottom:-4px;color:green;pointer-events:none}.no-resizer::-webkit-resizer{display:none}.no-resizer::-moz-resizer{display:none}.no-resizer::-ms-resizer{display:none}\n", ".input-container{position:relative;display:flex;align-items:center}.input-container .input-field{padding:8px 12px 8px 30px;color:#000;height:var(--atom-input-height)}.input-field{border:1px solid var(--inactive-border-color);padding:var(--button-padding-size);border-radius:var(--border-radius);font-size:var(--standard-font-size);box-shadow:0 0 var(--box-shadow-blur) #00000029!important}.input-field:hover{border-color:var(--icons-color-light-2)}.input-field:focus{outline:none;border-color:var(--icons-color-light-1);box-shadow:0 0 5px var(--icons-color-light-1)}.input-field::placeholder{color:var(--disabled-text-color)}span{justify-content:center;display:flex}img{height:16px}.right{justify-content:right}.error-input,.error-input:focus{border-color:var(--error-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: HerumSpinnerComponent, selector: "herum-spinner", inputs: ["size", "borderColor", "borderWidth", "borderTopColor", "shape"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }] });
5249
5196
  }
5250
5197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumTextAreaComponent, decorators: [{
5251
5198
  type: Component,
@@ -6089,7 +6036,7 @@ class TrackTextChangesComponent {
6089
6036
  this.removeEventListenerFromMarkersAndTooltips();
6090
6037
  }
6091
6038
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: TrackTextChangesComponent, deps: [{ token: i1$2.TrackTextChangesService }], target: i0.ɵɵFactoryTarget.Component });
6092
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: TrackTextChangesComponent, isStandalone: false, selector: "track-text-changes", inputs: { changes: "changes", selectedChange: "selectedChange", currentUser: "currentUser", baseContent: "baseContent", isReadOnly: "isReadOnly", fontSize: "fontSize", showComments: "showComments" }, outputs: { changesEmitter: "changesEmitter" }, viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"editor-container\" class=\"editor-container\" dir=\"rtl\" [ngClass]=\"{'editor-container-with-grid':showComments}\">\r\n <div #editor class=\"text-editor\" [attr.contenteditable]=\"!isReadOnly\" (keydown)=\"_onKeyDown($event)\"\r\n (mouseup)=\"_onTextSelection()\" (drop)=\"_onDropTextSelection($event)\">\r\n </div>\r\n\r\n <div *ngIf=\"showComments\" class=\"comments-panel\">\r\n <h3>\u05D4\u05E2\u05E8\u05D5\u05EA:</h3>\r\n <div *ngFor=\"let change of changes\">\r\n <div class=\"comment\">\r\n <div class=\"comment-header align-items-center\">\r\n <strong><img [src]=\"change?.creatingUser?.pictureUrl\">{{ change?.creatingUser?.firstName + ' ' +\r\n change?.creatingUser?.lastName }}</strong>\r\n <span>{{ change.timestamp | date:'dd/MM/yy' }}</span>\r\n </div>\r\n\r\n <p #commentRef class=\"reference-text\" appHerumToolTip\r\n [matTooltip]=\"_isTruncatedElement(commentRef) ? change.note : ''\">\r\n <img src=\"assets/shared/trackChanges/text-reference.svg\">\r\n {{ change.note| ellipsis:commentRef }}\r\n </p>\r\n\r\n <div class=\"d-flex flex-cloumn justify-content-between w-100\">\r\n <span class=\"d-flex gap-3 align-items-center w-100\">\r\n\r\n <p class=\"comment-text m-0\">\r\n {{ change.commentText }}\r\n </p>\r\n </span>\r\n\r\n <button class=\"cancel-deletion\" (click)=\"deleteChange(change)\" *ngIf=\"!isReadOnly\">\r\n <img src=\"assets/shared/trackChanges/trash.svg\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showTooltip && !isReadOnly\" class=\"comment-tooltip\" [style.top.px]=\"tooltipPosition.top\"\r\n [style.left.px]=\"tooltipPosition.left\">\r\n <button (click)=\"openCommentBox()\">\r\n <span class=\"icon\" [innerHTML]=\"messagePlusIconSvgString | safeHtml\"></span>\r\n \u05D4\u05D5\u05E1\u05E3 \u05D4\u05E2\u05E8\u05D4\r\n </button>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showNotAllowedActionTooltip && !isReadOnly\" class=\"comment-tooltip\"\r\n [style.top.px]=\"showNotAllowedActionTooltipPosition.top\" [style.left.px]=\"showNotAllowedActionTooltipPosition.left\">\r\n <span>\r\n <span class=\"icon\" [innerHTML]=\"informationIconSvgString | safeHtml\"></span>\r\n \u05DC\u05D0 \u05E0\u05D9\u05EA\u05DF \u05DC\u05D1\u05E6\u05E2 \u05E4\u05E2\u05D5\u05DC\u05D4 \u05E2\u05DC \u05D4\u05E2\u05E8\u05D4 \u05E7\u05D9\u05D9\u05DE\u05EA\r\n </span>\r\n </div>\r\n\r\n <div *ngIf=\"showCommentBox && !isReadOnly\" class=\"comment-box\" [style.top.px]=\"commentBoxPosition.top\"\r\n [style.left.px]=\"commentBoxPosition.left\">\r\n <herum-text-area [(ngModel)]=\"newCommentText\" placeholder=\"\u05D4\u05D5\u05E1\u05E3 \u05D4\u05E2\u05E8\u05D4\">\r\n </herum-text-area>\r\n\r\n <div class=\"comment-actions\">\r\n <button class=\"cancel\" (click)=\"cancelComment()\">\u05D1\u05D8\u05DC</button>\r\n <button class=\"save\" (click)=\"saveComment()\">\u05D4\u05D5\u05E1\u05E3 \u05D4\u05E2\u05E8\u05D4</button>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"editCommentBox && !isReadOnly\" class=\"comment-box\" [style.top.px]=\"commentBoxPosition.top\"\r\n [style.left.px]=\"commentBoxPosition.left\">\r\n <herum-text-area [(ngModel)]=\"newCommentText\" placeholder=\"\u05D4\u05D5\u05E1\u05E3 \u05D4\u05E2\u05E8\u05D4\">\r\n </herum-text-area>\r\n\r\n <div class=\"comment-actions\">\r\n <button class=\"cancel\" (click)=\"cancelComment()\">\u05D1\u05D8\u05DC</button>\r\n <button class=\"save\" (click)=\"saveComment()\">\u05E9\u05DE\u05D5\u05E8</button>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{height:100%}.editor-container{padding:0 20px 20px;height:100%}.editor-container-with-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.text-editor{border:1px solid #ccc;padding:10px;min-height:300px;line-height:1.5;position:relative;border-radius:8px;white-space:pre-wrap;width:90%;overflow-y:auto}.text-editor *{font-size:inherit}::selection{background-color:var(--hover-background);box-shadow:0 0 0 1px var(--hover-background)}.text-editor del{color:red;text-decoration:line-through;background-color:#ffd7d7;border-radius:8px}.text-editor ins{color:#00f;text-decoration:none;border-radius:4px}.comment-marker{background-color:var(--dark-hover-background);border-radius:4px;width:100%}.comments-panel{overflow-y:auto;padding:10px;width:100%;height:100%}.comment{margin-bottom:10px;padding:10px;background-color:#f5f5f5;border-radius:4px;position:relative;width:100%}.comment .comment-text{width:90%;word-break:break-word}.comment-header{display:flex;justify-content:space-between;margin-bottom:8px}.comment-header strong img{margin-left:4px;width:24px;height:24px;border-radius:50%}.toolbar{grid-column:1/-1;padding:10px 0}.comment-tooltip{position:fixed;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0003;z-index:1000;padding:6px 12px}.comment-tooltip .icon{stroke:var(--icons-color)}.comment-tooltip button{background:#fff;color:#1a2d4c;border:none;border-radius:8px;cursor:pointer}.reference-text{opacity:.7}.comment-view-container{width:250px;display:flex;flex-direction:row;justify-content:space-between}.comment-box{display:flex;gap:12px;flex-direction:column;position:fixed;background:#fff;border-radius:8px;padding:10px;box-shadow:0 2px 8px #0003;z-index:1000;width:250px}.comment-box textarea{width:100%;min-height:100px;padding:8px;border:1px solid #ddd;border-radius:8px}.cancel-deletion{background:transparent;color:#fff;border:none;border-radius:4px;padding-inline:4px 0px}.comment-actions{display:flex;gap:10px;justify-content:space-between}.comment-actions .save{background:var(--icons-color);color:#fff;border:none}.comment-actions .cancel{color:var(--icons-color);background:none;border:none}.comment-actions button{padding:6px 12px;border-radius:4px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: HerumTextAreaComponent, selector: "herum-text-area", inputs: ["placeholder", "disabled", "formControlName", "isValid", "isLoading", "errorMsg", "showErrorMsgGap", "id", "preventMacroKeysPressEvent", "heightMode", "fontSize", "inputValue", "maxLength"], outputs: ["inputValueEmitter"] }, { kind: "directive", type: HerumToolTipDirective, selector: "[appHerumToolTip]", inputs: ["tooltipText"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }, { kind: "pipe", type: EllipsisPipe, name: "ellipsis" }], encapsulation: i0.ViewEncapsulation.None });
6039
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: TrackTextChangesComponent, isStandalone: false, selector: "track-text-changes", inputs: { changes: "changes", selectedChange: "selectedChange", currentUser: "currentUser", baseContent: "baseContent", isReadOnly: "isReadOnly", fontSize: "fontSize", showComments: "showComments" }, outputs: { changesEmitter: "changesEmitter" }, viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"editor-container\" class=\"editor-container\" dir=\"rtl\" [ngClass]=\"{'editor-container-with-grid':showComments}\">\r\n <div #editor class=\"text-editor\" [attr.contenteditable]=\"!isReadOnly\" (keydown)=\"_onKeyDown($event)\"\r\n (mouseup)=\"_onTextSelection()\" (drop)=\"_onDropTextSelection($event)\">\r\n </div>\r\n\r\n <div *ngIf=\"showComments\" class=\"comments-panel\">\r\n <h3>\u05D4\u05E2\u05E8\u05D5\u05EA:</h3>\r\n <div *ngFor=\"let change of changes\">\r\n <div class=\"comment\">\r\n <div class=\"comment-header align-items-center\">\r\n <strong><img [src]=\"change?.creatingUser?.pictureUrl\">{{ change?.creatingUser?.firstName + ' ' +\r\n change?.creatingUser?.lastName }}</strong>\r\n <span>{{ change.timestamp | date:'dd/MM/yy' }}</span>\r\n </div>\r\n\r\n <p #commentRef class=\"reference-text\" appHerumToolTip\r\n [matTooltip]=\"_isTruncatedElement(commentRef) ? change.note : ''\">\r\n <img src=\"assets/shared/trackChanges/text-reference.svg\">\r\n {{ change.note| ellipsis:commentRef }}\r\n </p>\r\n\r\n <div class=\"d-flex flex-cloumn justify-content-between w-100\">\r\n <span class=\"d-flex gap-3 align-items-center w-100\">\r\n\r\n <p class=\"comment-text m-0\">\r\n {{ change.commentText }}\r\n </p>\r\n </span>\r\n\r\n <button class=\"cancel-deletion\" (click)=\"deleteChange(change)\" *ngIf=\"!isReadOnly\">\r\n <img src=\"assets/shared/trackChanges/trash.svg\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showTooltip && !isReadOnly\" class=\"comment-tooltip\" [style.top.px]=\"tooltipPosition.top\"\r\n [style.left.px]=\"tooltipPosition.left\">\r\n <button (click)=\"openCommentBox()\">\r\n <span class=\"icon\" [innerHTML]=\"messagePlusIconSvgString | safeHtml\"></span>\r\n \u05D4\u05D5\u05E1\u05E3 \u05D4\u05E2\u05E8\u05D4\r\n </button>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showNotAllowedActionTooltip && !isReadOnly\" class=\"comment-tooltip\"\r\n [style.top.px]=\"showNotAllowedActionTooltipPosition.top\" [style.left.px]=\"showNotAllowedActionTooltipPosition.left\">\r\n <span>\r\n <span class=\"icon\" [innerHTML]=\"informationIconSvgString | safeHtml\"></span>\r\n \u05DC\u05D0 \u05E0\u05D9\u05EA\u05DF \u05DC\u05D1\u05E6\u05E2 \u05E4\u05E2\u05D5\u05DC\u05D4 \u05E2\u05DC \u05D4\u05E2\u05E8\u05D4 \u05E7\u05D9\u05D9\u05DE\u05EA\r\n </span>\r\n </div>\r\n\r\n <div *ngIf=\"showCommentBox && !isReadOnly\" class=\"comment-box\" [style.top.px]=\"commentBoxPosition.top\"\r\n [style.left.px]=\"commentBoxPosition.left\">\r\n <herum-text-area [(ngModel)]=\"newCommentText\" placeholder=\"\u05D4\u05D5\u05E1\u05E3 \u05D4\u05E2\u05E8\u05D4\">\r\n </herum-text-area>\r\n\r\n <div class=\"comment-actions\">\r\n <button class=\"cancel\" (click)=\"cancelComment()\">\u05D1\u05D8\u05DC</button>\r\n <button class=\"save\" (click)=\"saveComment()\">\u05D4\u05D5\u05E1\u05E3 \u05D4\u05E2\u05E8\u05D4</button>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"editCommentBox && !isReadOnly\" class=\"comment-box\" [style.top.px]=\"commentBoxPosition.top\"\r\n [style.left.px]=\"commentBoxPosition.left\">\r\n <herum-text-area [(ngModel)]=\"newCommentText\" placeholder=\"\u05D4\u05D5\u05E1\u05E3 \u05D4\u05E2\u05E8\u05D4\">\r\n </herum-text-area>\r\n\r\n <div class=\"comment-actions\">\r\n <button class=\"cancel\" (click)=\"cancelComment()\">\u05D1\u05D8\u05DC</button>\r\n <button class=\"save\" (click)=\"saveComment()\">\u05E9\u05DE\u05D5\u05E8</button>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{height:100%}.editor-container{padding:0 20px 20px;height:100%}.editor-container-with-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.text-editor{border:1px solid #ccc;padding:10px;min-height:300px;line-height:1.5;position:relative;border-radius:8px;white-space:pre-wrap;width:90%;overflow-y:auto}.text-editor *{font-size:inherit}::selection{background-color:var(--hover-background);box-shadow:0 0 0 1px var(--hover-background)}.text-editor del{color:red;text-decoration:line-through;background-color:#ffd7d7;border-radius:8px}.text-editor ins{color:#00f;text-decoration:none;border-radius:4px}.comment-marker{background-color:var(--dark-hover-background);border-radius:4px;width:100%}.comments-panel{overflow-y:auto;padding:10px;width:100%;height:100%}.comment{margin-bottom:10px;padding:10px;background-color:#f5f5f5;border-radius:4px;position:relative;width:100%}.comment .comment-text{width:90%;word-break:break-word}.comment-header{display:flex;justify-content:space-between;margin-bottom:8px}.comment-header strong img{margin-left:4px;width:24px;height:24px;border-radius:50%}.toolbar{grid-column:1/-1;padding:10px 0}.comment-tooltip{position:fixed;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0003;z-index:1000;padding:6px 12px}.comment-tooltip .icon{stroke:var(--icons-color)}.comment-tooltip button{background:#fff;color:#1a2d4c;border:none;border-radius:8px;cursor:pointer}.reference-text{opacity:.7}.comment-view-container{width:250px;display:flex;flex-direction:row;justify-content:space-between}.comment-box{display:flex;gap:12px;flex-direction:column;position:fixed;background:#fff;border-radius:8px;padding:10px;box-shadow:0 2px 8px #0003;z-index:1000;width:250px}.comment-box textarea{width:100%;min-height:100px;padding:8px;border:1px solid #ddd;border-radius:8px}.cancel-deletion{background:transparent;color:#fff;border:none;border-radius:4px;padding-inline:4px 0px}.comment-actions{display:flex;gap:10px;justify-content:space-between}.comment-actions .save{background:var(--icons-color);color:#fff;border:none}.comment-actions .cancel{color:var(--icons-color);background:none;border:none}.comment-actions button{padding:6px 12px;border-radius:4px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: HerumToolTipDirective, selector: "[appHerumToolTip]", inputs: ["tooltipText"] }, { kind: "component", type: HerumTextAreaComponent, selector: "herum-text-area", inputs: ["placeholder", "disabled", "formControlName", "isValid", "isLoading", "errorMsg", "showErrorMsgGap", "id", "preventMacroKeysPressEvent", "heightMode", "fontSize", "inputValue", "maxLength"], outputs: ["inputValueEmitter"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }, { kind: "pipe", type: EllipsisPipe, name: "ellipsis" }], encapsulation: i0.ViewEncapsulation.None });
6093
6040
  }
6094
6041
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: TrackTextChangesComponent, decorators: [{
6095
6042
  type: Component,
@@ -6176,7 +6123,7 @@ class QuizOpenAnswerQuestionComponent {
6176
6123
  this.destroySubject$.complete();
6177
6124
  }
6178
6125
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QuizOpenAnswerQuestionComponent, deps: [{ token: AnswerNotesToTextChangesPipe }], target: i0.ɵɵFactoryTarget.Component });
6179
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: QuizOpenAnswerQuestionComponent, isStandalone: false, selector: "quiz-open-answer-question", inputs: { previewMode: "previewMode", question: "question", userQuestion: "userQuestion", areAnswersRevealed: "areAnswersRevealed", areAnswersBlocked: "areAnswersBlocked", isCheckingMode: "isCheckingMode", selectedTextChange: "selectedTextChange" }, outputs: { freeTextCorrectAnswerChange: "freeTextCorrectAnswerChange", notesChange: "notesChange" }, usesOnChanges: true, ngImport: i0, template: "<span class=\"answer-title\">{{ isCheckingMode ? '\u05EA\u05E9\u05D5\u05D1\u05EA \u05D4\u05D7\u05E0\u05D9\u05DA' : '\u05DB\u05EA\u05D5\u05D1 \u05EA\u05E9\u05D5\u05D1\u05EA\u05DA' }}\r\n <span *ngIf=\"!isCheckingMode && question?.charactersLimit > 0\">\r\n (\u05E2\u05D3 {{ question?.charactersLimit }} \u05EA\u05D5\u05D5\u05D9\u05DD)\r\n </span>\r\n</span>\r\n\r\n<herum-text-area *ngIf=\"!areAnswersRevealed && !isCheckingMode\" [disabled]=\"previewMode || areAnswersBlocked\"\r\n [maxLength]=\"question?.charactersLimit\" [formControl]=\"freeTextCorrectAnswerControl\" heightMode=\"max\">\r\n</herum-text-area>\r\n\r\n<track-text-changes *ngIf=\"isCheckingMode || areAnswersRevealed\"\r\n [isReadOnly]=\"areAnswersRevealed && !isCheckingMode || !isCheckingMode\" [fontSize]=\"14\"\r\n [selectedChange]=\"selectedTextChange\" [showComments]=\"false\" [baseContent]=\"freeTextCorrectAnswerControl.value\"\r\n [changes]=\"notes\" (changesEmitter)=\"_notesChange($event)\">\r\n</track-text-changes>", styles: [".answer-title{font-size:14px;margin-block-end:8px}herum-text-area,track-text-changes{height:100%;width:100%}::ng-deep track-text-changes .editor-container{padding:0}::ng-deep track-text-changes .text-editor{min-height:180px;height:100%;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: HerumTextAreaComponent, selector: "herum-text-area", inputs: ["placeholder", "disabled", "formControlName", "isValid", "isLoading", "errorMsg", "showErrorMsgGap", "id", "preventMacroKeysPressEvent", "heightMode", "fontSize", "inputValue", "maxLength"], outputs: ["inputValueEmitter"] }, { kind: "component", type: TrackTextChangesComponent, selector: "track-text-changes", inputs: ["changes", "selectedChange", "currentUser", "baseContent", "isReadOnly", "fontSize", "showComments"], outputs: ["changesEmitter"] }] });
6126
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: QuizOpenAnswerQuestionComponent, isStandalone: false, selector: "quiz-open-answer-question", inputs: { previewMode: "previewMode", question: "question", userQuestion: "userQuestion", areAnswersRevealed: "areAnswersRevealed", areAnswersBlocked: "areAnswersBlocked", isCheckingMode: "isCheckingMode", selectedTextChange: "selectedTextChange" }, outputs: { freeTextCorrectAnswerChange: "freeTextCorrectAnswerChange", notesChange: "notesChange" }, usesOnChanges: true, ngImport: i0, template: "<span class=\"answer-title\">{{ isCheckingMode ? '\u05EA\u05E9\u05D5\u05D1\u05EA \u05D4\u05D7\u05E0\u05D9\u05DA' : '\u05DB\u05EA\u05D5\u05D1 \u05EA\u05E9\u05D5\u05D1\u05EA\u05DA' }}\r\n <span *ngIf=\"!isCheckingMode && question?.charactersLimit > 0\">\r\n (\u05E2\u05D3 {{ question?.charactersLimit }} \u05EA\u05D5\u05D5\u05D9\u05DD)\r\n </span>\r\n</span>\r\n\r\n<herum-text-area *ngIf=\"!areAnswersRevealed && !isCheckingMode\" [disabled]=\"previewMode || areAnswersBlocked\"\r\n [maxLength]=\"question?.charactersLimit\" [formControl]=\"freeTextCorrectAnswerControl\" heightMode=\"max\">\r\n</herum-text-area>\r\n\r\n<track-text-changes *ngIf=\"isCheckingMode || areAnswersRevealed\"\r\n [isReadOnly]=\"areAnswersRevealed && !isCheckingMode || !isCheckingMode\" [fontSize]=\"14\"\r\n [selectedChange]=\"selectedTextChange\" [showComments]=\"false\" [baseContent]=\"freeTextCorrectAnswerControl.value\"\r\n [changes]=\"notes\" (changesEmitter)=\"_notesChange($event)\">\r\n</track-text-changes>", styles: [".answer-title{font-size:14px;margin-block-end:8px}herum-text-area,track-text-changes{height:100%;width:100%}::ng-deep track-text-changes .editor-container{padding:0}::ng-deep track-text-changes .text-editor{min-height:180px;height:100%;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: HerumTextAreaComponent, selector: "herum-text-area", inputs: ["placeholder", "disabled", "formControlName", "isValid", "isLoading", "errorMsg", "showErrorMsgGap", "id", "preventMacroKeysPressEvent", "heightMode", "fontSize", "inputValue", "maxLength"], outputs: ["inputValueEmitter"] }, { kind: "component", type: TrackTextChangesComponent, selector: "track-text-changes", inputs: ["changes", "selectedChange", "currentUser", "baseContent", "isReadOnly", "fontSize", "showComments"], outputs: ["changesEmitter"] }] });
6180
6127
  }
6181
6128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QuizOpenAnswerQuestionComponent, decorators: [{
6182
6129
  type: Component,
@@ -6255,6 +6202,94 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
6255
6202
  args: ['herumHighlight']
6256
6203
  }] } });
6257
6204
 
6205
+ const iconDefaultColor = '#7897a8';
6206
+ const attribute = 'stroke';
6207
+ const pathSelector = 'path';
6208
+ const svgSelector = 'svg';
6209
+ class SvgOnHoverDirective {
6210
+ element;
6211
+ iconHoverColor;
6212
+ onMouseEnter() {
6213
+ if (!this.iconHoverColor)
6214
+ this.iconHoverColor = window.getComputedStyle(document.body).getPropertyValue('--icons-color');
6215
+ if (this.element.nativeElement.querySelector(svgSelector)?.querySelectorAll(pathSelector).length === 1)
6216
+ this.setElementAttribute(this.iconHoverColor);
6217
+ else
6218
+ ;
6219
+ this.setElementsAttribute(this.iconHoverColor);
6220
+ }
6221
+ onMouseLeave() {
6222
+ if (this.element.nativeElement.querySelector(svgSelector)?.querySelectorAll(pathSelector).length === 1)
6223
+ this.setElementAttribute(iconDefaultColor);
6224
+ else
6225
+ this.setElementsAttribute(iconDefaultColor);
6226
+ }
6227
+ stroke;
6228
+ constructor(element) {
6229
+ this.element = element;
6230
+ }
6231
+ setElementAttribute(color) {
6232
+ const element = this.element.nativeElement.querySelector(svgSelector)?.querySelector(pathSelector);
6233
+ element?.setAttribute(attribute, color);
6234
+ }
6235
+ setElementsAttribute(color) {
6236
+ const elements = this.element.nativeElement.querySelector(svgSelector)?.querySelectorAll(pathSelector);
6237
+ elements?.forEach(element => element.setAttribute(attribute, color));
6238
+ }
6239
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: SvgOnHoverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
6240
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.17", type: SvgOnHoverDirective, isStandalone: false, selector: "[svgOnHover]", inputs: { iconHoverColor: ["svgOnHover", "iconHoverColor"] }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "stroke": "this.stroke" } }, ngImport: i0 });
6241
+ }
6242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: SvgOnHoverDirective, decorators: [{
6243
+ type: Directive,
6244
+ args: [{
6245
+ standalone: false,
6246
+ selector: '[svgOnHover]'
6247
+ }]
6248
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { iconHoverColor: [{
6249
+ type: Input,
6250
+ args: ['svgOnHover']
6251
+ }], onMouseEnter: [{
6252
+ type: HostListener,
6253
+ args: ['mouseenter']
6254
+ }], onMouseLeave: [{
6255
+ type: HostListener,
6256
+ args: ['mouseleave']
6257
+ }], stroke: [{
6258
+ type: HostBinding
6259
+ }] } });
6260
+
6261
+ class DirectivesModule {
6262
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6263
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.17", ngImport: i0, type: DirectivesModule, declarations: [HerumHighlightDirective,
6264
+ HerumToolTipDirective,
6265
+ SvgOnHoverDirective,
6266
+ UserActionDirective], imports: [CommonModule], exports: [HerumHighlightDirective,
6267
+ HerumToolTipDirective,
6268
+ SvgOnHoverDirective,
6269
+ UserActionDirective] });
6270
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DirectivesModule, imports: [CommonModule] });
6271
+ }
6272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DirectivesModule, decorators: [{
6273
+ type: NgModule,
6274
+ args: [{
6275
+ declarations: [
6276
+ HerumHighlightDirective,
6277
+ HerumToolTipDirective,
6278
+ SvgOnHoverDirective,
6279
+ UserActionDirective,
6280
+ ],
6281
+ exports: [
6282
+ HerumHighlightDirective,
6283
+ HerumToolTipDirective,
6284
+ SvgOnHoverDirective,
6285
+ UserActionDirective,
6286
+ ],
6287
+ imports: [
6288
+ CommonModule,
6289
+ ],
6290
+ }]
6291
+ }] });
6292
+
6258
6293
  class InsuranceDialogComponent {
6259
6294
  dialogRef;
6260
6295
  data;
@@ -6282,7 +6317,7 @@ class InsuranceDialogComponent {
6282
6317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: InsuranceDialogComponent, decorators: [{
6283
6318
  type: Component,
6284
6319
  args: [{ standalone: false, selector: 'app-insurance-dialog', template: "<div class=\"dialog-container cubes-background\" [class]=\"systemIdentifier\">\r\n <div class=\"title-container\">\r\n <img class=\"warning-icon\" *ngIf=\"isWarning\" src=\"assets/hadracha/general/warningDialog.svg\" alt=\"close-icon\">\r\n <p class=\"section-title\">{{data.title}}</p>\r\n <img class=\"close-button\" src=\"assets/shared/icons/secondary-x.svg\" alt=\"close-icon\" (click)=\"_onClose()\">\r\n </div>\r\n\r\n <p class=\"description\">{{ data.description }}</p>\r\n\r\n <p *ngIf=\"data.note\" class=\"note\">{{ data.note }}</p>\r\n\r\n <div class=\"dialog-buttons-actions-container\" *ngIf=\"!!data.submitActionButton\">\r\n <herum-button (click)=\"_onClose()\" [type]=\"'ghost'\">{{ data.closeActionButton ?? '\u05D1\u05D8\u05DC' }}</herum-button>\r\n <herum-button [color]=\"isWarning ? 'error' : 'regular'\" (click)=\"_onSubmit()\">{{ data.submitActionButton }}</herum-button>\r\n </div>\r\n</div>", styles: [".dialog-container{background-size:auto}.dialog-container .title-container{position:relative;flex-direction:column}.dialog-container .title-container .close-button{position:absolute;top:12px;left:12px}.dialog-container .note{font-weight:700}.warning-icon{height:44px;margin-bottom:24px}\n", ".dialog-container,form{display:flex;flex-direction:column;gap:16px;position:relative;padding:16px;max-height:80vh;width:30vw}.title{font-size:18px;font-weight:600}.description{font-size:14px}p{margin:0}.dialog-buttons-actions-container{width:100%;justify-content:flex-end;gap:16px;display:flex;flex-direction:row}.close-dialog{position:absolute;top:20px;left:20px}.title-container{display:flex;align-items:center;justify-content:space-between}.close-button{cursor:pointer;height:11px}\n"] }]
6285
- }], ctorParameters: () => [{ type: i1$6.MatDialogRef }, { type: i1$5.DialogConfig, decorators: [{
6320
+ }], ctorParameters: () => [{ type: i1$6.MatDialogRef }, { type: i1$4.DialogConfig, decorators: [{
6286
6321
  type: Inject,
6287
6322
  args: [MAT_DIALOG_DATA]
6288
6323
  }] }, { type: undefined, decorators: [{
@@ -6462,7 +6497,7 @@ class HerumChipComponent {
6462
6497
  return this.title?.includes(splitKey);
6463
6498
  }
6464
6499
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6465
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumChipComponent, isStandalone: false, selector: "herum-chip", inputs: { title: "title", isDeleteButtonNeeded: "isDeleteButtonNeeded", isActive: "isActive", isMenuMode: "isMenuMode", type: "type" }, outputs: { remove: "remove", chipsActivation: "chipsActivation" }, ngImport: i0, template: "<div class=\"herum-chip-container\" [class]=\"type\" [ngClass]=\"{'active':isActive, 'menu-chip':isMenuMode}\" (click)=\"_onChipsSelect()\"\r\n dir=\"rtl\">\r\n\r\n <ng-container *ngIf=\"isTitleToBeSplitted; else defaultTitle\">\r\n <span [innerHTML]=\"splittedTitle | safeHtml\"></span>\r\n </ng-container>\r\n\r\n <ng-template #defaultTitle>{{title}}</ng-template>\r\n\r\n <img *ngIf=\"isDeleteButtonNeeded\" src=\"../../assets/general/secondary-x.svg\" (click)=\"_onRemove()\">\r\n</div>", styles: [".herum-chip-container{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;align-content:center;width:fit-content;gap:5px;padding:0 5px;background-color:transparent;color:var(--secondary-color);border:1px solid var(--secondary-color);border-radius:32px;box-shadow:0 0 6px #61606029}.herum-chip-container:hover{background-color:var(--hover-background)}.active{background-color:var(--secondary-color);color:#fff}.active:hover{background-color:var(--darker-secondary-color);color:#fff}.positive,.negative{color:var(--icons-color);border:1px solid var(--icons-color)}.menu-chip{cursor:pointer;font-size:12px;height:24px;text-align:center;justify-content:center;display:flex;padding:0 7px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] });
6500
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumChipComponent, isStandalone: false, selector: "herum-chip", inputs: { title: "title", isDeleteButtonNeeded: "isDeleteButtonNeeded", isActive: "isActive", isMenuMode: "isMenuMode", type: "type" }, outputs: { remove: "remove", chipsActivation: "chipsActivation" }, ngImport: i0, template: "<div class=\"herum-chip-container\" [class]=\"type\" [ngClass]=\"{'active':isActive, 'menu-chip':isMenuMode}\" (click)=\"_onChipsSelect()\"\r\n dir=\"rtl\">\r\n\r\n <ng-container *ngIf=\"isTitleToBeSplitted; else defaultTitle\">\r\n <span [innerHTML]=\"splittedTitle | safeHtml\"></span>\r\n </ng-container>\r\n\r\n <ng-template #defaultTitle>{{title}}</ng-template>\r\n\r\n <img *ngIf=\"isDeleteButtonNeeded\" src=\"../../assets/general/secondary-x.svg\" (click)=\"_onRemove()\">\r\n</div>", styles: [".herum-chip-container{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;align-content:center;width:fit-content;gap:5px;padding:0 5px;background-color:transparent;color:var(--secondary-color);border:1px solid var(--secondary-color);border-radius:32px;box-shadow:0 0 6px #61606029}.herum-chip-container:hover{background-color:var(--hover-background)}.active{background-color:var(--secondary-color);color:#fff}.active:hover{background-color:var(--darker-secondary-color);color:#fff}.positive,.negative{color:var(--icons-color);border:1px solid var(--icons-color)}.menu-chip{cursor:pointer;font-size:12px;height:24px;text-align:center;justify-content:center;display:flex;padding:0 7px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }] });
6466
6501
  }
6467
6502
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumChipComponent, decorators: [{
6468
6503
  type: Component,
@@ -6664,7 +6699,7 @@ class HerumDownloadFileComponent {
6664
6699
  return svgsStrings.downloadFile;
6665
6700
  }
6666
6701
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumDownloadFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6667
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumDownloadFileComponent, isStandalone: false, selector: "herum-download-file", inputs: { fileId: "fileId", filePath: "filePath", linkText: "linkText" }, outputs: { downloadFile: "downloadFile" }, viewQueries: [{ propertyName: "downloadFileElement", first: true, predicate: ["downloadFile"], descendants: true }], ngImport: i0, template: "<a #downloadFile class=\"download-file\" (click)=\"_onDownloadFile(fileId)\">\r\n <span class=\"download-file-icon\" [innerHTML]=\"downloadFileSvgString | safeHtml\"></span>\r\n <span class=\"clickable-text\">{{ linkText }}</span>\r\n</a>", styles: [".download-file{display:flex;gap:8px;flex-wrap:wrap;align-content:center;text-decoration:none}.download-file .download-file-icon{width:16px;height:100%;stroke:var(--icons-color)}\n"], dependencies: [{ kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] });
6702
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumDownloadFileComponent, isStandalone: false, selector: "herum-download-file", inputs: { fileId: "fileId", filePath: "filePath", linkText: "linkText" }, outputs: { downloadFile: "downloadFile" }, viewQueries: [{ propertyName: "downloadFileElement", first: true, predicate: ["downloadFile"], descendants: true }], ngImport: i0, template: "<a #downloadFile class=\"download-file\" (click)=\"_onDownloadFile(fileId)\">\r\n <span class=\"download-file-icon\" [innerHTML]=\"downloadFileSvgString | safeHtml\"></span>\r\n <span class=\"clickable-text\">{{ linkText }}</span>\r\n</a>", styles: [".download-file{display:flex;gap:8px;flex-wrap:wrap;align-content:center;text-decoration:none}.download-file .download-file-icon{width:16px;height:100%;stroke:var(--icons-color)}\n"], dependencies: [{ kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }] });
6668
6703
  }
6669
6704
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumDownloadFileComponent, decorators: [{
6670
6705
  type: Component,
@@ -6740,7 +6775,7 @@ class ConditionalFormControlNameDirective {
6740
6775
  this.renderer.removeAttribute(this.el.nativeElement, 'formControlName');
6741
6776
  }
6742
6777
  }
6743
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ConditionalFormControlNameDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1$4.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
6778
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ConditionalFormControlNameDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1$3.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
6744
6779
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.17", type: ConditionalFormControlNameDirective, isStandalone: false, selector: "[appConditionalFormControlName]", inputs: { formControlName: ["appConditionalFormControlName", "formControlName"] }, ngImport: i0 });
6745
6780
  }
6746
6781
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ConditionalFormControlNameDirective, decorators: [{
@@ -6749,7 +6784,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
6749
6784
  standalone: false,
6750
6785
  selector: '[appConditionalFormControlName]'
6751
6786
  }]
6752
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1$4.NgControl }], propDecorators: { formControlName: [{
6787
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1$3.NgControl }], propDecorators: { formControlName: [{
6753
6788
  type: Input,
6754
6789
  args: ['appConditionalFormControlName']
6755
6790
  }] } });
@@ -7268,7 +7303,7 @@ class HerumPaginatorComponent {
7268
7303
  return svgsStrings.chevron;
7269
7304
  }
7270
7305
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumPaginatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
7271
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumPaginatorComponent, isStandalone: false, selector: "herum-paginator", inputs: { numberOfSlots: "numberOfSlots", elementsToSlice: "elementsToSlice", numberOfElementsInPage: "numberOfElementsInPage", currentPage: "currentPage", totalPages: "totalPages", showArrows: "showArrows", slicerMode: "slicerMode" }, outputs: { slicedElements: "slicedElements", currentPageChange: "currentPageChange", paginatorRenderChange: "paginatorRenderChange" }, viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #element *ngIf=\"totalPages > 1\" class=\"paginator-container\">\r\n <span *ngIf=\"showArrows\" [ngClass]=\"{'cursor-not-allowed': currentPage === 1}\" class=\"item chevron right-chevron\"\r\n [innerHTML]=\"chevronIcon | safeHtml\" (click)=\"_onChangePage(currentPage -1)\">\r\n </span>\r\n\r\n <ng-container *ngFor=\"let item of visiblePages\">\r\n <span class=\"item\" *ngIf=\"_isNumber(item); else ellipsis\" (click)=\"_onChangePage(item)\"\r\n [ngClass]=\"{'herum-card': currentPage === item}\">\r\n {{ item }}\r\n </span>\r\n\r\n <ng-template #ellipsis>\r\n <span class=\"ellipsis\">{{ item }}</span>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <span *ngIf=\"showArrows\" [ngClass]=\"{'cursor-not-allowed': currentPage === totalPages}\"\r\n class=\"item chevron left-chevron\" [innerHTML]=\"chevronIcon | safeHtml\"\r\n (click)=\"_onChangePage(currentPage + 1)\">\r\n </span>\r\n</div>", styles: [".paginator-container{display:flex;gap:4px;direction:rtl;justify-content:flex-end;align-items:center;width:100%}.paginator-container .ellipsis,.paginator-container .item{display:flex;align-items:center;justify-content:center;width:28px;height:28px;font-weight:700}.paginator-container .item{cursor:pointer}.paginator-container .chevron{width:16px;height:16px;stroke:var(--icons-color)}.paginator-container .right-chevron{transform:rotate(-90deg)}.paginator-container .left-chevron{transform:rotate(90deg)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] });
7306
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumPaginatorComponent, isStandalone: false, selector: "herum-paginator", inputs: { numberOfSlots: "numberOfSlots", elementsToSlice: "elementsToSlice", numberOfElementsInPage: "numberOfElementsInPage", currentPage: "currentPage", totalPages: "totalPages", showArrows: "showArrows", slicerMode: "slicerMode" }, outputs: { slicedElements: "slicedElements", currentPageChange: "currentPageChange", paginatorRenderChange: "paginatorRenderChange" }, viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #element *ngIf=\"totalPages > 1\" class=\"paginator-container\">\r\n <span *ngIf=\"showArrows\" [ngClass]=\"{'cursor-not-allowed': currentPage === 1}\" class=\"item chevron right-chevron\"\r\n [innerHTML]=\"chevronIcon | safeHtml\" (click)=\"_onChangePage(currentPage -1)\">\r\n </span>\r\n\r\n <ng-container *ngFor=\"let item of visiblePages\">\r\n <span class=\"item\" *ngIf=\"_isNumber(item); else ellipsis\" (click)=\"_onChangePage(item)\"\r\n [ngClass]=\"{'herum-card': currentPage === item}\">\r\n {{ item }}\r\n </span>\r\n\r\n <ng-template #ellipsis>\r\n <span class=\"ellipsis\">{{ item }}</span>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <span *ngIf=\"showArrows\" [ngClass]=\"{'cursor-not-allowed': currentPage === totalPages}\"\r\n class=\"item chevron left-chevron\" [innerHTML]=\"chevronIcon | safeHtml\"\r\n (click)=\"_onChangePage(currentPage + 1)\">\r\n </span>\r\n</div>", styles: [".paginator-container{display:flex;gap:4px;direction:rtl;justify-content:flex-end;align-items:center;width:100%}.paginator-container .ellipsis,.paginator-container .item{display:flex;align-items:center;justify-content:center;width:28px;height:28px;font-weight:700}.paginator-container .item{cursor:pointer}.paginator-container .chevron{width:16px;height:16px;stroke:var(--icons-color)}.paginator-container .right-chevron{transform:rotate(-90deg)}.paginator-container .left-chevron{transform:rotate(90deg)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }] });
7272
7307
  }
7273
7308
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumPaginatorComponent, decorators: [{
7274
7309
  type: Component,
@@ -7861,12 +7896,12 @@ class HerumUploadFileComponent {
7861
7896
  return this.parentForm?.control.get(this.formControlName);
7862
7897
  }
7863
7898
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumUploadFileComponent, deps: [{ token: ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
7864
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumUploadFileComponent, isStandalone: false, selector: "herum-upload-file", inputs: { size: "size", placeholder: "placeholder", isDirectoryMode: "isDirectoryMode", allowedFileTypes: "allowedFileTypes", selectedFile: "selectedFile", formControlName: "formControlName", isEditMode: "isEditMode" }, outputs: { uploadFile: "uploadFile" }, providers: [CUSTOM_UPLOAD_FILE_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<button svgOnHover class=\"upload-file-button upload-file-border\" [class]=\"size\" (click)=\"fileInput.click()\"\r\n (drop)=\"_onDrop($event)\" (dragover)=\"_onPreventDefault($event)\">\r\n <ng-container *ngIf=\"!hasTouched && !files\">\r\n <div class=\"placeholder-container\">\r\n <span class=\"upload-file-icon\" [innerHTML]=\"uploadFileSvg | safeHtml\"></span>\r\n <span dir=\"rtl\" class=\"button-placeholder\">{{placeholder}}</span>\r\n </div>\r\n </ng-container>\r\n\r\n <span class=\"error\" *ngIf=\"hasTouched && !files\">\r\n \u05D7\u05D5\u05D1\u05D4 \u05DC\u05D4\u05E2\u05DC\u05D5\u05EA \u05E7\u05D5\u05D1\u05E5\r\n </span>\r\n\r\n <div svgOnHover *ngIf=\"files?.length>=0\" class=\"file-container\">\r\n <span *ngIf=\"files?.length>0\" class=\"upload-file-icon\" [innerHTML]=\"uploadFileSvg | safeHtml\"></span>\r\n\r\n <ng-container *ngIf=\"!isDirectoryMode\">\r\n <span #fileName class=\"file-name\" *ngIf=\"files?.length\"\r\n [matTooltip]=\"_isTruncatedTitleElement(fileName) ? uploadName : ''\">\r\n {{uploadName | ellipsis:fileName}}\r\n </span>\r\n\r\n <img class=\"delete-button\" *ngIf=\"files?.length\" src=\"../../assets/general/secondary-x.svg\"\r\n (click)=\"_onRemoveFiles($event)\">\r\n\r\n <span class=\"error\" *ngIf=\"!isFileTypeAllowed()\">\u05E1\u05D5\u05D2 \u05D4\u05E7\u05D5\u05D1\u05E5 \u05D0\u05D9\u05E0\u05D5 \u05DE\u05D5\u05E8\u05E9\u05D4/\u05EA\u05E7\u05D9\u05DF</span>\r\n </ng-container>\r\n\r\n <ng-container class=\"cursor-pointer\" *ngIf=\"isDirectoryMode\">\r\n <span class=\"directory-name-upload\" #directoryNameUpload *ngIf=\"files?.length\"\r\n [matTooltip]=\"_isTruncatedTitleElement(directoryNameUpload) ? directoryName : ''\">\r\n {{directoryName | ellipsis:directoryNameUpload}}\r\n </span>\r\n\r\n <img *ngIf=\"files?.length\" class=\"delete-button\" src=\"../../assets/general/secondary-x.svg\"\r\n (click)=\"_onRemoveFiles($event)\">\r\n\r\n <span class=\"error\" *ngIf=\"!isValidirectory\">\u05D4\u05EA\u05D9\u05D9\u05E7\u05D9\u05D4 \u05D0\u05D9\u05E0\u05D4 \u05E1\u05D8\u05D5\u05E8\u05D9</span>\r\n </ng-container>\r\n </div>\r\n</button>\r\n\r\n<input #fileInput class=\"d-none\" type=\"file\" [accept]=\"getAcceptValue(allowedFileTypes)\"\r\n [attr.webkitDirectory]=\"isDirectoryMode ? '' : null\" (change)=\"_onUploadFile($event.target.files)\"\r\n (cancel)=\"_onCancelUploadFile()\">", styles: [":host{padding:0}.upload-file-button{height:var(--atom-input-height);cursor:pointer;position:relative;color:var(--title-color);background:var(--light-background-color);font-size:var(--standard-font-size)}.upload-file-icon{cursor:pointer;stroke:var(--active-color);fill:var(--active-color)}.default{width:195px}.responsive{width:100%}.upload-file-button:hover{background:var(--item-hover-color);border-color:var(--secondary-color)}.upload-file-button:active{transform:scale(.96)}.file-container{display:flex;align-items:center;gap:6px;width:100%}.delete-button{position:absolute;left:8px;z-index:2}.file-name,.directory-name-upload{text-align:right;width:calc(100% - 40px)}.file-name{padding-left:12px}.button-placeholder{color:var(--disabled-text-color);cursor:pointer;width:100%;text-align:right}.error-input,.error-input:focus{border-color:var(--error-color)}.error{color:var(--error-color);width:100%;text-align:right}.placeholder-container{display:flex;gap:8px;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }, { kind: "pipe", type: i4.EllipsisPipe, name: "ellipsis" }] });
7899
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumUploadFileComponent, isStandalone: false, selector: "herum-upload-file", inputs: { size: "size", placeholder: "placeholder", isDirectoryMode: "isDirectoryMode", allowedFileTypes: "allowedFileTypes", selectedFile: "selectedFile", formControlName: "formControlName", isEditMode: "isEditMode" }, outputs: { uploadFile: "uploadFile" }, providers: [CUSTOM_UPLOAD_FILE_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<button svgOnHover class=\"upload-file-button upload-file-border\" [class]=\"size\" (click)=\"fileInput.click()\"\r\n (drop)=\"_onDrop($event)\" (dragover)=\"_onPreventDefault($event)\">\r\n <ng-container *ngIf=\"!hasTouched && !files\">\r\n <div class=\"placeholder-container\">\r\n <span class=\"upload-file-icon\" [innerHTML]=\"uploadFileSvg | safeHtml\"></span>\r\n <span dir=\"rtl\" class=\"button-placeholder\">{{placeholder}}</span>\r\n </div>\r\n </ng-container>\r\n\r\n <span class=\"error\" *ngIf=\"hasTouched && !files\">\r\n \u05D7\u05D5\u05D1\u05D4 \u05DC\u05D4\u05E2\u05DC\u05D5\u05EA \u05E7\u05D5\u05D1\u05E5\r\n </span>\r\n\r\n <div svgOnHover *ngIf=\"files?.length>=0\" class=\"file-container\">\r\n <span *ngIf=\"files?.length>0\" class=\"upload-file-icon\" [innerHTML]=\"uploadFileSvg | safeHtml\"></span>\r\n\r\n <ng-container *ngIf=\"!isDirectoryMode\">\r\n <span #fileName class=\"file-name\" *ngIf=\"files?.length\"\r\n [matTooltip]=\"_isTruncatedTitleElement(fileName) ? uploadName : ''\">\r\n {{uploadName | ellipsis:fileName}}\r\n </span>\r\n\r\n <img class=\"delete-button\" *ngIf=\"files?.length\" src=\"../../assets/general/secondary-x.svg\"\r\n (click)=\"_onRemoveFiles($event)\">\r\n\r\n <span class=\"error\" *ngIf=\"!isFileTypeAllowed()\">\u05E1\u05D5\u05D2 \u05D4\u05E7\u05D5\u05D1\u05E5 \u05D0\u05D9\u05E0\u05D5 \u05DE\u05D5\u05E8\u05E9\u05D4/\u05EA\u05E7\u05D9\u05DF</span>\r\n </ng-container>\r\n\r\n <ng-container class=\"cursor-pointer\" *ngIf=\"isDirectoryMode\">\r\n <span class=\"directory-name-upload\" #directoryNameUpload *ngIf=\"files?.length\"\r\n [matTooltip]=\"_isTruncatedTitleElement(directoryNameUpload) ? directoryName : ''\">\r\n {{directoryName | ellipsis:directoryNameUpload}}\r\n </span>\r\n\r\n <img *ngIf=\"files?.length\" class=\"delete-button\" src=\"../../assets/general/secondary-x.svg\"\r\n (click)=\"_onRemoveFiles($event)\">\r\n\r\n <span class=\"error\" *ngIf=\"!isValidirectory\">\u05D4\u05EA\u05D9\u05D9\u05E7\u05D9\u05D4 \u05D0\u05D9\u05E0\u05D4 \u05E1\u05D8\u05D5\u05E8\u05D9</span>\r\n </ng-container>\r\n </div>\r\n</button>\r\n\r\n<input #fileInput class=\"d-none\" type=\"file\" [accept]=\"getAcceptValue(allowedFileTypes)\"\r\n [attr.webkitDirectory]=\"isDirectoryMode ? '' : null\" (change)=\"_onUploadFile($event.target.files)\"\r\n (cancel)=\"_onCancelUploadFile()\">", styles: [":host{padding:0}.upload-file-button{height:var(--atom-input-height);cursor:pointer;position:relative;color:var(--title-color);background:var(--light-background-color);font-size:var(--standard-font-size)}.upload-file-icon{cursor:pointer;stroke:var(--active-color);fill:var(--active-color)}.default{width:195px}.responsive{width:100%}.upload-file-button:hover{background:var(--item-hover-color);border-color:var(--secondary-color)}.upload-file-button:active{transform:scale(.96)}.file-container{display:flex;align-items:center;gap:6px;width:100%}.delete-button{position:absolute;left:8px;z-index:2}.file-name,.directory-name-upload{text-align:right;width:calc(100% - 40px)}.file-name{padding-left:12px}.button-placeholder{color:var(--disabled-text-color);cursor:pointer;width:100%;text-align:right}.error-input,.error-input:focus{border-color:var(--error-color)}.error{color:var(--error-color);width:100%;text-align:right}.placeholder-container{display:flex;gap:8px;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4.SvgOnHoverDirective, selector: "[svgOnHover]", inputs: ["svgOnHover"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }, { kind: "pipe", type: i4$1.EllipsisPipe, name: "ellipsis" }] });
7865
7900
  }
7866
7901
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumUploadFileComponent, decorators: [{
7867
7902
  type: Component,
7868
7903
  args: [{ standalone: false, selector: 'herum-upload-file', providers: [CUSTOM_UPLOAD_FILE_CONTROL_VALUE_ACCESSOR], template: "<button svgOnHover class=\"upload-file-button upload-file-border\" [class]=\"size\" (click)=\"fileInput.click()\"\r\n (drop)=\"_onDrop($event)\" (dragover)=\"_onPreventDefault($event)\">\r\n <ng-container *ngIf=\"!hasTouched && !files\">\r\n <div class=\"placeholder-container\">\r\n <span class=\"upload-file-icon\" [innerHTML]=\"uploadFileSvg | safeHtml\"></span>\r\n <span dir=\"rtl\" class=\"button-placeholder\">{{placeholder}}</span>\r\n </div>\r\n </ng-container>\r\n\r\n <span class=\"error\" *ngIf=\"hasTouched && !files\">\r\n \u05D7\u05D5\u05D1\u05D4 \u05DC\u05D4\u05E2\u05DC\u05D5\u05EA \u05E7\u05D5\u05D1\u05E5\r\n </span>\r\n\r\n <div svgOnHover *ngIf=\"files?.length>=0\" class=\"file-container\">\r\n <span *ngIf=\"files?.length>0\" class=\"upload-file-icon\" [innerHTML]=\"uploadFileSvg | safeHtml\"></span>\r\n\r\n <ng-container *ngIf=\"!isDirectoryMode\">\r\n <span #fileName class=\"file-name\" *ngIf=\"files?.length\"\r\n [matTooltip]=\"_isTruncatedTitleElement(fileName) ? uploadName : ''\">\r\n {{uploadName | ellipsis:fileName}}\r\n </span>\r\n\r\n <img class=\"delete-button\" *ngIf=\"files?.length\" src=\"../../assets/general/secondary-x.svg\"\r\n (click)=\"_onRemoveFiles($event)\">\r\n\r\n <span class=\"error\" *ngIf=\"!isFileTypeAllowed()\">\u05E1\u05D5\u05D2 \u05D4\u05E7\u05D5\u05D1\u05E5 \u05D0\u05D9\u05E0\u05D5 \u05DE\u05D5\u05E8\u05E9\u05D4/\u05EA\u05E7\u05D9\u05DF</span>\r\n </ng-container>\r\n\r\n <ng-container class=\"cursor-pointer\" *ngIf=\"isDirectoryMode\">\r\n <span class=\"directory-name-upload\" #directoryNameUpload *ngIf=\"files?.length\"\r\n [matTooltip]=\"_isTruncatedTitleElement(directoryNameUpload) ? directoryName : ''\">\r\n {{directoryName | ellipsis:directoryNameUpload}}\r\n </span>\r\n\r\n <img *ngIf=\"files?.length\" class=\"delete-button\" src=\"../../assets/general/secondary-x.svg\"\r\n (click)=\"_onRemoveFiles($event)\">\r\n\r\n <span class=\"error\" *ngIf=\"!isValidirectory\">\u05D4\u05EA\u05D9\u05D9\u05E7\u05D9\u05D4 \u05D0\u05D9\u05E0\u05D4 \u05E1\u05D8\u05D5\u05E8\u05D9</span>\r\n </ng-container>\r\n </div>\r\n</button>\r\n\r\n<input #fileInput class=\"d-none\" type=\"file\" [accept]=\"getAcceptValue(allowedFileTypes)\"\r\n [attr.webkitDirectory]=\"isDirectoryMode ? '' : null\" (change)=\"_onUploadFile($event.target.files)\"\r\n (cancel)=\"_onCancelUploadFile()\">", styles: [":host{padding:0}.upload-file-button{height:var(--atom-input-height);cursor:pointer;position:relative;color:var(--title-color);background:var(--light-background-color);font-size:var(--standard-font-size)}.upload-file-icon{cursor:pointer;stroke:var(--active-color);fill:var(--active-color)}.default{width:195px}.responsive{width:100%}.upload-file-button:hover{background:var(--item-hover-color);border-color:var(--secondary-color)}.upload-file-button:active{transform:scale(.96)}.file-container{display:flex;align-items:center;gap:6px;width:100%}.delete-button{position:absolute;left:8px;z-index:2}.file-name,.directory-name-upload{text-align:right;width:calc(100% - 40px)}.file-name{padding-left:12px}.button-placeholder{color:var(--disabled-text-color);cursor:pointer;width:100%;text-align:right}.error-input,.error-input:focus{border-color:var(--error-color)}.error{color:var(--error-color);width:100%;text-align:right}.placeholder-container{display:flex;gap:8px;width:100%}\n"] }]
7869
- }], ctorParameters: () => [{ type: i1$4.ControlContainer, decorators: [{
7904
+ }], ctorParameters: () => [{ type: i1$3.ControlContainer, decorators: [{
7870
7905
  type: Optional
7871
7906
  }, {
7872
7907
  type: Inject,
@@ -7928,7 +7963,7 @@ class RoundedVerticalMenuComponent {
7928
7963
  });
7929
7964
  }
7930
7965
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: RoundedVerticalMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7931
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: RoundedVerticalMenuComponent, isStandalone: false, selector: "rounded-vertical-menu", inputs: { menuItems: "menuItems", currentItem: "currentItem", currentUser: "currentUser" }, outputs: { itemSelected: "itemSelected" }, usesOnChanges: true, ngImport: i0, template: "<ul class=\"nav-list\">\r\n <li *ngFor=\"let item of menuItems\" [class.active]=\"item === currentItem\" (click)=\"_onSelectItem(item)\"\r\n [class.disabled]=\"item.disabled\" appHerumToolTip [matTooltip]=\"item.disabledTooltip\">\r\n <img src=\"assets/hadracha/creation-icons/{{item.disabled ? 'disabled' : item === currentItem ? 'active' : 'regular'}}/{{ item.iconName }}.svg\"\r\n alt=\"{{ item.label }} icon\">\r\n <a>{{ item.label }}</a>\r\n </li>\r\n</ul>", styles: [":host{--body-bg: var(--light-background-color);--nav-bg: var(--icons-color);--nav-width: 15%}.nav-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.nav-list li{padding-block:1rem;padding-inline:2rem;display:flex;gap:8px}.nav-list li a{color:#fff;text-decoration:none;display:block;font-size:14px;cursor:pointer}.nav-list li.active{view-transition-name:nav;background:var(--body-bg);border-radius:0 100vw 100vw 0;position:relative}.nav-list li.active a{color:var(--title-color)}.nav-list li.active:before,.nav-list li.active:after{--r: 1rem;content:\"\";position:absolute;width:var(--r);height:var(--r);left:0;background:var(--nav-bg)}.nav-list li.active:before{border-radius:0 0 0 var(--r);top:calc(-1 * var(--r));box-shadow:-5px 5px 0 5px var(--body-bg)}.nav-list li.active:after{border-radius:var(--r) 0 0 0;bottom:calc(-1 * var(--r));box-shadow:-5px -5px 0 5px var(--body-bg)}.nav-list li.active ::view-transition-group(nav){animation-duration:1s}.nav-list li.disabled{cursor:not-allowed}.nav-list li.disabled a{color:var(--disabled-text-color);cursor:not-allowed}.nav-list li:nth-child(1) a{view-transition-name:test}.nav-list li:nth-child(2) a{view-transition-name:test-2}.nav-list li:nth-child(3) a{view-transition-name:test-3}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
7966
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: RoundedVerticalMenuComponent, isStandalone: false, selector: "rounded-vertical-menu", inputs: { menuItems: "menuItems", currentItem: "currentItem", currentUser: "currentUser" }, outputs: { itemSelected: "itemSelected" }, usesOnChanges: true, ngImport: i0, template: "<ul class=\"nav-list\">\r\n <li *ngFor=\"let item of menuItems\" [class.active]=\"item === currentItem\" (click)=\"_onSelectItem(item)\"\r\n [class.disabled]=\"item.disabled\" appHerumToolTip [matTooltip]=\"item.disabledTooltip\">\r\n <img src=\"assets/hadracha/creation-icons/{{item.disabled ? 'disabled' : item === currentItem ? 'active' : 'regular'}}/{{ item.iconName }}.svg\"\r\n alt=\"{{ item.label }} icon\">\r\n <a>{{ item.label }}</a>\r\n </li>\r\n</ul>", styles: [":host{--body-bg: var(--light-background-color);--nav-bg: var(--icons-color);--nav-width: 15%}.nav-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.nav-list li{padding-block:1rem;padding-inline:2rem;display:flex;gap:8px}.nav-list li a{color:#fff;text-decoration:none;display:block;font-size:14px;cursor:pointer}.nav-list li.active{view-transition-name:nav;background:var(--body-bg);border-radius:0 100vw 100vw 0;position:relative}.nav-list li.active a{color:var(--title-color)}.nav-list li.active:before,.nav-list li.active:after{--r: 1rem;content:\"\";position:absolute;width:var(--r);height:var(--r);left:0;background:var(--nav-bg)}.nav-list li.active:before{border-radius:0 0 0 var(--r);top:calc(-1 * var(--r));box-shadow:-5px 5px 0 5px var(--body-bg)}.nav-list li.active:after{border-radius:var(--r) 0 0 0;bottom:calc(-1 * var(--r));box-shadow:-5px -5px 0 5px var(--body-bg)}.nav-list li.active ::view-transition-group(nav){animation-duration:1s}.nav-list li.disabled{cursor:not-allowed}.nav-list li.disabled a{color:var(--disabled-text-color);cursor:not-allowed}.nav-list li:nth-child(1) a{view-transition-name:test}.nav-list li:nth-child(2) a{view-transition-name:test-2}.nav-list li:nth-child(3) a{view-transition-name:test-3}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4.HerumToolTipDirective, selector: "[appHerumToolTip]", inputs: ["tooltipText"] }] });
7932
7967
  }
7933
7968
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: RoundedVerticalMenuComponent, decorators: [{
7934
7969
  type: Component,
@@ -7984,7 +8019,7 @@ class TrackTextChangesNotesComponent {
7984
8019
  return svgsStrings.X;
7985
8020
  }
7986
8021
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: TrackTextChangesNotesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7987
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: TrackTextChangesNotesComponent, isStandalone: false, selector: "track-text-changes-notes", inputs: { textChanges: "textChanges", enableDeleteNote: "enableDeleteNote" }, outputs: { deleteNoteChange: "deleteNoteChange", hoverNote: "hoverNote" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"notes-title\">\u05D4\u05E2\u05E8\u05D5\u05EA</div>\r\n\r\n<div *ngIf=\"textChanges?.length; else noNotes\" class=\"notes\">\r\n <div class=\"note\" *ngFor=\"let textChange of textChanges; let index=index; trackBy:_trackNote\">\r\n <button *ngIf=\"enableDeleteNote\" class=\"delete-button\" (click)=\"_onDeleteTextChange(textChange)\">\r\n <span class=\"delete-icon\" [innerHTML]=\"deleteSvgString | safeHtml\"> </span>\r\n </button>\r\n\r\n <div class=\"note-card\" (mouseenter)=\"_onHoverNote(textChange)\" (mouseleave)=\"_onHoverNote(undefined)\">\r\n <ng-container *ngIf=\"textChange.type!=='generalNote'; else generalNote\">\r\n <p class=\"note-header\" [ngClass]=\"[textChange.type]\">\r\n <span [class]=\"textChange.type+'-note'\">{{ textChange.note }}</span>\r\n <span>{{ noteTypesToDisplay[index] }}</span>\r\n </p>\r\n\r\n <p class=\"comment-text\">\r\n {{ textChange.commentText ? textChange.commentText : '\u05DC\u05DC\u05D0 \u05D4\u05E2\u05E8\u05D4' }}\r\n </p>\r\n </ng-container>\r\n\r\n <ng-template #generalNote>\r\n <p class=\"general-note comment-text\">\r\n {{ textChange.note }}\r\n </p>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #noNotes>\r\n <div>\u05D0\u05D9\u05DF \u05D4\u05E2\u05E8\u05D5\u05EA</div>\r\n</ng-template>", styles: [":host{display:flex;flex-direction:column}.notes-title{font-size:14px;margin-block-end:8px}.notes{display:flex;flex-direction:column;gap:12px;padding-left:8px}.notes .note{display:flex;gap:8px;align-items:flex-start;flex:1}.notes .note .delete-button{padding:0;background:transparent;border:none}.notes .note .delete-icon{fill:var(--text-color)}.notes .note .note-card{background-color:var(--page-background-color);flex:1;border-radius:var(--border-radius)}.notes .note .note-card p{margin-block-end:0;font-size:14px}.notes .note .note-card .note-header,.notes .note .note-card .note,.notes .note .note-card .comment-text{padding:var(--standard-padding)}.notes .note .note-card .note-header{border-radius:var(--border-radius) var(--border-radius) 0 0;display:flex;justify-content:space-between}.notes .note .note-card .note-header .addition-note{color:var(--secondary-color)}.notes .note .note-card .note-header .deletion-note{color:var(--error-color)}.notes .note .note-card .note-header .comment-note{color:var(--positive-color)}.notes .note .note-card .comment-text{border-radius:0 0 var(--border-radius) var(--border-radius)}.notes .note .note-card .general-note{border-radius:var(--border-radius)}.notes .note .addition{color:var(--secondary-color);background-color:color-mix(in srgb,var(--secondary-color) 20%,transparent)}.notes .note .deletion{color:var(--error-color);background-color:var(--light-error-color)}.notes .note .comment{color:var(--positive-color);background-color:var(--light-positive-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] });
8022
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: TrackTextChangesNotesComponent, isStandalone: false, selector: "track-text-changes-notes", inputs: { textChanges: "textChanges", enableDeleteNote: "enableDeleteNote" }, outputs: { deleteNoteChange: "deleteNoteChange", hoverNote: "hoverNote" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"notes-title\">\u05D4\u05E2\u05E8\u05D5\u05EA</div>\r\n\r\n<div *ngIf=\"textChanges?.length; else noNotes\" class=\"notes\">\r\n <div class=\"note\" *ngFor=\"let textChange of textChanges; let index=index; trackBy:_trackNote\">\r\n <button *ngIf=\"enableDeleteNote\" class=\"delete-button\" (click)=\"_onDeleteTextChange(textChange)\">\r\n <span class=\"delete-icon\" [innerHTML]=\"deleteSvgString | safeHtml\"> </span>\r\n </button>\r\n\r\n <div class=\"note-card\" (mouseenter)=\"_onHoverNote(textChange)\" (mouseleave)=\"_onHoverNote(undefined)\">\r\n <ng-container *ngIf=\"textChange.type!=='generalNote'; else generalNote\">\r\n <p class=\"note-header\" [ngClass]=\"[textChange.type]\">\r\n <span [class]=\"textChange.type+'-note'\">{{ textChange.note }}</span>\r\n <span>{{ noteTypesToDisplay[index] }}</span>\r\n </p>\r\n\r\n <p class=\"comment-text\">\r\n {{ textChange.commentText ? textChange.commentText : '\u05DC\u05DC\u05D0 \u05D4\u05E2\u05E8\u05D4' }}\r\n </p>\r\n </ng-container>\r\n\r\n <ng-template #generalNote>\r\n <p class=\"general-note comment-text\">\r\n {{ textChange.note }}\r\n </p>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #noNotes>\r\n <div>\u05D0\u05D9\u05DF \u05D4\u05E2\u05E8\u05D5\u05EA</div>\r\n</ng-template>", styles: [":host{display:flex;flex-direction:column}.notes-title{font-size:14px;margin-block-end:8px}.notes{display:flex;flex-direction:column;gap:12px;padding-left:8px}.notes .note{display:flex;gap:8px;align-items:flex-start;flex:1}.notes .note .delete-button{padding:0;background:transparent;border:none}.notes .note .delete-icon{fill:var(--text-color)}.notes .note .note-card{background-color:var(--page-background-color);flex:1;border-radius:var(--border-radius)}.notes .note .note-card p{margin-block-end:0;font-size:14px}.notes .note .note-card .note-header,.notes .note .note-card .note,.notes .note .note-card .comment-text{padding:var(--standard-padding)}.notes .note .note-card .note-header{border-radius:var(--border-radius) var(--border-radius) 0 0;display:flex;justify-content:space-between}.notes .note .note-card .note-header .addition-note{color:var(--secondary-color)}.notes .note .note-card .note-header .deletion-note{color:var(--error-color)}.notes .note .note-card .note-header .comment-note{color:var(--positive-color)}.notes .note .note-card .comment-text{border-radius:0 0 var(--border-radius) var(--border-radius)}.notes .note .note-card .general-note{border-radius:var(--border-radius)}.notes .note .addition{color:var(--secondary-color);background-color:color-mix(in srgb,var(--secondary-color) 20%,transparent)}.notes .note .deletion{color:var(--error-color);background-color:var(--light-error-color)}.notes .note .comment{color:var(--positive-color);background-color:var(--light-positive-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }] });
7988
8023
  }
7989
8024
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: TrackTextChangesNotesComponent, decorators: [{
7990
8025
  type: Component,
@@ -8146,6 +8181,7 @@ class AtomsModule {
8146
8181
  DragDropModule,
8147
8182
  MatDatepickerModule,
8148
8183
  MatNativeDateModule,
8184
+ DirectivesModule$1,
8149
8185
  PipesModule$1], exports: [CollegeLoaderComponent,
8150
8186
  UsersProfilePreviewComponent,
8151
8187
  HerumBreadcrumbsComponent,
@@ -8203,6 +8239,7 @@ class AtomsModule {
8203
8239
  DragDropModule,
8204
8240
  MatDatepickerModule,
8205
8241
  MatNativeDateModule,
8242
+ DirectivesModule$1,
8206
8243
  PipesModule$1] });
8207
8244
  }
8208
8245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AtomsModule, decorators: [{
@@ -8306,6 +8343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
8306
8343
  DragDropModule,
8307
8344
  MatDatepickerModule,
8308
8345
  MatNativeDateModule,
8346
+ DirectivesModule$1,
8309
8347
  PipesModule$1
8310
8348
  ],
8311
8349
  providers: [
@@ -8627,7 +8665,7 @@ class HerumActiveMenuComponent {
8627
8665
  });
8628
8666
  }
8629
8667
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumActiveMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
8630
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumActiveMenuComponent, isStandalone: false, selector: "herum-active-menu", inputs: { useIcons: "useIcons", view: "view", activeColor: "activeColor", activeTextColor: "activeTextColor", secondaryTextColor: "secondaryTextColor", menuItems: "menuItems", selectedItem: "selectedItem", selectById: "selectById", isBlock: "isBlock", dragEvent: "dragEvent" }, outputs: { selectionIndex: "selectionIndex" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "tabsContainer", first: true, predicate: ["tabsContainer"], descendants: true }, { propertyName: "tabsElement", predicate: ["tabs"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ul #tabsContainer class=\"tabs group\" [ngClass]=\"view\" [class.isBlock]=\"isBlock\">\r\n <li #tabs *ngFor=\"let menuItem of menuItems; let i = index\"\r\n [class.active]=\"selectById ? menuItem?.id === selectedItem?.id : (currentItemIndex === i || menuItem === selectedItem)\">\r\n <a (click)=\"_onSelectTab(i)\" [userAction]=\"menuItem.label\">\r\n <span *ngIf=\"useIcons\" [innerHTML]=\"menuItem.icon | safeHtml\"\r\n [ngClass]=\"i == currentItemIndex ? 'active-icon' : 'non-active-icon'\">\r\n </span>\r\n\r\n <p class=\"m-0 truncate\" [matTooltip]=\"menuItem.label\">\r\n {{ menuItem.label }}\r\n </p>\r\n </a>\r\n </li>\r\n</ul>", styles: ["a{cursor:pointer;display:flex;width:100%;gap:8px;align-items:center;justify-content:center;z-index:3}a .active-icon{stroke:var(--active-menu-background, var(--icons-color))}a .active-icon,a .non-active-icon{z-index:3;width:24px}a .non-active-icon{stroke:var(--active-menu-secondary-text-color, #ffffff)}.narrow a{flex-direction:column}.narrow a span{height:18px}.narrow a p{font-size:14px;margin-right:0}#content{background-color:#fff;position:relative;overflow:hidden;min-height:400px}.tabs{list-style:none;width:100%}.tabs li{float:left;height:40px;position:relative}.tabs a{float:left;padding-inline:10px;background-color:var(--active-menu-background);height:100%}.tabs a p{text-decoration:none;font-size:16px;font-weight:500;color:var(--active-menu-secondary-text-color, #ffffff);z-index:3}.isBlock a p{color:gray}.active a{border-top-left-radius:12px;border-top-right-radius:12px}.active a p{color:var(--active-menu-text-color, var(--icons-color))}.tabs .active{z-index:3}.tabs .active a{background-color:#fff;color:var(--icons-color)}.tabs li:before,.tabs li:after,.tabs li a:before,.tabs li a:after{position:absolute;bottom:0}.tabs li:last-child:after,.tabs li:last-child a:after,.tabs li:first-child:before,.tabs li:first-child a:before,.tabs .active:after,.tabs .active:before,.tabs .active a:after,.tabs .active a:before{content:\"\"}.tabs .active:before,.tabs .active:after{background-color:#fff;z-index:1}.tabs li:before,.tabs li:after{background-color:var(--active-menu-background, var(--icons-color));width:12px;height:12px}.tabs li:before{left:-12px}.tabs li:after{right:-12px}.tabs li a:after,.tabs li a:before{width:20px;height:20px;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;background-color:var(--active-menu-background, var(--icons-color));z-index:2}.tabs .active a:after,.tabs .active a:before{background-color:var(--active-menu-background, var(--icons-color))}.tabs li:first-child.active a:before,.tabs li:last-child.active a:after{background-color:var(--active-menu-background, var(--icons-color))}.tabs li a:before{left:-20px}.tabs li a:after{right:-20px}ul{background-color:var(--active-menu-background, var(--icons-color));height:52px;margin:0;padding-top:12px;justify-content:flex-start;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] });
8668
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumActiveMenuComponent, isStandalone: false, selector: "herum-active-menu", inputs: { useIcons: "useIcons", view: "view", activeColor: "activeColor", activeTextColor: "activeTextColor", secondaryTextColor: "secondaryTextColor", menuItems: "menuItems", selectedItem: "selectedItem", selectById: "selectById", isBlock: "isBlock", dragEvent: "dragEvent" }, outputs: { selectionIndex: "selectionIndex" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "tabsContainer", first: true, predicate: ["tabsContainer"], descendants: true }, { propertyName: "tabsElement", predicate: ["tabs"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ul #tabsContainer class=\"tabs group\" [ngClass]=\"view\" [class.isBlock]=\"isBlock\">\r\n <li #tabs *ngFor=\"let menuItem of menuItems; let i = index\"\r\n [class.active]=\"selectById ? menuItem?.id === selectedItem?.id : (currentItemIndex === i || menuItem === selectedItem)\">\r\n <a (click)=\"_onSelectTab(i)\" [userAction]=\"menuItem.label\">\r\n <span *ngIf=\"useIcons\" [innerHTML]=\"menuItem.icon | safeHtml\"\r\n [ngClass]=\"i == currentItemIndex ? 'active-icon' : 'non-active-icon'\">\r\n </span>\r\n\r\n <p class=\"m-0 truncate\" [matTooltip]=\"menuItem.label\">\r\n {{ menuItem.label }}\r\n </p>\r\n </a>\r\n </li>\r\n</ul>", styles: ["a{cursor:pointer;display:flex;width:100%;gap:8px;align-items:center;justify-content:center;z-index:3}a .active-icon{stroke:var(--active-menu-background, var(--icons-color))}a .active-icon,a .non-active-icon{z-index:3;width:24px}a .non-active-icon{stroke:var(--active-menu-secondary-text-color, #ffffff)}.narrow a{flex-direction:column}.narrow a span{height:18px}.narrow a p{font-size:14px;margin-right:0}#content{background-color:#fff;position:relative;overflow:hidden;min-height:400px}.tabs{list-style:none;width:100%}.tabs li{float:left;height:40px;position:relative}.tabs a{float:left;padding-inline:10px;background-color:var(--active-menu-background);height:100%}.tabs a p{text-decoration:none;font-size:16px;font-weight:500;color:var(--active-menu-secondary-text-color, #ffffff);z-index:3}.isBlock a p{color:gray}.active a{border-top-left-radius:12px;border-top-right-radius:12px}.active a p{color:var(--active-menu-text-color, var(--icons-color))}.tabs .active{z-index:3}.tabs .active a{background-color:#fff;color:var(--icons-color)}.tabs li:before,.tabs li:after,.tabs li a:before,.tabs li a:after{position:absolute;bottom:0}.tabs li:last-child:after,.tabs li:last-child a:after,.tabs li:first-child:before,.tabs li:first-child a:before,.tabs .active:after,.tabs .active:before,.tabs .active a:after,.tabs .active a:before{content:\"\"}.tabs .active:before,.tabs .active:after{background-color:#fff;z-index:1}.tabs li:before,.tabs li:after{background-color:var(--active-menu-background, var(--icons-color));width:12px;height:12px}.tabs li:before{left:-12px}.tabs li:after{right:-12px}.tabs li a:after,.tabs li a:before{width:20px;height:20px;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;background-color:var(--active-menu-background, var(--icons-color));z-index:2}.tabs .active a:after,.tabs .active a:before{background-color:var(--active-menu-background, var(--icons-color))}.tabs li:first-child.active a:before,.tabs li:last-child.active a:after{background-color:var(--active-menu-background, var(--icons-color))}.tabs li a:before{left:-20px}.tabs li a:after{right:-20px}ul{background-color:var(--active-menu-background, var(--icons-color));height:52px;margin:0;padding-top:12px;justify-content:flex-start;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4.UserActionDirective, selector: "[userAction]", inputs: ["userAction"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }] });
8631
8669
  }
8632
8670
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumActiveMenuComponent, decorators: [{
8633
8671
  type: Component,
@@ -8775,13 +8813,13 @@ class HerumAutocompleteComponent {
8775
8813
  return normalizedOptionText.includes(normalizedSearchText);
8776
8814
  });
8777
8815
  }
8778
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumAutocompleteComponent, deps: [{ token: i1$4.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
8779
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumAutocompleteComponent, isStandalone: false, selector: "herum-autocomplete", inputs: { options: "options", displayBy: "displayBy", subTitleBy: "subTitleBy", placeholder: "placeholder", noResultsText: "noResultsText", disabled: "disabled", isLoadingInput: "isLoadingInput", debounceTime: "debounceTime", selectedOption: "selectedOption", isBlurred: "isBlurred" }, outputs: { filterTextEmitter: "filterTextEmitter", selectedOptionEmitter: "selectedOptionEmitter" }, host: { listeners: { "window:click": "onWindowClick($event)" } }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #container class=\"autocomplete-container\" dir=\"rtl\" [class.disabled]=\"disabled\">\r\n <herum-input-field #filterInput class=\"autocomplete-input internal\" \r\n [type]=\"isBlurred ? 'search-blur' : 'search'\" [placeholder]=\"placeholder\"\r\n [debounceTime]=\"debounceTime\" [disabled]=\"disabled\" [inputValue]=\"currentSearchedItem\"\r\n (click)=\"_onInputClick($event)\" (inputValueEmitter)=\"_inputChange($event)\">\r\n </herum-input-field>\r\n\r\n <div class=\"autocomplete-dropdown\" [@openClose]=\"isDropdownOpen ? 'openDown' : 'closeUp'\" \r\n [class.hidden]=\"!isDropdownOpen\" [class.glass]=\"isBlurred\">\r\n <ng-container *ngIf=\"isLoadingInput || isWaitingForResults; else optionsList\">\r\n <div *ngFor=\"let _ of skeletonRows; let i = index\" class=\"autocomplete-option loading-state\">\r\n <span class=\"skeleton-text skeleton\" [ngStyle]=\"{width: _getSkeletonWidth(i) + 'px'}\">&nbsp;</span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #optionsList>\r\n <ng-container *ngIf=\"filteredOptions?.length; else noResults\">\r\n <a class=\"autocomplete-option\" *ngFor=\"let option of filteredOptions\" (click)=\"_onSelectOption(option)\">\r\n <div class=\"option-main\">\r\n <ng-container *ngIf=\"option.iconUrl; else defaultLeadingIcon\">\r\n <img [src]=\"option.iconUrl\" class=\"option-icon-img\" />\r\n </ng-container>\r\n \r\n <ng-template #defaultLeadingIcon>\r\n <img src=\"assets/hadracha/general/plus.svg\" class=\"option-icon\">\r\n </ng-template>\r\n\r\n <span [highlightText]=\"option[displayBy]\" [herumHighlight]=\"currentSearchedItem\"></span>\r\n </div>\r\n\r\n <span class=\"option-subtitle\" *ngIf=\"subTitleBy && option[subTitleBy]\">\r\n {{ option[subTitleBy] }}\r\n </span>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #noResults>\r\n <a *ngIf=\"!(isLoadingInput || isWaitingForResults)\"\r\n class=\"autocomplete-option text-center no-results-blurred\">\r\n {{ noResultsText }}\r\n </a>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n</div>", styles: [":host{--option-icon-size: 14px;--option-item-size: 28px;--autocomplete-visible-options: 5;--autocomplete-option-padding-vertical: 8px;--autocomplete-option-height: calc(var(--option-item-size) + 2 * var(--autocomplete-option-padding-vertical));--dropdown-height: calc(var(--autocomplete-option-height) * var(--autocomplete-visible-options));--loading-state-padding-vertical: calc((var(--option-item-size) + var(--autocomplete-option-padding-vertical)) / 2)}.autocomplete-container{position:relative;width:100%;direction:rtl}.autocomplete-container.disabled{opacity:.6;pointer-events:none}.autocomplete-container .autocomplete-input{width:100%;display:block}.autocomplete-container .autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;max-height:var(--dropdown-height);overflow-y:auto;overflow-x:hidden;line-height:var(--option-item-size)}.autocomplete-container .autocomplete-dropdown.hidden{pointer-events:none}.autocomplete-container .autocomplete-dropdown:not(.glass){background-color:var(--light-background-color);border-radius:var(--border-radius);box-shadow:0 2px 4px #00000029}.autocomplete-container .autocomplete-dropdown.glass .no-results-blurred{color:var(--text-color)!important}.autocomplete-container .autocomplete-dropdown .autocomplete-option{display:flex;align-items:center;justify-content:flex-start;padding:var(--autocomplete-option-padding-vertical) 16px;cursor:pointer;font-size:14px;color:var(--text-color);text-decoration:none}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-main{display:flex;align-items:center;gap:8px;min-width:0}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-subtitle{margin-inline-start:auto;white-space:nowrap;opacity:.75;font-size:12px}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-icon{width:var(--option-icon-size);height:var(--option-icon-size);margin-left:4px}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-icon-img{width:var(--option-item-size);height:var(--option-item-size);margin-left:8px;border-radius:16px}.autocomplete-container .autocomplete-dropdown .autocomplete-option.autocomplete-option{border-top:1px solid var(--divider-color)}.autocomplete-container .autocomplete-dropdown .autocomplete-option:hover{background-color:var(--hover-background)}.autocomplete-container .autocomplete-dropdown .autocomplete-option.text-center{cursor:default;color:var(--homepage-separator)}.autocomplete-container .autocomplete-dropdown .autocomplete-option.loading-state{padding-top:var(--loading-state-padding-vertical);padding-bottom:var(--loading-state-padding-vertical)}\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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i2$2.HerumInputFieldComponent, selector: "herum-input-field", inputs: ["type", "placeholder", "disabled", "isBlocked", "isValid", "errorMsg", "showErrorMsgGap", "inputValue", "isLoading", "id", "debounceTime", "minValue", "maxValue", "isBlurred", "touched", "ltrMode", "preventMacroKeysPressEvent"], outputs: ["inputValueEmitter"] }], animations: [openClose$1] });
8816
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumAutocompleteComponent, deps: [{ token: i1$3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
8817
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumAutocompleteComponent, isStandalone: false, selector: "herum-autocomplete", inputs: { options: "options", displayBy: "displayBy", subTitleBy: "subTitleBy", placeholder: "placeholder", noResultsText: "noResultsText", disabled: "disabled", isLoadingInput: "isLoadingInput", debounceTime: "debounceTime", selectedOption: "selectedOption", isBlurred: "isBlurred" }, outputs: { filterTextEmitter: "filterTextEmitter", selectedOptionEmitter: "selectedOptionEmitter" }, host: { listeners: { "window:click": "onWindowClick($event)" } }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #container class=\"autocomplete-container\" dir=\"rtl\" [class.disabled]=\"disabled\">\r\n <herum-input-field #filterInput class=\"autocomplete-input internal\" \r\n [type]=\"isBlurred ? 'search-blur' : 'search'\" [placeholder]=\"placeholder\"\r\n [debounceTime]=\"debounceTime\" [disabled]=\"disabled\" [inputValue]=\"currentSearchedItem\"\r\n (click)=\"_onInputClick($event)\" (inputValueEmitter)=\"_inputChange($event)\">\r\n </herum-input-field>\r\n\r\n <div class=\"autocomplete-dropdown\" [@openClose]=\"isDropdownOpen ? 'openDown' : 'closeUp'\" \r\n [class.hidden]=\"!isDropdownOpen\" [class.glass]=\"isBlurred\">\r\n <ng-container *ngIf=\"isLoadingInput || isWaitingForResults; else optionsList\">\r\n <div *ngFor=\"let _ of skeletonRows; let i = index\" class=\"autocomplete-option loading-state\">\r\n <span class=\"skeleton-text skeleton\" [ngStyle]=\"{width: _getSkeletonWidth(i) + 'px'}\">&nbsp;</span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #optionsList>\r\n <ng-container *ngIf=\"filteredOptions?.length; else noResults\">\r\n <a class=\"autocomplete-option\" *ngFor=\"let option of filteredOptions\" (click)=\"_onSelectOption(option)\">\r\n <div class=\"option-main\">\r\n <ng-container *ngIf=\"option.iconUrl; else defaultLeadingIcon\">\r\n <img [src]=\"option.iconUrl\" class=\"option-icon-img\" />\r\n </ng-container>\r\n \r\n <ng-template #defaultLeadingIcon>\r\n <img src=\"assets/hadracha/general/plus.svg\" class=\"option-icon\">\r\n </ng-template>\r\n\r\n <span [highlightText]=\"option[displayBy]\" [herumHighlight]=\"currentSearchedItem\"></span>\r\n </div>\r\n\r\n <span class=\"option-subtitle\" *ngIf=\"subTitleBy && option[subTitleBy]\">\r\n {{ option[subTitleBy] }}\r\n </span>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #noResults>\r\n <a *ngIf=\"!(isLoadingInput || isWaitingForResults)\"\r\n class=\"autocomplete-option text-center no-results-blurred\">\r\n {{ noResultsText }}\r\n </a>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n</div>", styles: [":host{--option-icon-size: 14px;--option-item-size: 28px;--autocomplete-visible-options: 5;--autocomplete-option-padding-vertical: 8px;--autocomplete-option-height: calc(var(--option-item-size) + 2 * var(--autocomplete-option-padding-vertical));--dropdown-height: calc(var(--autocomplete-option-height) * var(--autocomplete-visible-options));--loading-state-padding-vertical: calc((var(--option-item-size) + var(--autocomplete-option-padding-vertical)) / 2)}.autocomplete-container{position:relative;width:100%;direction:rtl}.autocomplete-container.disabled{opacity:.6;pointer-events:none}.autocomplete-container .autocomplete-input{width:100%;display:block}.autocomplete-container .autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;max-height:var(--dropdown-height);overflow-y:auto;overflow-x:hidden;line-height:var(--option-item-size)}.autocomplete-container .autocomplete-dropdown.hidden{pointer-events:none}.autocomplete-container .autocomplete-dropdown:not(.glass){background-color:var(--light-background-color);border-radius:var(--border-radius);box-shadow:0 2px 4px #00000029}.autocomplete-container .autocomplete-dropdown.glass .no-results-blurred{color:var(--text-color)!important}.autocomplete-container .autocomplete-dropdown .autocomplete-option{display:flex;align-items:center;justify-content:flex-start;padding:var(--autocomplete-option-padding-vertical) 16px;cursor:pointer;font-size:14px;color:var(--text-color);text-decoration:none}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-main{display:flex;align-items:center;gap:8px;min-width:0}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-subtitle{margin-inline-start:auto;white-space:nowrap;opacity:.75;font-size:12px}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-icon{width:var(--option-icon-size);height:var(--option-icon-size);margin-left:4px}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-icon-img{width:var(--option-item-size);height:var(--option-item-size);margin-left:8px;border-radius:16px}.autocomplete-container .autocomplete-dropdown .autocomplete-option.autocomplete-option{border-top:1px solid var(--divider-color)}.autocomplete-container .autocomplete-dropdown .autocomplete-option:hover{background-color:var(--hover-background)}.autocomplete-container .autocomplete-dropdown .autocomplete-option.text-center{cursor:default;color:var(--homepage-separator)}.autocomplete-container .autocomplete-dropdown .autocomplete-option.loading-state{padding-top:var(--loading-state-padding-vertical);padding-bottom:var(--loading-state-padding-vertical)}\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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i4.HerumHighlightDirective, selector: "[herumHighlight]", inputs: ["highlightText", "herumHighlight"] }, { kind: "component", type: i2$2.HerumInputFieldComponent, selector: "herum-input-field", inputs: ["type", "placeholder", "disabled", "isBlocked", "isValid", "errorMsg", "showErrorMsgGap", "inputValue", "isLoading", "id", "debounceTime", "minValue", "maxValue", "isBlurred", "touched", "ltrMode", "preventMacroKeysPressEvent"], outputs: ["inputValueEmitter"] }], animations: [openClose$1] });
8780
8818
  }
8781
8819
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumAutocompleteComponent, decorators: [{
8782
8820
  type: Component,
8783
8821
  args: [{ standalone: false, selector: 'herum-autocomplete', animations: [openClose$1], template: "<div #container class=\"autocomplete-container\" dir=\"rtl\" [class.disabled]=\"disabled\">\r\n <herum-input-field #filterInput class=\"autocomplete-input internal\" \r\n [type]=\"isBlurred ? 'search-blur' : 'search'\" [placeholder]=\"placeholder\"\r\n [debounceTime]=\"debounceTime\" [disabled]=\"disabled\" [inputValue]=\"currentSearchedItem\"\r\n (click)=\"_onInputClick($event)\" (inputValueEmitter)=\"_inputChange($event)\">\r\n </herum-input-field>\r\n\r\n <div class=\"autocomplete-dropdown\" [@openClose]=\"isDropdownOpen ? 'openDown' : 'closeUp'\" \r\n [class.hidden]=\"!isDropdownOpen\" [class.glass]=\"isBlurred\">\r\n <ng-container *ngIf=\"isLoadingInput || isWaitingForResults; else optionsList\">\r\n <div *ngFor=\"let _ of skeletonRows; let i = index\" class=\"autocomplete-option loading-state\">\r\n <span class=\"skeleton-text skeleton\" [ngStyle]=\"{width: _getSkeletonWidth(i) + 'px'}\">&nbsp;</span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #optionsList>\r\n <ng-container *ngIf=\"filteredOptions?.length; else noResults\">\r\n <a class=\"autocomplete-option\" *ngFor=\"let option of filteredOptions\" (click)=\"_onSelectOption(option)\">\r\n <div class=\"option-main\">\r\n <ng-container *ngIf=\"option.iconUrl; else defaultLeadingIcon\">\r\n <img [src]=\"option.iconUrl\" class=\"option-icon-img\" />\r\n </ng-container>\r\n \r\n <ng-template #defaultLeadingIcon>\r\n <img src=\"assets/hadracha/general/plus.svg\" class=\"option-icon\">\r\n </ng-template>\r\n\r\n <span [highlightText]=\"option[displayBy]\" [herumHighlight]=\"currentSearchedItem\"></span>\r\n </div>\r\n\r\n <span class=\"option-subtitle\" *ngIf=\"subTitleBy && option[subTitleBy]\">\r\n {{ option[subTitleBy] }}\r\n </span>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #noResults>\r\n <a *ngIf=\"!(isLoadingInput || isWaitingForResults)\"\r\n class=\"autocomplete-option text-center no-results-blurred\">\r\n {{ noResultsText }}\r\n </a>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n</div>", styles: [":host{--option-icon-size: 14px;--option-item-size: 28px;--autocomplete-visible-options: 5;--autocomplete-option-padding-vertical: 8px;--autocomplete-option-height: calc(var(--option-item-size) + 2 * var(--autocomplete-option-padding-vertical));--dropdown-height: calc(var(--autocomplete-option-height) * var(--autocomplete-visible-options));--loading-state-padding-vertical: calc((var(--option-item-size) + var(--autocomplete-option-padding-vertical)) / 2)}.autocomplete-container{position:relative;width:100%;direction:rtl}.autocomplete-container.disabled{opacity:.6;pointer-events:none}.autocomplete-container .autocomplete-input{width:100%;display:block}.autocomplete-container .autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;max-height:var(--dropdown-height);overflow-y:auto;overflow-x:hidden;line-height:var(--option-item-size)}.autocomplete-container .autocomplete-dropdown.hidden{pointer-events:none}.autocomplete-container .autocomplete-dropdown:not(.glass){background-color:var(--light-background-color);border-radius:var(--border-radius);box-shadow:0 2px 4px #00000029}.autocomplete-container .autocomplete-dropdown.glass .no-results-blurred{color:var(--text-color)!important}.autocomplete-container .autocomplete-dropdown .autocomplete-option{display:flex;align-items:center;justify-content:flex-start;padding:var(--autocomplete-option-padding-vertical) 16px;cursor:pointer;font-size:14px;color:var(--text-color);text-decoration:none}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-main{display:flex;align-items:center;gap:8px;min-width:0}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-subtitle{margin-inline-start:auto;white-space:nowrap;opacity:.75;font-size:12px}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-icon{width:var(--option-icon-size);height:var(--option-icon-size);margin-left:4px}.autocomplete-container .autocomplete-dropdown .autocomplete-option .option-icon-img{width:var(--option-item-size);height:var(--option-item-size);margin-left:8px;border-radius:16px}.autocomplete-container .autocomplete-dropdown .autocomplete-option.autocomplete-option{border-top:1px solid var(--divider-color)}.autocomplete-container .autocomplete-dropdown .autocomplete-option:hover{background-color:var(--hover-background)}.autocomplete-container .autocomplete-dropdown .autocomplete-option.text-center{cursor:default;color:var(--homepage-separator)}.autocomplete-container .autocomplete-dropdown .autocomplete-option.loading-state{padding-top:var(--loading-state-padding-vertical);padding-bottom:var(--loading-state-padding-vertical)}\n"] }]
8784
- }], ctorParameters: () => [{ type: i1$4.NgControl, decorators: [{
8822
+ }], ctorParameters: () => [{ type: i1$3.NgControl, decorators: [{
8785
8823
  type: Optional
8786
8824
  }, {
8787
8825
  type: Self
@@ -9157,7 +9195,7 @@ class HerumDropZoneComponent {
9157
9195
  this.errorMessages = this.errorMessages.filter(errorMessage => errorMessage.message !== requiredFieldMessage);
9158
9196
  }
9159
9197
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumDropZoneComponent, deps: [{ token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
9160
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumDropZoneComponent, isStandalone: false, selector: "herum-drop-zone", inputs: { selectedFiles: "selectedFiles", placeholder: "placeholder", numberOfAllowedFiles: "numberOfAllowedFiles", allowedFileTypes: "allowedFileTypes", supportedFilesMimes: "supportedFilesMimes", supportedFilesTypes: "supportedFilesTypes", requiredField: "requiredField", directionPreview: "directionPreview", type: "type", grow: "grow", fillContainer: "fillContainer", uploadFileSvg: "uploadFileSvg", previewImageUrl: "previewImageUrl", allowToDeleteImage: "allowToDeleteImage" }, outputs: { filesDataEvent: "filesDataEvent" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<button class=\"dropzone\" [class.not-displayed]=\"previewImageUrl\" [class.fill-container]=\"fillContainer\"\r\n [style.height]=\"grow ? '100%' : ''\" (drop)=\"_onUploadDroppedFiles($event)\" (click)=\"_onClickFileInput()\"\r\n (dragover)=\"_onPreventDefault($event)\">\r\n <div svgOnHover class=\"dropzone-content upload-file-border\" [style.height]=\"grow ? '100%' : '130px'\"\r\n [ngClass]=\"{'row-dropzone':type=='row'}\"\r\n [ngStyle]=\"{'justify-content': (filesList?.length || type == 'row') ? 'start' : 'center'}\">\r\n <div class=\"center-icon\" [ngClass]=\"{'upload-file-row-preview':directionPreview==='row' }\"\r\n *ngIf=\"!filesList?.length\">\r\n <span class=\"upload-file-image mb-2\" [style.height]=\"grow ? '60px' : ''\" [style.width]=\"grow ? '60px' : ''\"\r\n [innerHTML]=\"uploadFileSvg | safeHtml\">\r\n </span>\r\n\r\n <div class=\"dropzone-text\" [style.fontSize]=\"grow ? 'large' : ''\"> {{ placeholder }} </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"filesList?.length > 0\">\r\n <div class=\"files-container\" *ngFor=\"let file of filesList; index as i\">\r\n <img [src]=\"getIconPath(file)\" alt=\"#{{i+1}} picture\" />\r\n\r\n <span class=\"file-name truncate\"> {{ file?.name }}</span>\r\n\r\n <div class=\"delete-container\" (click)=\"_onRemoveFile(i, $event)\">\r\n <img class=\"delete-button\" src=\"assets/general/secondary-x.svg\">\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div *ngFor=\"let error of errorMessages\">\r\n <span *ngIf=\"error.condition()\" class=\"error-msg\"\r\n [matTooltip]=\"!isSupportedFileType ? '\u05E1\u05D5\u05D2\u05D9 \u05D4\u05E7\u05D1\u05E6\u05D9\u05DD \u05D4\u05E0\u05EA\u05DE\u05DB\u05D9\u05DD: ' + supportedFilesTypes : ''\">\r\n {{ error.message }}\r\n </span>\r\n </div>\r\n\r\n <span (click)=\"$event.stopPropagation()\">\r\n <herum-download-file *ngIf=\"!isSupportedFileType\" [filePath]=\"convertorMediaPath\"\r\n linkText=\"\u05DC\u05D4\u05D5\u05E8\u05D3\u05D4 \u05EA\u05D5\u05DB\u05E0\u05EA \u05D4\u05DE\u05E8\u05EA \u05DE\u05D3\u05D9\u05D4\">\r\n </herum-download-file>\r\n </span>\r\n </div>\r\n</button>\r\n\r\n<div *ngIf=\"previewImageUrl\" class=\"preview-wrapper\">\r\n <div class=\"image-container\">\r\n <img [src]=\"previewImageUrl\" alt=\"Preview\" class=\"preview-image\">\r\n\r\n <button type=\"button\" class=\"remove-btn\" aria-label=\"Remove image\" (click)=\"_onRemoveImage()\">\r\n <img class=\"remove-icon\" src=\"assets/general/secondary-x.svg\" alt=Remove />\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<input #fileInput class=\"d-none\" type=\"file\" [accept]=\"parsedAllowedFileTypes\" (change)=\"_onUploadFiles($event)\"\r\n multiple>", styles: [":host{--close-button-size: 12px;display:flex}.dropzone{display:flex;align-items:center;flex-direction:column;overflow-y:auto;flex:1;border:none;background-color:transparent}.dropzone .dropzone-content{width:100%;display:flex;height:100%;justify-content:center;flex-direction:column;align-items:center}.row-dropzone{display:flex;align-items:center;flex-direction:row!important;gap:8px!important;height:unset!important;padding:8px!important}.upload-file-row-preview{display:flex;gap:8px}.center-icon{align-items:center;display:flex;justify-content:center;flex-direction:column}.dropzone-content:hover{background:var(--item-hover-color);border-color:var(--secondary-color)}.dropzone-content:active{transform:scale(.96)}.dropzone-text{text-align:center}.files-container{display:flex;padding-block-start:10px;gap:10px;width:95%;height:50px;padding:5px;align-items:center}.file-name{width:90%;line-height:1}.delete-container{display:flex;align-items:center;height:100%;width:24px;z-index:3}.delete-button{height:12px;width:12px;position:relative}.upload-file-image{display:flex;align-items:center;justify-content:center;cursor:pointer}.fill-container,.fill-container .dropzone-content{height:100%!important}.not-displayed{display:none}.preview-wrapper{display:inline-block;height:100%;width:100%}.preview-wrapper .image-container{position:relative;display:inline-block;height:100%;width:100%}.preview-wrapper .image-container .preview-image{width:100%;height:100%;border-radius:var(--upload-file-border-radius);object-fit:cover;display:block;position:relative;transition:filter .4s ease}.preview-wrapper .image-container .remove-btn{position:absolute;top:8px;left:8px;background:var(--dark-overlay);border:none;width:var(--close-button-size);height:var(--close-button-size);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s ease}.preview-wrapper .image-container .remove-btn:hover{opacity:1}.preview-wrapper .image-container .remove-btn .remove-icon{height:var(--close-button-size);width:var(--close-button-size);filter:brightness(0) invert(1)}.preview-wrapper .image-container:hover .preview-image{filter:brightness(50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i2$2.HerumDownloadFileComponent, selector: "herum-download-file", inputs: ["fileId", "filePath", "linkText"], outputs: ["downloadFile"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] });
9198
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumDropZoneComponent, isStandalone: false, selector: "herum-drop-zone", inputs: { selectedFiles: "selectedFiles", placeholder: "placeholder", numberOfAllowedFiles: "numberOfAllowedFiles", allowedFileTypes: "allowedFileTypes", supportedFilesMimes: "supportedFilesMimes", supportedFilesTypes: "supportedFilesTypes", requiredField: "requiredField", directionPreview: "directionPreview", type: "type", grow: "grow", fillContainer: "fillContainer", uploadFileSvg: "uploadFileSvg", previewImageUrl: "previewImageUrl", allowToDeleteImage: "allowToDeleteImage" }, outputs: { filesDataEvent: "filesDataEvent" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<button class=\"dropzone\" [class.not-displayed]=\"previewImageUrl\" [class.fill-container]=\"fillContainer\"\r\n [style.height]=\"grow ? '100%' : ''\" (drop)=\"_onUploadDroppedFiles($event)\" (click)=\"_onClickFileInput()\"\r\n (dragover)=\"_onPreventDefault($event)\">\r\n <div svgOnHover class=\"dropzone-content upload-file-border\" [style.height]=\"grow ? '100%' : '130px'\"\r\n [ngClass]=\"{'row-dropzone':type=='row'}\"\r\n [ngStyle]=\"{'justify-content': (filesList?.length || type == 'row') ? 'start' : 'center'}\">\r\n <div class=\"center-icon\" [ngClass]=\"{'upload-file-row-preview':directionPreview==='row' }\"\r\n *ngIf=\"!filesList?.length\">\r\n <span class=\"upload-file-image mb-2\" [style.height]=\"grow ? '60px' : ''\" [style.width]=\"grow ? '60px' : ''\"\r\n [innerHTML]=\"uploadFileSvg | safeHtml\">\r\n </span>\r\n\r\n <div class=\"dropzone-text\" [style.fontSize]=\"grow ? 'large' : ''\"> {{ placeholder }} </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"filesList?.length > 0\">\r\n <div class=\"files-container\" *ngFor=\"let file of filesList; index as i\">\r\n <img [src]=\"getIconPath(file)\" alt=\"#{{i+1}} picture\" />\r\n\r\n <span class=\"file-name truncate\"> {{ file?.name }}</span>\r\n\r\n <div class=\"delete-container\" (click)=\"_onRemoveFile(i, $event)\">\r\n <img class=\"delete-button\" src=\"assets/general/secondary-x.svg\">\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div *ngFor=\"let error of errorMessages\">\r\n <span *ngIf=\"error.condition()\" class=\"error-msg\"\r\n [matTooltip]=\"!isSupportedFileType ? '\u05E1\u05D5\u05D2\u05D9 \u05D4\u05E7\u05D1\u05E6\u05D9\u05DD \u05D4\u05E0\u05EA\u05DE\u05DB\u05D9\u05DD: ' + supportedFilesTypes : ''\">\r\n {{ error.message }}\r\n </span>\r\n </div>\r\n\r\n <span (click)=\"$event.stopPropagation()\">\r\n <herum-download-file *ngIf=\"!isSupportedFileType\" [filePath]=\"convertorMediaPath\"\r\n linkText=\"\u05DC\u05D4\u05D5\u05E8\u05D3\u05D4 \u05EA\u05D5\u05DB\u05E0\u05EA \u05D4\u05DE\u05E8\u05EA \u05DE\u05D3\u05D9\u05D4\">\r\n </herum-download-file>\r\n </span>\r\n </div>\r\n</button>\r\n\r\n<div *ngIf=\"previewImageUrl\" class=\"preview-wrapper\">\r\n <div class=\"image-container\">\r\n <img [src]=\"previewImageUrl\" alt=\"Preview\" class=\"preview-image\">\r\n\r\n <button type=\"button\" class=\"remove-btn\" aria-label=\"Remove image\" (click)=\"_onRemoveImage()\">\r\n <img class=\"remove-icon\" src=\"assets/general/secondary-x.svg\" alt=Remove />\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<input #fileInput class=\"d-none\" type=\"file\" [accept]=\"parsedAllowedFileTypes\" (change)=\"_onUploadFiles($event)\"\r\n multiple>", styles: [":host{--close-button-size: 12px;display:flex}.dropzone{display:flex;align-items:center;flex-direction:column;overflow-y:auto;flex:1;border:none;background-color:transparent}.dropzone .dropzone-content{width:100%;display:flex;height:100%;justify-content:center;flex-direction:column;align-items:center}.row-dropzone{display:flex;align-items:center;flex-direction:row!important;gap:8px!important;height:unset!important;padding:8px!important}.upload-file-row-preview{display:flex;gap:8px}.center-icon{align-items:center;display:flex;justify-content:center;flex-direction:column}.dropzone-content:hover{background:var(--item-hover-color);border-color:var(--secondary-color)}.dropzone-content:active{transform:scale(.96)}.dropzone-text{text-align:center}.files-container{display:flex;padding-block-start:10px;gap:10px;width:95%;height:50px;padding:5px;align-items:center}.file-name{width:90%;line-height:1}.delete-container{display:flex;align-items:center;height:100%;width:24px;z-index:3}.delete-button{height:12px;width:12px;position:relative}.upload-file-image{display:flex;align-items:center;justify-content:center;cursor:pointer}.fill-container,.fill-container .dropzone-content{height:100%!important}.not-displayed{display:none}.preview-wrapper{display:inline-block;height:100%;width:100%}.preview-wrapper .image-container{position:relative;display:inline-block;height:100%;width:100%}.preview-wrapper .image-container .preview-image{width:100%;height:100%;border-radius:var(--upload-file-border-radius);object-fit:cover;display:block;position:relative;transition:filter .4s ease}.preview-wrapper .image-container .remove-btn{position:absolute;top:8px;left:8px;background:var(--dark-overlay);border:none;width:var(--close-button-size);height:var(--close-button-size);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s ease}.preview-wrapper .image-container .remove-btn:hover{opacity:1}.preview-wrapper .image-container .remove-btn .remove-icon{height:var(--close-button-size);width:var(--close-button-size);filter:brightness(0) invert(1)}.preview-wrapper .image-container:hover .preview-image{filter:brightness(50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4.SvgOnHoverDirective, selector: "[svgOnHover]", inputs: ["svgOnHover"] }, { kind: "component", type: i2$2.HerumDownloadFileComponent, selector: "herum-download-file", inputs: ["fileId", "filePath", "linkText"], outputs: ["downloadFile"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }] });
9161
9199
  }
9162
9200
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumDropZoneComponent, decorators: [{
9163
9201
  type: Component,
@@ -9521,6 +9559,7 @@ class MoleculesModule {
9521
9559
  DragDropModule,
9522
9560
  MatDatepickerModule,
9523
9561
  MatNativeDateModule,
9562
+ DirectivesModule$1,
9524
9563
  PipesModule$1,
9525
9564
  AtomsModule$1], exports: [HerumActiveLinkComponent,
9526
9565
  HerumActiveMenuComponent,
@@ -9562,6 +9601,7 @@ class MoleculesModule {
9562
9601
  DragDropModule,
9563
9602
  MatDatepickerModule,
9564
9603
  MatNativeDateModule,
9604
+ DirectivesModule$1,
9565
9605
  PipesModule$1,
9566
9606
  AtomsModule$1] });
9567
9607
  }
@@ -9632,6 +9672,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
9632
9672
  DragDropModule,
9633
9673
  MatDatepickerModule,
9634
9674
  MatNativeDateModule,
9675
+ DirectivesModule$1,
9635
9676
  PipesModule$1,
9636
9677
  AtomsModule$1
9637
9678
  ],
@@ -9717,7 +9758,7 @@ class FetchedMessageDialog {
9717
9758
  this.dialogRef.close();
9718
9759
  }
9719
9760
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: FetchedMessageDialog, deps: [{ token: i1$6.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
9720
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: FetchedMessageDialog, isStandalone: false, selector: "fetched-message-dialog", ngImport: i0, template: "<div class=\"fetched-message-dialog-container\">\r\n <div class=\"message-content\">\r\n <div [innerHTML]=\"message?.image | safeHtml\"></div>\r\n\r\n <div>\r\n <div [innerHTML]=\"message?.title | safeHtml\"></div>\r\n <div [innerHTML]=\"message?.subTitle | safeHtml\"></div>\r\n <div [innerHTML]=\"message?.content | safeHtml\"></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dialog-buttons-actions-container\">\r\n <herum-button [name]=\"'fetched-messsage-dialog-submission'\" (click)=\"_onCloseDialog()\">\r\n {{message?.actionButtonText}}\r\n </herum-button>\r\n </div>\r\n</div>", styles: [".fetched-message-dialog-container{width:50vw!important;min-width:710px}.message-content{display:flex;gap:16px}\n", ".dialog-container,form{display:flex;flex-direction:column;gap:16px;position:relative;padding:16px;max-height:80vh;width:30vw}.title{font-size:18px;font-weight:600}.description{font-size:14px}p{margin:0}.dialog-buttons-actions-container{width:100%;justify-content:flex-end;gap:16px;display:flex;flex-direction:row}.close-dialog{position:absolute;top:20px;left:20px}.title-container{display:flex;align-items:center;justify-content:space-between}.close-button{cursor:pointer;height:11px}\n"], dependencies: [{ kind: "component", type: i2$2.HerumButtonComponent, selector: "herum-button", inputs: ["type", "color", "size", "roundedCorners", "disabled", "isLoading", "name"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] });
9761
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: FetchedMessageDialog, isStandalone: false, selector: "fetched-message-dialog", ngImport: i0, template: "<div class=\"fetched-message-dialog-container\">\r\n <div class=\"message-content\">\r\n <div [innerHTML]=\"message?.image | safeHtml\"></div>\r\n\r\n <div>\r\n <div [innerHTML]=\"message?.title | safeHtml\"></div>\r\n <div [innerHTML]=\"message?.subTitle | safeHtml\"></div>\r\n <div [innerHTML]=\"message?.content | safeHtml\"></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dialog-buttons-actions-container\">\r\n <herum-button [name]=\"'fetched-messsage-dialog-submission'\" (click)=\"_onCloseDialog()\">\r\n {{message?.actionButtonText}}\r\n </herum-button>\r\n </div>\r\n</div>", styles: [".fetched-message-dialog-container{width:50vw!important;min-width:710px}.message-content{display:flex;gap:16px}\n", ".dialog-container,form{display:flex;flex-direction:column;gap:16px;position:relative;padding:16px;max-height:80vh;width:30vw}.title{font-size:18px;font-weight:600}.description{font-size:14px}p{margin:0}.dialog-buttons-actions-container{width:100%;justify-content:flex-end;gap:16px;display:flex;flex-direction:row}.close-dialog{position:absolute;top:20px;left:20px}.title-container{display:flex;align-items:center;justify-content:space-between}.close-button{cursor:pointer;height:11px}\n"], dependencies: [{ kind: "component", type: i2$2.HerumButtonComponent, selector: "herum-button", inputs: ["type", "color", "size", "roundedCorners", "disabled", "isLoading", "name"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }] });
9721
9762
  }
9722
9763
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: FetchedMessageDialog, decorators: [{
9723
9764
  type: Component,
@@ -9844,7 +9885,7 @@ class DeleteRowComponent {
9844
9885
  this.params?.context.componentParent.deleteChildComponentReference(this);
9845
9886
  }
9846
9887
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DeleteRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9847
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: DeleteRowComponent, isStandalone: false, selector: "delete-row", inputs: { isRowHovered: "isRowHovered", params: "params" }, ngImport: i0, template: "<div class=\"cell-container\">\r\n <div #cellValue class=\"cell-value\" [matTooltip]=\"_isTruncatedTitleElement(cellValue)? value : ''\">\r\n {{value | ellipsis:cellValue}}\r\n </div>\r\n\r\n <img class=\"cursor-pointer\" *ngIf=\"isRowHovered\" src=\"assets/feed/icons/garbage.svg\"\r\n (click)=\"_onDelete($event)\" alt=\"delete\">\r\n</div>", styles: [".cell-container{display:flex;justify-content:space-between;align-items:center;gap:10px}.cell-value{width:250px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i4.EllipsisPipe, name: "ellipsis" }] });
9888
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: DeleteRowComponent, isStandalone: false, selector: "delete-row", inputs: { isRowHovered: "isRowHovered", params: "params" }, ngImport: i0, template: "<div class=\"cell-container\">\r\n <div #cellValue class=\"cell-value\" [matTooltip]=\"_isTruncatedTitleElement(cellValue)? value : ''\">\r\n {{value | ellipsis:cellValue}}\r\n </div>\r\n\r\n <img class=\"cursor-pointer\" *ngIf=\"isRowHovered\" src=\"assets/feed/icons/garbage.svg\"\r\n (click)=\"_onDelete($event)\" alt=\"delete\">\r\n</div>", styles: [".cell-container{display:flex;justify-content:space-between;align-items:center;gap:10px}.cell-value{width:250px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i4$1.EllipsisPipe, name: "ellipsis" }] });
9848
9889
  }
9849
9890
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DeleteRowComponent, decorators: [{
9850
9891
  type: Component,
@@ -9894,7 +9935,7 @@ class EditRowComponent {
9894
9935
  this.params?.context.componentParent.deleteChildComponentReference(this);
9895
9936
  }
9896
9937
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: EditRowComponent, deps: [{ token: i1$8.Clipboard }], target: i0.ɵɵFactoryTarget.Component });
9897
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: EditRowComponent, isStandalone: false, selector: "edit-row", inputs: { isRowHovered: "isRowHovered", params: "params" }, ngImport: i0, template: "<div class=\"cell-container\">\r\n <span class=\"text\" (click)=\"_onCopyToClipboard($event)\" [matTooltip]=\"isCopyableToClipboard? '\u05DC\u05D7\u05E5 \u05DC\u05D4\u05E2\u05EA\u05E7\u05D4' : ''\"\r\n matTooltipShowDelay=\"600\">{{value}}</span>\r\n\r\n <span class=\"edit-button\" *ngIf=\"isRowHovered\" [innerHTML]=\"editIcon | safeHtml\" (click)=\"_onEdit($event)\"\r\n alt=\"edit\"></span>\r\n</div>", styles: [":host{width:100%}.cell-container{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px}.edit-button{cursor:pointer;stroke:var(--icons-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] });
9938
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: EditRowComponent, isStandalone: false, selector: "edit-row", inputs: { isRowHovered: "isRowHovered", params: "params" }, ngImport: i0, template: "<div class=\"cell-container\">\r\n <span class=\"text\" (click)=\"_onCopyToClipboard($event)\" [matTooltip]=\"isCopyableToClipboard? '\u05DC\u05D7\u05E5 \u05DC\u05D4\u05E2\u05EA\u05E7\u05D4' : ''\"\r\n matTooltipShowDelay=\"600\">{{value}}</span>\r\n\r\n <span class=\"edit-button\" *ngIf=\"isRowHovered\" [innerHTML]=\"editIcon | safeHtml\" (click)=\"_onEdit($event)\"\r\n alt=\"edit\"></span>\r\n</div>", styles: [":host{width:100%}.cell-container{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px}.edit-button{cursor:pointer;stroke:var(--icons-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }] });
9898
9939
  }
9899
9940
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: EditRowComponent, decorators: [{
9900
9941
  type: Component,
@@ -10188,7 +10229,7 @@ class HerumAgGridFilterComponent {
10188
10229
  this.destroySubject$.complete();
10189
10230
  }
10190
10231
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumAgGridFilterComponent, deps: [{ token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
10191
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumAgGridFilterComponent, isStandalone: false, selector: "app-herum-ag-grid-filter", ngImport: i0, template: "<div class=\"ag-filter\">\r\n <herum-input-field [type]=\"'search'\" [placeholder]=\"'\u05D7\u05E4\u05E9 \u05E2\u05E8\u05DA \u05DC\u05E4\u05D9\u05DC\u05D8\u05D5\u05E8'\" [showErrorMsgGap]=\"false\"\r\n [formControl]=\"selectedFilter\"></herum-input-field>\r\n <div>\r\n <div class=\"ag-filter-body-wrapper\">\r\n <div ref=\"ag-filter-loading\" class=\"loading-filter ag-hidden\">\r\n Loading...\r\n </div>\r\n <div>\r\n <div id=\"richList\" class=\"ag-set-filter-list\">\r\n <div class=\"ag-virtual-list-viewport\">\r\n <div class=\"ag-virtual-list-container\" [attr.style.height]=\"containerHeight\">\r\n <div style=\"line-height: 28px;\">\r\n <label class=\"ag-set-filter-item\">\r\n <div class=\"ag-filter-checkbox\">\r\n <herum-checkbox [isChecked]=\"isEverythingSelected\" [type]=\"checkBoxType\"\r\n [isBlocked]=\"isToggleAllCheckBoxBlocked\"\r\n (checkedEmitter)=\"toggleEverything()\"></herum-checkbox>\r\n </div>\r\n <span class=\"ag-filter-value select-all-bold\">\u05D1\u05D7\u05E8 \u05D4\u05DB\u05DC</span>\r\n </label>\r\n </div>\r\n\r\n <div style=\"line-height: 28px;\" *ngFor=\"let item of (onFilterValuesChanged$ | async)\">\r\n <label class=\"ag-set-filter-item\">\r\n <div class=\"ag-filter-checkbox\">\r\n <herum-checkbox (checkedEmitter)=\"toggleItem(item)\"\r\n [isChecked]=\"selectedValuesMap.hasOwnProperty(item)\"></herum-checkbox>\r\n </div>\r\n\r\n <span #agFilterValue appHerumToolTip class=\"ag-filter-value w-100\"\r\n [matTooltip]=\"isTruncatedTitleElement(agFilterValue)? item : ''\">\r\n {{item === '' ? '(\u05E8\u05D9\u05E7)': item | ellipsis:agFilterValue}}\r\n </span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".ag-set-filter-item{gap:8px}::ng-deep .ag-menu{border-radius:var(--border-radius)!important}.select-all-bold{font-weight:700}::ng-deep .ag-theme-alpine .ag-popup-child:not(.ag-tooltip-custom){width:136px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2$2.HerumCheckboxComponent, selector: "herum-checkbox", inputs: ["type", "isChecked", "isBlocked"], outputs: ["checkedEmitter"] }, { kind: "component", type: i2$2.HerumInputFieldComponent, selector: "herum-input-field", inputs: ["type", "placeholder", "disabled", "isBlocked", "isValid", "errorMsg", "showErrorMsgGap", "inputValue", "isLoading", "id", "debounceTime", "minValue", "maxValue", "isBlurred", "touched", "ltrMode", "preventMacroKeysPressEvent"], outputs: ["inputValueEmitter"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.EllipsisPipe, name: "ellipsis" }] });
10232
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumAgGridFilterComponent, isStandalone: false, selector: "app-herum-ag-grid-filter", ngImport: i0, template: "<div class=\"ag-filter\">\r\n <herum-input-field [type]=\"'search'\" [placeholder]=\"'\u05D7\u05E4\u05E9 \u05E2\u05E8\u05DA \u05DC\u05E4\u05D9\u05DC\u05D8\u05D5\u05E8'\" [showErrorMsgGap]=\"false\"\r\n [formControl]=\"selectedFilter\"></herum-input-field>\r\n <div>\r\n <div class=\"ag-filter-body-wrapper\">\r\n <div ref=\"ag-filter-loading\" class=\"loading-filter ag-hidden\">\r\n Loading...\r\n </div>\r\n <div>\r\n <div id=\"richList\" class=\"ag-set-filter-list\">\r\n <div class=\"ag-virtual-list-viewport\">\r\n <div class=\"ag-virtual-list-container\" [attr.style.height]=\"containerHeight\">\r\n <div style=\"line-height: 28px;\">\r\n <label class=\"ag-set-filter-item\">\r\n <div class=\"ag-filter-checkbox\">\r\n <herum-checkbox [isChecked]=\"isEverythingSelected\" [type]=\"checkBoxType\"\r\n [isBlocked]=\"isToggleAllCheckBoxBlocked\"\r\n (checkedEmitter)=\"toggleEverything()\"></herum-checkbox>\r\n </div>\r\n <span class=\"ag-filter-value select-all-bold\">\u05D1\u05D7\u05E8 \u05D4\u05DB\u05DC</span>\r\n </label>\r\n </div>\r\n\r\n <div style=\"line-height: 28px;\" *ngFor=\"let item of (onFilterValuesChanged$ | async)\">\r\n <label class=\"ag-set-filter-item\">\r\n <div class=\"ag-filter-checkbox\">\r\n <herum-checkbox (checkedEmitter)=\"toggleItem(item)\"\r\n [isChecked]=\"selectedValuesMap.hasOwnProperty(item)\"></herum-checkbox>\r\n </div>\r\n\r\n <span #agFilterValue appHerumToolTip class=\"ag-filter-value w-100\"\r\n [matTooltip]=\"isTruncatedTitleElement(agFilterValue)? item : ''\">\r\n {{item === '' ? '(\u05E8\u05D9\u05E7)': item | ellipsis:agFilterValue}}\r\n </span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".ag-set-filter-item{gap:8px}::ng-deep .ag-menu{border-radius:var(--border-radius)!important}.select-all-bold{font-weight:700}::ng-deep .ag-theme-alpine .ag-popup-child:not(.ag-tooltip-custom){width:136px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2$2.HerumCheckboxComponent, selector: "herum-checkbox", inputs: ["type", "isChecked", "isBlocked"], outputs: ["checkedEmitter"] }, { kind: "component", type: i2$2.HerumInputFieldComponent, selector: "herum-input-field", inputs: ["type", "placeholder", "disabled", "isBlocked", "isValid", "errorMsg", "showErrorMsgGap", "inputValue", "isLoading", "id", "debounceTime", "minValue", "maxValue", "isBlurred", "touched", "ltrMode", "preventMacroKeysPressEvent"], outputs: ["inputValueEmitter"] }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.EllipsisPipe, name: "ellipsis" }] });
10192
10233
  }
10193
10234
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumAgGridFilterComponent, decorators: [{
10194
10235
  type: Component,
@@ -10574,16 +10615,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
10574
10615
 
10575
10616
  class HerumSharedModule {
10576
10617
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10577
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.17", ngImport: i0, type: HerumSharedModule, declarations: [HerumToolTipDirective,
10578
- HerumVideoPlayerComponent,
10618
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.17", ngImport: i0, type: HerumSharedModule, declarations: [HerumVideoPlayerComponent,
10579
10619
  TrackTextChangesComponent,
10580
10620
  HerumVideoRangeBarComponent,
10581
10621
  HerumPdfViewerComponent,
10582
10622
  HerumStoryViewerComponent,
10583
- UserActionDirective,
10584
10623
  HerumPresentationViewerComponent,
10585
10624
  HerumLoaderComponent,
10586
- SvgOnHoverDirective,
10587
10625
  HerumQuizComponent,
10588
10626
  QuizHeaderComponent,
10589
10627
  QuizTwoAnswersQuestionComponent,
@@ -10604,8 +10642,7 @@ class HerumSharedModule {
10604
10642
  HerumDateTimePickerSelectComponent,
10605
10643
  HerumTimeRangeSelectComponent,
10606
10644
  AudioSliderComponent,
10607
- QuizOpenAnswerQuestionComponent,
10608
- HerumHighlightDirective], imports: [CommonModule,
10645
+ QuizOpenAnswerQuestionComponent], imports: [CommonModule,
10609
10646
  ReactiveFormsModule,
10610
10647
  FormsModule,
10611
10648
  MatMenuModule,
@@ -10622,6 +10659,7 @@ class HerumSharedModule {
10622
10659
  DragDropModule,
10623
10660
  MatDatepickerModule,
10624
10661
  MatNativeDateModule,
10662
+ DirectivesModule,
10625
10663
  DialogsModule,
10626
10664
  AtomsModule,
10627
10665
  PipesModule,
@@ -10629,16 +10667,12 @@ class HerumSharedModule {
10629
10667
  ErrorsModule,
10630
10668
  FetchedMessageModule,
10631
10669
  TableModule], exports: [TrackTextChangesComponent,
10632
- HerumToolTipDirective,
10633
- UserActionDirective,
10634
10670
  HerumVideoPlayerComponent,
10635
10671
  HerumPdfViewerComponent,
10636
10672
  HerumStoryViewerComponent,
10637
10673
  HerumLoaderComponent,
10638
10674
  HerumLocalLoaderComponent,
10639
10675
  HerumQuizComponent,
10640
- SvgOnHoverDirective,
10641
- HerumHighlightDirective,
10642
10676
  CommonModule,
10643
10677
  HerumListCentralizerComponent,
10644
10678
  BlockedFormComponent,
@@ -10652,6 +10686,7 @@ class HerumSharedModule {
10652
10686
  QuizOneAnswerQuestionComponent,
10653
10687
  QuizMultiAnswerQuestionComponent,
10654
10688
  QuizOpenAnswerQuestionComponent,
10689
+ DirectivesModule,
10655
10690
  DialogsModule,
10656
10691
  AtomsModule,
10657
10692
  MoleculesModule,
@@ -10679,6 +10714,7 @@ class HerumSharedModule {
10679
10714
  DragDropModule,
10680
10715
  MatDatepickerModule,
10681
10716
  MatNativeDateModule,
10717
+ DirectivesModule,
10682
10718
  DialogsModule,
10683
10719
  AtomsModule,
10684
10720
  PipesModule,
@@ -10686,6 +10722,7 @@ class HerumSharedModule {
10686
10722
  ErrorsModule,
10687
10723
  FetchedMessageModule,
10688
10724
  TableModule, CommonModule,
10725
+ DirectivesModule,
10689
10726
  DialogsModule,
10690
10727
  AtomsModule,
10691
10728
  MoleculesModule,
@@ -10698,16 +10735,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
10698
10735
  type: NgModule,
10699
10736
  args: [{
10700
10737
  declarations: [
10701
- HerumToolTipDirective,
10702
10738
  HerumVideoPlayerComponent,
10703
10739
  TrackTextChangesComponent,
10704
10740
  HerumVideoRangeBarComponent,
10705
10741
  HerumPdfViewerComponent,
10706
10742
  HerumStoryViewerComponent,
10707
- UserActionDirective,
10708
10743
  HerumPresentationViewerComponent,
10709
10744
  HerumLoaderComponent,
10710
- SvgOnHoverDirective,
10711
10745
  HerumQuizComponent,
10712
10746
  QuizHeaderComponent,
10713
10747
  QuizTwoAnswersQuestionComponent,
@@ -10729,20 +10763,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
10729
10763
  HerumTimeRangeSelectComponent,
10730
10764
  AudioSliderComponent,
10731
10765
  QuizOpenAnswerQuestionComponent,
10732
- HerumHighlightDirective,
10733
10766
  ],
10734
10767
  exports: [
10735
10768
  TrackTextChangesComponent,
10736
- HerumToolTipDirective,
10737
- UserActionDirective,
10738
10769
  HerumVideoPlayerComponent,
10739
10770
  HerumPdfViewerComponent,
10740
10771
  HerumStoryViewerComponent,
10741
10772
  HerumLoaderComponent,
10742
10773
  HerumLocalLoaderComponent,
10743
10774
  HerumQuizComponent,
10744
- SvgOnHoverDirective,
10745
- HerumHighlightDirective,
10746
10775
  CommonModule,
10747
10776
  HerumListCentralizerComponent,
10748
10777
  BlockedFormComponent,
@@ -10756,6 +10785,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
10756
10785
  QuizOneAnswerQuestionComponent,
10757
10786
  QuizMultiAnswerQuestionComponent,
10758
10787
  QuizOpenAnswerQuestionComponent,
10788
+ DirectivesModule,
10759
10789
  DialogsModule,
10760
10790
  AtomsModule,
10761
10791
  MoleculesModule,
@@ -10782,6 +10812,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
10782
10812
  DragDropModule,
10783
10813
  MatDatepickerModule,
10784
10814
  MatNativeDateModule,
10815
+ DirectivesModule,
10785
10816
  DialogsModule,
10786
10817
  AtomsModule,
10787
10818
  PipesModule,
@@ -10860,7 +10891,7 @@ class FetchedMessageService {
10860
10891
  fetchedMessageData() {
10861
10892
  return this.http.get(buildPath([this.environmentConfig?.environment?.siteServerPath, 'Messages', this.messageKey]));
10862
10893
  }
10863
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: FetchedMessageService, deps: [{ token: i1$3.HttpClient }, { token: i1$6.MatDialog }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
10894
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: FetchedMessageService, deps: [{ token: i1$5.HttpClient }, { token: i1$6.MatDialog }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
10864
10895
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: FetchedMessageService, providedIn: 'root' });
10865
10896
  }
10866
10897
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: FetchedMessageService, decorators: [{
@@ -10868,7 +10899,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
10868
10899
  args: [{
10869
10900
  providedIn: 'root'
10870
10901
  }]
10871
- }], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: i1$6.MatDialog }, { type: undefined, decorators: [{
10902
+ }], ctorParameters: () => [{ type: i1$5.HttpClient }, { type: i1$6.MatDialog }, { type: undefined, decorators: [{
10872
10903
  type: Inject,
10873
10904
  args: [HERUM_SHARED_CONFIG_TOKEN]
10874
10905
  }] }] });
@@ -11000,12 +11031,12 @@ class ErrorsHandlerService {
11000
11031
  else
11001
11032
  this.failedDependentsRequestsContext[dependentId] = initialValue ? { error, failedComplexObservableArrowFunctions, initialValue } : { error, failedComplexObservableArrowFunctions };
11002
11033
  }
11003
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ErrorsHandlerService, deps: [{ token: i1$6.MatDialog }, { token: i1$3.HttpClient }, { token: i1$2.UtilsService }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
11034
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ErrorsHandlerService, deps: [{ token: i1$6.MatDialog }, { token: i1$5.HttpClient }, { token: i1$2.UtilsService }, { token: HERUM_SHARED_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
11004
11035
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ErrorsHandlerService });
11005
11036
  }
11006
11037
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ErrorsHandlerService, decorators: [{
11007
11038
  type: Injectable
11008
- }], ctorParameters: () => [{ type: i1$6.MatDialog }, { type: i1$3.HttpClient }, { type: i1$2.UtilsService }, { type: undefined, decorators: [{
11039
+ }], ctorParameters: () => [{ type: i1$6.MatDialog }, { type: i1$5.HttpClient }, { type: i1$2.UtilsService }, { type: undefined, decorators: [{
11009
11040
  type: Inject,
11010
11041
  args: [HERUM_SHARED_CONFIG_TOKEN]
11011
11042
  }] }] });
@@ -11277,12 +11308,12 @@ class UploadsManagerService {
11277
11308
  let status = areAllCommonUploadsProgressFinishedSuccesfully ? toastStatuses.success : toastStatuses.error;
11278
11309
  this.toastsService.showToast(title, content, status);
11279
11310
  }
11280
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: UploadsManagerService, deps: [{ token: ErrorsHandlerService }, { token: DependentsService }, { token: i1$3.HttpClient }, { token: ToastsService }], target: i0.ɵɵFactoryTarget.Injectable });
11311
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: UploadsManagerService, deps: [{ token: ErrorsHandlerService }, { token: DependentsService }, { token: i1$5.HttpClient }, { token: ToastsService }], target: i0.ɵɵFactoryTarget.Injectable });
11281
11312
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: UploadsManagerService });
11282
11313
  }
11283
11314
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: UploadsManagerService, decorators: [{
11284
11315
  type: Injectable
11285
- }], ctorParameters: () => [{ type: ErrorsHandlerService }, { type: DependentsService }, { type: i1$3.HttpClient }, { type: ToastsService }] });
11316
+ }], ctorParameters: () => [{ type: ErrorsHandlerService }, { type: DependentsService }, { type: i1$5.HttpClient }, { type: ToastsService }] });
11286
11317
 
11287
11318
  class HerumToastsComponent {
11288
11319
  toastsService;
@@ -11374,7 +11405,7 @@ class HerumToastsComponent {
11374
11405
  return toastStatuses.success;
11375
11406
  }
11376
11407
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumToastsComponent, deps: [{ token: ToastsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
11377
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumToastsComponent, isStandalone: false, selector: "herum-toasts", viewQueries: [{ propertyName: "toastElements", predicate: ["toast"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"toasts?.length\">\r\n <div #toast class=\"herum-toast d-flex\" [ngClass]=\"[toast?.state ?? '',toast?.status ?? '']\"\r\n *ngFor=\"let toast of toasts; trackBy: _trackByFn\">\r\n <span [ngClass]=\"{'icons-color':toast?.status===successStatus}\"\r\n [innerHTML]=\"_toastStatusIcon(toast?.status) | safeHtml\">\r\n </span>\r\n\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"section-title\"> {{toast?.title}}</div>\r\n <div class='toast-content'> {{toast?.content}}</div>\r\n </div>\r\n\r\n <img class=\"close-button\" src=\"assets/shared/icons/secondary-x.svg\" alt=\"close-icon\"\r\n (click)=\"_onHideToast(toast,true)\">\r\n </div>\r\n</ng-container>", styles: [".herum-toast{position:absolute;bottom:0;right:0;width:340px;padding:var(--standard-padding);border-radius:var(--border-radius);background-color:#fff;box-shadow:0 0 var(--box-shadow-blur) #00000029!important;transition:transform .4s ease-out,opacity .4s ease-out;transform:translate(100%);opacity:0}.herum-toast .icons-color{fill:var(--icons-color)}.herum-toast .status-image{height:22px;width:22px;margin-left:6px}.herum-toast .close-button{height:8px;left:8px;top:8px;position:absolute;cursor:pointer;margin-block-end:4px}.toast-content{flex-grow:1;flex-shrink:1}.enter{transform:translate(0);opacity:1}.success{border-right:solid 8px #4caf50}.information{border-right:solid 8px var(--information-color)}.error{border-right:solid 8px var(--error-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] });
11408
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumToastsComponent, isStandalone: false, selector: "herum-toasts", viewQueries: [{ propertyName: "toastElements", predicate: ["toast"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"toasts?.length\">\r\n <div #toast class=\"herum-toast d-flex\" [ngClass]=\"[toast?.state ?? '',toast?.status ?? '']\"\r\n *ngFor=\"let toast of toasts; trackBy: _trackByFn\">\r\n <span [ngClass]=\"{'icons-color':toast?.status===successStatus}\"\r\n [innerHTML]=\"_toastStatusIcon(toast?.status) | safeHtml\">\r\n </span>\r\n\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"section-title\"> {{toast?.title}}</div>\r\n <div class='toast-content'> {{toast?.content}}</div>\r\n </div>\r\n\r\n <img class=\"close-button\" src=\"assets/shared/icons/secondary-x.svg\" alt=\"close-icon\"\r\n (click)=\"_onHideToast(toast,true)\">\r\n </div>\r\n</ng-container>", styles: [".herum-toast{position:absolute;bottom:0;right:0;width:340px;padding:var(--standard-padding);border-radius:var(--border-radius);background-color:#fff;box-shadow:0 0 var(--box-shadow-blur) #00000029!important;transition:transform .4s ease-out,opacity .4s ease-out;transform:translate(100%);opacity:0}.herum-toast .icons-color{fill:var(--icons-color)}.herum-toast .status-image{height:22px;width:22px;margin-left:6px}.herum-toast .close-button{height:8px;left:8px;top:8px;position:absolute;cursor:pointer;margin-block-end:4px}.toast-content{flex-grow:1;flex-shrink:1}.enter{transform:translate(0);opacity:1}.success{border-right:solid 8px #4caf50}.information{border-right:solid 8px var(--information-color)}.error{border-right:solid 8px var(--error-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }] });
11378
11409
  }
11379
11410
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumToastsComponent, decorators: [{
11380
11411
  type: Component,
@@ -11487,7 +11518,7 @@ class HerumUploadsManagerComponent {
11487
11518
  this.destroySubject$.complete();
11488
11519
  }
11489
11520
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumUploadsManagerComponent, deps: [{ token: UploadsManagerService }], target: i0.ɵɵFactoryTarget.Component });
11490
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumUploadsManagerComponent, isStandalone: false, selector: "herum-uploads-manager", host: { listeners: { "window:beforeunload": "showConfirmationNativeMessage($event)" } }, ngImport: i0, template: "<div class=\"herum-uploads-layout shadow\" [ngClass]=\"{'open':isContainerOpen}\" *ngIf=\"uploadsProgressMetadata?.length\">\r\n <div class=\"herum-uploads-container-header\">\r\n <div class=\"herum-uploads-header\">\r\n <div class=\"herum-uploads-header-text\">\r\n <herum-ellipsis-loader *ngIf=\"!hasUploadProgressFinished\"></herum-ellipsis-loader>\r\n\r\n <p class=\"container-title\" #containerTitle\r\n [matTooltip]=\"_isTruncatedTitleElement(containerTitle)? (containerTitle$ | async) : '' \">\r\n {{containerTitle$ | async | ellipsis:containerTitle}}</p>\r\n </div>\r\n\r\n <div class=\"control-container\">\r\n <img class=\"control-button\"\r\n [ngClass]=\"{'open-chevron':isContainerOpen, 'closed-chevron':!isContainerOpen}\"\r\n src=\"assets/general/white-chevron.svg\" (click)=\"_onToggleUploadsContainer()\">\r\n\r\n <img class=\"control-button\" *ngIf=\"hasUploadProgressFinished\" src=\"assets/shared/icons/X.svg\"\r\n alt=\"close-icon\" (click)=\"_onClose()\">\r\n </div>\r\n </div>\r\n\r\n <herum-progress-bar [percentage]=\"averageProgressSum\" [percentagePosition]=\"'none'\" [borderRadius]=\"'none'\"\r\n [showBorder]=\"false\" [thickness]=\"'thin'\" [showPercentage]=\"false\" [color]=\"progressBarColor\">\r\n </herum-progress-bar>\r\n </div>\r\n\r\n <div class=\"herum-uploads-container\">\r\n <div *ngIf=\"numberOfFailedLoaders > 1\" class=\"upload-all upload-iteration cursor-pointer\"\r\n (click)=\"_onRetryFailedUploads()\">\r\n <div class=\"herum-upload-title w-100\">\r\n \u05D4\u05E2\u05DC\u05D4 \u05DE\u05D7\u05D3\u05E9 \u05E7\u05D1\u05E6\u05D9\u05DD \u05E9\u05E0\u05DB\u05E9\u05DC\u05D5\r\n </div>\r\n\r\n <div class=\"upload-file-image\">\r\n <img src=\"assets/files-icons/upload-file.svg\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"upload-iteration\"\r\n *ngFor=\"let uploadProgressMetadata of uploadsProgressMetadata; trackBy: _trackByFn\">\r\n <div class=\"herum-upload-container\">\r\n <span [ngClass]=\"_isUploadProgressStatusError(uploadProgressMetadata.status)? 'error' : 'icons-color'\"\r\n [innerHTML]=\"_getFileIcon(uploadProgressMetadata.type) | safeHtml\">\r\n </span>\r\n\r\n <div class=\"herum-upload-text-container\">\r\n <p #uploadTitle class=\"herum-upload-title\"\r\n [ngClass]=\"{'error-font-color':_isUploadProgressStatusError(uploadProgressMetadata.status)}\"\r\n [matTooltip]=\"_isTruncatedTitleElement(uploadTitle) ? uploadProgressMetadata.title : ''\">\r\n {{uploadProgressMetadata.title | ellipsis:uploadTitle}}\r\n </p>\r\n\r\n <p\r\n [ngClass]=\"[_isUploadProgressStatusError(uploadProgressMetadata.status)? 'error-font-color' :'disabled-text-color']\">\r\n {{_getUploadProgressDescription(uploadProgressMetadata)}}\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"center\">\r\n <herum-circular-progress-bar [fill]=\"false\"\r\n [percentage]=\"(uploadProgressMetadata.currentSize/uploadProgressMetadata.totalSize)*100\"\r\n *ngIf=\"uploadProgressMetadata.status === loadingStatus\">\r\n </herum-circular-progress-bar>\r\n\r\n <div class=\"images-container\">\r\n <img class=\"cursor-pointer\" *ngIf=\"_isUploadProgressStatusError(uploadProgressMetadata.status)\"\r\n src=\"assets/files-icons/upload-file.svg\"\r\n (click)=\"_onRetryFailedUpload(uploadProgressMetadata.id)\">\r\n\r\n <span\r\n *ngIf=\"uploadProgressMetadata.status === errorStatus || uploadProgressMetadata.status === successStatus\"\r\n [ngClass]=\"{'icons-color':uploadProgressMetadata.status===successStatus}\"\r\n [innerHTML]=\"_getUploadStatusIcon(uploadProgressMetadata.status) | safeHtml\">\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>", styles: [".herum-uploads-layout{border-radius:8px 8px 0 0;background-color:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:99;direction:rtl;width:350px}.herum-uploads-layout .herum-uploads-container-header{border-radius:8px 8px 0 0;background-color:#22213f;cursor:grab}.herum-uploads-layout .herum-uploads-container-header p{padding-block:12px;color:#fff;font-weight:700;margin:0;font-size:16px}.herum-uploads-layout .herum-uploads-container-header:active{cursor:grabbing}.herum-uploads-layout herum-progress-bar{background-color:#22213f}.herum-uploads-layout .herum-uploads-container{display:none}.herum-upload-text-container{width:80%}.herum-upload-title{line-height:1;font-weight:700;font-size:12px;width:100%;white-space:nowrap;margin-block-end:4px}.open{height:fit-content}.open .herum-uploads-container{overflow-y:auto;max-height:500px;display:flex;flex-direction:column;height:100%}.open .herum-uploads-container .herum-upload-container{display:flex;flex-direction:row;gap:8px;width:70%}.open .herum-uploads-container .herum-upload-container .error{fill:var(--error-color)}.open .upload-iteration{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid var(--chips-divider-color);align-items:center}.open .upload-all{padding-block:21px}.open .upload-iteration:hover{-webkit-backdrop-filter:blur(80px);backdrop-filter:blur(80px);animation:1s ease-in-out}.herum-uploads-header-text{display:flex;width:100%}.herum-uploads-header-text .container-title{width:80%;white-space:nowrap}.herum-uploads-header{display:flex;justify-content:space-between;padding-inline:16px;align-items:center}.herum-uploads-header .control-container{gap:16px;display:flex}.herum-uploads-header .control-container .control-button{width:10px;cursor:pointer}.upload-file-image{width:24px;display:flex;justify-content:center}herum-circular-progress-bar{display:flex;justify-content:center;align-items:center;height:24px;width:24px;transform:scale(1.2)}p{margin:0}.open-chevron{transform:rotate(90deg)}.images-container{display:flex;gap:12px}.icons-color{fill:var(--icons-color)}.icons-color ::ng-deep .generic-file-icon{stroke:var(--icons-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.HerumCircularProgressBarComponent, selector: "herum-circular-progress-bar", inputs: ["percentage", "fill", "size", "firstGradient", "fillColor", "showPercentage", "displayedContent", "displayedContentColorMatchesGradientColor"] }, { kind: "component", type: i2$2.HerumEllipsisLoaderComponent, selector: "herum-ellipsis-loader" }, { kind: "component", type: i2$2.HerumProgressBarComponent, selector: "herum-progress-bar", inputs: ["percentage", "invalidPercentage", "showPercentage", "percentagePosition", "type", "size", "color", "borderRadius", "total", "showBorder", "thickness"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }, { kind: "pipe", type: i4.EllipsisPipe, name: "ellipsis" }] });
11521
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: HerumUploadsManagerComponent, isStandalone: false, selector: "herum-uploads-manager", host: { listeners: { "window:beforeunload": "showConfirmationNativeMessage($event)" } }, ngImport: i0, template: "<div class=\"herum-uploads-layout shadow\" [ngClass]=\"{'open':isContainerOpen}\" *ngIf=\"uploadsProgressMetadata?.length\">\r\n <div class=\"herum-uploads-container-header\">\r\n <div class=\"herum-uploads-header\">\r\n <div class=\"herum-uploads-header-text\">\r\n <herum-ellipsis-loader *ngIf=\"!hasUploadProgressFinished\"></herum-ellipsis-loader>\r\n\r\n <p class=\"container-title\" #containerTitle\r\n [matTooltip]=\"_isTruncatedTitleElement(containerTitle)? (containerTitle$ | async) : '' \">\r\n {{containerTitle$ | async | ellipsis:containerTitle}}</p>\r\n </div>\r\n\r\n <div class=\"control-container\">\r\n <img class=\"control-button\"\r\n [ngClass]=\"{'open-chevron':isContainerOpen, 'closed-chevron':!isContainerOpen}\"\r\n src=\"assets/general/white-chevron.svg\" (click)=\"_onToggleUploadsContainer()\">\r\n\r\n <img class=\"control-button\" *ngIf=\"hasUploadProgressFinished\" src=\"assets/shared/icons/X.svg\"\r\n alt=\"close-icon\" (click)=\"_onClose()\">\r\n </div>\r\n </div>\r\n\r\n <herum-progress-bar [percentage]=\"averageProgressSum\" [percentagePosition]=\"'none'\" [borderRadius]=\"'none'\"\r\n [showBorder]=\"false\" [thickness]=\"'thin'\" [showPercentage]=\"false\" [color]=\"progressBarColor\">\r\n </herum-progress-bar>\r\n </div>\r\n\r\n <div class=\"herum-uploads-container\">\r\n <div *ngIf=\"numberOfFailedLoaders > 1\" class=\"upload-all upload-iteration cursor-pointer\"\r\n (click)=\"_onRetryFailedUploads()\">\r\n <div class=\"herum-upload-title w-100\">\r\n \u05D4\u05E2\u05DC\u05D4 \u05DE\u05D7\u05D3\u05E9 \u05E7\u05D1\u05E6\u05D9\u05DD \u05E9\u05E0\u05DB\u05E9\u05DC\u05D5\r\n </div>\r\n\r\n <div class=\"upload-file-image\">\r\n <img src=\"assets/files-icons/upload-file.svg\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"upload-iteration\"\r\n *ngFor=\"let uploadProgressMetadata of uploadsProgressMetadata; trackBy: _trackByFn\">\r\n <div class=\"herum-upload-container\">\r\n <span [ngClass]=\"_isUploadProgressStatusError(uploadProgressMetadata.status)? 'error' : 'icons-color'\"\r\n [innerHTML]=\"_getFileIcon(uploadProgressMetadata.type) | safeHtml\">\r\n </span>\r\n\r\n <div class=\"herum-upload-text-container\">\r\n <p #uploadTitle class=\"herum-upload-title\"\r\n [ngClass]=\"{'error-font-color':_isUploadProgressStatusError(uploadProgressMetadata.status)}\"\r\n [matTooltip]=\"_isTruncatedTitleElement(uploadTitle) ? uploadProgressMetadata.title : ''\">\r\n {{uploadProgressMetadata.title | ellipsis:uploadTitle}}\r\n </p>\r\n\r\n <p\r\n [ngClass]=\"[_isUploadProgressStatusError(uploadProgressMetadata.status)? 'error-font-color' :'disabled-text-color']\">\r\n {{_getUploadProgressDescription(uploadProgressMetadata)}}\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"center\">\r\n <herum-circular-progress-bar [fill]=\"false\"\r\n [percentage]=\"(uploadProgressMetadata.currentSize/uploadProgressMetadata.totalSize)*100\"\r\n *ngIf=\"uploadProgressMetadata.status === loadingStatus\">\r\n </herum-circular-progress-bar>\r\n\r\n <div class=\"images-container\">\r\n <img class=\"cursor-pointer\" *ngIf=\"_isUploadProgressStatusError(uploadProgressMetadata.status)\"\r\n src=\"assets/files-icons/upload-file.svg\"\r\n (click)=\"_onRetryFailedUpload(uploadProgressMetadata.id)\">\r\n\r\n <span\r\n *ngIf=\"uploadProgressMetadata.status === errorStatus || uploadProgressMetadata.status === successStatus\"\r\n [ngClass]=\"{'icons-color':uploadProgressMetadata.status===successStatus}\"\r\n [innerHTML]=\"_getUploadStatusIcon(uploadProgressMetadata.status) | safeHtml\">\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>", styles: [".herum-uploads-layout{border-radius:8px 8px 0 0;background-color:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:99;direction:rtl;width:350px}.herum-uploads-layout .herum-uploads-container-header{border-radius:8px 8px 0 0;background-color:#22213f;cursor:grab}.herum-uploads-layout .herum-uploads-container-header p{padding-block:12px;color:#fff;font-weight:700;margin:0;font-size:16px}.herum-uploads-layout .herum-uploads-container-header:active{cursor:grabbing}.herum-uploads-layout herum-progress-bar{background-color:#22213f}.herum-uploads-layout .herum-uploads-container{display:none}.herum-upload-text-container{width:80%}.herum-upload-title{line-height:1;font-weight:700;font-size:12px;width:100%;white-space:nowrap;margin-block-end:4px}.open{height:fit-content}.open .herum-uploads-container{overflow-y:auto;max-height:500px;display:flex;flex-direction:column;height:100%}.open .herum-uploads-container .herum-upload-container{display:flex;flex-direction:row;gap:8px;width:70%}.open .herum-uploads-container .herum-upload-container .error{fill:var(--error-color)}.open .upload-iteration{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid var(--chips-divider-color);align-items:center}.open .upload-all{padding-block:21px}.open .upload-iteration:hover{-webkit-backdrop-filter:blur(80px);backdrop-filter:blur(80px);animation:1s ease-in-out}.herum-uploads-header-text{display:flex;width:100%}.herum-uploads-header-text .container-title{width:80%;white-space:nowrap}.herum-uploads-header{display:flex;justify-content:space-between;padding-inline:16px;align-items:center}.herum-uploads-header .control-container{gap:16px;display:flex}.herum-uploads-header .control-container .control-button{width:10px;cursor:pointer}.upload-file-image{width:24px;display:flex;justify-content:center}herum-circular-progress-bar{display:flex;justify-content:center;align-items:center;height:24px;width:24px;transform:scale(1.2)}p{margin:0}.open-chevron{transform:rotate(90deg)}.images-container{display:flex;gap:12px}.icons-color{fill:var(--icons-color)}.icons-color ::ng-deep .generic-file-icon{stroke:var(--icons-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.HerumCircularProgressBarComponent, selector: "herum-circular-progress-bar", inputs: ["percentage", "fill", "size", "firstGradient", "fillColor", "showPercentage", "displayedContent", "displayedContentColorMatchesGradientColor"] }, { kind: "component", type: i2$2.HerumEllipsisLoaderComponent, selector: "herum-ellipsis-loader" }, { kind: "component", type: i2$2.HerumProgressBarComponent, selector: "herum-progress-bar", inputs: ["percentage", "invalidPercentage", "showPercentage", "percentagePosition", "type", "size", "color", "borderRadius", "total", "showBorder", "thickness"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.SafeHtmlPipe, name: "safeHtml" }, { kind: "pipe", type: i4$1.EllipsisPipe, name: "ellipsis" }] });
11491
11522
  }
11492
11523
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: HerumUploadsManagerComponent, decorators: [{
11493
11524
  type: Component,
@@ -11677,5 +11708,5 @@ const deleteButtonStyle = {
11677
11708
  * Generated bundle index. Do not edit.
11678
11709
  */
11679
11710
 
11680
- export { AnswerNotesToTextChangesPipe, AtomsModule, AudioConfigurationConstants, AudioPlayerComponent, AudioSliderComponent, AudioVisualizationService, BlockedFormComponent, CheckboxCellComponent, ChipsCellComponent, CollectionSubscriptionToCollectionBasePipe, CollectionToCollectionBasePipe, CollegeAudioConfiguration, CollegeLoaderComponent, ConditionalFormControlNameDirective, CopyableCellComponent, DeleteRowComponent, DependentsService, DialogsModule, DisplayedSubmissionsCounterPipe, EditRowComponent, EllipsisPipe, ErrorMessageDialogComponent, ErrorsHandlerService, ErrorsModule, FetchedMessageDialog, FetchedMessageModule, FetchedMessageService, HadrachaAudioConfiguration, HerumActiveLinkComponent, HerumActiveMenuComponent, HerumAgGridFilterComponent, HerumAutocompleteComponent, HerumBreadcrumbsComponent, HerumButtonComponent, HerumCheckboxComponent, HerumChipComponent, HerumCircularProgressBarComponent, HerumClosedListMultiSelectComponent, HerumClosedListSelectComponent, HerumDatePickerComponent, HerumDateTimeInputComponent, HerumDateTimePickerComponent, HerumDateTimePickerSelectComponent, HerumDownloadFileComponent, HerumDropZoneComponent, HerumEllipsisLoaderComponent, HerumExpendablePanelComponent, HerumFilesViewerComponent, HerumFilesViewerDialogComponent, HerumFormControl, HerumHierarchyTreeComponent, HerumHierarchyTreeNodeComponent, HerumHighlightDirective, HerumIconLabelComponent, HerumIndeterminateComponent, HerumInputFieldComponent, HerumListCentralizerComponent, HerumLoaderComponent, HerumLocalLoaderComponent, HerumLogoComponent, HerumMiniTableComponent, HerumMultiProgressBarComponent, HerumMultiSelectComponent, HerumNarrowCollectionMenuItemComponent, HerumNavigatorComponent, HerumNoResultMessageComponent, HerumOptionsListComponent, HerumPaginatorComponent, HerumPanelLinksComponent, HerumPdfViewerComponent, HerumPresentationViewerComponent, HerumProgressBarComponent, HerumQuizComponent, HerumQuizHeaderItemComponent, HerumRadioButtonComponent, HerumRecursiveHierarchyOptionsListComponent, HerumSelectComponent, HerumSharedModule, HerumSliderComponent, HerumSpinnerComponent, HerumStepNavigatorComponent, HerumStepperComponent, HerumStoryViewerComponent, HerumSwitchComponent, HerumTableComponent, HerumTextAreaComponent, HerumTextualVerticalTreeComponent, HerumTimePickerComponent, HerumTimeRangeSelectComponent, HerumTimeSelectComponent, HerumToastsComponent, HerumToggleButtonComponent, HerumToolTipDirective, HerumUploadFileComponent, HerumUploadsManagerComponent, HerumUserProfileComponent, HerumUserProgressComponent, HerumVideoPlayerComponent, HerumVideoRangeBarComponent, HerumVideoSelectComponent, InputCellComponent, InsuranceDialogComponent, KeyValueListComponent, LabelsWithIconsListComponent, MoleculesModule, MongoModule, MongoMoleculesModule, PipesModule, ProgressesOverViewComponent, QuizGradeSheetComponent, QuizHeaderComponent, QuizIntroComponent, QuizLoaderComponent, QuizMultiAnswerQuestionComponent, QuizOneAnswerQuestionComponent, QuizOpenAnswerQuestionComponent, QuizSubmissionComponent, QuizTwoAnswersQuestionComponent, RecursiveTreeComponent, ResourceSubscriptionToResourcePipe, ResourceToResourceSubscriptionPipe, RoundedVerticalMenuComponent, RowActionButtonsComponent, SafeHtmlPipe, SafePipe, SliceBreadcrumbsPipe, StringArrayToSignUpFieldArrayPipe, SvgOnHoverDirective, SwitchCellComponent, TableModule, TimeFormatPipe, ToIntegerPipe, ToastsService, TrackTextChangesComponent, TrackTextChangesNotesComponent, UploadsManagerService, UserActionDirective, UserIdentifiedEntitiesToBackendModelsPipe, UserProfileImageComponent, UsersProfilePreviewComponent, buttonsContainerStyle, commentTextStyle, deleteButtonStyle, editButtonStyle, openClose, setDynamicElementStyle, speedOptions, tooltipStyle };
11711
+ export { AnswerNotesToTextChangesPipe, AtomsModule, AudioConfigurationConstants, AudioPlayerComponent, AudioSliderComponent, AudioVisualizationService, BlockedFormComponent, CheckboxCellComponent, ChipsCellComponent, CollectionSubscriptionToCollectionBasePipe, CollectionToCollectionBasePipe, CollegeAudioConfiguration, CollegeLoaderComponent, ConditionalFormControlNameDirective, CopyableCellComponent, DeleteRowComponent, DependentsService, DialogsModule, DirectivesModule, DisplayedSubmissionsCounterPipe, EditRowComponent, EllipsisPipe, ErrorMessageDialogComponent, ErrorsHandlerService, ErrorsModule, FetchedMessageDialog, FetchedMessageModule, FetchedMessageService, HadrachaAudioConfiguration, HerumActiveLinkComponent, HerumActiveMenuComponent, HerumAgGridFilterComponent, HerumAutocompleteComponent, HerumBreadcrumbsComponent, HerumButtonComponent, HerumCheckboxComponent, HerumChipComponent, HerumCircularProgressBarComponent, HerumClosedListMultiSelectComponent, HerumClosedListSelectComponent, HerumDatePickerComponent, HerumDateTimeInputComponent, HerumDateTimePickerComponent, HerumDateTimePickerSelectComponent, HerumDownloadFileComponent, HerumDropZoneComponent, HerumEllipsisLoaderComponent, HerumExpendablePanelComponent, HerumFilesViewerComponent, HerumFilesViewerDialogComponent, HerumFormControl, HerumHierarchyTreeComponent, HerumHierarchyTreeNodeComponent, HerumHighlightDirective, HerumIconLabelComponent, HerumIndeterminateComponent, HerumInputFieldComponent, HerumListCentralizerComponent, HerumLoaderComponent, HerumLocalLoaderComponent, HerumLogoComponent, HerumMiniTableComponent, HerumMultiProgressBarComponent, HerumMultiSelectComponent, HerumNarrowCollectionMenuItemComponent, HerumNavigatorComponent, HerumNoResultMessageComponent, HerumOptionsListComponent, HerumPaginatorComponent, HerumPanelLinksComponent, HerumPdfViewerComponent, HerumPresentationViewerComponent, HerumProgressBarComponent, HerumQuizComponent, HerumQuizHeaderItemComponent, HerumRadioButtonComponent, HerumRecursiveHierarchyOptionsListComponent, HerumSelectComponent, HerumSharedModule, HerumSliderComponent, HerumSpinnerComponent, HerumStepNavigatorComponent, HerumStepperComponent, HerumStoryViewerComponent, HerumSwitchComponent, HerumTableComponent, HerumTextAreaComponent, HerumTextualVerticalTreeComponent, HerumTimePickerComponent, HerumTimeRangeSelectComponent, HerumTimeSelectComponent, HerumToastsComponent, HerumToggleButtonComponent, HerumToolTipDirective, HerumUploadFileComponent, HerumUploadsManagerComponent, HerumUserProfileComponent, HerumUserProgressComponent, HerumVideoPlayerComponent, HerumVideoRangeBarComponent, HerumVideoSelectComponent, InputCellComponent, InsuranceDialogComponent, KeyValueListComponent, LabelsWithIconsListComponent, MoleculesModule, MongoModule, MongoMoleculesModule, PipesModule, ProgressesOverViewComponent, QuizGradeSheetComponent, QuizHeaderComponent, QuizIntroComponent, QuizLoaderComponent, QuizMultiAnswerQuestionComponent, QuizOneAnswerQuestionComponent, QuizOpenAnswerQuestionComponent, QuizSubmissionComponent, QuizTwoAnswersQuestionComponent, RecursiveTreeComponent, ResourceSubscriptionToResourcePipe, ResourceToResourceSubscriptionPipe, RoundedVerticalMenuComponent, RowActionButtonsComponent, SafeHtmlPipe, SafePipe, SliceBreadcrumbsPipe, StringArrayToSignUpFieldArrayPipe, SvgOnHoverDirective, SwitchCellComponent, TableModule, TimeFormatPipe, ToIntegerPipe, ToastsService, TrackTextChangesComponent, TrackTextChangesNotesComponent, UploadsManagerService, UserActionDirective, UserIdentifiedEntitiesToBackendModelsPipe, UserProfileImageComponent, UsersProfilePreviewComponent, buttonsContainerStyle, commentTextStyle, deleteButtonStyle, editButtonStyle, openClose, setDynamicElementStyle, speedOptions, tooltipStyle };
11681
11712
  //# sourceMappingURL=herum-shared.mjs.map