@rangertechnologies/fusion-ui 0.1.5 → 0.1.7

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rangertechnologies/fusion-ui",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "author": "Mohamed Riyaz Y",
5
5
  "license": "ISC",
6
6
  "description": "Shared component library for Fusion platform and micro-frontends",
@@ -0,0 +1,87 @@
1
+ /* MR 09NOV26 Standardize tabs and sub-tabs to modern underline indicator specification */
2
+
3
+ /* ==========================================================================
4
+ Main Navigation Tabs (.fc-tabs / .nav-tabs)
5
+ ========================================================================== */
6
+
7
+ .nav-tabs,
8
+ .fc-tabs {
9
+ display: flex;
10
+ flex-wrap: nowrap;
11
+ border-bottom: 1px solid var(--border-color, #E2E8F0);
12
+ gap: 4px;
13
+ list-style: none;
14
+ padding: 0;
15
+ margin: 0;
16
+ }
17
+
18
+ .nav-tabs .nav-link,
19
+ .fc-tabs .nav-link {
20
+ background-color: transparent;
21
+ border: none;
22
+ border-bottom: 3.5px solid transparent;
23
+ margin-bottom: -1px; /* Sits flush on top of the 1px container border */
24
+ font-size: var(--fs-normal, 14px);
25
+ font-weight: var(--fw-500, 500);
26
+ color: var(--label-text-color, #475569);
27
+ padding: 10px 18px;
28
+ display: inline-flex;
29
+ align-items: center;
30
+ gap: 6px;
31
+ cursor: pointer;
32
+ transition: color 0.15s ease-in-out, border-color 0.15s ease-in-out;
33
+ }
34
+
35
+ .nav-tabs .nav-link:hover,
36
+ .fc-tabs .nav-link:hover {
37
+ color: var(--fc-text-color-dark, #0F172A);
38
+ }
39
+
40
+ .nav-tabs .nav-link.active,
41
+ .fc-tabs .nav-link.active {
42
+ color: var(--fc-primary-color, #0140C1);
43
+ font-weight: var(--fw-600, 600);
44
+ border-bottom: 3.5px solid var(--fc-primary-color, #0140C1);
45
+ }
46
+
47
+ /* ==========================================================================
48
+ Secondary Sub-Tabs (.sub-nav-head / .sub-nav)
49
+ ========================================================================== */
50
+
51
+ .sub-nav-head {
52
+ display: flex;
53
+ flex-wrap: nowrap;
54
+ overflow-x: auto;
55
+ border-bottom: 1px solid var(--border-color, #E2E8F0);
56
+ gap: 4px;
57
+ list-style: none;
58
+ padding: 0;
59
+ margin: 0;
60
+ }
61
+
62
+ .sub-nav {
63
+ background: transparent;
64
+ border: none;
65
+ border-bottom: 3.5px solid transparent;
66
+ margin-bottom: -1px;
67
+ padding: 8px 16px;
68
+ font-size: var(--fs-normal, 14px);
69
+ font-weight: var(--fw-500, 500);
70
+ color: var(--label-text-color, #475569);
71
+ cursor: pointer;
72
+ display: inline-flex;
73
+ align-items: center;
74
+ gap: 6px;
75
+ transition: color 0.15s ease-in-out, border-color 0.15s ease-in-out;
76
+ }
77
+
78
+ .sub-nav:hover {
79
+ color: var(--fc-text-color-dark, #0F172A);
80
+ }
81
+
82
+ .sub-nav.active {
83
+ color: var(--fc-primary-color, #0140C1);
84
+ font-weight: var(--fw-600, 600);
85
+ border-bottom: 3.5px solid var(--fc-primary-color, #0140C1);
86
+ }
87
+
@@ -1,16 +1,17 @@
1
1
  import * as i0 from "@angular/core";
2
- import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, PipeTransform, QueryList, SimpleChanges } from "@angular/core";
2
+ import { ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, OnChanges, OnDestroy, OnInit, PipeTransform, QueryList, Renderer2, SimpleChanges } from "@angular/core";
3
3
  import { Observable, Subject, Subscription } from "rxjs";
4
4
  import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams, HttpResponse } from "@angular/common/http";
5
5
  import { Overlay, ScrollStrategy } from "@angular/cdk/overlay";
6
6
  import { Modal } from "bootstrap";
7
- import { FormBuilder, FormGroup } from "@angular/forms";
7
+ import { FormBuilder, FormControl, FormGroup } from "@angular/forms";
8
8
  import { DatePipe } from "@angular/common";
9
9
  import { TranslateService } from "@ngx-translate/core";
10
10
  import { Router } from "@angular/router";
11
11
  import { MatTableDataSource } from "@angular/material/table";
12
- import { MatPaginator, MatPaginatorIntl } from "@angular/material/paginator";
13
12
  import { MatSort } from "@angular/material/sort";
13
+ import { MatPaginator, MatPaginatorIntl } from "@angular/material/paginator";
14
+ import { DomSanitizer, SafeResourceUrl } from "@angular/platform-browser";
14
15
  export declare class FusionButtonComponent implements OnInit {
15
16
  private elementRef;
16
17
  private cdr;
@@ -1161,11 +1162,25 @@ export declare class DataTableComponent implements OnInit {
1161
1162
  dropdownLists: any;
1162
1163
  dateDropdown: boolean;
1163
1164
  from: any;
1165
+ isSandwichLeave: boolean;
1166
+ isCheckButton: boolean;
1167
+ monthArray: any;
1168
+ yearArray: any;
1169
+ year: any;
1170
+ month: any;
1171
+ button: any;
1172
+ exportDisable: boolean;
1173
+ defaultWorkingHours: number;
1174
+ set saveLOP(val: boolean);
1175
+ get saveLOP(): boolean;
1176
+ isAttendanceTable: boolean;
1164
1177
  dateEmit: EventEmitter<any>;
1165
1178
  selectedValues: EventEmitter<any[]>;
1166
1179
  tableRowClick: EventEmitter<any>;
1180
+ rowClick: EventEmitter<any>;
1167
1181
  filteredArray: EventEmitter<any>;
1168
1182
  searchFilterData: EventEmitter<any>;
1183
+ searchValueChange: EventEmitter<any>;
1169
1184
  onEditData: EventEmitter<any>;
1170
1185
  onCloneData: EventEmitter<any>;
1171
1186
  onSendData: EventEmitter<any>;
@@ -1203,6 +1218,13 @@ export declare class DataTableComponent implements OnInit {
1203
1218
  }>;
1204
1219
  searchText: EventEmitter<string>;
1205
1220
  dropdownDataEmit: EventEmitter<any>;
1221
+ checkClicked: EventEmitter<any>;
1222
+ yearDataEmit: EventEmitter<any>;
1223
+ selectedValueEmit: EventEmitter<any>;
1224
+ monthDataEmit: EventEmitter<any>;
1225
+ doubleClickEmit: EventEmitter<any>;
1226
+ hyperLinkClickEmit: EventEmitter<any>;
1227
+ tableParamsChange: EventEmitter<any>;
1206
1228
  paginator: MatPaginator;
1207
1229
  sort: MatSort;
1208
1230
  editInput: ElementRef;
@@ -1314,8 +1336,33 @@ export declare class DataTableComponent implements OnInit {
1314
1336
  isObjectColumn(column: string): boolean;
1315
1337
  onSideNavInfoClick(data: any, col: any, config: any): void;
1316
1338
  onColumnClick(column: string): void;
1339
+ selectedMonth: number;
1340
+ selectedYear: number;
1341
+ popupOpen: boolean;
1342
+ confirmModal: boolean;
1343
+ months: string[];
1344
+ weekendColumnsSet: Set<string>;
1345
+ futureColumnsSet: Set<string>;
1346
+ todayColumn: string | null;
1347
+ leaveTypeSet: Set<string>;
1348
+ updateDateLookups(): void;
1349
+ isWeekend(column: string): boolean;
1350
+ isToday(column: string): boolean;
1351
+ isFutureDate(column: string): boolean;
1352
+ getInitials(name: string): string;
1353
+ isNearTarget(workingDays: any, totalDays: any): boolean;
1354
+ isLeaveType(status: any): boolean;
1355
+ prevMonth(): void;
1356
+ nextMonth(): void;
1357
+ togglePopup(): void;
1358
+ selectMonth(monthIndex: number): void;
1359
+ changeYear(step: number): void;
1360
+ emitSelection(): void;
1361
+ checkButtonClicked(): void;
1362
+ doubleClickFunction(element: any, data: any, presentData: any): void;
1363
+ getMonthNumber(month: any): number;
1317
1364
  static ɵfac: i0.ɵɵFactoryDeclaration<DataTableComponent, never>;
1318
- static ɵcmp: i0.ɵɵComponentDeclaration<DataTableComponent, "app-data-table", never, {
1365
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataTableComponent, "app-data-table, app-data-table-two", never, {
1319
1366
  "data": {
1320
1367
  "alias": "data";
1321
1368
  "required": false;
@@ -1564,6 +1611,50 @@ export declare class DataTableComponent implements OnInit {
1564
1611
  "alias": "from";
1565
1612
  "required": false;
1566
1613
  };
1614
+ "isSandwichLeave": {
1615
+ "alias": "isSandwichLeave";
1616
+ "required": false;
1617
+ };
1618
+ "isCheckButton": {
1619
+ "alias": "isCheckButton";
1620
+ "required": false;
1621
+ };
1622
+ "monthArray": {
1623
+ "alias": "monthArray";
1624
+ "required": false;
1625
+ };
1626
+ "yearArray": {
1627
+ "alias": "yearArray";
1628
+ "required": false;
1629
+ };
1630
+ "year": {
1631
+ "alias": "year";
1632
+ "required": false;
1633
+ };
1634
+ "month": {
1635
+ "alias": "month";
1636
+ "required": false;
1637
+ };
1638
+ "button": {
1639
+ "alias": "button";
1640
+ "required": false;
1641
+ };
1642
+ "exportDisable": {
1643
+ "alias": "exportDisable";
1644
+ "required": false;
1645
+ };
1646
+ "defaultWorkingHours": {
1647
+ "alias": "defaultWorkingHours";
1648
+ "required": false;
1649
+ };
1650
+ "saveLOP": {
1651
+ "alias": "saveLOP";
1652
+ "required": false;
1653
+ };
1654
+ "isAttendanceTable": {
1655
+ "alias": "isAttendanceTable";
1656
+ "required": false;
1657
+ };
1567
1658
  "exportButtonLoadingSpinner": {
1568
1659
  "alias": "exportButtonLoadingSpinner";
1569
1660
  "required": false;
@@ -1580,8 +1671,10 @@ export declare class DataTableComponent implements OnInit {
1580
1671
  "dateEmit": "dateEmit";
1581
1672
  "selectedValues": "selectedValues";
1582
1673
  "tableRowClick": "tableRowClick";
1674
+ "rowClick": "rowClick";
1583
1675
  "filteredArray": "filteredArray";
1584
1676
  "searchFilterData": "searchFilterData";
1677
+ "searchValueChange": "searchValueChange";
1585
1678
  "onEditData": "onEditData";
1586
1679
  "onCloneData": "onCloneData";
1587
1680
  "onSendData": "onSendData";
@@ -1608,8 +1701,247 @@ export declare class DataTableComponent implements OnInit {
1608
1701
  "sideNavEmit": "sideNavEmit";
1609
1702
  "searchText": "searchText";
1610
1703
  "dropdownDataEmit": "dropdownDataEmit";
1704
+ "checkClicked": "checkClicked";
1705
+ "yearDataEmit": "yearDataEmit";
1706
+ "selectedValueEmit": "selectedValueEmit";
1707
+ "monthDataEmit": "monthDataEmit";
1708
+ "doubleClickEmit": "doubleClickEmit";
1709
+ "hyperLinkClickEmit": "hyperLinkClickEmit";
1710
+ "tableParamsChange": "tableParamsChange";
1711
+ }, never, ["[table-toolbar-left]", "[table-toolbar-right]"], true, never>;
1712
+ }
1713
+ export declare class FusionCardComponent implements OnInit {
1714
+ private sanitizer;
1715
+ private renderer;
1716
+ private apiService;
1717
+ private datePipe;
1718
+ private loaderService;
1719
+ private cdr;
1720
+ private _cardData;
1721
+ set cardData(data: any);
1722
+ get cardData(): any[];
1723
+ from: any;
1724
+ comp: any;
1725
+ cardButtonEmit: EventEmitter<any>;
1726
+ deleteModal: boolean;
1727
+ deleteData: any;
1728
+ currentOpenIndex: number | null;
1729
+ clickListener: any;
1730
+ modalDirect: Modal;
1731
+ safeSrc: SafeResourceUrl | null;
1732
+ isLoading: boolean[];
1733
+ isViewLoading: boolean[];
1734
+ popupTitle: any;
1735
+ file: ElementRef<any>;
1736
+ isCardLoading: any;
1737
+ constructor(sanitizer: DomSanitizer, renderer: Renderer2, apiService: ApiService, datePipe: DatePipe, loaderService: LoaderService, cdr: ChangeDetectorRef);
1738
+ ngOnInit(): void;
1739
+ private calculateCardMarginTop;
1740
+ deleteRecord(data: any): void;
1741
+ deleteRecordData(): void;
1742
+ actionButtonClicked(event: any, card: any): void;
1743
+ isConditionMet(element: any, conditions: any): boolean;
1744
+ toggleDropdown(index: number): void;
1745
+ private addClickOutsideListener;
1746
+ private removeClickListener;
1747
+ onMouseEnter(event: MouseEvent, styleName: any, color: string): void;
1748
+ onMouseLeave(event: MouseEvent, styleName: any, color: string): void;
1749
+ fileClick(evt: any, index: number): void;
1750
+ closeModal(): void;
1751
+ private stopViewLoader;
1752
+ downloadFile(evt: any, index: number): void;
1753
+ private triggerDownload;
1754
+ private stopLoader;
1755
+ static ɵfac: i0.ɵɵFactoryDeclaration<FusionCardComponent, never>;
1756
+ static ɵcmp: i0.ɵɵComponentDeclaration<FusionCardComponent, "fusion-card", never, {
1757
+ "cardData": {
1758
+ "alias": "cardData";
1759
+ "required": false;
1760
+ };
1761
+ "from": {
1762
+ "alias": "from";
1763
+ "required": false;
1764
+ };
1765
+ "comp": {
1766
+ "alias": "comp";
1767
+ "required": false;
1768
+ };
1769
+ }, {
1770
+ "cardButtonEmit": "cardButtonEmit";
1771
+ }, never, never, true, never>;
1772
+ }
1773
+ export type ToastType = 'success' | 'error' | 'info' | 'warning' | 'custom';
1774
+ export interface ToastConfig {
1775
+ id?: string;
1776
+ type?: ToastType;
1777
+ title?: string;
1778
+ message: string;
1779
+ duration?: number;
1780
+ icon?: string | null;
1781
+ background?: string | null;
1782
+ textColor?: string | null;
1783
+ pauseOnHover?: boolean;
1784
+ _leaving?: boolean;
1785
+ }
1786
+ export interface ToastGlobalConfig {
1787
+ position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
1788
+ defaultDuration?: number;
1789
+ enableAnimation?: boolean;
1790
+ pauseOnHover?: boolean;
1791
+ maxToasts?: number;
1792
+ }
1793
+ export declare class ToastService {
1794
+ private _toasts$;
1795
+ readonly toasts$: import("rxjs").Observable<ToastConfig[]>;
1796
+ private global;
1797
+ private removalTimers;
1798
+ constructor(cfg?: ToastGlobalConfig);
1799
+ private get toasts();
1800
+ private emit;
1801
+ private scheduleRemoval;
1802
+ private clearRemovalTimer;
1803
+ show(cfg: ToastConfig): string;
1804
+ showSuccess(message: string, title?: string, opts?: Partial<ToastConfig>): string;
1805
+ showError(message: string, title?: string, opts?: Partial<ToastConfig>): string;
1806
+ showInfo(message: string, title?: string, opts?: Partial<ToastConfig>): string;
1807
+ showWarning(message: string, title?: string, opts?: Partial<ToastConfig>): string;
1808
+ startLeavingAndRemove(id: string): void;
1809
+ remove(id: string): void;
1810
+ clear(): void;
1811
+ pause(id: string): void;
1812
+ resume(id: string, remaining?: number): void;
1813
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, [{
1814
+ optional: true;
1815
+ }]>;
1816
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1817
+ }
1818
+ export declare class ToastComponent implements OnInit, OnDestroy {
1819
+ private toastService;
1820
+ private el;
1821
+ private cdr;
1822
+ private globalCfg?;
1823
+ toasts: ToastConfig[];
1824
+ private sub;
1825
+ position: ToastGlobalConfig['position'];
1826
+ enableAnimation?: boolean;
1827
+ pauseOnHover?: boolean;
1828
+ defaultDuration?: number;
1829
+ positionClass: string;
1830
+ constructor(toastService: ToastService, el: ElementRef, cdr: ChangeDetectorRef, globalCfg?: ToastGlobalConfig | undefined);
1831
+ ngOnInit(): void;
1832
+ ngOnDestroy(): void;
1833
+ trackById(_: number, t: ToastConfig): string | undefined;
1834
+ dismiss(id?: string): void;
1835
+ onMouseEnter(t: ToastConfig, e: MouseEvent): void;
1836
+ onMouseLeave(t: ToastConfig, e: MouseEvent): void;
1837
+ progressState(): string;
1838
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastComponent, [null, null, null, {
1839
+ optional: true;
1840
+ }]>;
1841
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToastComponent, "app-toast, fusion-toast", never, {
1842
+ "position": {
1843
+ "alias": "position";
1844
+ "required": false;
1845
+ };
1846
+ "enableAnimation": {
1847
+ "alias": "enableAnimation";
1848
+ "required": false;
1849
+ };
1850
+ "pauseOnHover": {
1851
+ "alias": "pauseOnHover";
1852
+ "required": false;
1853
+ };
1854
+ "defaultDuration": {
1855
+ "alias": "defaultDuration";
1856
+ "required": false;
1857
+ };
1858
+ }, {}, never, never, true, never>;
1859
+ }
1860
+ export declare const TOAST_GLOBAL_CONFIG: InjectionToken<ToastGlobalConfig>;
1861
+ export declare function provideToastConfig(config: ToastGlobalConfig): {
1862
+ provide: InjectionToken<ToastGlobalConfig>;
1863
+ useValue: ToastGlobalConfig;
1864
+ }[];
1865
+ export declare class MultiSelectDropdownComponent implements OnChanges, OnInit, OnDestroy {
1866
+ private cdr;
1867
+ label: string;
1868
+ list: any[];
1869
+ isAll: boolean;
1870
+ shareCheckedList: EventEmitter<string[]>;
1871
+ control: FormControl<any[] | null>;
1872
+ filteredItemList: any[];
1873
+ selectedItemList: any[];
1874
+ value: string;
1875
+ private destroy$;
1876
+ constructor(cdr: ChangeDetectorRef);
1877
+ ngOnChanges(changes: SimpleChanges): void;
1878
+ ngOnInit(): void;
1879
+ ngOnDestroy(): void;
1880
+ compareItems(o1: any, o2: any): boolean;
1881
+ toggleSelectAll(): void;
1882
+ isAllSelected(): boolean;
1883
+ onFilterChange(event: string): void;
1884
+ clearFilter(): void;
1885
+ removeChip(item: any): void;
1886
+ private emitSelectedIds;
1887
+ static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectDropdownComponent, never>;
1888
+ static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectDropdownComponent, "app-multi-select-dropdown, fusion-multi-select-dropdown", never, {
1889
+ "label": {
1890
+ "alias": "label";
1891
+ "required": false;
1892
+ };
1893
+ "list": {
1894
+ "alias": "list";
1895
+ "required": false;
1896
+ };
1897
+ "isAll": {
1898
+ "alias": "isAll";
1899
+ "required": false;
1900
+ };
1901
+ }, {
1902
+ "shareCheckedList": "shareCheckedList";
1611
1903
  }, never, never, true, never>;
1612
1904
  }
1905
+ export type AlertType = 'success' | 'failure' | 'error' | 'warning' | 'info';
1906
+ export declare class AlertMessageComponent implements OnInit, OnDestroy {
1907
+ private cdr;
1908
+ private alertService?;
1909
+ type: AlertType;
1910
+ message: string;
1911
+ dismissible: boolean;
1912
+ autoSubscribeAlertService: boolean;
1913
+ dismiss: EventEmitter<void>;
1914
+ visible: boolean;
1915
+ private sub?;
1916
+ constructor(cdr: ChangeDetectorRef, alertService?: AlertService | undefined);
1917
+ ngOnInit(): void;
1918
+ ngOnDestroy(): void;
1919
+ onDismiss(): void;
1920
+ get normalizedType(): string;
1921
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlertMessageComponent, [null, {
1922
+ optional: true;
1923
+ }]>;
1924
+ static ɵcmp: i0.ɵɵComponentDeclaration<AlertMessageComponent, "fusion-alert, app-success-failure-message", never, {
1925
+ "type": {
1926
+ "alias": "type";
1927
+ "required": false;
1928
+ };
1929
+ "message": {
1930
+ "alias": "message";
1931
+ "required": false;
1932
+ };
1933
+ "dismissible": {
1934
+ "alias": "dismissible";
1935
+ "required": false;
1936
+ };
1937
+ "autoSubscribeAlertService": {
1938
+ "alias": "autoSubscribeAlertService";
1939
+ "required": false;
1940
+ };
1941
+ }, {
1942
+ "dismiss": "dismiss";
1943
+ }, never, ["[alert-icon]", "*"], true, never>;
1944
+ }
1613
1945
  export declare class GetValuePipe implements PipeTransform {
1614
1946
  transform(arg: any, element: any, column: any): any;
1615
1947
  private looksLikeDate;