diff --git a/src/lib/buttons/chevron-button/chevron-button.component.html b/src/lib/buttons/chevron-button/chevron-button.component.html
index f70975c..212f433 100644
--- a/src/lib/buttons/chevron-button/chevron-button.component.html
+++ b/src/lib/buttons/chevron-button/chevron-button.component.html
@@ -1,4 +1,4 @@
-
+
diff --git a/src/lib/buttons/circle-button/circle-button.component.ts b/src/lib/buttons/circle-button/circle-button.component.ts
index 1fdb07d..9ec9fb8 100644
--- a/src/lib/buttons/circle-button/circle-button.component.ts
+++ b/src/lib/buttons/circle-button/circle-button.component.ts
@@ -1,18 +1,17 @@
-import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
+import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { MatLegacyTooltip as MatTooltip } from '@angular/material/legacy-tooltip';
import { CircleButtonType, CircleButtonTypes } from '../types/circle-button.type';
-import { IqserTooltipPosition, IqserTooltipPositions } from '../../utils';
+import { IqserTooltipPosition, IqserTooltipPositions, randomString } from '../../utils';
@Component({
selector: 'iqser-circle-button [icon]',
templateUrl: './circle-button.component.html',
styleUrls: ['./circle-button.component.scss'],
- changeDetection: ChangeDetectionStrategy.OnPush,
})
export class CircleButtonComponent implements OnInit {
readonly circleButtonTypes = CircleButtonTypes;
- @Input() id!: string;
+ @Input() buttonId = `${randomString()}-circle-button`;
@Input() icon!: string;
@Input() tooltip?: string;
@Input() tooltipClass?: string;
@@ -32,10 +31,6 @@ export class CircleButtonComponent implements OnInit {
constructor(private readonly _elementRef: ElementRef) {}
- get buttonId(): string {
- return `${Math.random().toString(36).substring(2, 9)}-button`;
- }
-
ngOnInit(): void {
(this._elementRef.nativeElement as HTMLElement).style.setProperty('--size', `${this.size}px`);
(this._elementRef.nativeElement as HTMLElement).style.setProperty('--iconSize', `${this.iconSize}px`);
diff --git a/src/lib/buttons/icon-button/icon-button.component.html b/src/lib/buttons/icon-button/icon-button.component.html
index 9510afe..1f79488 100644
--- a/src/lib/buttons/icon-button/icon-button.component.html
+++ b/src/lib/buttons/icon-button/icon-button.component.html
@@ -1,7 +1,7 @@
();
- constructor() {
- this.buttonId = `${Math.random().toString(36).substring(2, 9)}-button`;
- }
-
get classes(): Record {
return {
overlay: this.showDot,
diff --git a/src/lib/dialog/confirmation-dialog/confirmation-dialog.component.html b/src/lib/dialog/confirmation-dialog/confirmation-dialog.component.html
index 0cf0a5a..3c487d8 100644
--- a/src/lib/dialog/confirmation-dialog/confirmation-dialog.component.html
+++ b/src/lib/dialog/confirmation-dialog/confirmation-dialog.component.html
@@ -33,7 +33,7 @@
[disabled]="(config.requireInput && confirmationDoesNotMatch()) || config.disableConfirm"
[label]="config.confirmationText"
[type]="iconButtonTypes.primary"
- id="confirm"
+ buttonId="confirm"
>
diff --git a/src/lib/filtering/popup-filter/popup-filter.component.html b/src/lib/filtering/popup-filter/popup-filter.component.html
index bd2e108..7fc3e13 100644
--- a/src/lib/filtering/popup-filter/popup-filter.component.html
+++ b/src/lib/filtering/popup-filter/popup-filter.component.html
@@ -8,7 +8,7 @@
[label]="primaryGroup.label?.capitalize() || ('filter-menu.label' | translate)"
[matMenuTriggerFor]="filterMenu"
[showDot]="hasActiveFilters$ | async"
- id="{{ primaryGroup.slug }}"
+ buttonId="{{ primaryGroup.slug }}"
>
diff --git a/src/lib/inputs/details-radio/details-radio.component.ts b/src/lib/inputs/details-radio/details-radio.component.ts
index 98501c9..b5738dd 100644
--- a/src/lib/inputs/details-radio/details-radio.component.ts
+++ b/src/lib/inputs/details-radio/details-radio.component.ts
@@ -1,4 +1,4 @@
-import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
+import { Component, Input } from '@angular/core';
import { DetailsRadioOption } from './details-radio-option';
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
import { FormFieldComponent } from '../form-field/form-field-component.directive';
@@ -7,7 +7,6 @@ import { FormFieldComponent } from '../form-field/form-field-component.directive
selector: 'iqser-details-radio [options]',
templateUrl: './details-radio.component.html',
styleUrls: ['./details-radio.component.scss'],
- changeDetection: ChangeDetectionStrategy.OnPush,
providers: [
{
provide: NG_VALUE_ACCESSOR,
diff --git a/src/lib/listing/page-header/page-header.component.html b/src/lib/listing/page-header/page-header.component.html
index 3375657..ff5a019 100644
--- a/src/lib/listing/page-header/page-header.component.html
+++ b/src/lib/listing/page-header/page-header.component.html
@@ -44,11 +44,11 @@
@@ -58,9 +58,9 @@
, PrimaryKey extends Id = T['id']>() {
return (_index: number, item: T): Id => item.id;
}