cat-qw-lib 0.44.6 → 0.44.8
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/fesm2022/cat-qw-lib.mjs +53 -24
- package/fesm2022/cat-qw-lib.mjs.map +1 -1
- package/lib/widget/components/widget-container/widget-container.component.d.ts +9 -2
- package/lib/widget/components/widget-item/widget-item.component.d.ts +1 -0
- package/lib/widget/models/widget.model.d.ts +4 -0
- package/lib/widget/state/widget.query.d.ts +1 -0
- package/lib/widget/state/widget.store.d.ts +2 -0
- package/package.json +1 -1
package/fesm2022/cat-qw-lib.mjs
CHANGED
|
@@ -4040,10 +4040,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
|
|
|
4040
4040
|
let WidgetStore = class WidgetStore extends BaseStore {
|
|
4041
4041
|
onViewAllDetails$;
|
|
4042
4042
|
onViewPropertyDetails$;
|
|
4043
|
+
onItemClick$;
|
|
4043
4044
|
constructor() {
|
|
4044
4045
|
super();
|
|
4045
4046
|
this.onViewAllDetails$ = new BehaviorSubject(SHARED.EMPTY_STRING);
|
|
4046
4047
|
this.onViewPropertyDetails$ = new BehaviorSubject(SHARED.EMPTY);
|
|
4048
|
+
this.onItemClick$ = new BehaviorSubject({});
|
|
4047
4049
|
}
|
|
4048
4050
|
setOnViewPropertyDetails(value) {
|
|
4049
4051
|
this.onViewPropertyDetails$.next(value);
|
|
@@ -4054,6 +4056,9 @@ let WidgetStore = class WidgetStore extends BaseStore {
|
|
|
4054
4056
|
resetOnViewAllDetails() {
|
|
4055
4057
|
this.onViewAllDetails$.next(null);
|
|
4056
4058
|
}
|
|
4059
|
+
setOnWidgetItemClick(value) {
|
|
4060
|
+
this.onItemClick$.next(value);
|
|
4061
|
+
}
|
|
4057
4062
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4058
4063
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetStore, providedIn: 'root' });
|
|
4059
4064
|
};
|
|
@@ -4110,6 +4115,9 @@ class WidgetQuery extends BaseQuery {
|
|
|
4110
4115
|
getViewPropertyDetails() {
|
|
4111
4116
|
return this.widgetStore.onViewPropertyDetails$.asObservable();
|
|
4112
4117
|
}
|
|
4118
|
+
getOnWidgetItemClick() {
|
|
4119
|
+
return this.widgetStore.onItemClick$.asObservable();
|
|
4120
|
+
}
|
|
4113
4121
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetQuery, deps: [{ token: WidgetStore }, { token: WidgetStore }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4114
4122
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetQuery, providedIn: 'root' });
|
|
4115
4123
|
}
|
|
@@ -4199,12 +4207,15 @@ class WidgetItemComponent {
|
|
|
4199
4207
|
ngOnDestroy() {
|
|
4200
4208
|
this.widgetStore.setOnViewPropertyDetails(false);
|
|
4201
4209
|
}
|
|
4210
|
+
handleWidgetItemClick() {
|
|
4211
|
+
this.widgetStore.setOnWidgetItemClick({ item: this.widgetItem, recordId: this.widget.recordId });
|
|
4212
|
+
}
|
|
4202
4213
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetItemComponent, deps: [{ token: StyleBuilderService }, { token: WidgetStore }], target: i0.ɵɵFactoryTarget.Component });
|
|
4203
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetItemComponent, isStandalone: false, selector: "lib-widget-item", inputs: { widgetItem: "widgetItem", widget: "widget", application: "application" }, ngImport: i0, template: "<div class=\"widget-container\"
|
|
4214
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetItemComponent, isStandalone: false, selector: "lib-widget-item", inputs: { widgetItem: "widgetItem", widget: "widget", application: "application" }, ngImport: i0, template: "<div class=\"widget-container\">\n <div class=\"flex justify-content-between\"\n [ngClass]=\"!(widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget') ? 'align-items-center' : ''\">\n <p class=\"mb-0 text-color-secondary mr-3 key-field-wrapper w-50\">{{ widgetItem?.key }}</p>\n\n <div class=\"mb-0 text-color font-semibold text-value-wrapper w-50 flex align-items-center justify-content-end\">\n <i *ngIf=\"widgetItem?.style?.includes('color: red;')\" class=\"pi pi-exclamation-triangle text-red-500 mr-1\"\n style=\"font-size: 1.3rem\"></i>\n <p *ngIf=\"!(widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget')\" class=\"key-field-wrapper\"\n [ngStyle]=\"getStyle(widgetItem?.style)\">\n <ng-container *ngIf=\"widgetItem?.isLink; else plainText\">\n <a href=\"javascript:void(0)\" (click)=\"handleWidgetItemClick()\" target=\"_blank\" rel=\"noopener noreferrer\">\n {{ (widgetItem.value && widgetItem.value !== 'null') ? widgetItem.value : '' }}\n </a>\n </ng-container>\n <ng-template #plainText>\n {{ (widgetItem?.value && widgetItem?.value !== 'null') ? widgetItem?.value : '' }}\n </ng-template>\n </p>\n <i *ngIf=\"widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget'\"\n class=\"pi pi-map-marker map-icon map-icon-wrapper\"></i>\n </div>\n </div>\n <div *ngIf=\"widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget'\"\n class=\"address-title-wrapper cursor-pointer\" [ngStyle]=\"getStyle(widgetItem?.style)\" (click)=\"onHandleSidebar()\">\n {{ widgetItem?.value }}\n </div>\n</div>", styles: [".text-value-wrapper{-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%}.key-field-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.w-50{width:50%!important}.map-icon-wrapper{font-size:16px;padding:13px;border-radius:30px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.address-title-wrapper{width:80%;word-break:break-word;margin-top:-12px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
4204
4215
|
}
|
|
4205
4216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetItemComponent, decorators: [{
|
|
4206
4217
|
type: Component,
|
|
4207
|
-
args: [{ selector: 'lib-widget-item', standalone: false, template: "<div class=\"widget-container\"
|
|
4218
|
+
args: [{ selector: 'lib-widget-item', standalone: false, template: "<div class=\"widget-container\">\n <div class=\"flex justify-content-between\"\n [ngClass]=\"!(widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget') ? 'align-items-center' : ''\">\n <p class=\"mb-0 text-color-secondary mr-3 key-field-wrapper w-50\">{{ widgetItem?.key }}</p>\n\n <div class=\"mb-0 text-color font-semibold text-value-wrapper w-50 flex align-items-center justify-content-end\">\n <i *ngIf=\"widgetItem?.style?.includes('color: red;')\" class=\"pi pi-exclamation-triangle text-red-500 mr-1\"\n style=\"font-size: 1.3rem\"></i>\n <p *ngIf=\"!(widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget')\" class=\"key-field-wrapper\"\n [ngStyle]=\"getStyle(widgetItem?.style)\">\n <ng-container *ngIf=\"widgetItem?.isLink; else plainText\">\n <a href=\"javascript:void(0)\" (click)=\"handleWidgetItemClick()\" target=\"_blank\" rel=\"noopener noreferrer\">\n {{ (widgetItem.value && widgetItem.value !== 'null') ? widgetItem.value : '' }}\n </a>\n </ng-container>\n <ng-template #plainText>\n {{ (widgetItem?.value && widgetItem?.value !== 'null') ? widgetItem?.value : '' }}\n </ng-template>\n </p>\n <i *ngIf=\"widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget'\"\n class=\"pi pi-map-marker map-icon map-icon-wrapper\"></i>\n </div>\n </div>\n <div *ngIf=\"widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget'\"\n class=\"address-title-wrapper cursor-pointer\" [ngStyle]=\"getStyle(widgetItem?.style)\" (click)=\"onHandleSidebar()\">\n {{ widgetItem?.value }}\n </div>\n</div>", styles: [".text-value-wrapper{-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%}.key-field-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.w-50{width:50%!important}.map-icon-wrapper{font-size:16px;padding:13px;border-radius:30px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.address-title-wrapper{width:80%;word-break:break-word;margin-top:-12px}\n"] }]
|
|
4208
4219
|
}], ctorParameters: () => [{ type: StyleBuilderService }, { type: WidgetStore }], propDecorators: { widgetItem: [{
|
|
4209
4220
|
type: Input
|
|
4210
4221
|
}], widget: [{
|
|
@@ -4216,15 +4227,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
|
|
|
4216
4227
|
class WidgetBodyComponent {
|
|
4217
4228
|
widget;
|
|
4218
4229
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4219
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
4230
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: WidgetBodyComponent, isStandalone: false, selector: "lib-widget-body", inputs: { widget: "widget" }, ngImport: i0, template: "<div class=\"widget-body-container\">\n <div *ngFor=\"let dataItem of widget?.dataItems || []; let i = index\">\n @if(!dataItem.isHidden){\n <div [ngClass]=\"i !== ((widget.dataItems || []).length - 1) ? 'widget-item-wrapper' : ''\">\n <div [ngClass]=\"\n dataItem?.key === 'Vulnerability' && widget.predefinedName === 'ApplicantWidget'\n ? 'vulnerability-title-wrapper'\n : ( i !== ((widget.dataItems || []).length - 1) ? 'widget-wrapper' : 'widget-last-wrapper' )\n \" class=\"px-3\">\n <lib-widget-item [widgetItem]=\"dataItem\" [widget]=\"widget\"></lib-widget-item>\n </div>\n </div>\n }\n </div>\n</div>", styles: [".widget-item-wrapper{border-bottom:1px solid rgba(68,72,109,.1)}.widget-wrapper{padding:10px 0}.widget-last-wrapper{padding:10px 0 0}.vulnerability-title-wrapper{background:#fb392d36}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: WidgetItemComponent, selector: "lib-widget-item", inputs: ["widgetItem", "widget", "application"] }] });
|
|
4220
4231
|
}
|
|
4221
4232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetBodyComponent, decorators: [{
|
|
4222
4233
|
type: Component,
|
|
4223
|
-
args: [{ selector: 'lib-widget-body', standalone: false, template: "<div class=\"widget-body-container\">\n <div *ngFor=\"let dataItem of widget?.dataItems || []; let i = index\">\n <div [ngClass]=\"i !== ((widget
|
|
4234
|
+
args: [{ selector: 'lib-widget-body', standalone: false, template: "<div class=\"widget-body-container\">\n <div *ngFor=\"let dataItem of widget?.dataItems || []; let i = index\">\n @if(!dataItem.isHidden){\n <div [ngClass]=\"i !== ((widget.dataItems || []).length - 1) ? 'widget-item-wrapper' : ''\">\n <div [ngClass]=\"\n dataItem?.key === 'Vulnerability' && widget.predefinedName === 'ApplicantWidget'\n ? 'vulnerability-title-wrapper'\n : ( i !== ((widget.dataItems || []).length - 1) ? 'widget-wrapper' : 'widget-last-wrapper' )\n \" class=\"px-3\">\n <lib-widget-item [widgetItem]=\"dataItem\" [widget]=\"widget\"></lib-widget-item>\n </div>\n </div>\n }\n </div>\n</div>", styles: [".widget-item-wrapper{border-bottom:1px solid rgba(68,72,109,.1)}.widget-wrapper{padding:10px 0}.widget-last-wrapper{padding:10px 0 0}.vulnerability-title-wrapper{background:#fb392d36}\n"] }]
|
|
4224
4235
|
}], propDecorators: { widget: [{
|
|
4225
4236
|
type: Input
|
|
4226
4237
|
}] } });
|
|
4227
4238
|
|
|
4239
|
+
/**
|
|
4240
|
+
* Widget Container Component
|
|
4241
|
+
*/
|
|
4228
4242
|
class WidgetContainerComponent {
|
|
4229
4243
|
widgetService;
|
|
4230
4244
|
activatedRoute;
|
|
@@ -4240,32 +4254,18 @@ class WidgetContainerComponent {
|
|
|
4240
4254
|
}
|
|
4241
4255
|
destroy$ = new Subject();
|
|
4242
4256
|
widgets = [];
|
|
4243
|
-
|
|
4257
|
+
subscriptions = [];
|
|
4244
4258
|
isLoading = true;
|
|
4245
4259
|
onViewAllDetails = new EventEmitter();
|
|
4246
4260
|
onViewAllProperties = new EventEmitter();
|
|
4261
|
+
onWidgetItemClick = new EventEmitter();
|
|
4247
4262
|
isSidebarVisible = SHARED.FALSE;
|
|
4248
4263
|
offerWidgetData;
|
|
4249
4264
|
valuationWidgetData;
|
|
4250
4265
|
progressChartData;
|
|
4251
4266
|
ngOnInit() {
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
this.onViewAllDetails.emit(res);
|
|
4255
|
-
}
|
|
4256
|
-
}, (error) => {
|
|
4257
|
-
console.error('Error in getOnViewAllDetails subscription:', error);
|
|
4258
|
-
});
|
|
4259
|
-
this.widgetQuery.getViewPropertyDetails()
|
|
4260
|
-
.pipe(takeUntil(this.destroy$))
|
|
4261
|
-
.subscribe((res) => {
|
|
4262
|
-
if (res) {
|
|
4263
|
-
this.onViewAllProperties.next(res);
|
|
4264
|
-
}
|
|
4265
|
-
});
|
|
4266
|
-
if (detailsSubscription) {
|
|
4267
|
-
this.subscription.add(detailsSubscription);
|
|
4268
|
-
}
|
|
4267
|
+
this.handleEventFromPropertyDetails();
|
|
4268
|
+
this.handleOnViewAllDetails();
|
|
4269
4269
|
const queueId = localStorage.getItem(SHARED.selectedQueue);
|
|
4270
4270
|
const recordId = this.activatedRoute.snapshot.params[SHARED.ID];
|
|
4271
4271
|
if (!queueId || !recordId) {
|
|
@@ -4279,6 +4279,33 @@ class WidgetContainerComponent {
|
|
|
4279
4279
|
this.getWidgetFromCacheList(queueId, recordId);
|
|
4280
4280
|
this.getAllWidgetList(queueId, recordId);
|
|
4281
4281
|
}
|
|
4282
|
+
handleWidgetItemClick() {
|
|
4283
|
+
this.subscriptions.push(this.widgetQuery.getOnWidgetItemClick().subscribe((res) => {
|
|
4284
|
+
if (res) {
|
|
4285
|
+
this.onWidgetItemClick.emit(res);
|
|
4286
|
+
}
|
|
4287
|
+
}, (error) => {
|
|
4288
|
+
console.error('Error in getOnWidgetItemClick subscription:', error);
|
|
4289
|
+
}));
|
|
4290
|
+
}
|
|
4291
|
+
handleEventFromPropertyDetails() {
|
|
4292
|
+
this.widgetQuery.getViewPropertyDetails()
|
|
4293
|
+
.pipe(takeUntil(this.destroy$))
|
|
4294
|
+
.subscribe((res) => {
|
|
4295
|
+
if (res) {
|
|
4296
|
+
this.onViewAllProperties.next(res);
|
|
4297
|
+
}
|
|
4298
|
+
});
|
|
4299
|
+
}
|
|
4300
|
+
handleOnViewAllDetails() {
|
|
4301
|
+
this.subscriptions.push(this.widgetQuery.getOnViewAllDetails()?.subscribe((res) => {
|
|
4302
|
+
if (res) {
|
|
4303
|
+
this.onViewAllDetails.emit(res);
|
|
4304
|
+
}
|
|
4305
|
+
}, (error) => {
|
|
4306
|
+
console.error('Error in getOnViewAllDetails subscription:', error);
|
|
4307
|
+
}));
|
|
4308
|
+
}
|
|
4282
4309
|
getAllWidgetList(queueId, recordId) {
|
|
4283
4310
|
this.widgetService.getAllWidgets(queueId, recordId)
|
|
4284
4311
|
.pipe(takeUntil(this.destroy$))
|
|
@@ -4309,12 +4336,12 @@ class WidgetContainerComponent {
|
|
|
4309
4336
|
ngOnDestroy() {
|
|
4310
4337
|
this.widgets = [];
|
|
4311
4338
|
this.widgetStore.resetOnViewAllDetails();
|
|
4312
|
-
this.
|
|
4339
|
+
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
4313
4340
|
this.destroy$.next();
|
|
4314
4341
|
this.destroy$.complete();
|
|
4315
4342
|
}
|
|
4316
4343
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetContainerComponent, deps: [{ token: WidgetService }, { token: i3$4.ActivatedRoute }, { token: WidgetQuery }, { token: WidgetStore }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4317
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetContainerComponent, isStandalone: false, selector: "lib-widget-container", inputs: { isSidebarVisible: "isSidebarVisible", offerWidgetData: "offerWidgetData", valuationWidgetData: "valuationWidgetData", progressChartData: "progressChartData" }, outputs: { onViewAllDetails: "onViewAllDetails", onViewAllProperties: "onViewAllProperties" }, usesOnChanges: true, ngImport: i0, template: "<p-card class=\"widget-block-wrapper block\">\n <div class=\"widget-section-wrapper custom-scroll pt-2\">\n <!-- Loading state -->\n <ng-container *ngIf=\"isLoading; else widgetContent\">\n <p class=\"text-color ml-3 font-semibold\">Widget configuration loading...</p>\n </ng-container>\n\n <!-- Content after API call -->\n <ng-template #widgetContent>\n <ng-container *ngIf=\"(widgets && widgets.length > 0) || (valuationWidgetData || offerWidgetData); else noWidgets\">\n <ng-container *ngFor=\"let widget of widgets; let i = index\">\n <div class=\"widget-container-wrapper pl-1\" [ngClass]=\"i !== 0 ? 'mt-4' : ''\">\n <lib-widget-header [widget]=\"widget\" [progressChartData]=\"progressChartData\"></lib-widget-header>\n <div class=\"widget-content-wrapper mt-3 py-3\">\n <lib-widget-body [widget]=\"widget\"></lib-widget-body>\n <lib-widget-footer [widget]=\"widget\"></lib-widget-footer>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"offerWidgetData\">\n <lib-custom-widget [widgetData]=\"offerWidgetData\"></lib-custom-widget>\n </ng-container>\n <ng-container *ngIf=\"valuationWidgetData\">\n <lib-custom-widget [widgetData]=\"valuationWidgetData\"></lib-custom-widget>\n </ng-container>\n </ng-container>\n\n <!-- No widget configured state -->\n <ng-template #noWidgets>\n <p class=\"text-color ml-3 font-semibold\">No Widgets Configured</p>\n </ng-template>\n </ng-template>\n </div>\n</p-card>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}::ng-deep .widget-block-wrapper{height:100%}::ng-deep .widget-block-wrapper .p-card{height:100%;box-shadow:none}::ng-deep .widget-block-wrapper .p-card-body{padding:0;height:100%}::ng-deep .widget-block-wrapper .p-card-content{padding-bottom:0;height:100%}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}.widget-section-wrapper{height:100%}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.widget-content-wrapper{border-top:1px solid rgba(68,72,109,.1)}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "component", type: CustomWidgetComponent, selector: "lib-custom-widget", inputs: ["widgetData"] }, { kind: "component", type: WidgetHeaderComponent, selector: "lib-widget-header", inputs: ["widget", "progressChartData"] }, { kind: "component", type: WidgetFooterComponent, selector: "lib-widget-footer", inputs: ["widget"] }, { kind: "component", type: WidgetBodyComponent, selector: "lib-widget-body", inputs: ["widget"] }] });
|
|
4344
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetContainerComponent, isStandalone: false, selector: "lib-widget-container", inputs: { isSidebarVisible: "isSidebarVisible", offerWidgetData: "offerWidgetData", valuationWidgetData: "valuationWidgetData", progressChartData: "progressChartData" }, outputs: { onViewAllDetails: "onViewAllDetails", onViewAllProperties: "onViewAllProperties", onWidgetItemClick: "onWidgetItemClick" }, usesOnChanges: true, ngImport: i0, template: "<p-card class=\"widget-block-wrapper block\">\n <div class=\"widget-section-wrapper custom-scroll pt-2\">\n <!-- Loading state -->\n <ng-container *ngIf=\"isLoading; else widgetContent\">\n <p class=\"text-color ml-3 font-semibold\">Widget configuration loading...</p>\n </ng-container>\n\n <!-- Content after API call -->\n <ng-template #widgetContent>\n <ng-container *ngIf=\"(widgets && widgets.length > 0) || (valuationWidgetData || offerWidgetData); else noWidgets\">\n <ng-container *ngFor=\"let widget of widgets; let i = index\">\n <div class=\"widget-container-wrapper pl-1\" [ngClass]=\"i !== 0 ? 'mt-4' : ''\">\n <lib-widget-header [widget]=\"widget\" [progressChartData]=\"progressChartData\"></lib-widget-header>\n <div class=\"widget-content-wrapper mt-3 py-3\">\n <lib-widget-body [widget]=\"widget\"></lib-widget-body>\n <lib-widget-footer [widget]=\"widget\"></lib-widget-footer>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"offerWidgetData\">\n <lib-custom-widget [widgetData]=\"offerWidgetData\"></lib-custom-widget>\n </ng-container>\n <ng-container *ngIf=\"valuationWidgetData\">\n <lib-custom-widget [widgetData]=\"valuationWidgetData\"></lib-custom-widget>\n </ng-container>\n </ng-container>\n\n <!-- No widget configured state -->\n <ng-template #noWidgets>\n <p class=\"text-color ml-3 font-semibold\">No Widgets Configured</p>\n </ng-template>\n </ng-template>\n </div>\n</p-card>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}::ng-deep .widget-block-wrapper{height:100%}::ng-deep .widget-block-wrapper .p-card{height:100%;box-shadow:none}::ng-deep .widget-block-wrapper .p-card-body{padding:0;height:100%}::ng-deep .widget-block-wrapper .p-card-content{padding-bottom:0;height:100%}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}.widget-section-wrapper{height:100%}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.widget-content-wrapper{border-top:1px solid rgba(68,72,109,.1)}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "component", type: CustomWidgetComponent, selector: "lib-custom-widget", inputs: ["widgetData"] }, { kind: "component", type: WidgetHeaderComponent, selector: "lib-widget-header", inputs: ["widget", "progressChartData"] }, { kind: "component", type: WidgetFooterComponent, selector: "lib-widget-footer", inputs: ["widget"] }, { kind: "component", type: WidgetBodyComponent, selector: "lib-widget-body", inputs: ["widget"] }] });
|
|
4318
4345
|
}
|
|
4319
4346
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetContainerComponent, decorators: [{
|
|
4320
4347
|
type: Component,
|
|
@@ -4323,6 +4350,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
|
|
|
4323
4350
|
type: Output
|
|
4324
4351
|
}], onViewAllProperties: [{
|
|
4325
4352
|
type: Output
|
|
4353
|
+
}], onWidgetItemClick: [{
|
|
4354
|
+
type: Output
|
|
4326
4355
|
}], isSidebarVisible: [{
|
|
4327
4356
|
type: Input
|
|
4328
4357
|
}], offerWidgetData: [{
|