@tilde-nlp/ngx-common 8.1.2 → 8.1.4

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.
@@ -8519,12 +8519,224 @@ var AccessibilityContrasts;
8519
8519
  AccessibilityContrasts["BLACK_YELLOW"] = "black-yellow";
8520
8520
  })(AccessibilityContrasts || (AccessibilityContrasts = {}));
8521
8521
 
8522
+ class AccessibilityTextMagnifierService {
8523
+ constructor() {
8524
+ this.magnifiedText = null;
8525
+ this.mousemoveHandler = null;
8526
+ this.mouseoverHandler = null;
8527
+ }
8528
+ toggleTextMagnifier(isDisabled) {
8529
+ if (isDisabled) {
8530
+ this.addMagnifier();
8531
+ }
8532
+ else {
8533
+ this.removeMagnifier();
8534
+ }
8535
+ }
8536
+ addMagnifier() {
8537
+ this.magnifiedText = document.createElement('div');
8538
+ this.magnifiedText.classList.add('magnified-text');
8539
+ document.body.appendChild(this.magnifiedText);
8540
+ let positionTop;
8541
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8542
+ this.mouseoverHandler = (event) => {
8543
+ if (event.target && event.target.nodeType === Node.ELEMENT_NODE) {
8544
+ if (event.target?.classList?.contains('mat-icon')) {
8545
+ return;
8546
+ }
8547
+ const textContent = this.getFirstTextContent(event.target);
8548
+ if (!textContent.length) {
8549
+ this.magnifiedText.style.display = 'none';
8550
+ return;
8551
+ }
8552
+ this.magnifiedText.style.display = 'block';
8553
+ this.magnifiedText.textContent = textContent;
8554
+ positionTop = event.pageY - this.magnifiedText.clientHeight - 25 > 0 ? event.pageY - this.magnifiedText.clientHeight - 25 : 0;
8555
+ this.magnifiedText.style.left = `${event.pageX - 35}px`;
8556
+ this.magnifiedText.style.top = `${positionTop}px`;
8557
+ }
8558
+ };
8559
+ document.addEventListener('mouseover', this.mouseoverHandler);
8560
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8561
+ this.mousemoveHandler = (event) => {
8562
+ if (this.magnifiedText) {
8563
+ this.magnifiedText.style.left = `${event.pageX - 35}px`;
8564
+ this.magnifiedText.style.top = `${positionTop}px`;
8565
+ }
8566
+ };
8567
+ document.addEventListener('mousemove', this.mousemoveHandler);
8568
+ }
8569
+ removeMagnifier() {
8570
+ if (this.magnifiedText) {
8571
+ document.body.removeChild(this.magnifiedText);
8572
+ this.magnifiedText = null;
8573
+ }
8574
+ if (this.mouseoverHandler) {
8575
+ document.removeEventListener('mouseover', this.mouseoverHandler);
8576
+ this.mouseoverHandler = null;
8577
+ }
8578
+ if (this.mousemoveHandler) {
8579
+ document.removeEventListener('mousemove', this.mousemoveHandler);
8580
+ this.mousemoveHandler = null;
8581
+ }
8582
+ }
8583
+ getFirstTextContent(element) {
8584
+ let textContent = '';
8585
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8586
+ for (const child of element.childNodes) {
8587
+ if (child.nodeType === Node.TEXT_NODE) {
8588
+ textContent = child.textContent || '';
8589
+ break;
8590
+ }
8591
+ }
8592
+ return textContent;
8593
+ }
8594
+ static { this.ɵfac = function AccessibilityTextMagnifierService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccessibilityTextMagnifierService)(); }; }
8595
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AccessibilityTextMagnifierService, factory: AccessibilityTextMagnifierService.ɵfac, providedIn: 'root' }); }
8596
+ }
8597
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccessibilityTextMagnifierService, [{
8598
+ type: Injectable,
8599
+ args: [{
8600
+ providedIn: 'root',
8601
+ }]
8602
+ }], null, null); })();
8603
+
8604
+ class AccessibilityScreenMaskService {
8605
+ constructor() {
8606
+ this.focusBarHeight = 60;
8607
+ this.SCREEN_MASK_HEIGHT_KEY = 'SCREEN_MASK_HEIGHT_KEY';
8608
+ this.MASK_CLASS = 'screen-mask';
8609
+ this.MASK_OVERLAY_CLASS = 'screen-mask-overlay';
8610
+ this.FOCUS_BAR_CLASS = 'screen-mask-focus-bar';
8611
+ this.FOCUS_BAR_BTN_CLASS = 'screen-mask-bar-btn';
8612
+ this.INCREASE_BTN_TEXT = '+';
8613
+ this.DECREASE_BTN_TEXT = '-';
8614
+ this.CLOSE_BTN_TEXT = 'x';
8615
+ }
8616
+ toggleScreenMask(isDisabled) {
8617
+ const body = document.querySelector('body');
8618
+ if (!isDisabled) {
8619
+ this.closeFocusBar();
8620
+ }
8621
+ else {
8622
+ const mask = document.createElement('div');
8623
+ const maskOverlay = document.createElement('div');
8624
+ const maskFocusBar = document.createElement('div');
8625
+ const increaseButton = document.createElement('button');
8626
+ const decreaseButton = document.createElement('button');
8627
+ const closeButton = document.createElement('button');
8628
+ mask.classList.add(this.MASK_CLASS);
8629
+ maskFocusBar.classList.add(this.FOCUS_BAR_CLASS);
8630
+ maskOverlay.classList.add(this.MASK_OVERLAY_CLASS);
8631
+ increaseButton.textContent = this.INCREASE_BTN_TEXT;
8632
+ decreaseButton.textContent = this.DECREASE_BTN_TEXT;
8633
+ closeButton.textContent = this.CLOSE_BTN_TEXT;
8634
+ increaseButton.addEventListener('click', () => this.increaseFocusBar());
8635
+ decreaseButton.addEventListener('click', () => this.decreaseFocusBar());
8636
+ closeButton.addEventListener('click', () => this.closeFocusBar());
8637
+ maskFocusBar.appendChild(increaseButton);
8638
+ maskFocusBar.appendChild(decreaseButton);
8639
+ maskFocusBar.appendChild(closeButton);
8640
+ mask.appendChild(maskOverlay);
8641
+ mask.appendChild(maskFocusBar);
8642
+ body.appendChild(mask);
8643
+ const storedHeight = localStorage.getItem(this.SCREEN_MASK_HEIGHT_KEY);
8644
+ const height = storedHeight ? JSON.parse(storedHeight) : this.focusBarHeight;
8645
+ this.focusBarHeight = height;
8646
+ this.updateFocusBar();
8647
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8648
+ this.listener = (event) => {
8649
+ const mouseY = event.clientY - this.focusBarHeight / 2;
8650
+ maskFocusBar.style.height = `${this.focusBarHeight}px`;
8651
+ maskFocusBar.style.top = `${mouseY}px`;
8652
+ const clipPathValue = `polygon(0px 0px, 100% 0px, 100% ${mouseY}px, 0px ${mouseY}px, 0px ${mouseY + this.focusBarHeight}px, 100% ${mouseY + this.focusBarHeight}px, 100% 100%, 0px 100%)`;
8653
+ maskOverlay.style.clipPath = clipPathValue;
8654
+ };
8655
+ body.addEventListener('mousemove', this.listener);
8656
+ }
8657
+ }
8658
+ increaseFocusBar() {
8659
+ this.focusBarHeight += 10;
8660
+ this.updateFocusBar();
8661
+ }
8662
+ decreaseFocusBar() {
8663
+ this.focusBarHeight = Math.max(40, this.focusBarHeight - 10);
8664
+ this.updateFocusBar();
8665
+ }
8666
+ updateFocusBar() {
8667
+ const maskFocusBar = document.querySelector(`.${this.FOCUS_BAR_CLASS}`);
8668
+ const maskOverlay = document.querySelector(`.${this.MASK_OVERLAY_CLASS}`);
8669
+ if (maskFocusBar && maskOverlay) {
8670
+ const mouseY = parseInt(maskFocusBar.style.top || '0');
8671
+ maskFocusBar.style.height = `${this.focusBarHeight}px`;
8672
+ const clipPathValue = `polygon(0px 0px, 100% 0px, 100% ${mouseY}px, 0px ${mouseY}px, 0px ${mouseY + this.focusBarHeight}px, 100% ${mouseY + this.focusBarHeight}px, 100% 100%, 0px 100%)`;
8673
+ maskOverlay.style.clipPath = clipPathValue;
8674
+ }
8675
+ localStorage.setItem(this.SCREEN_MASK_HEIGHT_KEY, JSON.stringify(this.focusBarHeight));
8676
+ }
8677
+ closeFocusBar() {
8678
+ const body = document.querySelector('body');
8679
+ const existingMask = document.querySelector(`.${this.MASK_CLASS}`);
8680
+ if (existingMask) {
8681
+ body.removeChild(existingMask);
8682
+ body.removeEventListener('mousemove', this.listener);
8683
+ localStorage.setItem('SCREEN_MASK', JSON.stringify(false));
8684
+ document.querySelector('.screen-mask-btn')?.classList.remove('active');
8685
+ }
8686
+ }
8687
+ static { this.ɵfac = function AccessibilityScreenMaskService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccessibilityScreenMaskService)(); }; }
8688
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AccessibilityScreenMaskService, factory: AccessibilityScreenMaskService.ɵfac, providedIn: 'root' }); }
8689
+ }
8690
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccessibilityScreenMaskService, [{
8691
+ type: Injectable,
8692
+ args: [{
8693
+ providedIn: 'root',
8694
+ }]
8695
+ }], null, null); })();
8696
+
8522
8697
  class AccessibilityService {
8523
8698
  constructor() {
8524
8699
  this.fontSizeLocalStorageKey = 'ACCESSIBILITY_FONT_SIZE_IX';
8525
8700
  this.contrastLocalStorageKey = 'ACCESSIBILITY_CONTRAST';
8701
+ this.textMagnifierLocalStorageKey = 'TEXT_MAGNIFIER';
8702
+ this.screenMaskLocalStorageKey = 'SCREEN_MASK';
8526
8703
  this.sizeIncreaseSubject = new Subject();
8527
8704
  this.contrastSubject = new Subject();
8705
+ this.#textMagnifier = inject(AccessibilityTextMagnifierService);
8706
+ this.#screenMask = inject(AccessibilityScreenMaskService);
8707
+ }
8708
+ #textMagnifier;
8709
+ #screenMask;
8710
+ toggleScreenMask() {
8711
+ const currnetStatus = this.getSavedScreenMaskStatus();
8712
+ const oppositeStatus = JSON.stringify(!currnetStatus);
8713
+ this.#screenMask.toggleScreenMask(!currnetStatus);
8714
+ localStorage.setItem(this.screenMaskLocalStorageKey, oppositeStatus);
8715
+ }
8716
+ closeFocusBar() {
8717
+ this.#screenMask.closeFocusBar();
8718
+ }
8719
+ toggleTextMagnifier() {
8720
+ const currnetStatus = this.getSavedTextMagnifierStatus();
8721
+ const oppositeStatus = JSON.stringify(!currnetStatus);
8722
+ this.#textMagnifier.toggleTextMagnifier(!currnetStatus);
8723
+ localStorage.setItem(this.textMagnifierLocalStorageKey, oppositeStatus);
8724
+ }
8725
+ getSavedTextMagnifierStatus() {
8726
+ const savedTextMagnifierStatus = JSON.parse(localStorage.getItem(this.textMagnifierLocalStorageKey) ?? 'false');
8727
+ return savedTextMagnifierStatus;
8728
+ }
8729
+ getSavedScreenMaskStatus() {
8730
+ const savedScreenMaskStatus = JSON.parse(localStorage.getItem(this.screenMaskLocalStorageKey) ?? 'false');
8731
+ return savedScreenMaskStatus;
8732
+ }
8733
+ setSavedTextMagnifierStatus() {
8734
+ const currnetStatus = this.getSavedTextMagnifierStatus();
8735
+ this.#textMagnifier.toggleTextMagnifier(currnetStatus);
8736
+ }
8737
+ setSavedScreenMaskStatus() {
8738
+ const currnetStatus = this.getSavedScreenMaskStatus();
8739
+ this.#screenMask.toggleScreenMask(currnetStatus);
8528
8740
  }
8529
8741
  saveContrast(contrast) {
8530
8742
  localStorage.setItem(this.contrastLocalStorageKey, contrast);
@@ -8535,7 +8747,7 @@ class AccessibilityService {
8535
8747
  }
8536
8748
  getSavedFontSize() {
8537
8749
  const savedFontSizeIx = localStorage.getItem(this.fontSizeLocalStorageKey);
8538
- return JSON.parse(savedFontSizeIx ?? AccessibilityFontSizes.BASE);
8750
+ return JSON.parse(savedFontSizeIx ?? '0');
8539
8751
  }
8540
8752
  saveFontSize(ix) {
8541
8753
  localStorage.setItem(this.fontSizeLocalStorageKey, ix.toString());
@@ -8566,9 +8778,9 @@ class AccessibilityService {
8566
8778
 
8567
8779
  function AccessibilityDialogComponent_For_18_Template(rf, ctx) { if (rf & 1) {
8568
8780
  const _r1 = i0.ɵɵgetCurrentView();
8569
- i0.ɵɵelementStart(0, "button", 12);
8781
+ i0.ɵɵelementStart(0, "button", 14);
8570
8782
  i0.ɵɵlistener("click", function AccessibilityDialogComponent_For_18_Template_button_click_0_listener() { const contrast_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.changeContrast(contrast_r2)); });
8571
- i0.ɵɵelementStart(1, "mat-icon", 13);
8783
+ i0.ɵɵelementStart(1, "mat-icon", 15);
8572
8784
  i0.ɵɵtext(2, "visibility");
8573
8785
  i0.ɵɵelementEnd()();
8574
8786
  } if (rf & 2) {
@@ -8579,7 +8791,7 @@ function AccessibilityDialogComponent_For_18_Template(rf, ctx) { if (rf & 1) {
8579
8791
  } }
8580
8792
  class AccessibilityDialogComponent {
8581
8793
  constructor() {
8582
- this.currentContrast = 'base';
8794
+ this.currentContrast = AccessibilityContrasts.BASE;
8583
8795
  this.#accessibility = inject(AccessibilityService);
8584
8796
  this.contrasts = Object.values(AccessibilityContrasts);
8585
8797
  }
@@ -8587,6 +8799,8 @@ class AccessibilityDialogComponent {
8587
8799
  ngOnInit() {
8588
8800
  this.selectedFontSizeIndex = this.#accessibility.getSavedFontSize();
8589
8801
  this.currentContrast = this.#accessibility.getSavedContrast();
8802
+ this.isTextMagnifierEnabled = this.#accessibility.getSavedTextMagnifierStatus();
8803
+ this.isScreenMaskEnabled = this.#accessibility.getSavedScreenMaskStatus();
8590
8804
  }
8591
8805
  changeContrast(contrast) {
8592
8806
  this.currentContrast = contrast;
@@ -8598,14 +8812,25 @@ class AccessibilityDialogComponent {
8598
8812
  this.#accessibility.saveFontSize(this.selectedFontSizeIndex);
8599
8813
  this.#accessibility.setFontSize(this.selectedFontSizeIndex);
8600
8814
  }
8815
+ toggleTextMagnifier() {
8816
+ this.#accessibility.toggleTextMagnifier();
8817
+ this.isTextMagnifierEnabled = this.#accessibility.getSavedTextMagnifierStatus();
8818
+ }
8819
+ toggleScreenMask() {
8820
+ this.#accessibility.toggleScreenMask();
8821
+ this.isScreenMaskEnabled = this.#accessibility.getSavedScreenMaskStatus();
8822
+ }
8823
+ closeFocusBar() {
8824
+ this.#accessibility.closeFocusBar();
8825
+ }
8601
8826
  reset() {
8602
- this.changeContrast('base');
8827
+ this.changeContrast(AccessibilityContrasts.BASE);
8603
8828
  this.selectedFontSizeIndex = 0;
8604
8829
  this.#accessibility.saveFontSize(this.selectedFontSizeIndex);
8605
8830
  this.#accessibility.setFontSize(this.selectedFontSizeIndex);
8606
8831
  }
8607
8832
  static { this.ɵfac = function AccessibilityDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccessibilityDialogComponent)(); }; }
8608
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccessibilityDialogComponent, selectors: [["lib-accessibility-dialog"]], decls: 26, vars: 19, consts: [["mat-dialog-title", "", 1, "text-2-xl"], ["mat-dialog-content", ""], [1, "font-size-wrapper"], [1, "settings-title"], ["animationDuration", "0ms", 3, "selectedTabChange", "selectedIndex"], [3, "label"], [1, "contrast-wrapper"], [1, "contrast-option-wrapper"], [1, "contrast-option", 3, "class", "active"], ["mat-dialog-actions", ""], ["mat-stroked-button", "", 3, "click"], ["mat-flat-button", "", "mat-dialog-close", ""], [1, "contrast-option", 3, "click"], [1, "material-icons-outlined"]], template: function AccessibilityDialogComponent_Template(rf, ctx) { if (rf & 1) {
8833
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccessibilityDialogComponent, selectors: [["lib-accessibility-dialog"]], decls: 36, vars: 32, consts: [["mat-dialog-title", "", 1, "text-2-xl"], ["mat-dialog-content", ""], [1, "font-size-wrapper"], [1, "settings-title"], ["animationDuration", "0ms", 3, "selectedTabChange", "selectedIndex"], [3, "label"], [1, "contrast-wrapper"], [1, "contrast-option-wrapper"], [1, "contrast-option", 3, "class", "active"], [1, "visual-tools-wrapper"], ["mat-stroked-button", "", 3, "click"], ["mat-stroked-button", "", 1, "screen-mask-btn", 3, "click"], ["mat-dialog-actions", ""], ["mat-flat-button", "", "mat-dialog-close", ""], [1, "contrast-option", 3, "click"], [1, "material-icons-outlined"]], template: function AccessibilityDialogComponent_Template(rf, ctx) { if (rf & 1) {
8609
8834
  i0.ɵɵelementStart(0, "h1", 0);
8610
8835
  i0.ɵɵtext(1);
8611
8836
  i0.ɵɵpipe(2, "translate");
@@ -8624,21 +8849,35 @@ class AccessibilityDialogComponent {
8624
8849
  i0.ɵɵelementEnd();
8625
8850
  i0.ɵɵelementStart(16, "div", 7);
8626
8851
  i0.ɵɵrepeaterCreate(17, AccessibilityDialogComponent_For_18_Template, 3, 4, "button", 8, i0.ɵɵrepeaterTrackByIdentity);
8627
- i0.ɵɵelementEnd()()();
8628
- i0.ɵɵelementStart(19, "div", 9)(20, "button", 10);
8629
- i0.ɵɵlistener("click", function AccessibilityDialogComponent_Template_button_click_20_listener() { return ctx.reset(); });
8852
+ i0.ɵɵelementEnd()();
8853
+ i0.ɵɵelementStart(19, "div", 9)(20, "p", 3);
8630
8854
  i0.ɵɵtext(21);
8631
8855
  i0.ɵɵpipe(22, "translate");
8632
8856
  i0.ɵɵelementEnd();
8633
- i0.ɵɵelementStart(23, "button", 11);
8857
+ i0.ɵɵelementStart(23, "button", 10);
8858
+ i0.ɵɵlistener("click", function AccessibilityDialogComponent_Template_button_click_23_listener() { return ctx.toggleTextMagnifier(); });
8634
8859
  i0.ɵɵtext(24);
8635
8860
  i0.ɵɵpipe(25, "translate");
8861
+ i0.ɵɵelementEnd();
8862
+ i0.ɵɵelementStart(26, "button", 11);
8863
+ i0.ɵɵlistener("click", function AccessibilityDialogComponent_Template_button_click_26_listener() { return ctx.toggleScreenMask(); });
8864
+ i0.ɵɵtext(27);
8865
+ i0.ɵɵpipe(28, "translate");
8866
+ i0.ɵɵelementEnd()()();
8867
+ i0.ɵɵelementStart(29, "div", 12)(30, "button", 10);
8868
+ i0.ɵɵlistener("click", function AccessibilityDialogComponent_Template_button_click_30_listener() { return ctx.reset(); });
8869
+ i0.ɵɵtext(31);
8870
+ i0.ɵɵpipe(32, "translate");
8871
+ i0.ɵɵelementEnd();
8872
+ i0.ɵɵelementStart(33, "button", 13);
8873
+ i0.ɵɵtext(34);
8874
+ i0.ɵɵpipe(35, "translate");
8636
8875
  i0.ɵɵelementEnd()();
8637
8876
  } if (rf & 2) {
8638
8877
  i0.ɵɵadvance();
8639
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 9, "ACCESSIBILITY.TITLE"));
8878
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 16, "ACCESSIBILITY.TITLE"));
8640
8879
  i0.ɵɵadvance(5);
8641
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 11, "ACCESSIBILITY.FONT_SIZE_LABEL"), " ");
8880
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 18, "ACCESSIBILITY.FONT_SIZE_LABEL"), " ");
8642
8881
  i0.ɵɵadvance(2);
8643
8882
  i0.ɵɵproperty("selectedIndex", ctx.selectedFontSizeIndex);
8644
8883
  i0.ɵɵadvance();
@@ -8648,18 +8887,28 @@ class AccessibilityDialogComponent {
8648
8887
  i0.ɵɵadvance();
8649
8888
  i0.ɵɵproperty("label", "200%");
8650
8889
  i0.ɵɵadvance(3);
8651
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 13, "ACCESSIBILITY.CONTRAST_LABEL"), " ");
8890
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 20, "ACCESSIBILITY.CONTRAST_LABEL"), " ");
8652
8891
  i0.ɵɵadvance(3);
