Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
752efe3e3c | ||
|
|
864fa79454 | ||
|
|
174300d9f1 | ||
|
|
30f944123f | ||
|
|
921b9e09f8 | ||
|
|
2a45504163 | ||
|
|
7c5fcb8f06 | ||
|
|
2574c98c65 | ||
|
|
f9f0408daf | ||
|
|
e1b8ebe882 | ||
|
|
6c669f8ce2 | ||
|
|
6ee51454ce |
@@ -0,0 +1,4 @@
|
||||
export interface XSizeModel {
|
||||
width?: number;
|
||||
height?: number;
|
||||
}
|
||||
@@ -6,9 +6,10 @@
|
||||
[class.no-text]="isNoTextCard() | async"
|
||||
[class.page-card]="getValue(isInPage) | async"
|
||||
[isForeground]="getValue(foregroundColor) | async"
|
||||
[class.fullscreen]="getValue(isFullscreen) | async"
|
||||
>
|
||||
<!-- Card Header -->
|
||||
<mat-card-header class="x-header" *ngIf="getValue(showHeader) | async">
|
||||
<mat-card-header #cardHeader class="x-header" *ngIf="getValue(showHeader) | async">
|
||||
<!-- Avatar Image -->
|
||||
<section
|
||||
*ngIf="notEmptyValue(avatarUrl) | async"
|
||||
@@ -56,6 +57,7 @@
|
||||
<!-- Card Image -->
|
||||
<img
|
||||
mat-card-image
|
||||
#cardImage
|
||||
class="x-image"
|
||||
[src]="getValue(imageUrl) | async"
|
||||
*ngIf="notEmptyValue(imageUrl) | async"
|
||||
@@ -63,18 +65,18 @@
|
||||
/>
|
||||
|
||||
<!-- Card Content -->
|
||||
<mat-card-content class="x-content" *ngIf="getValue(showContent) | async">
|
||||
<mat-card-content #cardContent class="x-content" *ngIf="getValue(showContent) | async">
|
||||
<ng-content></ng-content>
|
||||
</mat-card-content>
|
||||
|
||||
<!-- Card Actions -->
|
||||
<mat-card-actions class="x-actions" *ngIf="getValue(showActions) | async">
|
||||
<mat-card-actions #cardActions class="x-actions" *ngIf="getValue(showActions) | async">
|
||||
<ng-content select="[actions]"></ng-content>
|
||||
</mat-card-actions>
|
||||
|
||||
<!-- Card Footer -->
|
||||
<mat-card-footer
|
||||
#footer
|
||||
#cardFooter
|
||||
class="x-footer"
|
||||
*ngIf="getValue(showFooter) | async"
|
||||
>
|
||||
|
||||
@@ -1,5 +1,42 @@
|
||||
//
|
||||
@import '../theme/theme.scss';
|
||||
@import "../theme/theme.scss";
|
||||
|
||||
:host {
|
||||
display: block;
|
||||
width: inherit;
|
||||
height: inherit;
|
||||
}
|
||||
|
||||
.x-wrapper {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
transition: all 0.3s ease-in-out;
|
||||
border-radius: var(--card-border-radius, 8px);
|
||||
overflow: hidden;
|
||||
|
||||
&:fullscreen {
|
||||
border-radius: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
|
||||
.x-header {
|
||||
padding: 16px 24px;
|
||||
}
|
||||
|
||||
.x-content {
|
||||
flex: 1;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.x-image {
|
||||
max-height: 60vh;
|
||||
object-fit: contain;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
:host::ng-deep.x-card.no-text {
|
||||
@@ -16,11 +53,11 @@
|
||||
height: var(--height, inherit);
|
||||
}
|
||||
|
||||
.x-card.page-card {
|
||||
.x-card.page-card:not(.fullscreen) {
|
||||
@include push-auto();
|
||||
@include applyWidthHeight();
|
||||
@include m-tb($d-l);
|
||||
@include animation('fadeInUp');
|
||||
@include animation("fadeInUp");
|
||||
|
||||
&.mobile {
|
||||
box-sizing: border-box;
|
||||
|
||||
@@ -5,8 +5,18 @@ import {
|
||||
} from './x-card.typings';
|
||||
import { Subject, Subscription } from 'rxjs';
|
||||
import { concatMap, map } from 'rxjs/operators';
|
||||
import { nameof, isNullOrEmptyString } from 'x-framework-core';
|
||||
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
||||
import { XSizeModel } from '../classes/x-size.model.';
|
||||
import {
|
||||
nameof,
|
||||
isNullOrEmptyString,
|
||||
isNullOrUndefined,
|
||||
} from 'x-framework-core';
|
||||
import {
|
||||
Component,
|
||||
ChangeDetectionStrategy,
|
||||
ElementRef,
|
||||
ViewChild,
|
||||
} from '@angular/core';
|
||||
|
||||
@Component({
|
||||
// tslint:disable-next-line:component-selector
|
||||
@@ -20,10 +30,109 @@ export class XCardComponent extends XCardContainerComponent {
|
||||
//#region Props ...
|
||||
//
|
||||
private ACTION_PROVIDER_SUBSCRIPTION: Subscription;
|
||||
|
||||
//
|
||||
//#region Card Elements ....
|
||||
private CARD_IMAGE: ElementRef<HTMLElement> = undefined;
|
||||
private CARD_HEADER: ElementRef<HTMLElement> = undefined;
|
||||
private CARD_FOOTER: ElementRef<HTMLElement> = undefined;
|
||||
private CARD_CONTENT: ElementRef<HTMLElement> = undefined;
|
||||
private CARD_ACTIONS: ElementRef<HTMLElement> = undefined;
|
||||
|
||||
@ViewChild('cardImage', { static: false })
|
||||
set cardImage(v: ElementRef<HTMLElement>) {
|
||||
this.CARD_IMAGE = v;
|
||||
}
|
||||
|
||||
@ViewChild('cardHeader', { static: false })
|
||||
set cardHeader(v: ElementRef<HTMLElement>) {
|
||||
this.CARD_HEADER = v;
|
||||
}
|
||||
|
||||
@ViewChild('cardFooter', { static: false })
|
||||
set cardFooter(v: ElementRef<HTMLElement>) {
|
||||
this.CARD_FOOTER = v;
|
||||
}
|
||||
|
||||
@ViewChild('cardContent', { static: false })
|
||||
set cardContent(v: ElementRef<HTMLElement>) {
|
||||
this.CARD_CONTENT = v;
|
||||
}
|
||||
|
||||
@ViewChild('cardActions', { static: false })
|
||||
set cardActions(v: ElementRef<HTMLElement>) {
|
||||
this.CARD_ACTIONS = v;
|
||||
}
|
||||
|
||||
get cardImage() {
|
||||
return this.CARD_IMAGE;
|
||||
}
|
||||
|
||||
get cardHeader() {
|
||||
return this.CARD_HEADER;
|
||||
}
|
||||
|
||||
get cardFooter() {
|
||||
return this.CARD_FOOTER;
|
||||
}
|
||||
|
||||
get cardContent() {
|
||||
return this.CARD_CONTENT;
|
||||
}
|
||||
|
||||
get cardActions() {
|
||||
return this.CARD_ACTIONS;
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//
|
||||
//#region Full Screen ...
|
||||
//
|
||||
private IS_FULLSCREEN: boolean = false;
|
||||
|
||||
set isFullscreen(v: boolean) {
|
||||
//
|
||||
const isChanged = v != this.IS_FULLSCREEN;
|
||||
if (isChanged) {
|
||||
//
|
||||
this.actionProvider.next({
|
||||
action: XCardAction.FullScreenToggled,
|
||||
payload: v,
|
||||
});
|
||||
}
|
||||
|
||||
//
|
||||
this.IS_FULLSCREEN = v;
|
||||
}
|
||||
|
||||
get isFullscreen() {
|
||||
return this.IS_FULLSCREEN;
|
||||
}
|
||||
//#endregion
|
||||
//#endregion
|
||||
|
||||
//
|
||||
//#region LifeCycles ...
|
||||
onInit() {
|
||||
super.onInit();
|
||||
|
||||
//
|
||||
// Listen for fullscreen change events (handles ESC key and browser UI)
|
||||
document.addEventListener('fullscreenchange', this.fullscreenChangeHandler);
|
||||
document.addEventListener(
|
||||
'webkitfullscreenchange',
|
||||
this.fullscreenChangeHandler,
|
||||
);
|
||||
document.addEventListener(
|
||||
'mozfullscreenchange',
|
||||
this.fullscreenChangeHandler,
|
||||
);
|
||||
document.addEventListener(
|
||||
'MSFullscreenChange',
|
||||
this.fullscreenChangeHandler,
|
||||
);
|
||||
}
|
||||
|
||||
onChange(changeKeys: string[]) {
|
||||
super.onChange(changeKeys);
|
||||
|
||||
@@ -31,7 +140,7 @@ export class XCardComponent extends XCardContainerComponent {
|
||||
//#region Action Provider Changed ...
|
||||
//
|
||||
const isActionProviderChanged = changeKeys.includes(
|
||||
nameof<XCardComponent>('actionProvider')
|
||||
nameof<XCardComponent>('actionProvider'),
|
||||
);
|
||||
if (isActionProviderChanged) {
|
||||
this.registerActionProvider();
|
||||
@@ -44,6 +153,24 @@ export class XCardComponent extends XCardContainerComponent {
|
||||
|
||||
//
|
||||
this.unregisterActionProvider();
|
||||
|
||||
//
|
||||
document.removeEventListener(
|
||||
'fullscreenchange',
|
||||
this.fullscreenChangeHandler,
|
||||
);
|
||||
document.removeEventListener(
|
||||
'webkitfullscreenchange',
|
||||
this.fullscreenChangeHandler,
|
||||
);
|
||||
document.removeEventListener(
|
||||
'mozfullscreenchange',
|
||||
this.fullscreenChangeHandler,
|
||||
);
|
||||
document.removeEventListener(
|
||||
'MSFullscreenChange',
|
||||
this.fullscreenChangeHandler,
|
||||
);
|
||||
}
|
||||
|
||||
registerViewHandlers() {
|
||||
@@ -71,13 +198,190 @@ export class XCardComponent extends XCardContainerComponent {
|
||||
isNullOrEmptyString(object.title) &&
|
||||
isNullOrEmptyString(object.subTitle)
|
||||
);
|
||||
})
|
||||
)
|
||||
)
|
||||
}),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//
|
||||
//#region Actions ...
|
||||
public async enterFullscreen(options?: FullscreenOptions) {
|
||||
//
|
||||
if (this.isFullscreen) {
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
const element: HTMLElement = this.element?.nativeElement;
|
||||
if (!element) {
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
try {
|
||||
//
|
||||
if (!this.canUseFullscreen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
await element.requestFullscreen(options);
|
||||
|
||||
//
|
||||
this.isFullscreen = true;
|
||||
this.detectChanges();
|
||||
} catch {}
|
||||
}
|
||||
|
||||
public async exitFullscreen() {
|
||||
//
|
||||
if (!this.isFullscreen) {
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
try {
|
||||
//
|
||||
if (document.fullscreenElement) {
|
||||
await document.exitFullscreen();
|
||||
}
|
||||
|
||||
//
|
||||
this.isFullscreen = false;
|
||||
this.detectChanges();
|
||||
} catch {}
|
||||
}
|
||||
|
||||
public async toggleFullscreen() {
|
||||
//
|
||||
if (this.isFullscreen) {
|
||||
await this.exitFullscreen();
|
||||
} else {
|
||||
await this.enterFullscreen();
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
//#region Size Calculating ...
|
||||
public calculateImageSize() {
|
||||
//
|
||||
let result: XSizeModel = undefined;
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
if (
|
||||
isNullOrUndefined(this.CARD_IMAGE) ||
|
||||
isNullOrUndefined(this.CARD_IMAGE.nativeElement)
|
||||
) {
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = {
|
||||
width: this.CARD_IMAGE.nativeElement.offsetWidth,
|
||||
height: this.CARD_IMAGE.nativeElement.offsetHeight,
|
||||
};
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
public calculateHeaderSize() {
|
||||
//
|
||||
let result: XSizeModel = undefined;
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
if (
|
||||
isNullOrUndefined(this.CARD_HEADER) ||
|
||||
isNullOrUndefined(this.CARD_HEADER.nativeElement)
|
||||
) {
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = {
|
||||
width: this.CARD_HEADER.nativeElement.offsetWidth,
|
||||
height: this.CARD_HEADER.nativeElement.offsetHeight,
|
||||
};
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
public calculateFooterSize() {
|
||||
//
|
||||
let result: XSizeModel = undefined;
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
if (
|
||||
isNullOrUndefined(this.CARD_FOOTER) ||
|
||||
isNullOrUndefined(this.CARD_FOOTER.nativeElement)
|
||||
) {
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = {
|
||||
width: this.CARD_FOOTER.nativeElement.offsetWidth,
|
||||
height: this.CARD_FOOTER.nativeElement.offsetHeight,
|
||||
};
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
public calculateContentSize() {
|
||||
//
|
||||
let result: XSizeModel = undefined;
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
if (
|
||||
isNullOrUndefined(this.CARD_CONTENT) ||
|
||||
isNullOrUndefined(this.CARD_CONTENT.nativeElement)
|
||||
) {
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = {
|
||||
width: this.CARD_CONTENT.nativeElement.offsetWidth,
|
||||
height: this.CARD_CONTENT.nativeElement.offsetHeight,
|
||||
};
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
public calculateActionsSize() {
|
||||
//
|
||||
let result: XSizeModel = undefined;
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
if (
|
||||
isNullOrUndefined(this.CARD_ACTIONS) ||
|
||||
isNullOrUndefined(this.CARD_ACTIONS.nativeElement)
|
||||
) {
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = {
|
||||
width: this.CARD_ACTIONS.nativeElement.offsetWidth,
|
||||
height: this.CARD_ACTIONS.nativeElement.offsetHeight,
|
||||
};
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
//#endregion
|
||||
//#endregion
|
||||
|
||||
//
|
||||
//#region Private ...
|
||||
//
|
||||
@@ -94,7 +398,7 @@ export class XCardComponent extends XCardContainerComponent {
|
||||
//
|
||||
// Handle Action Provider ...
|
||||
this.ACTION_PROVIDER_SUBSCRIPTION = this.applyTakeUntilWrapper(
|
||||
this.actionProvider.asObservable()
|
||||
this.actionProvider.asObservable(),
|
||||
).subscribe(async (model) => {
|
||||
//
|
||||
if (!model) {
|
||||
@@ -107,6 +411,21 @@ export class XCardComponent extends XCardContainerComponent {
|
||||
case XCardAction.Refresh:
|
||||
this.detectChanges();
|
||||
break;
|
||||
|
||||
//
|
||||
case XCardAction.EnterFullScreen:
|
||||
await this.enterFullscreen();
|
||||
break;
|
||||
|
||||
//
|
||||
case XCardAction.ExitFullScreen:
|
||||
await this.exitFullscreen();
|
||||
break;
|
||||
|
||||
//
|
||||
case XCardAction.ToggleFullScreen:
|
||||
await this.toggleFullscreen();
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -122,5 +441,31 @@ export class XCardComponent extends XCardContainerComponent {
|
||||
this.ACTION_PROVIDER_SUBSCRIPTION = null;
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//
|
||||
//#region Fullscreen ...
|
||||
private fullscreenChangeHandler = () => {
|
||||
//
|
||||
const isFullscreen = !!(
|
||||
document.fullscreenElement ||
|
||||
(document as any).webkitFullscreenElement ||
|
||||
(document as any).mozFullScreenElement ||
|
||||
(document as any).msFullscreenElement
|
||||
);
|
||||
|
||||
//
|
||||
this.isFullscreen = isFullscreen;
|
||||
this.detectChanges();
|
||||
};
|
||||
|
||||
private canUseFullscreen(): boolean {
|
||||
return !!(
|
||||
document.fullscreenEnabled ||
|
||||
(document as any).webkitFullscreenEnabled ||
|
||||
(document as any).mozFullScreenEnabled ||
|
||||
(document as any).msFullscreenEnabled
|
||||
);
|
||||
}
|
||||
//#endregion
|
||||
//#endregion
|
||||
}
|
||||
|
||||
@@ -33,13 +33,19 @@ import { X_FRAMEWORK_COMPONENTS_CONFIG } from '../tokens/x-injectable-tokens';
|
||||
import { XFrameworkComponentsConfig } from '../config/x-framework-components.config';
|
||||
|
||||
export enum XCardAction {
|
||||
//
|
||||
Refresh = 'refresh',
|
||||
//
|
||||
ExitFullScreen = 'exit_full_screen',
|
||||
EnterFullScreen = 'enter_full_screen',
|
||||
ToggleFullScreen = 'toggle_full_screen',
|
||||
//
|
||||
FullScreenToggled = 'full_screen_toggled',
|
||||
}
|
||||
|
||||
export type XCardActionIdentifier = XCardAction | string;
|
||||
|
||||
export interface XCardActionModel
|
||||
extends XBaseActionModel<XCardActionIdentifier> {}
|
||||
export interface XCardActionModel extends XBaseActionModel<XCardActionIdentifier> {}
|
||||
|
||||
//
|
||||
//#region Container ...
|
||||
@@ -187,7 +193,7 @@ export abstract class XCardContainerComponent
|
||||
public ruler: ViewportRuler,
|
||||
public zone: NgZone,
|
||||
public changeDetector: ChangeDetectorRef,
|
||||
protected propertyProvider: XCardContainer
|
||||
protected propertyProvider: XCardContainer,
|
||||
) {
|
||||
super(
|
||||
config,
|
||||
@@ -196,7 +202,7 @@ export abstract class XCardContainerComponent
|
||||
renderer,
|
||||
ruler,
|
||||
zone,
|
||||
changeDetector
|
||||
changeDetector,
|
||||
);
|
||||
}
|
||||
//#endregion
|
||||
@@ -204,37 +210,37 @@ export abstract class XCardContainerComponent
|
||||
//
|
||||
//#region Abstract ...
|
||||
public extractProps(
|
||||
container?: IXCardContainer
|
||||
container?: IXCardContainer,
|
||||
): Observable<IXCardContainer> {
|
||||
return forkJoin({
|
||||
//
|
||||
cssClass: this.getArrayValue(
|
||||
container ? container.cssClass : this.cssClass
|
||||
container ? container.cssClass : this.cssClass,
|
||||
),
|
||||
|
||||
//
|
||||
color: this.getValue(container ? container.color : this.color),
|
||||
foregroundColor: this.getValue(
|
||||
container ? container.foregroundColor : this.foregroundColor
|
||||
container ? container.foregroundColor : this.foregroundColor,
|
||||
),
|
||||
|
||||
//
|
||||
showHeader: this.getValue(
|
||||
container ? container.showHeader : this.showHeader
|
||||
container ? container.showHeader : this.showHeader,
|
||||
),
|
||||
title: this.getValue(container ? container.title : this.title),
|
||||
subTitle: this.getValue(container ? container.subTitle : this.subTitle),
|
||||
avatarUrl: this.getValue(
|
||||
container ? container.avatarUrl : this.avatarUrl
|
||||
container ? container.avatarUrl : this.avatarUrl,
|
||||
),
|
||||
avatarTemplate: this.getValue(
|
||||
container ? container.avatarTemplate : this.avatarTemplate
|
||||
container ? container.avatarTemplate : this.avatarTemplate,
|
||||
),
|
||||
|
||||
//
|
||||
imageUrl: this.getValue(container ? container.imageUrl : this.imageUrl),
|
||||
imageDescription: this.getValue(
|
||||
container ? container.imageDescription : this.imageDescription
|
||||
container ? container.imageDescription : this.imageDescription,
|
||||
),
|
||||
|
||||
//
|
||||
@@ -242,13 +248,13 @@ export abstract class XCardContainerComponent
|
||||
|
||||
//
|
||||
showContent: this.getValue(
|
||||
container ? container.showContent : this.showContent
|
||||
container ? container.showContent : this.showContent,
|
||||
),
|
||||
showActions: this.getValue(
|
||||
container ? container.showActions : this.showActions
|
||||
container ? container.showActions : this.showActions,
|
||||
),
|
||||
showFooter: this.getValue(
|
||||
container ? container.showFooter : this.showFooter
|
||||
container ? container.showFooter : this.showFooter,
|
||||
),
|
||||
}).pipe(
|
||||
map((data) => {
|
||||
@@ -261,7 +267,7 @@ export abstract class XCardContainerComponent
|
||||
? container.actionProvider
|
||||
: this.actionProvider,
|
||||
};
|
||||
})
|
||||
}),
|
||||
);
|
||||
}
|
||||
//#endregion
|
||||
@@ -285,8 +291,7 @@ type TXComponentCardContainer = {
|
||||
};
|
||||
|
||||
export interface IXComponentCardContainer
|
||||
extends TXComponentCardContainer,
|
||||
IXBaseComponentContainer {
|
||||
extends TXComponentCardContainer, IXBaseComponentContainer {
|
||||
isInPage: XStandardType<boolean>;
|
||||
wrapWithCard: XStandardType<boolean>;
|
||||
}
|
||||
@@ -400,7 +405,7 @@ export abstract class XComponentCardContainerComponent
|
||||
public ruler: ViewportRuler,
|
||||
public zone: NgZone,
|
||||
public changeDetector: ChangeDetectorRef,
|
||||
protected propertyProvider: XComponentCardContainer
|
||||
protected propertyProvider: XComponentCardContainer,
|
||||
) {
|
||||
super(
|
||||
config,
|
||||
@@ -409,7 +414,7 @@ export abstract class XComponentCardContainerComponent
|
||||
renderer,
|
||||
ruler,
|
||||
zone,
|
||||
changeDetector
|
||||
changeDetector,
|
||||
);
|
||||
}
|
||||
//#endregion
|
||||
@@ -417,34 +422,34 @@ export abstract class XComponentCardContainerComponent
|
||||
//
|
||||
//#region Abstract ...
|
||||
public extractProps(
|
||||
container?: IXComponentCardContainer
|
||||
container?: IXComponentCardContainer,
|
||||
): Observable<IXComponentCardContainer> {
|
||||
return forkJoin({
|
||||
//
|
||||
isInPage: this.getValue(container ? container.isInPage : this.isInPage),
|
||||
wrapWithCard: this.getValue(
|
||||
container ? container.wrapWithCard : this.wrapWithCard
|
||||
container ? container.wrapWithCard : this.wrapWithCard,
|
||||
),
|
||||
cardCssClass: this.getValue(
|
||||
container ? container.cardCssClass : this.cardCssClass
|
||||
container ? container.cardCssClass : this.cardCssClass,
|
||||
),
|
||||
cardColor: this.getValue(
|
||||
container ? container.cardColor : this.cardColor
|
||||
container ? container.cardColor : this.cardColor,
|
||||
),
|
||||
cardForegroundColor: this.getValue(
|
||||
container ? container.cardForegroundColor : this.cardForegroundColor
|
||||
container ? container.cardForegroundColor : this.cardForegroundColor,
|
||||
),
|
||||
cardTitle: this.getValue(
|
||||
container ? container.cardTitle : this.cardTitle
|
||||
container ? container.cardTitle : this.cardTitle,
|
||||
),
|
||||
cardSubTitle: this.getValue(
|
||||
container ? container.cardSubTitle : this.cardSubTitle
|
||||
container ? container.cardSubTitle : this.cardSubTitle,
|
||||
),
|
||||
cardShowFooter: this.getValue(
|
||||
container ? container.cardShowFooter : this.cardShowFooter
|
||||
container ? container.cardShowFooter : this.cardShowFooter,
|
||||
),
|
||||
cardShowActions: this.getValue(
|
||||
container ? container.cardShowActions : this.cardShowActions
|
||||
container ? container.cardShowActions : this.cardShowActions,
|
||||
),
|
||||
}).pipe(
|
||||
map((data) => {
|
||||
@@ -457,7 +462,7 @@ export abstract class XComponentCardContainerComponent
|
||||
? container.cardActionProvider
|
||||
: this.cardActionProvider,
|
||||
};
|
||||
})
|
||||
}),
|
||||
);
|
||||
}
|
||||
//#endregion
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
<!-- Component Template -->
|
||||
<ng-container *ngIf="getValue(wrapWithCard) | async; else componentsRef">
|
||||
<x-card
|
||||
#chartCard
|
||||
class="x-card"
|
||||
[showActions]="true"
|
||||
[actionProvider]="cardActionProvider"
|
||||
[color]="getValue(cardColor) | async"
|
||||
[ngClass]="getValue(cssClass) | async"
|
||||
[isInPage]="getValue(isInPage) | async"
|
||||
@@ -41,6 +43,7 @@
|
||||
>
|
||||
<!-- Toolbar -->
|
||||
<x-action-bar
|
||||
#chartActionBar
|
||||
[color]="actionBarColor"
|
||||
[cssClass]="actionBarCssClass"
|
||||
[actionProvider]="actionBarActionProvider"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user