@sarasanalytics-com/design-system 0.0.60 → 0.0.62
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/esm2022/interfaces/button-interface.mjs +1 -1
- package/esm2022/interfaces/header-interface.mjs +1 -1
- package/esm2022/interfaces/icon-interface.mjs +3 -2
- package/esm2022/interfaces/layout-section-interface.mjs +2 -0
- package/esm2022/lib/button/button.component.mjs +3 -3
- package/esm2022/lib/card/thumbnail-card/thumbnail-card.component.mjs +53 -0
- package/esm2022/lib/header/header.component.mjs +7 -9
- package/esm2022/lib/layout-section/layout-section.component.mjs +36 -0
- package/esm2022/lib/message-banner-v2/message-banner-v2.component.mjs +79 -55
- package/esm2022/public-api.mjs +4 -2
- package/fesm2022/sarasanalytics-com-design-system.mjs +169 -125
- package/fesm2022/sarasanalytics-com-design-system.mjs.map +1 -1
- package/interfaces/button-interface.d.ts +5 -1
- package/interfaces/header-interface.d.ts +2 -3
- package/interfaces/icon-interface.d.ts +6 -1
- package/interfaces/layout-section-interface.d.ts +12 -0
- package/lib/card/thumbnail-card/thumbnail-card.component.d.ts +29 -0
- package/lib/header/header.component.d.ts +2 -4
- package/lib/layout-section/layout-section.component.d.ts +11 -0
- package/lib/message-banner-v2/message-banner-v2.component.d.ts +28 -22
- package/package.json +1 -1
- package/public-api.d.ts +3 -1
- package/styles/styles.css +1 -0
- package/esm2022/lib/card/cohort-card/cohort-card.component.mjs +0 -60
- package/lib/card/cohort-card/cohort-card.component.d.ts +0 -25
|
@@ -5,10 +5,14 @@ export interface ButtonInterface {
|
|
|
5
5
|
size: ButtonSize;
|
|
6
6
|
state: string;
|
|
7
7
|
imagePath?: string;
|
|
8
|
+
icon?: any;
|
|
8
9
|
iconPosition?: ButtonIconPosition;
|
|
9
10
|
href?: string;
|
|
10
11
|
hrefTarget?: string;
|
|
11
12
|
isSubmit?: boolean;
|
|
13
|
+
width?: any;
|
|
14
|
+
buttonIconSize?: any;
|
|
15
|
+
showSpinner?: boolean;
|
|
12
16
|
}
|
|
13
17
|
export declare const buttonSizes: readonly ["small", "medium", "large"];
|
|
14
18
|
type PredefinedButtonSizes = typeof buttonSizes[number];
|
|
@@ -20,7 +24,7 @@ export declare const buttonType: readonly ["primary", "outline", "transparent"];
|
|
|
20
24
|
type PredefinedButtonType = typeof buttonType[number];
|
|
21
25
|
export type ButtonType = PredefinedButtonType | string;
|
|
22
26
|
export interface ButtonClickEvent {
|
|
23
|
-
type: '
|
|
27
|
+
type: 'primary' | 'secondary';
|
|
24
28
|
button: ButtonInterface;
|
|
25
29
|
originalEvent: Event;
|
|
26
30
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { SafeHtml } from "@angular/platform-browser";
|
|
2
2
|
import { ChipInterface } from "./chip-interface";
|
|
3
|
+
import { IconInterface } from "./icon-interface";
|
|
3
4
|
export interface HeaderChipConfig extends ChipInterface {
|
|
4
5
|
}
|
|
5
|
-
export interface HeaderIcon {
|
|
6
|
-
iconUrl: string;
|
|
7
|
-
size?: string;
|
|
6
|
+
export interface HeaderIcon extends IconInterface {
|
|
8
7
|
}
|
|
9
8
|
export interface HeaderInfoItem {
|
|
10
9
|
text: string;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
export declare const iconNames: readonly ["analysis", "arrowRightOutlined", "avatar", "businessStatsFilled", "chatHelpOutlined", "checkCircleFilled", "checkCircleOutlined", "checkOutlined", "circleFilled", "closeBlueOutlined", "closeCircleFilled", "closeOutlined", "doubleDownOutlined", "eyeFilled", "eyeOutlined", "formDetailsOutlined", "gridViewOutlined", "homeOutlined", "infoCircleOutlined", "infoTriangleFilled", "infoTriangleOutlined", "innosupps", "locationOutlined", "mailOutlined", "multiConnectionHub", "personOutlined", "rightChevronOutlined", "sarasWhite", "settingsOutlined", "sourcesOutlined", "targetScanOutlined", "upwardTriangleFilled", "headsetOutlined", "sarasFullLogo", "leftChevronCircle", "rightChevronCircle", "errorCircleOutlined", "errorCrossOutlined", "downChevronOutlined", "peopleAudience", "screenPerson", "slideSettings", "desktopSpeakerOutlined", "tabDesktopArrowClockwiseOutlined", "disabledCheckboxFilled", "timerOutlined", "refresh", "chatIcon", "add", "calendar"];
|
|
1
|
+
export declare const iconNames: readonly ["analysis", "arrowRightOutlined", "avatar", "businessStatsFilled", "chatHelpOutlined", "checkCircleFilled", "checkCircleOutlined", "checkOutlined", "circleFilled", "closeBlueOutlined", "closeCircleFilled", "closeOutlined", "doubleDownOutlined", "eyeFilled", "eyeOutlined", "formDetailsOutlined", "gridViewOutlined", "homeOutlined", "infoCircleOutlined", "infoTriangleFilled", "infoTriangleOutlined", "innosupps", "locationOutlined", "mailOutlined", "multiConnectionHub", "personOutlined", "rightChevronOutlined", "sarasWhite", "settingsOutlined", "sourcesOutlined", "targetScanOutlined", "upwardTriangleFilled", "headsetOutlined", "sarasFullLogo", "leftChevronCircle", "rightChevronCircle", "errorCircleOutlined", "errorCrossOutlined", "downChevronOutlined", "peopleAudience", "screenPerson", "slideSettings", "desktopSpeakerOutlined", "tabDesktopArrowClockwiseOutlined", "disabledCheckboxFilled", "timerOutlined", "refresh", "chatIcon", "add", "calendar", "compassNorthWest"];
|
|
2
2
|
type PredefinedIconName = typeof iconNames[number];
|
|
3
3
|
export type IconName = PredefinedIconName | string;
|
|
4
|
+
export interface IconInterface {
|
|
5
|
+
icon?: IconName | string;
|
|
6
|
+
size?: string;
|
|
7
|
+
iconUrl?: string;
|
|
8
|
+
}
|
|
4
9
|
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ChipInterface } from './chip-interface';
|
|
2
|
+
import { ButtonInterface } from './button-interface';
|
|
3
|
+
import { IconInterface } from './icon-interface';
|
|
4
|
+
export interface LayoutSectionIcon extends IconInterface {
|
|
5
|
+
}
|
|
6
|
+
export interface LayoutSectionInterface {
|
|
7
|
+
headerText: string;
|
|
8
|
+
headerIcon?: LayoutSectionIcon;
|
|
9
|
+
chips?: ChipInterface[];
|
|
10
|
+
primaryButton?: ButtonInterface;
|
|
11
|
+
secondaryButton?: ButtonInterface;
|
|
12
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export interface ThumbnailStatus {
|
|
4
|
+
text: string;
|
|
5
|
+
type: 'regular' | 'small' | 'large';
|
|
6
|
+
state: 'primary' | 'secondary' | 'neutral' | 'error' | 'warning' | 'success';
|
|
7
|
+
filling: 'outline' | 'filled';
|
|
8
|
+
iconPath?: string;
|
|
9
|
+
iconPosition?: 'left' | 'right' | 'both' | '';
|
|
10
|
+
largeStateIcon?: string;
|
|
11
|
+
largeStateText?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ThumbnailData {
|
|
14
|
+
title: string;
|
|
15
|
+
subtitle: string;
|
|
16
|
+
description: string;
|
|
17
|
+
thumbnailUrl: string;
|
|
18
|
+
statuses: ThumbnailStatus[];
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
}
|
|
21
|
+
export declare class ThumbnailCardComponent {
|
|
22
|
+
data: ThumbnailData;
|
|
23
|
+
size: 'small' | 'medium' | 'large';
|
|
24
|
+
cardClick: EventEmitter<ThumbnailData>;
|
|
25
|
+
onCardClick(): void;
|
|
26
|
+
getChipConfig(status: string): Partial<ThumbnailStatus>;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ThumbnailCardComponent, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThumbnailCardComponent, "sa-thumbnail-card", never, { "data": { "alias": "data"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "cardClick": "cardClick"; }, never, never, true, never>;
|
|
29
|
+
}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { ButtonClickEvent, ButtonInterface } from '../../interfaces/button-interface';
|
|
3
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
3
|
import { HeaderChipConfig, HeaderConfig, HeaderInfoItem } from '../../interfaces/header-interface';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
export declare class HeaderComponent {
|
|
7
|
-
private sanitizer;
|
|
8
6
|
header: HeaderConfig;
|
|
9
7
|
chipConfig: HeaderChipConfig[];
|
|
10
8
|
info: HeaderInfoItem[];
|
|
11
9
|
buttonHelper?: ButtonInterface;
|
|
12
10
|
buttonMain?: ButtonInterface;
|
|
13
11
|
buttonClick: EventEmitter<ButtonClickEvent>;
|
|
14
|
-
constructor(
|
|
15
|
-
onButtonClick(type: '
|
|
12
|
+
constructor();
|
|
13
|
+
onButtonClick(type: 'primary' | 'secondary', event: Event): void;
|
|
16
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<HeaderComponent, never>;
|
|
17
15
|
static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "sa-header", never, { "header": { "alias": "header"; "required": false; }; "chipConfig": { "alias": "chipConfig"; "required": false; }; "info": { "alias": "info"; "required": false; }; "buttonHelper": { "alias": "buttonHelper"; "required": false; }; "buttonMain": { "alias": "buttonMain"; "required": false; }; }, { "buttonClick": "buttonClick"; }, never, never, true, never>;
|
|
18
16
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { LayoutSectionInterface } from '../../interfaces/layout-section-interface';
|
|
3
|
+
import { ButtonClickEvent } from '../../interfaces/button-interface';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class LayoutSectionComponent {
|
|
6
|
+
config: LayoutSectionInterface;
|
|
7
|
+
buttonClick: EventEmitter<ButtonClickEvent>;
|
|
8
|
+
onButtonClick(type: 'primary' | 'secondary', event: Event): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LayoutSectionComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LayoutSectionComponent, "sa-layout-section", never, { "config": { "alias": "config"; "required": false; }; }, { "buttonClick": "buttonClick"; }, never, ["*"], true, never>;
|
|
11
|
+
}
|
|
@@ -1,25 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { ButtonIconPosition, ButtonSize, ButtonType } from '../../interfaces/button-interface';
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { ButtonInterface, ButtonClickEvent } from '../../interfaces/button-interface';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class MessageBannerV2Component
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
4
|
+
export declare class MessageBannerV2Component {
|
|
5
|
+
private state;
|
|
6
|
+
protected bannerContent: import("@angular/core").Signal<{
|
|
7
|
+
description: string;
|
|
8
|
+
type: "default" | "connection" | "access";
|
|
9
|
+
title: string;
|
|
10
|
+
messageIcon: string;
|
|
11
|
+
messageIconSize?: {
|
|
12
|
+
width?: string;
|
|
13
|
+
height?: string;
|
|
14
|
+
};
|
|
15
|
+
}>;
|
|
16
|
+
set messageType(value: 'default' | 'connection' | 'access');
|
|
17
|
+
set messageIcon(value: string);
|
|
18
|
+
set messageIconSize(value: {
|
|
19
|
+
width?: string;
|
|
20
|
+
height?: string;
|
|
21
|
+
});
|
|
22
|
+
set title(value: string);
|
|
23
|
+
set description(value: string);
|
|
24
|
+
buttons: ButtonInterface[];
|
|
25
|
+
buttonClick: EventEmitter<ButtonClickEvent>;
|
|
26
|
+
private updateContentBasedOnType;
|
|
27
|
+
private sanitizeDescription;
|
|
28
|
+
onButtonClick(button: ButtonInterface, event: Event): void;
|
|
23
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<MessageBannerV2Component, never>;
|
|
24
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MessageBannerV2Component, "sa-message-banner-v2", never, { "messageType": { "alias": "messageType"; "required": false; }; "messageIcon": { "alias": "messageIcon"; "required": false; }; "
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MessageBannerV2Component, "sa-message-banner-v2", never, { "messageType": { "alias": "messageType"; "required": false; }; "messageIcon": { "alias": "messageIcon"; "required": false; }; "messageIconSize": { "alias": "messageIconSize"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "buttons": { "alias": "buttons"; "required": false; }; }, { "buttonClick": "buttonClick"; }, never, never, true, never>;
|
|
25
31
|
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -9,9 +9,9 @@ export * from './lib/card/card-icon/card-icon.component';
|
|
|
9
9
|
export * from './lib/card/card-title-actions/card-title-actions.component';
|
|
10
10
|
export * from './lib/card/card.component';
|
|
11
11
|
export * from './lib/card/checkbox-card/checkbox-card.component';
|
|
12
|
-
export * from './lib/card/cohort-card/cohort-card.component';
|
|
13
12
|
export * from './lib/card/guide-card/guide-card.component';
|
|
14
13
|
export * from './lib/card/menu-card/menu-card.component';
|
|
14
|
+
export * from './lib/card/thumbnail-card/thumbnail-card.component';
|
|
15
15
|
export * from './lib/card-carousel/card-carousel.component';
|
|
16
16
|
export * from './lib/checkbox/checkbox.component';
|
|
17
17
|
export * from './lib/chips/chips.component';
|
|
@@ -22,6 +22,7 @@ export * from './lib/form-select/form-select.component';
|
|
|
22
22
|
export * from './lib/grid-cell/grid-cell.component';
|
|
23
23
|
export * from './lib/header/header.component';
|
|
24
24
|
export * from './lib/icon/icon.component';
|
|
25
|
+
export * from './lib/layout-section/layout-section.component';
|
|
25
26
|
export * from './lib/left-nav/left-nav.component';
|
|
26
27
|
export * from './lib/list/list.component';
|
|
27
28
|
export * from './lib/message-banner/message-banner.component';
|
|
@@ -49,6 +50,7 @@ export * from './interfaces/grid-interface';
|
|
|
49
50
|
export * from './interfaces/guide-card-interface';
|
|
50
51
|
export * from './interfaces/header-interface';
|
|
51
52
|
export * from './interfaces/icon-interface';
|
|
53
|
+
export * from './interfaces/layout-section-interface';
|
|
52
54
|
export * from './interfaces/message-banner';
|
|
53
55
|
export * from './interfaces/option-interface';
|
|
54
56
|
export * from './interfaces/scrolling-card-interface';
|
package/styles/styles.css
CHANGED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import { ChipsComponent } from '../../chips/chips.component';
|
|
4
|
-
import { CardComponent } from '../card.component';
|
|
5
|
-
import { IconComponent } from '../../icon/icon.component';
|
|
6
|
-
import { CardBodyComponent } from '../card-body/card-body.component';
|
|
7
|
-
import { CardCustomHeaderComponent } from '../card-custom-header/card-custom-header.component';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/common";
|
|
10
|
-
export class CohortCardComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.size = 'medium';
|
|
13
|
-
}
|
|
14
|
-
getChipConfig(status) {
|
|
15
|
-
switch (status) {
|
|
16
|
-
case 'active':
|
|
17
|
-
return {
|
|
18
|
-
type: 'small',
|
|
19
|
-
state: 'success',
|
|
20
|
-
filling: 'filled'
|
|
21
|
-
};
|
|
22
|
-
case 'in-progress':
|
|
23
|
-
return {
|
|
24
|
-
type: 'small',
|
|
25
|
-
state: 'warning',
|
|
26
|
-
filling: 'filled'
|
|
27
|
-
};
|
|
28
|
-
case 'advanced':
|
|
29
|
-
return {
|
|
30
|
-
type: 'small',
|
|
31
|
-
state: 'primary',
|
|
32
|
-
filling: 'filled'
|
|
33
|
-
};
|
|
34
|
-
default:
|
|
35
|
-
return {
|
|
36
|
-
type: 'small',
|
|
37
|
-
state: 'primary',
|
|
38
|
-
filling: 'filled'
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CohortCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: CohortCardComponent, isStandalone: true, selector: "sa-cohort-card", inputs: { data: "data", size: "size" }, ngImport: i0, template: "<div class=\"cohort-card\" [class.small]=\"size === 'small'\" [class.medium]=\"size === 'medium'\" [class.large]=\"size === 'large'\">\n <sa-card [showCustomCardBody]=\"true\" [customWrapperClass]=\"'sa-card-custom-wrapper'\">\n <sa-card-custom-body>\n <div class=\"cohort-content\">\n <div class=\"thumbnail-container\">\n <img [src]=\"data?.thumbnailUrl\" alt=\"Cohort thumbnail\" class=\"cohort-thumbnail\">\n </div>\n <div class=\"cohort-info\">\n <div class=\"cohort-header\">\n <h3 class=\"cohort-title\">{{ data?.title }}</h3>\n <div class=\"status-chips\">\n <sa-chip *ngFor=\"let status of data?.statuses\"\n [text]=\"status.text\"\n [type]=\"'small'\"\n [state]=\"status.state\"\n [filling]=\"status.filling\"\n [iconPath]=\"status.iconPath\"\n [iconPosition]=\"status.iconPosition\"\n [largeStateIcon]=\"status.largeStateIcon\"\n [largeStateText]=\"status.largeStateText\">\n </sa-chip>\n </div>\n </div>\n <div class=\"cohort-metadata\">\n <span class=\"cohort-description\">{{ data?.description }}</span>\n <span class=\"separator\"></span>\n <span class=\"cohort-subtitle\">{{ data?.subtitle }}</span>\n </div>\n </div>\n </div>\n </sa-card-custom-body>\n </sa-card>\n</div>\n", styles: [".cohort-card{display:block}.cohort-content{display:flex;flex-direction:column}.thumbnail-container{width:100%;position:relative;overflow:hidden}.cohort-thumbnail{width:100%;display:block}.cohort-info{padding:var(--small-16px, 16px) var(--small-16px, 16px) var(--small-16px, 16px);display:flex;flex-direction:column;gap:var(--small-8px, 8px);border-top:1px solid var(--grey-100, #EAECF0)}.cohort-header{display:flex;justify-content:space-between;align-items:center}.cohort-title{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-roboto, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:500;line-height:var(--small-20px, 20px);letter-spacing:.1px;margin:0}.status-chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:auto}.cohort-metadata{display:flex;align-items:center;gap:var(--small-8px, 8px)}.cohort-description,.cohort-subtitle{font-size:var(--small-12px, 12px);color:var(--text-mediumemphasis, #6D6979);line-height:var(--small-16px, 16px);font-style:normal;font-weight:400}.separator{border-radius:var(--small-3px, 3px);background:var(--grey-100, #EAECF0);width:1px;align-self:stretch}::ng-deep .cohort-card .sa-card-wrapper.sa-card-custom-wrapper{border-radius:var(--small-4px, 4px);border:1px solid var(--grey-100, #EAECF0);background:var(--structural-white, #FFF);padding:0;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ChipsComponent, selector: "sa-chip", inputs: ["id", "iconPath", "text", "type", "state", "filling", "iconPosition", "largeStateIcon", "largeStateText"], outputs: ["onClickEvent"] }, { kind: "component", type: CardComponent, selector: "sa-card", inputs: ["title", "showCardHeader", "showCardBody", "showHeaderBodyDivider", "showCustomCardBody", "customWrapperClass", "chip", "body", "avatar", "image", "imageWidth", "avatarSize", "href", "hrefTarget", "icon", "iconSize", "subtitle", "logoIcon", "width", "height", "column"] }, { kind: "component", type: CardBodyComponent, selector: "sa-card-custom-body" }] }); }
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CohortCardComponent, decorators: [{
|
|
46
|
-
type: Component,
|
|
47
|
-
args: [{ selector: 'sa-cohort-card', standalone: true, imports: [
|
|
48
|
-
CommonModule,
|
|
49
|
-
ChipsComponent,
|
|
50
|
-
CardComponent,
|
|
51
|
-
IconComponent,
|
|
52
|
-
CardBodyComponent,
|
|
53
|
-
CardCustomHeaderComponent
|
|
54
|
-
], template: "<div class=\"cohort-card\" [class.small]=\"size === 'small'\" [class.medium]=\"size === 'medium'\" [class.large]=\"size === 'large'\">\n <sa-card [showCustomCardBody]=\"true\" [customWrapperClass]=\"'sa-card-custom-wrapper'\">\n <sa-card-custom-body>\n <div class=\"cohort-content\">\n <div class=\"thumbnail-container\">\n <img [src]=\"data?.thumbnailUrl\" alt=\"Cohort thumbnail\" class=\"cohort-thumbnail\">\n </div>\n <div class=\"cohort-info\">\n <div class=\"cohort-header\">\n <h3 class=\"cohort-title\">{{ data?.title }}</h3>\n <div class=\"status-chips\">\n <sa-chip *ngFor=\"let status of data?.statuses\"\n [text]=\"status.text\"\n [type]=\"'small'\"\n [state]=\"status.state\"\n [filling]=\"status.filling\"\n [iconPath]=\"status.iconPath\"\n [iconPosition]=\"status.iconPosition\"\n [largeStateIcon]=\"status.largeStateIcon\"\n [largeStateText]=\"status.largeStateText\">\n </sa-chip>\n </div>\n </div>\n <div class=\"cohort-metadata\">\n <span class=\"cohort-description\">{{ data?.description }}</span>\n <span class=\"separator\"></span>\n <span class=\"cohort-subtitle\">{{ data?.subtitle }}</span>\n </div>\n </div>\n </div>\n </sa-card-custom-body>\n </sa-card>\n</div>\n", styles: [".cohort-card{display:block}.cohort-content{display:flex;flex-direction:column}.thumbnail-container{width:100%;position:relative;overflow:hidden}.cohort-thumbnail{width:100%;display:block}.cohort-info{padding:var(--small-16px, 16px) var(--small-16px, 16px) var(--small-16px, 16px);display:flex;flex-direction:column;gap:var(--small-8px, 8px);border-top:1px solid var(--grey-100, #EAECF0)}.cohort-header{display:flex;justify-content:space-between;align-items:center}.cohort-title{color:var(--text-highemphasis, #1C1B20);font-family:var(--font-roboto, Roboto);font-size:var(--small-14px, 14px);font-style:normal;font-weight:500;line-height:var(--small-20px, 20px);letter-spacing:.1px;margin:0}.status-chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:auto}.cohort-metadata{display:flex;align-items:center;gap:var(--small-8px, 8px)}.cohort-description,.cohort-subtitle{font-size:var(--small-12px, 12px);color:var(--text-mediumemphasis, #6D6979);line-height:var(--small-16px, 16px);font-style:normal;font-weight:400}.separator{border-radius:var(--small-3px, 3px);background:var(--grey-100, #EAECF0);width:1px;align-self:stretch}::ng-deep .cohort-card .sa-card-wrapper.sa-card-custom-wrapper{border-radius:var(--small-4px, 4px);border:1px solid var(--grey-100, #EAECF0);background:var(--structural-white, #FFF);padding:0;overflow:hidden}\n"] }]
|
|
55
|
-
}], propDecorators: { data: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}], size: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ob3J0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9jYXJkL2NvaG9ydC1jYXJkL2NvaG9ydC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvY2FyZC9jb2hvcnQtY2FyZC9jb2hvcnQtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7OztBQW1DL0YsTUFBTSxPQUFPLG1CQUFtQjtJQWRoQztRQWdCVyxTQUFJLEdBQWlDLFFBQVEsQ0FBQztLQThCeEQ7SUE1QkMsYUFBYSxDQUFDLE1BQWM7UUFDMUIsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNmLEtBQUssUUFBUTtnQkFDWCxPQUFPO29CQUNMLElBQUksRUFBRSxPQUFPO29CQUNiLEtBQUssRUFBRSxTQUFTO29CQUNoQixPQUFPLEVBQUUsUUFBUTtpQkFDbEIsQ0FBQztZQUNKLEtBQUssYUFBYTtnQkFDaEIsT0FBTztvQkFDTCxJQUFJLEVBQUUsT0FBTztvQkFDYixLQUFLLEVBQUUsU0FBUztvQkFDaEIsT0FBTyxFQUFFLFFBQVE7aUJBQ2xCLENBQUM7WUFDSixLQUFLLFVBQVU7Z0JBQ2IsT0FBTztvQkFDTCxJQUFJLEVBQUUsT0FBTztvQkFDYixLQUFLLEVBQUUsU0FBUztvQkFDaEIsT0FBTyxFQUFFLFFBQVE7aUJBQ2xCLENBQUM7WUFDSjtnQkFDRSxPQUFPO29CQUNMLElBQUksRUFBRSxPQUFPO29CQUNiLEtBQUssRUFBRSxTQUFTO29CQUNoQixPQUFPLEVBQUUsUUFBUTtpQkFDbEIsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDOzhHQS9CVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrSEN6Q2hDLHU5Q0FpQ0EsbzNDREZJLFlBQVksNEpBQ1osY0FBYyxtTUFDZCxhQUFhLDRVQUViLGlCQUFpQjs7MkZBTVIsbUJBQW1CO2tCQWQvQixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIseUJBQXlCO3FCQUMxQjs4QkFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2hpcHMvY2hpcHMuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkQm9keUNvbXBvbmVudCB9IGZyb20gJy4uL2NhcmQtYm9keS9jYXJkLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRDdXN0b21IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkLWN1c3RvbS1oZWFkZXIvY2FyZC1jdXN0b20taGVhZGVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ob3J0U3RhdHVzIHtcbiAgdGV4dDogc3RyaW5nO1xuICB0eXBlOiAncmVndWxhcicgfCAnc21hbGwnIHwgJ2xhcmdlJztcbiAgc3RhdGU6ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ25ldXRyYWwnIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJztcbiAgZmlsbGluZzogJ291dGxpbmUnIHwgJ2ZpbGxlZCc7XG4gIGljb25QYXRoPzogc3RyaW5nO1xuICBpY29uUG9zaXRpb24/OiAnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdGgnIHwgJyc7XG4gIGxhcmdlU3RhdGVJY29uPzogc3RyaW5nO1xuICBsYXJnZVN0YXRlVGV4dD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2hvcnREYXRhIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc3VidGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdGh1bWJuYWlsVXJsOiBzdHJpbmc7XG4gIHN0YXR1c2VzOiBDb2hvcnRTdGF0dXNbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2EtY29ob3J0LWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENoaXBzQ29tcG9uZW50LFxuICAgIENhcmRDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBDYXJkQm9keUNvbXBvbmVudCxcbiAgICBDYXJkQ3VzdG9tSGVhZGVyQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2hvcnQtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvaG9ydC1jYXJkLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb2hvcnRDYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YTogQ29ob3J0RGF0YTtcbiAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyA9ICdtZWRpdW0nO1xuXG4gIGdldENoaXBDb25maWcoc3RhdHVzOiBzdHJpbmcpOiBQYXJ0aWFsPENvaG9ydFN0YXR1cz4ge1xuICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICBjYXNlICdhY3RpdmUnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6ICdzbWFsbCcsXG4gICAgICAgICAgc3RhdGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICBmaWxsaW5nOiAnZmlsbGVkJ1xuICAgICAgICB9O1xuICAgICAgY2FzZSAnaW4tcHJvZ3Jlc3MnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6ICdzbWFsbCcsXG4gICAgICAgICAgc3RhdGU6ICd3YXJuaW5nJyxcbiAgICAgICAgICBmaWxsaW5nOiAnZmlsbGVkJ1xuICAgICAgICB9O1xuICAgICAgY2FzZSAnYWR2YW5jZWQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6ICdzbWFsbCcsXG4gICAgICAgICAgc3RhdGU6ICdwcmltYXJ5JyxcbiAgICAgICAgICBmaWxsaW5nOiAnZmlsbGVkJ1xuICAgICAgICB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiAnc21hbGwnLFxuICAgICAgICAgIHN0YXRlOiAncHJpbWFyeScsXG4gICAgICAgICAgZmlsbGluZzogJ2ZpbGxlZCdcbiAgICAgICAgfTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb2hvcnQtY2FyZFwiIFtjbGFzcy5zbWFsbF09XCJzaXplID09PSAnc21hbGwnXCIgW2NsYXNzLm1lZGl1bV09XCJzaXplID09PSAnbWVkaXVtJ1wiIFtjbGFzcy5sYXJnZV09XCJzaXplID09PSAnbGFyZ2UnXCI+XG4gIDxzYS1jYXJkIFtzaG93Q3VzdG9tQ2FyZEJvZHldPVwidHJ1ZVwiIFtjdXN0b21XcmFwcGVyQ2xhc3NdPVwiJ3NhLWNhcmQtY3VzdG9tLXdyYXBwZXInXCI+XG4gICAgPHNhLWNhcmQtY3VzdG9tLWJvZHk+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29ob3J0LWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRodW1ibmFpbC1jb250YWluZXJcIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwiZGF0YT8udGh1bWJuYWlsVXJsXCIgYWx0PVwiQ29ob3J0IHRodW1ibmFpbFwiIGNsYXNzPVwiY29ob3J0LXRodW1ibmFpbFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvaG9ydC1pbmZvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvaG9ydC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImNvaG9ydC10aXRsZVwiPnt7IGRhdGE/LnRpdGxlIH19PC9oMz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtY2hpcHNcIj5cbiAgICAgICAgICAgICAgPHNhLWNoaXAgKm5nRm9yPVwibGV0IHN0YXR1cyBvZiBkYXRhPy5zdGF0dXNlc1wiXG4gICAgICAgICAgICAgICAgW3RleHRdPVwic3RhdHVzLnRleHRcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cIidzbWFsbCdcIlxuICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0dXMuc3RhdGVcIlxuICAgICAgICAgICAgICAgIFtmaWxsaW5nXT1cInN0YXR1cy5maWxsaW5nXCJcbiAgICAgICAgICAgICAgICBbaWNvblBhdGhdPVwic3RhdHVzLmljb25QYXRoXCJcbiAgICAgICAgICAgICAgICBbaWNvblBvc2l0aW9uXT1cInN0YXR1cy5pY29uUG9zaXRpb25cIlxuICAgICAgICAgICAgICAgIFtsYXJnZVN0YXRlSWNvbl09XCJzdGF0dXMubGFyZ2VTdGF0ZUljb25cIlxuICAgICAgICAgICAgICAgIFtsYXJnZVN0YXRlVGV4dF09XCJzdGF0dXMubGFyZ2VTdGF0ZVRleHRcIj5cbiAgICAgICAgICAgICAgPC9zYS1jaGlwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvaG9ydC1tZXRhZGF0YVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb2hvcnQtZGVzY3JpcHRpb25cIj57eyBkYXRhPy5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb2hvcnQtc3VidGl0bGVcIj57eyBkYXRhPy5zdWJ0aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NhLWNhcmQtY3VzdG9tLWJvZHk+XG4gIDwvc2EtY2FyZD5cbjwvZGl2PlxuIl19
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export interface CohortStatus {
|
|
3
|
-
text: string;
|
|
4
|
-
type: 'regular' | 'small' | 'large';
|
|
5
|
-
state: 'primary' | 'secondary' | 'neutral' | 'error' | 'warning' | 'success';
|
|
6
|
-
filling: 'outline' | 'filled';
|
|
7
|
-
iconPath?: string;
|
|
8
|
-
iconPosition?: 'left' | 'right' | 'both' | '';
|
|
9
|
-
largeStateIcon?: string;
|
|
10
|
-
largeStateText?: string;
|
|
11
|
-
}
|
|
12
|
-
export interface CohortData {
|
|
13
|
-
title: string;
|
|
14
|
-
subtitle: string;
|
|
15
|
-
description: string;
|
|
16
|
-
thumbnailUrl: string;
|
|
17
|
-
statuses: CohortStatus[];
|
|
18
|
-
}
|
|
19
|
-
export declare class CohortCardComponent {
|
|
20
|
-
data: CohortData;
|
|
21
|
-
size: 'small' | 'medium' | 'large';
|
|
22
|
-
getChipConfig(status: string): Partial<CohortStatus>;
|
|
23
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CohortCardComponent, never>;
|
|
24
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CohortCardComponent, "sa-cohort-card", never, { "data": { "alias": "data"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
25
|
-
}
|