Compare commits
7 Commits
master
...
release-4.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e26e217a1 | ||
|
|
24b67f3fb4 | ||
|
|
2a486236aa | ||
|
|
97b614a899 | ||
|
|
9ca054613c | ||
|
|
5a751932a6 | ||
|
|
cdd6ed5607 |
@ -159,10 +159,10 @@ section.settings {
|
|||||||
transition:
|
transition:
|
||||||
width ease-in-out 0.2s,
|
width ease-in-out 0.2s,
|
||||||
min-width ease-in-out 0.2s;
|
min-width ease-in-out 0.2s;
|
||||||
|
@include common-mixins.scroll-bar;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
@include common-mixins.scroll-bar;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.collapsed-wrapper {
|
.collapsed-wrapper {
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
@if (primaryFilters$ | async; as filters) {
|
@if (primaryFilters$ | async; as filters) {
|
||||||
<div class="filter-content">
|
<div class="filter-content">
|
||||||
@for (filter of filters; track filter) {
|
@for (filter of filters; track filter.id) {
|
||||||
<ng-container
|
<ng-container
|
||||||
[ngTemplateOutletContext]="{
|
[ngTemplateOutletContext]="{
|
||||||
filter: filter,
|
filter: filter,
|
||||||
@ -33,7 +33,7 @@
|
|||||||
<div class="all-caps-label" translate="filter-menu.filter-options"></div>
|
<div class="all-caps-label" translate="filter-menu.filter-options"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@for (filter of secondaryGroup.filters; track filter) {
|
@for (filter of secondaryGroup.filters; track filter.id) {
|
||||||
<ng-container
|
<ng-container
|
||||||
[ngTemplateOutletContext]="{
|
[ngTemplateOutletContext]="{
|
||||||
filter: filter,
|
filter: filter,
|
||||||
|
|||||||
@ -16,6 +16,7 @@ function copySettings(oldFilters: INestedFilter[], newFilters: INestedFilter[])
|
|||||||
const newFilter = newFilters.find(f => f.id === filter.id);
|
const newFilter = newFilters.find(f => f.id === filter.id);
|
||||||
if (newFilter) {
|
if (newFilter) {
|
||||||
newFilter.checked = filter.checked;
|
newFilter.checked = filter.checked;
|
||||||
|
newFilter.expanded = filter.expanded;
|
||||||
newFilter.indeterminate = filter.indeterminate;
|
newFilter.indeterminate = filter.indeterminate;
|
||||||
if (filter.children && newFilter.children) {
|
if (filter.children && newFilter.children) {
|
||||||
copySettings(filter.children, newFilter.children);
|
copySettings(filter.children, newFilter.children);
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
&.active,
|
&.active,
|
||||||
&.dialog-toggle {
|
&.dialog-toggle {
|
||||||
z-index: 1100;
|
z-index: 1200;
|
||||||
}
|
}
|
||||||
|
|
||||||
.toggle-input {
|
.toggle-input {
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
import { BaseHeaderConfig } from './base-config.model';
|
import { BaseHeaderConfig } from './base-config.model';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { OverlappingElement } from '../../../help-mode';
|
|
||||||
|
|
||||||
export interface ActionConfig extends BaseHeaderConfig {
|
export interface ActionConfig extends BaseHeaderConfig {
|
||||||
readonly action: ($event: MouseEvent) => void;
|
readonly action: ($event: MouseEvent) => void;
|
||||||
readonly helpModeKey?: string;
|
readonly helpModeKey?: string;
|
||||||
readonly disabled$?: Observable<boolean>;
|
readonly disabled$?: Observable<boolean>;
|
||||||
|
readonly disabled?: boolean;
|
||||||
|
readonly disableStopPropagation?: boolean;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -60,10 +60,11 @@
|
|||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
(action)="config.action($event)"
|
(action)="config.action($event)"
|
||||||
[buttonId]="config.id"
|
[buttonId]="config.id"
|
||||||
[disabled]="config.disabled$ && (config.disabled$ | async)"
|
[disabled]="config.disabled"
|
||||||
[icon]="config.icon"
|
[icon]="config.icon"
|
||||||
[tooltip]="config.label | translate"
|
[tooltip]="config.label | translate"
|
||||||
[attr.help-mode-key]="config.helpModeKey"
|
[attr.help-mode-key]="config.helpModeKey"
|
||||||
|
[iqserDisableStopPropagation]="config.disableStopPropagation"
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import { filterEach } from '../../utils';
|
|||||||
import { List } from '../../utils';
|
import { List } from '../../utils';
|
||||||
import { IListable } from '../models';
|
import { IListable } from '../models';
|
||||||
import { ActionConfig, ButtonConfig, SearchPosition, SearchPositions } from './models';
|
import { ActionConfig, ButtonConfig, SearchPosition, SearchPositions } from './models';
|
||||||
|
import { DisableStopPropagationDirective } from '../../directives';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'iqser-page-header',
|
selector: 'iqser-page-header',
|
||||||
@ -31,6 +32,7 @@ import { ActionConfig, ButtonConfig, SearchPosition, SearchPositions } from './m
|
|||||||
CircleButtonComponent,
|
CircleButtonComponent,
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
InputWithActionComponent,
|
InputWithActionComponent,
|
||||||
|
DisableStopPropagationDirective,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class PageHeaderComponent<T extends IListable> {
|
export class PageHeaderComponent<T extends IListable> {
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
:host cdk-virtual-scroll-viewport {
|
:host cdk-virtual-scroll-viewport {
|
||||||
height: calc(100vh - 50px - 31px - var(--iqser-top-bar-height) - 50px);
|
height: calc(100vh - 50px - 31px - var(--iqser-top-bar-height) - 50px);
|
||||||
overflow-y: hidden !important;
|
overflow-y: auto !important;
|
||||||
background-color: var(--iqser-background);
|
background-color: var(--iqser-background);
|
||||||
@include mixins.scroll-bar;
|
@include mixins.scroll-bar;
|
||||||
|
|
||||||
@ -10,10 +10,6 @@
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.has-scrollbar:hover ::ng-deep.cdk-virtual-scroll-content-wrapper {
|
|
||||||
grid-template-columns: var(--gridTemplateColumnsHover);
|
|
||||||
}
|
|
||||||
|
|
||||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||||
grid-template-columns: var(--gridTemplateColumns);
|
grid-template-columns: var(--gridTemplateColumns);
|
||||||
display: grid;
|
display: grid;
|
||||||
@ -53,6 +49,10 @@
|
|||||||
> * > div {
|
> * > div {
|
||||||
background-color: var(--iqser-not-disabled-table-item);
|
background-color: var(--iqser-not-disabled-table-item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.scrollbar-placeholder {
|
||||||
|
background-color: var(--iqser-side-nav);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -65,10 +65,6 @@
|
|||||||
right: 0;
|
right: 0;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scrollbar-placeholder {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -87,18 +87,17 @@ export class TableComponent<Class extends IListable<PrimaryKey>, PrimaryKey exte
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _setColumnsWidth(element: HTMLElement) {
|
private _setColumnsWidth(element: HTMLElement) {
|
||||||
let gridTemplateColumnsHover = '';
|
let gridTemplateColumns = '';
|
||||||
if (this.selectionEnabled) {
|
if (this.selectionEnabled) {
|
||||||
gridTemplateColumnsHover += '30px ';
|
gridTemplateColumns += '30px ';
|
||||||
}
|
}
|
||||||
for (const config of this.tableColumnConfigs) {
|
for (const config of this.tableColumnConfigs) {
|
||||||
gridTemplateColumnsHover += `${config.width || '1fr'} `;
|
gridTemplateColumns += `${config.width || '1fr'} `;
|
||||||
}
|
}
|
||||||
gridTemplateColumnsHover += this.emptyColumnWidth || '';
|
gridTemplateColumns += this.emptyColumnWidth || '';
|
||||||
const gridTemplateColumns = `${gridTemplateColumnsHover} ${SCROLLBAR_WIDTH}px`;
|
gridTemplateColumns = `${gridTemplateColumns} ${SCROLLBAR_WIDTH}px`;
|
||||||
|
|
||||||
element.style.setProperty('--gridTemplateColumns', gridTemplateColumns);
|
element.style.setProperty('--gridTemplateColumns', gridTemplateColumns);
|
||||||
element.style.setProperty('--gridTemplateColumnsHover', gridTemplateColumnsHover);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private _setItemSize(element: HTMLElement) {
|
private _setItemSize(element: HTMLElement) {
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import { HeadersConfiguration } from '../utils/headers-configuration';
|
|||||||
import { List } from '../utils/types/iqser-types';
|
import { List } from '../utils/types/iqser-types';
|
||||||
|
|
||||||
export const ROOT_CHANGES_KEY = 'root';
|
export const ROOT_CHANGES_KEY = 'root';
|
||||||
export const LAST_CHECKED_OFFSET = 30000;
|
|
||||||
|
|
||||||
export interface QueryParam {
|
export interface QueryParam {
|
||||||
readonly key: string;
|
readonly key: string;
|
||||||
@ -20,7 +19,7 @@ export interface QueryParam {
|
|||||||
export abstract class GenericService<I> {
|
export abstract class GenericService<I> {
|
||||||
protected readonly _http = inject(HttpClient);
|
protected readonly _http = inject(HttpClient);
|
||||||
protected readonly _lastCheckedForChanges = new Map<string, string>([
|
protected readonly _lastCheckedForChanges = new Map<string, string>([
|
||||||
[ROOT_CHANGES_KEY, new Date(Date.now() - LAST_CHECKED_OFFSET).toISOString()],
|
[ROOT_CHANGES_KEY, new Date(Date.now()).toISOString()],
|
||||||
]);
|
]);
|
||||||
protected abstract readonly _defaultModelPath: string;
|
protected abstract readonly _defaultModelPath: string;
|
||||||
protected readonly _serviceName: string = 'redaction-gateway-v1';
|
protected readonly _serviceName: string = 'redaction-gateway-v1';
|
||||||
@ -41,7 +40,7 @@ export abstract class GenericService<I> {
|
|||||||
headers: HeadersConfiguration.getHeaders({ contentType: false }),
|
headers: HeadersConfiguration.getHeaders({ contentType: false }),
|
||||||
observe: 'body',
|
observe: 'body',
|
||||||
params: this._queryParams(queryParams),
|
params: this._queryParams(queryParams),
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
getFor<R = I[]>(entityId: string, queryParams?: List<QueryParam>): Observable<R> {
|
getFor<R = I[]>(entityId: string, queryParams?: List<QueryParam>): Observable<R> {
|
||||||
@ -126,6 +125,6 @@ export abstract class GenericService<I> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected _updateLastChanged(key = ROOT_CHANGES_KEY): void {
|
protected _updateLastChanged(key = ROOT_CHANGES_KEY): void {
|
||||||
this._lastCheckedForChanges.set(key, new Date(Date.now() - LAST_CHECKED_OFFSET).toISOString());
|
this._lastCheckedForChanges.set(key, new Date().toISOString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user