@ruc-lib/overlay 2.0.0

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,113 @@
1
+ # Overlay
2
+
3
+ A customizable Angular overlay component that display richer content, such as text, images, tables, charts and more. They are useful for providing additional information to users without cluttering the interface.
4
+
5
+ ## Installation Guide
6
+
7
+ To use the Overlay component, you can install the entire RUC library or just this specific component.
8
+
9
+ ### Install the Entire Library
10
+ ```bash
11
+ npm install @uxpractice/ruc-lib
12
+ ```
13
+
14
+ ### Install Individual Component
15
+ If you only need the Overlay component:
16
+ ```bash
17
+ npm install @uxpractice/overlay
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ### 1. Import the Module
23
+ In your Angular module file (e.g., `app.module.ts`), import the `RuclibOverlayModule`:
24
+
25
+ ```typescript
26
+ import { RuclibOverlayModule } from '@uxpractice/overlay';
27
+ import { AppComponent } from './app.component';
28
+ import { NgModule } from '@angular/core';
29
+ import { BrowserModule } from '@angular/platform-browser';
30
+
31
+ @NgModule({
32
+ declarations: [AppComponent],
33
+ imports: [
34
+ BrowserModule,
35
+ RuclibOverlayModule
36
+ ],
37
+ providers: [],
38
+ bootstrap: [AppComponent]
39
+ })
40
+ export class AppModule {}
41
+ ```
42
+
43
+ ### 2. Use the Component
44
+ In your component's template, use the `<uxp-ruclib-overlay>` selector and pass the configuration object to the `rucInputData` input.
45
+
46
+ ```html
47
+ <uxp-ruclib-overlay [rucInputData]="OverlayConfig"></uxp-ruclib-overlay>
48
+ ```
49
+
50
+ ## API Reference
51
+
52
+ ### Component Inputs
53
+
54
+ | Input | Type | Description |
55
+ |----------------|--------------------|----------------------------------------------|
56
+ | `rucInputData` | `OverlayConfig` | The main configuration object for the component. |
57
+ | `customTheme` | `string` | An optional CSS class for custom theming. |
58
+
59
+
60
+ ### `OverlayConfig`
61
+ This is the main configuration object for the overlay
62
+
63
+ | Property | Type | Description |
64
+ |-----------------------------|--------------------------------------------------|---------------------------------------------------------------------------------------------------------|
65
+ | `placement` | `'bottom' \| 'top' \| 'left' \| 'right'` | The position of the overlay content (e.g., 0). |
66
+ | `trigger` | `'click'\|'hover' \` | The maximum value of the progress bar (e.g., 100). |
67
+ | `overlayTitle` | `string` | The title of the overlay content. |
68
+ | `content` | `'string' \| templateRef` | If accept string or html template both of displaying the content inside overlay area. |
69
+ | `animation` | `'fade' \| 'scale' \|` | The animation type for the overlay content (e.g., 'fade', 'scale').. Defaults to `fade`. |
70
+ | `showCloseButton` | `boolean` | It close the overlay.. Defaults to `false`. |
71
+ | `closeIcon` | `string` | Icon class for the close button. User can give his own icon for close the overlay. |
72
+ | `tableData` | `any[]` | It accept array of object and display data in table format inside overlay. |
73
+ | `tableClass` | `'basic-table' \|'striped-table' \|` | It accept table styling class .. Defaults to `basic-table`. |
74
+ | `closeDelay` | `number` | it delay the overlay close(milliseconds). |
75
+ | `chartConfig` | `any` | it can display chart if user provide chart configuration. |
76
+
77
+
78
+
79
+ ## Example Configuration
80
+
81
+ Here's an example of how to configure the Overlay in your component's TypeScript file.
82
+
83
+ ```typescript
84
+ import { Component } from '@angular/core';
85
+ import { OverlayConfig } from '@uxpractice/overlay';
86
+
87
+ @Component({
88
+ selector: 'app-root',
89
+ templateUrl: './app.component.html',
90
+ })
91
+ export class AppComponent {
92
+ overlayConfig: OverlayConfig = {
93
+ placement: 'left',
94
+ overlayTitle: 'Animated Popover with fade',
95
+ content: 'This is a simple popover triggered by a click.',
96
+ trigger: 'click',
97
+ animation: 'fade',
98
+ closeIcon: 'close',
99
+ showCloseButton : true,;
100
+ }
101
+ }
102
+ ```
103
+
104
+ ```html
105
+ <uxp-ruclib-overlay [rucInputData]="overlayConfig"></uxp-ruclib-overlay>
106
+
107
+ ## Contribution
108
+
109
+ Contributions are welcome! Feel free to open issues or pull requests for any enhancements or fixes.
110
+
111
+ ## Acknowledgements
112
+
113
+ Thank you for choosing the Overlay component. If you have any feedback or suggestions, please let us know!
@@ -0,0 +1,7 @@
1
+ export * from './lib/ruclib-overlay.module';
2
+ export * from './lib/ruc-overlay-chart/ruc-overlay-chart.component';
3
+ export * from './lib/service/overlay.service';
4
+ export * from './lib/model/overlay.types';
5
+ export * from './lib/overlay-content/overlay-content.component';
6
+ export * from './lib/ruclib-overlay/ruclib-overlay.component';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9ydWNsaWItb3ZlcmxheS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ydWMtb3ZlcmxheS1jaGFydC9ydWMtb3ZlcmxheS1jaGFydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL292ZXJsYXkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL292ZXJsYXkudHlwZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9vdmVybGF5LWNvbnRlbnQvb3ZlcmxheS1jb250ZW50LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1Y2xpYi1vdmVybGF5L3J1Y2xpYi1vdmVybGF5LmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export const positions = [
2
+ { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 10 },
3
+ { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -10 },
4
+ { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: 10 },
5
+ { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -10 }
6
+ ];
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMvcG9zaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBd0I7SUFDeEMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7SUFDMUYsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUMzRixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtJQUN6RixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO0NBQzNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0ZWRQb3NpdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IHBvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXSA9IFtcclxuICAgICAgeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnY2VudGVyJywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRZOiAxMCB9LFxyXG4gICAgICB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFk6IC0xMCB9LFxyXG4gICAgICB7IG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAnY2VudGVyJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnY2VudGVyJywgb2Zmc2V0WDogMTAgfSxcclxuICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnY2VudGVyJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2NlbnRlcicsIG9mZnNldFg6IC0xMCB9XHJcbiAgICBdO1xyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * The Injection Token used to provide the PopoverControl object to the
4
+ * PopoverContentComponent. This is the correct, final version.
5
+ */
6
+ export const OVERLAY_CONTROL = new InjectionToken('OVERLAY_CONTROL');
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWwvb3ZlcmxheS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBdUM1RDs7O0VBR0U7QUFDRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQWlCLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4qIERlZmluZXMgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGEgdXNlciBjYW4gcGFzcyB0byB0aGUgcG9wb3Zlci5cclxuKiBUaGlzIGlzIHRoZSBwdWJsaWMgQVBJIG9mIHlvdXIgY29tcG9uZW50LlxyXG4qL1xyXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJsYXlDb25maWcge1xyXG4gIHBsYWNlbWVudD86ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnIHwgc3RyaW5nO1xyXG4gIG92ZXJsYXlUaXRsZT86IHN0cmluZztcclxuICBjb250ZW50Pzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcclxuICBhbmltYXRpb24/OiAnZmFkZScgfCAnc2NhbGUnO1xyXG4gIHRyaWdnZXI/OiAnY2xpY2snIHwgJ2hvdmVyJztcclxuICBzaG93Q2xvc2VCdXR0b24/OiBib29sZWFuO1xyXG4gIGNsb3NlSWNvbj86IHN0cmluZztcclxuICB0YWJsZURhdGE/OiBhbnlbXTtcclxuICB0YWJsZUNsYXNzPzogc3RyaW5nO1xyXG4gIGNsb3NlRGVsYXk/Om51bWJlcixcclxuICBjaGFydENvbmZpZz86YW55XHJcbn1cclxuXHJcbi8qKlxyXG4qIERlZmluZXMgdGhlIGRhdGEgcGFja2V0IHRoYXQgdGhlIFBvcG92ZXJTZXJ2aWNlIHNlbmRzLlxyXG4qIEl0IGNvbnRhaW5zIHRoZSBjb25maWd1cmF0aW9uIEFORCB0aGUgZWxlbWVudCB0byBwb3NpdGlvbiBhZ2FpbnN0LlxyXG4qIFRISVMgSVMgVEhFIE9ORSBUSEUgU0VSVklDRSBVU0VTLlxyXG4qL1xyXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJsYXlEYXRhIHtcclxuICBjb25maWc6IE92ZXJsYXlDb25maWc7XHJcbiAgdHJpZ2dlcjogSFRNTEVsZW1lbnQ7XHJcbn1cclxuXHJcbi8qKlxyXG4qIERlZmluZXMgdGhlIGRhdGEgYW5kIGNvbnRyb2xzIHBhc3NlZCB0byB0aGUgZHluYW1pY2FsbHkgY3JlYXRlZCBQb3BvdmVyQ29udGVudENvbXBvbmVudC5cclxuKiBJdCBpbmNsdWRlcyB0aGUgY29uZmlnIEFORCBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNsb3NlIHRoZSBwb3BvdmVyLlxyXG4qL1xyXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJsYXlDb250cm9sIHtcclxuICBjb25maWc6IE92ZXJsYXlDb25maWc7XHJcbiAgY2xvc2U6ICgpID0+IHZvaWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4qIFRoZSBJbmplY3Rpb24gVG9rZW4gdXNlZCB0byBwcm92aWRlIHRoZSBQb3BvdmVyQ29udHJvbCBvYmplY3QgdG8gdGhlXHJcbiogUG9wb3ZlckNvbnRlbnRDb21wb25lbnQuIFRoaXMgaXMgdGhlIGNvcnJlY3QsIGZpbmFsIHZlcnNpb24uXHJcbiovXHJcbmV4cG9ydCBjb25zdCBPVkVSTEFZX0NPTlRST0wgPSBuZXcgSW5qZWN0aW9uVG9rZW48T3ZlcmxheUNvbnRyb2w+KCdPVkVSTEFZX0NPTlRST0wnKTtcclxuIl19
@@ -0,0 +1,86 @@
1
+ import { Component, EventEmitter, HostBinding, Inject, Output, TemplateRef, } from '@angular/core';
2
+ import { animate, state, style, transition, trigger, } from '@angular/animations';
3
+ import { OVERLAY_CONTROL } from '../model/overlay.types';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/material/icon";
7
+ import * as i3 from "../ruc-overlay-chart/ruc-overlay-chart.component";
8
+ export class OverlayContentComponent {
9
+ ngOnInit() {
10
+ if (this.control.config.tableData) {
11
+ this.getTableHeaders();
12
+ }
13
+ }
14
+ get animationState() {
15
+ return this.control.config.animation === 'scale'
16
+ ? 'enter-scale'
17
+ : 'enter-fade';
18
+ }
19
+ constructor(control) {
20
+ this.control = control;
21
+ this.actualPlacement = 'bottom';
22
+ this.tableHeaders = [];
23
+ this.mouseEnterPopover = new EventEmitter();
24
+ this.mouseLeavePopover = new EventEmitter();
25
+ this.actualPlacement = this.control.config.placement || 'bottom';
26
+ }
27
+ // Helper to check if content is a TemplateRef
28
+ isTemplateRef(content) {
29
+ return content instanceof TemplateRef;
30
+ }
31
+ // Helper to get keys for the table header, robustly
32
+ getTableHeaders() {
33
+ const tempData = this.control.config.tableData;
34
+ if (!tempData || tempData.length === 0) {
35
+ this.tableHeaders = [];
36
+ return;
37
+ }
38
+ // Assumes all objects in the array have the same shape
39
+ this.tableHeaders = Object.keys(tempData[0]);
40
+ }
41
+ }
42
+ OverlayContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayContentComponent, deps: [{ token: OVERLAY_CONTROL }], target: i0.ɵɵFactoryTarget.Component });
43
+ OverlayContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OverlayContentComponent, selector: "uxp-overlay-content", outputs: { mouseEnterPopover: "mouseEnterPopover", mouseLeavePopover: "mouseLeavePopover" }, host: { properties: { "@popoverAnimation": "this.animationState" } }, ngImport: i0, template: "<div class=\"popover-container\" (click)=\"$event.stopPropagation()\">\r\n <div class=\"popover-arrow\" [attr.data-placement]=\"actualPlacement\"></div>\r\n <!-- Header with optional title and close button -->\r\n <div\r\n *ngIf=\"\r\n control.config.overlayTitle ||\r\n control.config.showCloseButton ||\r\n control.config.closeIcon\r\n \"\r\n class=\"popover-header\"\r\n >\r\n <h3 *ngIf=\"control.config.overlayTitle\">\r\n {{ control.config.overlayTitle }}\r\n </h3>\r\n\r\n\r\n <ng-container *ngIf=\"control.config.showCloseButton\">\r\n <button\r\n type=\"button\"\r\n class=\"close-btn\"\r\n aria-label=\"Close\"\r\n (click)=\"control.close()\"\r\n >\r\n <mat-icon>{{ control.config.closeIcon }}</mat-icon>\r\n </button>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Body with dynamic content -->\r\n <div class=\"popover-body\">\r\n <!-- Case 1: Content is a simple string -->\r\n <ng-container\r\n *ngIf=\"\r\n !isTemplateRef(control.config.content) && !control.config.tableData\r\n \"\r\n >\r\n {{ control.config.content }}\r\n </ng-container>\r\n\r\n <!-- Case 2: Content is a TemplateRef -->\r\n <ng-container *ngIf=\"isTemplateRef(control.config.content)\">\r\n <ng-container *ngTemplateOutlet=\"control.config.content\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.config.chartConfig\">\r\n\r\n <uxp-ruc-overlay-chart [chartConfig]=\"control.config.chartConfig\"></uxp-ruc-overlay-chart>\r\n </ng-container>\r\n\r\n <!-- Case 3: Content is table data -->\r\n <ng-container *ngIf=\"control.config.tableData?.length\">\r\n <table\r\n class=\"popover-table\"\r\n [class]=\"control.config.tableClass || 'basic-table'\"\r\n >\r\n <thead>\r\n <tr>\r\n <th\r\n *ngFor=\"let header of this.tableHeaders!\"\r\n >\r\n {{ header }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of control.config.tableData\">\r\n <td\r\n *ngFor=\"let header of this.tableHeaders!\"\r\n >\r\n {{ row[header] }}\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.popover-container{z-index:1080;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px #0003;position:relative;color:#333;max-width:300px}.popover-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;border-width:10px}.popover-arrow[data-placement^=top]{bottom:-10px;left:50%;transform:translate(-50%);border-bottom-width:0;border-top-color:#fff;filter:drop-shadow(0 -1px 1px rgba(0,0,0,.1))}.popover-arrow[data-placement^=bottom]{top:-10px;left:50%;transform:translate(-50%);border-top-width:0;border-bottom-color:#fff;filter:drop-shadow(0 1px 1px rgba(0,0,0,.1))}.popover-arrow[data-placement^=left]{right:-10px;top:50%;transform:translateY(-50%);border-right-width:0;border-left-color:#fff;filter:drop-shadow(-1px 0 1px rgba(0,0,0,.1))}.popover-arrow[data-placement^=right]{left:-10px;top:50%;transform:translateY(-50%);border-left-width:0;border-right-color:#fff;filter:drop-shadow(1px 0 1px rgba(0,0,0,.1))}.popover-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;margin:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid #dcdcdc;border-radius:5px 5px 0 0}.popover-header h3{margin:0;font-size:1rem}.popover-body{padding:9px 14px;color:#212529}.close-btn,.close-icon{border:none;background:transparent;font-size:1.5rem;line-height:1;cursor:pointer;padding:0;margin-left:10px;opacity:.5}.close-btn:hover,.close-icon:hover{opacity:1}.popover-table{width:100%;border-collapse:collapse;margin-top:5px}.popover-table th,.popover-table td{border:1px solid #ddd;padding:8px;text-align:left}.popover-table th{background-color:#f2f2f2;text-transform:capitalize}.popover-table.striped-table tbody tr:nth-of-type(odd){background-color:#f9f9f9}.striped-table{width:100%;border-collapse:collapse;font-size:.9em}.striped-table th,.striped-table td{border:1px solid #ddd;padding:8px;text-align:left}.striped-table thead th{background-color:#f2f2f2;font-weight:700}.striped-table tbody tr:nth-child(even){background-color:#e9ecef}.striped-table tbody tr:hover{background-color:#f1f1f1}.basic-table{width:100%;border-collapse:collapse;font-size:.9em}.basic-table th,.basic-table td{border:1px solid #ddd;padding:8px;text-align:left}.basic-table thead th{background-color:#fff;font-weight:700}.basic-table tbody tr:nth-child(even){background-color:#fff}.basic-table tbody tr:hover{background-color:#f1f1f1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.RucOverlayChartComponent, selector: "uxp-ruc-overlay-chart", inputs: ["index", "chartConfig"] }], animations: [
44
+ trigger('popoverAnimation', [
45
+ state('void', style({ transform: 'scale(0.9)', opacity: 0 })),
46
+ state('enter-scale', style({ transform: 'scale(1)', opacity: 1 })),
47
+ state('enter-fade', style({ opacity: 1 })),
48
+ transition('void => enter-scale', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),
49
+ transition('void => enter-fade', [
50
+ style({ opacity: 0, transform: 'translateY(10px)' }),
51
+ animate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),
52
+ ]),
53
+ transition('* => void', [
54
+ animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' })),
55
+ ]),
56
+ ]),
57
+ ] });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayContentComponent, decorators: [{
59
+ type: Component,
60
+ args: [{ selector: 'uxp-overlay-content', animations: [
61
+ trigger('popoverAnimation', [
62
+ state('void', style({ transform: 'scale(0.9)', opacity: 0 })),
63
+ state('enter-scale', style({ transform: 'scale(1)', opacity: 1 })),
64
+ state('enter-fade', style({ opacity: 1 })),
65
+ transition('void => enter-scale', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),
66
+ transition('void => enter-fade', [
67
+ style({ opacity: 0, transform: 'translateY(10px)' }),
68
+ animate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),
69
+ ]),
70
+ transition('* => void', [
71
+ animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' })),
72
+ ]),
73
+ ]),
74
+ ], template: "<div class=\"popover-container\" (click)=\"$event.stopPropagation()\">\r\n <div class=\"popover-arrow\" [attr.data-placement]=\"actualPlacement\"></div>\r\n <!-- Header with optional title and close button -->\r\n <div\r\n *ngIf=\"\r\n control.config.overlayTitle ||\r\n control.config.showCloseButton ||\r\n control.config.closeIcon\r\n \"\r\n class=\"popover-header\"\r\n >\r\n <h3 *ngIf=\"control.config.overlayTitle\">\r\n {{ control.config.overlayTitle }}\r\n </h3>\r\n\r\n\r\n <ng-container *ngIf=\"control.config.showCloseButton\">\r\n <button\r\n type=\"button\"\r\n class=\"close-btn\"\r\n aria-label=\"Close\"\r\n (click)=\"control.close()\"\r\n >\r\n <mat-icon>{{ control.config.closeIcon }}</mat-icon>\r\n </button>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Body with dynamic content -->\r\n <div class=\"popover-body\">\r\n <!-- Case 1: Content is a simple string -->\r\n <ng-container\r\n *ngIf=\"\r\n !isTemplateRef(control.config.content) && !control.config.tableData\r\n \"\r\n >\r\n {{ control.config.content }}\r\n </ng-container>\r\n\r\n <!-- Case 2: Content is a TemplateRef -->\r\n <ng-container *ngIf=\"isTemplateRef(control.config.content)\">\r\n <ng-container *ngTemplateOutlet=\"control.config.content\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.config.chartConfig\">\r\n\r\n <uxp-ruc-overlay-chart [chartConfig]=\"control.config.chartConfig\"></uxp-ruc-overlay-chart>\r\n </ng-container>\r\n\r\n <!-- Case 3: Content is table data -->\r\n <ng-container *ngIf=\"control.config.tableData?.length\">\r\n <table\r\n class=\"popover-table\"\r\n [class]=\"control.config.tableClass || 'basic-table'\"\r\n >\r\n <thead>\r\n <tr>\r\n <th\r\n *ngFor=\"let header of this.tableHeaders!\"\r\n >\r\n {{ header }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of control.config.tableData\">\r\n <td\r\n *ngFor=\"let header of this.tableHeaders!\"\r\n >\r\n {{ row[header] }}\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.popover-container{z-index:1080;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px #0003;position:relative;color:#333;max-width:300px}.popover-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;border-width:10px}.popover-arrow[data-placement^=top]{bottom:-10px;left:50%;transform:translate(-50%);border-bottom-width:0;border-top-color:#fff;filter:drop-shadow(0 -1px 1px rgba(0,0,0,.1))}.popover-arrow[data-placement^=bottom]{top:-10px;left:50%;transform:translate(-50%);border-top-width:0;border-bottom-color:#fff;filter:drop-shadow(0 1px 1px rgba(0,0,0,.1))}.popover-arrow[data-placement^=left]{right:-10px;top:50%;transform:translateY(-50%);border-right-width:0;border-left-color:#fff;filter:drop-shadow(-1px 0 1px rgba(0,0,0,.1))}.popover-arrow[data-placement^=right]{left:-10px;top:50%;transform:translateY(-50%);border-left-width:0;border-right-color:#fff;filter:drop-shadow(1px 0 1px rgba(0,0,0,.1))}.popover-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;margin:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid #dcdcdc;border-radius:5px 5px 0 0}.popover-header h3{margin:0;font-size:1rem}.popover-body{padding:9px 14px;color:#212529}.close-btn,.close-icon{border:none;background:transparent;font-size:1.5rem;line-height:1;cursor:pointer;padding:0;margin-left:10px;opacity:.5}.close-btn:hover,.close-icon:hover{opacity:1}.popover-table{width:100%;border-collapse:collapse;margin-top:5px}.popover-table th,.popover-table td{border:1px solid #ddd;padding:8px;text-align:left}.popover-table th{background-color:#f2f2f2;text-transform:capitalize}.popover-table.striped-table tbody tr:nth-of-type(odd){background-color:#f9f9f9}.striped-table{width:100%;border-collapse:collapse;font-size:.9em}.striped-table th,.striped-table td{border:1px solid #ddd;padding:8px;text-align:left}.striped-table thead th{background-color:#f2f2f2;font-weight:700}.striped-table tbody tr:nth-child(even){background-color:#e9ecef}.striped-table tbody tr:hover{background-color:#f1f1f1}.basic-table{width:100%;border-collapse:collapse;font-size:.9em}.basic-table th,.basic-table td{border:1px solid #ddd;padding:8px;text-align:left}.basic-table thead th{background-color:#fff;font-weight:700}.basic-table tbody tr:nth-child(even){background-color:#fff}.basic-table tbody tr:hover{background-color:#f1f1f1}\n"] }]
75
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
76
+ type: Inject,
77
+ args: [OVERLAY_CONTROL]
78
+ }] }]; }, propDecorators: { mouseEnterPopover: [{
79
+ type: Output
80
+ }], mouseLeavePopover: [{
81
+ type: Output
82
+ }], animationState: [{
83
+ type: HostBinding,
84
+ args: ['@popoverAnimation']
85
+ }] } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvb3ZlcmxheS1jb250ZW50L292ZXJsYXktY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL292ZXJsYXktY29udGVudC9vdmVybGF5LWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFFTixNQUFNLEVBQ04sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQTJCekQsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxRQUFRO1FBQ04sSUFBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELElBQ0ksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxPQUFPO1lBQzlDLENBQUMsQ0FBQyxhQUFhO1lBQ2YsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBNEMsT0FBdUI7UUFBdkIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFwQjVELG9CQUFlLEdBQThCLFFBQVEsQ0FBQztRQUN0RCxpQkFBWSxHQUFPLEVBQUUsQ0FBQztRQUVuQixzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzdDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFpQnJE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QVcsRUFBRTtnQ0FDdEIsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7NkJBQ3ZFLENBQUM7eUJBQ0gsQ0FBQztxQkFDSDs7MEJBd0JZLE1BQU07MkJBQUMsZUFBZTs0Q0FqQnpCLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBVUgsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5Q29udHJvbCB9IGZyb20gJy4vLi4vbW9kZWwvb3ZlcmxheS50eXBlcyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5qZWN0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgYW5pbWF0ZSxcclxuICBzdGF0ZSxcclxuICBzdHlsZSxcclxuICB0cmFuc2l0aW9uLFxyXG4gIHRyaWdnZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IE9WRVJMQVlfQ09OVFJPTCB9IGZyb20gJy4uL21vZGVsL292ZXJsYXkudHlwZXMnO1xyXG5pbXBvcnQgeyBQb3BvdmVyUGxhY2VtZW50IH0gZnJvbSAnLi4vcnVjbGliLW92ZXJsYXkvcnVjbGliLW92ZXJsYXkuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndXhwLW92ZXJsYXktY29udGVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL292ZXJsYXktY29udGVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vb3ZlcmxheS1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcigncG9wb3ZlckFuaW1hdGlvbicsIFtcclxuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDAuOSknLCBvcGFjaXR5OiAwIH0pKSxcclxuICAgICAgc3RhdGUoJ2VudGVyLXNjYWxlJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSgxKScsIG9wYWNpdHk6IDEgfSkpLFxyXG4gICAgICBzdGF0ZSgnZW50ZXItZmFkZScsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oXHJcbiAgICAgICAgJ3ZvaWQgPT4gZW50ZXItc2NhbGUnLFxyXG4gICAgICAgIGFuaW1hdGUoJzE1MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJylcclxuICAgICAgKSxcclxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBlbnRlci1mYWRlJywgW1xyXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgxMHB4KScgfSksXHJcbiAgICAgICAgYW5pbWF0ZSgnNTAwbXMnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0pKSxcclxuICAgICAgXSksXHJcbiAgICAgIHRyYW5zaXRpb24oJyogPT4gdm9pZCcsIFtcclxuICAgICAgICBhbmltYXRlKCc1MDBtcycsIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgxMHB4KScgfSkpLFxyXG4gICAgICBdKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgT3ZlcmxheUNvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBhY3R1YWxQbGFjZW1lbnQ6IHN0cmluZyB8IFBvcG92ZXJQbGFjZW1lbnQgPSAnYm90dG9tJztcclxuICBwdWJsaWMgdGFibGVIZWFkZXJzOmFueVtdPVtdO1xyXG5cclxuICBAT3V0cHV0KCkgbW91c2VFbnRlclBvcG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG1vdXNlTGVhdmVQb3BvdmVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmNvbnRyb2wuY29uZmlnLnRhYmxlRGF0YSkge1xyXG4gICAgICAgIHRoaXMuZ2V0VGFibGVIZWFkZXJzKCk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdAcG9wb3ZlckFuaW1hdGlvbicpXHJcbiAgZ2V0IGFuaW1hdGlvblN0YXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5jb25maWcuYW5pbWF0aW9uID09PSAnc2NhbGUnXHJcbiAgICAgID8gJ2VudGVyLXNjYWxlJ1xyXG4gICAgICA6ICdlbnRlci1mYWRlJztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoT1ZFUkxBWV9DT05UUk9MKSBwdWJsaWMgY29udHJvbDogT3ZlcmxheUNvbnRyb2wpIHtcclxuICAgIHRoaXMuYWN0dWFsUGxhY2VtZW50ID0gdGhpcy5jb250cm9sLmNvbmZpZy5wbGFjZW1lbnQgfHwgJ2JvdHRvbSc7XHJcbiAgfVxyXG5cclxuICAvLyBIZWxwZXIgdG8gY2hlY2sgaWYgY29udGVudCBpcyBhIFRlbXBsYXRlUmVmXHJcbiAgaXNUZW1wbGF0ZVJlZihjb250ZW50OiBhbnkpOiBjb250ZW50IGlzIFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgcmV0dXJuIGNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcclxuICB9XHJcblxyXG4gIC8vIEhlbHBlciB0byBnZXQga2V5cyBmb3IgdGhlIHRhYmxlIGhlYWRlciwgcm9idXN0bHlcclxuICBnZXRUYWJsZUhlYWRlcnMoKTogdm9pZCB7XHJcbiAgICBjb25zdCB0ZW1wRGF0YSA9IHRoaXMuY29udHJvbC5jb25maWcudGFibGVEYXRhO1xyXG5cclxuICAgIGlmICghdGVtcERhdGEgfHwgdGVtcERhdGEubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMudGFibGVIZWFkZXJzID0gW107XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIEFzc3VtZXMgYWxsIG9iamVjdHMgaW4gdGhlIGFycmF5IGhhdmUgdGhlIHNhbWUgc2hhcGVcclxuICAgIHRoaXMudGFibGVIZWFkZXJzID0gT2JqZWN0LmtleXModGVtcERhdGFbMF0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicG9wb3Zlci1jb250YWluZXJcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgPGRpdiBjbGFzcz1cInBvcG92ZXItYXJyb3dcIiBbYXR0ci5kYXRhLXBsYWNlbWVudF09XCJhY3R1YWxQbGFjZW1lbnRcIj48L2Rpdj5cclxuICA8IS0tIEhlYWRlciB3aXRoIG9wdGlvbmFsIHRpdGxlIGFuZCBjbG9zZSBidXR0b24gLS0+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJcclxuICAgICAgY29udHJvbC5jb25maWcub3ZlcmxheVRpdGxlIHx8XHJcbiAgICAgIGNvbnRyb2wuY29uZmlnLnNob3dDbG9zZUJ1dHRvbiB8fFxyXG4gICAgICBjb250cm9sLmNvbmZpZy5jbG9zZUljb25cclxuICAgIFwiXHJcbiAgICBjbGFzcz1cInBvcG92ZXItaGVhZGVyXCJcclxuICA+XHJcbiAgICA8aDMgKm5nSWY9XCJjb250cm9sLmNvbmZpZy5vdmVybGF5VGl0bGVcIj5cclxuICAgICAge3sgY29udHJvbC5jb25maWcub3ZlcmxheVRpdGxlIH19XHJcbiAgICA8L2gzPlxyXG5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udHJvbC5jb25maWcuc2hvd0Nsb3NlQnV0dG9uXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBjbGFzcz1cImNsb3NlLWJ0blwiXHJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcclxuICAgICAgICAoY2xpY2spPVwiY29udHJvbC5jbG9zZSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtaWNvbj57eyBjb250cm9sLmNvbmZpZy5jbG9zZUljb24gfX08L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIEJvZHkgd2l0aCBkeW5hbWljIGNvbnRlbnQgLS0+XHJcbiAgPGRpdiBjbGFzcz1cInBvcG92ZXItYm9keVwiPlxyXG4gICAgPCEtLSBDYXNlIDE6IENvbnRlbnQgaXMgYSBzaW1wbGUgc3RyaW5nIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdJZj1cIlxyXG4gICAgICAgICFpc1RlbXBsYXRlUmVmKGNvbnRyb2wuY29uZmlnLmNvbnRlbnQpICYmICFjb250cm9sLmNvbmZpZy50YWJsZURhdGFcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAge3sgY29udHJvbC5jb25maWcuY29udGVudCB9fVxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBDYXNlIDI6IENvbnRlbnQgaXMgYSBUZW1wbGF0ZVJlZiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGNvbnRyb2wuY29uZmlnLmNvbnRlbnQpXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250cm9sLmNvbmZpZy5jb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udHJvbC5jb25maWcuY2hhcnRDb25maWdcIj5cclxuXHJcbiAgICAgIDx1eHAtcnVjLW92ZXJsYXktY2hhcnQgIFtjaGFydENvbmZpZ109XCJjb250cm9sLmNvbmZpZy5jaGFydENvbmZpZ1wiPjwvdXhwLXJ1Yy1vdmVybGF5LWNoYXJ0PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBDYXNlIDM6IENvbnRlbnQgaXMgdGFibGUgZGF0YSAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250cm9sLmNvbmZpZy50YWJsZURhdGE/Lmxlbmd0aFwiPlxyXG4gICAgICA8dGFibGVcclxuICAgICAgICBjbGFzcz1cInBvcG92ZXItdGFibGVcIlxyXG4gICAgICAgIFtjbGFzc109XCJjb250cm9sLmNvbmZpZy50YWJsZUNsYXNzIHx8ICdiYXNpYy10YWJsZSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRoaXMudGFibGVIZWFkZXJzIVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyBoZWFkZXIgfX1cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90aGVhZD5cclxuICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiBjb250cm9sLmNvbmZpZy50YWJsZURhdGFcIj5cclxuICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhlYWRlciBvZiB0aGlzLnRhYmxlSGVhZGVycyFcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgcm93W2hlYWRlcl0gfX1cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,29 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import Chart from 'chart.js/auto';
3
+ import * as i0 from "@angular/core";
4
+ export class RucOverlayChartComponent {
5
+ constructor() {
6
+ this.index = 0;
7
+ }
8
+ ngAfterViewInit() {
9
+ if (this.chartConfig) {
10
+ this.chart = new Chart('canvas' + this.index, this.chartConfig);
11
+ }
12
+ }
13
+ ngOnDestroy() {
14
+ this.chart?.destroy();
15
+ this.chart = null;
16
+ this.chartConfig = null;
17
+ }
18
+ }
19
+ RucOverlayChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RucOverlayChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
+ RucOverlayChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RucOverlayChartComponent, selector: "uxp-ruc-overlay-chart", inputs: { index: "index", chartConfig: "chartConfig" }, ngImport: i0, template: "<div style=\"position: relative; height:220px;\">\r\n <canvas id=\"canvas{{index}}\">{{chart}}</canvas>\r\n</div>\r\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RucOverlayChartComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'uxp-ruc-overlay-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div style=\"position: relative; height:220px;\">\r\n <canvas id=\"canvas{{index}}\">{{chart}}</canvas>\r\n</div>\r\n" }]
24
+ }], propDecorators: { index: [{
25
+ type: Input
26
+ }], chartConfig: [{
27
+ type: Input
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjLW92ZXJsYXktY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9ydWMtb3ZlcmxheS1jaGFydC9ydWMtb3ZlcmxheS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL3J1Yy1vdmVybGF5LWNoYXJ0L3J1Yy1vdmVybGF5LWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxlQUFlLENBQUM7O0FBT2xDLE1BQU0sT0FBTyx3QkFBd0I7SUFOckM7UUFRVyxVQUFLLEdBQVcsQ0FBQyxDQUFDO0tBYzVCO0lBWEMsZUFBZTtRQUNiLElBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDOztzSEFmVSx3QkFBd0I7MEdBQXhCLHdCQUF3QixxSENkckMsMEhBR0E7NEZEV2Esd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTTs4QkFJdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgQ2hhcnQgZnJvbSAnY2hhcnQuanMvYXV0byc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndXhwLXJ1Yy1vdmVybGF5LWNoYXJ0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcnVjLW92ZXJsYXktY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3J1Yy1vdmVybGF5LWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSdWNPdmVybGF5Q2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNoYXJ0OiBhbnk7XHJcbiAgQElucHV0KCkgaW5kZXg/Om51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgY2hhcnRDb25maWc6IGFueTtcclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5jaGFydENvbmZpZykge1xyXG4gICAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KCdjYW52YXMnICsgdGhpcy5pbmRleCwgdGhpcy5jaGFydENvbmZpZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhcnQ/LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuY2hhcnQgPSBudWxsO1xyXG4gICAgdGhpcy5jaGFydENvbmZpZyA9IG51bGw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IGhlaWdodDoyMjBweDtcIj5cclxuICAgIDxjYW52YXMgaWQ9XCJjYW52YXN7e2luZGV4fX1cIj57e2NoYXJ0fX08L2NhbnZhcz5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,182 @@
1
+ import { Overlay } from '@angular/cdk/overlay';
2
+ import { Component, ElementRef, HostListener, Injector, Input, ViewChild } from '@angular/core';
3
+ import { OVERLAY_CONTROL } from '../model/overlay.types';
4
+ import { filter } from 'rxjs';
5
+ import { ComponentPortal } from '@angular/cdk/portal';
6
+ import { OverlayService } from '../service/overlay.service';
7
+ import { OverlayContentComponent } from '../overlay-content/overlay-content.component';
8
+ import { MatButton } from '@angular/material/button';
9
+ import { ESCAPE } from '@angular/cdk/keycodes';
10
+ import { positions } from '../constants/positions';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/cdk/overlay";
13
+ import * as i2 from "../service/overlay.service";
14
+ import * as i3 from "@angular/common";
15
+ import * as i4 from "@angular/material/button";
16
+ export class RuclibOverlayComponent {
17
+ constructor(overlay, injector, overlayService) {
18
+ this.overlay = overlay;
19
+ this.injector = injector;
20
+ this.overlayService = overlayService;
21
+ this.rucInputData = {
22
+ content: 'Default content',
23
+ };
24
+ this.overlayRef = null;
25
+ }
26
+ ngOnInit() {
27
+ if (!this.buttonText) {
28
+ this.serviceSubscription = this.overlayService.popoverState$.subscribe((data) => {
29
+ if (data && !this.isOpen) {
30
+ this.show(data.trigger, data.config);
31
+ }
32
+ else if (!data) {
33
+ this.destroy();
34
+ }
35
+ });
36
+ }
37
+ }
38
+ ngOnDestroy() {
39
+ this.positionSubscription?.unsubscribe();
40
+ this.serviceSubscription?.unsubscribe();
41
+ this.destroy();
42
+ }
43
+ get isOpen() {
44
+ return !!this.overlayRef;
45
+ }
46
+ // --- Trigger Handlers for self-contained button ---
47
+ toggle() {
48
+ if (this.rucInputData.trigger !== 'hover') {
49
+ this.isOpen ? this.destroy() : this.show(this.triggerButtonRef.nativeElement, this.rucInputData);
50
+ }
51
+ }
52
+ handleMouseEnter() {
53
+ if (this.rucInputData.trigger === 'hover') {
54
+ if (this.closeTimeout)
55
+ clearTimeout(this.closeTimeout); // Clear any pending close command
56
+ this.show(this.triggerButtonRef.nativeElement, this.rucInputData);
57
+ }
58
+ }
59
+ handleMouseLeave() {
60
+ if (this.rucInputData.trigger === 'hover') {
61
+ // Use the configurable closeDelay
62
+ const delay = this.rucInputData.closeDelay ?? 200;
63
+ this.closeTimeout = setTimeout(() => this.destroy(), delay);
64
+ }
65
+ }
66
+ show(trigger, config) {
67
+ if (this.isOpen) {
68
+ return;
69
+ }
70
+ const positionStrategy = this.createPositionStrategy(trigger, config.placement || 'bottom');
71
+ this.overlayRef = this.overlay.create({
72
+ positionStrategy,
73
+ hasBackdrop: config.trigger !== 'hover',
74
+ backdropClass: 'cdk-overlay-transparent-backdrop',
75
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
76
+ disposeOnNavigation: true
77
+ });
78
+ this.overlayRef.keydownEvents().pipe(filter(event => event.keyCode === ESCAPE)).subscribe(() => this.destroy());
79
+ // Create the control object with the close callback
80
+ const control = {
81
+ config,
82
+ close: this.destroy.bind(this),
83
+ };
84
+ const injector = Injector.create({
85
+ parent: this.injector,
86
+ providers: [{ provide: OVERLAY_CONTROL, useValue: control }],
87
+ });
88
+ const portal = new ComponentPortal(OverlayContentComponent, null, injector);
89
+ const componentRef = this.overlayRef.attach(portal);
90
+ this.positionSubscription = positionStrategy.positionChanges.subscribe(change => {
91
+ const newPlacement = this.getPlacementFromPosition(change.connectionPair);
92
+ componentRef.instance.actualPlacement = newPlacement;
93
+ componentRef.changeDetectorRef.detectChanges();
94
+ });
95
+ // --- NEW: Subscribe to the content component's events ---
96
+ componentRef.instance.mouseEnterPopover.subscribe(() => {
97
+ if (this.closeTimeout)
98
+ clearTimeout(this.closeTimeout);
99
+ });
100
+ componentRef.instance.mouseLeavePopover.subscribe(() => {
101
+ this.handleMouseLeave(); // Re-use the same logic
102
+ });
103
+ // Close on backdrop click for 'click' triggers
104
+ if (config.trigger !== 'hover') {
105
+ this.overlayRef.backdropClick().subscribe(() => this.destroy());
106
+ }
107
+ // --- NEW: Accessibility ---
108
+ const popoverId = `popover-${Math.random().toString(36).substring(2, 9)}`;
109
+ componentRef.location.nativeElement.setAttribute('id', popoverId);
110
+ trigger.setAttribute('aria-describedby', popoverId);
111
+ this.lastTriggerElement = trigger;
112
+ }
113
+ // Renamed from hide() to destroy() for clarity
114
+ destroy() {
115
+ if (!this.overlayRef)
116
+ return; // Prevent multiple calls
117
+ if (this.lastTriggerElement) {
118
+ this.lastTriggerElement.removeAttribute('aria-describedby');
119
+ this.lastTriggerElement = undefined;
120
+ }
121
+ this.positionSubscription?.unsubscribe();
122
+ this.overlayRef.dispose();
123
+ this.overlayRef = null;
124
+ }
125
+ getPlacementFromPosition(position) {
126
+ if (position.originY === 'top' && position.overlayY === 'bottom')
127
+ return 'top';
128
+ if (position.originY === 'bottom' && position.overlayY === 'top')
129
+ return 'bottom';
130
+ if (position.originX === 'start' && position.overlayX === 'end')
131
+ return 'left';
132
+ if (position.originX === 'end' && position.overlayX === 'start')
133
+ return 'right';
134
+ return 'bottom';
135
+ }
136
+ createPositionStrategy(origin, placement) {
137
+ let preferredPosition;
138
+ switch (placement) {
139
+ case 'top':
140
+ preferredPosition = positions[1];
141
+ break;
142
+ case 'right':
143
+ preferredPosition = positions[2];
144
+ break;
145
+ case 'left':
146
+ preferredPosition = positions[3];
147
+ break;
148
+ default:
149
+ preferredPosition = positions[0];
150
+ break;
151
+ }
152
+ return this.overlay.position()
153
+ .flexibleConnectedTo(origin)
154
+ .withPositions([preferredPosition, ...positions])
155
+ .withPush(true);
156
+ }
157
+ //Document-level listeners for closing
158
+ onEscape() {
159
+ this.positionSubscription?.unsubscribe();
160
+ this.serviceSubscription?.unsubscribe();
161
+ this.destroy();
162
+ }
163
+ }
164
+ RuclibOverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibOverlayComponent, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i2.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
165
+ RuclibOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RuclibOverlayComponent, selector: "uxp-ruclib-overlay", inputs: { buttonText: "buttonText", rucInputData: "rucInputData", customTheme: "customTheme" }, host: { listeners: { "document:keydown:escape": "onEscape()" } }, viewQueries: [{ propertyName: "triggerButtonRef", first: true, predicate: MatButton, descendants: true, read: ElementRef }], ngImport: i0, template: "<button\r\nmat-raised-button\r\n color=\"primary\"\r\n *ngIf=\"buttonText\"\r\n #triggerButton\r\n (click)=\"toggle()\"\r\n (mouseenter)=\"handleMouseEnter()\"\r\n (mouseleave)=\"handleMouseLeave()\"\r\n class=\"popover-trigger-btn\">\r\n {{ buttonText }}\r\n</button>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibOverlayComponent, decorators: [{
167
+ type: Component,
168
+ args: [{ selector: 'uxp-ruclib-overlay', template: "<button\r\nmat-raised-button\r\n color=\"primary\"\r\n *ngIf=\"buttonText\"\r\n #triggerButton\r\n (click)=\"toggle()\"\r\n (mouseenter)=\"handleMouseEnter()\"\r\n (mouseleave)=\"handleMouseLeave()\"\r\n class=\"popover-trigger-btn\">\r\n {{ buttonText }}\r\n</button>\r\n" }]
169
+ }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.OverlayService }]; }, propDecorators: { buttonText: [{
170
+ type: Input
171
+ }], rucInputData: [{
172
+ type: Input
173
+ }], customTheme: [{
174
+ type: Input
175
+ }], triggerButtonRef: [{
176
+ type: ViewChild,
177
+ args: [MatButton, { read: ElementRef }]
178
+ }], onEscape: [{
179
+ type: HostListener,
180
+ args: ['document:keydown:escape']
181
+ }] } });
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjbGliLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9ydWNsaWItb3ZlcmxheS9ydWNsaWItb3ZlcmxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL3J1Y2xpYi1vdmVybGF5L3J1Y2xpYi1vdmVybGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0YsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDekksT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsZUFBZSxFQUE4QyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxNQUFNLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQWlCbkQsTUFBTSxPQUFPLHNCQUFzQjtJQWlCakMsWUFDVSxPQUFnQixFQUNoQixRQUFrQixFQUNsQixjQUE4QjtRQUY5QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBbEIvQixpQkFBWSxHQUFrQjtZQUNyQyxPQUFPLEVBQUUs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QUFHLFNBQVMsQ0FBQyxDQUFDO2FBQ2hELFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUEsc0NBQXNDO0lBRXRDLFFBQVE7UUFDUixJQUFJLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQixDQUFDOztvSEE5S1Msc0JBQXNCO3dHQUF0QixzQkFBc0IsOFFBUXRCLFNBQVMsMkJBQVUsVUFBVSw2QkNsQzFDLDhTQVdBOzRGRGVhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxvQkFBb0I7a0pBTXJCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUc4QyxnQkFBZ0I7c0JBQW5FLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFrS3pDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0ZWRQb3NpdGlvbiwgQ29ubmVjdGlvblBvc2l0aW9uUGFpciwgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9WRVJMQVlfQ09OVFJPTCwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheUNvbnRyb2wsIE92ZXJsYXlEYXRhIH0gZnJvbSAnLi4vbW9kZWwvb3ZlcmxheS50eXBlcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBPdmVybGF5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2Uvb3ZlcmxheS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3ZlcmxheUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9vdmVybGF5LWNvbnRlbnQvb3ZlcmxheS1jb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEVTQ0FQRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IHBvc2l0aW9ucyB9IGZyb20gJy4uL2NvbnN0YW50cy9wb3NpdGlvbnMnO1xyXG5cclxuZXhwb3J0IHR5cGUgUG9wb3ZlclBsYWNlbWVudCA9ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnO1xyXG5leHBvcnQgdHlwZSBQb3BvdmVyQW5pbWF0aW9uID0gJ2ZhZGUnIHwgJ3NjYWxlJztcclxuZXhwb3J0IHR5cGUgQ2hhcnRUeXBlID0gJ2RvdWdobnV0JyB8ICdwaWUnIHwgJ2Jhcic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0TW9kZWwge1xyXG4gIGNoYXJ0VHlwZTogQ2hhcnRUeXBlO1xyXG4gIGRhdGE6IGFueTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1eHAtcnVjbGliLW92ZXJsYXknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ydWNsaWItb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcnVjbGliLW92ZXJsYXkuY29tcG9uZW50LnNjc3MnXSxcclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSdWNsaWJPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGJ1dHRvblRleHQ/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcnVjSW5wdXREYXRhOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgY29udGVudDogJ0RlZmF1bHQgY29udGVudCcsXHJcbiAgfTtcclxuICBASW5wdXQoKSBjdXN0b21UaGVtZSE6c3RyaW5nO1xyXG5cclxuICBcclxuICBAVmlld0NoaWxkKE1hdEJ1dHRvbiwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHByaXZhdGUgdHJpZ2dlckJ1dHRvblJlZiE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgc2VydmljZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGNsb3NlVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+OyAvLyBVc2UgdGhlIGNvcnJlY3QgdHlwZVxyXG4gIHByaXZhdGUgbGFzdFRyaWdnZXJFbGVtZW50PzogSFRNTEVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBwb3NpdGlvblN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIG92ZXJsYXlTZXJ2aWNlOiBPdmVybGF5U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYnV0dG9uVGV4dCkge1xyXG4gICAgICB0aGlzLnNlcnZpY2VTdWJzY3JpcHRpb24gPSB0aGlzLm92ZXJsYXlTZXJ2aWNlLnBvcG92ZXJTdGF0ZSQuc3Vic2NyaWJlKFxyXG4gICAgICAgIChkYXRhOmFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEgJiYgIXRoaXMuaXNPcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvdyhkYXRhLnRyaWdnZXIsIGRhdGEuY29uZmlnKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoIWRhdGEpIHtcclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnBvc2l0aW9uU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zZXJ2aWNlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5kZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5vdmVybGF5UmVmO1xyXG4gIH1cclxuXHJcbiAgLy8gLS0tIFRyaWdnZXIgSGFuZGxlcnMgZm9yIHNlbGYtY29udGFpbmVkIGJ1dHRvbiAtLS1cclxuICB0b2dnbGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ydWNJbnB1dERhdGEudHJpZ2dlciAhPT0gJ2hvdmVyJykge1xyXG50aGlzLmlzT3BlbiA/IHRoaXMuZGVzdHJveSgpIDogdGhpcy5zaG93KHRoaXMudHJpZ2dlckJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnJ1Y0lucHV0RGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVNb3VzZUVudGVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucnVjSW5wdXREYXRhLnRyaWdnZXIgPT09ICdob3ZlcicpIHtcclxuICAgICAgaWYgKHRoaXMuY2xvc2VUaW1lb3V0KSBjbGVhclRpbWVvdXQodGhpcy5jbG9zZVRpbWVvdXQpOyAvLyBDbGVhciBhbnkgcGVuZGluZyBjbG9zZSBjb21tYW5kXHJcbnRoaXMuc2hvdyh0aGlzLnRyaWdnZXJCdXR0b25SZWYubmF0aXZlRWxlbWVudCwgdGhpcy5ydWNJbnB1dERhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlTW91c2VMZWF2ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJ1Y0lucHV0RGF0YS50cmlnZ2VyID09PSAnaG92ZXInKSB7XHJcbiAgICAgIC8vIFVzZSB0aGUgY29uZmlndXJhYmxlIGNsb3NlRGVsYXlcclxuICAgICAgY29uc3QgZGVsYXkgPSB0aGlzLnJ1Y0lucHV0RGF0YS5jbG9zZURlbGF5ID8/IDIwMDtcclxuICAgICAgdGhpcy5jbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZGVzdHJveSgpLCBkZWxheSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBzaG93KHRyaWdnZXI6IEhUTUxFbGVtZW50LCBjb25maWc6IE92ZXJsYXlDb25maWcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzT3Blbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuY3JlYXRlUG9zaXRpb25TdHJhdGVneShcclxuICAgICAgdHJpZ2dlcixcclxuICAgICAgY29uZmlnLnBsYWNlbWVudCB8fCAnYm90dG9tJ1xyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcclxuICAgICAgaGFzQmFja2Ryb3A6IGNvbmZpZy50cmlnZ2VyICE9PSAnaG92ZXInLCAvLyBObyBiYWNrZHJvcCBmb3IgaG92ZXJcclxuICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcclxuICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjp0cnVlXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgdGhpcy5vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5waXBlKGZpbHRlcihldmVudD0+IGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSkpLnN1YnNjcmliZSgoKT0+IHRoaXMuZGVzdHJveSgpKTtcclxuXHJcbiAgICAvLyBDcmVhdGUgdGhlIGNvbnRyb2wgb2JqZWN0IHdpdGggdGhlIGNsb3NlIGNhbGxiYWNrXHJcbiAgICBjb25zdCBjb250cm9sOiBPdmVybGF5Q29udHJvbCA9IHtcclxuICAgICAgY29uZmlnLFxyXG4gICAgICBjbG9zZTogdGhpcy5kZXN0cm95LmJpbmQodGhpcyksXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE9WRVJMQVlfQ09OVFJPTCwgdXNlVmFsdWU6IGNvbnRyb2wgfV0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKE92ZXJsYXlDb250ZW50Q29tcG9uZW50LCBudWxsLCBpbmplY3Rvcik7XHJcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XHJcblxyXG4gICAgdGhpcy5wb3NpdGlvblN1YnNjcmlwdGlvbiA9IHBvc2l0aW9uU3RyYXRlZ3kucG9zaXRpb25DaGFuZ2VzLnN1YnNjcmliZShjaGFuZ2UgPT4ge1xyXG4gICAgICBjb25zdCBuZXdQbGFjZW1lbnQgPSB0aGlzLmdldFBsYWNlbWVudEZyb21Qb3NpdGlvbihjaGFuZ2UuY29ubmVjdGlvblBhaXIpO1xyXG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuYWN0dWFsUGxhY2VtZW50ID0gbmV3UGxhY2VtZW50O1xyXG4gICAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gLS0tIE5FVzogU3Vic2NyaWJlIHRvIHRoZSBjb250ZW50IGNvbXBvbmVudCdzIGV2ZW50cyAtLS1cclxuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5tb3VzZUVudGVyUG9wb3Zlci5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5jbG9zZVRpbWVvdXQpIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5tb3VzZUxlYXZlUG9wb3Zlci5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmhhbmRsZU1vdXNlTGVhdmUoKTsgLy8gUmUtdXNlIHRoZSBzYW1lIGxvZ2ljXHJcbiAgICB9KTtcclxuXHJcbiAgICAgICAvLyBDbG9zZSBvbiBiYWNrZHJvcCBjbGljayBmb3IgJ2NsaWNrJyB0cmlnZ2Vyc1xyXG4gICAgaWYgKGNvbmZpZy50cmlnZ2VyICE9PSAnaG92ZXInKSB7XHJcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZGVzdHJveSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAtLS0gTkVXOiBBY2Nlc3NpYmlsaXR5IC0tLVxyXG4gICAgY29uc3QgcG9wb3ZlcklkID0gYHBvcG92ZXItJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgOSl9YDtcclxuICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBwb3BvdmVySWQpO1xyXG4gICAgdHJpZ2dlci5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknLCBwb3BvdmVySWQpO1xyXG4gICAgdGhpcy5sYXN0VHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyO1xyXG5cclxuICB9XHJcblxyXG4gICAvLyBSZW5hbWVkIGZyb20gaGlkZSgpIHRvIGRlc3Ryb3koKSBmb3IgY2xhcml0eVxyXG4gcHJpdmF0ZSBkZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm92ZXJsYXlSZWYpIHJldHVybjsgLy8gUHJldmVudCBtdWx0aXBsZSBjYWxsc1xyXG5cclxuICAgIGlmICh0aGlzLmxhc3RUcmlnZ2VyRWxlbWVudCkge1xyXG4gICAgICB0aGlzLmxhc3RUcmlnZ2VyRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknKTtcclxuICAgICAgdGhpcy5sYXN0VHJpZ2dlckVsZW1lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvc2l0aW9uU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcclxuICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBsYWNlbWVudEZyb21Qb3NpdGlvbihwb3NpdGlvbjogQ29ubmVjdGlvblBvc2l0aW9uUGFpcik6IFBvcG92ZXJQbGFjZW1lbnQge1xyXG4gICAgaWYgKHBvc2l0aW9uLm9yaWdpblkgPT09ICd0b3AnICYmIHBvc2l0aW9uLm92ZXJsYXlZID09PSAnYm90dG9tJykgcmV0dXJuICd0b3AnO1xyXG4gICAgaWYgKHBvc2l0aW9uLm9yaWdpblkgPT09ICdib3R0b20nICYmIHBvc2l0aW9uLm92ZXJsYXlZID09PSAndG9wJykgcmV0dXJuICdib3R0b20nO1xyXG4gICAgaWYgKHBvc2l0aW9uLm9yaWdpblggPT09ICdzdGFydCcgJiYgcG9zaXRpb24ub3ZlcmxheVggPT09ICdlbmQnKSByZXR1cm4gJ2xlZnQnO1xyXG4gICAgaWYgKHBvc2l0aW9uLm9yaWdpblggPT09ICdlbmQnICYmIHBvc2l0aW9uLm92ZXJsYXlYID09PSAnc3RhcnQnKSByZXR1cm4gJ3JpZ2h0JztcclxuICAgIHJldHVybiAnYm90dG9tJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlUG9zaXRpb25TdHJhdGVneShvcmlnaW46IEhUTUxFbGVtZW50LCBwbGFjZW1lbnQ6IHN0cmluZyk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XHJcbiAgICBsZXQgcHJlZmVycmVkUG9zaXRpb246IENvbm5lY3RlZFBvc2l0aW9uO1xyXG4gICAgc3dpdGNoIChwbGFjZW1lbnQpIHtcclxuICAgICAgY2FzZSAndG9wJzogcHJlZmVycmVkUG9zaXRpb24gPSBwb3NpdGlvbnNbMV07IGJyZWFrO1xyXG4gICAgICBjYXNlICdyaWdodCc6IHByZWZlcnJlZFBvc2l0aW9uID0gcG9zaXRpb25zWzJdOyBicmVhaztcclxuICAgICAgY2FzZSAnbGVmdCc6IHByZWZlcnJlZFBvc2l0aW9uID0gcG9zaXRpb25zWzNdOyBicmVhaztcclxuICAgICAgZGVmYXVsdDogcHJlZmVycmVkUG9zaXRpb24gPSBwb3NpdGlvbnNbMF07IGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKVxyXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhvcmlnaW4pXHJcbiAgICAgIC53aXRoUG9zaXRpb25zKFtwcmVmZXJyZWRQb3NpdGlvbiwgLi4ucG9zaXRpb25zXSlcclxuICAgICAgLndpdGhQdXNoKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgIC8vRG9jdW1lbnQtbGV2ZWwgbGlzdGVuZXJzIGZvciBjbG9zaW5nXHJcbiAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd246ZXNjYXBlJylcclxuICAgb25Fc2NhcGUoKTp2b2lkIHtcclxuICAgdGhpcy5wb3NpdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc2VydmljZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICB9XHJcblxyXG59XHJcbiIsIjxidXR0b25cclxubWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgKm5nSWY9XCJidXR0b25UZXh0XCJcclxuICAjdHJpZ2dlckJ1dHRvblxyXG4gIChjbGljayk9XCJ0b2dnbGUoKVwiXHJcbiAgKG1vdXNlZW50ZXIpPVwiaGFuZGxlTW91c2VFbnRlcigpXCJcclxuICAobW91c2VsZWF2ZSk9XCJoYW5kbGVNb3VzZUxlYXZlKClcIlxyXG4gIGNsYXNzPVwicG9wb3Zlci10cmlnZ2VyLWJ0blwiPlxyXG4gIHt7IGJ1dHRvblRleHQgfX1cclxuPC9idXR0b24+XHJcbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
2
+ import { NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { RuclibOverlayComponent } from './ruclib-overlay/ruclib-overlay.component';
5
+ import { OverlayContentComponent } from './overlay-content/overlay-content.component';
6
+ import { MatIconModule } from '@angular/material/icon';
7
+ import { OverlayModule } from '@angular/cdk/overlay';
8
+ import { MatButtonModule } from '@angular/material/button';
9
+ import { RucOverlayChartComponent } from './ruc-overlay-chart/ruc-overlay-chart.component';
10
+ import * as i0 from "@angular/core";
11
+ export class RuclibOverlayModule {
12
+ }
13
+ RuclibOverlayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibOverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ RuclibOverlayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: RuclibOverlayModule, declarations: [RuclibOverlayComponent,
15
+ OverlayContentComponent,
16
+ RucOverlayChartComponent], imports: [CommonModule,
17
+ MatIconModule,
18
+ OverlayModule,
19
+ BrowserAnimationsModule,
20
+ MatButtonModule], exports: [RuclibOverlayComponent, RucOverlayChartComponent] });
21
+ RuclibOverlayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibOverlayModule, imports: [CommonModule,
22
+ MatIconModule,
23
+ OverlayModule,
24
+ BrowserAnimationsModule,
25
+ MatButtonModule] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibOverlayModule, decorators: [{
27
+ type: NgModule,
28
+ args: [{
29
+ imports: [
30
+ CommonModule,
31
+ MatIconModule,
32
+ OverlayModule,
33
+ BrowserAnimationsModule,
34
+ MatButtonModule,
35
+ ],
36
+ declarations: [
37
+ RuclibOverlayComponent,
38
+ OverlayContentComponent,
39
+ RucOverlayChartComponent
40
+ ],
41
+ exports: [RuclibOverlayComponent, RucOverlayChartComponent],
42
+ }]
43
+ }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjbGliLW92ZXJsYXkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ydWNsaWItb3ZlcmxheS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBaUIzRixNQUFNLE9BQU8sbUJBQW1COztpSEFBbkIsbUJBQW1CO2tIQUFuQixtQkFBbUIsaUJBTjVCLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsd0JBQXdCLGFBVHhCLFlBQVk7UUFDWixhQUFhO1FBQ2IsYUFBYTtRQUNiLHVCQUF1QjtRQUN2QixlQUFlLGFBT1Asc0JBQXNCLEVBQUUsd0JBQXdCO2tIQUUvQyxtQkFBbUIsWUFiNUIsWUFBWTtRQUNaLGFBQWE7UUFDYixhQUFhO1FBQ2IsdUJBQXVCO1FBQ3ZCLGVBQWU7NEZBU04sbUJBQW1CO2tCQWYvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLGVBQWU7cUJBQ2hCO29CQUNELFlBQVksRUFBRTt3QkFDWixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSx3QkFBd0IsQ0FBQztpQkFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJ1Y2xpYk92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuL3J1Y2xpYi1vdmVybGF5L3J1Y2xpYi1vdmVybGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE92ZXJsYXlDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5LWNvbnRlbnQvb3ZlcmxheS1jb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgUnVjT3ZlcmxheUNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9ydWMtb3ZlcmxheS1jaGFydC9ydWMtb3ZlcmxheS1jaGFydC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgT3ZlcmxheU1vZHVsZSxcclxuICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBSdWNsaWJPdmVybGF5Q29tcG9uZW50LFxyXG4gICAgT3ZlcmxheUNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBSdWNPdmVybGF5Q2hhcnRDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtSdWNsaWJPdmVybGF5Q29tcG9uZW50LCBSdWNPdmVybGF5Q2hhcnRDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUnVjbGliT3ZlcmxheU1vZHVsZSB7fVxyXG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class OverlayService {
5
+ constructor() {
6
+ this.popoverState = new Subject();
7
+ this.popoverState$ = this.popoverState.asObservable();
8
+ }
9
+ /**
10
+ * Broadcasts a command to open a popover using the OverlayData structure.
11
+ */
12
+ open(config, trigger) {
13
+ console.log(config, trigger);
14
+ // The service's responsibility is to bundle the config and trigger
15
+ // into a PopoverData object and send it.
16
+ this.popoverState.next({ config, trigger });
17
+ }
18
+ /**
19
+ * Broadcasts a command to close any currently open service-controlled popover.
20
+ */
21
+ close() {
22
+ this.popoverState.next(null);
23
+ }
24
+ }
25
+ OverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
+ OverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayService, providedIn: 'root' });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayService, decorators: [{
28
+ type: Injectable,
29
+ args: [{
30
+ providedIn: 'root'
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSy9CLE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBS1UsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztRQUVsRCxrQkFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7S0FvQnpEO0lBaEJDOztPQUVHO0lBQ0gsSUFBSSxDQUFDLE1BQTZCLEVBQUUsT0FBK0I7UUFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0IsbUVBQW1FO1FBQ25FLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDOzs0R0F2QlUsY0FBYztnSEFBZCxjQUFjLGNBRmIsTUFBTTs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlEYXRhIH0gZnJvbSAnLi8uLi9tb2RlbC9vdmVybGF5LnR5cGVzJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPdmVybGF5U2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcG9wb3ZlclN0YXRlID0gbmV3IFN1YmplY3Q8T3ZlcmxheURhdGEgfCBudWxsPigpO1xyXG5cclxuICBwdWJsaWMgcG9wb3ZlclN0YXRlJCA9IHRoaXMucG9wb3ZlclN0YXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEJyb2FkY2FzdHMgYSBjb21tYW5kIHRvIG9wZW4gYSBwb3BvdmVyIHVzaW5nIHRoZSBPdmVybGF5RGF0YSBzdHJ1Y3R1cmUuXHJcbiAgICovXHJcbiAgb3Blbihjb25maWc6IE92ZXJsYXlEYXRhWydjb25maWcnXSwgdHJpZ2dlcjogT3ZlcmxheURhdGFbJ3RyaWdnZXInXSkge1xyXG4gICAgY29uc29sZS5sb2coY29uZmlnLCB0cmlnZ2VyKTtcclxuICAgIC8vIFRoZSBzZXJ2aWNlJ3MgcmVzcG9uc2liaWxpdHkgaXMgdG8gYnVuZGxlIHRoZSBjb25maWcgYW5kIHRyaWdnZXJcclxuICAgIC8vIGludG8gYSBQb3BvdmVyRGF0YSBvYmplY3QgYW5kIHNlbmQgaXQuXHJcbiAgICB0aGlzLnBvcG92ZXJTdGF0ZS5uZXh0KHsgY29uZmlnLCB0cmlnZ2VyIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnJvYWRjYXN0cyBhIGNvbW1hbmQgdG8gY2xvc2UgYW55IGN1cnJlbnRseSBvcGVuIHNlcnZpY2UtY29udHJvbGxlZCBwb3BvdmVyLlxyXG4gICAqL1xyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5wb3BvdmVyU3RhdGUubmV4dChudWxsKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjLWxpYi1vdmVybGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1Yy1saWItb3ZlcmxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==