From fb6951a7ba47338a1b89680230691154837dee2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Mon, 29 Apr 2024 16:59:35 +0300 Subject: [PATCH] Some styles, paginated get all ids --- src/assets/styles/_common-variables.scss | 2 + src/assets/styles/common-buttons.scss | 7 +++- src/assets/styles/common-inputs.scss | 4 +- .../chevron-button.component.scss | 2 +- .../services/paginated-entities.service.ts | 38 ++++++++++++++++++- 5 files changed, 47 insertions(+), 6 deletions(-) diff --git a/src/assets/styles/_common-variables.scss b/src/assets/styles/_common-variables.scss index 8007393..0635504 100644 --- a/src/assets/styles/_common-variables.scss +++ b/src/assets/styles/_common-variables.scss @@ -63,6 +63,8 @@ body { --iqser-app-name-font-family: Inter, sans-serif; --iqser-circle-button-radius: 50%; --iqser-side-nav-item-radius: 20px; + --iqser-dot-overlay-background: rgba(var(--iqser-primary-rgb), 0.1); + --iqser-chevron-button-bg: transparent; } $required-variables: 'iqser-primary'; diff --git a/src/assets/styles/common-buttons.scss b/src/assets/styles/common-buttons.scss index 2241931..f2279b0 100644 --- a/src/assets/styles/common-buttons.scss +++ b/src/assets/styles/common-buttons.scss @@ -37,7 +37,7 @@ } .overlay { - background: rgba(var(--iqser-primary-rgb), 0.1); + background: var(--iqser-dot-overlay-background); } } @@ -177,7 +177,6 @@ iqser-circle-button { iqser-chevron-button { @include buttonShape; @include ariaExpanded; - @include dotOverlay; @include labelNoWrap; display: block; @@ -185,10 +184,14 @@ iqser-chevron-button { .mat-mdc-button { @include iconSize14; + background-color: var(--iqser-chevron-button-bg); + &:not([disabled]) { --mdc-text-button-label-text-color: var(--iqser-text); } } + + @include dotOverlay; } iqser-user-button { diff --git a/src/assets/styles/common-inputs.scss b/src/assets/styles/common-inputs.scss index 59fa46a..d465acf 100644 --- a/src/assets/styles/common-inputs.scss +++ b/src/assets/styles/common-inputs.scss @@ -102,7 +102,7 @@ iqser-dynamic-input { } .mat-mdc-form-field { - margin-top: 3px; + margin-top: 0; input { margin-top: 0; @@ -220,7 +220,7 @@ iqser-dynamic-input { font-size: 11px; letter-spacing: 0; line-height: 14px; - margin-bottom: 2px; + margin-bottom: 5px; color: var(--iqser-text); &.mat-checkbox-layout { diff --git a/src/lib/buttons/chevron-button/chevron-button.component.scss b/src/lib/buttons/chevron-button/chevron-button.component.scss index d92b062..1271f66 100644 --- a/src/lib/buttons/chevron-button/chevron-button.component.scss +++ b/src/lib/buttons/chevron-button/chevron-button.component.scss @@ -1,5 +1,5 @@ button { - padding: 0 10px 0 14px; + --mat-text-button-with-icon-horizontal-padding: 10px 0 14px; mat-icon { width: 14px; diff --git a/src/lib/listing/services/paginated-entities.service.ts b/src/lib/listing/services/paginated-entities.service.ts index ff8058a..f348a9b 100644 --- a/src/lib/listing/services/paginated-entities.service.ts +++ b/src/lib/listing/services/paginated-entities.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { Id, IListable } from '../models'; import { EntitiesService } from './entities.service'; -import { Observable } from 'rxjs'; +import { firstValueFrom, Observable } from 'rxjs'; import { map, tap } from 'rxjs/operators'; import { mapEach } from '../../utils'; import { PaginationSettings } from '../../pagination'; @@ -97,4 +97,40 @@ export abstract class PaginatedEntitiesService< tap((entities: Class[]) => this.setEntities(entities)), ); } + + async getAllIds(): Promise { + let page = 0; + const options = this._currentConfig.options; + const size = 1000; + const sOptions = { + sortDirection: this._currentConfig.sortDirection, + sortProperty: this._currentConfig.sortProperty, + }; + const allItems: PrimaryKey[] = []; + + // eslint-disable-next-line no-constant-condition + while (true) { + const response = await firstValueFrom( + this._post>({ + page, + size, + options, + ...sOptions, + }), + ); + allItems.push( + ...response.data + .map(entity => (this._entityClass ? new this._entityClass(entity) : (entity as unknown as Class))) + .map(entity => entity.id), + ); + + if ((response.page + 1) * response.pageSize >= response.totalHits) { + break; + } + + page = response.page + 1; + } + + return allItems; + } }