spiderly 19.0.3 → 19.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/spiderly.mjs +456 -210
- package/fesm2022/spiderly.mjs.map +1 -1
- package/lib/components/layout/{layout-base.component.d.ts → layout.component.d.ts} +14 -6
- package/lib/components/layout/profile-avatar/profile-avatar.component.d.ts +42 -0
- package/lib/components/layout/sidemenu-topbar/sidemenu-topbar.component.d.ts +18 -0
- package/lib/components/layout/topbar/topbar.component.d.ts +9 -40
- package/lib/components/not-found/not-found.component.d.ts +1 -0
- package/lib/components/spiderly-data-table/spiderly-data-table.component.d.ts +2 -2
- package/lib/components/spiderly-data-view/spiderly-data-view.component.d.ts +59 -0
- package/lib/components/spiderly-form-control/spiderly-form-control.d.ts +7 -6
- package/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.d.ts +10 -3
- package/lib/directives/template-type.directive.d.ts +7 -0
- package/lib/entities/base-entity.d.ts +0 -10
- package/lib/entities/table-filter-context.d.ts +7 -4
- package/lib/entities/table-filter-sort-meta.d.ts +2 -2
- package/lib/entities/table-filter.d.ts +14 -4
- package/lib/enums/match-mode-enum-codes.d.ts +8 -0
- package/lib/services/config-base.service.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +5 -1
- package/styles/components/layout/topbar/topbar.component.scss +33 -0
- package/styles/components/spiderly-data-view/spiderly-data-view.component.scss +50 -0
- package/styles/components/spiderly-panels/panel-footer/panel-footer.component.scss +1 -1
- package/styles/styles/layout/_main.scss +4 -0
- package/styles/styles/layout/_menu.scss +1 -1
- package/styles/styles/layout/_topbar.scss +2 -2
- package/styles/styles/layout/layout.scss +0 -1
- package/styles/styles/shared.scss +10 -4
- package/styles/styles/layout/_config.scss +0 -42
|
@@ -1,20 +1,28 @@
|
|
|
1
|
-
import { OnDestroy, Renderer2 } from '@angular/core';
|
|
1
|
+
import { ElementRef, OnDestroy, Renderer2 } from '@angular/core';
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
3
|
import { Subscription } from 'rxjs';
|
|
4
4
|
import { AppSidebarComponent } from './sidebar/sidebar.component';
|
|
5
|
-
import {
|
|
5
|
+
import { SideMenuTopBarComponent } from './sidemenu-topbar/sidemenu-topbar.component';
|
|
6
6
|
import { LayoutBaseService } from '../../services/app-layout-base.service';
|
|
7
|
+
import { SpiderlyMenuItem } from './sidebar/sidebar-menu.component';
|
|
8
|
+
import { MenuItem } from 'primeng/api';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class
|
|
10
|
+
export declare class SpiderlyLayoutComponent implements OnDestroy {
|
|
9
11
|
protected layoutService: LayoutBaseService;
|
|
10
12
|
protected renderer: Renderer2;
|
|
11
13
|
protected router: Router;
|
|
14
|
+
menu: SpiderlyMenuItem[];
|
|
15
|
+
sideMenu: MenuItem[];
|
|
16
|
+
topMenu: MenuItem[];
|
|
17
|
+
isSideMenuLayout: boolean;
|
|
12
18
|
overlayMenuOpenSubscription: Subscription;
|
|
13
19
|
menuOutsideClickListener: any;
|
|
14
20
|
profileMenuOutsideClickListener: any;
|
|
15
21
|
appSidebar: AppSidebarComponent;
|
|
16
|
-
|
|
22
|
+
sidemenuTopbar: SideMenuTopBarComponent;
|
|
23
|
+
topbarmenu: ElementRef;
|
|
17
24
|
constructor(layoutService: LayoutBaseService, renderer: Renderer2, router: Router);
|
|
25
|
+
ngOnInit(): void;
|
|
18
26
|
hideMenu(): void;
|
|
19
27
|
hideProfileMenu(): void;
|
|
20
28
|
blockBodyScroll(): void;
|
|
@@ -32,6 +40,6 @@ export declare class LayoutBaseComponent implements OnDestroy {
|
|
|
32
40
|
};
|
|
33
41
|
ngOnDestroy(): void;
|
|
34
42
|
onAfterNgDestroy: () => void;
|
|
35
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
43
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SpiderlyLayoutComponent, never>;
|
|
44
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SpiderlyLayoutComponent, "spiderly-layout", never, { "menu": { "alias": "menu"; "required": false; }; "isSideMenuLayout": { "alias": "isSideMenuLayout"; "required": false; }; }, {}, never, ["[ACTIONS]"], true, never>;
|
|
37
45
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ElementRef } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { LayoutBaseService } from '../../../services/app-layout-base.service';
|
|
4
|
+
import { User } from '../../../entities/security-entities';
|
|
5
|
+
import { AuthBaseService } from '../../../services/auth-base.service';
|
|
6
|
+
import { TranslocoService } from '@jsverse/transloco';
|
|
7
|
+
import { ConfigBaseService } from '../../../services/config-base.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
interface ProfileAvatarModalMenuItem {
|
|
10
|
+
label?: string;
|
|
11
|
+
icon?: string;
|
|
12
|
+
showSeparator?: boolean;
|
|
13
|
+
onClick?: () => void;
|
|
14
|
+
showNotificationBadge?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare class ProfileAvatarComponent {
|
|
17
|
+
layoutService: LayoutBaseService;
|
|
18
|
+
private authService;
|
|
19
|
+
protected router: Router;
|
|
20
|
+
private translocoService;
|
|
21
|
+
config: ConfigBaseService;
|
|
22
|
+
isSideMenuLayout: boolean;
|
|
23
|
+
private initTopBarSubscription;
|
|
24
|
+
currentUser: User;
|
|
25
|
+
userProfilePath: string;
|
|
26
|
+
unreadNotificationsCount: number;
|
|
27
|
+
menuItems: ProfileAvatarModalMenuItem[];
|
|
28
|
+
avatarLabel: string;
|
|
29
|
+
showProfileIcon: boolean;
|
|
30
|
+
notificationMenuItem: ProfileAvatarModalMenuItem;
|
|
31
|
+
menu: ElementRef;
|
|
32
|
+
topbarProfileDropdownMenuButton: ElementRef;
|
|
33
|
+
constructor(layoutService: LayoutBaseService, authService: AuthBaseService, router: Router, translocoService: TranslocoService, config: ConfigBaseService);
|
|
34
|
+
ngOnInit(): Promise<void>;
|
|
35
|
+
onAfterNgOnInit: () => void;
|
|
36
|
+
onDocumentClick(event: any): void;
|
|
37
|
+
routeToUserPage(): void;
|
|
38
|
+
ngOnDestroy(): void;
|
|
39
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ProfileAvatarComponent, never>;
|
|
40
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ProfileAvatarComponent, "spiderly-profile-avatar", never, { "isSideMenuLayout": { "alias": "isSideMenuLayout"; "required": false; }; }, {}, never, never, true, never>;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ConfigBaseService } from '../../../services/config-base.service';
|
|
2
|
+
import { TranslocoService } from '@jsverse/transloco';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import { ElementRef } from '@angular/core';
|
|
5
|
+
import { LayoutBaseService } from '../../../services/app-layout-base.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class SideMenuTopBarComponent {
|
|
8
|
+
layoutService: LayoutBaseService;
|
|
9
|
+
protected router: Router;
|
|
10
|
+
private config;
|
|
11
|
+
private translocoService;
|
|
12
|
+
companyName: string;
|
|
13
|
+
menuButton: ElementRef;
|
|
14
|
+
constructor(layoutService: LayoutBaseService, router: Router, config: ConfigBaseService, translocoService: TranslocoService);
|
|
15
|
+
ngOnInit(): Promise<void>;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SideMenuTopBarComponent, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SideMenuTopBarComponent, "spiderly-sidemenu-topbar", never, {}, {}, never, never, true, never>;
|
|
18
|
+
}
|
|
@@ -1,45 +1,14 @@
|
|
|
1
|
-
import { TranslocoService } from '@jsverse/transloco';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { ElementRef, OnDestroy } from '@angular/core';
|
|
4
|
-
import { AuthBaseService } from '../../../services/auth-base.service';
|
|
5
|
-
import { LayoutBaseService } from '../../../services/app-layout-base.service';
|
|
6
|
-
import { ApiSecurityService } from '../../../services/api.service.security';
|
|
7
1
|
import { ConfigBaseService } from '../../../services/config-base.service';
|
|
8
|
-
import {
|
|
2
|
+
import { MenuItem } from 'primeng/api';
|
|
9
3
|
import * as i0 from "@angular/core";
|
|
10
|
-
|
|
11
|
-
label?: string;
|
|
12
|
-
icon?: string;
|
|
13
|
-
showSeparator?: boolean;
|
|
14
|
-
onClick?: () => void;
|
|
15
|
-
showNotificationBadge?: boolean;
|
|
16
|
-
}
|
|
17
|
-
export declare class AppTopBarComponent implements OnDestroy {
|
|
18
|
-
layoutService: LayoutBaseService;
|
|
19
|
-
private authService;
|
|
20
|
-
private apiService;
|
|
21
|
-
protected router: Router;
|
|
22
|
-
private translocoService;
|
|
4
|
+
export declare class TopBarComponent {
|
|
23
5
|
private config;
|
|
24
|
-
|
|
25
|
-
currentUser: User;
|
|
26
|
-
userProfilePath: string;
|
|
27
|
-
unreadNotificationsCount: number;
|
|
28
|
-
menuItems: SpiderlyMenuItem[];
|
|
29
|
-
avatarLabel: string;
|
|
6
|
+
menu: MenuItem[];
|
|
30
7
|
companyName: string;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
ngOnInit(): Promise<void>;
|
|
38
|
-
onAfterNgOnInit: () => void;
|
|
39
|
-
onDocumentClick(event: any): void;
|
|
40
|
-
routeToUserPage(): void;
|
|
41
|
-
ngOnDestroy(): void;
|
|
42
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AppTopBarComponent, never>;
|
|
43
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AppTopBarComponent, "topbar", never, {}, {}, never, never, true, never>;
|
|
8
|
+
logoPath: string;
|
|
9
|
+
isSideMenuActive: boolean;
|
|
10
|
+
constructor(config: ConfigBaseService);
|
|
11
|
+
ngOnInit(): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TopBarComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TopBarComponent, "spiderly-topbar", never, { "menu": { "alias": "menu"; "required": false; }; }, {}, never, ["[ACTIONS]"], true, never>;
|
|
44
14
|
}
|
|
45
|
-
export {};
|
|
@@ -3,6 +3,7 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export declare class NotFoundComponent {
|
|
4
4
|
private config;
|
|
5
5
|
companyName: string;
|
|
6
|
+
logoPath: string;
|
|
6
7
|
constructor(config: ConfigBaseService);
|
|
7
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<NotFoundComponent, never>;
|
|
8
9
|
static ɵcmp: i0.ɵɵComponentDeclaration<NotFoundComponent, "not-found", never, {}, {}, never, never, true, never>;
|
|
@@ -73,7 +73,7 @@ export declare class SpiderlyDataTableComponent implements OnInit {
|
|
|
73
73
|
private loadFormArrayItems;
|
|
74
74
|
getColHeaderWidth(filterType: string): "min-width: 12rem;" | "min-width: 10rem;" | "min-width: 8rem;" | "width: 0rem;";
|
|
75
75
|
getColMatchModeOptions(filterType: string): SelectItem<any>[];
|
|
76
|
-
getColMatchMode(filterType: string):
|
|
76
|
+
getColMatchMode(filterType: string): any;
|
|
77
77
|
isDropOrMulti(filterType: string): boolean;
|
|
78
78
|
navigateToDetails(rowId: number): void;
|
|
79
79
|
deleteObject(rowId: number): void;
|
|
@@ -112,7 +112,7 @@ export declare class Action {
|
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
114
|
export declare class Column<T = any> {
|
|
115
|
-
name
|
|
115
|
+
name?: string;
|
|
116
116
|
field?: string & keyof T;
|
|
117
117
|
filterField?: string & keyof T;
|
|
118
118
|
filterType?: 'text' | 'date' | 'multiselect' | 'boolean' | 'numeric';
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { EventEmitter, OnInit, TemplateRef } from '@angular/core';
|
|
2
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
|
+
import { Table, TableFilterEvent, TableLazyLoadEvent } from 'primeng/table';
|
|
4
|
+
import { Observable } from 'rxjs';
|
|
5
|
+
import { TranslocoService } from '@jsverse/transloco';
|
|
6
|
+
import { TableResponse } from '../../entities/table-response';
|
|
7
|
+
import { TableFilter } from '../../entities/table-filter';
|
|
8
|
+
import { Action } from '../spiderly-data-table/spiderly-data-table.component';
|
|
9
|
+
import { SelectItem } from 'primeng/api';
|
|
10
|
+
import { BaseEntity } from '../../entities/base-entity';
|
|
11
|
+
import { PrimengOption } from '../../entities/primeng-option';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export declare class SpiderlyDataViewComponent<T> implements OnInit {
|
|
14
|
+
private router;
|
|
15
|
+
private route;
|
|
16
|
+
private translocoService;
|
|
17
|
+
private locale;
|
|
18
|
+
table: Table;
|
|
19
|
+
items: T[];
|
|
20
|
+
rows: number;
|
|
21
|
+
filters: Filter<T>[];
|
|
22
|
+
totalRecords: number;
|
|
23
|
+
showCardWrapper: boolean;
|
|
24
|
+
onLazyLoad: EventEmitter<TableFilter>;
|
|
25
|
+
getTableDataObservableMethod: (tableFilter: TableFilter) => Observable<TableResponse>;
|
|
26
|
+
lastLazyLoadEvent: TableLazyLoadEvent;
|
|
27
|
+
loading: boolean;
|
|
28
|
+
matchModeDateOptions: SelectItem[];
|
|
29
|
+
matchModeNumberOptions: SelectItem[];
|
|
30
|
+
cardBody: TemplateRef<any>;
|
|
31
|
+
constructor(router: Router, route: ActivatedRoute, translocoService: TranslocoService, locale: string);
|
|
32
|
+
ngOnInit(): void;
|
|
33
|
+
lazyLoad(event: TableLazyLoadEvent): void;
|
|
34
|
+
filter(event: TableFilterEvent): void;
|
|
35
|
+
getDefaultMatchMode(filterType: string): any;
|
|
36
|
+
getMatchModeOptions(filterType: string): SelectItem<any>[];
|
|
37
|
+
navigateToDetails(rowId: number): void;
|
|
38
|
+
reload(): void;
|
|
39
|
+
colTrackByFn(index: any, item: any): any;
|
|
40
|
+
actionTrackByFn(index: any, item: Action): string;
|
|
41
|
+
applyFilters: () => void;
|
|
42
|
+
clearFilters(): void;
|
|
43
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SpiderlyDataViewComponent<any>, never>;
|
|
44
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SpiderlyDataViewComponent<any>, "spiderly-data-view", never, { "items": { "alias": "items"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "showCardWrapper": { "alias": "showCardWrapper"; "required": false; }; "getTableDataObservableMethod": { "alias": "getTableDataObservableMethod"; "required": false; }; }, { "onLazyLoad": "onLazyLoad"; }, ["cardBody"], never, true, never>;
|
|
45
|
+
}
|
|
46
|
+
export interface DataViewCardBody<T> {
|
|
47
|
+
$implicit: T;
|
|
48
|
+
item: T;
|
|
49
|
+
index: number;
|
|
50
|
+
}
|
|
51
|
+
export interface Filter<T extends BaseEntity> {
|
|
52
|
+
name?: string;
|
|
53
|
+
field?: string & keyof T;
|
|
54
|
+
filterField?: string & keyof T;
|
|
55
|
+
filterType?: 'text' | 'date' | 'multiselect' | 'boolean' | 'numeric';
|
|
56
|
+
filterPlaceholder?: string;
|
|
57
|
+
showMatchModes?: boolean;
|
|
58
|
+
dropdownOrMultiselectValues?: PrimengOption[];
|
|
59
|
+
}
|
|
@@ -8,19 +8,19 @@ export declare class SpiderlyFormControl<T = any> extends FormControl<T> {
|
|
|
8
8
|
label: string;
|
|
9
9
|
labelForDisplay: string;
|
|
10
10
|
required: boolean;
|
|
11
|
+
parentClassName: string;
|
|
11
12
|
private _spiderlyValidator;
|
|
12
13
|
constructor(value: any, opts?: FormControlOptions, required?: boolean);
|
|
13
14
|
getRawValue(): T;
|
|
14
15
|
get validator(): SpiderlyValidatorFn | null;
|
|
15
16
|
set validator(validator: SpiderlyValidatorFn | null);
|
|
16
17
|
}
|
|
18
|
+
type SpiderlyControlsOfType<TValue> = {
|
|
19
|
+
[P in keyof TValue]: SpiderlyFormControl<TValue[P]>;
|
|
20
|
+
};
|
|
17
21
|
export declare class SpiderlyFormGroup<TValue = any> extends FormGroup {
|
|
18
|
-
controls:
|
|
19
|
-
|
|
20
|
-
};
|
|
21
|
-
constructor(controls: {
|
|
22
|
-
[P in keyof TValue]: SpiderlyFormControl<TValue[P]>;
|
|
23
|
-
});
|
|
22
|
+
controls: SpiderlyControlsOfType<TValue>;
|
|
23
|
+
constructor(controls: SpiderlyControlsOfType<TValue>);
|
|
24
24
|
getRawValue(): TValue;
|
|
25
25
|
name?: string;
|
|
26
26
|
mainDTOName?: string;
|
|
@@ -35,3 +35,4 @@ export declare class SpiderlyFormArray<TValue = any> extends FormArray {
|
|
|
35
35
|
translationKey: string;
|
|
36
36
|
controlNamesFromHtml?: string[];
|
|
37
37
|
}
|
|
38
|
+
export {};
|
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
|
-
import { AutoCompleteCompleteEvent } from 'primeng/autocomplete';
|
|
2
|
+
import { AutoCompleteCompleteEvent, AutoCompleteSelectEvent } from 'primeng/autocomplete';
|
|
3
3
|
import { BaseAutocompleteControl } from '../base-autocomplete-control';
|
|
4
4
|
import { TranslocoService } from '@jsverse/transloco';
|
|
5
|
+
import { ValidatorAbstractService } from '../../services/validator-abstract.service';
|
|
6
|
+
import { SpiderlyFormControl } from '../../components/spiderly-form-control/spiderly-form-control';
|
|
7
|
+
import { PrimengOption } from '../../entities/primeng-option';
|
|
5
8
|
import * as i0 from "@angular/core";
|
|
6
9
|
export declare class SpiderlyAutocompleteComponent extends BaseAutocompleteControl implements OnInit {
|
|
7
10
|
protected translocoService: TranslocoService;
|
|
11
|
+
private validatorService;
|
|
8
12
|
appendTo: any;
|
|
9
13
|
showClear: boolean;
|
|
10
14
|
emptyMessage: string;
|
|
11
15
|
displayName: string;
|
|
12
|
-
|
|
16
|
+
helperFormControl: SpiderlyFormControl<PrimengOption>;
|
|
17
|
+
constructor(translocoService: TranslocoService, validatorService: ValidatorAbstractService);
|
|
13
18
|
ngOnInit(): void;
|
|
14
19
|
search(event: AutoCompleteCompleteEvent): void;
|
|
15
|
-
select(event:
|
|
20
|
+
select(event: AutoCompleteSelectEvent): void;
|
|
21
|
+
clear(): void;
|
|
22
|
+
autocompleteMarkAsDirty(): void;
|
|
16
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<SpiderlyAutocompleteComponent, never>;
|
|
17
24
|
static ɵcmp: i0.ɵɵComponentDeclaration<SpiderlyAutocompleteComponent, "spiderly-autocomplete", never, { "appendTo": { "alias": "appendTo"; "required": false; }; "showClear": { "alias": "showClear"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "displayName": { "alias": "displayName"; "required": false; }; }, {}, never, never, true, never>;
|
|
18
25
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class SpiderlyTemplateTypeDirective<T> {
|
|
3
|
+
templateType?: T;
|
|
4
|
+
static ngTemplateContextGuard<T>(dir: SpiderlyTemplateTypeDirective<T>, ctx: unknown): ctx is T;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SpiderlyTemplateTypeDirective<any>, never>;
|
|
6
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SpiderlyTemplateTypeDirective<any>, "[templateType]", never, { "templateType": { "alias": "templateType"; "required": false; }; }, {}, never, never, true, never>;
|
|
7
|
+
}
|
|
@@ -1,14 +1,4 @@
|
|
|
1
1
|
export declare class BaseEntity {
|
|
2
|
-
pipedProperties?: PipedProperty[];
|
|
3
2
|
typeName?: string;
|
|
4
3
|
constructor(typeName: string);
|
|
5
4
|
}
|
|
6
|
-
export declare class PipedProperty {
|
|
7
|
-
pipe: PropertyPipes;
|
|
8
|
-
control: string;
|
|
9
|
-
constructor(p: PropertyPipes, c: string);
|
|
10
|
-
}
|
|
11
|
-
export declare enum PropertyPipes {
|
|
12
|
-
IntegerPipe = 0,
|
|
13
|
-
DecimalPipe = 1
|
|
14
|
-
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { MatchModeCodes } from "../enums/match-mode-enum-codes";
|
|
2
|
+
export declare class TableFilterContext<T = any> {
|
|
3
|
+
matchMode: AllowedMatchModes<T>;
|
|
4
|
+
value: T;
|
|
5
|
+
operator?: string;
|
|
5
6
|
}
|
|
7
|
+
type AllowedMatchModes<T> = T extends string ? MatchModeCodes.Contains | MatchModeCodes.StartsWith | MatchModeCodes.Equals : T extends boolean ? MatchModeCodes.Equals : T extends Date ? MatchModeCodes.Equals | MatchModeCodes.GreaterThan | MatchModeCodes.LessThan : T extends number ? MatchModeCodes.Equals | MatchModeCodes.GreaterThan | MatchModeCodes.LessThan | MatchModeCodes.In : MatchModeCodes;
|
|
8
|
+
export {};
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { BaseEntity } from "../entities/base-entity";
|
|
2
|
-
import { TableFilterContext } from "../entities/table-filter-context";
|
|
3
2
|
import { TableFilterSortMeta } from "../entities/table-filter-sort-meta";
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { MatchModeCodes } from "../enums/match-mode-enum-codes";
|
|
4
|
+
export declare class TableFilter<T extends BaseEntity = any> extends BaseEntity {
|
|
5
|
+
filters?: {
|
|
6
|
+
[K in keyof T]?: {
|
|
7
|
+
value: any;
|
|
8
|
+
matchMode: MatchModeCodes;
|
|
9
|
+
}[];
|
|
10
|
+
};
|
|
6
11
|
first?: number;
|
|
7
12
|
rows?: number;
|
|
8
13
|
sortField?: string;
|
|
@@ -11,7 +16,12 @@ export declare class TableFilter extends BaseEntity {
|
|
|
11
16
|
additionalFilterIdInt?: number;
|
|
12
17
|
additionalFilterIdLong?: number;
|
|
13
18
|
constructor({ filters, first, rows, sortField, sortOrder, multiSortMeta, additionalFilterIdInt, additionalFilterIdLong, }?: {
|
|
14
|
-
filters?:
|
|
19
|
+
filters?: {
|
|
20
|
+
[K in keyof T]?: {
|
|
21
|
+
value: any;
|
|
22
|
+
matchMode: MatchModeCodes;
|
|
23
|
+
}[];
|
|
24
|
+
};
|
|
15
25
|
first?: number;
|
|
16
26
|
rows?: number;
|
|
17
27
|
sortField?: string;
|
|
@@ -18,6 +18,7 @@ export declare class ConfigBaseService {
|
|
|
18
18
|
headers: HttpHeaders;
|
|
19
19
|
params: HttpParams;
|
|
20
20
|
};
|
|
21
|
+
logoPath: string;
|
|
21
22
|
constructor();
|
|
22
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConfigBaseService, never>;
|
|
23
24
|
static ɵprov: i0.ɵɵInjectableDeclaration<ConfigBaseService>;
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ export * from './lib/components/spiderly-buttons/spiderly-button/spiderly-button
|
|
|
36
36
|
export * from './lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component';
|
|
37
37
|
export * from './lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base';
|
|
38
38
|
export * from './lib/components/spiderly-data-table/spiderly-data-table.component';
|
|
39
|
+
export * from './lib/components/spiderly-data-view/spiderly-data-view.component';
|
|
39
40
|
export * from './lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component';
|
|
40
41
|
export * from './lib/components/spiderly-form-control/spiderly-form-control';
|
|
41
42
|
export * from './lib/components/spiderly-panels/panel-body/panel-body.component';
|
|
@@ -47,8 +48,9 @@ export * from './lib/components/spiderly-panels/spiderly-panels.module';
|
|
|
47
48
|
export * from './lib/components/layout/sidebar/sidebar-menu.component';
|
|
48
49
|
export * from './lib/components/layout/sidebar/menuitem.component';
|
|
49
50
|
export * from './lib/components/layout/sidebar/sidebar.component';
|
|
51
|
+
export * from './lib/components/layout/sidemenu-topbar/sidemenu-topbar.component';
|
|
52
|
+
export * from './lib/components/layout/layout.component';
|
|
50
53
|
export * from './lib/components/layout/topbar/topbar.component';
|
|
51
|
-
export * from './lib/components/layout/layout-base.component';
|
|
52
54
|
export * from './lib/entities/base-entity';
|
|
53
55
|
export * from './lib/entities/codebook';
|
|
54
56
|
export * from './lib/entities/last-menu-icon-index-clicked';
|
|
@@ -69,6 +71,7 @@ export * from './lib/entities/init-top-bar-data';
|
|
|
69
71
|
export * from './lib/entities/is-authorized-for-save-event';
|
|
70
72
|
export * from './lib/enums/security-enums';
|
|
71
73
|
export * from './lib/enums/verification-type-codes';
|
|
74
|
+
export * from './lib/enums/match-mode-enum-codes';
|
|
72
75
|
export * from './lib/guards/auth.guard';
|
|
73
76
|
export * from './lib/guards/not-auth.guard';
|
|
74
77
|
export * from './lib/handlers/spiderly-error-handler';
|
|
@@ -88,3 +91,4 @@ export * from './lib/services/spiderly-transloco-loader';
|
|
|
88
91
|
export * from './lib/services/translate-labels-abstract.service';
|
|
89
92
|
export * from './lib/services/validator-abstract.service';
|
|
90
93
|
export * from './lib/services/app-layout-base.service';
|
|
94
|
+
export * from './lib/directives/template-type.directive';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.topbar-wrapper {
|
|
2
|
+
background-color: var(--p-content-background);
|
|
3
|
+
width: 100%;
|
|
4
|
+
border-bottom: 1px solid var(--p-content-border-color);
|
|
5
|
+
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
|
6
|
+
position: sticky;
|
|
7
|
+
top: 0;
|
|
8
|
+
left: 0;
|
|
9
|
+
z-index: 1000;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.topbar {
|
|
13
|
+
max-width: 1100px;
|
|
14
|
+
margin: auto;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
::ng-deep{
|
|
18
|
+
.p-menubar-item-link {
|
|
19
|
+
padding: 10px !important;
|
|
20
|
+
font-size: 15px !important;
|
|
21
|
+
.pi {
|
|
22
|
+
font-size: 15px;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
.p-menubar-button {
|
|
26
|
+
width: 35px !important;
|
|
27
|
+
height: 35px !important;
|
|
28
|
+
.p-icon {
|
|
29
|
+
width: 16px;
|
|
30
|
+
height: 16px;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
::ng-deep{
|
|
2
|
+
.p-datatable-tbody {
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
gap: 18px;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.p-datatable-header {
|
|
9
|
+
margin-bottom: 36px;
|
|
10
|
+
border: 0 !important;
|
|
11
|
+
padding: 0 !important;
|
|
12
|
+
background-color: transparent !important;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.p-fluid {
|
|
16
|
+
width: 100% !important;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.p-inputtext {
|
|
20
|
+
width: 100% !important;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.p-inputnumber {
|
|
24
|
+
width: 100% !important;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.p-datepicker {
|
|
28
|
+
width: 100% !important;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.data-view-grid {
|
|
33
|
+
display: grid;
|
|
34
|
+
gap: 18px;
|
|
35
|
+
grid-template-columns: 1fr 1fr 1fr;
|
|
36
|
+
margin-bottom: 18px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@media (max-width: 1080px) {
|
|
40
|
+
.data-view-grid {
|
|
41
|
+
gap: 12px;
|
|
42
|
+
grid-template-columns: 1fr 1fr;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@media (max-width: 500px) {
|
|
47
|
+
.data-view-grid {
|
|
48
|
+
grid-template-columns: 1fr;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
align-items: center;
|
|
4
4
|
justify-content: space-between;
|
|
5
5
|
gap: 10px;
|
|
6
|
-
border-top: 1px solid
|
|
6
|
+
border-top: 1px solid var(--p-content-border-color);
|
|
7
7
|
border-bottom-right-radius: var(--p-content-border-radius);
|
|
8
8
|
border-bottom-left-radius: var(--p-content-border-radius);
|
|
9
9
|
padding: 18px;
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
|
|
52
52
|
&:hover {
|
|
53
53
|
color: var(--p-text-color);
|
|
54
|
-
background-color: var(--p-
|
|
54
|
+
background-color: var(--p-content-hover-background);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
&:focus {
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
|
|
211
211
|
&:hover {
|
|
212
212
|
color: var(--p-text-color);
|
|
213
|
-
background-color: var(--p-
|
|
213
|
+
background-color: var(--p-content-hover-background);
|
|
214
214
|
}
|
|
215
215
|
|
|
216
216
|
&:focus {
|
|
@@ -276,13 +276,13 @@
|
|
|
276
276
|
}
|
|
277
277
|
|
|
278
278
|
.gray-separator{
|
|
279
|
-
border-top: 1px solid
|
|
279
|
+
border-top: 1px solid var(--p-content-border-color);
|
|
280
280
|
width: 100%;
|
|
281
281
|
}
|
|
282
282
|
|
|
283
283
|
// FT: You need to manually adjust the height
|
|
284
284
|
.vertical-gray-separator{
|
|
285
|
-
border-left: 1px solid
|
|
285
|
+
border-left: 1px solid var(--p-content-border-color);
|
|
286
286
|
}
|
|
287
287
|
|
|
288
288
|
.hover-card {
|
|
@@ -292,7 +292,7 @@
|
|
|
292
292
|
}
|
|
293
293
|
|
|
294
294
|
.hover-card:hover {
|
|
295
|
-
background-color: var(--p-
|
|
295
|
+
background-color: var(--p-content-hover-background);
|
|
296
296
|
}
|
|
297
297
|
|
|
298
298
|
.dialog{
|
|
@@ -428,7 +428,7 @@
|
|
|
428
428
|
}
|
|
429
429
|
|
|
430
430
|
.icon-hover:hover {
|
|
431
|
-
background-color:
|
|
431
|
+
background-color: var(--p-content-hover-background);
|
|
432
432
|
}
|
|
433
433
|
|
|
434
434
|
.gray-color {
|
|
@@ -541,4 +541,10 @@
|
|
|
541
541
|
@media (min-width: 600px) {
|
|
542
542
|
font-size: 4.5rem;
|
|
543
543
|
}
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
ul, ol {
|
|
547
|
+
padding-left: 25px;
|
|
548
|
+
margin-top: 10px;
|
|
549
|
+
margin-bottom: 10px;
|
|
544
550
|
}
|