]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: fix all ts eslint errors 70069/head
authorNizamudeen A <nia@redhat.com>
Thu, 9 Jul 2026 10:01:27 +0000 (15:31 +0530)
committerNizamudeen A <nia@redhat.com>
Fri, 10 Jul 2026 14:27:11 +0000 (19:57 +0530)
as per the newer eslint rules. i limited it to only prettifying the code
instead of changing anything functional. running `npm run fix` did the
magic

Fixes: https://tracker.ceph.com/issues/77112
Signed-off-by: Nizamudeen A <nia@redhat.com>
127 files changed:
src/pybind/mgr/dashboard/frontend/cypress/e2e/cluster/crush-map.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/cluster/crush-map.po.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/orchestrator/workflow/08-hosts.e2e-spec.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/multisite.po.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/rgw/users.po.ts
src/pybind/mgr/dashboard/frontend/eslint.config.mjs
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-form/iscsi-target-form.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/bootstrap-create-modal/bootstrap-create-modal.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvme-gateway-view/nvme-gateway-view.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvme-subsystem-view/nvme-subsystem-view.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-edit-authentication/nvmeof-edit-authentication.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-edit-host-key-modal/nvmeof-edit-host-key-modal.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-gateway-subsystem/nvmeof-gateway-subsystem.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-initiators-form/nvmeof-initiators-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-namespaces-form/nvmeof-namespaces-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-subsystem-overview/nvmeof-subsystem-overview.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-subsystem-overview/nvmeof-subsystem-overview.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-subsystem-performance/nvmeof-subsystem-performance.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-subsystems-form/nvmeof-subsystem-step-1/nvmeof-subsystem-step-1.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-subsystems-form/nvmeof-subsystem-step-2/nvmeof-subsystem-step-2.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-subsystems-form/nvmeof-subsystem-step-4/nvmeof-subsystem-step-4.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-detail/cephfs-detail.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-directories/cephfs-directories.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-filesystem-selector/cephfs-filesystem-selector.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-mirroring-wizard/cephfs-mirroring-wizard.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-snapshotschedule-form/cephfs-snapshotschedule-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-snapshotschedule-list/cephfs-snapshotschedule-list.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-subvolume-form/cephfs-subvolume-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/create-cluster/create-cluster.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/create-cluster/create-cluster.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/crushmap/crushmap.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/crushmap/crushmap.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/hosts/host-details/host-details.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/multi-cluster/multi-cluster.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-details/osd-details.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-list/osd-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/upgrade/upgrade.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard-v3/dashboard-pie/dashboard-pie.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/nfs/nfs-form/nfs-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/nfs/nfs-form/nfs-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/overview/alerts-card/overview-alerts-card.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form-modal.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form-modal.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-form/pool-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/bucket-tag-modal/bucket-tag-modal.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/models/rgw-multisite-zonegroup-deletion-form/rgw-multisite-zonegroup-deletion-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/models/rgw-storage-class.model.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-tiering-form/rgw-bucket-tiering-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-multisite-import/rgw-multisite-import.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-multisite-sync-flow-modal/rgw-multisite-sync-flow-modal.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-multisite-sync-pipe-modal/rgw-multisite-sync-pipe-modal.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-multisite-wizard/rgw-multisite-wizard.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-notification-form/rgw-notification-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-overview-dashboard/rgw-overview-dashboard.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-topic-form/rgw-topic-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-accounts-form/rgw-user-accounts-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-capability-modal/rgw-user-capability-modal.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-details/rgw-user-details.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-details/rgw-user-details.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/shared/smart-list/smart-list.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/smb/smb.model.ts
src/pybind/mgr/dashboard/frontend/src/app/core/auth/login-password-form/login-password-form.component.html
src/pybind/mgr/dashboard/frontend/src/app/core/auth/user-form/user-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/core/auth/user-password-form/user-password-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/core/layouts/workbench-layout/workbench-layout.component.ts
src/pybind/mgr/dashboard/frontend/src/app/core/navigation/dashboard-help/dashboard-help.component.ts
src/pybind/mgr/dashboard/frontend/src/app/core/navigation/identity/identity.component.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/host.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/osd.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/pool.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rbd-mirroring.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rbd.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-bucket.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-realm.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-site.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-topic.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-user-accounts.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-user.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/smb.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/components/config-option/config-option.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/components/delete-confirmation-modal/delete-confirmation-modal.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/components/delete-confirmation-modal/delete-confirmation-modal.component.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/components/grafana/grafana.component.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/components/language-selector/supported-languages.enum.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/components/productive-card/productive-card.component.scss
src/pybind/mgr/dashboard/frontend/src/app/shared/components/vertical-navigation/vertical-navigation.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/checked-table-form/checked-table-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/directives/auth-storage.directive.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/directives/autofocus.directive.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/directives/dynamic-input-combobox.directive.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/directives/form-loading.directive.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/directives/iops.directive.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/directives/milliseconds.directive.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/directives/optional-field.directive.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/directives/password-button.directive.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/directives/required-field.directive.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/directives/trim.directive.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/directives/validate.directive.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/forms/cd-validators.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/forms/crud-form/formly-array-type/formly-array-type.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/forms/crud-form/formly-input-type/formly-input-type.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/forms/crud-form/formly-input-wrapper/formly-input-wrapper.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/forms/crud-form/formly-object-type/formly-object-type.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/forms/crud-form/formly-textarea-type/formly-textarea-type.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/models/image-spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/models/nvmeof.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/models/overview.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/pipes/ordinal.pipe.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/api-interceptor.service.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/auth-guard.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/change-password-guard.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/data-gateway.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/feature-toggles.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/js-error-handler.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/language.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/ngzone-scheduler.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/summary.service.ts
src/pybind/mgr/dashboard/frontend/src/styles/_carbon-defaults.scss

