@harsh_123678/shared-ui 0.0.1

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/README.md ADDED
@@ -0,0 +1,63 @@
1
+ # SharedUi
2
+
3
+ This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
8
+
9
+ ```bash
10
+ ng generate component component-name
11
+ ```
12
+
13
+ For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
14
+
15
+ ```bash
16
+ ng generate --help
17
+ ```
18
+
19
+ ## Building
20
+
21
+ To build the library, run:
22
+
23
+ ```bash
24
+ ng build shared-ui
25
+ ```
26
+
27
+ This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
28
+
29
+ ### Publishing the Library
30
+
31
+ Once the project is built, you can publish your library by following these steps:
32
+
33
+ 1. Navigate to the `dist` directory:
34
+ ```bash
35
+ cd dist/shared-ui
36
+ ```
37
+
38
+ 2. Run the `npm publish` command to publish your library to the npm registry:
39
+ ```bash
40
+ npm publish
41
+ ```
42
+
43
+ ## Running unit tests
44
+
45
+ To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
46
+
47
+ ```bash
48
+ ng test
49
+ ```
50
+
51
+ ## Running end-to-end tests
52
+
53
+ For end-to-end (e2e) testing, run:
54
+
55
+ ```bash
56
+ ng e2e
57
+ ```
58
+
59
+ Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
60
+
61
+ ## Additional Resources
62
+
63
+ For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -0,0 +1,326 @@
1
+ import * as i1 from '@angular/common';
2
+ import { CommonModule, formatDate } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { EventEmitter, Output, Input, ViewEncapsulation, Component, Pipe, NgModule } from '@angular/core';
5
+ import { trigger, transition, style, animate } from '@angular/animations';
6
+ import { RouterModule } from '@angular/router';
7
+ import { NgxPaginationModule } from 'ngx-pagination';
8
+ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
9
+
10
+ class ButtonComponent {
11
+ Text = "dummy";
12
+ Type = 'btn-outline-primary';
13
+ Icon;
14
+ Icon2;
15
+ Icondeal;
16
+ isFilterApply;
17
+ disabledPayoutApprovalButtons = false;
18
+ EnableHideCancelDeal = false;
19
+ Click = new EventEmitter();
20
+ constructor() { }
21
+ ngOnInit() {
22
+ }
23
+ ngOnchange() {
24
+ this.isFilterApply;
25
+ }
26
+ onClick(e) {
27
+ this.Click.emit(e);
28
+ }
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: ButtonComponent, isStandalone: true, selector: "app-button", inputs: { Text: "Text", Type: "Type", Icon: "Icon", Icon2: "Icon2", Icondeal: "Icondeal", isFilterApply: "isFilterApply", disabledPayoutApprovalButtons: "disabledPayoutApprovalButtons", EnableHideCancelDeal: "EnableHideCancelDeal" }, outputs: { Click: "Click" }, ngImport: i0, template: "<button class=\"flex justify-center items-center px-3 py-1.5 text-sm font-medium rounded-md border border-gray-300 bg-white text-gray-800\" [disabled]=\"disabledPayoutApprovalButtons || EnableHideCancelDeal\" ngClass={{Type}}\r\n (click)=\"onClick($event)\">\r\n <img *ngIf=\"Icon\" src={{Icon}} alt=\"\" style=\"max-width: 20px; max-height:20px;\" class=\"me-1\" />\r\n <span *ngIf=\"isFilterApply\" class=\"highlight\"></span>{{Text}}\r\n <img *ngIf=\"Icon2\" src={{Icon2}} alt=\"\" style=\"max-width: 20px; max-height:20px;\" class=\"me-1\" />\r\n <img *ngIf=\"Icondeal\" src={{Icondeal}} alt=\"\" style=\"max-width: 20px; max-height:20px;\" class=\"me-1\" />\r\n</button>", styles: [".btn-primary{background-color:var(--primary);border-color:var(--primary);border-radius:5px;padding:7px 16px;font-weight:600;width:max-content}.btn-primary:active{background-color:var(--primary)!important;border-color:var(--primary)!important}.btn-warning{background-color:var(--note);border-color:var(--note);border-radius:5px;padding:7px 16px;font-weight:600;width:100%;color:#fff}.btn-warning:active{background-color:var(--note)!important;border-color:var(--note)!important}.btn-outline-primary{position:relative;background-color:#fff;border-color:var(--lightSuccess);color:var(--lightSuccess);border-radius:5px;padding:7px 16px;font-weight:600;width:max-content}.btn-outline-primary:active{background-color:#fff!important;border-color:var(--lightSuccess)!important;color:var(--lightSuccess)!important}.btn-outline-default{position:relative;background-color:#fff;color:var(#000);border-radius:5px;padding:7px 16px;font-weight:400;width:100%;border:1px solid #ebe8e8}.btn-outline-default:active{background-color:#fff!important;border-color:var(--primary)!important;color:var(--primary)!important}.btn-outline-default:disabled{background-color:#fff!important;border-color:var(--primary)!important;color:var(--primary)!important}.btn-danger{background-color:var(--danger);border-color:var(--danger);border-radius:5px;padding:7px 16px;font-weight:600;width:100%}.btn-danger:active{background-color:var(--danger)!important;border-color:var(--danger)!important}.btn-outline-danger{background-color:#fff;border-color:var(--danger);color:var(--danger);border-radius:5px;padding:7px 16px;font-weight:600;width:100%}.btn-outline-danger:active{background-color:#fff!important;border-color:var(--danger)!important;color:var(--danger)!important}.btn:focus{outline:none;box-shadow:none}.highlight{position:absolute;top:4px;left:32px;height:6px;width:6px;border:10px;background-color:#ff000c;border-radius:50%}.btn-danger-applyMediaStyles{background-color:var(--danger);border-color:var(--danger);border-radius:5px;padding:7px 16px;font-weight:600;width:100%;color:#fff}.btn-danger-applyMediaStyles:active{background-color:var(--danger)!important;border-color:var(--danger)!important}.btn-primary-applyMediaStyles{background-color:var(--primary);border-color:var(--primary);border-radius:5px;padding:7px 16px;font-weight:600;width:100%;color:#fff}.btn-primary-applyMediaStyles:active{background-color:var(--primary)!important;border-color:var(--primary)!important}.btn-warning-applyMediaStyles{background-color:var(--note);border-color:var(--note);border-radius:5px;padding:7px 16px;font-weight:600;width:100%;color:#fff}.btn-warning-applyMediaStyles:active{background-color:var(--note)!important;border-color:var(--note)!important}.btn-outline-default-applyMediaStyles{position:relative;background-color:#fff;color:var(#000);border-radius:5px;padding:8px 16px;font-weight:400;width:100%;border:1px solid #ebe8e8}.btn-outline-default-applyMediaStyles:active{background-color:#fff!important;border-color:var(--primary)!important;color:var(--primary)!important}.btn-outline-default-applyMediaStyles:disabled{background-color:#fff!important;border-color:var(--primary)!important;color:var(--primary)!important}@media (max-width: 1280px){.btn-outline-default-applyMediaStyles{position:relative;background-color:#fff;color:var(#000);border-radius:5px;padding:5px 12px;font-weight:400;width:100%;font-size:12px;border:1px solid #ebe8e8}.btn-warning-applyMediaStyles{background-color:var(--note);border-color:var(--note);border-radius:5px;padding:5px 9px;font-weight:600;width:100%;font-size:12px;color:#fff}.btn-primary-applyMediaStyles{background-color:var(--primary);border-color:var(--primary);border-radius:5px;padding:5px 13px;font-weight:600;font-size:12px;width:100%;color:#fff}.btn-danger-applyMediaStyles{background-color:var(--danger);border-color:var(--danger);border-radius:5px;padding:5px 12px;font-weight:600;font-size:12px;width:100%;color:#fff}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ButtonComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'app-button', imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<button class=\"flex justify-center items-center px-3 py-1.5 text-sm font-medium rounded-md border border-gray-300 bg-white text-gray-800\" [disabled]=\"disabledPayoutApprovalButtons || EnableHideCancelDeal\" ngClass={{Type}}\r\n (click)=\"onClick($event)\">\r\n <img *ngIf=\"Icon\" src={{Icon}} alt=\"\" style=\"max-width: 20px; max-height:20px;\" class=\"me-1\" />\r\n <span *ngIf=\"isFilterApply\" class=\"highlight\"></span>{{Text}}\r\n <img *ngIf=\"Icon2\" src={{Icon2}} alt=\"\" style=\"max-width: 20px; max-height:20px;\" class=\"me-1\" />\r\n <img *ngIf=\"Icondeal\" src={{Icondeal}} alt=\"\" style=\"max-width: 20px; max-height:20px;\" class=\"me-1\" />\r\n</button>", styles: [".btn-primary{background-color:var(--primary);border-color:var(--primary);border-radius:5px;padding:7px 16px;font-weight:600;width:max-content}.btn-primary:active{background-color:var(--primary)!important;border-color:var(--primary)!important}.btn-warning{background-color:var(--note);border-color:var(--note);border-radius:5px;padding:7px 16px;font-weight:600;width:100%;color:#fff}.btn-warning:active{background-color:var(--note)!important;border-color:var(--note)!important}.btn-outline-primary{position:relative;background-color:#fff;border-color:var(--lightSuccess);color:var(--lightSuccess);border-radius:5px;padding:7px 16px;font-weight:600;width:max-content}.btn-outline-primary:active{background-color:#fff!important;border-color:var(--lightSuccess)!important;color:var(--lightSuccess)!important}.btn-outline-default{position:relative;background-color:#fff;color:var(#000);border-radius:5px;padding:7px 16px;font-weight:400;width:100%;border:1px solid #ebe8e8}.btn-outline-default:active{background-color:#fff!important;border-color:var(--primary)!important;color:var(--primary)!important}.btn-outline-default:disabled{background-color:#fff!important;border-color:var(--primary)!important;color:var(--primary)!important}.btn-danger{background-color:var(--danger);border-color:var(--danger);border-radius:5px;padding:7px 16px;font-weight:600;width:100%}.btn-danger:active{background-color:var(--danger)!important;border-color:var(--danger)!important}.btn-outline-danger{background-color:#fff;border-color:var(--danger);color:var(--danger);border-radius:5px;padding:7px 16px;font-weight:600;width:100%}.btn-outline-danger:active{background-color:#fff!important;border-color:var(--danger)!important;color:var(--danger)!important}.btn:focus{outline:none;box-shadow:none}.highlight{position:absolute;top:4px;left:32px;height:6px;width:6px;border:10px;background-color:#ff000c;border-radius:50%}.btn-danger-applyMediaStyles{background-color:var(--danger);border-color:var(--danger);border-radius:5px;padding:7px 16px;font-weight:600;width:100%;color:#fff}.btn-danger-applyMediaStyles:active{background-color:var(--danger)!important;border-color:var(--danger)!important}.btn-primary-applyMediaStyles{background-color:var(--primary);border-color:var(--primary);border-radius:5px;padding:7px 16px;font-weight:600;width:100%;color:#fff}.btn-primary-applyMediaStyles:active{background-color:var(--primary)!important;border-color:var(--primary)!important}.btn-warning-applyMediaStyles{background-color:var(--note);border-color:var(--note);border-radius:5px;padding:7px 16px;font-weight:600;width:100%;color:#fff}.btn-warning-applyMediaStyles:active{background-color:var(--note)!important;border-color:var(--note)!important}.btn-outline-default-applyMediaStyles{position:relative;background-color:#fff;color:var(#000);border-radius:5px;padding:8px 16px;font-weight:400;width:100%;border:1px solid #ebe8e8}.btn-outline-default-applyMediaStyles:active{background-color:#fff!important;border-color:var(--primary)!important;color:var(--primary)!important}.btn-outline-default-applyMediaStyles:disabled{background-color:#fff!important;border-color:var(--primary)!important;color:var(--primary)!important}@media (max-width: 1280px){.btn-outline-default-applyMediaStyles{position:relative;background-color:#fff;color:var(#000);border-radius:5px;padding:5px 12px;font-weight:400;width:100%;font-size:12px;border:1px solid #ebe8e8}.btn-warning-applyMediaStyles{background-color:var(--note);border-color:var(--note);border-radius:5px;padding:5px 9px;font-weight:600;width:100%;font-size:12px;color:#fff}.btn-primary-applyMediaStyles{background-color:var(--primary);border-color:var(--primary);border-radius:5px;padding:5px 13px;font-weight:600;font-size:12px;width:100%;color:#fff}.btn-danger-applyMediaStyles{background-color:var(--danger);border-color:var(--danger);border-radius:5px;padding:5px 12px;font-weight:600;font-size:12px;width:100%;color:#fff}}\n"] }]
35
+ }], ctorParameters: () => [], propDecorators: { Text: [{
36
+ type: Input
37
+ }], Type: [{
38
+ type: Input
39
+ }], Icon: [{
40
+ type: Input
41
+ }], Icon2: [{
42
+ type: Input
43
+ }], Icondeal: [{
44
+ type: Input
45
+ }], isFilterApply: [{
46
+ type: Input
47
+ }], disabledPayoutApprovalButtons: [{
48
+ type: Input
49
+ }], EnableHideCancelDeal: [{
50
+ type: Input
51
+ }], Click: [{
52
+ type: Output
53
+ }] } });
54
+
55
+ class SectionHeaderComponent {
56
+ Title = "";
57
+ customClass = false;
58
+ onTitleClick = new EventEmitter();
59
+ constructor() { }
60
+ ngOnInit() {
61
+ }
62
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SectionHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SectionHeaderComponent, isStandalone: true, selector: "app-section-header", inputs: { Title: "Title", customClass: "customClass" }, outputs: { onTitleClick: "onTitleClick" }, ngImport: i0, template: "<div class=\"card mb-4\">\r\n <div class=\"card-body\">\r\n <div class=\"row align-items-center\">\r\n <div [ngClass]=\"{'col-5':customClass, 'col-6':!customClass}\">\r\n <h5 class=\"m-0\" [ngClass]=\"{'clickable': onTitleClick.observers.length > 0}\" (click)=\"onTitleClick.observers.length > 0 && onTitleClick.emit()\">{{Title }}</h5>\r\n </div>\r\n <div class=\"col-6\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".card{background-color:transparent}.card .card-body{padding:8px 16px}h5{font-weight:700}@media (max-width: 800){.row{flex-direction:column}.col-5,.col-4,.col-8{width:100%;text-align:center}.col-8{margin-top:1rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SectionHeaderComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'app-section-header', imports: [CommonModule], standalone: true, template: "<div class=\"card mb-4\">\r\n <div class=\"card-body\">\r\n <div class=\"row align-items-center\">\r\n <div [ngClass]=\"{'col-5':customClass, 'col-6':!customClass}\">\r\n <h5 class=\"m-0\" [ngClass]=\"{'clickable': onTitleClick.observers.length > 0}\" (click)=\"onTitleClick.observers.length > 0 && onTitleClick.emit()\">{{Title }}</h5>\r\n </div>\r\n <div class=\"col-6\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".card{background-color:transparent}.card .card-body{padding:8px 16px}h5{font-weight:700}@media (max-width: 800){.row{flex-direction:column}.col-5,.col-4,.col-8{width:100%;text-align:center}.col-8{margin-top:1rem}}\n"] }]
68
+ }], ctorParameters: () => [], propDecorators: { Title: [{
69
+ type: Input
70
+ }], customClass: [{
71
+ type: Input
72
+ }], onTitleClick: [{
73
+ type: Output
74
+ }] } });
75
+
76
+ class CommonModalComponent {
77
+ isVisible = false;
78
+ close = new EventEmitter();
79
+ closeModal() {
80
+ this.close.emit();
81
+ }
82
+ onBackdropClick() {
83
+ this.closeModal();
84
+ }
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: CommonModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
86
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: CommonModalComponent, isStandalone: true, selector: "app-common-modal", inputs: { isVisible: "isVisible" }, outputs: { close: "close" }, ngImport: i0, template: "<div *ngIf=\"isVisible\" class=\"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50\"\r\n (click)=\"onBackdropClick()\"\r\n [@fadeBackdrop]>\r\n <div class=\"bg-white rounded-xl shadow-lg w-auto max-w-2xl mx-4 sm:mx-0 transform transition-all duration-300 ease-out\"\r\n [@scaleModal] (click)=\"$event.stopPropagation()\">\r\n <!-- Header -->\r\n <div class=\"flex justify-between gap-6 items-center px-6 py-4 border-b\">\r\n <ng-content select=\"[modal-header]\"></ng-content>\r\n <button (click)=\"closeModal()\" aria-label=\"Close\">\r\n <img src=\"assets/icons/close-circle.svg\" alt=\"Close\" class=\"w-6 h-6\" />\r\n </button>\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"px-6 py-4 max-h-[75vh] overflow-y-auto\">\r\n <ng-content select=\"[modal-body]\"></ng-content>\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div>\r\n <ng-content select=\"[modal-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".pop-out{position:fixed;top:0;left:0;background-color:#00000080;z-index:40}\n"], animations: [
87
+ trigger('fadeBackdrop', [
88
+ transition(':enter', [
89
+ style({ opacity: 0 }),
90
+ animate('200ms ease-out', style({ opacity: 1 }))
91
+ ]),
92
+ transition(':leave', [
93
+ animate('200ms ease-in', style({ opacity: 0 }))
94
+ ])
95
+ ]),
96
+ trigger('scaleModal', [
97
+ transition(':enter', [
98
+ style({ opacity: 0, transform: 'scale(0.95) translateY(20px)' }),
99
+ animate('200ms ease-out', style({ opacity: 1, transform: 'scale(1) translateY(0)' }))
100
+ ]),
101
+ transition(':leave', [
102
+ animate('200ms ease-in', style({ opacity: 0, transform: 'scale(0.95) translateY(20px)' }))
103
+ ])
104
+ ])
105
+ ] });
106
+ }
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: CommonModalComponent, decorators: [{
108
+ type: Component,
109
+ args: [{ selector: 'app-common-modal', animations: [
110
+ trigger('fadeBackdrop', [
111
+ transition(':enter', [
112
+ style({ opacity: 0 }),
113
+ animate('200ms ease-out', style({ opacity: 1 }))
114
+ ]),
115
+ transition(':leave', [
116
+ animate('200ms ease-in', style({ opacity: 0 }))
117
+ ])
118
+ ]),
119
+ trigger('scaleModal', [
120
+ transition(':enter', [
121
+ style({ opacity: 0, transform: 'scale(0.95) translateY(20px)' }),
122
+ animate('200ms ease-out', style({ opacity: 1, transform: 'scale(1) translateY(0)' }))
123
+ ]),
124
+ transition(':leave', [
125
+ animate('200ms ease-in', style({ opacity: 0, transform: 'scale(0.95) translateY(20px)' }))
126
+ ])
127
+ ])
128
+ ], template: "<div *ngIf=\"isVisible\" class=\"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50\"\r\n (click)=\"onBackdropClick()\"\r\n [@fadeBackdrop]>\r\n <div class=\"bg-white rounded-xl shadow-lg w-auto max-w-2xl mx-4 sm:mx-0 transform transition-all duration-300 ease-out\"\r\n [@scaleModal] (click)=\"$event.stopPropagation()\">\r\n <!-- Header -->\r\n <div class=\"flex justify-between gap-6 items-center px-6 py-4 border-b\">\r\n <ng-content select=\"[modal-header]\"></ng-content>\r\n <button (click)=\"closeModal()\" aria-label=\"Close\">\r\n <img src=\"assets/icons/close-circle.svg\" alt=\"Close\" class=\"w-6 h-6\" />\r\n </button>\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"px-6 py-4 max-h-[75vh] overflow-y-auto\">\r\n <ng-content select=\"[modal-body]\"></ng-content>\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div>\r\n <ng-content select=\"[modal-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".pop-out{position:fixed;top:0;left:0;background-color:#00000080;z-index:40}\n"] }]
129
+ }], propDecorators: { isVisible: [{
130
+ type: Input
131
+ }], close: [{
132
+ type: Output
133
+ }] } });
134
+
135
+ class TruncatePipe {
136
+ transform(value, limit = 23, completeWords = false, ellipsis = '...') {
137
+ if (!value)
138
+ return '';
139
+ if (value.length <= limit)
140
+ return value;
141
+ if (completeWords) {
142
+ limit = value.substr(0, limit).lastIndexOf(' ');
143
+ }
144
+ return `${value.substr(0, limit)}${ellipsis}`;
145
+ }
146
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: TruncatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
147
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.13", ngImport: i0, type: TruncatePipe, isStandalone: true, name: "truncate" });
148
+ }
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: TruncatePipe, decorators: [{
150
+ type: Pipe,
151
+ args: [{
152
+ name: 'truncate'
153
+ }]
154
+ }] });
155
+
156
+ class IndiancurrencyPipe {
157
+ transform(value) {
158
+ if (!isNaN(value)) {
159
+ return new Intl.NumberFormat('en-IN', {
160
+ style: 'currency',
161
+ currency: 'INR'
162
+ }).format(value);
163
+ }
164
+ return '0';
165
+ }
166
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: IndiancurrencyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
167
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.13", ngImport: i0, type: IndiancurrencyPipe, isStandalone: true, name: "indiancurrency" });
168
+ }
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: IndiancurrencyPipe, decorators: [{
170
+ type: Pipe,
171
+ args: [{
172
+ name: 'indiancurrency',
173
+ }]
174
+ }] });
175
+
176
+ class FormatValuePipe {
177
+ transform(value) {
178
+ if (value == null || value === '') {
179
+ return "-";
180
+ }
181
+ if (!isNaN(value) && !isNaN(parseFloat(value))) {
182
+ return value.toString();
183
+ }
184
+ const date = new Date(value);
185
+ if (!isNaN(date.getTime()) && /^\d{4}-\d{2}-\d{2}$/.test(value)) {
186
+ return formatDate(date, 'd-M-yyyy', 'en-US');
187
+ }
188
+ return "-";
189
+ }
190
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: FormatValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
191
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.13", ngImport: i0, type: FormatValuePipe, isStandalone: true, name: "formatValue" });
192
+ }
193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: FormatValuePipe, decorators: [{
194
+ type: Pipe,
195
+ args: [{
196
+ name: 'formatValue'
197
+ }]
198
+ }] });
199
+
200
+ class TransactionTypePipe {
201
+ transform(value) {
202
+ let paytypetext = this.setPayoutTypeText(value);
203
+ return paytypetext;
204
+ }
205
+ setPayoutTypeText(typeOfPayout) {
206
+ switch (typeOfPayout) {
207
+ case 'VPA_BASED':
208
+ return 'VPA Payout';
209
+ case 'ACCOUNT_NO_BASED':
210
+ return 'Account Payout';
211
+ case 'BENECODE_BASED':
212
+ return 'Beneficiary Payout';
213
+ default:
214
+ return ' ';
215
+ }
216
+ }
217
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: TransactionTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
218
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.13", ngImport: i0, type: TransactionTypePipe, isStandalone: true, name: "transactiontype" });
219
+ }
220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: TransactionTypePipe, decorators: [{
221
+ type: Pipe,
222
+ args: [{
223
+ name: 'transactiontype'
224
+ }]
225
+ }] });
226
+
227
+ class SortByPropertyPipe {
228
+ transform(array, property) {
229
+ if (!Array.isArray(array) || !property) {
230
+ return array;
231
+ }
232
+ return array.slice().sort((a, b) => {
233
+ // Ensure the property exists on both objects and that they are strings
234
+ const valueA = a[property] ? a[property].toString().toUpperCase() : '';
235
+ const valueB = b[property] ? b[property].toString().toUpperCase() : '';
236
+ return valueA.localeCompare(valueB);
237
+ });
238
+ }
239
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SortByPropertyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
240
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.13", ngImport: i0, type: SortByPropertyPipe, isStandalone: true, name: "sortByProperty" });
241
+ }
242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SortByPropertyPipe, decorators: [{
243
+ type: Pipe,
244
+ args: [{
245
+ name: 'sortByProperty'
246
+ }]
247
+ }] });
248
+
249
+ class DealStatusPipe {
250
+ transform(value, partySigned) {
251
+ return "deal status" + partySigned;
252
+ }
253
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: DealStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
254
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.13", ngImport: i0, type: DealStatusPipe, isStandalone: true, name: "dealStatus" });
255
+ }
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: DealStatusPipe, decorators: [{
257
+ type: Pipe,
258
+ args: [{
259
+ name: 'dealStatus'
260
+ }]
261
+ }] });
262
+
263
+ class SharedModule {
264
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
265
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.13", ngImport: i0, type: SharedModule, imports: [CommonModule, RouterModule, ReactiveFormsModule, NgxPaginationModule, FormsModule,
266
+ DealStatusPipe,
267
+ TruncatePipe,
268
+ ButtonComponent,
269
+ SectionHeaderComponent,
270
+ IndiancurrencyPipe,
271
+ TransactionTypePipe,
272
+ FormatValuePipe,
273
+ SortByPropertyPipe,
274
+ CommonModalComponent], exports: [ButtonComponent,
275
+ SectionHeaderComponent,
276
+ ReactiveFormsModule,
277
+ NgxPaginationModule,
278
+ IndiancurrencyPipe,
279
+ TruncatePipe,
280
+ TransactionTypePipe,
281
+ FormatValuePipe,
282
+ SortByPropertyPipe,
283
+ CommonModalComponent] });
284
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SharedModule, imports: [CommonModule, RouterModule, ReactiveFormsModule, NgxPaginationModule, FormsModule,
285
+ ButtonComponent,
286
+ SectionHeaderComponent, ReactiveFormsModule,
287
+ NgxPaginationModule] });
288
+ }
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SharedModule, decorators: [{
290
+ type: NgModule,
291
+ args: [{
292
+ declarations: [],
293
+ imports: [CommonModule, RouterModule, ReactiveFormsModule, NgxPaginationModule, FormsModule,
294
+ DealStatusPipe,
295
+ TruncatePipe,
296
+ ButtonComponent,
297
+ SectionHeaderComponent,
298
+ IndiancurrencyPipe,
299
+ TransactionTypePipe,
300
+ FormatValuePipe,
301
+ SortByPropertyPipe,
302
+ CommonModalComponent
303
+ ],
304
+ exports: [
305
+ ButtonComponent,
306
+ SectionHeaderComponent,
307
+ ReactiveFormsModule,
308
+ NgxPaginationModule,
309
+ IndiancurrencyPipe,
310
+ TruncatePipe,
311
+ TransactionTypePipe,
312
+ FormatValuePipe,
313
+ SortByPropertyPipe,
314
+ CommonModalComponent
315
+ ],
316
+ }]
317
+ }] });
318
+
319
+ // Components
320
+
321
+ /**
322
+ * Generated bundle index. Do not edit.
323
+ */
324
+
325
+ export { ButtonComponent, CommonModalComponent, FormatValuePipe, IndiancurrencyPipe, SectionHeaderComponent, SharedModule, SortByPropertyPipe, TransactionTypePipe, TruncatePipe };
326
+ //# sourceMappingURL=harsh_123678-shared-ui.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harsh_123678-shared-ui.mjs","sources":["../../../projects/shared-ui/src/lib/shared/components/button/button.component.ts","../../../projects/shared-ui/src/lib/shared/components/button/button.component.html","../../../projects/shared-ui/src/lib/shared/components/section-header/section-header.component.ts","../../../projects/shared-ui/src/lib/shared/components/section-header/section-header.component.html","../../../projects/shared-ui/src/lib/shared/components/common-modal/common-modal.component.ts","../../../projects/shared-ui/src/lib/shared/components/common-modal/common-modal.component.html","../../../projects/shared-ui/src/lib/shared/pipes/truncate-pipe.ts","../../../projects/shared-ui/src/lib/shared/pipes/indiancurrency.pipe.ts","../../../projects/shared-ui/src/lib/shared/pipes/format-value.pipe.ts","../../../projects/shared-ui/src/lib/shared/pipes/transaction-type.pipe.ts","../../../projects/shared-ui/src/lib/shared/pipes/sort-array.pipe.ts","../../../projects/shared-ui/src/lib/shared/pipes/deal-status.pipe.ts","../../../projects/shared-ui/src/lib/shared/shared.module.ts","../../../projects/shared-ui/src/public-api.ts","../../../projects/shared-ui/src/harsh_123678-shared-ui.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n imports: [CommonModule],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ButtonComponent implements OnInit {\r\n @Input() Text = \"dummy\";\r\n @Input() Type = 'btn-outline-primary';\r\n @Input() Icon: any;\r\n @Input() Icon2: any;\r\n @Input() Icondeal: any; \r\n @Input() isFilterApply: any;\r\n\r\n @Input() disabledPayoutApprovalButtons: boolean = false;\r\n @Input() EnableHideCancelDeal: boolean = false;\r\n\r\n\r\n @Output() Click = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnchange(){\r\n this.isFilterApply\r\n }\r\n\r\n onClick(e: any): void {\r\n this.Click.emit(e);\r\n }\r\n\r\n}\r\n","<button class=\"flex justify-center items-center px-3 py-1.5 text-sm font-medium rounded-md border border-gray-300 bg-white text-gray-800\" [disabled]=\"disabledPayoutApprovalButtons || EnableHideCancelDeal\" ngClass={{Type}}\r\n (click)=\"onClick($event)\">\r\n <img *ngIf=\"Icon\" src={{Icon}} alt=\"\" style=\"max-width: 20px; max-height:20px;\" class=\"me-1\" />\r\n <span *ngIf=\"isFilterApply\" class=\"highlight\"></span>{{Text}}\r\n <img *ngIf=\"Icon2\" src={{Icon2}} alt=\"\" style=\"max-width: 20px; max-height:20px;\" class=\"me-1\" />\r\n <img *ngIf=\"Icondeal\" src={{Icondeal}} alt=\"\" style=\"max-width: 20px; max-height:20px;\" class=\"me-1\" />\r\n</button>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-section-header',\r\n templateUrl: './section-header.component.html',\r\n styleUrls: ['./section-header.component.scss'],\r\n imports: [CommonModule],\r\n standalone: true\r\n})\r\nexport class SectionHeaderComponent implements OnInit {\r\n @Input() Title = \"\"\r\n @Input() customClass:boolean = false;\r\n @Output() onTitleClick = new EventEmitter<void>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"card mb-4\">\r\n <div class=\"card-body\">\r\n <div class=\"row align-items-center\">\r\n <div [ngClass]=\"{'col-5':customClass, 'col-6':!customClass}\">\r\n <h5 class=\"m-0\" [ngClass]=\"{'clickable': onTitleClick.observers.length > 0}\" (click)=\"onTitleClick.observers.length > 0 && onTitleClick.emit()\">{{Title }}</h5>\r\n </div>\r\n <div class=\"col-6\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { trigger, transition, style, animate } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'app-common-modal',\r\n templateUrl: './common-modal.component.html',\r\n styleUrls: ['./common-modal.component.scss'],\r\n animations: [\r\n trigger('fadeBackdrop', [\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate('200ms ease-out', style({ opacity: 1 }))\r\n ]),\r\n transition(':leave', [\r\n animate('200ms ease-in', style({ opacity: 0 }))\r\n ])\r\n ]),\r\n trigger('scaleModal', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(0.95) translateY(20px)' }),\r\n animate('200ms ease-out', style({ opacity: 1, transform: 'scale(1) translateY(0)' }))\r\n ]),\r\n transition(':leave', [\r\n animate('200ms ease-in', style({ opacity: 0, transform: 'scale(0.95) translateY(20px)' }))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class CommonModalComponent {\r\n @Input() isVisible: boolean = false;\r\n @Output() close = new EventEmitter<void>();\r\n\r\n closeModal() {\r\n this.close.emit();\r\n }\r\n\r\n onBackdropClick() {\r\n this.closeModal();\r\n }\r\n}\r\n","<div *ngIf=\"isVisible\" class=\"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50\"\r\n (click)=\"onBackdropClick()\"\r\n [@fadeBackdrop]>\r\n <div class=\"bg-white rounded-xl shadow-lg w-auto max-w-2xl mx-4 sm:mx-0 transform transition-all duration-300 ease-out\"\r\n [@scaleModal] (click)=\"$event.stopPropagation()\">\r\n <!-- Header -->\r\n <div class=\"flex justify-between gap-6 items-center px-6 py-4 border-b\">\r\n <ng-content select=\"[modal-header]\"></ng-content>\r\n <button (click)=\"closeModal()\" aria-label=\"Close\">\r\n <img src=\"assets/icons/close-circle.svg\" alt=\"Close\" class=\"w-6 h-6\" />\r\n </button>\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"px-6 py-4 max-h-[75vh] overflow-y-auto\">\r\n <ng-content select=\"[modal-body]\"></ng-content>\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div>\r\n <ng-content select=\"[modal-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'truncate'\r\n})\r\nexport class TruncatePipe implements PipeTransform {\r\n transform(value: string, limit = 23, completeWords = false, ellipsis = '...'): string {\r\n if (!value) return '';\r\n if (value.length <= limit) return value;\r\n\r\n if (completeWords) {\r\n limit = value.substr(0, limit).lastIndexOf(' ');\r\n }\r\n\r\n return `${value.substr(0, limit)}${ellipsis}`;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'indiancurrency',\r\n})\r\nexport class IndiancurrencyPipe implements PipeTransform {\r\n\r\n transform(value: number): string {\r\n if (!isNaN(value)) {\r\n return new Intl.NumberFormat('en-IN', {\r\n style: 'currency',\r\n currency: 'INR'\r\n }).format(value);\r\n }\r\n return '0';\r\n }\r\n\r\n\r\n}\r\n","import { formatDate } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'formatValue'\r\n})\r\nexport class FormatValuePipe implements PipeTransform {\r\n\r\n\r\n transform(value: any): string {\r\n if (value == null || value === '') {\r\n return \"-\";\r\n }\r\n\r\n if (!isNaN(value) && !isNaN(parseFloat(value))) {\r\n return value.toString();\r\n }\r\n\r\n const date = new Date(value);\r\n if (!isNaN(date.getTime()) && /^\\d{4}-\\d{2}-\\d{2}$/.test(value)) {\r\n return formatDate(date, 'd-M-yyyy', 'en-US');\r\n }\r\n\r\n return \"-\";\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'transactiontype'\r\n})\r\nexport class TransactionTypePipe implements PipeTransform {\r\n\r\n transform(value: string): string {\r\n\r\n let paytypetext = this.setPayoutTypeText(value);\r\n return paytypetext;\r\n }\r\n\r\n setPayoutTypeText(typeOfPayout: string): string {\r\n switch (typeOfPayout) {\r\n case 'VPA_BASED':\r\n return 'VPA Payout';\r\n case 'ACCOUNT_NO_BASED':\r\n return 'Account Payout';\r\n case 'BENECODE_BASED':\r\n return 'Beneficiary Payout';\r\n default:\r\n return ' ';\r\n }\r\n\r\n}\r\n}","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: 'sortByProperty'\r\n})\r\n\r\nexport class SortByPropertyPipe implements PipeTransform {\r\n transform(array: any[], property: string): any[] {\r\n if (!Array.isArray(array) || !property) {\r\n return array;\r\n }\r\n return array.slice().sort((a, b) => {\r\n // Ensure the property exists on both objects and that they are strings\r\n const valueA = a[property] ? a[property].toString().toUpperCase() : '';\r\n const valueB = b[property] ? b[property].toString().toUpperCase() : '';\r\n\r\n return valueA.localeCompare(valueB);\r\n });\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dealStatus'\r\n})\r\nexport class DealStatusPipe implements PipeTransform {\r\n\r\n transform(value: any, partySigned:any): unknown {\r\n return \"deal status\" + partySigned;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n//component\r\nimport { ButtonComponent } from './components/button/button.component';\r\nimport { SectionHeaderComponent } from './components/section-header/section-header.component';\r\n\r\n// pipes\r\nimport { DealStatusPipe } from './pipes/deal-status.pipe';\r\nimport { TruncatePipe } from './pipes/truncate-pipe';\r\nimport { IndiancurrencyPipe } from './pipes/indiancurrency.pipe';\r\nimport { FormatValuePipe } from './pipes/format-value.pipe';\r\nimport { TransactionTypePipe } from './pipes/transaction-type.pipe';\r\nimport { SortByPropertyPipe } from './pipes/sort-array.pipe';\r\nimport { CommonModalComponent } from './components/common-modal/common-modal.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [CommonModule, RouterModule, ReactiveFormsModule, NgxPaginationModule, FormsModule,\r\n DealStatusPipe,\r\n TruncatePipe,\r\n ButtonComponent,\r\n SectionHeaderComponent,\r\n IndiancurrencyPipe,\r\n TransactionTypePipe,\r\n FormatValuePipe,\r\n SortByPropertyPipe,\r\n CommonModalComponent\r\n ],\r\n exports: [\r\n ButtonComponent,\r\n SectionHeaderComponent,\r\n ReactiveFormsModule,\r\n NgxPaginationModule,\r\n IndiancurrencyPipe,\r\n TruncatePipe,\r\n TransactionTypePipe,\r\n FormatValuePipe,\r\n SortByPropertyPipe,\r\n CommonModalComponent \r\n ],\r\n})\r\nexport class SharedModule { }\r\n","// Components\r\nexport * from './lib/shared/components/button/button.component';\r\nexport * from './lib/shared/components/section-header/section-header.component';\r\nexport * from './lib/shared/components/common-modal/common-modal.component';\r\n\r\n// Pipes\r\nexport * from './lib/shared/pipes/truncate-pipe';\r\nexport * from './lib/shared/pipes/indiancurrency.pipe';\r\nexport * from './lib/shared/pipes/format-value.pipe';\r\nexport * from './lib/shared/pipes/transaction-type.pipe';\r\nexport * from './lib/shared/pipes/sort-array.pipe';\r\n\r\n// Module\r\nexport * from './lib/shared/shared.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}