8653
8892
  i0.ɵɵrepeater(ctx.contrasts);
8654
8893
  i0.ɵɵadvance(4);
8655
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(22, 15, "ACCESSIBILITY.RESET"));
8894
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(22, 22, "ACCESSIBILITY.VISUAL_TOOLS_LABEL"), " ");
8895
+ i0.ɵɵadvance(2);
8896
+ i0.ɵɵclassProp("active", ctx.isTextMagnifierEnabled);
8897
+ i0.ɵɵadvance();
8898
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(25, 24, "ACCESSIBILITY.TEXT_MAGNIFIER"), " ");
8899
+ i0.ɵɵadvance(2);
8900
+ i0.ɵɵclassProp("active", ctx.isScreenMaskEnabled);
8901
+ i0.ɵɵadvance();
8902
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(28, 26, "ACCESSIBILITY.SCREEN_MASK"), " ");
8903
+ i0.ɵɵadvance(4);
8904
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(32, 28, "ACCESSIBILITY.RESET"));
8656
8905
  i0.ɵɵadvance(3);
8657
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(25, 17, "ACCESSIBILITY.CLOSE"));
8658
- } }, dependencies: [MatDialogModule, i1$4.MatDialogClose, i1$4.MatDialogTitle, i1$4.MatDialogActions, i1$4.MatDialogContent, TranslateModule, MatButtonModule, i2$1.MatButton, MatTabsModule, i3$1.MatTab, i3$1.MatTabGroup, MatIconModule, i1.MatIcon, i1$1.TranslatePipe], styles: [".settings-title[_ngcontent-%COMP%]{color:var(--base-30);font-weight:600;font-size:.8125rem;margin-bottom:12px}.contrast-wrapper[_ngcontent-%COMP%]{margin-top:24px}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%]{display:flex;gap:12px}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%] .contrast-option[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:8px 24px;color:#000!important;background-color:#fff!important;border-radius:8px;width:100%;border:2px solid transparent}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%] .contrast-option.black-white[_ngcontent-%COMP%]{background-color:#000!important;color:#fff!important}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%] .contrast-option.yellow-black[_ngcontent-%COMP%]{background-color:#f9f150!important;color:#000!important}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%] .contrast-option.black-yellow[_ngcontent-%COMP%]{background-color:#000!important;color:#f9f150!important}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%] .contrast-option.active[_ngcontent-%COMP%]{border:2px solid;border-color:var(--base-0)}[_nghost-%COMP%] .mdc-tab--active{background-color:var(--mat-sys-primary-container)!important}[_nghost-%COMP%] .mdc-tab--active .mdc-tab__text-label{color:var(--primary-accent)!important}[_nghost-%COMP%] .mat-mdc-tab{width:50px;border:1px solid var(--base-70)}[_nghost-%COMP%] .mat-mdc-tab:first-child{border-bottom-left-radius:16px;border-top-left-radius:16px}[_nghost-%COMP%] .mat-mdc-tab:last-child{border-bottom-right-radius:16px;border-top-right-radius:16px}[_nghost-%COMP%] .mdc-tab-indicator__content--underline{display:none}[_nghost-%COMP%] .mat-mdc-tab-label-container{border-bottom-width:0!important}"] }); }
8906
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(35, 30, "ACCESSIBILITY.CLOSE"));
8907
+ } }, dependencies: [MatDialogModule, i1$4.MatDialogClose, i1$4.MatDialogTitle, i1$4.MatDialogActions, i1$4.MatDialogContent, TranslateModule, MatButtonModule, i2$1.MatButton, MatTabsModule, i3$1.MatTab, i3$1.MatTabGroup, MatIconModule, i1.MatIcon, i1$1.TranslatePipe], styles: [".settings-title[_ngcontent-%COMP%]{color:var(--base-30);font-weight:600;font-size:.8125rem;margin-bottom:12px}.contrast-wrapper[_ngcontent-%COMP%]{margin-top:24px}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%]{display:flex;gap:12px}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%] .contrast-option[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:8px 24px;color:#000!important;background-color:#fff!important;border-radius:8px;width:100%;border:2px solid transparent}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%] .contrast-option.black-white[_ngcontent-%COMP%]{background-color:#000!important;color:#fff!important}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%] .contrast-option.yellow-black[_ngcontent-%COMP%]{background-color:#f9f150!important;color:#000!important}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%] .contrast-option.black-yellow[_ngcontent-%COMP%]{background-color:#000!important;color:#f9f150!important}.contrast-wrapper[_ngcontent-%COMP%] .contrast-option-wrapper[_ngcontent-%COMP%] .contrast-option.active[_ngcontent-%COMP%]{border:2px solid;border-color:var(--base-0)}.visual-tools-wrapper[_ngcontent-%COMP%]{margin-top:24px}.visual-tools-wrapper[_ngcontent-%COMP%] .screen-mask-btn[_ngcontent-%COMP%]{margin-left:8px}[_nghost-%COMP%] .mdc-tab--active{background-color:var(--mat-sys-primary-container)!important}[_nghost-%COMP%] .mdc-tab--active .mdc-tab__text-label{color:var(--primary-accent)!important}[_nghost-%COMP%] .mat-mdc-tab{width:50px;border:1px solid var(--base-70)}[_nghost-%COMP%] .mat-mdc-tab:first-child{border-bottom-left-radius:16px;border-top-left-radius:16px}[_nghost-%COMP%] .mat-mdc-tab:last-child{border-bottom-right-radius:16px;border-top-right-radius:16px}[_nghost-%COMP%] .mdc-tab-indicator__content--underline{display:none}[_nghost-%COMP%] .mat-mdc-tab-label-container{border-bottom-width:0!important}[_nghost-%COMP%] .active .mdc-button__ripple{background-color:var(--primary-accent)!important;opacity:var(--mat-button-outlined-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}"] }); }
8659
8908
  }