index 23497bbd57909a328193d869895e111047bdbbfe..7b4b651b6cab0beb7a0fca0772efb55174c54ccd 100644 (file)
@@ -17,7 +17,7 @@ describe('CRUSH map page', () => {
   describe('fields check', () => {
     it('should check that title & table appears', () => {
       // Check that title (CRUSH map viewer) appears
-      crushmap.getPageTitle().should('equal', 'CRUSH map viewer');
+      crushmap.getPageTitle().should('contain.text', 'CRUSH map viewer');
 
       // Check that title appears once OSD is clicked
       crushmap.getCrushNode(0).click();
index a5d2d591ce0480d3e70abf63cbc008999642d342..9f41d21dd56a67731f75226e914d44f99bc7c0ef 100644 (file)
@@ -4,7 +4,7 @@ export class CrushMapPageHelper extends PageHelper {
   pages = { index: { url: '#/crush-map', id: 'cd-crushmap' } };
 
   getPageTitle() {
-    return cy.get('cd-crushmap .card-header').text();
+    return cy.get('cd-crushmap .card-header');
   }
 
   getCrushNode(idx: number) {
index 41a50cb2e2873924f76a690a966137c3516620cb..e7a14e85b38fea57afcac38261525e356b7be4e5 100644 (file)
@@ -15,14 +15,14 @@ describe('Host Page', () => {
   });
 
   describe('should have all host details', () => {
-    it('should have hostname'),
+    (it('should have hostname'),
       () => {
         cy.get('[data-testid="hostname"]').should('not.be.empty');
-      };
-    it('should have IP address'),
+      });
+    (it('should have IP address'),
       () => {
         cy.get('[data-testid="ip-address"]').should('not.be.empty');
-      };
+      });
   });
 
   // rgw is needed for testing the force maintenance
index 6240c0c9fea597c5dea5fc49c42ad27d21106c79..b180cffff06b1135afac2ba67cd877322c08f9b9 100644 (file)
@@ -308,14 +308,14 @@ export class MultisitePageHelper extends PageHelper {
   @PageHelper.restrictTo(pages.topology.url)
   topologyViewerExist() {
     cy.get(pages.topology.id).should('be.visible');
-    cy.get('[data-testid=rgw-multisite-details-header]').should('have.text', 'Topology Viewer');
+    cy.get('[data-testid=rgw-multisite-details-header]').should('contain.text', 'Topology Viewer');
   }
 
   @PageHelper.restrictTo(pages.wizard.url)
   replicationWizardExist() {
     cy.get('cds-modal').then(() => {
       cy.get('[data-testid=rgw-multisite-wizard-header]').should(
-        'have.text',
+        'contain.text',
         'Set up Multi-site Replication'
       );
     });
index 9652d9d75e545172971d22eadcae8143c3f34c98..e31dee68f9a1e960d100ec61433e373406a2394b 100644 (file)
@@ -75,13 +75,13 @@ export class UsersPageHelper extends PageHelper {
     cy.get('#tenant').type(tenant).should('have.class', 'ng-invalid');
     cy.get('cds-text-label[for=tenant]')
       .find('.invalid-feedback')
-      .should('have.text', 'The chosen user ID exists in this tenant.');
+      .should('contain.text', 'The chosen user ID exists in this tenant.');
 
     // check that username field is marked invalid if username has been cleared off
     cy.get('#user_id').clear().blur().should('have.class', 'ng-invalid');
     cy.get('cds-text-label[for=user_id]')
       .find('.invalid-feedback')
-      .should('have.text', 'This field is required.');
+      .should('contain.text', 'This field is required.');
 
     // Full name
     cy.get('#display_name')
@@ -94,13 +94,13 @@ export class UsersPageHelper extends PageHelper {
       .should('have.class', 'ng-invalid');
     cy.get('cds-text-label[for=display_name]')
       .find('.invalid-feedback')
-      .should('have.text', 'This field is required.');
+      .should('contain.text', 'This field is required.');
 
     // put invalid email to make field invalid
     cy.get('#email').type('a').blur().should('have.class', 'ng-invalid');
     cy.get('cds-text-label[for=email]')
       .find('.invalid-feedback')
-      .should('have.text', 'This is not a valid email address.');
+      .should('contain.text', 'This is not a valid email address.');
 
     // put negative max buckets to make field invalid
     this.expectSelectOption('max_buckets_mode', 'Custom');
@@ -108,7 +108,7 @@ export class UsersPageHelper extends PageHelper {
     cy.get('#max_buckets').should('have.class', 'ng-invalid');
     cy.get('cds-number[for=max_buckets]')
       .find('.invalid-feedback')
-      .should('have.text', 'The entered value must be >= 1.');
+      .should('contain.text', 'The entered value must be >= 1.');
 
     this.navigateTo();
     this.delete(tenant + '$' + uname, null, null, true, false, false, true);
@@ -133,13 +133,13 @@ export class UsersPageHelper extends PageHelper {
 
     cy.get('cds-text-label[for=email]')
       .find('.invalid-feedback')
-      .should('have.text', 'This is not a valid email address.');
+      .should('contain.text', 'This is not a valid email address.');
 
     // empty the display name field making it invalid
     cy.get('#display_name').clear({ force: true }).blur().should('have.class', 'ng-invalid');
     cy.get('cds-text-label[for=display_name]')
       .find('.invalid-feedback')
-      .should('have.text', 'This field is required.');
+      .should('contain.text', 'This field is required.');
 
     // put negative max buckets to make field invalid
     this.selectOption('max_buckets_mode', 'Disabled');
@@ -150,7 +150,7 @@ export class UsersPageHelper extends PageHelper {
     cy.get('#max_buckets').should('have.class', 'ng-invalid');
     cy.get('cds-number[for=max_buckets]')
       .find('.invalid-feedback')
-      .should('have.text', 'The entered value must be >= 1.');
+      .should('contain.text', 'The entered value must be >= 1.');
 
     this.navigateTo();
     this.delete(tenant + '$' + uname, null, null, true, false, false, true);
@@ -178,13 +178,13 @@ export class UsersPageHelper extends PageHelper {
     cy.get(`select[id=${selection_name}]`).should('exist');
     cy.get(`select[id=${selection_name}]`).select(account_id);
     cy.get(`select[id=${selection_name}] option:checked`).should(
-      'have.text',
+      'contain.text',
       `${account_name} - ${tenant}`
     );
     cy.contains('button', 'Edit User').click();
 
     this.getTableRow(tenant + '$' + user_id).as('AccountUser');
-    cy.get('@AccountUser').find('td').eq(3).should('have.text', `${account_name}`);
+    cy.get('@AccountUser').find('td').eq(3).should('contain.text', `${account_name}`);
 
     // check table details if we have all the details there
     this.getExpandCollapseElement(username).should('be.visible').click();
@@ -198,29 +198,29 @@ export class UsersPageHelper extends PageHelper {
         .eq(0)
         .within(() => {
           cy.wait(500);
-          cy.get('td').eq(0).should('have.text', 'Account ID');
-          cy.get('td').eq(1).should('have.text', account_id);
+          cy.get('td').eq(0).should('contain.text', 'Account ID');
+          cy.get('td').eq(1).should('contain.text', account_id);
         });
       cy.get('tr')
         .eq(1)
         .within(() => {
           cy.wait(500);
-          cy.get('td').eq(0).should('have.text', 'Name');
-          cy.get('td').eq(1).should('have.text', account_name);
+          cy.get('td').eq(0).should('contain.text', 'Name');
+          cy.get('td').eq(1).should('contain.text', account_name);
         });
       cy.get('tr')
         .eq(2)
         .within(() => {
           cy.wait(500);
-          cy.get('td').eq(0).should('have.text', 'Tenant');
-          cy.get('td').eq(1).should('have.text', tenant);
+          cy.get('td').eq(0).should('contain.text', 'Tenant');
+          cy.get('td').eq(1).should('contain.text', tenant);
         });
       cy.get('tr')
         .eq(3)
         .within(() => {
           cy.wait(500);
-          cy.get('td').eq(0).should('have.text', 'User type');
-          cy.get('td').eq(1).should('have.text', 'rgw user');
+          cy.get('td').eq(0).should('contain.text', 'User type');
+          cy.get('td').eq(1).should('contain.text', 'rgw user');
         });
     });
   }
@@ -231,7 +231,7 @@ export class UsersPageHelper extends PageHelper {
     this.navigateEdit(username);
     cy.get(`select[id=${selection_name}]`).should('exist').should('be.disabled');
     cy.get(`select[id=${selection_name}] option:checked`).should(
-      'have.text',
+      'contain.text',
       `${account_name} - ${tenant}`
     );
     cy.get('input#account_root_user_input').check({ force: true });
@@ -250,8 +250,8 @@ export class UsersPageHelper extends PageHelper {
         .eq(3)
         .within(() => {
           cy.wait(500);
-          cy.get('td').eq(0).should('have.text', 'User type');
-          cy.get('td').eq(1).should('have.text', 'Account root user');
+          cy.get('td').eq(0).should('contain.text', 'User type');
+          cy.get('td').eq(1).should('contain.text', 'Account root user');
         });
     });
   }
index 9809a42a9e5bfdc65562698354a5e233fb5c6c04..b2bd6c18603c49395b375017dc0424daea4588aa 100644 (file)
@@ -11,7 +11,6 @@ export default tseslint.config(
     extends: [
       eslint.configs.recommended,
       ...tseslint.configs.recommended,
-      ...tseslint.configs.recommendedTypeChecked,
       ...angular.configs.tsRecommended
     ],
     processor: angular.processInlineTemplates,
@@ -21,63 +20,58 @@ export default tseslint.config(
         createDefaultProgram: true
       }
     },
+    linterOptions: {
+      reportUnusedDisableDirectives: false
+    }
+  },
+  {
+    files: ['**/*.ts'],
     rules: {
-      'no-multiple-empty-lines': [
-        'error',
-        {
-          max: 2,
-          maxEOF: 1
-        }
-      ],
-      'spaced-comment': [
-        'error',
-        'always',
-        {
-          exceptions: ['-', '+', '*']
-        }
-      ],
-      curly: ['error', 'multi-line'],
+      'no-multiple-empty-lines': ['error', { max: 2, maxEOF: 1 }],
+      'spaced-comment': ['error', 'always', { exceptions: ['-', '+', '*'] }],
+      'curly': ['error', 'multi-line'],
       'guard-for-in': 'error',
       'no-restricted-imports': [
         'error',
         {
-          paths: [
-            'rxjs/Rx',
-            {
-              name: '@angular/core/testing',
-              importNames: ['async']
-            }
-          ],
+          paths: ['rxjs/Rx', { name: '@angular/core/testing', importNames: ['async'] }],
           patterns: ['(\\.{1,2}/){2,}']
         }
       ],
-      'no-console': [
-        'error',
-        {
-          allow: ['debug', 'info', 'time', 'timeEnd', 'trace']
-        }
-      ],
+      'no-console': ['error', { allow: ['debug', 'info', 'time', 'timeEnd', 'trace'] }],
       'no-trailing-spaces': 'error',
       'no-caller': 'error',
       'no-bitwise': 'error',
       'no-duplicate-imports': 'error',
       'no-eval': 'error',
-      '@angular-eslint/directive-selector': [
-        'error',
-        {
-          type: 'attribute',
-          prefix: 'cd',
-          style: 'camelCase'
-        }
-      ],
-      '@angular-eslint/component-selector': [
-        'error',
-        {
-          type: 'element',
-          prefix: 'cd',
-          style: 'kebab-case'
-        }
-      ]
+      '@angular-eslint/directive-selector': ['error', { type: 'attribute', prefix: 'cd', style: 'camelCase' }],
+      '@angular-eslint/component-selector': ['error', { type: 'element', prefix: 'cd', style: 'kebab-case' }],
+
+      // @TODO: revisit and remove them by fixing the respective errors in ts files
+      '@angular-eslint/prefer-standalone': 'off',
+      '@typescript-eslint/no-explicit-any': 'off',
+      '@typescript-eslint/no-unused-vars': 'off',
+      '@typescript-eslint/no-unsafe-function-type': 'off',
+      '@typescript-eslint/no-this-alias': 'off',
+      '@typescript-eslint/no-wrapper-object-types': 'off',
+      '@typescript-eslint/no-unused-expressions': 'off',
+      '@typescript-eslint/no-empty-object-type': 'off',
+      '@typescript-eslint/no-require-imports': 'off',
+      '@typescript-eslint/no-array-constructor': 'off',
+      '@typescript-eslint/no-duplicate-enum-values': 'off',
+      '@typescript-eslint/ban-ts-comment': 'off',
+      '@typescript-eslint/unbound-method': 'off',
+      'no-useless-escape': 'off',
+      'no-empty': 'off',
+      'prefer-const': 'off',
+      'no-prototype-builtins': 'off',
+      'no-case-declarations': 'off',
+      'no-extra-boolean-cast': 'off',
+      'prefer-spread': 'off',
+      'prefer-rest-params': 'off',
+      'no-constant-binary-expression': 'off',
+      'no-sparse-arrays': 'off',
+      'no-var': 'off'
     }
   },
   {
@@ -97,7 +91,7 @@ export default tseslint.config(
       '@angular-eslint/template/interactive-supports-focus': 'error',
       '@angular-eslint/template/click-events-have-key-events': 'error',
       '@angular-eslint/template/label-has-associated-control': 'error',
-      '@angular-eslint/template/elements-content': 'error'
+      '@angular-eslint/template/elements-content': 'error',
     }
   }
 );
index 90d700ed378a49f0e0777a72db1362e2a81e16fd..e3706249c3cd353adc2dd62213fac6dc526fc3e9 100644 (file)
@@ -68,6 +68,8 @@
                 type="button"
                 class="btn btn-light"
                 cdPasswordButton="password"
+                aria-label="Toggle visibility"
+                i18n-aria-label
               ></button>
               <cd-copy-2-clipboard-button source="password"> </cd-copy-2-clipboard-button>
             </div>
                 type="button"
                 class="btn btn-light"
                 cdPasswordButton="mutual_password"
+                aria-label="Toggle visibility"
+                i18n-aria-label
               ></button>
               <cd-copy-2-clipboard-button source="mutual_password"> </cd-copy-2-clipboard-button>
             </div>
index 50411519940dfd060512974db44b06be1f905204..dd33d4edfaa41a95378866e996a2f2c5da7661b2 100644 (file)
                   type="button"
                   class="btn btn-light"
                   cdPasswordButton="target_password"
+                  aria-label="Toggle visibility"
+                  i18n-aria-label
                 ></button>
                 <cd-copy-2-clipboard-button source="target_password"> </cd-copy-2-clipboard-button>
               </div>
                   type="button"
                   class="btn btn-light"
                   cdPasswordButton="target_mutual_password"
+                  aria-label="Toggle visibility"
+                  i18n-aria-label
                 ></button>
                 <cd-copy-2-clipboard-button source="target_mutual_password">
                 </cd-copy-2-clipboard-button>
                   type="button"
                   class="btn-close float-end"
                   (click)="removeInitiator(ii)"
+                  aria-label="Remove initiator"
+                  i18n-aria-label
                 ></button>
               </div>
               <div class="card-body">
                           type="button"
                           class="btn btn-light"
                           [cdPasswordButton]="'password' + ii"
+                          aria-label="Toggle visibility"
+                          i18n-aria-label
                         ></button>
                         <cd-copy-2-clipboard-button [source]="'password' + ii">
                         </cd-copy-2-clipboard-button>
                           type="button"
                           class="btn btn-light"
                           [cdPasswordButton]="'mutual_password' + ii"
+                          aria-label="Toggle visibility"
+                          i18n-aria-label
                         ></button>
                         <cd-copy-2-clipboard-button [source]="'mutual_password' + ii">
                         </cd-copy-2-clipboard-button>
                   type="button"
                   class="btn-close float-end"
                   (click)="removeGroup(gi)"
+                  aria-label="Remove group"
+                  i18n-aria-label
                 ></button>
               </div>
               <div class="card-body">
index 0ba9663ef1899da4ae3bcf11f12440bd2311e845..51dde679da9bae6f4b209ec10916c1e320a17dd2 100644 (file)
@@ -28,7 +28,8 @@ import { TaskWrapperService } from '~/app/shared/services/task-wrapper.service';
 })
 export class BootstrapCreateModalComponent
   extends BaseModal
-  implements OnDestroy, OnInit, AfterViewInit {
+  implements OnDestroy, OnInit, AfterViewInit
+{
   pools: any[] = [];
   token: string;
 
index 5893c72414afc339101416232bcf451a7fb229a7..d2e532526c553c31cde32b1701a8a3c9f01c8301 100644 (file)
@@ -9,15 +9,13 @@ describe('NvmeGatewayViewComponent', () => {
   let component: NvmeGatewayViewComponent;
   let fixture: ComponentFixture<NvmeGatewayViewComponent>;
 
-  beforeEach(
-    waitForAsync(() => {
-      TestBed.configureTestingModule({
-        declarations: [NvmeGatewayViewComponent],
-        imports: [RouterTestingModule, SideNavModule, ThemeModule],
-        schemas: [CUSTOM_ELEMENTS_SCHEMA]
-      }).compileComponents();
-    })
-  );
+  beforeEach(waitForAsync(() => {
+    TestBed.configureTestingModule({
+      declarations: [NvmeGatewayViewComponent],
+      imports: [RouterTestingModule, SideNavModule, ThemeModule],
+      schemas: [CUSTOM_ELEMENTS_SCHEMA]
+    }).compileComponents();
+  }));
 
   beforeEach(() => {
     fixture = TestBed.createComponent(NvmeGatewayViewComponent);
index 7e6c5cba673025ded188dedfa690017bfce6dad9..c1c216825a269c0669292ba58346cb0b2ce92c13 100644 (file)
@@ -20,16 +20,14 @@ describe('NvmeSubsystemViewComponent', () => {
     queryParams: of(mockQueryParams)
   };
 
-  beforeEach(
-    waitForAsync(() => {
-      TestBed.configureTestingModule({
-        declarations: [NvmeSubsystemViewComponent],
-        imports: [RouterTestingModule, HttpClientTestingModule],
-        providers: [{ provide: ActivatedRoute, useValue: mockActivatedRoute }],
-        schemas: [CUSTOM_ELEMENTS_SCHEMA]
-      }).compileComponents();
-    })
-  );
+  beforeEach(waitForAsync(() => {
+    TestBed.configureTestingModule({
+      declarations: [NvmeSubsystemViewComponent],
+      imports: [RouterTestingModule, HttpClientTestingModule],
+      providers: [{ provide: ActivatedRoute, useValue: mockActivatedRoute }],
+      schemas: [CUSTOM_ELEMENTS_SCHEMA]
+    }).compileComponents();
+  }));
 
   beforeEach(() => {
     fixture = TestBed.createComponent(NvmeSubsystemViewComponent);
index a60fe0d3e81b0b2b4e19234b5129350fde8cbfa7..d5979b9658e28f7eec69b067128e92bfc47fc245 100644 (file)
@@ -21,10 +21,9 @@ import { NvmeofSubsystemsStepThreeComponent } from '../nvmeof-subsystems-form/nv
 describe('NvmeofEditAuthenticationComponent', () => {
   let component: NvmeofEditAuthenticationComponent;
   let fixture: ComponentFixture<NvmeofEditAuthenticationComponent>;
-  let nvmeofService: jest.Mocked<Pick<
-    NvmeofService,
-    'getInitiators' | 'getSubsystem' | 'updateAuthenticationKey'
-  >>;
+  let nvmeofService: jest.Mocked<
+    Pick<NvmeofService, 'getInitiators' | 'getSubsystem' | 'updateAuthenticationKey'>
+  >;
   let notificationService: { show: jest.Mock };
   let modalService: { dismissAll: jest.Mock };
 
@@ -36,38 +35,36 @@ describe('NvmeofEditAuthenticationComponent', () => {
   ];
   const mockHostsWithKey = [{ nqn: 'nqn.2014-08.org.nvmexpress:uuid:host-1', use_dhchap: true }];
 
-  beforeEach(
-    waitForAsync(() => {
-      nvmeofService = {
-        getInitiators: jest.fn().mockReturnValue(of([])),
-        getSubsystem: jest.fn().mockReturnValue(of({ has_dhchap_key: false })),
-        updateAuthenticationKey: jest.fn().mockReturnValue(of(undefined))
-      };
-      notificationService = { show: jest.fn() };
-      modalService = { dismissAll: jest.fn() };
-
-      TestBed.configureTestingModule({
-        declarations: [NvmeofEditAuthenticationComponent, NvmeofSubsystemsStepThreeComponent],
-        imports: [
-          ReactiveFormsModule,
-          HttpClientTestingModule,
-          RouterTestingModule,
-          SharedModule,
-          GridModule,
-          InputModule,
-          RadioModule,
-          TagModule
-        ],
-        providers: [
-          { provide: NvmeofService, useValue: nvmeofService },
-          { provide: NotificationService, useValue: notificationService },
-          { provide: ModalCdsService, useValue: modalService },
-          { provide: SUBSYSTEM_NQN_TOKEN, useValue: mockSubsystemNQN },
-          { provide: GROUP_NAME_TOKEN, useValue: mockGroupName }
-        ]
-      }).compileComponents();
-    })
-  );
+  beforeEach(waitForAsync(() => {
+    nvmeofService = {
+      getInitiators: jest.fn().mockReturnValue(of([])),
+      getSubsystem: jest.fn().mockReturnValue(of({ has_dhchap_key: false })),
+      updateAuthenticationKey: jest.fn().mockReturnValue(of(undefined))
+    };
+    notificationService = { show: jest.fn() };
+    modalService = { dismissAll: jest.fn() };
+
+    TestBed.configureTestingModule({
+      declarations: [NvmeofEditAuthenticationComponent, NvmeofSubsystemsStepThreeComponent],
+      imports: [
+        ReactiveFormsModule,
+        HttpClientTestingModule,
+        RouterTestingModule,
+        SharedModule,
+        GridModule,
+        InputModule,
+        RadioModule,
+        TagModule
+      ],
+      providers: [
+        { provide: NvmeofService, useValue: nvmeofService },
+        { provide: NotificationService, useValue: notificationService },
+        { provide: ModalCdsService, useValue: modalService },
+        { provide: SUBSYSTEM_NQN_TOKEN, useValue: mockSubsystemNQN },
+        { provide: GROUP_NAME_TOKEN, useValue: mockGroupName }
+      ]
+    }).compileComponents();
+  }));
 
   beforeEach(() => {
     fixture = TestBed.createComponent(NvmeofEditAuthenticationComponent);
index 6a497e36cc3aa699476023be15ff6c23e24826f0..6fd5cd2a454b748630200801c8cf0982d22310a1 100644 (file)
@@ -29,22 +29,20 @@ describe('NvmeofEditHostKeyModalComponent', () => {
     wrapTaskAroundCall: jasmine.createSpy('wrapTaskAroundCall').and.callFake(({ call }) => call)
   };
 
-  beforeEach(
-    waitForAsync(() => {
-      TestBed.configureTestingModule({
-        declarations: [NvmeofEditHostKeyModalComponent],
-        imports: [ReactiveFormsModule, HttpClientTestingModule, RouterTestingModule, SharedModule],
-        providers: [
-          { provide: NvmeofService, useValue: nvmeofServiceSpy },
-          { provide: TaskWrapperService, useValue: taskWrapperServiceSpy },
-          { provide: 'subsystemNQN', useValue: mockSubsystemNQN },
-          { provide: 'hostNQN', useValue: mockHostNQN },
-          { provide: 'group', useValue: mockGroup },
-          { provide: 'dhchapKey', useValue: '' }
-        ]
-      }).compileComponents();
-    })
-  );
+  beforeEach(waitForAsync(() => {
+    TestBed.configureTestingModule({
+      declarations: [NvmeofEditHostKeyModalComponent],
+      imports: [ReactiveFormsModule, HttpClientTestingModule, RouterTestingModule, SharedModule],
+      providers: [
+        { provide: NvmeofService, useValue: nvmeofServiceSpy },
+        { provide: TaskWrapperService, useValue: taskWrapperServiceSpy },
+        { provide: 'subsystemNQN', useValue: mockSubsystemNQN },
+        { provide: 'hostNQN', useValue: mockHostNQN },
+        { provide: 'group', useValue: mockGroup },
+        { provide: 'dhchapKey', useValue: '' }
+      ]
+    }).compileComponents();
+  }));
 
   beforeEach(() => {
     fixture = TestBed.createComponent(NvmeofEditHostKeyModalComponent);
index de6732de69ea24d6584ec13d8fe8337fb533f9bf..65c48edd367d47592c4b579b3cccfdf7c50694ef 100644 (file)
@@ -36,7 +36,10 @@ export class NvmeofGatewaySubsystemComponent implements OnInit {
   authType = NvmeofSubsystemAuthType;
   emptyStateImage = EMPTY_STATE_IMAGE;
 
-  constructor(private nvmeofService: NvmeofService, private route: ActivatedRoute) {}
+  constructor(
+    private nvmeofService: NvmeofService,
+    private route: ActivatedRoute
+  ) {}
 
   ngOnInit(): void {
     this.columns = [
index 789054cc746019f6d713e2ab513309d545ee46aa..1f16cf609eb4e3801ee68d7e8ff158a80544b2d7 100644 (file)
@@ -133,8 +133,8 @@ export class NvmeofInitiatorsFormComponent implements OnInit {
         this.tearsheet?.getStepIndexByLabel(STEP_LABELS.HOSTS) ?? 0,
         0
       );
-      const hostStepForm = this.tearsheet?.stepContents?.toArray()?.[hostStepIndex]?.stepComponent
-        ?.formGroup;
+      const hostStepForm =
+        this.tearsheet?.stepContents?.toArray()?.[hostStepIndex]?.stepComponent?.formGroup;
 
       hostStepForm?.markAllAsTouched();
       hostStepForm?.get('hostname')?.markAsTouched();
index 57c3aaa913c7cd13cea49bfbc4e320484a510827..b5b8fb266470f00dd8cede9dde41a54830a1b05d 100644 (file)
@@ -178,7 +178,7 @@ export class NvmeofNamespacesFormComponent implements OnInit {
     this.nvmeofService.listNamespaces(this.group).subscribe((response: any) => {
       const namespaces: NvmeofSubsystemNamespace[] = Array.isArray(response)
         ? response
-        : response?.namespaces ?? [];
+        : (response?.namespaces ?? []);
       this.usedRbdImages = namespaces.reduce((map, ns) => {
         if (!map.has(ns.rbd_pool_name)) {
           map.set(ns.rbd_pool_name, new Set<string>());
index 55c2dee59378c2d792e1d20196c6d65e16627083..285b83069e74c951af9037b133b6808df9a77d34 100644 (file)
@@ -62,7 +62,6 @@
                 </a>
               </div>
             </div>
-
           } @else if (detail.type === 'listeners') {
             <div
               cdsCol
@@ -82,7 +81,6 @@
               </div>
               <span class="cds--type-label-02">{{ detail.value }}</span>
             </div>
-
           } @else if (detail.type === 'host-access') {
             <div
               cdsCol
index 84e1abee4a8dd7b237812776094c033dc84ec81a..8a414db1ef51622e7edfdfddfcfe7e477b3229f0 100644 (file)
@@ -87,8 +87,7 @@ export class NvmeofSubsystemOverviewComponent implements OnInit, OnDestroy {
     }).subscribe(({ subsystem, initiators }) => {
       this.subsystem = subsystem as NvmeofSubsystem;
       const initiatorList = initiators as
-        | NvmeofSubsystemInitiator[]
-        | { hosts?: NvmeofSubsystemInitiator[] };
+        NvmeofSubsystemInitiator[] | { hosts?: NvmeofSubsystemInitiator[] };
       this.buildDetails(getSubsystemAuthStatus(this.subsystem, initiatorList));
     });
   }
index e54087c7bcb946042ddbf371c4d28d0214d9a2bb..2f0fb0195d118db998e18b3f8f8d98676d60b2d3 100644 (file)
@@ -14,7 +14,10 @@ export class NvmeofSubsystemPerformanceComponent implements OnInit {
   groupName: string;
   permissions: Permissions;
 
-  constructor(private route: ActivatedRoute, private authStorageService: AuthStorageService) {
+  constructor(
+    private route: ActivatedRoute,
+    private authStorageService: AuthStorageService
+  ) {
     this.permissions = this.authStorageService.getPermissions();
   }
 
index 8894178b9d6d1ea94ad7a405ec77e183edf7ef44..09ae0a6473e003a10f4098771be9248086868053 100644 (file)
@@ -46,8 +46,10 @@ export class NvmeofSubsystemsStepOneComponent implements OnInit, TearsheetStep {
   ) {}
 
   DEFAULT_NQN = 'nqn.2001-07.com.ceph:' + Date.now();
-  NQN_REGEX = /^nqn\.(19|20)\d\d-(0[1-9]|1[0-2])\.\D{2,3}(\.[A-Za-z0-9-]+)+(:[A-Za-z0-9-\.]+(:[A-Za-z0-9-\.]+)*)$/;
-  NQN_REGEX_UUID = /^nqn\.2014-08\.org\.nvmexpress:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
+  NQN_REGEX =
+    /^nqn\.(19|20)\d\d-(0[1-9]|1[0-2])\.\D{2,3}(\.[A-Za-z0-9-]+)+(:[A-Za-z0-9-\.]+(:[A-Za-z0-9-\.]+)*)$/;
+  NQN_REGEX_UUID =
+    /^nqn\.2014-08\.org\.nvmexpress:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
 
   customNQNValidator = CdValidators.custom(
     'nqnPattern',
index 3829ed3d201956fdc4a7a8b372edc4bd9752c14b..70420ec7d1fba6ed985d62264ecd3b0a9328fbbb 100644 (file)
@@ -35,8 +35,10 @@ export class NvmeofSubsystemsStepTwoComponent implements OnInit, TearsheetStep {
   addedHostsLength: number = 0;
   csvUploadError = '';
   csvDropText: string = $localize`Drag and drop files here or click to upload`;
-  NQN_REGEX = /^nqn\.(19|20)\d\d-(0[1-9]|1[0-2])\.\D{2,3}(\.[A-Za-z0-9-]+)+(:[A-Za-z0-9-\.]+(:[A-Za-z0-9-\.]+)*)$/;
-  NQN_REGEX_UUID = /^nqn\.2014-08\.org\.nvmexpress:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
+  NQN_REGEX =
+    /^nqn\.(19|20)\d\d-(0[1-9]|1[0-2])\.\D{2,3}(\.[A-Za-z0-9-]+)+(:[A-Za-z0-9-\.]+(:[A-Za-z0-9-\.]+)*)$/;
+  NQN_REGEX_UUID =
+    /^nqn\.2014-08\.org\.nvmexpress:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
   uploadedHosts = new Set<string>();
 
   constructor(
index 1a3d2c11449e425c6aba81f13f26bb2d580a7ed9..d827e35c882a729bdb820014689fc4da2e1b99fa 100644 (file)
@@ -26,7 +26,10 @@ export class NvmeofSubsystemsStepFourComponent implements OnInit, TearsheetStep
   HOST_TYPE = HOST_TYPE;
   AUTHENTICATION = AUTHENTICATION;
 
-  constructor(public actionLabels: ActionLabelsI18n, public activeModal: NgbActiveModal) {}
+  constructor(
+    public actionLabels: ActionLabelsI18n,
+    public activeModal: NgbActiveModal
+  ) {}
 
   ngOnInit() {
     this.formGroup = new CdFormGroup({});
index 29a37b3b75215acad113d243f1a3f75bcc3b037c..f42b5dcaf4f2436609fb397f3ce751cd1fc2c92b 100644 (file)
@@ -114,7 +114,7 @@ describe('RbdFormComponent', () => {
         flags_names,
         application_metadata,
         type
-      } as Pool);
+      }) as Pool;
 
     beforeEach(() => {
       createAction = spyOn(component, 'createAction').and.returnValue(of(null));
@@ -133,7 +133,7 @@ describe('RbdFormComponent', () => {
       ];
       spyOn(TestBed.inject(PoolService), 'list').and.callFake(() => of(mock.pools));
       rbdServiceGetSpy = spyOn(TestBed.inject(RbdService), 'get');
-      mock.rbd = ({ pool_name: 'foo', pool_image: 'bar' } as any) as RbdFormResponseModel;
+      mock.rbd = { pool_name: 'foo', pool_image: 'bar' } as any as RbdFormResponseModel;
       rbdServiceGetSpy.and.returnValue(of(mock.rbd));
       component.mode = undefined;
     });
@@ -487,8 +487,9 @@ describe('RbdFormComponent', () => {
         const journal = fixture.debugElement.query(By.css('#journal')).nativeElement;
         journal.click();
         fixture.detectChanges();
-        const exclusiveLocks = fixture.debugElement.query(By.css('#exclusive-lock_input'))
-          .nativeElement;
+        const exclusiveLocks = fixture.debugElement.query(
+          By.css('#exclusive-lock_input')
+        ).nativeElement;
         expect(exclusiveLocks.checked).toBe(true);
         expect(exclusiveLocks.disabled).toBe(true);
       });
index bdeefe34b4da00dfc24189befa624507f0a4d3b5..056ad5eda53c712263a72d8829f6c524d0b9ed88 100644 (file)
@@ -48,10 +48,10 @@ describe('RbdSnapshotFormModalComponent', () => {
     fixture.detectChanges();
 
     const header = fixture.debugElement.nativeElement.querySelector('cds-modal-header h3');
-    expect(header.textContent).toBe('Create RBD Snapshot');
+    expect(header.textContent.trim()).toBe('Create RBD Snapshot');
 
     const button = fixture.debugElement.nativeElement.querySelector('cd-submit-button');
-    expect(button.textContent).toBe('Create RBD Snapshot');
+    expect(button.textContent.trim()).toBe('Create RBD Snapshot');
   });
 
   it('should show "Rename" text', () => {
@@ -60,10 +60,10 @@ describe('RbdSnapshotFormModalComponent', () => {
     fixture.detectChanges();
 
     const header = fixture.debugElement.nativeElement.querySelector('cds-modal-header h3');
-    expect(header.textContent).toBe('Rename RBD Snapshot');
+    expect(header.textContent.trim()).toBe('Rename RBD Snapshot');
 
     const button = fixture.debugElement.nativeElement.querySelector('cd-submit-button');
-    expect(button.textContent).toBe('Rename RBD Snapshot');
+    expect(button.textContent.trim()).toBe('Rename RBD Snapshot');
   });
 
   it('should enable the mirror image snapshot creation when peer is configured', () => {
index 80dd7560dc27d0a696c3f68d70f447a4865ea930..9b9545d81ce513ed7c7069e544cf4b9632cd5024 100644 (file)
@@ -33,7 +33,10 @@ export class CephfsDetailComponent implements OnChanges, OnInit {
 
   objectValues = Object.values;
 
-  constructor(private dimlessBinary: DimlessBinaryPipe, private dimless: DimlessPipe) {}
+  constructor(
+    private dimlessBinary: DimlessBinaryPipe,
+    private dimless: DimlessPipe
+  ) {}
 
   ngOnChanges() {
     this.setStandbys();
index 82d6bf2caad30f31d1c2dbe5acfec41b79bde109..c31e2af2a25baa168d694ef9ba7ac1bae42fc736 100644 (file)
@@ -499,8 +499,8 @@ export class CephfsDirectoriesComponent implements OnInit, OnChanges {
       this.selectedDir.quotas[key] === 0
         ? this.actionLabels.SET
         : values[key] === 0
-        ? this.actionLabels.UNSET
-        : $localize`Updated`;
+          ? this.actionLabels.UNSET
+          : $localize`Updated`;
     this.cephfsService.quota(this.id, path, values).subscribe(() => {
       if (onSuccess) {
         onSuccess();
index d22fb82c2c3901817319b418cc0b270effd946d0..54611bed9b0c036abeaff97d380bbefdab9ed477 100644 (file)
@@ -82,9 +82,8 @@ export class CephfsFilesystemSelectorComponent implements OnInit {
         if (!listResponse?.length) {
           return of([]);
         }
-        const detailRequests = listResponse.map(
-          (fs): Observable<CephfsDetail | null> =>
-            this.cephfsService.getCephfs(fs.id).pipe(catchError(() => of(null)))
+        const detailRequests = listResponse.map((fs): Observable<CephfsDetail | null> =>
+          this.cephfsService.getCephfs(fs.id).pipe(catchError(() => of(null)))
         );
         return forkJoin(detailRequests).pipe(
           map((details: Array<CephfsDetail | null>) =>
index 67397af8de5d198d65fa907ed076412c63a82c98..6406f138effb4496ff0736e972149947cb7749d1 100644 (file)
@@ -25,15 +25,15 @@ describe('CephfsMirroringWizardComponent', () => {
   ];
 
   beforeEach(async () => {
-    wizardStepsService = ({
+    wizardStepsService = {
       setTotalSteps: jest.fn(),
       setCurrentStep: jest.fn(),
       steps$: new BehaviorSubject<WizardStepModel[]>(mockSteps)
-    } as unknown) as jest.Mocked<WizardStepsService>;
+    } as unknown as jest.Mocked<WizardStepsService>;
 
-    router = ({
+    router = {
       navigate: jest.fn()
-    } as unknown) as jest.Mocked<Router>;
+    } as unknown as jest.Mocked<Router>;
 
     await TestBed.configureTestingModule({
       imports: [ReactiveFormsModule, RadioModule],
index 91a6deb95d8600023f3fb1b0e8b8db1a069f849a..9f5951277a6d1b300b9056c8c32df6163ec09584 100644 (file)
@@ -187,9 +187,10 @@ export class CephfsSnapshotscheduleFormComponent extends CdForm implements OnIni
         // retention policies
         schedule.retention &&
           Object.entries(schedule.retention).forEach(([frequency, interval], idx) => {
-            const freqKey = Object.keys(RetentionFrequency)[
-              Object.values(RetentionFrequency).indexOf(frequency as any)
-            ];
+            const freqKey =
+              Object.keys(RetentionFrequency)[
+                Object.values(RetentionFrequency).indexOf(frequency as any)
+              ];
             this.retentionPolicies.push(
               new FormGroup({
                 retentionInterval: new FormControl(interval),
@@ -284,9 +285,9 @@ export class CephfsSnapshotscheduleFormComponent extends CdForm implements OnIni
         const values = this.snapScheduleForm.value as SnapshotScheduleFormValue;
 
         if (this.isEdit) {
-          const retentionPoliciesToAdd = (this.snapScheduleForm.get(
-            'retentionPolicies'
-          ) as FormArray).controls
+          const retentionPoliciesToAdd = (
+            this.snapScheduleForm.get('retentionPolicies') as FormArray
+          ).controls
             ?.filter(
               (ctrl) =>
                 !ctrl.get('retentionInterval').disabled && !ctrl.get('retentionFrequency').disabled
index 6cb73db368e4c559747a7d35d0d31f6e14b4dfbc..e940ddf83bb25e76102514da8da8a1db11787b3d 100644 (file)
@@ -37,7 +37,8 @@ import { ModalCdsService } from '~/app/shared/services/modal-cds.service';
 })
 export class CephfsSnapshotscheduleListComponent
   extends CdForm
-  implements OnInit, OnChanges, OnDestroy {
+  implements OnInit, OnChanges, OnDestroy
+{
   @Input() fsName!: string;
   @Input() id!: number;
 
index 813d64e53100944d80cac000183b608ec98266c6..f1b5dd23c038ac12edb7c7dd1305d47fbffd8c8c 100644 (file)
@@ -129,8 +129,9 @@ export class CephfsSubvolumeFormComponent extends CdForm implements OnInit {
 
   private isSnapshotVisibilityEnabled(option?: ConfigFormModel) {
     const values = option?.value ?? [];
-    const clientValue = values.find((entry) => entry.section === SNAPSHOT_VISIBILITY_CONFIG_SECTION)
-      ?.value;
+    const clientValue = values.find(
+      (entry) => entry.section === SNAPSHOT_VISIBILITY_CONFIG_SECTION
+    )?.value;
     return String(clientValue).toLowerCase() === 'true';
   }
 
index 7ee0b057494247c5492f4d0867031d6ed714c1e7..3ea00bc18371fc3cbcd5ea2fc93be00131927eb0 100644 (file)
@@ -125,7 +125,7 @@ describe('CreateClusterComponent', () => {
     stepFixture.detectChanges();
     const skipBtn = stepFixture.debugElement.query(By.css('#skipStepBtn')).nativeElement;
     expect(skipBtn).not.toBe(null);
-    expect(skipBtn.innerHTML).toBe('Skip');
+    expect(skipBtn.textContent.trim()).toBe('Skip');
   });
 
   it('should skip the Create OSDs step', () => {
index a75b6766b0cef81a9d87021459325407872ddcbb..b18d10387fdc37d1ae8dca38b4a1139e39bf8c45 100644 (file)
@@ -34,7 +34,7 @@ describe('CrushmapComponent', () => {
 
   it('should display right title', () => {
     const span = debugElement.nativeElement.querySelector('.card-header');
-    expect(span.textContent).toBe('CRUSH map viewer');
+    expect(span.textContent.trim()).toBe('CRUSH map viewer');
   });
 
   it('should display "No nodes!" if ceph tree nodes is empty array', fakeAsync(() => {
index 716576798ae8332e6b2978da85b15a9df2db65bd..296806be5d9e2fb800875632c590c5bd41b5efd9 100644 (file)
@@ -52,7 +52,10 @@ export class CrushmapComponent implements OnDestroy, OnInit {
   metadataKeyMap: { [key: number]: any } = {};
   data$: Observable<object>;
 
-  constructor(private crushRuleService: CrushRuleService, private timerService: TimerService) {}
+  constructor(
+    private crushRuleService: CrushRuleService,
+    private timerService: TimerService
+  ) {}
 
   ngOnInit() {
     this.sub = this.timerService
index 9384acdca68e74deb7b8875c3e8b9170d10c3ff2..28a7602e13320684bbbccd078225fec2c0cb6231 100644 (file)
@@ -19,7 +19,10 @@ export class HostDetailsComponent implements OnInit, OnDestroy {
   hostname = '';
   sidebarItems: SidebarItem[] = [];
 
-  constructor(private route: ActivatedRoute, private authStorageService: AuthStorageService) {}
+  constructor(
+    private route: ActivatedRoute,
+    private authStorageService: AuthStorageService
+  ) {}
 
   ngOnInit(): void {
     const permissions = this.authStorageService.getPermissions();
index dcd232d9a7fd32faa79e4fcc56f34877414b0253..cb87db30c4b167ef9573c7aed0dd4271fa50e8d9 100644 (file)
@@ -446,9 +446,8 @@ export class MultiClusterComponent implements OnInit, OnDestroy {
                     (errorEntry) => errorEntry.url === clusterDetails.url
                   );
                   if (errorIndex !== -1) {
-                    this.prometheusConnectionErrors[
-                      errorIndex
-                    ].reconnectionError = reconnectionError;
+                    this.prometheusConnectionErrors[errorIndex].reconnectionError =
+                      reconnectionError;
                   }
                 },
                 next: (response: any) => {
index 97ec8c7b3f4ce225dfbd390fb10f424fd0622dbf..a00b68981159e07e168216dfb2e5a47708047e41 100644 (file)
@@ -23,7 +23,10 @@ export class OsdDetailsComponent implements OnChanges {
   };
   grafanaPermission: Permission;
 
-  constructor(private osdService: OsdService, private authStorageService: AuthStorageService) {
+  constructor(
+    private osdService: OsdService,
+    private authStorageService: AuthStorageService
+  ) {
     this.grafanaPermission = this.authStorageService.getPermissions().grafana;
   }
 
index 21f3b36dea5d3d14db0ba572f5e2daf8c110aa40..a021853e16c25f85c20416d5759b6e1783e35ef7 100644 (file)
@@ -517,13 +517,7 @@ describe('OsdListComponent', () => {
     const expectOsdServiceMethodCalled = (
       actionName: string,
       osdServiceMethodName:
-        | 'markOut'
-        | 'markIn'
-        | 'markDown'
-        | 'markLost'
-        | 'purge'
-        | 'destroy'
-        | 'delete'
+        'markOut' | 'markIn' | 'markDown' | 'markLost' | 'purge' | 'destroy' | 'delete'
     ): void => {
       const osdServiceSpy = spyOn(osdService, osdServiceMethodName).and.callFake(() => EMPTY);
       openActionModal(actionName);
index 1e213685305d51b47148808619ecff33789bc946..7cdd9abb7b2d3a23b2854dc54d7df177b78e25a1 100644 (file)
@@ -62,7 +62,8 @@ export class ServiceFormComponent extends CdForm implements OnInit {
   readonly SNMP_ENGINE_ID_PATTERN = /^[0-9A-Fa-f]{10,64}/g;
   readonly INGRESS_SUPPORTED_SERVICE_TYPES = ['rgw', 'nfs'];
   readonly SMB_CONFIG_URI_PATTERN = /^(http:|https:|rados:|rados:mon-config-key:)/;
-  readonly OAUTH2_ISSUER_URL_PATTERN = /^(https?:\/\/)?([a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+)(:[0-9]{1,5})?(\/.*)?$/;
+  readonly OAUTH2_ISSUER_URL_PATTERN =
+    /^(https?:\/\/)?([a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+)(:[0-9]{1,5})?(\/.*)?$/;
   readonly SSL_CIPHERS_PATTERN = /^[a-zA-Z0-9\-:]+$/;
   readonly DEFAULT_SSL_PROTOCOL_ITEM = [{ content: 'TLSv1.3', selected: true }];
   @ViewChild(NgbTypeahead, { static: false })
index 89ba7e0618703a77f93a1bb11f9c2520c8e50d6b..e77e3b5d7676aaba6ddcc46038d5b6e1d94c7b7f 100644 (file)
@@ -116,9 +116,8 @@ describe('UpgradeComponent', () => {
     upgradeInfoSpy.and.returnValue(of(upgradeInfoPayload));
     component.ngOnInit();
     fixture.detectChanges();
-    const noUpgradesSpan = fixture.debugElement.nativeElement.querySelector(
-      '#no-upgrades-available'
-    );
+    const noUpgradesSpan =
+      fixture.debugElement.nativeElement.querySelector('#no-upgrades-available');
     expect(noUpgradesSpan.textContent).toBe(' Cluster is up-to-date ');
   });
 
index 93f4fbb25a11e7bc61f0a626f1074ea6aea62e99..e8082ef1fdc2d03caf5f846d843eb318823ab0a0 100644 (file)
@@ -57,7 +57,10 @@ export class DashboardPieComponent implements OnChanges, OnInit {
     }
   ];
 
-  constructor(private cssHelper: CssHelper, private dimlessBinary: DimlessBinaryPipe) {
+  constructor(
+    private cssHelper: CssHelper,
+    private dimlessBinary: DimlessBinaryPipe
+  ) {
     this.chartConfig = {
       chartType: 'doughnut',
       labels: [],
index bb64ce3af95f2f2182a2456570593b08e698dfd2..e8a5ada4bfc013add95f604096075e8a167bd791 100644 (file)
@@ -222,8 +222,8 @@ describe('NfsFormComponent', () => {
 
   describe('pathExistence', () => {
     beforeEach(() => {
-      component['nfsService']['lsDir'] = jest.fn(
-        (): Observable<Directory> => of({ paths: ['/path1'] })
+      component['nfsService']['lsDir'] = jest.fn((): Observable<Directory> =>
+        of({ paths: ['/path1'] })
       );
       component.nfsForm.get('name').setValue('CEPH');
       component.setPathValidation();
index b4cd2840fdca7e60a0d7e7473d6a2b2e0f9ba9ba..5b214b873f93d51ac1c443ce47438ceefa1b34b5 100644 (file)
@@ -498,8 +498,9 @@ export class NfsFormComponent extends CdForm implements OnInit {
         )
         .subscribe({
           error: (error) => {
-            const fsalDescr = this.nfsService.nfsFsal.find((f) => f.value === this.storageBackend)
-              .descr;
+            const fsalDescr = this.nfsService.nfsFsal.find(
+              (f) => f.value === this.storageBackend
+            ).descr;
             this.storageBackendError = $localize`${fsalDescr} backend is not available. ${error}`;
           }
         });
index 4200b2f2b2e4bd71639e4e61294265e9d4a2fcca..903044d9abd32427d75c9827be6676d2be2672e0 100644 (file)
@@ -72,8 +72,8 @@ export class OverviewAlertsCardComponent implements OnInit {
       const icon = !hasAlerts
         ? AlertIcon.success
         : hasCritical
-        ? AlertIcon.error
-        : AlertIcon.warning;
+          ? AlertIcon.error
+          : AlertIcon.warning;
 
       const statusText = hasAlerts ? $localize`Need attention` : $localize`No active alerts`;
 
index 3ed8e7df2bb6f5e469b346b59fdd7929664a7ba6..b4900c5080b5a5755d0e8290fcb8825fd24712ce 100644 (file)
@@ -69,20 +69,13 @@ describe('ErasureCodeProfileFormModalComponent', () => {
        */
       nodes: [
         // Root node
-        Mocks.getCrushNode('default', -1, 'root', 11, [
-          -2,
-          -3,
-          -6,
-          -7,
-          -8,
-          -9,
-          -10,
-          -11,
-          -12,
-          -13,
-          -14,
-          -15
-        ]),
+        Mocks.getCrushNode(
+          'default',
+          -1,
+          'root',
+          11,
+          [-2, -3, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15]
+        ),
         // SSD host
         Mocks.getCrushNode('ssd-host', -2, 'host', 1, [1, 0, 2]),
         Mocks.getCrushNode('osd.0', 0, 'osd', 0, undefined, 'ssd'),
index 73df23f78c4f65f6d265af9fac2d8a846a30dd7d..448175b4553ed5a9670daba8159e468ddc8d76e6 100644 (file)
@@ -30,7 +30,8 @@ import { TaskWrapperService } from '~/app/shared/services/task-wrapper.service';
 })
 export class ErasureCodeProfileFormModalComponent
   extends CrushNodeSelectionClass
-  implements OnInit {
+  implements OnInit
+{
   @ViewChild(FormGroupDirective)
   formDir: FormGroupDirective;
 
index af791f8c927ca90eba6c0dd4fd6c19c933659fb8..c6779becfb27f434cf5bf808c02f35d88ec5555e 100644 (file)
@@ -1498,15 +1498,9 @@ describe('PoolFormComponent', () => {
           form.get(controlName).markAsPristine();
 
         beforeEach(() => {
-          [
-            'algorithm',
-            'maxBlobSize',
-            'minBlobSize',
-            'mode',
-            'pgNum',
-            'ratio',
-            'name'
-          ].forEach((name) => markControlAsPreviouslySet(name));
+          ['algorithm', 'maxBlobSize', 'minBlobSize', 'mode', 'pgNum', 'ratio', 'name'].forEach(
+            (name) => markControlAsPreviouslySet(name)
+          );
           fixture.detectChanges();
         });
 
index e888af4759ed78b1945437fbd7fa5d52b21b3796..74b9b17d7ee4a9bba807922092a32ceaeec2e199 100644 (file)
@@ -22,7 +22,10 @@ export class BucketTagModalComponent extends BaseModal {
   currentKeyTags: string[];
   storedKey: string;
 
-  constructor(private formBuilder: CdFormBuilder, public actionLabels: ActionLabelsI18n) {
+  constructor(
+    private formBuilder: CdFormBuilder,
+    public actionLabels: ActionLabelsI18n
+  ) {
     super();
     this.createForm();
   }
index ccb17bed8acfb7194cc34d5bc05f5bc021466e00..76bd9db986f0e321e8889517773f66506d1498fc 100644 (file)
@@ -19,7 +19,8 @@ import { NotificationService } from '~/app/shared/services/notification.service'
 })
 export class RgwMultisiteZonegroupDeletionFormComponent
   extends CdForm
-  implements OnInit, AfterViewInit {
+  implements OnInit, AfterViewInit
+{
   zonegroupData$: any;
   poolList$: any;
   zonesPools: Array<any> = [];
index bb9cb0143e0228e2e690d2d2737c7d3feec68664..de216e293db7db8afdfef1d1492f388445711a87 100644 (file)
@@ -226,7 +226,7 @@ export const STORAGE_CLASS_CONSTANTS = {
 
 export const DEFAULT_PLACEMENT = 'default-placement';
 
-export type TIER_TYPE = typeof TIER_TYPE[keyof typeof TIER_TYPE];
+export type TIER_TYPE = (typeof TIER_TYPE)[keyof typeof TIER_TYPE];
 
 export const TIER_TYPE_DISPLAY = {
   LOCAL: 'Local',
index a138b9d91a6f1b86b241b9250e679006634cb128..e8c04744be9096c8f7e9501dcd2311eca48d46d5 100644 (file)
@@ -28,7 +28,10 @@ export class RgwBucketDetailsComponent implements OnChanges {
   replicationData: RgwBucketReplication;
   bucketRateLimit: RgwRateLimitConfig;
 
-  constructor(private rgwBucketService: RgwBucketService, private cd: ChangeDetectorRef) {}
+  constructor(
+    private rgwBucketService: RgwBucketService,
+    private cd: ChangeDetectorRef
+  ) {}
 
   ngOnChanges() {
     this.updateBucketDetails(this.extraxtDetailsfromResponse.bind(this));
index 75a3e5d0dd6ce18e6e6c01d5401ea9cf200d87b4..ff9ed509c848147963b98a892b871dcc187c38e4 100644 (file)
@@ -93,9 +93,8 @@ describe('RgwBucketFormComponent', () => {
       expect(component.zonegroup).toBe(payload.zonegroup);
       const placementTargets = [];
       for (const placementTarget of payload['placement_targets']) {
-        placementTarget[
-          'description'
-        ] = `${placementTarget['name']} (pool: ${placementTarget['data_pool']})`;
+        placementTarget['description'] =
+          `${placementTarget['name']} (pool: ${placementTarget['data_pool']})`;
         placementTargets.push(placementTarget);
       }
       expect(component.placementTargets).toEqual(placementTargets);
@@ -166,9 +165,8 @@ describe('RgwBucketFormComponent', () => {
       });
       fixture.detectChanges();
       fixture.whenStable().then(() => {
-        const mfaTokenSerial = fixture.debugElement.nativeElement.querySelector(
-          '#mfa-token-serial'
-        );
+        const mfaTokenSerial =
+          fixture.debugElement.nativeElement.querySelector('#mfa-token-serial');
         const mfaTokenPin = fixture.debugElement.nativeElement.querySelector('#mfa-token-pin');
         if (expectedVisibility) {
           expect(mfaTokenSerial).toBeTruthy();
@@ -349,8 +347,9 @@ describe('RgwBucketFormComponent', () => {
     beforeEach(() => {
       component.loading = LoadingStatus.Ready;
       fixture.detectChanges();
-      childComponent = fixture.debugElement.query(By.directive(RgwRateLimitComponent))
-        .componentInstance;
+      childComponent = fixture.debugElement.query(
+        By.directive(RgwRateLimitComponent)
+      ).componentInstance;
     });
     it('Scenario 1: tenanted owner with tenanted bucket name', () => {
       const rateLimitSpy = spyOn(rgwBucketService, 'updateBucketRateLimit').and.returnValue(
index 6bfe176a6a082fea47e4ee4f0a8086786b0d5ec3..dff6fccae34284b8168ac4cbfd90da4e3a8b67e1 100644 (file)
@@ -52,7 +52,7 @@ describe('RgwBucketTieringFormComponent', () => {
     fixture = TestBed.createComponent(RgwBucketTieringFormComponent);
     component = fixture.componentInstance;
     fixture.detectChanges();
-    rgwBucketService = (TestBed.inject(RgwBucketService) as unknown) as MockRgwBucketService;
+    rgwBucketService = TestBed.inject(RgwBucketService) as unknown as MockRgwBucketService;
   });
 
   it('should create', () => {
index 20bc2a911b83a285608622f59e1da4cef23203e2..2714bf65942f361db4ddd047cab56f8a0e75f91d 100644 (file)
@@ -23,7 +23,8 @@ import { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators'
 })
 export class RgwMultisiteImportComponent implements OnInit {
   readonly endpoints = /^((https?:\/\/)|(www.))(?:([a-zA-Z]+)|(\d+\.\d+.\d+.\d+)):\d{2,4}$/;
-  readonly ipv4Rgx = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i;
+  readonly ipv4Rgx =
+    /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i;
   readonly ipv6Rgx = /^(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}$/i;
   @ViewChild(NgbTypeahead, { static: false })
   typeahead: NgbTypeahead;
index a991659e347ba5f94182d098b6787df7ca3f96b8..0af104c85e436765b30593369b4785a03f98a386 100644 (file)
@@ -50,7 +50,7 @@ describe('RgwMultisiteSyncFlowModalComponent', () => {
     }).compileComponents();
 
     fixture = TestBed.createComponent(RgwMultisiteSyncFlowModalComponent);
-    multisiteServiceMock = (TestBed.inject(RgwMultisiteService) as unknown) as MultisiteServiceMock;
+    multisiteServiceMock = TestBed.inject(RgwMultisiteService) as unknown as MultisiteServiceMock;
     component = fixture.componentInstance;
     component.groupType = FlowType.symmetrical;
     component.groupExpandedRow = { groupName: 'new', bucket: 'bucket1' };
index 83ec05914f6502130b326f46cedca0df5dfe47c1..d0b244332a8cac424cc13a5c4b6e3d2ce12fc8b7 100644 (file)
@@ -52,7 +52,7 @@ describe('RgwMultisiteSyncPipeModalComponent', () => {
     }).compileComponents();
 
     fixture = TestBed.createComponent(RgwMultisiteSyncPipeModalComponent);
-    multisiteServiceMock = (TestBed.inject(RgwMultisiteService) as unknown) as MultisiteServiceMock;
+    multisiteServiceMock = TestBed.inject(RgwMultisiteService) as unknown as MultisiteServiceMock;
     component = fixture.componentInstance;
     fixture.detectChanges();
   });
index 44e1131746dfa4ec4815d708902f44dd7ad3bac6..fd6ec99edd78caed1e901b86ebdf4fea4e49142d 100644 (file)
@@ -133,9 +133,10 @@ export class RgwMultisiteWizardComponent extends BaseModal implements OnInit {
         .flat()
         .filter((cluster) => cluster['url'] !== currentUrl);
       this.isMultiClusterConfigured = this.clusterDetailsArray.length > 0;
-      this.stepTitles = (this.isMultiClusterConfigured
-        ? STEP_TITLES_MULTI_CLUSTER_CONFIGURED
-        : STEP_TITLES_SINGLE_CLUSTER
+      this.stepTitles = (
+        this.isMultiClusterConfigured
+          ? STEP_TITLES_MULTI_CLUSTER_CONFIGURED
+          : STEP_TITLES_SINGLE_CLUSTER
       ).map((label, index) => ({
         label,
         onClick: () => (this.currentStep.stepIndex = index)
index 9f16d6b40d29aa9ae6e40173cc265a0813b29981..aac07b9f0dbb4185f6e2ff85ca88811f0a95b0b3 100644 (file)
@@ -58,7 +58,7 @@ describe('RgwNotificationFormComponent', () => {
 
     fixture = TestBed.createComponent(RgwNotificationFormComponent);
     component = fixture.componentInstance;
-    rgwBucketService = (TestBed.inject(RgwBucketService) as unknown) as MockRgwBucketService;
+    rgwBucketService = TestBed.inject(RgwBucketService) as unknown as MockRgwBucketService;
     fixture.detectChanges();
   });
 
@@ -66,7 +66,7 @@ describe('RgwNotificationFormComponent', () => {
     expect(component).toBeTruthy();
   });
   it('should call setNotification when submitting form', () => {
-    rgwBucketService = (TestBed.inject(RgwBucketService) as unknown) as MockRgwBucketService;
+    rgwBucketService = TestBed.inject(RgwBucketService) as unknown as MockRgwBucketService;
     component['notificationList'] = [];
     component.notificationForm.patchValue({
       id: 'notif-1',
index 3fde88d9c12a61109a579ebe1a69954a27883172..7a7bd3d549b43581f12e4272cc92311d675f0f32 100644 (file)
@@ -119,9 +119,8 @@ describe('RgwOverviewDashboardComponent', () => {
   });
 
   it('should render all cards', () => {
-    const productiveCards = fixture.debugElement.nativeElement.querySelectorAll(
-      'cd-productive-card'
-    );
+    const productiveCards =
+      fixture.debugElement.nativeElement.querySelectorAll('cd-productive-card');
     expect(productiveCards.length).toBe(3);
   });
 
index ae67b26770fb3aa41ca5a16c336014f9a18fae6e..9b8c46ef2d584a03d431254270fcbc35a6e5e6af 100644 (file)
@@ -309,7 +309,7 @@ export class RgwTopicFormComponent extends CdForm implements OnInit, AfterViewCh
 
     const defaults: typeof this.topicForm.value = _.clone(this.topicForm.value);
     const keys = Object.keys(this.topicForm.value) as (keyof typeof topic)[];
-    let value: Pick<typeof topic, typeof keys[number]> = _.pick(topic, keys);
+    let value: Pick<typeof topic, (typeof keys)[number]> = _.pick(topic, keys);
 
     value = _.merge(defaults, value);
     if (!this.owners.includes(value['owner'])) {
@@ -371,8 +371,8 @@ export class RgwTopicFormComponent extends CdForm implements OnInit, AfterViewCh
         urlObj.protocol === UrlProtocol.HTTPS
           ? URLPort.HTTPS
           : urlObj.protocol === UrlProtocol.HTTP
-          ? URLPort.HTTP
-          : '';
+            ? URLPort.HTTP
+            : '';
     }
     return port;
   }
index c138789b47304fbcabcf4e15105c1a1fc7f4cf5d..73031ea95184df1d83883fb0382c95d86a694c1c 100644 (file)
@@ -41,9 +41,9 @@ describe('RgwUserAccountsFormComponent', () => {
     }).compileComponents();
 
     fixture = TestBed.createComponent(RgwUserAccountsFormComponent);
-    rgwUserAccountsService = (TestBed.inject(
+    rgwUserAccountsService = TestBed.inject(
       RgwUserAccountsService
-    ) as unknown) as MockRgwUserAccountsService;
+    ) as unknown as MockRgwUserAccountsService;
     component = fixture.componentInstance;
     fixture.detectChanges();
   });
index 438e4af2f5ae6deef3b8e0c7503baa1bde8e67b7..23a1adb5053c70d798631d0917ea0815bbc73ab8 100644 (file)
@@ -30,7 +30,10 @@ export class RgwUserCapabilityModalComponent extends BaseModal {
   resource: string;
   action: string;
 
-  constructor(private formBuilder: CdFormBuilder, public actionLabels: ActionLabelsI18n) {
+  constructor(
+    private formBuilder: CdFormBuilder,
+    public actionLabels: ActionLabelsI18n
+  ) {
     super();
     this.resource = $localize`capability`;
     this.createForm();
index 4267f6c03b67ca6bebb3729fdffdfc0864d406dd..d26a67e42a5dac86e8853e0899148f7d64596b3d 100644 (file)
@@ -39,14 +39,14 @@ describe('RgwUserDetailsComponent', () => {
     const detailsTab = fixture.debugElement.nativeElement.querySelectorAll(
       '.cds--data-table--sort.cds--data-table--no-border tr td'
     );
-    expect(detailsTab[10].textContent).toEqual('System user');
-    expect(detailsTab[11].textContent).toEqual('Yes');
+    expect(detailsTab[10].textContent.trim()).toEqual('System user');
+    expect(detailsTab[11].textContent.trim()).toEqual('Yes');
 
     component.selection.system = false;
     component.ngOnChanges();
     fixture.detectChanges();
 
-    expect(detailsTab[11].textContent).toEqual('No');
+    expect(detailsTab[11].textContent.trim()).toEqual('No');
   });
 
   it('should show mfa ids only if length > 0', () => {
@@ -67,8 +67,8 @@ describe('RgwUserDetailsComponent', () => {
     const detailsTab = fixture.debugElement.nativeElement.querySelectorAll(
       '.cds--data-table--sort.cds--data-table--no-border tr td'
     );
-    expect(detailsTab[16].textContent).toEqual('MFAs(Id)');
-    expect(detailsTab[17].textContent).toEqual('testMFA1, testMFA2');
+    expect(detailsTab[16].textContent.trim()).toEqual('MFAs(Id)');
+    expect(detailsTab[17].textContent.trim()).toEqual('testMFA1, testMFA2');
   });
   it('should test updateKeysSelection', () => {
     component.selection = {
index 959b4cea86506d9562f72c80ee4759f1cd32fdbb..4932911ca614b9c69265b1c4bad2dfb469354a3c 100644 (file)
@@ -44,7 +44,10 @@ export class RgwUserDetailsComponent implements OnChanges, OnInit {
 
   icons = Icons;
 
-  constructor(private rgwUserService: RgwUserService, private cdsModalService: ModalCdsService) {}
+  constructor(
+    private rgwUserService: RgwUserService,
+    private cdsModalService: ModalCdsService
+  ) {}
 
   ngOnInit() {
     this.keysColumns = [
index b93adfae1755a61d8a53167d976ca5db28578f27..ca0f88cbcd4a2abc4b5f7299d62bc5d08ea4a08f 100644 (file)
@@ -213,8 +213,9 @@ describe('RgwUserFormComponent', () => {
     beforeEach(() => {
       component.loading = LoadingStatus.Ready;
       fixture.detectChanges();
-      childComponent = fixture.debugElement.query(By.directive(RgwRateLimitComponent))
-        .componentInstance;
+      childComponent = fixture.debugElement.query(
+        By.directive(RgwRateLimitComponent)
+      ).componentInstance;
     });
     it('disable creation (create)', () => {
       spyOn(rgwUserService, 'create');
@@ -334,8 +335,9 @@ describe('RgwUserFormComponent', () => {
       notificationService = TestBed.inject(NotificationService);
       spyOn(notificationService, 'show');
       fixture.detectChanges();
-      let childComponent = fixture.debugElement.query(By.directive(RgwRateLimitComponent))
-        .componentInstance;
+      let childComponent = fixture.debugElement.query(
+        By.directive(RgwRateLimitComponent)
+      ).componentInstance;
       jest.spyOn(childComponent, 'getRateLimitFormValue');
     });
 
@@ -706,8 +708,9 @@ describe('RgwUserFormComponent', () => {
     beforeEach(() => {
       component.loading = LoadingStatus.Ready;
       fixture.detectChanges();
-      childComponent = fixture.debugElement.query(By.directive(RgwRateLimitComponent))
-        .componentInstance;
+      childComponent = fixture.debugElement.query(
+        By.directive(RgwRateLimitComponent)
+      ).componentInstance;
     });
     it('create with account id & account root user', () => {
       spyOn(rgwUserService, 'create');
index 95bb177e2fe5444b8f92c5fca02e76b889ff6283..02bc25fb454d4d0167eea9d5ade26038b93fcf85 100644 (file)
@@ -29,7 +29,10 @@ export class RgwUserS3KeyModalComponent extends BaseModal {
   resource: string;
   action: string;
 
-  constructor(private formBuilder: CdFormBuilder, public actionLabels: ActionLabelsI18n) {
+  constructor(
+    private formBuilder: CdFormBuilder,
+    public actionLabels: ActionLabelsI18n
+  ) {
     super();
     this.resource = $localize`S3 Key`;
     this.createForm();
index 9ea8603681ee18ebfad5f5d55688cd580a713895..4280df80e4b51311f912dc92a21e09f5308de489 100644 (file)
@@ -30,7 +30,10 @@ export class RgwUserSubuserModalComponent extends BaseModal {
   resource: string;
   action: string;
 
-  constructor(private formBuilder: CdFormBuilder, private actionLabels: ActionLabelsI18n) {
+  constructor(
+    private formBuilder: CdFormBuilder,
+    private actionLabels: ActionLabelsI18n
+  ) {
     super();
     this.resource = $localize`Subuser`;
     this.createForm();
index 66ee5d61b34795d53db4fbe09b0a37abb0fda6b4..63b6ad26906344d197b19093cef7c59e47ff104c 100644 (file)
@@ -41,7 +41,10 @@ export class SmartListComponent implements OnInit, OnChanges {
 
   isEmpty = _.isEmpty;
 
-  constructor(private osdService: OsdService, private hostService: HostService) {}
+  constructor(
+    private osdService: OsdService,
+    private hostService: HostService
+  ) {}
 
   isSmartError(data: any): data is SmartError {
     return _.get(data, 'error') !== undefined;
index 25c09205efe0bf4a9063991ad0058e5a96be3f41..0a0e70558648a63f4ccf210b121799dccb0e7e6e 100644 (file)
@@ -4,7 +4,7 @@ import { USER } from '~/app/shared/constants/app.constants';
 export interface SMBCluster {
   resource_type: typeof CLUSTER_RESOURCE;
   cluster_id: string;
-  auth_mode: typeof AUTHMODE[keyof typeof AUTHMODE];
+  auth_mode: (typeof AUTHMODE)[keyof typeof AUTHMODE];
   domain_settings?: DomainSettings;
   user_group_settings?: JoinSource[];
   custom_dns?: string[];
index bcc66f684330b6a66ae1c9eda926629c06ed6166..9fe7ad723a639822ed1bc8465ba665bf6ea68bd1 100755 (executable)
@@ -22,6 +22,8 @@
           class="btn btn-outline-light btn-password"
           cdPasswordButton="oldpassword"
           type="button"
+          aria-label="Toggle visibility"
+          i18n-aria-label
         ></button>
       </div>
       <span
@@ -53,6 +55,8 @@
           type="button"
           class="btn btn-outline-light btn-password"
           cdPasswordButton="newpassword"
+          aria-label="Toggle visibility"
+          i18n-aria-label
         ></button>
       </div>
       <div class="password-strength-level">
           class="btn btn-outline-light btn-password"
           cdPasswordButton="confirmnewpassword"
           type="button"
+          aria-label="Toggle visibility"
+          i18n-aria-label
         ></button>
       </div>
       <span
index 6ee9b986525a03289e163a2a8701caf9d5117dc1..2f33440f2e98a9654662e7fde8c9fdcefe00ef20 100644 (file)
@@ -105,9 +105,8 @@ export class UserFormComponent extends CdForm implements OnInit {
               this.userService,
               () => this.userForm.getValue('username'),
               (_valid: boolean, credits: number, valuation: string) => {
-                this.passwordStrengthLevelClass = this.passwordPolicyService.mapCreditsToCssClass(
-                  credits
-                );
+                this.passwordStrengthLevelClass =
+                  this.passwordPolicyService.mapCreditsToCssClass(credits);
                 this.passwordValuation = _.defaultTo(valuation, '');
               }
             )
index 9b07dbaada2b47c69c223b8fa2b340c52e4bf7f8..22b4cc41e902fe534d75ba327097ba97bcfc01a9 100644 (file)
@@ -88,9 +88,8 @@ export class UserPasswordFormComponent {
                  * These values are not needed in this component after carbonization.
                  * @TODO: Need to remove once the LoginPasswordFormComponent is carbonized.
                  */
-                this.passwordStrengthLevelClass = this.passwordPolicyService.mapCreditsToCssClass(
-                  credits
-                );
+                this.passwordStrengthLevelClass =
+                  this.passwordPolicyService.mapCreditsToCssClass(credits);
                 this.passwordValuation = _.defaultTo(valuation, '');
 
                 this.INVALID_TEXTS['passwordPolicy'] = _.defaultTo(valuation, '');
index d7983d6247f7958204eafcf70f25db63de15aff5..496c4b1e15d4e829f32cf5dc87ee31f29c2bef35 100644 (file)
@@ -91,8 +91,7 @@ export class WorkbenchLayoutComponent implements OnInit, OnDestroy {
       route = route.firstChild;
     }
     const pageHeader = route?.routeConfig?.data?.['pageHeader'] as
-      | { title?: string; description?: string }
-      | undefined;
+      { title?: string; description?: string } | undefined;
     this.pageHeaderTitle = pageHeader?.title ?? null;
     this.pageHeaderDescription = pageHeader?.description ?? null;
   }
index 11c6c938c5ecc8469756044cda37cff4d276823f..6a85bb4564e6efc389f5099e27635485d4182364 100644 (file)
@@ -17,7 +17,10 @@ export class DashboardHelpComponent implements OnInit {
   docsUrl: string;
   icons = Icons;
 
-  constructor(private docService: DocService, private modalCdsService: ModalCdsService) {}
+  constructor(
+    private docService: DocService,
+    private modalCdsService: ModalCdsService
+  ) {}
 
   ngOnInit() {
     this.docService.subscribeOnce('dashboard', (url: string) => {
index 8f3f452ad5f42ab8860781da3c4a1b0aca5cee53..3eff23b189858d74c530cff1eb6ad435da911b09 100644 (file)
@@ -15,7 +15,10 @@ export class IdentityComponent implements OnInit {
   username: string;
   icons = Icons;
 
-  constructor(private authStorageService: AuthStorageService, private authService: AuthService) {}
+  constructor(
+    private authStorageService: AuthStorageService,
+    private authService: AuthService
+  ) {}
 
   ngOnInit() {
     this.username = this.authStorageService.getUsername();
index b9233e0a46130570276768979b5a76d0817ca38c..57a10ba729607bc52a7172373c9038626e28ae4c 100644 (file)
@@ -25,7 +25,10 @@ export class HostService extends ApiClient {
 
   predefinedLabels = ['mon', 'mgr', 'osd', 'mds', 'rgw', 'nfs', 'iscsi', 'rbd', 'grafana'];
 
-  constructor(private http: HttpClient, private deviceService: DeviceService) {
+  constructor(
+    private http: HttpClient,
+    private deviceService: DeviceService
+  ) {
     super();
   }
 
index 85a75073deafc73f4eb0299e4e3616047094575b..d21bf1395210ddd1a5f523af7627eedbb1776411 100644 (file)
@@ -72,7 +72,10 @@ export class OsdService {
     ]
   };
 
-  constructor(private http: HttpClient, private deviceService: DeviceService) {}
+  constructor(
+    private http: HttpClient,
+    private deviceService: DeviceService
+  ) {}
 
   create(driveGroups: Object[], trackingId: string, method = 'drive_groups') {
     const request = {
index 44616cdb3e623d3f2733e3b8b4c80786e7da73ae..29b6898c0db73a80f0a7b98c383d4ac659bde304 100644 (file)
@@ -29,7 +29,10 @@ export class PoolService {
     }
   };
 
-  constructor(private http: HttpClient, private rbdConfigurationService: RbdConfigurationService) {}
+  constructor(
+    private http: HttpClient,
+    private rbdConfigurationService: RbdConfigurationService
+  ) {}
 
   create(pool: any) {
     return this.http.post(this.apiPath, pool, { observe: 'response' });
index 9dc574e4875d44d13d5aeadf5f314fe2d8fa3fdf..53ae0656e9b87f7fc099c63892bc584bb858065f 100644 (file)
@@ -19,7 +19,10 @@ export class RbdMirroringService {
   // Observable streams
   summaryData$ = this.summaryDataSource.asObservable();
 
-  constructor(private http: HttpClient, private timerService: TimerService) {}
+  constructor(
+    private http: HttpClient,
+    private timerService: TimerService
+  ) {}
 
   startPolling(): Subscription {
     return this.timerService
index 0ffa8fcff1c8eb31a8e37f8d3524f3430a599fc3..848e7d2048c33d176485be74edca511d233e681a 100644 (file)
@@ -15,7 +15,10 @@ import { RbdPool } from './rbd.model';
   providedIn: 'root'
 })
 export class RbdService extends ApiClient {
-  constructor(private http: HttpClient, private rbdConfigurationService: RbdConfigurationService) {
+  constructor(
+    private http: HttpClient,
+    private rbdConfigurationService: RbdConfigurationService
+  ) {
     super();
   }
 
index cb7f7023d39f15fbd0cd6c9e4748aa2ead3ed440..e702717a4b9b0daa9f8f4f4e82c9f1ceecb32588 100644 (file)
@@ -27,7 +27,10 @@ export class RgwBucketService extends ApiClient {
   totalUsedCapacity$ = this.totalUsedCapacitySubject.asObservable();
   averageObjectSize$ = this.averageObjectSizeSubject.asObservable();
 
-  constructor(private http: HttpClient, private rgwDaemonService: RgwDaemonService) {
+  constructor(
+    private http: HttpClient,
+    private rgwDaemonService: RgwDaemonService
+  ) {
     super();
   }
 
index b2e0f1afe2add6f80d166d79917afd40041d4dfb..aa1bb812c9abff9640d92264c183bf0c66ba9cf9 100644 (file)
@@ -11,7 +11,10 @@ import { RgwDaemonService } from './rgw-daemon.service';
 export class RgwRealmService {
   private url = 'api/rgw/realm';
 
-  constructor(private http: HttpClient, public rgwDaemonService: RgwDaemonService) {}
+  constructor(
+    private http: HttpClient,
+    public rgwDaemonService: RgwDaemonService
+  ) {}
 
   create(realm: RgwRealm, defaultRealm: boolean) {
     let requestBody = {
index 49589c83f4e071a23a75a77a621713435585ef6b..18b71dfecd9365cdf837005b906d973dab39489f 100644 (file)
@@ -15,7 +15,10 @@ import { cdEncode } from '~/app/shared/decorators/cd-encode';
 export class RgwSiteService {
   private url = 'api/rgw/site';
 
-  constructor(private http: HttpClient, private rgwDaemonService: RgwDaemonService) {}
+  constructor(
+    private http: HttpClient,
+    private rgwDaemonService: RgwDaemonService
+  ) {}
 
   get(query?: string) {
     return this.rgwDaemonService.request((params: HttpParams) => {
index 6dcc48882f453d8075640a39729382e919b6e94a..23a62a5844a6490f904ad00601da50923cd73fef 100644 (file)
@@ -13,7 +13,10 @@ import { RgwDaemonService } from './rgw-daemon.service';
 export class RgwTopicService extends ApiClient {
   baseURL = 'api/rgw/topic';
 
-  constructor(private http: HttpClient, private rgwDaemonService: RgwDaemonService) {
+  constructor(
+    private http: HttpClient,
+    private rgwDaemonService: RgwDaemonService
+  ) {
     super();
   }
 
index 4c53a46c054ad2d1bb61ff2993cf81af0806a8a4..209be1aa9d1b5f70e530644772625cac31f94437 100644 (file)
@@ -10,7 +10,10 @@ import { Account } from '~/app/ceph/rgw/models/rgw-user-accounts';
 export class RgwUserAccountsService {
   private url = 'api/rgw/accounts';
 
-  constructor(private http: HttpClient, private rgwDaemonService: RgwDaemonService) {}
+  constructor(
+    private http: HttpClient,
+    private rgwDaemonService: RgwDaemonService
+  ) {}
 
   list(detailed?: boolean): Observable<any> {
     return this.rgwDaemonService.request((params: HttpParams) => {
index 118467619de09c771553526f8b9962ab41d4c33b..aaa0b70e4b123e1aaf85762f61ff59c39d79035f 100644 (file)
@@ -16,7 +16,10 @@ import { cdEncode } from '~/app/shared/decorators/cd-encode';
 export class RgwUserService {
   private url = 'api/rgw/user';
 
-  constructor(private http: HttpClient, private rgwDaemonService: RgwDaemonService) {}
+  constructor(
+    private http: HttpClient,
+    private rgwDaemonService: RgwDaemonService
+  ) {}
 
   /**
    * Get the list of users.
index 2b984f4a5c486a5ed18229f08cdfa38b6339fece..854c5e6fc700b2c19b6c141a78f257b5a3e223c0 100644 (file)
@@ -28,7 +28,10 @@ export class SmbService {
   modalData$ = this.modalDataSubject.asObservable();
   dataUploader = signal<SMBResource | null>(null);
 
-  constructor(private http: HttpClient, private notificationService: NotificationService) {}
+  constructor(
+    private http: HttpClient,
+    private notificationService: NotificationService
+  ) {}
 
   passData(data: DomainSettings) {
     this.modalDataSubject.next(data);
index 200a276156710e409c2981a4e3899c6567a52386..b57df61273cf49ffd5881f3a54c63584e967012a 100644 (file)
@@ -51,8 +51,7 @@ describe('ConfigOptionComponent', () => {
         name: 'osd_debug_deep_scrub_sleep',
         type: 'float',
         level: 'dev',
-        desc:
-          'Inject an expensive sleep during deep scrub IO to make it easier to induce preemption',
+        desc: 'Inject an expensive sleep during deep scrub IO to make it easier to induce preemption',
         long_desc: '',
         default: 0,
         daemon_default: '',
index a3c5c97d5ab522de79befd75ca927de1cb0828d9..0ed00099349338ce04cb6edf9e72ea3d6b4fd985 100644 (file)
@@ -18,7 +18,11 @@ export class MockModule {}
 
 @Component({
   template: `
-    <button type="button" class="btn btn-danger" (click)="openCtrlDriven()">
+    <button
+      type="button"
+      class="btn btn-danger"
+      (click)="openCtrlDriven()"
+    >
       <i class="fa fa-times"></i>Deletion Ctrl-Test
       <ng-template #ctrlDescription>
         The spinner is handled by the controller if you have use the modal as ViewChild in order to
@@ -26,7 +30,11 @@ export class MockModule {}
       </ng-template>
     </button>
 
-    <button type="button" class="btn btn-danger" (click)="openModalDriven()">
+    <button
+      type="button"
+      class="btn btn-danger"
+      (click)="openModalDriven()"
+    >
       <i class="fa fa-times"></i>Deletion Modal-Test
       <ng-template #modalDescription>
         The spinner is handled by the modal if your given deletion function returns a Observable.
index 9e89bce06f7e7a5701219be1640aa267f5fd3930..658de582ff27f1193f125bf7ffaf4d89e698f29b 100644 (file)
@@ -104,9 +104,9 @@ export class DeleteConfirmationModalComponent extends BaseModal implements OnIni
   }
 
   get forceDeleteAckSatisfied(): boolean {
-    if (
-      !(this.impact === this.impactEnum.high && this.bodyContext?.forceDeleteAcknowledgementMessage)
-    ) {
+    if (!(
+      this.impact === this.impactEnum.high && this.bodyContext?.forceDeleteAcknowledgementMessage
+    )) {
       return true;
     }
     const c = this.deletionForm?.get('forceDeleteAck');
index 8365c5b87f524163291c970ef9599966676fdfd7..231f16cce4112310205a575545b6606fb61cb7c8 100644 (file)
@@ -43,7 +43,10 @@ export class GrafanaComponent implements OnInit, OnChanges {
   @Input()
   scrollable: string = 'yes';
 
-  constructor(private sanitizer: DomSanitizer, private settingsService: SettingsService) {
+  constructor(
+    private sanitizer: DomSanitizer,
+    private settingsService: SettingsService
+  ) {
     this.grafanaTimes = [
       {
         name: $localize`Last 5 minutes`,
index 8b573cf64566bc8b3a3a6679ef902cb10e89b5ca..6415dcbb42a83793527fb416c376ef426916cee6 100644 (file)
@@ -1,17 +1,17 @@
 // When adding a new supported language make sure to add a test for it in:
 // language-selector.component.spec.ts
 export enum SupportedLanguages {
-  'cs' = 'Čeština',
-  'de' = 'Deutsch',
+  cs = 'Čeština',
+  de = 'Deutsch',
   'en-US' = 'English',
-  'es' = 'Español',
-  'fr' = 'Français',
-  'id' = 'Bahasa Indonesia',
-  'it' = 'Italiano',
-  'ja' = '日本語',
-  'ko' = '한국어',
-  'pl' = 'Polski',
-  'pt' = 'Português (brasileiro)',
+  es = 'Español',
+  fr = 'Français',
+  id = 'Bahasa Indonesia',
+  it = 'Italiano',
+  ja = '日本語',
+  ko = '한국어',
+  pl = 'Polski',
+  pt = 'Português (brasileiro)',
   'zh-Hans' = '中文 (简体)',
   'zh-Hant' = '中文 (繁體)'
 }
index 1a672579f5e2babcd03916a7ccbff04ef6b9f957..47b0975f97ff25b0636ed7d8bb36c192c28142e5 100644 (file)
       // cyan left edge
       radial-gradient(120% 60% at -15% 100%, rgba(colors.$cyan-60, 0.13) 0%, transparent 65%),
       /* cyan right edge*/
-        radial-gradient(120% 60% at 115% 100%, rgba(colors.$cyan-60, 0.1) 0%, transparent 65%),
+      radial-gradient(120% 60% at 115% 100%, rgba(colors.$cyan-60, 0.1) 0%, transparent 65%),
       /* pink center*/
-        radial-gradient(120% 60% at 50% 100%, rgba(colors.$magenta-60, 0.11) 0%, transparent 70%);
-    box-shadow: var(--cds-ai-drop-shadow), inset 0 0 0 1px var(--cds-ai-inner-shadow);
+      radial-gradient(120% 60% at 50% 100%, rgba(colors.$magenta-60, 0.11) 0%, transparent 70%);
+    box-shadow:
+      var(--cds-ai-drop-shadow),
+      inset 0 0 0 1px var(--cds-ai-inner-shadow);
   }
 }
index 0d45b339a2024251e35de9a78657f7f5d3136c34..92fa364c7d65389ee1f793eab428e6b459830219 100644 (file)
@@ -27,7 +27,7 @@ describe('VerticalNavigationComponent', () => {
     component.title = 'testTitle';
     fixture.detectChanges();
     const title = fixture.debugElement.query(By.css('h3'));
-    expect(title.nativeElement.textContent).toEqual('testTitle');
+    expect(title.nativeElement.textContent.trim()).toEqual('testTitle');
   });
 
   it('should select the first item as active if no item is selected', () => {
index fbd2c63fc4898c0b91c49387c1d78ddbbbde351e..3a87d1b58fe90e2a20046ba3e45e596e3871c1d7 100644 (file)
@@ -93,9 +93,9 @@ describe('CheckedTableFormComponent', () => {
       owner: ['read', 'execute'],
       group: ['write']
     });
-    component.onClickHeaderCheckbox('scope', ({
+    component.onClickHeaderCheckbox('scope', {
       target: { checked: false }
-    } as unknown) as Event);
+    } as unknown as Event);
     const scopes_permissions = form.getValue('scopes_permissions');
     expect(scopes_permissions).toEqual({});
   });
index b21afc2160a1d3041ff4daf142181a62383a62fb..9f46218ba0f61e72ce94ff03e2671c9474e3ecb2 100644 (file)
@@ -6,7 +6,10 @@ import { AuthStorageService } from '~/app/shared/services/auth-storage.service';
 import { configureTestBed } from '~/testing/unit-test-helper';
 import { AuthStorageDirective } from './auth-storage.directive';
 @Component({
-  template: `<div id="permitted" *cdScope="condition; matchAll: matchAll"></div>`,
+  template: `<div
+    id="permitted"
+    *cdScope="condition; matchAll: matchAll"
+  ></div>`,
   standalone: false
 })
 export class AuthStorageDirectiveTestComponent {
index 4959deabfdbe892ddda10cc2da105920a0965c3b..c2268c514b1a04543c3cb0911820d78f9b5535aa 100644 (file)
@@ -8,8 +8,15 @@ import { AutofocusDirective } from './autofocus.directive';
 @Component({
   template: `
     <form>
-      <input id="x" type="text" />
-      <input id="y" type="password" autofocus />
+      <input
+        id="x"
+        type="text"
+      />
+      <input
+        id="y"
+        type="password"
+        autofocus
+      />
     </form>
   `,
   standalone: false
@@ -19,8 +26,15 @@ export class PasswordFormComponent {}
 @Component({
   template: `
     <form>
-      <input id="x" type="checkbox" [autofocus]="edit" />
-      <input id="y" type="text" />
+      <input
+        id="x"
+        type="checkbox"
+        [autofocus]="edit"
+      />
+      <input
+        id="y"
+        type="text"
+      />
     </form>
   `,
   standalone: false
@@ -32,7 +46,11 @@ export class CheckboxFormComponent {
 @Component({
   template: `
     <form>
-      <input id="x" type="text" [autofocus]="foo" />
+      <input
+        id="x"
+        type="text"
+        [autofocus]="foo"
+      />
     </form>
   `,
   standalone: false
@@ -59,9 +77,8 @@ describe('AutofocusDirective', () => {
   });
 
   it('should focus the password form field', () => {
-    const fixture: ComponentFixture<PasswordFormComponent> = TestBed.createComponent(
-      PasswordFormComponent
-    );
+    const fixture: ComponentFixture<PasswordFormComponent> =
+      TestBed.createComponent(PasswordFormComponent);
     fixture.detectChanges();
     const focused = fixture.debugElement.query(By.css(':focus'));
     expect(focused.attributes.id).toBe('y');
@@ -71,9 +88,8 @@ describe('AutofocusDirective', () => {
   });
 
   it('should focus the checkbox form field', () => {
-    const fixture: ComponentFixture<CheckboxFormComponent> = TestBed.createComponent(
-      CheckboxFormComponent
-    );
+    const fixture: ComponentFixture<CheckboxFormComponent> =
+      TestBed.createComponent(CheckboxFormComponent);
     fixture.detectChanges();
     const focused = fixture.debugElement.query(By.css(':focus'));
     expect(focused.attributes.id).toBe('x');
index 61417a60115fb9c99277a0edecc83d716d7036ba..89070e30e3ae0ddda015ade6ab40eebfd2f012ab 100644 (file)
@@ -5,7 +5,10 @@ import { Component, EventEmitter } from '@angular/core';
 import { ComboBoxItem } from '../models/combo-box.model';
 
 @Component({
-  template: `<div cdDynamicInputCombobox [items]="[]"></div>`,
+  template: `<div
+    cdDynamicInputCombobox
+    [items]="[]"
+  ></div>`,
   standalone: false
 })
 class MockComponent {
index 8d3f050244ba3172d7c319e05c835c327918056d..a391483526128be7f7ae1e97c3f8eeceb6cb9566 100644 (file)
@@ -9,7 +9,10 @@ import { LoadingStatus } from '../forms/cd-form';
   standalone: false
 })
 export class FormLoadingDirective {
-  constructor(private templateRef: TemplateRef<any>, private viewContainer: ViewContainerRef) {}
+  constructor(
+    private templateRef: TemplateRef<any>,
+    private viewContainer: ViewContainerRef
+  ) {}
 
   @Input() set cdFormLoading(condition: LoadingStatus) {
     let content: any;
index db1e38df7cbb213f9799442268ced675e3a7d4d9..013e18c12ee4a354906cf5b8c51cd6e374490d33 100644 (file)
@@ -11,7 +11,10 @@ export class IopsDirective implements OnInit {
   @Input()
   ngDataReady: EventEmitter<any>;
 
-  constructor(private formatter: FormatterService, private ngControl: NgControl) {}
+  constructor(
+    private formatter: FormatterService,
+    private ngControl: NgControl
+  ) {}
 
   setValue(value: string): void {
     const iops = this.formatter.toIops(value);
index 24c4525ee2e4e1486443be879cf853e1a07beda9..9cfae511921776cc3fd4f0f8028c0fc892aa4c48 100644 (file)
@@ -11,7 +11,10 @@ export class MillisecondsDirective implements OnInit {
   @Input()
   ngDataReady: EventEmitter<any>;
 
-  constructor(private control: NgControl, private formatter: FormatterService) {}
+  constructor(
+    private control: NgControl,
+    private formatter: FormatterService
+  ) {}
 
   setValue(value: string): void {
     const ms = this.formatter.toMilliseconds(value);
index 0ef0e4b1be0a80e68ee7a3d344edbdfe000becce..ae5cb197492190e4ffdda4dbab9427a77ff6b8c3 100644 (file)
@@ -7,7 +7,10 @@ import { AfterViewInit, Directive, ElementRef, Input, Renderer2 } from '@angular
 export class OptionalFieldDirective implements AfterViewInit {
   @Input('cdOptionalField') label: string;
   @Input() skeleton: boolean;
-  constructor(private elementRef: ElementRef, private renderer: Renderer2) {}
+  constructor(
+    private elementRef: ElementRef,
+    private renderer: Renderer2
+  ) {}
 
   ngAfterViewInit() {
     if (!this.label || this.skeleton) return;
index 38450fc50957d01eeab9e83c8e9b44e8b7bf09e0..1cb55d1e4ea2706be712d0201e7d04c7fcc89ec4 100644 (file)
@@ -10,7 +10,10 @@ export class PasswordButtonDirective implements OnInit {
   @Input()
   private cdPasswordButton: string;
 
-  constructor(private elementRef: ElementRef, private renderer: Renderer2) {}
+  constructor(
+    private elementRef: ElementRef,
+    private renderer: Renderer2
+  ) {}
 
   ngOnInit() {
     this.renderer.setAttribute(this.elementRef.nativeElement, 'tabindex', '-1');
index 501fc4fc2d9b4f0c19961da1d3a3280f39a8f815..b3f83c543e939d48ba2c823cab020cdfe7f58705 100644 (file)
@@ -7,7 +7,10 @@ import { AfterViewInit, Directive, ElementRef, Input, Renderer2 } from '@angular
 export class RequiredFieldDirective implements AfterViewInit {
   @Input('cdRequiredField') label: string;
   @Input() skeleton: boolean;
-  constructor(private elementRef: ElementRef, private renderer: Renderer2) {}
+  constructor(
+    private elementRef: ElementRef,
+    private renderer: Renderer2
+  ) {}
 
   ngAfterViewInit() {
     if (!this.label || this.skeleton) return;
index 9a119e96315efa85f32e98180a1b827617442da5..279967fadd0562112f6931f68ec5a250ae03ee26 100644 (file)
@@ -10,7 +10,11 @@ import { TrimDirective } from './trim.directive';
 @Component({
   template: `
     <form [formGroup]="trimForm">
-      <input type="text" formControlName="trimInput" cdTrim />
+      <input
+        type="text"
+        formControlName="trimInput"
+        cdTrim
+      />
     </form>
   `,
   standalone: false
@@ -38,8 +42,9 @@ describe('TrimDirective', () => {
   it('should trim', () => {
     const fixture: ComponentFixture<TrimComponent> = TestBed.createComponent(TrimComponent);
     const component: TrimComponent = fixture.componentInstance;
-    const inputElement: HTMLInputElement = fixture.debugElement.query(By.css('input'))
-      .nativeElement;
+    const inputElement: HTMLInputElement = fixture.debugElement.query(
+      By.css('input')
+    ).nativeElement;
     fixture.detectChanges();
 
     inputElement.value = ' a b ';
index 3211369afa5c82e1f0866f4b844ce34e3df1bb6b..66cf508bec248bf15d44833171c09ba8e74637d8 100644 (file)
@@ -13,8 +13,15 @@ import { ValidateDirective } from './validate.directive';
 // A test host component to simulate directive usage with a Reactive Form
 @Component({
   template: `
-    <form [formGroup]="form" (ngSubmit)="onSubmit()">
-      <input formControlName="testField" cdValidate #cdValidateRef="cdValidate" />
+    <form
+      [formGroup]="form"
+      (ngSubmit)="onSubmit()"
+    >
+      <input
+        formControlName="testField"
+        cdValidate
+        #cdValidateRef="cdValidate"
+      />
       <button type="submit">Submit</button>
     </form>
   `,
index 288151c24fa7933b829a9aedede0964fbfaa3f5c..beb3ad0cfd1c2116b33f315450c53e6f169398e0 100644 (file)
@@ -312,18 +312,22 @@ export class CdValidators {
   ) {
     conditionalValidators = conditionalValidators.concat(permanentValidators);
 
-    formControl.setValidators((control: AbstractControl): {
-      [key: string]: any;
-    } => {
-      const value = condition.call(this);
-      if (value) {
-        return Validators.compose(conditionalValidators)(control);
-      }
-      if (permanentValidators.length > 0) {
-        return Validators.compose(permanentValidators)(control);
+    formControl.setValidators(
+      (
+        control: AbstractControl
+      ): {
+        [key: string]: any;
+      } => {
+        const value = condition.call(this);
+        if (value) {
+          return Validators.compose(conditionalValidators)(control);
+        }
+        if (permanentValidators.length > 0) {
+          return Validators.compose(permanentValidators)(control);
+        }
+        return null;
       }
-      return null;
-    });
+    );
 
     watchControls.forEach((control: AbstractControl) => {
       control.valueChanges.subscribe(() => {
@@ -566,7 +570,8 @@ export class CdValidators {
       let errorName: string;
       // - Bucket names cannot be formatted as IP address.
       constraints.push(() => {
-        const ipv4Rgx = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i;
+        const ipv4Rgx =
+          /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i;
         const ipv6Rgx = /^(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}$/i;
         const name = control.value;
         let notIP = true;
@@ -707,7 +712,8 @@ export class CdValidators {
 
   static oauthAddressTest(): ValidatorFn {
     // Pattern matches: IPv4 addresses or hostnames (with or without dots, like 'localhost')
-    const OAUTH2_HTTPS_ADDRESS_PATTERN = /^((\d{1,3}\.){3}\d{1,3}|([a-zA-Z0-9-_]+\.)*[a-zA-Z0-9-_]+)$/;
+    const OAUTH2_HTTPS_ADDRESS_PATTERN =
+      /^((\d{1,3}\.){3}\d{1,3}|([a-zA-Z0-9-_]+\.)*[a-zA-Z0-9-_]+)$/;
     return (control: AbstractControl): Record<string, boolean> | null => {
       if (!control.value) {
         return null;
index 2582569767258b037810105139c7bb1ac38c8e50..452d08b6003873309db51b057ba5cc69451fbd65 100644 (file)
@@ -8,7 +8,12 @@ import { configureTestBed } from '~/testing/unit-test-helper';
 
 @Component({
   template: ` <form [formGroup]="form">
-    <formly-form [model]="{}" [fields]="fields" [options]="{}" [form]="form"></formly-form>
+    <formly-form
+      [model]="{}"
+      [fields]="fields"
+      [options]="{}"
+      [form]="form"
+    ></formly-form>
   </form>`
 })
 class MockFormComponent {
index 0818807d08c67ac54bce46525cf4ac9ac8c466e7..3f7299177ee602eea09641ae90259698a6ad8e62 100644 (file)
@@ -8,7 +8,12 @@ import { configureTestBed } from '~/testing/unit-test-helper';
 
 @Component({
   template: ` <form [formGroup]="form">
-    <formly-form [model]="{}" [fields]="fields" [options]="{}" [form]="form"></formly-form>
+    <formly-form
+      [model]="{}"
+      [fields]="fields"
+      [options]="{}"
+      [form]="form"
+    ></formly-form>
   </form>`
 })
 class MockFormComponent {
index 52358d66002ae30727de79cd84858888411c6f1b..c806eec8319fd5f0af3beaf37e8cd4d7be29e89b 100644 (file)
@@ -8,7 +8,12 @@ import { configureTestBed } from '~/testing/unit-test-helper';
 
 @Component({
   template: ` <form [formGroup]="form">
-    <formly-form [model]="{}" [fields]="fields" [options]="{}" [form]="form"></formly-form>
+    <formly-form
+      [model]="{}"
+      [fields]="fields"
+      [options]="{}"
+      [form]="form"
+    ></formly-form>
   </form>`
 })
 class MockFormComponent {
index 37756ad52ffb726870b71fa61b0c6a913f98c075..fbe7abc7a5a30351a624414a1625bf6f102d07e8 100644 (file)
@@ -8,7 +8,12 @@ import { configureTestBed } from '~/testing/unit-test-helper';
 
 @Component({
   template: ` <form [formGroup]="form">
-    <formly-form [model]="{}" [fields]="fields" [options]="{}" [form]="form"></formly-form>
+    <formly-form
+      [model]="{}"
+      [fields]="fields"
+      [options]="{}"
+      [form]="form"
+    ></formly-form>
   </form>`
 })
 class MockFormComponent {
index 11eaa20755c6ec6fd180ad7456674fdda2b2597e..bd721e4eed2e15c405ae4a2ab365ddb1ceb73993 100644 (file)
@@ -8,7 +8,12 @@ import { configureTestBed } from '~/testing/unit-test-helper';
 
 @Component({
   template: ` <form [formGroup]="form">
-    <formly-form [model]="{}" [fields]="fields" [options]="{}" [form]="form"></formly-form>
+    <formly-form
+      [model]="{}"
+      [fields]="fields"
+      [options]="{}"
+      [form]="form"
+    ></formly-form>
   </form>`
 })
 class MockFormComponent {
index c6260011a9f999ab0f4fbefd84cfff7aa2560fbb..b4a64c03a841bc34f9ee6ec3620a8de63e986ebd 100644 (file)
@@ -9,7 +9,11 @@ export class ImageSpec {
     return new this(poolName, namespace, imageName);
   }
 
-  constructor(public poolName: string, public namespace: string, public imageName: string) {}
+  constructor(
+    public poolName: string,
+    public namespace: string,
+    public imageName: string
+  ) {}
 
   private getNameSpace() {
     return this.namespace ? `${this.namespace}/` : '';
index 912cd4d3cbe13ca7ba579bba5603cc5716d7bb7a..3316570ebd366d925cbfaebbc6f10848d8495063 100644 (file)
@@ -156,8 +156,7 @@ export enum RbdImageCreation {
 }
 
 export type NvmeofNamespaceListResponse =
-  | NvmeofSubsystemNamespace[]
-  | { namespaces: NvmeofSubsystemNamespace[] };
+  NvmeofSubsystemNamespace[] | { namespaces: NvmeofSubsystemNamespace[] };
 
 export type NvmeofInitiatorCandidate = {
   content: string;
index dfab93e21996e1f00f8bbe02d114653b0f293f45..a35b972971c54a30df892ad9d0b7d5599932a84a 100644 (file)
@@ -10,11 +10,11 @@ type ResileincyHealthType = {
   severity: ResiliencyState;
 };
 
-type ResiliencyState = typeof DATA_RESILIENCY_STATE[keyof typeof DATA_RESILIENCY_STATE];
+type ResiliencyState = (typeof DATA_RESILIENCY_STATE)[keyof typeof DATA_RESILIENCY_STATE];
 
-type PG_STATES = typeof PG_STATES[number];
+type PG_STATES = (typeof PG_STATES)[number];
 
-type SCRUBBING_STATES = typeof SCRUBBING_STATES[number];
+type SCRUBBING_STATES = (typeof SCRUBBING_STATES)[number];
 
 export type TrendPoint = {
   timestamp: Date;
index 82aecc9844540839224c27e7687387ef9cd44b4a..5006ab5ce0b178e5301e27d693ef706e58cbbcd1 100644 (file)
@@ -15,12 +15,12 @@ export class OrdinalPipe implements PipeTransform {
       (Math.floor(num / 10) === 1
         ? 'th'
         : num % 10 === 1
-        ? 'st'
-        : num % 10 === 2
-        ? 'nd'
-        : num % 10 === 3
-        ? 'rd'
-        : 'th')
+          ? 'st'
+          : num % 10 === 2
+            ? 'nd'
+            : num % 10 === 3
+              ? 'rd'
+              : 'th')
     );
   }
 }
index 03dd0decddaf384423e0a04ab82386b1ab6f4a2a..07bcb2bf315fac7bfe6edf0ce69225277ccc1237 100644 (file)
@@ -221,7 +221,7 @@ describe('ApiInterceptorService', () => {
     it('should use different application icon (default Ceph) in error message', fakeAsync(() => {
       const msg = 'Cannot connect to Alertmanager';
       httpError(undefined, { status: 500 }, (resp) => {
-        (resp.application = 'Prometheus'), (resp.message = msg);
+        ((resp.application = 'Prometheus'), (resp.message = msg));
       });
       expectSaveToHaveBeenCalled(true);
       flush();
index 1f1c3adf2bb2178aedf231041158bddea076faae..b2d89969e7cc7396c1dbd6f819cca52c7dcb4e15 100644 (file)
@@ -7,7 +7,10 @@ import { AuthStorageService } from './auth-storage.service';
   providedIn: 'root'
 })
 export class AuthGuardService {
-  constructor(private router: Router, private authStorageService: AuthStorageService) {}
+  constructor(
+    private router: Router,
+    private authStorageService: AuthStorageService
+  ) {}
 
   canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
     if (this.authStorageService.isLoggedIn()) {
index 662ecaa63615a55dabedd5e28506a212f8e2bcd4..4e27e104d3e9823f7d701b91eb66b9b26a8fe59b 100644 (file)
@@ -11,7 +11,10 @@ import { AuthStorageService } from './auth-storage.service';
   providedIn: 'root'
 })
 export class ChangePasswordGuardService {
-  constructor(private router: Router, private authStorageService: AuthStorageService) {}
+  constructor(
+    private router: Router,
+    private authStorageService: AuthStorageService
+  ) {}
 
   canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
     // Redirect to '/login-change-password' when the following constraints
index bc84f002e4de6338d2f0c7b84c355b87b61ec4d6..08bf481502d6ff8bd6cf52a6c93db2f509cadc7b 100644 (file)
@@ -13,7 +13,10 @@ export class DataGatewayService {
   cache: { [keys: string]: Observable<any> } = {};
   selected: any;
 
-  constructor(private http: HttpClient, private crudFormAdapater: CrudFormAdapterService) {}
+  constructor(
+    private http: HttpClient,
+    private crudFormAdapater: CrudFormAdapterService
+  ) {}
 
   list(dataPath: string): Observable<any> {
     const cacheable = this.getCacheable(dataPath, 'get');
index bb7f2a0d6145386a8b2249d99b501a84c542242c..476ef420e11e76da07d39b24b31d34879a8849b9 100644 (file)
@@ -24,7 +24,10 @@ export class FeatureTogglesService {
   readonly REFRESH_INTERVAL: number = 30000;
   private featureToggleMap$: FeatureTogglesMap$;
 
-  constructor(private http: HttpClient, private timerService: TimerService) {
+  constructor(
+    private http: HttpClient,
+    private timerService: TimerService
+  ) {
     this.featureToggleMap$ = this.timerService.get(
       () => this.http.get<FeatureTogglesMap>(this.API_URL),
       this.REFRESH_INTERVAL
index de42d005e08285d326d11037f480ce4822c236df..f6c21378a9938964496f98af61b100bcd64e6508 100644 (file)
@@ -6,7 +6,10 @@ import { LoggingService } from '../api/logging.service';
 
 @Injectable()
 export class JsErrorHandler implements ErrorHandler {
-  constructor(private injector: Injector, private router: Router) {}
+  constructor(
+    private injector: Injector,
+    private router: Router
+  ) {}
 
   handleError(error: any) {
     const loggingService = this.injector.get(LoggingService);
index d2705ee36044249c0e9e1a3266bbe3c60790e86f..87329e14ecc553adafab5d40e14bb03a3d5a2dcb 100644 (file)
@@ -7,7 +7,10 @@ import { environment } from '~/environments/environment';
   providedIn: 'root'
 })
 export class LanguageService {
-  constructor(private http: HttpClient, @Inject(LOCALE_ID) protected localeId: string) {}
+  constructor(
+    private http: HttpClient,
+    @Inject(LOCALE_ID) protected localeId: string
+  ) {}
 
   getLocale(): string {
     return this.localeId || environment.default_lang;
index a2c6b6c95d54001372674e105d1ceb1b5b1622bd..efeeab6346d5b27d67268d4451a5a5817527c409 100644 (file)
@@ -44,5 +44,8 @@ export class EnterNgZoneScheduler extends NgZoneScheduler {
   providedIn: 'root'
 })
 export class NgZoneSchedulerService {
-  constructor(public leave: LeaveNgZoneScheduler, public enter: EnterNgZoneScheduler) {}
+  constructor(
+    public leave: LeaveNgZoneScheduler,
+    public enter: EnterNgZoneScheduler
+  ) {}
 }
index f8282ae9758de265cf526df01be6a0f3322468d1..a724d781e7b583874b225eef48f2ba314b5fa334 100644 (file)
@@ -19,7 +19,10 @@ export class SummaryService {
   // Observable streams
   summaryData$ = this.summaryDataSource.asObservable();
 
-  constructor(private http: HttpClient, private timerService: TimerService) {}
+  constructor(
+    private http: HttpClient,
+    private timerService: TimerService
+  ) {}
 
   startPolling(): Subscription {
     return this.timerService
index 7d920f0c66a50ffacaf32c32a9bed0c4254d7047..398684d12a4c8a17ad2138fbe8c1ae242b05f326 100644 (file)
@@ -1,7 +1,7 @@
 @use '@carbon/styles/scss/config' with (
   $font-path: '~@ibm/plex',
   $flex-grid-columns: 16,
-  $use-flexbox-grid: true,
+  $use-flexbox-grid: true
 );
 @use '@carbon/layout';
 @use '@carbon/colors';
@@ -11,8 +11,8 @@
 @use '@carbon/styles/scss/themes';
 @use '@carbon/styles/scss/theme' with (
   $theme: default.$theme,
-  $fallback: compat.$g90,
-  );
+  $fallback: compat.$g90
+);
 
 /******************************************
   Component token overrides should go here