@fxlt/common-ui 0.0.4-rc2 → 0.0.5-rc1

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/fonts.css CHANGED
@@ -47,6 +47,76 @@
47
47
  font-style: normal;
48
48
  }
49
49
 
50
+ @font-face {
51
+ font-family: 'DMSans';
52
+ src: url('./dm-sans/DMSans-Thin.ttf') format('truetype');
53
+ font-weight: 200;
54
+ font-style: normal;
55
+ }
56
+
57
+ @font-face {
58
+ font-family: 'DMSans';
59
+ src: url('./dm-sans/DMSans-Light.ttf') format('truetype');
60
+ font-weight: 300;
61
+ font-style: normal;
62
+ }
63
+
64
+ @font-face {
65
+ font-family: 'DMSans';
66
+ src: url('./dm-sans/DMSans-Regular.ttf') format('truetype');
67
+ font-weight: 400;
68
+ font-style: normal;
69
+ }
70
+
71
+ @font-face {
72
+ font-family: 'DMSans';
73
+ src: url('./dm-sans/DMSans-Medium.ttf') format('truetype');
74
+ font-weight: 500;
75
+ font-style: normal;
76
+ }
77
+
78
+ @font-face {
79
+ font-family: 'DMSans';
80
+ src: url('./dm-sans/DMSans-SemiBold.ttf') format('truetype');
81
+ font-weight: 600;
82
+ font-style: normal;
83
+ }
84
+
85
+ @font-face {
86
+ font-family: 'DMSans';
87
+ src: url('./dm-sans/DMSans-Bold.ttf') format('truetype');
88
+ font-weight: 700;
89
+ font-style: normal;
90
+ }
91
+
92
+ @font-face {
93
+ font-family: 'Orbitron';
94
+ src: url('./orbitron/Orbitron-Regular.ttf') format('truetype');
95
+ font-weight: 400;
96
+ font-style: normal;
97
+ }
98
+
99
+ @font-face {
100
+ font-family: 'Orbitron';
101
+ src: url('./orbitron/Orbitron-Medium.ttf') format('truetype');
102
+ font-weight: 500;
103
+ font-style: normal;
104
+ }
105
+
106
+ @font-face {
107
+ font-family: 'Orbitron';
108
+ src: url('./orbitron/Orbitron-SemiBold.ttf') format('truetype');
109
+ font-weight: 600;
110
+ font-style: normal;
111
+ }
112
+
113
+ @font-face {
114
+ font-family: 'Orbitron';
115
+ src: url('./orbitron/Orbitron-Bold.ttf') format('truetype');
116
+ font-weight: 700;
117
+ font-style: normal;
118
+ }
119
+
50
120
  @font-face {
51
121
  font-family: 'SpaceMonoRegular';
52
122
  src: url('./SpaceMono-Regular.ttf') format('truetype');
package/index.d.ts CHANGED
@@ -1,41 +1,42 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { OnDestroy, Injector, ApplicationRef, OnInit, AfterViewInit, ChangeDetectorRef, Type, EventEmitter, ModuleWithProviders, TemplateRef, ViewContainerRef, ElementRef, RendererFactory2, AfterContentInit, QueryList, Renderer2, OnChanges, NgZone } from '@angular/core';
3
- import * as i39 from '@angular/material/paginator';
3
+ import * as _fxlt_common_ui from '@fxlt/common-ui';
4
+ import * as i40 from '@angular/material/paginator';
4
5
  import { MatPaginator } from '@angular/material/paginator';
5
- import * as i40 from '@angular/material/table';
6
+ import * as i41 from '@angular/material/table';
6
7
  import { MatTableDataSource, MatTable } from '@angular/material/table';
7
8
  import { HttpClient, HttpEvent, HttpErrorResponse, HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http';
8
9
  import * as rxjs from 'rxjs';
9
10
  import { Observable, Subject } from 'rxjs';
10
- import * as i27 from '@angular/forms';
11
+ import * as i28 from '@angular/forms';
11
12
  import { NgForm, NgControl, ControlValueAccessor, ValidationErrors } from '@angular/forms';
12
- import * as i42 from '@angular/material/dialog';
13
+ import * as i43 from '@angular/material/dialog';
13
14
  import { MatDialogRef, MatDialog } from '@angular/material/dialog';
14
15
  import { TranslateHttpLoader } from '@ngx-translate/http-loader';
15
16
  import * as i1 from '@ngx-translate/core';
16
17
  import { TranslateService } from '@ngx-translate/core';
17
18
  import { CanActivate, Router } from '@angular/router';
18
19
  import { EChartsOption } from 'echarts';
19
- import * as i33 from 'ngx-vflow';
20
+ import * as i34 from 'ngx-vflow';
20
21
  import { Node, Edge, Connection } from 'ngx-vflow';
21
- import * as i26 from '@angular/common';
22
- import * as i28 from '@danielmoncada/angular-datetime-picker';
23
- import * as i29 from '@danielmoncada/angular-datetime-picker-moment-adapter';
24
- import * as i32 from '@dimaslz/ng-heroicons';
25
- import * as i34 from 'ngx-echarts';
26
- import * as i35 from '@angular/material/select';
27
- import * as i36 from '@angular/material/radio';
28
- import * as i37 from '@angular/material/button';
29
- import * as i38 from '@angular/material/icon';
30
- import * as i41 from '@angular/material/snack-bar';
31
- import * as i43 from '@angular/material/checkbox';
32
- import * as i44 from '@angular/material/card';
33
- import * as i45 from '@angular/material/datepicker';
34
- import * as i46 from '@angular/material/timepicker';
35
- import * as i47 from '@angular/material/badge';
36
- import * as i48 from '@angular/material/expansion';
37
- import * as i49 from '@angular/material/form-field';
38
- import * as i50 from '@angular/material/menu';
22
+ import * as i27 from '@angular/common';
23
+ import * as i29 from '@danielmoncada/angular-datetime-picker';
24
+ import * as i30 from '@danielmoncada/angular-datetime-picker-moment-adapter';
25
+ import * as i33 from '@dimaslz/ng-heroicons';
26
+ import * as i35 from 'ngx-echarts';
27
+ import * as i36 from '@angular/material/select';
28
+ import * as i37 from '@angular/material/radio';
29
+ import * as i38 from '@angular/material/button';
30
+ import * as i39 from '@angular/material/icon';
31
+ import * as i42 from '@angular/material/snack-bar';
32
+ import * as i44 from '@angular/material/checkbox';
33
+ import * as i45 from '@angular/material/card';
34
+ import * as i46 from '@angular/material/datepicker';
35
+ import * as i47 from '@angular/material/timepicker';
36
+ import * as i48 from '@angular/material/badge';
37
+ import * as i49 from '@angular/material/expansion';
38
+ import * as i50 from '@angular/material/form-field';
39
+ import * as i51 from '@angular/material/menu';
39
40
 
40
41
  declare abstract class BaseComponent implements OnDestroy {
41
42
  protected injector: Injector;
@@ -111,6 +112,7 @@ declare class BaseTableComponent<T = any> extends BaseComponent implements OnIni
111
112
  toastr: FxToastrService;
112
113
  _lock: boolean;
113
114
  keywordChange$: Subject<string>;
115
+ dataSourcePlaceholder: any[];
114
116
  config: {
115
117
  create?: {
116
118
  dialog?: Type<{}>;
@@ -162,7 +164,9 @@ declare class BaseTableComponent<T = any> extends BaseComponent implements OnIni
162
164
  view(model: any): Promise<void>;
163
165
  delete(model: any): Promise<void>;
164
166
  remove(model: any): Promise<any>;
165
- value(model: any, key: string): any;
167
+ tagClass(tag: string): _fxlt_common_ui.TagType;
168
+ capitalize(label: string): string;
169
+ value(model: any, key: string, defaultValue?: any): any;
166
170
  toggleExpand(element: any): void;
167
171
  updateStatus(params: any): Promise<void>;
168
172
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseTableComponent<any>, never>;
@@ -237,6 +241,7 @@ declare class FxUtils {
237
241
  static getTagClass(key: string, isCriticalExist?: boolean): TagType;
238
242
  static validateEmail(value: string): boolean;
239
243
  static isStrongPassword(password: string): boolean;
244
+ static formatSizeUnits(bytes: number): string;
240
245
  }
241
246
 
242
247
  declare function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader;
@@ -686,8 +691,9 @@ declare class TagComponent {
686
691
  type: TagType;
687
692
  rounded: boolean;
688
693
  icon?: any;
694
+ solid: boolean;
689
695
  static ɵfac: i0.ɵɵFactoryDeclaration<TagComponent, never>;
690
- static ɵcmp: i0.ɵɵComponentDeclaration<TagComponent, "fx-ui-tag", never, { "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, {}, never, never, false, never>;
696
+ static ɵcmp: i0.ɵɵComponentDeclaration<TagComponent, "fx-ui-tag", never, { "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "solid": { "alias": "solid"; "required": false; }; }, {}, never, never, false, never>;
691
697
  }
692
698
 
693
699
  type IChartType = 'bar' | 'pie' | 'line' | 'sunburst' | 'radar' | 'auto';
@@ -700,13 +706,18 @@ declare class ChartComponent implements OnChanges, AfterViewInit, OnDestroy {
700
706
  palette?: string[];
701
707
  height: string;
702
708
  loading: boolean;
709
+ pieLegendAlign: any;
710
+ pieLegendPosition: any;
711
+ showPieLabel: boolean;
712
+ labelFontFamily: string;
703
713
  chartClick: EventEmitter<any>;
704
714
  chartInit: EventEmitter<any>;
705
715
  labelFontSize: number;
706
- labelFontFamily: string;
716
+ canInit: boolean;
707
717
  chartOptions: EChartsOption;
708
718
  private chartInstance?;
709
719
  private resizeObserver?;
720
+ private intersectionObserver?;
710
721
  constructor(ref: ElementRef, cdr: ChangeDetectorRef);
711
722
  ngAfterViewInit(): void;
712
723
  ngOnDestroy(): void;
@@ -720,7 +731,7 @@ declare class ChartComponent implements OnChanges, AfterViewInit, OnDestroy {
720
731
  private buildOptions;
721
732
  private resolvePalette;
722
733
  static ɵfac: i0.ɵɵFactoryDeclaration<ChartComponent, never>;
723
- static ɵcmp: i0.ɵɵComponentDeclaration<ChartComponent, "fx-ui-chart", never, { "type": { "alias": "type"; "required": false; }; "data": { "alias": "data"; "required": false; }; "options": { "alias": "options"; "required": false; }; "palette": { "alias": "palette"; "required": false; }; "height": { "alias": "height"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, { "chartClick": "chartClick"; "chartInit": "chartInit"; }, never, never, false, never>;
734
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChartComponent, "fx-ui-chart", never, { "type": { "alias": "type"; "required": false; }; "data": { "alias": "data"; "required": false; }; "options": { "alias": "options"; "required": false; }; "palette": { "alias": "palette"; "required": false; }; "height": { "alias": "height"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "pieLegendAlign": { "alias": "pieLegendAlign"; "required": false; }; "pieLegendPosition": { "alias": "pieLegendPosition"; "required": false; }; "showPieLabel": { "alias": "showPieLabel"; "required": false; }; "labelFontFamily": { "alias": "labelFontFamily"; "required": false; }; }, { "chartClick": "chartClick"; "chartInit": "chartInit"; }, never, never, false, never>;
724
735
  }
725
736
 
726
737
  declare class SliderComponent extends FxComponent<any> implements AfterViewInit {
@@ -849,6 +860,13 @@ declare class TreeDiagram implements AfterViewInit, OnDestroy {
849
860
  static ɵcmp: i0.ɵɵComponentDeclaration<TreeDiagram, "fx-ui-tree-diagram", never, { "data": { "alias": "data"; "required": false; }; }, {}, never, never, false, never>;
850
861
  }
851
862
 
863
+ declare class TableCell {
864
+ loading: boolean;
865
+ skeletonClass: string;
866
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableCell, never>;
867
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableCell, "fx-ui-table-cell", never, { "loading": { "alias": "loading"; "required": true; }; "skeletonClass": { "alias": "skeletonClass"; "required": false; }; }, {}, never, ["*"], false, never>;
868
+ }
869
+
852
870
  declare class ConfirmationDialogComponent {
853
871
  private ref;
854
872
  bindings: any;
@@ -875,9 +893,9 @@ declare const MY_MOMENT_FORMATS: {
875
893
  };
876
894
  declare class UiModule {
877
895
  static ɵfac: i0.ɵɵFactoryDeclaration<UiModule, never>;
878
- static ɵmod: i0.ɵɵNgModuleDeclaration<UiModule, [typeof InputComponent, typeof SelectComponent, typeof RadioButtonComponent, typeof CheckboxComponent, typeof DndUploadComponent, typeof ButtonComponent, typeof RadioButtonToggleComponent, typeof DatetimePicker, typeof LoadingPanel, typeof SearchBarComponent, typeof TabGroupComponent, typeof TabComponent, typeof HeroIconComponent, typeof ToastComponent, typeof ToastContainerComponent, typeof TagComponent, typeof ChartComponent, typeof SliderComponent, typeof SwitchComponent, typeof RichTextAreaComponent, typeof SkeletonTableLoadingComponent, typeof FlowConnection, typeof CircleProgressBar, typeof TreeDiagram, typeof ConfirmationDialogComponent], [typeof i26.CommonModule, typeof i27.FormsModule, typeof i27.ReactiveFormsModule, typeof i28.OwlDateTimeModule, typeof i28.OwlNativeDateTimeModule, typeof i29.OwlMomentDateTimeModule, typeof HasPermissionDirective, typeof TrimOnBlurDirective, typeof i32.NgHeroiconsModule, typeof i33.VflowComponent, typeof i33.HandleComponent, typeof i33.ResizableComponent, typeof i33.SelectableDirective, typeof i33.MiniMapComponent, typeof i33.NodeToolbarComponent, typeof i33.CustomTemplateEdgeComponent, typeof i33.DragHandleDirective, typeof i33.ConnectionControllerDirective, typeof i33.NodeHtmlTemplateDirective, typeof i33.NodeSvgTemplateDirective, typeof i33.GroupNodeTemplateDirective, typeof i33.EdgeLabelHtmlTemplateDirective, typeof i33.EdgeTemplateDirective, typeof i33.ConnectionTemplateDirective, typeof i33.HandleTemplateDirective, typeof i34.NgxEchartsModule, typeof i35.MatSelectModule, typeof i36.MatRadioModule, typeof i37.MatButtonModule, typeof i38.MatIconModule, typeof i39.MatPaginatorModule, typeof i40.MatTableModule, typeof i41.MatSnackBarModule, typeof i42.MatDialogModule, typeof i43.MatCheckboxModule, typeof i44.MatCardModule, typeof i45.MatDatepickerModule, typeof i46.MatTimepickerModule, typeof i47.MatBadgeModule, typeof i48.MatExpansionModule, typeof i49.MatFormFieldModule, typeof i50.MatMenuModule], [typeof InputComponent, typeof SelectComponent, typeof RadioButtonComponent, typeof CheckboxComponent, typeof DndUploadComponent, typeof ButtonComponent, typeof RadioButtonToggleComponent, typeof DatetimePicker, typeof LoadingPanel, typeof SearchBarComponent, typeof TabGroupComponent, typeof TabComponent, typeof HeroIconComponent, typeof ToastComponent, typeof ToastContainerComponent, typeof TagComponent, typeof ChartComponent, typeof SliderComponent, typeof SwitchComponent, typeof RichTextAreaComponent, typeof SkeletonTableLoadingComponent, typeof FlowConnection, typeof CircleProgressBar, typeof TreeDiagram, typeof ConfirmationDialogComponent, typeof i27.FormsModule, typeof i27.ReactiveFormsModule, typeof i28.OwlDateTimeModule, typeof i28.OwlNativeDateTimeModule, typeof HasPermissionDirective, typeof i32.NgHeroiconsModule, typeof i35.MatSelectModule, typeof i36.MatRadioModule, typeof i37.MatButtonModule, typeof i38.MatIconModule, typeof i39.MatPaginatorModule, typeof i40.MatTableModule, typeof i41.MatSnackBarModule, typeof i42.MatDialogModule, typeof i43.MatCheckboxModule, typeof i44.MatCardModule, typeof i45.MatDatepickerModule, typeof i46.MatTimepickerModule, typeof i47.MatBadgeModule, typeof i48.MatExpansionModule, typeof i49.MatFormFieldModule, typeof i50.MatMenuModule]>;
896
+ static ɵmod: i0.ɵɵNgModuleDeclaration<UiModule, [typeof InputComponent, typeof SelectComponent, typeof RadioButtonComponent, typeof CheckboxComponent, typeof DndUploadComponent, typeof ButtonComponent, typeof RadioButtonToggleComponent, typeof DatetimePicker, typeof LoadingPanel, typeof SearchBarComponent, typeof TabGroupComponent, typeof TabComponent, typeof HeroIconComponent, typeof ToastComponent, typeof ToastContainerComponent, typeof TagComponent, typeof ChartComponent, typeof SliderComponent, typeof SwitchComponent, typeof RichTextAreaComponent, typeof SkeletonTableLoadingComponent, typeof FlowConnection, typeof CircleProgressBar, typeof TreeDiagram, typeof TableCell, typeof ConfirmationDialogComponent], [typeof i27.CommonModule, typeof i28.FormsModule, typeof i28.ReactiveFormsModule, typeof i29.OwlDateTimeModule, typeof i29.OwlNativeDateTimeModule, typeof i30.OwlMomentDateTimeModule, typeof HasPermissionDirective, typeof TrimOnBlurDirective, typeof i33.NgHeroiconsModule, typeof i34.VflowComponent, typeof i34.HandleComponent, typeof i34.ResizableComponent, typeof i34.SelectableDirective, typeof i34.MiniMapComponent, typeof i34.NodeToolbarComponent, typeof i34.CustomTemplateEdgeComponent, typeof i34.DragHandleDirective, typeof i34.ConnectionControllerDirective, typeof i34.NodeHtmlTemplateDirective, typeof i34.NodeSvgTemplateDirective, typeof i34.GroupNodeTemplateDirective, typeof i34.EdgeLabelHtmlTemplateDirective, typeof i34.EdgeTemplateDirective, typeof i34.ConnectionTemplateDirective, typeof i34.HandleTemplateDirective, typeof i35.NgxEchartsModule, typeof i36.MatSelectModule, typeof i37.MatRadioModule, typeof i38.MatButtonModule, typeof i39.MatIconModule, typeof i40.MatPaginatorModule, typeof i41.MatTableModule, typeof i42.MatSnackBarModule, typeof i43.MatDialogModule, typeof i44.MatCheckboxModule, typeof i45.MatCardModule, typeof i46.MatDatepickerModule, typeof i47.MatTimepickerModule, typeof i48.MatBadgeModule, typeof i49.MatExpansionModule, typeof i50.MatFormFieldModule, typeof i51.MatMenuModule], [typeof InputComponent, typeof SelectComponent, typeof RadioButtonComponent, typeof CheckboxComponent, typeof DndUploadComponent, typeof ButtonComponent, typeof RadioButtonToggleComponent, typeof DatetimePicker, typeof LoadingPanel, typeof SearchBarComponent, typeof TabGroupComponent, typeof TabComponent, typeof HeroIconComponent, typeof ToastComponent, typeof ToastContainerComponent, typeof TagComponent, typeof ChartComponent, typeof SliderComponent, typeof SwitchComponent, typeof RichTextAreaComponent, typeof SkeletonTableLoadingComponent, typeof FlowConnection, typeof CircleProgressBar, typeof TreeDiagram, typeof TableCell, typeof ConfirmationDialogComponent, typeof i28.FormsModule, typeof i28.ReactiveFormsModule, typeof i29.OwlDateTimeModule, typeof i29.OwlNativeDateTimeModule, typeof HasPermissionDirective, typeof i33.NgHeroiconsModule, typeof i36.MatSelectModule, typeof i37.MatRadioModule, typeof i38.MatButtonModule, typeof i39.MatIconModule, typeof i40.MatPaginatorModule, typeof i41.MatTableModule, typeof i42.MatSnackBarModule, typeof i43.MatDialogModule, typeof i44.MatCheckboxModule, typeof i45.MatCardModule, typeof i46.MatDatepickerModule, typeof i47.MatTimepickerModule, typeof i48.MatBadgeModule, typeof i49.MatExpansionModule, typeof i50.MatFormFieldModule, typeof i51.MatMenuModule]>;
879
897
  static ɵinj: i0.ɵɵInjectorDeclaration<UiModule>;
880
898
  }
881
899
 
882
- export { AuthInterceptor, AuthStateService, BaseComponent, BaseDialogComponent, BaseResolver, BaseTableComponent, BreadcrumbService, ButtonComponent, ChartComponent, CheckboxComponent, CircleProgressBar, ConfirmationDialogComponent, DatetimePicker, DndUploadComponent, FlowConnection, FxLoadingService, FxStorageService, FxToastrService, FxUtils, HasPermissionDirective, HeroIconComponent, HttpLoaderFactory, HttpWrapper, InputComponent, LoadingPanel, MY_MOMENT_FORMATS, PermissionGuard, PermissionService, QuillStyleLoaderService, RadioButtonComponent, RadioButtonToggleComponent, RichTextAreaComponent, SearchBarComponent, SelectComponent, SkeletonTableLoadingComponent, SliderComponent, SwitchComponent, TabComponent, TabGroupComponent, TagComponent, ThemeService, ToastComponent, ToastContainerComponent, TranslationModule, TranslationService, TreeDiagram, TrimOnBlurDirective, UiModule };
900
+ export { AuthInterceptor, AuthStateService, BaseComponent, BaseDialogComponent, BaseResolver, BaseTableComponent, BreadcrumbService, ButtonComponent, ChartComponent, CheckboxComponent, CircleProgressBar, ConfirmationDialogComponent, DatetimePicker, DndUploadComponent, FlowConnection, FxLoadingService, FxStorageService, FxToastrService, FxUtils, HasPermissionDirective, HeroIconComponent, HttpLoaderFactory, HttpWrapper, InputComponent, LoadingPanel, MY_MOMENT_FORMATS, PermissionGuard, PermissionService, QuillStyleLoaderService, RadioButtonComponent, RadioButtonToggleComponent, RichTextAreaComponent, SearchBarComponent, SelectComponent, SkeletonTableLoadingComponent, SliderComponent, SwitchComponent, TabComponent, TabGroupComponent, TableCell, TagComponent, ThemeService, ToastComponent, ToastContainerComponent, TranslationModule, TranslationService, TreeDiagram, TrimOnBlurDirective, UiModule };
883
901
  export type { Breadcrumb, IChartType, IRadioButton, TableResult, TagType, ToastData, TreeNode, UploadResult };
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fxlt/common-ui",
3
- "version": "0.0.4-rc2",
3
+ "version": "0.0.5-rc1",
4
4
  "license": "MIT",
5
5
  "main": "bundles/ui.umd.js",
6
6
  "module": "fesm2022/fxlt-common-ui.mjs",
@@ -36,8 +36,6 @@
36
36
  "ngx-vflow": "^1.16.2"
37
37
  },
38
38
  "exports": {
39
- "./SpaceMono-Regular.ttf": "./SpaceMono-Regular.ttf",
40
- "./BeVietnamPro-Regular.ttf": "./BeVietnamPro-Regular.ttf",
41
39
  "./tailwind-config": "./tailwind.config.js",
42
40
  "./tailwind.css": "./tailwind.css",
43
41
  "./theme.css": "./theme.css",
@@ -113,3 +113,18 @@
113
113
  .fade-out-animation {
114
114
  animation: fade-out 0.4s ease-out forwards;
115
115
  }
116
+
117
+ @keyframes pulse-glow {
118
+ 0%,
119
+ 100% {
120
+ opacity: 1;
121
+ filter: brightness(1);
122
+ }
123
+ 50% {
124
+ opacity: 0.7;
125
+ filter: brightness(1.4);
126
+ }
127
+ }
128
+ .animate-pulse-glow {
129
+ animation: pulse-glow 3s ease-in-out infinite;
130
+ }
@@ -93,7 +93,7 @@
93
93
  padding-top: 4px !important;
94
94
  padding-bottom: 4px !important;
95
95
  line-height: 24px !important;
96
- font-family: 'BeVietnamProRegular';
96
+ font-family: 'BeVietnamPro';
97
97
  }
98
98
 
99
99
  .mdc-data-table__row {
@@ -104,11 +104,7 @@
104
104
  .mdc-data-table__cell {
105
105
  border-left: 1px solid rgb(var(--border-default)) !important;
106
106
  background-color: rgb(var(--bg-primary)) !important;
107
- /* padding-top: 8px !important;
108
- padding-bottom: 8px !important;
109
- padding-left: 16px !important;
110
- padding-right: 16px !important; */
111
- font-family: 'BeVietnamProRegular';
107
+ font-family: 'BeVietnamPro';
112
108
  }
113
109
 
114
110
  .mat-mdc-cell {
@@ -181,6 +177,9 @@ input[type='password'] {
181
177
  .txt-heading-07 {
182
178
  @apply font-semibold text-sm tracking-normal leading-5 text-text-primary;
183
179
  }
180
+ .txt-heading-table {
181
+ @apply text-base font-dmsans font-semibold text-text-primary tracking-tight;
182
+ }
184
183
  .txt-heading-compact-02 {
185
184
  @apply font-semibold text-sm tracking-normal leading-5 text-text-primary;
186
185
  }
@@ -381,6 +380,27 @@ input[type='password'] {
381
380
  .tag-information {
382
381
  @apply tag-common bg-information/10;
383
382
  }
383
+ .tag-default-solid {
384
+ @apply tag-common bg-bg-hover;
385
+ }
386
+ .tag-success-solid {
387
+ @apply tag-common bg-success;
388
+ }
389
+ .tag-warning-solid {
390
+ @apply tag-common bg-warning;
391
+ }
392
+ .tag-danger-solid {
393
+ @apply tag-common bg-danger;
394
+ }
395
+ .tag-critical-solid {
396
+ @apply tag-common bg-critical;
397
+ }
398
+ .tag-discovery-solid {
399
+ @apply tag-common bg-discovery;
400
+ }
401
+ .tag-information-solid {
402
+ @apply tag-common bg-information;
403
+ }
384
404
  .tag-square {
385
405
  @apply rounded px-semi py-small;
386
406
  }
@@ -389,25 +409,12 @@ input[type='password'] {
389
409
  }
390
410
  /* progress bar */
391
411
  .progress-bar-container {
392
- @apply bg-bg-hover mt-semi rounded-full h-1.5 overflow-hidden shadow-inner;
412
+ @apply bg-bg-hover mt-semi rounded-md h-1.5 overflow-hidden shadow-inner;
393
413
  }
394
414
  .progress-bar-buffer {
395
- @apply h-1.5 bg-primary rounded-full transition-all duration-700 ease-in-out animate-pulse-glow;
396
- }
397
- @keyframes pulse-glow {
398
- 0%,
399
- 100% {
400
- opacity: 1;
401
- filter: brightness(1);
402
- }
403
- 50% {
404
- opacity: 0.7;
405
- filter: brightness(1.4);
406
- }
407
- }
408
- .animate-pulse-glow {
409
- animation: pulse-glow 3s ease-in-out infinite;
415
+ @apply h-1.5 bg-primary rounded-md transition-all duration-700 ease-in-out;
410
416
  }
417
+
411
418
  /* radio button */
412
419
  .radio-container {
413
420
  @apply w-large h-large flex items-center justify-center rounded-full border;
@@ -451,3 +458,16 @@ input[type='password'] {
451
458
  .dialog-header {
452
459
  @apply px-xl py-semi;
453
460
  }
461
+ .border-gradient-primary {
462
+ border: 1px solid transparent;
463
+ background:
464
+ linear-gradient(var(--surface, #fff), var(--surface, #fff)) padding-box,
465
+ linear-gradient(
466
+ 135deg,
467
+ rgb(var(--gradient-primary-start)),
468
+ rgb(var(--gradient-primary-end))
469
+ ) border-box;
470
+ }
471
+ .skeleton-load {
472
+ @apply rounded bg-gray-200 animate-pulse motion-reduce:animate-none;
473
+ }
@@ -47,6 +47,76 @@
47
47
  font-style: normal;
48
48
  }
49
49
 
50
+ @font-face {
51
+ font-family: 'DMSans';
52
+ src: url('./dm-sans/DMSans-Thin.ttf') format('truetype');
53
+ font-weight: 200;
54
+ font-style: normal;
55
+ }
56
+
57
+ @font-face {
58
+ font-family: 'DMSans';
59
+ src: url('./dm-sans/DMSans-Light.ttf') format('truetype');
60
+ font-weight: 300;
61
+ font-style: normal;
62
+ }
63
+
64
+ @font-face {
65
+ font-family: 'DMSans';
66
+ src: url('./dm-sans/DMSans-Regular.ttf') format('truetype');
67
+ font-weight: 400;
68
+ font-style: normal;
69
+ }
70
+
71
+ @font-face {
72
+ font-family: 'DMSans';
73
+ src: url('./dm-sans/DMSans-Medium.ttf') format('truetype');
74
+ font-weight: 500;
75
+ font-style: normal;
76
+ }
77
+
78
+ @font-face {
79
+ font-family: 'DMSans';
80
+ src: url('./dm-sans/DMSans-SemiBold.ttf') format('truetype');
81
+ font-weight: 600;
82
+ font-style: normal;
83
+ }
84
+
85
+ @font-face {
86
+ font-family: 'DMSans';
87
+ src: url('./dm-sans/DMSans-Bold.ttf') format('truetype');
88
+ font-weight: 700;
89
+ font-style: normal;
90
+ }
91
+
92
+ @font-face {
93
+ font-family: 'Orbitron';
94
+ src: url('./orbitron/Orbitron-Regular.ttf') format('truetype');
95
+ font-weight: 400;
96
+ font-style: normal;
97
+ }
98
+
99
+ @font-face {
100
+ font-family: 'Orbitron';
101
+ src: url('./orbitron/Orbitron-Medium.ttf') format('truetype');
102
+ font-weight: 500;
103
+ font-style: normal;
104
+ }
105
+
106
+ @font-face {
107
+ font-family: 'Orbitron';
108
+ src: url('./orbitron/Orbitron-SemiBold.ttf') format('truetype');
109
+ font-weight: 600;
110
+ font-style: normal;
111
+ }
112
+
113
+ @font-face {
114
+ font-family: 'Orbitron';
115
+ src: url('./orbitron/Orbitron-Bold.ttf') format('truetype');
116
+ font-weight: 700;
117
+ font-style: normal;
118
+ }
119
+
50
120
  @font-face {
51
121
  font-family: 'SpaceMonoRegular';
52
122
  src: url('./SpaceMono-Regular.ttf') format('truetype');
@@ -1,4 +1,6 @@
1
1
  .light_theme {
2
+ --gradient-primary-start: 156 129 255;
3
+ --gradient-primary-end: 4 255 135;
2
4
  --bg-primary: 255 255 255;
3
5
  --primary: 236 25 56;
4
6
  --success: 15 140 96;
@@ -31,6 +33,8 @@
31
33
  }
32
34
 
33
35
  :root {
36
+ --gradient-primary-start: 156 129 255;
37
+ --gradient-primary-end: 4 255 135;
34
38
  --bg-primary: 12 14 18;
35
39
  --primary: 236 25 56;
36
40
  --success: 76 175 80;
@@ -40,7 +44,7 @@
40
44
  --discovery: 119 113 227;
41
45
  --information: 62 175 240;
42
46
  --text-primary: 247 247 247;
43
- --text-secondary: 148 151 156;
47
+ --text-secondary: 97 101 108;
44
48
  --border-default: 55 58 65;
45
49
  --text-placeholder: 133 136 142;
46
50
  --step-bg: 255 255 255;
@@ -1,13 +1,15 @@
1
1
  <div class="chart-wrapper" [style.height]="height" [class.loading]="loading">
2
- <div
3
- echarts
4
- [options]="chartOptions"
5
- (chartInit)="onChartInit($event)"
6
- (chartClick)="onChartClick($event)"
7
- class="w-full h-full">
8
- </div>
2
+ <ng-container *ngIf="canInit">
3
+ <div
4
+ echarts
5
+ [options]="chartOptions"
6
+ (chartInit)="onChartInit($event)"
7
+ (chartClick)="onChartClick($event)"
8
+ class="w-full h-full">
9
+ </div>
10
+ </ng-container>
9
11
 
10
12
  <div class="chart-loader" *ngIf="loading">
11
13
  <span class="txt-default">Loading...</span>
12
14
  </div>
13
- </div>
15
+ </div>
@@ -0,0 +1,7 @@
1
+ @if (!loading) {
2
+ <div animate.enter="fade-in-animation" class="inline-block my-normal">
3
+ <ng-content />
4
+ </div>
5
+ } @else {
6
+ <div animate.enter="fade-in-animation" class="skeleton-load my-semi" [class]="skeletonClass"></div>
7
+ }
@@ -1,43 +1,15 @@
1
1
  <div
2
- class="flex flex-row gap-1"
3
- [class]="rounded ? 'tag-round' : 'tag-square'"
4
- [ngClass]="{
5
- 'tag-critical': type === 'critical',
6
- 'tag-success': type === 'success',
7
- 'tag-warning': type === 'warning',
8
- 'tag-information': type === 'information',
9
- 'tag-discovery': type === 'discovery',
10
- 'tag-danger': type === 'danger',
11
- 'tag-default': type === 'default'
12
- }"
2
+ [class]="`flex flex-row gap-small ${rounded ? 'tag-round' : 'tag-square'} tag-${type}${solid ? '-solid' : ''}`"
13
3
  >
14
- @if(icon){<fx-ui-hero-icon
15
- class="flex"
4
+ @if(icon){
5
+ <fx-ui-hero-icon
6
+ [class]="`flex txt-tag-${type} ${solid ? 'text-white': ''}`"
16
7
  [icon]="icon"
17
8
  [size]="18"
18
- [ngClass]="{
19
- 'text-critical': type === 'critical',
20
- 'text-success': type === 'success',
21
- 'text-warning': type === 'warning',
22
- 'text-information': type === 'information',
23
- 'text-discovery': type === 'discovery',
24
- 'text-danger': type === 'danger',
25
- 'text-text-primary': type === 'default',
26
- }"
27
- ></fx-ui-hero-icon
28
- >}
9
+ ></fx-ui-hero-icon>
10
+ }
29
11
 
30
- <div
31
- [ngClass]="{
32
- 'txt-tag-critical': type === 'critical',
33
- 'txt-tag-success': type === 'success',
34
- 'txt-tag-warning': type === 'warning',
35
- 'txt-tag-information': type === 'information',
36
- 'txt-tag-discovery': type === 'discovery',
37
- 'txt-tag-danger': type === 'danger',
38
- 'txt-tag-default': type === 'default',
39
- }"
40
- >
12
+ <div [class]="`txt-tag-${type} ${solid ? 'text-white': ''}`">
41
13
  {{ label }}
42
14
  </div>
43
15
  </div>
@@ -2,6 +2,8 @@ module.exports = {
2
2
  theme: {
3
3
  extend: {
4
4
  colors: {
5
+ 'gradient-primary-start': 'rgb(var(--gradient-primary-start) / <alpha-value>)',
6
+ 'gradient-primary-end': 'rgb(var(--gradient-primary-end) / <alpha-value>)',
5
7
  primary: 'rgb(var(--primary) / <alpha-value>)',
6
8
  success: 'rgb(var(--success) / <alpha-value>)',
7
9
  danger: 'rgb(var(--danger) / <alpha-value>)',
@@ -37,6 +39,10 @@ module.exports = {
37
39
  primary: 'rgb(var(--button-primary) / <alpha-value>)',
38
40
  },
39
41
  },
42
+ backgroundImage: {
43
+ 'gradient-primary':
44
+ 'linear-gradient(135deg, rgb(var(--gradient-primary-start)) 0%, rgb(var(--gradient-primary-end)) 100%)',
45
+ },
40
46
  screens: {
41
47
  sm: '640px',
42
48
  md: '960px',
@@ -62,6 +68,9 @@ module.exports = {
62
68
  },
63
69
  fontFamily:{
64
70
  spmono: ['SpaceMonoRegular', 'monospace'],
71
+ dmsans: ['DMSans', 'sans-serif'],
72
+ orbitron: ['Orbitron', 'sans-serif'],
73
+ bevn: ['BeVietnamPro', 'sans-serif'],
65
74
  },
66
75
  fontSize: {
67
76
  xs: '0.75rem',
package/theme.css CHANGED
@@ -1,4 +1,6 @@
1
1
  .light_theme {
2
+ --gradient-primary-start: 156 129 255;
3
+ --gradient-primary-end: 4 255 135;
2
4
  --bg-primary: 255 255 255;
3
5
  --primary: 236 25 56;
4
6
  --success: 15 140 96;
@@ -31,6 +33,8 @@
31
33
  }
32
34
 
33
35
  :root {
36
+ --gradient-primary-start: 156 129 255;
37
+ --gradient-primary-end: 4 255 135;
34
38
  --bg-primary: 12 14 18;
35
39
  --primary: 236 25 56;
36
40
  --success: 76 175 80;
@@ -40,7 +44,7 @@
40
44
  --discovery: 119 113 227;
41
45
  --information: 62 175 240;
42
46
  --text-primary: 247 247 247;
43
- --text-secondary: 148 151 156;
47
+ --text-secondary: 97 101 108;
44
48
  --border-default: 55 58 65;
45
49
  --text-placeholder: 133 136 142;
46
50
  --step-bg: 255 255 255;