8660
8909
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccessibilityDialogComponent, [{
8661
8910
  type: Component,
8662
- args: [{ selector: 'lib-accessibility-dialog', imports: [MatDialogModule, TranslateModule, MatButtonModule, MatTabsModule, MatIconModule], template: "<h1 mat-dialog-title class=\"text-2-xl\">{{ \"ACCESSIBILITY.TITLE\" | translate }}</h1>\r\n\r\n<div mat-dialog-content>\r\n\t<div class=\"font-size-wrapper\">\r\n\t\t<p class=\"settings-title\">\r\n\t\t\t{{ \"ACCESSIBILITY.FONT_SIZE_LABEL\" | translate }}\r\n\t\t</p>\r\n\r\n\t\t<mat-tab-group [selectedIndex]=\"selectedFontSizeIndex\" (selectedTabChange)=\"changeFontSize($event)\" animationDuration=\"0ms\">\r\n\t\t\t<mat-tab [label]=\"'100%'\"></mat-tab>\r\n\t\t\t<mat-tab [label]=\"'150%'\"></mat-tab>\r\n\t\t\t<mat-tab [label]=\"'200%'\"></mat-tab>\r\n\t\t</mat-tab-group>\r\n\t</div>\r\n\r\n\t<div class=\"contrast-wrapper\">\r\n\t\t<p class=\"settings-title\">\r\n\t\t\t{{ \"ACCESSIBILITY.CONTRAST_LABEL\" | translate }}\r\n\t\t</p>\r\n\r\n\t\t<div class=\"contrast-option-wrapper\">\r\n\t\t\t@for (contrast of contrasts; track contrast) {\r\n\t\t\t\t<button (click)=\"changeContrast(contrast)\" [class]=\"contrast\" [class.active]=\"contrast === currentContrast\" class=\"contrast-option\">\r\n\t\t\t\t\t<mat-icon class=\"material-icons-outlined\">visibility</mat-icon>\r\n\t\t\t\t</button>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n\t<button mat-stroked-button (click)=\"reset()\">{{ \"ACCESSIBILITY.RESET\" | translate }}</button>\r\n\t<button mat-flat-button mat-dialog-close>{{ \"ACCESSIBILITY.CLOSE\" | translate }}</button>\r\n</div>\r\n", styles: [".settings-title{color:var(--base-30);font-weight:600;font-size:.8125rem;margin-bottom:12px}.contrast-wrapper{margin-top:24px}.contrast-wrapper .contrast-option-wrapper{display:flex;gap:12px}.contrast-wrapper .contrast-option-wrapper .contrast-option{display:flex;justify-content:center;align-items:center;padding:8px 24px;color:#000!important;background-color:#fff!important;border-radius:8px;width:100%;border:2px solid transparent}.contrast-wrapper .contrast-option-wrapper .contrast-option.black-white{background-color:#000!important;color:#fff!important}.contrast-wrapper .contrast-option-wrapper .contrast-option.yellow-black{background-color:#f9f150!important;color:#000!important}.contrast-wrapper .contrast-option-wrapper .contrast-option.black-yellow{background-color:#000!important;color:#f9f150!important}.contrast-wrapper .contrast-option-wrapper .contrast-option.active{border:2px solid;border-color:var(--base-0)}:host ::ng-deep .mdc-tab--active{background-color:var(--mat-sys-primary-container)!important}:host ::ng-deep .mdc-tab--active .mdc-tab__text-label{color:var(--primary-accent)!important}:host ::ng-deep .mat-mdc-tab{width:50px;border:1px solid var(--base-70)}:host ::ng-deep .mat-mdc-tab:first-child{border-bottom-left-radius:16px;border-top-left-radius:16px}:host ::ng-deep .mat-mdc-tab:last-child{border-bottom-right-radius:16px;border-top-right-radius:16px}:host ::ng-deep .mdc-tab-indicator__content--underline{display:none}:host ::ng-deep .mat-mdc-tab-label-container{border-bottom-width:0!important}\n"] }]
8911
+ args: [{ selector: 'lib-accessibility-dialog', imports: [MatDialogModule, TranslateModule, MatButtonModule, MatTabsModule, MatIconModule], template: "<h1 mat-dialog-title class=\"text-2-xl\">{{ \"ACCESSIBILITY.TITLE\" | translate }}</h1>\r\n\r\n<div mat-dialog-content>\r\n\t<div class=\"font-size-wrapper\">\r\n\t\t<p class=\"settings-title\">\r\n\t\t\t{{ \"ACCESSIBILITY.FONT_SIZE_LABEL\" | translate }}\r\n\t\t</p>\r\n\r\n\t\t<mat-tab-group [selectedIndex]=\"selectedFontSizeIndex\" (selectedTabChange)=\"changeFontSize($event)\" animationDuration=\"0ms\">\r\n\t\t\t<mat-tab [label]=\"'100%'\"></mat-tab>\r\n\t\t\t<mat-tab [label]=\"'150%'\"></mat-tab>\r\n\t\t\t<mat-tab [label]=\"'200%'\"></mat-tab>\r\n\t\t</mat-tab-group>\r\n\t</div>\r\n\r\n\t<div class=\"contrast-wrapper\">\r\n\t\t<p class=\"settings-title\">\r\n\t\t\t{{ \"ACCESSIBILITY.CONTRAST_LABEL\" | translate }}\r\n\t\t</p>\r\n\r\n\t\t<div class=\"contrast-option-wrapper\">\r\n\t\t\t@for (contrast of contrasts; track contrast) {\r\n\t\t\t<button (click)=\"changeContrast(contrast)\" [class]=\"contrast\" [class.active]=\"contrast === currentContrast\" class=\"contrast-option\">\r\n\t\t\t\t<mat-icon class=\"material-icons-outlined\">visibility</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div class=\"visual-tools-wrapper\">\r\n\t\t<p class=\"settings-title\">\r\n\t\t\t{{ \"ACCESSIBILITY.VISUAL_TOOLS_LABEL\" | translate }}\r\n\t\t</p>\r\n\r\n\t\t<button mat-stroked-button [class.active]=\"isTextMagnifierEnabled\" (click)=\"toggleTextMagnifier()\">\r\n\t\t\t{{ \"ACCESSIBILITY.TEXT_MAGNIFIER\" | translate }}\r\n\t\t</button>\r\n\r\n\t\t<button class=\"screen-mask-btn\" mat-stroked-button [class.active]=\"isScreenMaskEnabled\" (click)=\"toggleScreenMask()\">\r\n\t\t\t{{ \"ACCESSIBILITY.SCREEN_MASK\" | translate }}\r\n\t\t</button>\r\n\t</div>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n\t<button mat-stroked-button (click)=\"reset()\">{{ \"ACCESSIBILITY.RESET\" | translate }}</button>\r\n\t<button mat-flat-button mat-dialog-close>{{ \"ACCESSIBILITY.CLOSE\" | translate }}</button>\r\n</div>\r\n", styles: [".settings-title{color:var(--base-30);font-weight:600;font-size:.8125rem;margin-bottom:12px}.contrast-wrapper{margin-top:24px}.contrast-wrapper .contrast-option-wrapper{display:flex;gap:12px}.contrast-wrapper .contrast-option-wrapper .contrast-option{display:flex;justify-content:center;align-items:center;padding:8px 24px;color:#000!important;background-color:#fff!important;border-radius:8px;width:100%;border:2px solid transparent}.contrast-wrapper .contrast-option-wrapper .contrast-option.black-white{background-color:#000!important;color:#fff!important}.contrast-wrapper .contrast-option-wrapper .contrast-option.yellow-black{background-color:#f9f150!important;color:#000!important}.contrast-wrapper .contrast-option-wrapper .contrast-option.black-yellow{background-color:#000!important;color:#f9f150!important}.contrast-wrapper .contrast-option-wrapper .contrast-option.active{border:2px solid;border-color:var(--base-0)}.visual-tools-wrapper{margin-top:24px}.visual-tools-wrapper .screen-mask-btn{margin-left:8px}:host ::ng-deep .mdc-tab--active{background-color:var(--mat-sys-primary-container)!important}:host ::ng-deep .mdc-tab--active .mdc-tab__text-label{color:var(--primary-accent)!important}:host ::ng-deep .mat-mdc-tab{width:50px;border:1px solid var(--base-70)}:host ::ng-deep .mat-mdc-tab:first-child{border-bottom-left-radius:16px;border-top-left-radius:16px}:host ::ng-deep .mat-mdc-tab:last-child{border-bottom-right-radius:16px;border-top-right-radius:16px}:host ::ng-deep .mdc-tab-indicator__content--underline{display:none}:host ::ng-deep .mat-mdc-tab-label-container{border-bottom-width:0!important}:host ::ng-deep .active .mdc-button__ripple{background-color:var(--primary-accent)!important;opacity:var(--mat-button-outlined-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}\n"] }]
8663
8912
  }], null, null); })();
8664
8913
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccessibilityDialogComponent, { className: "AccessibilityDialogComponent", filePath: "lib/accessibility/accessibility-dialog.component.ts", lineNumber: 16 }); })();
8665
8914
 
@@ -8671,5 +8920,5 @@ class AccessibilityDialogComponent {
8671
8920
  * Generated bundle index. Do not edit.
8672
8921
  */
8673
8922
 
8674
- export { ALERT_CONFIGURATION_TOKEN, AccessibilityContrasts, AccessibilityDialogComponent, AccessibilityFontSizes, AccessibilityService, AlertService, AuthHeadersHelper, COLLECTIONS_MENU, ClickOutsideDirective, ClickOutsideModule, CloseButtonComponent, CloseButtonModule, CombinedCollection, CombinedCollectionTooltipKey, CompanyProductComponent, CompanyProductModule, Confirmation, ConfirmationModalComponent, ConfirmationModalModule, ConfirmationService, ConversionHelper, CustomPaginatorInernationalizationHelper, CustomTitleStrategyService, DISABLE_EXPORT_ATTRIBUTE_NAME, DOMService, DateAgoModule, DateAgoPipe, DomainTranslatePipe, DragAndDropDirective, DragAndDropModule, ERROR_CODES, EngineTermApiService, EngineTermCollectionScope, EngineTermCollectionSource, EngineTermCollectionStatus, EngineTermCollectionSubStatus, ExportFormat, ExtensionDialogComponent, ExtensionDialogModule, ExtensionDialogService, FILE_SIZE_UNIT, FileCategories, FileExtensionHelper, FileExtensions, FileSizeLabelPipe, FileTypeIcons, FileTypes, FileUploadComponent, FileUploadErrorTypeEnum, FileUploadModule, FilterBarComponent, FilterBarModule, FilterWithHighlightModule, FilterWithHighlightPipe, FooterComponent, FooterModule, GlobalMessageComponent, HashHelper, HtmlElementParseHelper, HtmlHelper, IconService, InlineMessageComponent, InlineMessageIconPosition, InlineMessageModule, InlineMessageType, LAST_USED_SYSTEM_LOCAL_STORAGE_KEY, LLMActions, LLMComponent, LLMModule, LLM_CONFIGURATION_TOKEN, LanguageTranslateModule, LanguageTranslatePipe, LanguageTranslateService, MatButtonLoadingDirective, MatButtonLoadingModule, MissingTranslationHandlerService, MissingTranslationHelper, MtCollectionStatus, MultiFunctionalTableComponent, MultiFunctionalTableModule, NewFeatureDialogWrapperComponent, NotificationMessageComponent, NotificationMessageModule, NotificationMessageType, NotificationService, OPEN_CLOSE_BTN_ICONS_TOKEN, ObjectLengthModule, ObjectLengthPipe, OpenCloseButtonComponent, OpenCloseButtonModule, OpenExtensionDialogComponent, Operations, PlausibleEventDirective, PlausibleHelper, PlausibleModule, ResolutionHelper, SCREEN_SIZE, SaveFileHelper, SelectLanguageDialogComponent, SidebarComponent, SidebarService, SortAlphabeticallyModule, SortAlphabeticallyPipe, SortByNumberPipe, SortDomainsPipe, SortHelper, SortLanguageListPipe, SortTranslationsByPropertyModule, SortTranslationsByPropertyPipe, SortTranslationsModule, SortTranslationsPipe, StatusDisplayComponent, StatusDisplayModule, SubscriptionComponent, SubscriptionPlan, SystemService, TerminologyApiService, TerminologyCollectionService, TerminologyComponent, TerminologyConfigService, TerminologyCreateCollectionComponent, TerminologyModule, TerminologyService, TextToSpeechComponent, TldLoaderComponent, TldLoaderModule, ToastComponent, ToastService, getFileSizeLabel, provideCustomTitleStrategy };
8923
+ export { ALERT_CONFIGURATION_TOKEN, AccessibilityContrasts, AccessibilityDialogComponent, AccessibilityFontSizes, AccessibilityService, AccessibilityTextMagnifierService, AlertService, AuthHeadersHelper, COLLECTIONS_MENU, ClickOutsideDirective, ClickOutsideModule, CloseButtonComponent, CloseButtonModule, CombinedCollection, CombinedCollectionTooltipKey, CompanyProductComponent, CompanyProductModule, Confirmation, ConfirmationModalComponent, ConfirmationModalModule, ConfirmationService, ConversionHelper, CustomPaginatorInernationalizationHelper, CustomTitleStrategyService, DISABLE_EXPORT_ATTRIBUTE_NAME, DOMService, DateAgoModule, DateAgoPipe, DomainTranslatePipe, DragAndDropDirective, DragAndDropModule, ERROR_CODES, EngineTermApiService, EngineTermCollectionScope, EngineTermCollectionSource, EngineTermCollectionStatus, EngineTermCollectionSubStatus, ExportFormat, ExtensionDialogComponent, ExtensionDialogModule, ExtensionDialogService, FILE_SIZE_UNIT, FileCategories, FileExtensionHelper, FileExtensions, FileSizeLabelPipe, FileTypeIcons, FileTypes, FileUploadComponent, FileUploadErrorTypeEnum, FileUploadModule, FilterBarComponent, FilterBarModule, FilterWithHighlightModule, FilterWithHighlightPipe, FooterComponent, FooterModule, GlobalMessageComponent, HashHelper, HtmlElementParseHelper, HtmlHelper, IconService, InlineMessageComponent, InlineMessageIconPosition, InlineMessageModule, InlineMessageType, LAST_USED_SYSTEM_LOCAL_STORAGE_KEY, LLMActions, LLMComponent, LLMModule, LLM_CONFIGURATION_TOKEN, LanguageTranslateModule, LanguageTranslatePipe, LanguageTranslateService, MatButtonLoadingDirective, MatButtonLoadingModule, MissingTranslationHandlerService, MissingTranslationHelper, MtCollectionStatus, MultiFunctionalTableComponent, MultiFunctionalTableModule, NewFeatureDialogWrapperComponent, NotificationMessageComponent, NotificationMessageModule, NotificationMessageType, NotificationService, OPEN_CLOSE_BTN_ICONS_TOKEN, ObjectLengthModule, ObjectLengthPipe, OpenCloseButtonComponent, OpenCloseButtonModule, OpenExtensionDialogComponent, Operations, PlausibleEventDirective, PlausibleHelper, PlausibleModule, ResolutionHelper, SCREEN_SIZE, SaveFileHelper, SelectLanguageDialogComponent, SidebarComponent, SidebarService, SortAlphabeticallyModule, SortAlphabeticallyPipe, SortByNumberPipe, SortDomainsPipe, SortHelper, SortLanguageListPipe, SortTranslationsByPropertyModule, SortTranslationsByPropertyPipe, SortTranslationsModule, SortTranslationsPipe, StatusDisplayComponent, StatusDisplayModule, SubscriptionComponent, SubscriptionPlan, SystemService, TerminologyApiService, TerminologyCollectionService, TerminologyComponent, TerminologyConfigService, TerminologyCreateCollectionComponent, TerminologyModule, TerminologyService, TextToSpeechComponent, TldLoaderComponent, TldLoaderModule, ToastComponent, ToastService, getFileSizeLabel, provideCustomTitleStrategy };
8675
8924
  //# sourceMappingURL=tilde-nlp-ngx-common.mjs.map