@ruc-lib/widget 3.1.1 → 4.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.
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZS93aWRnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIERlZmluZXMgdGhlIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoZSBtYWluIGBydWNsaWItd2lkZ2V0YCBjb21wb25lbnQuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldENvbmZpZyB7XHJcbiAgLyoqXHJcbiAgICogVGhlIHRoZW1lIGNvbG9yIHRvIGJlIGFwcGxpZWQgdG8gaW50ZXJhY3RpdmUgZWxlbWVudHMgbGlrZSBpY29ucy5cclxuICAgKiBAZXhhbXBsZSAncHJpbWFyeScsICdhY2NlbnQnLCAnd2FybidcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKi9cclxuICBjb2xvcj86IHN0cmluZztcclxuICAvKipcclxuICAgKiBBbiBhcnJheSBvZiBjb25maWd1cmF0aW9uIG9iamVjdHMsIGVhY2ggZGVmaW5pbmcgYSBzaW5nbGUgd2lkZ2V0LlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqL1xyXG4gIHdpZGdldERhdGE/OiBXaWRnZXRDb25maWdEYXRhW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWZpbmVzIHRoZSBjb25maWd1cmF0aW9uIGZvciBhIHNpbmdsZSB3aWRnZXQgd2l0aGluIHRoZSBjb250YWluZXIuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldENvbmZpZ0RhdGEge1xyXG4gIC8qKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgd2lkZ2V0LiAqL1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVGhlIHRpdGxlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgd2lkZ2V0J3MgaGVhZGVyLlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqL1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvciBtYWluIHRleHQgY29udGVudCwgdXNlZCB3aGVuIGBjb250ZW50VHlwZWAgaXMgJ3RleHQnLlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqL1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIElmIHRydWUsIGEgY2xvc2UgaWNvbiBpcyBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciB0byBhbGxvdyB0aGUgdXNlciB0byByZW1vdmUgdGhlIHdpZGdldC5cclxuICAgKiBAb3B0aW9uYWxcclxuICAgKi9cclxuICBzaG93Q2xvc2VJY29uPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBJZiB0cnVlLCB0aGUgd2lkZ2V0IGlzIHZpc3VhbGx5IGZhZGVkIGFuZCBjYW5ub3QgYmUgaW50ZXJhY3RlZCB3aXRoIChkcmFnZ2VkLCByZXNpemVkLCBldGMuKS5cclxuICAgKiBAb3B0aW9uYWxcclxuICAgKi9cclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogVGhlIENTUyB3aWR0aCBvZiB0aGUgd2lkZ2V0LlxyXG4gICAqIEBleGFtcGxlICczMDBweCcsICc1MCUnLCAnMzN2dydcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKi9cclxuICB3aWR0aD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBUaGUgQ1NTIGhlaWdodCBvZiB0aGUgd2lkZ2V0LlxyXG4gICAqIEBleGFtcGxlICcyMDBweCcsICdhdXRvJywgJzUwdmgnXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICovXHJcbiAgaGVpZ2h0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIElmIHRydWUsIHRoZSB3aWRnZXQgY2FuIGJlIGRyYWdnZWQgYXJvdW5kIHRoZSBjb250YWluZXIuXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICovXHJcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBJZiB0cnVlLCB0aGUgd2lkZ2V0IGNhbiBiZSByZXNpemVkIGJ5IHRoZSB1c2VyIChyZXF1aXJlcyBhIHJlc2l6aW5nIGxpYnJhcnkgaW1wbGVtZW50YXRpb24pLlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqL1xyXG4gIHJlc2l6YWJsZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogVGhlIHR5cGUgb2YgY29udGVudCB0aGUgd2lkZ2V0IHdpbGwgZGlzcGxheS5cclxuICAgKiBAb3B0aW9uYWxcclxuICAgKi9cclxuICBjb250ZW50VHlwZT86ICd0ZXh0JyB8ICdodG1sJyB8ICdjb21wb25lbnQnIHwgJ2NoYXJ0JyB8ICd2aWRlbycgfCAnYXVkaW8nO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBkYXRhIGZvciB0aGUgY29udGVudC4gVGhlIHN0cnVjdHVyZSBkZXBlbmRzIG9uIHRoZSBgY29udGVudFR5cGVgLlxyXG4gICAqIEZvciAnY29tcG9uZW50JywgaXQgc2hvdWxkIGJlIGFuIG9iamVjdDogYHsgY29tcG9uZW50OiBZb3VyQ29tcG9uZW50LCBpbnB1dHM6IHsgLi4uIH0gfWAuXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICovXHJcbiAgY29udGVudERhdGE/OiBhbnkgfCB7IGNvbXBvbmVudDogVHlwZTxhbnk+LCBpbnB1dHM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9IH07XHJcbiAgLyoqIFRoZSBDU1MgYHRvcGAgcG9zaXRpb24gZm9yIGFic29sdXRlIHBvc2l0aW9uaW5nLiBAZXhhbXBsZSAnMjBweCcsICc1JScgQG9wdGlvbmFsICovXHJcbiAgdG9wPzogc3RyaW5nO1xyXG4gIC8qKiBUaGUgQ1NTIGBsZWZ0YCBwb3NpdGlvbiBmb3IgYWJzb2x1dGUgcG9zaXRpb25pbmcuIEBleGFtcGxlICcyMHB4JywgJzUlJyBAb3B0aW9uYWwgKi9cclxuICBsZWZ0Pzogc3RyaW5nO1xyXG4gIC8qKiBUaGUgbmFtZSBvZiBhIE1hdGVyaWFsIGljb24gdG8gZGlzcGxheSBpbiB0aGUgaGVhZGVyLiBAb3B0aW9uYWwgKi9cclxuICBoZWFkZXJJY29uPzogc3RyaW5nO1xyXG4gIC8qKiBJbnRlcm5hbCBzdGF0ZSBmbGFnIHRvIGluZGljYXRlIGlmIHRoZSB3aWRnZXQgaXMgYmVpbmcgYWN0aXZlbHkgZHJhZ2dlZCBvciByZXNpemVkLiBAb3B0aW9uYWwgKi9cclxuICBpc0FjdGl2ZT86IGJvb2xlYW47XHJcbiAgLyoqIFRoZSBDU1MgYGJhY2tncm91bmQtY29sb3JgIGZvciB0aGUgd2lkZ2V0LiBAZXhhbXBsZSAnI2ZmZmZmZicsICdyZ2JhKDAsMCwwLDAuMSknIEBvcHRpb25hbCAqL1xyXG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZzsgLy8gZS5nLiwgJyNmZmZmZmYnLCAncmdiYSgyNTUsIDAsIDAsIDAuNSknLCAnbGlnaHRibHVlJ1xyXG59XHJcbiJdfQ==
@@ -1,108 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/material/icon";
5
- import * as i3 from "@angular/material/button";
6
- import * as i4 from "@angular/cdk/drag-drop";
7
- import * as i5 from "../ruclib-widget-item/ruclib-widget-item.component";
8
- /**
9
- * A component that renders a collection of draggable and configurable widgets within a host container.
10
- * It manages the layout, interaction, and dynamic content of each widget.
11
- */
12
- export class RuclibWidgetComponent {
13
- /**
14
- * @param cdr The ChangeDetectorRef to manually trigger change detection when needed.
15
- */
16
- constructor(cdr) {
17
- this.cdr = cdr;
18
- /**
19
- * An event emitter that fires when a widget's close icon is clicked.
20
- * It emits the unique ID of the widget to be closed.
21
- */
22
- this.widgetClose = new EventEmitter();
23
- /**
24
- * An event emitter that fires when a widget is dragged and dropped.
25
- * It emits the entire updated array of widget configurations, allowing the parent to save the new layout.
26
- */
27
- this.layoutChanged = new EventEmitter();
28
- }
29
- /**
30
- * After the view initializes, this hook captures the host container's native element
31
- * and sets it as the boundary for dragging widgets.
32
- */
33
- ngAfterViewInit() {
34
- if (this.widgetsHostContainerRef) {
35
- this.dragBoundaryElement = this.widgetsHostContainerRef.nativeElement;
36
- this.cdr.detectChanges();
37
- }
38
- }
39
- /**
40
- * Handles the click event on a widget's close button.
41
- * @param widgetId The ID of the widget to be closed.
42
- */
43
- onCloseClick(widgetId) {
44
- this.widgetClose.emit(widgetId);
45
- }
46
- /**
47
- * Handles the start of a drag operation for a widget.
48
- * Sets the widget's isActive state to true for visual feedback.
49
- * @param widget The WidgetConfigData object being dragged.
50
- * @param event The CdkDragStart event.
51
- */
52
- onDragStarted(widget, event) {
53
- widget.isActive = true;
54
- }
55
- /**
56
- * Handles the end of a drag operation.
57
- * It calculates the new top/left position, updates the widget's configuration,
58
- * and emits the `layoutChanged` event with the new layout data.
59
- * @param widget The WidgetConfigData object that was dragged.
60
- * @param event The CdkDragEnd event.
61
- */
62
- onDragEnded(widget, event) {
63
- widget.isActive = false;
64
- const newPosition = event.source.getFreeDragPosition();
65
- const initialTopPx = parseFloat(widget.top || '0');
66
- const initialLeftPx = parseFloat(widget.left || '0');
67
- const newTopPx = initialTopPx + newPosition.y;
68
- const newLeftPx = initialLeftPx + newPosition.x;
69
- widget.top = `${newTopPx}px`;
70
- widget.left = `${newLeftPx}px`;
71
- event.source.reset();
72
- if (this.rucInputData.widgetData) {
73
- this.layoutChanged.emit(this.rucInputData.widgetData);
74
- }
75
- }
76
- /**
77
- * Retrieves the color for UI elements like icons from the input data.
78
- * @returns The color string (e.g., 'primary', 'accent') or 'primary' as a default.
79
- */
80
- getColor() {
81
- return this.rucInputData?.color || 'primary';
82
- }
83
- /**
84
- * A safe getter for the widget data array from the main input configuration.
85
- * @returns The array of widget configurations, or an empty array if not defined.
86
- */
87
- getWidgetData() {
88
- return typeof this.rucInputData.widgetData !== 'undefined' ? this.rucInputData.widgetData : [];
89
- }
90
- }
91
- RuclibWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibWidgetComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
92
- RuclibWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RuclibWidgetComponent, selector: "uxp-ruclib-widget", inputs: { rucInputData: "rucInputData", customTheme: "customTheme" }, outputs: { widgetClose: "widgetClose", layoutChanged: "layoutChanged" }, viewQueries: [{ propertyName: "widgetsHostContainerRef", first: true, predicate: ["widgetsHostContainer"], descendants: true }], ngImport: i0, template: "<div class=\"main\">\r\n <!--\r\n The main container for all widgets.\r\n - Applies a custom theme class if provided.\r\n - Acts as the boundary for dragging operations via the #widgetsHostContainer template reference.\r\n -->\r\n <div class=\"widgets-host-container {{ customTheme || '' }}\" #widgetsHostContainer>\r\n <!--\r\n Iterates through the widget data to render each individual widget.\r\n Each widget is a draggable container powered by Angular CDK.\r\n -->\r\n <div *ngFor=\"let widgetConfig of getWidgetData()\" [style.width]=\"widgetConfig.width ? widgetConfig.width : '200px'\"\r\n [style.height]=\"widgetConfig.height ? widgetConfig.height : '150px'\"\r\n [style.minWidth]=\"widgetConfig.width ? widgetConfig.width : '200px'\"\r\n [style.minHeight]=\"widgetConfig.height ? widgetConfig.height : '150px'\" [style.top]=\"widgetConfig.top\"\r\n [style.left]=\"widgetConfig.left\" [style.background-color]=\"widgetConfig.backgroundColor\"\r\n [class.disabled]=\"widgetConfig.disabled\" [class.draggable]=\"widgetConfig.draggable && !widgetConfig.disabled\"\r\n [class.resizable]=\"widgetConfig.resizable && !widgetConfig.disabled\" class=\"widget-container\" cdkDrag\r\n [cdkDragDisabled]=\"!widgetConfig.draggable || widgetConfig.disabled\" [cdkDragBoundary]=\"dragBoundaryElement\"\r\n (cdkDragStarted)=\"onDragStarted(widgetConfig, $event)\" (cdkDragEnded)=\"onDragEnded(widgetConfig, $event)\"\r\n [ngClass]=\"{ 'is-active': widgetConfig.isActive }\">\r\n <!--\r\n Widget Header: Contains title and controls. Acts as the handle for dragging.\r\n -->\r\n <div class=\"widget-header\" cdkDragHandle>\r\n <div class=\"widget-header-left\">\r\n <!-- Draggable indicator icon, shown only if the widget is draggable and not disabled -->\r\n <mat-icon *ngIf=\"widgetConfig.draggable && !widgetConfig.disabled\" class=\"widget-drag-handle\"\r\n aria-hidden=\"true\">drag_indicator</mat-icon>\r\n <!-- Optional header icon -->\r\n <mat-icon *ngIf=\"widgetConfig.headerIcon\" class=\"widget-header-icon\">{{\r\n widgetConfig.headerIcon\r\n }}</mat-icon>\r\n <!-- Widget Title -->\r\n <h3 *ngIf=\"widgetConfig?.title\">{{ widgetConfig?.title }}</h3>\r\n </div>\r\n <!-- Optional close button with accessibility label -->\r\n <button color=\"{{ getColor() }}\" mat-icon-button *ngIf=\"widgetConfig?.showCloseIcon\" class=\"widget-close-button\"\r\n [disabled]=\"widgetConfig.disabled\" (click)=\"onCloseClick(widgetConfig.id)\"\r\n [attr.aria-label]=\"'Close widget ' + widgetConfig?.title\">\r\n <mat-icon color=\"{{ getColor() }}\">close</mat-icon>\r\n </button>\r\n </div>\r\n <!--\r\n Widget Content: Renders the main content of the widget using the child uxp-ruclib-widget-item component.\r\n -->\r\n <div class=\"widget-content\">\r\n <uxp-ruclib-widget-item [widgetConfig]=\"widgetConfig\"></uxp-ruclib-widget-item>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.main{font-size:16px;font-weight:400;line-height:24px;font-family:Roboto,sans-serif;letter-spacing:.03125em}.ruc-custom-theme{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-option{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal)}.ruc-custom-theme .mat-mdc-card-title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-headline6-font-size, 20px);line-height:var(--mdc-typography-headline6-line-height, 32px);font-weight:var(--mdc-typography-headline6-font-weight, 500);letter-spacing:var(--mdc-typography-headline6-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-transform:var(--mdc-typography-headline6-text-transform, none)}.ruc-custom-theme .mat-mdc-card-subtitle{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-mdc-tooltip{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-form-field-infix{min-height:56px}.ruc-custom-theme .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:28px}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -34.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:24px;padding-bottom:8px}.ruc-custom-theme .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mdc-text-field__input,.ruc-custom-theme .mdc-text-field__affix{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mdc-text-field--textarea .mdc-text-field__input{line-height:1.5rem}.ruc-custom-theme .mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field-subscript-wrapper,.ruc-custom-theme .mat-mdc-form-field-bottom-align:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field,.ruc-custom-theme .mat-mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(15px * var(--mat-mdc-form-field-floating-label-scale, .75))}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:15px}.ruc-custom-theme .mat-mdc-select-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-select{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-autocomplete-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-dialog-container{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: normal;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 15px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-chip{height:32px}.ruc-custom-theme .mat-mdc-standard-chip{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-slide-toggle{--mdc-switch-state-layer-size: 48px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio{padding:10px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__background:before{top:-10px;left:-10px;width:40px;height:40px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:0;right:0;left:0;width:40px;height:40px}.ruc-custom-theme .mat-mdc-slider{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 20px;--mdc-slider-label-label-text-line-height: 24px;--mdc-slider-label-label-text-tracking: normal;--mdc-slider-label-label-text-weight: 500}.ruc-custom-theme .mat-mdc-menu-content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-menu-content,.ruc-custom-theme .mat-mdc-menu-content .mat-mdc-menu-item .mdc-list-item__primary-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 15px;--mdc-list-list-item-label-text-tracking: normal;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: normal;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: normal;--mdc-list-list-item-trailing-supporting-text-weight: 400}.ruc-custom-theme .mdc-list-group__subheader{font-size:16px;font-weight:400;line-height:28px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-form-field-infix{min-height:40px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:20px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -26.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-floating-label{display:none}.ruc-custom-theme .mat-mdc-paginator-container{min-height:56px}.ruc-custom-theme .mat-mdc-paginator{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-select-value{font-size:12px}.ruc-custom-theme .mat-mdc-tab-header .mdc-tab{height:48px}.ruc-custom-theme .mdc-tab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox{padding:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);margin:calc((var(--mdc-checkbox-touch-target-size, 40px) - 40px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);left:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control{top:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);right:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);left:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);width:var(--mdc-checkbox-touch-target-size, 40px);height:var(--mdc-checkbox-touch-target-size, 40px)}@media all and (-ms-high-contrast: none){.ruc-custom-theme .mdc-checkbox .mdc-checkbox__focus-ring{display:none}}.ruc-custom-theme .mdc-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-raised-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-unelevated-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-outlined-button.mat-mdc-button-base{height:36px}.ruc-custom-theme .mdc-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base{width:48px;height:48px;padding:12px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:48px;max-width:48px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:4px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%,-50%)}.ruc-custom-theme .mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-snack-bar-container{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}.ruc-custom-theme .mat-mdc-table .mdc-data-table__row{height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__pagination{min-height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__header-row{height:56px}.ruc-custom-theme .mdc-data-table__content,.ruc-custom-theme .mdc-data-table__cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mdc-data-table__header-cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-badge{position:relative}.ruc-custom-theme .mat-badge.mat-badge{overflow:visible}.ruc-custom-theme .mat-badge-hidden .mat-badge-content{display:none}.ruc-custom-theme .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.ruc-custom-theme .ng-animate-disabled .mat-badge-content,.ruc-custom-theme .mat-badge-content._mat-animation-noopable{transition:none}.ruc-custom-theme .mat-badge-content.mat-badge-active{transform:none}.ruc-custom-theme .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.ruc-custom-theme .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.ruc-custom-theme .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.ruc-custom-theme .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.ruc-custom-theme .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.ruc-custom-theme .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.ruc-custom-theme .mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,sans-serif}.ruc-custom-theme .mat-badge-small .mat-badge-content{font-size:9px}.ruc-custom-theme .mat-badge-large .mat-badge-content{font-size:24px}.ruc-custom-theme .mat-bottom-sheet-container{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.ruc-custom-theme .mat-button-toggle{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{width:40px;height:40px;padding:8px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:0}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:40px;left:50%;width:40px;transform:translate(-50%,-50%)}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mat-mdc-button-touch-target{display:none}.ruc-custom-theme .mat-calendar{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-body{font-size:13px}.ruc-custom-theme .mat-calendar-body-label,.ruc-custom-theme .mat-calendar-period-button{font-size:20px;font-weight:500}.ruc-custom-theme .mat-calendar-table-header th{font-size:11px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-header{height:48px}.ruc-custom-theme .mat-expansion-panel-header.mat-expanded{height:64px}.ruc-custom-theme .mat-expansion-panel-header{font-family:Roboto,sans-serif;font-size:15px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-content{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-grid-tile-header,.ruc-custom-theme .mat-grid-tile-footer{font-size:14px}.ruc-custom-theme .mat-grid-tile-header .mat-line,.ruc-custom-theme .mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.ruc-custom-theme .mat-grid-tile-header .mat-line:nth-child(n+2),.ruc-custom-theme .mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}.ruc-custom-theme .mat-horizontal-stepper-header{height:72px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header,.ruc-custom-theme .mat-vertical-stepper-header{padding:24px}.ruc-custom-theme .mat-stepper-vertical-line:before{top:-16px;bottom:-16px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:after,.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:before{top:36px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-stepper-horizontal-line{top:36px}.ruc-custom-theme .mat-stepper-vertical,.ruc-custom-theme .mat-stepper-horizontal{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-step-label{font-size:14px;font-weight:400}.ruc-custom-theme .mat-step-sub-label-error{font-weight:400}.ruc-custom-theme .mat-step-label-error{font-size:20px}.ruc-custom-theme .mat-step-label-selected{font-size:20px;font-weight:500}.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:64px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:64px}@media (max-width: 599px){.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:56px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:56px}}.ruc-custom-theme .mat-toolbar,.ruc-custom-theme .mat-toolbar h1,.ruc-custom-theme .mat-toolbar h2,.ruc-custom-theme .mat-toolbar h3,.ruc-custom-theme .mat-toolbar h4,.ruc-custom-theme .mat-toolbar h5,.ruc-custom-theme .mat-toolbar h6{font-size:20px;font-weight:500;line-height:32px;font-family:Roboto,sans-serif;letter-spacing:normal;margin:0}.ruc-custom-theme .mat-tree-node{min-height:48px}.ruc-custom-theme .mat-tree{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-tree-node,.ruc-custom-theme .mat-nested-tree-node{font-weight:400;font-size:14px}:host{display:block}.widget-container{border:1px solid #ccc;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;position:absolute;overflow:hidden;padding:15px;transition:box-shadow .2s ease-in-out,border-color .2s ease-in-out}.widget-container:hover{box-shadow:0 4px 8px #0003;border-color:#007bff;transform:translateY(-2px)}.widget-container.is-active{box-shadow:0 10px 20px #00000040,0 6px 6px #0000003b;border-color:#28a745;transform:scale(1.02);z-index:1000;cursor:grabbing!important}.widget-container .cdk-drag-placeholder{opacity:.4;background-color:#f0f0f0;border:1px dashed #999;transition:none}.widget-container .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.widget-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.widget-container.draggable .widget-header{cursor:move}.widget-header-left{display:flex;align-items:center;gap:8px;overflow:hidden}.widget-header-icon{flex-shrink:0}.widget-header-left h3{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-header h3{margin:0;font-size:1.2em}.widget-drag-handle{color:#aaa;flex-shrink:0}.widget-close-button{background:none;border:none;cursor:pointer;padding:0;line-height:1;transition:color .2s ease-in-out}.widget-close-button mat-icon{font-size:20px;vertical-align:middle}.widget-content{flex-grow:1;overflow:auto;font-size:.9em}.widget-content p{margin-top:0;line-height:1.6}.widgets-host-container{position:relative;width:100%;min-height:600px;border:1px dashed #eee}.widget-container.disabled{opacity:.6;pointer-events:none;cursor:not-allowed}.widget-container.resizable{resize:both}\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: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i5.RuclibWidgetItemComponent, selector: "uxp-ruclib-widget-item", inputs: ["widgetConfig"] }] });
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibWidgetComponent, decorators: [{
94
- type: Component,
95
- args: [{ selector: 'uxp-ruclib-widget', template: "<div class=\"main\">\r\n <!--\r\n The main container for all widgets.\r\n - Applies a custom theme class if provided.\r\n - Acts as the boundary for dragging operations via the #widgetsHostContainer template reference.\r\n -->\r\n <div class=\"widgets-host-container {{ customTheme || '' }}\" #widgetsHostContainer>\r\n <!--\r\n Iterates through the widget data to render each individual widget.\r\n Each widget is a draggable container powered by Angular CDK.\r\n -->\r\n <div *ngFor=\"let widgetConfig of getWidgetData()\" [style.width]=\"widgetConfig.width ? widgetConfig.width : '200px'\"\r\n [style.height]=\"widgetConfig.height ? widgetConfig.height : '150px'\"\r\n [style.minWidth]=\"widgetConfig.width ? widgetConfig.width : '200px'\"\r\n [style.minHeight]=\"widgetConfig.height ? widgetConfig.height : '150px'\" [style.top]=\"widgetConfig.top\"\r\n [style.left]=\"widgetConfig.left\" [style.background-color]=\"widgetConfig.backgroundColor\"\r\n [class.disabled]=\"widgetConfig.disabled\" [class.draggable]=\"widgetConfig.draggable && !widgetConfig.disabled\"\r\n [class.resizable]=\"widgetConfig.resizable && !widgetConfig.disabled\" class=\"widget-container\" cdkDrag\r\n [cdkDragDisabled]=\"!widgetConfig.draggable || widgetConfig.disabled\" [cdkDragBoundary]=\"dragBoundaryElement\"\r\n (cdkDragStarted)=\"onDragStarted(widgetConfig, $event)\" (cdkDragEnded)=\"onDragEnded(widgetConfig, $event)\"\r\n [ngClass]=\"{ 'is-active': widgetConfig.isActive }\">\r\n <!--\r\n Widget Header: Contains title and controls. Acts as the handle for dragging.\r\n -->\r\n <div class=\"widget-header\" cdkDragHandle>\r\n <div class=\"widget-header-left\">\r\n <!-- Draggable indicator icon, shown only if the widget is draggable and not disabled -->\r\n <mat-icon *ngIf=\"widgetConfig.draggable && !widgetConfig.disabled\" class=\"widget-drag-handle\"\r\n aria-hidden=\"true\">drag_indicator</mat-icon>\r\n <!-- Optional header icon -->\r\n <mat-icon *ngIf=\"widgetConfig.headerIcon\" class=\"widget-header-icon\">{{\r\n widgetConfig.headerIcon\r\n }}</mat-icon>\r\n <!-- Widget Title -->\r\n <h3 *ngIf=\"widgetConfig?.title\">{{ widgetConfig?.title }}</h3>\r\n </div>\r\n <!-- Optional close button with accessibility label -->\r\n <button color=\"{{ getColor() }}\" mat-icon-button *ngIf=\"widgetConfig?.showCloseIcon\" class=\"widget-close-button\"\r\n [disabled]=\"widgetConfig.disabled\" (click)=\"onCloseClick(widgetConfig.id)\"\r\n [attr.aria-label]=\"'Close widget ' + widgetConfig?.title\">\r\n <mat-icon color=\"{{ getColor() }}\">close</mat-icon>\r\n </button>\r\n </div>\r\n <!--\r\n Widget Content: Renders the main content of the widget using the child uxp-ruclib-widget-item component.\r\n -->\r\n <div class=\"widget-content\">\r\n <uxp-ruclib-widget-item [widgetConfig]=\"widgetConfig\"></uxp-ruclib-widget-item>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.main{font-size:16px;font-weight:400;line-height:24px;font-family:Roboto,sans-serif;letter-spacing:.03125em}.ruc-custom-theme{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-option{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal)}.ruc-custom-theme .mat-mdc-card-title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-headline6-font-size, 20px);line-height:var(--mdc-typography-headline6-line-height, 32px);font-weight:var(--mdc-typography-headline6-font-weight, 500);letter-spacing:var(--mdc-typography-headline6-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-transform:var(--mdc-typography-headline6-text-transform, none)}.ruc-custom-theme .mat-mdc-card-subtitle{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-mdc-tooltip{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-form-field-infix{min-height:56px}.ruc-custom-theme .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:28px}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -34.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:24px;padding-bottom:8px}.ruc-custom-theme .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mdc-text-field__input,.ruc-custom-theme .mdc-text-field__affix{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mdc-text-field--textarea .mdc-text-field__input{line-height:1.5rem}.ruc-custom-theme .mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field-subscript-wrapper,.ruc-custom-theme .mat-mdc-form-field-bottom-align:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field,.ruc-custom-theme .mat-mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(15px * var(--mat-mdc-form-field-floating-label-scale, .75))}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:15px}.ruc-custom-theme .mat-mdc-select-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-select{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-autocomplete-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-dialog-container{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: normal;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 15px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-chip{height:32px}.ruc-custom-theme .mat-mdc-standard-chip{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-slide-toggle{--mdc-switch-state-layer-size: 48px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio{padding:10px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__background:before{top:-10px;left:-10px;width:40px;height:40px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:0;right:0;left:0;width:40px;height:40px}.ruc-custom-theme .mat-mdc-slider{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 20px;--mdc-slider-label-label-text-line-height: 24px;--mdc-slider-label-label-text-tracking: normal;--mdc-slider-label-label-text-weight: 500}.ruc-custom-theme .mat-mdc-menu-content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-menu-content,.ruc-custom-theme .mat-mdc-menu-content .mat-mdc-menu-item .mdc-list-item__primary-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 15px;--mdc-list-list-item-label-text-tracking: normal;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: normal;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: normal;--mdc-list-list-item-trailing-supporting-text-weight: 400}.ruc-custom-theme .mdc-list-group__subheader{font-size:16px;font-weight:400;line-height:28px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-form-field-infix{min-height:40px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:20px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -26.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-floating-label{display:none}.ruc-custom-theme .mat-mdc-paginator-container{min-height:56px}.ruc-custom-theme .mat-mdc-paginator{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-select-value{font-size:12px}.ruc-custom-theme .mat-mdc-tab-header .mdc-tab{height:48px}.ruc-custom-theme .mdc-tab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox{padding:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);margin:calc((var(--mdc-checkbox-touch-target-size, 40px) - 40px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);left:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control{top:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);right:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);left:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);width:var(--mdc-checkbox-touch-target-size, 40px);height:var(--mdc-checkbox-touch-target-size, 40px)}@media all and (-ms-high-contrast: none){.ruc-custom-theme .mdc-checkbox .mdc-checkbox__focus-ring{display:none}}.ruc-custom-theme .mdc-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-raised-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-unelevated-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-outlined-button.mat-mdc-button-base{height:36px}.ruc-custom-theme .mdc-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base{width:48px;height:48px;padding:12px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:48px;max-width:48px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:4px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%,-50%)}.ruc-custom-theme .mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-snack-bar-container{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}.ruc-custom-theme .mat-mdc-table .mdc-data-table__row{height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__pagination{min-height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__header-row{height:56px}.ruc-custom-theme .mdc-data-table__content,.ruc-custom-theme .mdc-data-table__cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mdc-data-table__header-cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-badge{position:relative}.ruc-custom-theme .mat-badge.mat-badge{overflow:visible}.ruc-custom-theme .mat-badge-hidden .mat-badge-content{display:none}.ruc-custom-theme .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.ruc-custom-theme .ng-animate-disabled .mat-badge-content,.ruc-custom-theme .mat-badge-content._mat-animation-noopable{transition:none}.ruc-custom-theme .mat-badge-content.mat-badge-active{transform:none}.ruc-custom-theme .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.ruc-custom-theme .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.ruc-custom-theme .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.ruc-custom-theme .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.ruc-custom-theme .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.ruc-custom-theme .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.ruc-custom-theme .mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,sans-serif}.ruc-custom-theme .mat-badge-small .mat-badge-content{font-size:9px}.ruc-custom-theme .mat-badge-large .mat-badge-content{font-size:24px}.ruc-custom-theme .mat-bottom-sheet-container{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.ruc-custom-theme .mat-button-toggle{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{width:40px;height:40px;padding:8px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:0}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:40px;left:50%;width:40px;transform:translate(-50%,-50%)}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mat-mdc-button-touch-target{display:none}.ruc-custom-theme .mat-calendar{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-body{font-size:13px}.ruc-custom-theme .mat-calendar-body-label,.ruc-custom-theme .mat-calendar-period-button{font-size:20px;font-weight:500}.ruc-custom-theme .mat-calendar-table-header th{font-size:11px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-header{height:48px}.ruc-custom-theme .mat-expansion-panel-header.mat-expanded{height:64px}.ruc-custom-theme .mat-expansion-panel-header{font-family:Roboto,sans-serif;font-size:15px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-content{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-grid-tile-header,.ruc-custom-theme .mat-grid-tile-footer{font-size:14px}.ruc-custom-theme .mat-grid-tile-header .mat-line,.ruc-custom-theme .mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.ruc-custom-theme .mat-grid-tile-header .mat-line:nth-child(n+2),.ruc-custom-theme .mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}.ruc-custom-theme .mat-horizontal-stepper-header{height:72px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header,.ruc-custom-theme .mat-vertical-stepper-header{padding:24px}.ruc-custom-theme .mat-stepper-vertical-line:before{top:-16px;bottom:-16px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:after,.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:before{top:36px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-stepper-horizontal-line{top:36px}.ruc-custom-theme .mat-stepper-vertical,.ruc-custom-theme .mat-stepper-horizontal{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-step-label{font-size:14px;font-weight:400}.ruc-custom-theme .mat-step-sub-label-error{font-weight:400}.ruc-custom-theme .mat-step-label-error{font-size:20px}.ruc-custom-theme .mat-step-label-selected{font-size:20px;font-weight:500}.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:64px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:64px}@media (max-width: 599px){.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:56px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:56px}}.ruc-custom-theme .mat-toolbar,.ruc-custom-theme .mat-toolbar h1,.ruc-custom-theme .mat-toolbar h2,.ruc-custom-theme .mat-toolbar h3,.ruc-custom-theme .mat-toolbar h4,.ruc-custom-theme .mat-toolbar h5,.ruc-custom-theme .mat-toolbar h6{font-size:20px;font-weight:500;line-height:32px;font-family:Roboto,sans-serif;letter-spacing:normal;margin:0}.ruc-custom-theme .mat-tree-node{min-height:48px}.ruc-custom-theme .mat-tree{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-tree-node,.ruc-custom-theme .mat-nested-tree-node{font-weight:400;font-size:14px}:host{display:block}.widget-container{border:1px solid #ccc;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;position:absolute;overflow:hidden;padding:15px;transition:box-shadow .2s ease-in-out,border-color .2s ease-in-out}.widget-container:hover{box-shadow:0 4px 8px #0003;border-color:#007bff;transform:translateY(-2px)}.widget-container.is-active{box-shadow:0 10px 20px #00000040,0 6px 6px #0000003b;border-color:#28a745;transform:scale(1.02);z-index:1000;cursor:grabbing!important}.widget-container .cdk-drag-placeholder{opacity:.4;background-color:#f0f0f0;border:1px dashed #999;transition:none}.widget-container .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.widget-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.widget-container.draggable .widget-header{cursor:move}.widget-header-left{display:flex;align-items:center;gap:8px;overflow:hidden}.widget-header-icon{flex-shrink:0}.widget-header-left h3{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-header h3{margin:0;font-size:1.2em}.widget-drag-handle{color:#aaa;flex-shrink:0}.widget-close-button{background:none;border:none;cursor:pointer;padding:0;line-height:1;transition:color .2s ease-in-out}.widget-close-button mat-icon{font-size:20px;vertical-align:middle}.widget-content{flex-grow:1;overflow:auto;font-size:.9em}.widget-content p{margin-top:0;line-height:1.6}.widgets-host-container{position:relative;width:100%;min-height:600px;border:1px dashed #eee}.widget-container.disabled{opacity:.6;pointer-events:none;cursor:not-allowed}.widget-container.resizable{resize:both}\n"] }]
96
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { rucInputData: [{
97
- type: Input
98
- }], customTheme: [{
99
- type: Input
100
- }], widgetClose: [{
101
- type: Output
102
- }], layoutChanged: [{
103
- type: Output
104
- }], widgetsHostContainerRef: [{
105
- type: ViewChild,
106
- args: ['widgetsHostContainer']
107
- }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjbGliLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3J1Y2xpYi13aWRnZXQvcnVjbGliLXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL3J1Y2xpYi13aWRnZXQvcnVjbGliLXdpZGdldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBSWhJOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUEwQmhDOztPQUVHO0lBQ0gsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFmMUM7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRW5EOzs7V0FHRztRQUNPLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7SUFLbkIsQ0FBQztJQU8vQzs7O09BR0c7SUFDSCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDaEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUM7WUFDdEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLENBQUMsUUFBZ0I7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLE1BQXdCLEVBQUUsS0FBbUI7UUFDekQsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxNQUF3QixFQUFFLEtBQWlCO1FBQ3JELE1BQU0sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXhCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUV2RCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNuRCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUVyRCxNQUFNLFFBQVEsR0FBRyxZQUFZLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM5QyxNQUFNLFNBQVMsR0FBRyxhQUFhLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUVoRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsUUFBUSxJQUFJLENBQUM7UUFDN0IsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLFNBQVMsSUFBSSxDQUFDO1FBRS9CLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFckIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRTtZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLFNBQVMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakcsQ0FBQzs7bUhBM0dVLHFCQUFxQjt1R0FBckIscUJBQXFCLHlVQ2JsQywya0dBbURNOzRGRHRDTyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO3dHQVVwQixZQUFZO3NCQUFwQixLQUFLO2dCQU1HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUksV0FBVztzQkFBcEIsTUFBTTtnQkFNRyxhQUFhO3NCQUF0QixNQUFNO2dCQVE0Qix1QkFBdUI7c0JBQXpELFNBQVM7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgV2lkZ2V0Q29uZmlnLCBXaWRnZXRDb25maWdEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3dpZGdldCc7XHJcbmltcG9ydCB7IENka0RyYWdTdGFydCwgQ2RrRHJhZ0VuZCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5cclxuLyoqXHJcbiAqIEEgY29tcG9uZW50IHRoYXQgcmVuZGVycyBhIGNvbGxlY3Rpb24gb2YgZHJhZ2dhYmxlIGFuZCBjb25maWd1cmFibGUgd2lkZ2V0cyB3aXRoaW4gYSBob3N0IGNvbnRhaW5lci5cclxuICogSXQgbWFuYWdlcyB0aGUgbGF5b3V0LCBpbnRlcmFjdGlvbiwgYW5kIGR5bmFtaWMgY29udGVudCBvZiBlYWNoIHdpZGdldC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndXhwLXJ1Y2xpYi13aWRnZXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ydWNsaWItd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ydWNsaWItd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSdWNsaWJXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICAvKipcclxuICAgKiBUaGUgbWFpbiBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIHdpZGdldCBjb250YWluZXIuXHJcbiAgICogSXQgaW5jbHVkZXMgdGhlIGFycmF5IG9mIHdpZGdldCBkYXRhIGFuZCBnbG9iYWwgc2V0dGluZ3MuXHJcbiAgICogQHNlZSBXaWRnZXRDb25maWcgaW50ZXJmYWNlIGZvciBkZXRhaWxlZCBwcm9wZXJ0aWVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJ1Y0lucHV0RGF0YSE6IFdpZGdldENvbmZpZztcclxuXHJcbiAgLyoqXHJcbiAgICogQW4gb3B0aW9uYWwgY3VzdG9tIHRoZW1lIGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHdpZGdldCBob3N0IGNvbnRhaW5lci5cclxuICAgKiBAZXhhbXBsZSAnZGFyay10aGVtZScsICdjdXN0b20tdGhlbWUtb25lJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGN1c3RvbVRoZW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgdGhhdCBmaXJlcyB3aGVuIGEgd2lkZ2V0J3MgY2xvc2UgaWNvbiBpcyBjbGlja2VkLlxyXG4gICAqIEl0IGVtaXRzIHRoZSB1bmlxdWUgSUQgb2YgdGhlIHdpZGdldCB0byBiZSBjbG9zZWQuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHdpZGdldENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgdGhhdCBmaXJlcyB3aGVuIGEgd2lkZ2V0IGlzIGRyYWdnZWQgYW5kIGRyb3BwZWQuXHJcbiAgICogSXQgZW1pdHMgdGhlIGVudGlyZSB1cGRhdGVkIGFycmF5IG9mIHdpZGdldCBjb25maWd1cmF0aW9ucywgYWxsb3dpbmcgdGhlIHBhcmVudCB0byBzYXZlIHRoZSBuZXcgbGF5b3V0LlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBsYXlvdXRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxXaWRnZXRDb25maWdEYXRhW10+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBjZHIgVGhlIENoYW5nZURldGVjdG9yUmVmIHRvIG1hbnVhbGx5IHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiB3aGVuIG5lZWRlZC5cclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICAvKiogQSByZWZlcmVuY2UgdG8gdGhlIGhvc3QgY29udGFpbmVyIGVsZW1lbnQsIHVzZWQgdG8gZGVmaW5lIHRoZSBkcmFnIGJvdW5kYXJ5LiAqL1xyXG4gIEBWaWV3Q2hpbGQoJ3dpZGdldHNIb3N0Q29udGFpbmVyJykgd2lkZ2V0c0hvc3RDb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICAvKiogVGhlIEhUTUwgZWxlbWVudCB0aGF0IHNlcnZlcyBhcyB0aGUgYm91bmRhcnkgZm9yIGFsbCBkcmFnIG9wZXJhdGlvbnMuICovXHJcbiAgcHVibGljIGRyYWdCb3VuZGFyeUVsZW1lbnQhOiBIVE1MRWxlbWVudDtcclxuXHJcbiAgLyoqXHJcbiAgICogQWZ0ZXIgdGhlIHZpZXcgaW5pdGlhbGl6ZXMsIHRoaXMgaG9vayBjYXB0dXJlcyB0aGUgaG9zdCBjb250YWluZXIncyBuYXRpdmUgZWxlbWVudFxyXG4gICAqIGFuZCBzZXRzIGl0IGFzIHRoZSBib3VuZGFyeSBmb3IgZHJhZ2dpbmcgd2lkZ2V0cy5cclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy53aWRnZXRzSG9zdENvbnRhaW5lclJlZikge1xyXG4gICAgICB0aGlzLmRyYWdCb3VuZGFyeUVsZW1lbnQgPSB0aGlzLndpZGdldHNIb3N0Q29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdGhlIGNsaWNrIGV2ZW50IG9uIGEgd2lkZ2V0J3MgY2xvc2UgYnV0dG9uLlxyXG4gICAqIEBwYXJhbSB3aWRnZXRJZCBUaGUgSUQgb2YgdGhlIHdpZGdldCB0byBiZSBjbG9zZWQuXHJcbiAgICovXHJcbiAgb25DbG9zZUNsaWNrKHdpZGdldElkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMud2lkZ2V0Q2xvc2UuZW1pdCh3aWRnZXRJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBzdGFydCBvZiBhIGRyYWcgb3BlcmF0aW9uIGZvciBhIHdpZGdldC5cclxuICAgKiBTZXRzIHRoZSB3aWRnZXQncyBpc0FjdGl2ZSBzdGF0ZSB0byB0cnVlIGZvciB2aXN1YWwgZmVlZGJhY2suXHJcbiAgICogQHBhcmFtIHdpZGdldCBUaGUgV2lkZ2V0Q29uZmlnRGF0YSBvYmplY3QgYmVpbmcgZHJhZ2dlZC5cclxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIENka0RyYWdTdGFydCBldmVudC5cclxuICAgKi9cclxuICBvbkRyYWdTdGFydGVkKHdpZGdldDogV2lkZ2V0Q29uZmlnRGF0YSwgZXZlbnQ6IENka0RyYWdTdGFydCk6IHZvaWQge1xyXG4gICAgd2lkZ2V0LmlzQWN0aXZlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdGhlIGVuZCBvZiBhIGRyYWcgb3BlcmF0aW9uLlxyXG4gICAqIEl0IGNhbGN1bGF0ZXMgdGhlIG5ldyB0b3AvbGVmdCBwb3NpdGlvbiwgdXBkYXRlcyB0aGUgd2lkZ2V0J3MgY29uZmlndXJhdGlvbixcclxuICAgKiBhbmQgZW1pdHMgdGhlIGBsYXlvdXRDaGFuZ2VkYCBldmVudCB3aXRoIHRoZSBuZXcgbGF5b3V0IGRhdGEuXHJcbiAgICogQHBhcmFtIHdpZGdldCBUaGUgV2lkZ2V0Q29uZmlnRGF0YSBvYmplY3QgdGhhdCB3YXMgZHJhZ2dlZC5cclxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIENka0RyYWdFbmQgZXZlbnQuXHJcbiAgICovXHJcbiAgb25EcmFnRW5kZWQod2lkZ2V0OiBXaWRnZXRDb25maWdEYXRhLCBldmVudDogQ2RrRHJhZ0VuZCk6IHZvaWQge1xyXG4gICAgd2lkZ2V0LmlzQWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgbmV3UG9zaXRpb24gPSBldmVudC5zb3VyY2UuZ2V0RnJlZURyYWdQb3NpdGlvbigpO1xyXG5cclxuICAgIGNvbnN0IGluaXRpYWxUb3BQeCA9IHBhcnNlRmxvYXQod2lkZ2V0LnRvcCB8fCAnMCcpO1xyXG4gICAgY29uc3QgaW5pdGlhbExlZnRQeCA9IHBhcnNlRmxvYXQod2lkZ2V0LmxlZnQgfHwgJzAnKTtcclxuXHJcbiAgICBjb25zdCBuZXdUb3BQeCA9IGluaXRpYWxUb3BQeCArIG5ld1Bvc2l0aW9uLnk7XHJcbiAgICBjb25zdCBuZXdMZWZ0UHggPSBpbml0aWFsTGVmdFB4ICsgbmV3UG9zaXRpb24ueDtcclxuXHJcbiAgICB3aWRnZXQudG9wID0gYCR7bmV3VG9wUHh9cHhgO1xyXG4gICAgd2lkZ2V0LmxlZnQgPSBgJHtuZXdMZWZ0UHh9cHhgO1xyXG5cclxuICAgIGV2ZW50LnNvdXJjZS5yZXNldCgpO1xyXG5cclxuICAgIGlmICh0aGlzLnJ1Y0lucHV0RGF0YS53aWRnZXREYXRhKSB7XHJcbiAgICAgIHRoaXMubGF5b3V0Q2hhbmdlZC5lbWl0KHRoaXMucnVjSW5wdXREYXRhLndpZGdldERhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBjb2xvciBmb3IgVUkgZWxlbWVudHMgbGlrZSBpY29ucyBmcm9tIHRoZSBpbnB1dCBkYXRhLlxyXG4gICAqIEByZXR1cm5zIFRoZSBjb2xvciBzdHJpbmcgKGUuZy4sICdwcmltYXJ5JywgJ2FjY2VudCcpIG9yICdwcmltYXJ5JyBhcyBhIGRlZmF1bHQuXHJcbiAgICovXHJcbiAgZ2V0Q29sb3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJ1Y0lucHV0RGF0YT8uY29sb3IgfHwgJ3ByaW1hcnknO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSBzYWZlIGdldHRlciBmb3IgdGhlIHdpZGdldCBkYXRhIGFycmF5IGZyb20gdGhlIG1haW4gaW5wdXQgY29uZmlndXJhdGlvbi5cclxuICAgKiBAcmV0dXJucyBUaGUgYXJyYXkgb2Ygd2lkZ2V0IGNvbmZpZ3VyYXRpb25zLCBvciBhbiBlbXB0eSBhcnJheSBpZiBub3QgZGVmaW5lZC5cclxuICAgKi9cclxuICBnZXRXaWRnZXREYXRhKCk6IFdpZGdldENvbmZpZ0RhdGFbXSB8IGFueSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMucnVjSW5wdXREYXRhLndpZGdldERhdGEgIT09ICd1bmRlZmluZWQnID8gdGhpcy5ydWNJbnB1dERhdGEud2lkZ2V0RGF0YSA6IFtdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibWFpblwiPlxyXG4gIDwhLS1cclxuICBUaGUgbWFpbiBjb250YWluZXIgZm9yIGFsbCB3aWRnZXRzLlxyXG4gIC0gQXBwbGllcyBhIGN1c3RvbSB0aGVtZSBjbGFzcyBpZiBwcm92aWRlZC5cclxuICAtIEFjdHMgYXMgdGhlIGJvdW5kYXJ5IGZvciBkcmFnZ2luZyBvcGVyYXRpb25zIHZpYSB0aGUgI3dpZGdldHNIb3N0Q29udGFpbmVyIHRlbXBsYXRlIHJlZmVyZW5jZS5cclxuICAtLT5cclxuICA8ZGl2IGNsYXNzPVwid2lkZ2V0cy1ob3N0LWNvbnRhaW5lciB7eyBjdXN0b21UaGVtZSB8fCAnJyB9fVwiICN3aWRnZXRzSG9zdENvbnRhaW5lcj5cclxuICAgIDwhLS1cclxuICAgIEl0ZXJhdGVzIHRocm91Z2ggdGhlIHdpZGdldCBkYXRhIHRvIHJlbmRlciBlYWNoIGluZGl2aWR1YWwgd2lkZ2V0LlxyXG4gICAgRWFjaCB3aWRnZXQgaXMgYSBkcmFnZ2FibGUgY29udGFpbmVyIHBvd2VyZWQgYnkgQW5ndWxhciBDREsuXHJcbiAgICAtLT5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHdpZGdldENvbmZpZyBvZiBnZXRXaWRnZXREYXRhKClcIiBbc3R5bGUud2lkdGhdPVwid2lkZ2V0Q29uZmlnLndpZHRoID8gd2lkZ2V0Q29uZmlnLndpZHRoIDogJzIwMHB4J1wiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwid2lkZ2V0Q29uZmlnLmhlaWdodCA/IHdpZGdldENvbmZpZy5oZWlnaHQgOiAnMTUwcHgnXCJcclxuICAgICAgW3N0eWxlLm1pbldpZHRoXT1cIndpZGdldENvbmZpZy53aWR0aCA/IHdpZGdldENvbmZpZy53aWR0aCA6ICcyMDBweCdcIlxyXG4gICAgICBbc3R5bGUubWluSGVpZ2h0XT1cIndpZGdldENvbmZpZy5oZWlnaHQgPyB3aWRnZXRDb25maWcuaGVpZ2h0IDogJzE1MHB4J1wiIFtzdHlsZS50b3BdPVwid2lkZ2V0Q29uZmlnLnRvcFwiXHJcbiAgICAgIFtzdHlsZS5sZWZ0XT1cIndpZGdldENvbmZpZy5sZWZ0XCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwid2lkZ2V0Q29uZmlnLmJhY2tncm91bmRDb2xvclwiXHJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJ3aWRnZXRDb25maWcuZGlzYWJsZWRcIiBbY2xhc3MuZHJhZ2dhYmxlXT1cIndpZGdldENvbmZpZy5kcmFnZ2FibGUgJiYgIXdpZGdldENvbmZpZy5kaXNhYmxlZFwiXHJcbiAgICAgIFtjbGFzcy5yZXNpemFibGVdPVwid2lkZ2V0Q29uZmlnLnJlc2l6YWJsZSAmJiAhd2lkZ2V0Q29uZmlnLmRpc2FibGVkXCIgY2xhc3M9XCJ3aWRnZXQtY29udGFpbmVyXCIgY2RrRHJhZ1xyXG4gICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiF3aWRnZXRDb25maWcuZHJhZ2dhYmxlIHx8IHdpZGdldENvbmZpZy5kaXNhYmxlZFwiIFtjZGtEcmFnQm91bmRhcnldPVwiZHJhZ0JvdW5kYXJ5RWxlbWVudFwiXHJcbiAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJvbkRyYWdTdGFydGVkKHdpZGdldENvbmZpZywgJGV2ZW50KVwiIChjZGtEcmFnRW5kZWQpPVwib25EcmFnRW5kZWQod2lkZ2V0Q29uZmlnLCAkZXZlbnQpXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnaXMtYWN0aXZlJzogd2lkZ2V0Q29uZmlnLmlzQWN0aXZlIH1cIj5cclxuICAgICAgPCEtLVxyXG4gICAgICBXaWRnZXQgSGVhZGVyOiBDb250YWlucyB0aXRsZSBhbmQgY29udHJvbHMuIEFjdHMgYXMgdGhlIGhhbmRsZSBmb3IgZHJhZ2dpbmcuXHJcbiAgICAgIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWhlYWRlclwiIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC1oZWFkZXItbGVmdFwiPlxyXG4gICAgICAgICAgPCEtLSBEcmFnZ2FibGUgaW5kaWNhdG9yIGljb24sIHNob3duIG9ubHkgaWYgdGhlIHdpZGdldCBpcyBkcmFnZ2FibGUgYW5kIG5vdCBkaXNhYmxlZCAtLT5cclxuICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIndpZGdldENvbmZpZy5kcmFnZ2FibGUgJiYgIXdpZGdldENvbmZpZy5kaXNhYmxlZFwiIGNsYXNzPVwid2lkZ2V0LWRyYWctaGFuZGxlXCJcclxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+ZHJhZ19pbmRpY2F0b3I8L21hdC1pY29uPlxyXG4gICAgICAgICAgPCEtLSBPcHRpb25hbCBoZWFkZXIgaWNvbiAtLT5cclxuICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIndpZGdldENvbmZpZy5oZWFkZXJJY29uXCIgY2xhc3M9XCJ3aWRnZXQtaGVhZGVyLWljb25cIj57e1xyXG4gICAgICAgICAgICB3aWRnZXRDb25maWcuaGVhZGVySWNvblxyXG4gICAgICAgICAgICB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8IS0tIFdpZGdldCBUaXRsZSAtLT5cclxuICAgICAgICAgIDxoMyAqbmdJZj1cIndpZGdldENvbmZpZz8udGl0bGVcIj57eyB3aWRnZXRDb25maWc/LnRpdGxlIH19PC9oMz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIE9wdGlvbmFsIGNsb3NlIGJ1dHRvbiB3aXRoIGFjY2Vzc2liaWxpdHkgbGFiZWwgLS0+XHJcbiAgICAgICAgPGJ1dHRvbiBjb2xvcj1cInt7IGdldENvbG9yKCkgfX1cIiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJ3aWRnZXRDb25maWc/LnNob3dDbG9zZUljb25cIiBjbGFzcz1cIndpZGdldC1jbG9zZS1idXR0b25cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIndpZGdldENvbmZpZy5kaXNhYmxlZFwiIChjbGljayk9XCJvbkNsb3NlQ2xpY2sod2lkZ2V0Q29uZmlnLmlkKVwiXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDbG9zZSB3aWRnZXQgJyArIHdpZGdldENvbmZpZz8udGl0bGVcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInt7IGdldENvbG9yKCkgfX1cIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8IS0tXHJcbiAgICAgIFdpZGdldCBDb250ZW50OiBSZW5kZXJzIHRoZSBtYWluIGNvbnRlbnQgb2YgdGhlIHdpZGdldCB1c2luZyB0aGUgY2hpbGQgdXhwLXJ1Y2xpYi13aWRnZXQtaXRlbSBjb21wb25lbnQuXHJcbiAgICAgIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWNvbnRlbnRcIj5cclxuICAgICAgICA8dXhwLXJ1Y2xpYi13aWRnZXQtaXRlbSBbd2lkZ2V0Q29uZmlnXT1cIndpZGdldENvbmZpZ1wiPjwvdXhwLXJ1Y2xpYi13aWRnZXQtaXRlbT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -1,103 +0,0 @@
1
- import { Component, Input, ViewChild, ViewContainerRef, ChangeDetectorRef } from '@angular/core';
2
- import { DomSanitizer } from '@angular/platform-browser';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/platform-browser";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "../../pipes/safe-html.pipe";
7
- /**
8
- * Represents a single item within a widget.
9
- * This component is responsible for rendering the content of a widget, which can be
10
- * simple text, HTML, a video, or a dynamically loaded Angular component.
11
- */
12
- export class RuclibWidgetItemComponent {
13
- /**
14
- * @param cdr The ChangeDetectorRef to manually trigger change detection.
15
- * @param sanitizer The DomSanitizer service to prevent XSS attacks by sanitizing HTML.
16
- */
17
- constructor(cdr, sanitizer) {
18
- this.cdr = cdr;
19
- this.sanitizer = sanitizer;
20
- /**
21
- * A reference to the dynamically created component instance.
22
- * This is used to manage the lifecycle of the injected component.
23
- */
24
- this.dynamicComponentRef = null;
25
- }
26
- /**
27
- * A lifecycle hook that responds when Angular sets or resets data-bound input properties.
28
- * It checks for changes in `widgetConfig` and reloads the content accordingly.
29
- * @param changes An object of the changed properties.
30
- */
31
- ngOnChanges(changes) {
32
- if (changes['widgetConfig']) {
33
- if (this.widgetConfig.contentType === 'component' && this.widgetComponentHost) {
34
- this.loadDynamicContent();
35
- }
36
- else if (this.widgetConfig.contentType !== 'component') {
37
- this.clearDynamicContent();
38
- }
39
- }
40
- }
41
- /**
42
- * A lifecycle hook that is called after Angular has fully initialized a component's view.
43
- * It ensures that if the initial content type is 'component', it gets loaded.
44
- */
45
- ngAfterViewInit() {
46
- if (this.widgetConfig.contentType === 'component' && this.widgetComponentHost) {
47
- this.loadDynamicContent();
48
- }
49
- }
50
- /**
51
- * Loads a dynamic component into the `widgetComponentHost` view container.
52
- * It reads the component type and any input data from the `widgetConfig`.
53
- */
54
- loadDynamicContent() {
55
- this.clearDynamicContent();
56
- if (this.widgetConfig.contentType === 'component' && this.widgetConfig.contentData && this.widgetConfig.contentData.component) {
57
- if (this.widgetComponentHost) {
58
- const componentType = this.widgetConfig.contentData.component;
59
- this.dynamicComponentRef = this.widgetComponentHost.createComponent(componentType);
60
- if (this.widgetConfig.contentData.inputs && this.dynamicComponentRef?.instance) {
61
- Object.keys(this.widgetConfig.contentData.inputs).forEach(key => {
62
- if (this.dynamicComponentRef && key in this.dynamicComponentRef.instance) {
63
- this.dynamicComponentRef.instance[key] = this.widgetConfig.contentData.inputs[key];
64
- }
65
- });
66
- this.dynamicComponentRef.changeDetectorRef.detectChanges();
67
- }
68
- }
69
- }
70
- this.cdr.detectChanges();
71
- }
72
- /**
73
- * Clears any dynamically loaded component from the view container and destroys its instance.
74
- */
75
- clearDynamicContent() {
76
- if (this.dynamicComponentRef) {
77
- this.dynamicComponentRef.destroy();
78
- this.dynamicComponentRef = null;
79
- }
80
- if (this.widgetComponentHost) {
81
- this.widgetComponentHost.clear();
82
- }
83
- }
84
- /**
85
- * A lifecycle hook that cleans up the component before it's destroyed.
86
- * Ensures that any dynamically created components are properly destroyed to avoid memory leaks.
87
- */
88
- ngOnDestroy() {
89
- this.clearDynamicContent();
90
- }
91
- }
92
- RuclibWidgetItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibWidgetItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
93
- RuclibWidgetItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RuclibWidgetItemComponent, selector: "uxp-ruclib-widget-item", inputs: { widgetConfig: "widgetConfig" }, viewQueries: [{ propertyName: "widgetComponentHost", first: true, predicate: ["widgetComponentHost"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<!--\r\n This container uses a switch to determine how to render the widget's content\r\n based on the `contentType` property in the widget's configuration.\r\n-->\r\n<ng-container [ngSwitch]=\"widgetConfig.contentType\">\r\n <!-- Case for simple text content. -->\r\n <p *ngSwitchCase=\"'text'\">{{ widgetConfig.contentData }}</p>\r\n\r\n <!-- Case for HTML content, sanitized through the `safeHtml` pipe. -->\r\n <div\r\n *ngSwitchCase=\"'html'\"\r\n [innerHTML]=\"widgetConfig.contentData | safeHtml\"\r\n ></div>\r\n\r\n <!-- Case for video content, with attributes bound to the widget's configuration. -->\r\n <video\r\n *ngSwitchCase=\"'video'\"\r\n [src]=\"widgetConfig.contentData.src\"\r\n [attr.type]=\"widgetConfig.contentData.type\"\r\n [controls]=\"widgetConfig.contentData.controls\"\r\n [autoplay]=\"widgetConfig.contentData.autoplay\"\r\n [loop]=\"widgetConfig.contentData.loop\"\r\n style=\"width: 100%; height: 100%; object-fit: contain\"\r\n ></video>\r\n\r\n <!--\r\n Case for rendering a dynamic Angular component.\r\n The `ng-template` with the #widgetComponentHost reference serves as the anchor point\r\n where the component will be programmatically injected.\r\n -->\r\n <ng-container *ngSwitchCase=\"'component'\">\r\n <ng-template #widgetComponentHost></ng-template>\r\n </ng-container>\r\n\r\n <!--\r\n Default case that displays a fallback message if the `contentType`\r\n is not recognized or if no content is provided.\r\n -->\r\n <p *ngSwitchDefault>No content provided or content type not supported.</p>\r\n</ng-container>\r\n", styles: [":host{display:block;height:100%;width:100%}video{max-width:100%;max-height:100%}p{margin:0}\n"], dependencies: [{ kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: i3.SafeHtmlPipe, name: "safeHtml" }] });
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibWidgetItemComponent, decorators: [{
95
- type: Component,
96
- args: [{ selector: 'uxp-ruclib-widget-item', template: "<!--\r\n This container uses a switch to determine how to render the widget's content\r\n based on the `contentType` property in the widget's configuration.\r\n-->\r\n<ng-container [ngSwitch]=\"widgetConfig.contentType\">\r\n <!-- Case for simple text content. -->\r\n <p *ngSwitchCase=\"'text'\">{{ widgetConfig.contentData }}</p>\r\n\r\n <!-- Case for HTML content, sanitized through the `safeHtml` pipe. -->\r\n <div\r\n *ngSwitchCase=\"'html'\"\r\n [innerHTML]=\"widgetConfig.contentData | safeHtml\"\r\n ></div>\r\n\r\n <!-- Case for video content, with attributes bound to the widget's configuration. -->\r\n <video\r\n *ngSwitchCase=\"'video'\"\r\n [src]=\"widgetConfig.contentData.src\"\r\n [attr.type]=\"widgetConfig.contentData.type\"\r\n [controls]=\"widgetConfig.contentData.controls\"\r\n [autoplay]=\"widgetConfig.contentData.autoplay\"\r\n [loop]=\"widgetConfig.contentData.loop\"\r\n style=\"width: 100%; height: 100%; object-fit: contain\"\r\n ></video>\r\n\r\n <!--\r\n Case for rendering a dynamic Angular component.\r\n The `ng-template` with the #widgetComponentHost reference serves as the anchor point\r\n where the component will be programmatically injected.\r\n -->\r\n <ng-container *ngSwitchCase=\"'component'\">\r\n <ng-template #widgetComponentHost></ng-template>\r\n </ng-container>\r\n\r\n <!--\r\n Default case that displays a fallback message if the `contentType`\r\n is not recognized or if no content is provided.\r\n -->\r\n <p *ngSwitchDefault>No content provided or content type not supported.</p>\r\n</ng-container>\r\n", styles: [":host{display:block;height:100%;width:100%}video{max-width:100%;max-height:100%}p{margin:0}\n"] }]
97
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.DomSanitizer }]; }, propDecorators: { widgetConfig: [{
98
- type: Input
99
- }], widgetComponentHost: [{
100
- type: ViewChild,
101
- args: ['widgetComponentHost', { read: ViewContainerRef }]
102
- }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjbGliLXdpZGdldC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcnVjbGliLXdpZGdldC1pdGVtL3J1Y2xpYi13aWRnZXQtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL3J1Y2xpYi13aWRnZXQtaXRlbS9ydWNsaWItd2lkZ2V0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULGdCQUFnQixFQU1oQixpQkFBaUIsRUFFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQUd6RDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHlCQUF5QjtJQWtCcEM7OztPQUdHO0lBQ0gsWUFBb0IsR0FBc0IsRUFBVSxTQUF1QjtRQUF2RCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFWM0U7OztXQUdHO1FBQ0ssd0JBQW1CLEdBQTZCLElBQUksQ0FBQztJQU1rQixDQUFDO0lBRWhGOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM3RSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMzQjtpQkFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDNUI7U0FDRjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzdFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUU7WUFDN0gsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzVCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQXNCLENBQUM7Z0JBQzNFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUVuRixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFO29CQUM5RSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTt3QkFDOUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7NEJBQ3hFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3lCQUNwRjtvQkFDSCxDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQzVEO2FBQ0Y7U0FDRjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDOzt1SEE1RlUseUJBQXlCOzJHQUF6Qix5QkFBeUIsK01BV00sZ0JBQWdCLGtEQ3JDNUQsdWxEQXdDQTs0RkRkYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCO21JQVN6QixZQUFZO3NCQUFwQixLQUFLO2dCQU13RCxtQkFBbUI7c0JBQWhGLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBDb21wb25lbnRSZWYsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIFR5cGUsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgV2lkZ2V0Q29uZmlnRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZS93aWRnZXQnO1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgaXRlbSB3aXRoaW4gYSB3aWRnZXQuXHJcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIGZvciByZW5kZXJpbmcgdGhlIGNvbnRlbnQgb2YgYSB3aWRnZXQsIHdoaWNoIGNhbiBiZVxyXG4gKiBzaW1wbGUgdGV4dCwgSFRNTCwgYSB2aWRlbywgb3IgYSBkeW5hbWljYWxseSBsb2FkZWQgQW5ndWxhciBjb21wb25lbnQuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3V4cC1ydWNsaWItd2lkZ2V0LWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ydWNsaWItd2lkZ2V0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3J1Y2xpYi13aWRnZXQtaXRlbS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSdWNsaWJXaWRnZXRJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhpcyBzcGVjaWZpYyB3aWRnZXQgaXRlbS5cclxuICAgKiBJdCBkZXRlcm1pbmVzIHRoZSB0eXBlIG9mIGNvbnRlbnQgdG8gcmVuZGVyIGFuZCBwcm92aWRlcyB0aGUgbmVjZXNzYXJ5IGRhdGEuXHJcbiAgICovXHJcbiAgQElucHV0KCkgd2lkZ2V0Q29uZmlnITogV2lkZ2V0Q29uZmlnRGF0YTtcclxuXHJcbiAgLyoqXHJcbiAgICogQSByZWZlcmVuY2UgdG8gdGhlIHZpZXcgY29udGFpbmVyIHdoZXJlIGEgZHluYW1pYyBjb21wb25lbnQgd2lsbCBiZSBpbmplY3RlZC5cclxuICAgKiBUaGlzIGlzIHVzZWQgd2hlbiBgd2lkZ2V0Q29uZmlnLmNvbnRlbnRUeXBlYCBpcyAnY29tcG9uZW50Jy5cclxuICAgKi9cclxuICBAVmlld0NoaWxkKCd3aWRnZXRDb21wb25lbnRIb3N0JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHdpZGdldENvbXBvbmVudEhvc3QhOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIC8qKlxyXG4gICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBkeW5hbWljYWxseSBjcmVhdGVkIGNvbXBvbmVudCBpbnN0YW5jZS5cclxuICAgKiBUaGlzIGlzIHVzZWQgdG8gbWFuYWdlIHRoZSBsaWZlY3ljbGUgb2YgdGhlIGluamVjdGVkIGNvbXBvbmVudC5cclxuICAgKi9cclxuICBwcml2YXRlIGR5bmFtaWNDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBjZHIgVGhlIENoYW5nZURldGVjdG9yUmVmIHRvIG1hbnVhbGx5IHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbi5cclxuICAgKiBAcGFyYW0gc2FuaXRpemVyIFRoZSBEb21TYW5pdGl6ZXIgc2VydmljZSB0byBwcmV2ZW50IFhTUyBhdHRhY2tzIGJ5IHNhbml0aXppbmcgSFRNTC5cclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBBIGxpZmVjeWNsZSBob29rIHRoYXQgcmVzcG9uZHMgd2hlbiBBbmd1bGFyIHNldHMgb3IgcmVzZXRzIGRhdGEtYm91bmQgaW5wdXQgcHJvcGVydGllcy5cclxuICAgKiBJdCBjaGVja3MgZm9yIGNoYW5nZXMgaW4gYHdpZGdldENvbmZpZ2AgYW5kIHJlbG9hZHMgdGhlIGNvbnRlbnQgYWNjb3JkaW5nbHkuXHJcbiAgICogQHBhcmFtIGNoYW5nZXMgQW4gb2JqZWN0IG9mIHRoZSBjaGFuZ2VkIHByb3BlcnRpZXMuXHJcbiAgICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3dpZGdldENvbmZpZyddKSB7XHJcbiAgICAgIGlmICh0aGlzLndpZGdldENvbmZpZy5jb250ZW50VHlwZSA9PT0gJ2NvbXBvbmVudCcgJiYgdGhpcy53aWRnZXRDb21wb25lbnRIb3N0KSB7XHJcbiAgICAgICAgdGhpcy5sb2FkRHluYW1pY0NvbnRlbnQoKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLndpZGdldENvbmZpZy5jb250ZW50VHlwZSAhPT0gJ2NvbXBvbmVudCcpIHtcclxuICAgICAgICB0aGlzLmNsZWFyRHluYW1pY0NvbnRlbnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSBsaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBBbmd1bGFyIGhhcyBmdWxseSBpbml0aWFsaXplZCBhIGNvbXBvbmVudCdzIHZpZXcuXHJcbiAgICogSXQgZW5zdXJlcyB0aGF0IGlmIHRoZSBpbml0aWFsIGNvbnRlbnQgdHlwZSBpcyAnY29tcG9uZW50JywgaXQgZ2V0cyBsb2FkZWQuXHJcbiAgICovXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMud2lkZ2V0Q29uZmlnLmNvbnRlbnRUeXBlID09PSAnY29tcG9uZW50JyAmJiB0aGlzLndpZGdldENvbXBvbmVudEhvc3QpIHtcclxuICAgICAgdGhpcy5sb2FkRHluYW1pY0NvbnRlbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIGEgZHluYW1pYyBjb21wb25lbnQgaW50byB0aGUgYHdpZGdldENvbXBvbmVudEhvc3RgIHZpZXcgY29udGFpbmVyLlxyXG4gICAqIEl0IHJlYWRzIHRoZSBjb21wb25lbnQgdHlwZSBhbmQgYW55IGlucHV0IGRhdGEgZnJvbSB0aGUgYHdpZGdldENvbmZpZ2AuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBsb2FkRHluYW1pY0NvbnRlbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyRHluYW1pY0NvbnRlbnQoKTtcclxuICAgIGlmICh0aGlzLndpZGdldENvbmZpZy5jb250ZW50VHlwZSA9PT0gJ2NvbXBvbmVudCcgJiYgdGhpcy53aWRnZXRDb25maWcuY29udGVudERhdGEgJiYgdGhpcy53aWRnZXRDb25maWcuY29udGVudERhdGEuY29tcG9uZW50KSB7XHJcbiAgICAgIGlmICh0aGlzLndpZGdldENvbXBvbmVudEhvc3QpIHtcclxuICAgICAgICBjb25zdCBjb21wb25lbnRUeXBlID0gdGhpcy53aWRnZXRDb25maWcuY29udGVudERhdGEuY29tcG9uZW50IGFzIFR5cGU8YW55PjtcclxuICAgICAgICB0aGlzLmR5bmFtaWNDb21wb25lbnRSZWYgPSB0aGlzLndpZGdldENvbXBvbmVudEhvc3QuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGUpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy53aWRnZXRDb25maWcuY29udGVudERhdGEuaW5wdXRzICYmIHRoaXMuZHluYW1pY0NvbXBvbmVudFJlZj8uaW5zdGFuY2UpIHtcclxuICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMud2lkZ2V0Q29uZmlnLmNvbnRlbnREYXRhLmlucHV0cykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5keW5hbWljQ29tcG9uZW50UmVmICYmIGtleSBpbiB0aGlzLmR5bmFtaWNDb21wb25lbnRSZWYuaW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNDb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XSA9IHRoaXMud2lkZ2V0Q29uZmlnLmNvbnRlbnREYXRhLmlucHV0c1trZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0NvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhcnMgYW55IGR5bmFtaWNhbGx5IGxvYWRlZCBjb21wb25lbnQgZnJvbSB0aGUgdmlldyBjb250YWluZXIgYW5kIGRlc3Ryb3lzIGl0cyBpbnN0YW5jZS5cclxuICAgKi9cclxuICBwcml2YXRlIGNsZWFyRHluYW1pY0NvbnRlbnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5keW5hbWljQ29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuZHluYW1pY0NvbXBvbmVudFJlZiA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy53aWRnZXRDb21wb25lbnRIb3N0KSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50SG9zdC5jbGVhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSBsaWZlY3ljbGUgaG9vayB0aGF0IGNsZWFucyB1cCB0aGUgY29tcG9uZW50IGJlZm9yZSBpdCdzIGRlc3Ryb3llZC5cclxuICAgKiBFbnN1cmVzIHRoYXQgYW55IGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcG9uZW50cyBhcmUgcHJvcGVybHkgZGVzdHJveWVkIHRvIGF2b2lkIG1lbW9yeSBsZWFrcy5cclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xlYXJEeW5hbWljQ29udGVudCgpO1xyXG4gIH1cclxufSIsIjwhLS1cclxuICBUaGlzIGNvbnRhaW5lciB1c2VzIGEgc3dpdGNoIHRvIGRldGVybWluZSBob3cgdG8gcmVuZGVyIHRoZSB3aWRnZXQncyBjb250ZW50XHJcbiAgYmFzZWQgb24gdGhlIGBjb250ZW50VHlwZWAgcHJvcGVydHkgaW4gdGhlIHdpZGdldCdzIGNvbmZpZ3VyYXRpb24uXHJcbi0tPlxyXG48bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ3aWRnZXRDb25maWcuY29udGVudFR5cGVcIj5cclxuICA8IS0tIENhc2UgZm9yIHNpbXBsZSB0ZXh0IGNvbnRlbnQuIC0tPlxyXG4gIDxwICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj57eyB3aWRnZXRDb25maWcuY29udGVudERhdGEgfX08L3A+XHJcblxyXG4gIDwhLS0gQ2FzZSBmb3IgSFRNTCBjb250ZW50LCBzYW5pdGl6ZWQgdGhyb3VnaCB0aGUgYHNhZmVIdG1sYCBwaXBlLiAtLT5cclxuICA8ZGl2XHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2h0bWwnXCJcclxuICAgIFtpbm5lckhUTUxdPVwid2lkZ2V0Q29uZmlnLmNvbnRlbnREYXRhIHwgc2FmZUh0bWxcIlxyXG4gID48L2Rpdj5cclxuXHJcbiAgPCEtLSBDYXNlIGZvciB2aWRlbyBjb250ZW50LCB3aXRoIGF0dHJpYnV0ZXMgYm91bmQgdG8gdGhlIHdpZGdldCdzIGNvbmZpZ3VyYXRpb24uIC0tPlxyXG4gIDx2aWRlb1xyXG4gICAgKm5nU3dpdGNoQ2FzZT1cIid2aWRlbydcIlxyXG4gICAgW3NyY109XCJ3aWRnZXRDb25maWcuY29udGVudERhdGEuc3JjXCJcclxuICAgIFthdHRyLnR5cGVdPVwid2lkZ2V0Q29uZmlnLmNvbnRlbnREYXRhLnR5cGVcIlxyXG4gICAgW2NvbnRyb2xzXT1cIndpZGdldENvbmZpZy5jb250ZW50RGF0YS5jb250cm9sc1wiXHJcbiAgICBbYXV0b3BsYXldPVwid2lkZ2V0Q29uZmlnLmNvbnRlbnREYXRhLmF1dG9wbGF5XCJcclxuICAgIFtsb29wXT1cIndpZGdldENvbmZpZy5jb250ZW50RGF0YS5sb29wXCJcclxuICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb2JqZWN0LWZpdDogY29udGFpblwiXHJcbiAgPjwvdmlkZW8+XHJcblxyXG4gIDwhLS1cclxuICAgIENhc2UgZm9yIHJlbmRlcmluZyBhIGR5bmFtaWMgQW5ndWxhciBjb21wb25lbnQuXHJcbiAgICBUaGUgYG5nLXRlbXBsYXRlYCB3aXRoIHRoZSAjd2lkZ2V0Q29tcG9uZW50SG9zdCByZWZlcmVuY2Ugc2VydmVzIGFzIHRoZSBhbmNob3IgcG9pbnRcclxuICAgIHdoZXJlIHRoZSBjb21wb25lbnQgd2lsbCBiZSBwcm9ncmFtbWF0aWNhbGx5IGluamVjdGVkLlxyXG4gIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjb21wb25lbnQnXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgI3dpZGdldENvbXBvbmVudEhvc3Q+PC9uZy10ZW1wbGF0ZT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLVxyXG4gICAgRGVmYXVsdCBjYXNlIHRoYXQgZGlzcGxheXMgYSBmYWxsYmFjayBtZXNzYWdlIGlmIHRoZSBgY29udGVudFR5cGVgXHJcbiAgICBpcyBub3QgcmVjb2duaXplZCBvciBpZiBubyBjb250ZW50IGlzIHByb3ZpZGVkLlxyXG4gIC0tPlxyXG4gIDxwICpuZ1N3aXRjaERlZmF1bHQ+Tm8gY29udGVudCBwcm92aWRlZCBvciBjb250ZW50IHR5cGUgbm90IHN1cHBvcnRlZC48L3A+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -1,34 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { RuclibWidgetComponent } from './ruclib-widget/ruclib-widget.component';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { DragDropModule } from '@angular/cdk/drag-drop';
6
- import { SafeHtmlPipe } from '../pipes/safe-html.pipe';
7
- import { RuclibWidgetItemComponent } from './ruclib-widget-item/ruclib-widget-item.component';
8
- import { MatButtonModule } from '@angular/material/button';
9
- import * as i0 from "@angular/core";
10
- export class RuclibWidgetModule {
11
- }
12
- RuclibWidgetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibWidgetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- RuclibWidgetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: RuclibWidgetModule, declarations: [RuclibWidgetComponent, SafeHtmlPipe, RuclibWidgetItemComponent], imports: [CommonModule,
14
- MatIconModule,
15
- MatButtonModule,
16
- DragDropModule], exports: [RuclibWidgetComponent] });
17
- RuclibWidgetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibWidgetModule, imports: [CommonModule,
18
- MatIconModule,
19
- MatButtonModule,
20
- DragDropModule] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibWidgetModule, decorators: [{
22
- type: NgModule,
23
- args: [{
24
- imports: [
25
- CommonModule,
26
- MatIconModule,
27
- MatButtonModule,
28
- DragDropModule
29
- ],
30
- declarations: [RuclibWidgetComponent, SafeHtmlPipe, RuclibWidgetItemComponent],
31
- exports: [RuclibWidgetComponent]
32
- }]
33
- }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjbGliLXdpZGdldC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3J1Y2xpYi13aWRnZXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFZM0QsTUFBTSxPQUFPLGtCQUFrQjs7Z0hBQWxCLGtCQUFrQjtpSEFBbEIsa0JBQWtCLGlCQUhkLHFCQUFxQixFQUFFLFlBQVksRUFBRSx5QkFBeUIsYUFMM0UsWUFBWTtRQUNaLGFBQWE7UUFDYixlQUFlO1FBQ2YsY0FBYyxhQUdOLHFCQUFxQjtpSEFFcEIsa0JBQWtCLFlBUjNCLFlBQVk7UUFDWixhQUFhO1FBQ2IsZUFBZTtRQUNmLGNBQWM7NEZBS0wsa0JBQWtCO2tCQVY5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixjQUFjO3FCQUNmO29CQUNELFlBQVksRUFBRSxDQUFDLHFCQUFxQixFQUFFLFlBQVksRUFBRSx5QkFBeUIsQ0FBQztvQkFDOUUsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUnVjbGliV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi9ydWNsaWItd2lkZ2V0L3J1Y2xpYi13aWRnZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUgfSBmcm9tICcuLi9waXBlcy9zYWZlLWh0bWwucGlwZSc7XHJcbmltcG9ydCB7IFJ1Y2xpYldpZGdldEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3J1Y2xpYi13aWRnZXQtaXRlbS9ydWNsaWItd2lkZ2V0LWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtSdWNsaWJXaWRnZXRDb21wb25lbnQsIFNhZmVIdG1sUGlwZSwgUnVjbGliV2lkZ2V0SXRlbUNvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW1J1Y2xpYldpZGdldENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJ1Y2xpYldpZGdldE1vZHVsZSB7IH1cclxuIl19
@@ -1,32 +0,0 @@
1
- export const defaultValues = {
2
- color: 'primary',
3
- widgetData: [
4
- {
5
- id: 'default-widget-1',
6
- title: 'Default Widget 1',
7
- contentType: 'text',
8
- contentData: 'This is the default content for the first widget. It is draggable and has a close icon.',
9
- top: '20px',
10
- left: '20px',
11
- width: '300px',
12
- height: '200px',
13
- draggable: true,
14
- showCloseIcon: true,
15
- headerIcon: 'widgets'
16
- },
17
- {
18
- id: 'default-widget-2',
19
- title: 'Default Widget 2 (HTML)',
20
- contentType: 'html',
21
- contentData: '<h3>HTML Content</h3><p>This widget contains <strong>HTML</strong> and has a different background color.</p>',
22
- top: '240px',
23
- left: '20px',
24
- width: '300px',
25
- height: '200px',
26
- draggable: true,
27
- showCloseIcon: true,
28
- backgroundColor: '#f0f0f0'
29
- }
30
- ]
31
- };
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC12YWx1ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvZGVmYXVsdC12YWx1ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFpQjtJQUN2QyxLQUFLLEVBQUUsU0FBUztJQUNoQixVQUFVLEVBQUU7UUFDUjtZQUNJLEVBQUUsRUFBRSxrQkFBa0I7WUFDdEIsS0FBSyxFQUFFLGtCQUFrQjtZQUN6QixXQUFXLEVBQUUsTUFBTTtZQUNuQixXQUFXLEVBQUUseUZBQXlGO1lBQ3RHLEdBQUcsRUFBRSxNQUFNO1lBQ1gsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxPQUFPO1lBQ2YsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsSUFBSTtZQUNuQixVQUFVLEVBQUUsU0FBUztTQUN4QjtRQUNEO1lBQ0ksRUFBRSxFQUFFLGtCQUFrQjtZQUN0QixLQUFLLEVBQUUseUJBQXlCO1lBQ2hDLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFdBQVcsRUFBRSw4R0FBOEc7WUFDM0gsR0FBRyxFQUFFLE9BQU87WUFDWixJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTSxFQUFFLE9BQU87WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGVBQWUsRUFBRSxTQUFTO1NBQzdCO0tBQ0o7Q0FDSixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2lkZ2V0Q29uZmlnIH0gZnJvbSBcIi4uL2ludGVyZmFjZS93aWRnZXRcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0VmFsdWVzOiBXaWRnZXRDb25maWcgPSB7XHJcbiAgICBjb2xvcjogJ3ByaW1hcnknLFxyXG4gICAgd2lkZ2V0RGF0YTogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWQ6ICdkZWZhdWx0LXdpZGdldC0xJyxcclxuICAgICAgICAgICAgdGl0bGU6ICdEZWZhdWx0IFdpZGdldCAxJyxcclxuICAgICAgICAgICAgY29udGVudFR5cGU6ICd0ZXh0JyxcclxuICAgICAgICAgICAgY29udGVudERhdGE6ICdUaGlzIGlzIHRoZSBkZWZhdWx0IGNvbnRlbnQgZm9yIHRoZSBmaXJzdCB3aWRnZXQuIEl0IGlzIGRyYWdnYWJsZSBhbmQgaGFzIGEgY2xvc2UgaWNvbi4nLFxyXG4gICAgICAgICAgICB0b3A6ICcyMHB4JyxcclxuICAgICAgICAgICAgbGVmdDogJzIwcHgnLFxyXG4gICAgICAgICAgICB3aWR0aDogJzMwMHB4JyxcclxuICAgICAgICAgICAgaGVpZ2h0OiAnMjAwcHgnLFxyXG4gICAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgIHNob3dDbG9zZUljb246IHRydWUsXHJcbiAgICAgICAgICAgIGhlYWRlckljb246ICd3aWRnZXRzJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogJ2RlZmF1bHQtd2lkZ2V0LTInLFxyXG4gICAgICAgICAgICB0aXRsZTogJ0RlZmF1bHQgV2lkZ2V0IDIgKEhUTUwpJyxcclxuICAgICAgICAgICAgY29udGVudFR5cGU6ICdodG1sJyxcclxuICAgICAgICAgICAgY29udGVudERhdGE6ICc8aDM+SFRNTCBDb250ZW50PC9oMz48cD5UaGlzIHdpZGdldCBjb250YWlucyA8c3Ryb25nPkhUTUw8L3N0cm9uZz4gYW5kIGhhcyBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGNvbG9yLjwvcD4nLFxyXG4gICAgICAgICAgICB0b3A6ICcyNDBweCcsXHJcbiAgICAgICAgICAgIGxlZnQ6ICcyMHB4JyxcclxuICAgICAgICAgICAgd2lkdGg6ICczMDBweCcsXHJcbiAgICAgICAgICAgIGhlaWdodDogJzIwMHB4JyxcclxuICAgICAgICAgICAgZHJhZ2dhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBzaG93Q2xvc2VJY29uOiB0cnVlLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZjBmMGYwJ1xyXG4gICAgICAgIH1cclxuICAgIF1cclxufSJdfQ==
@@ -1,36 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { DomSanitizer } from '@angular/platform-browser';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/platform-browser";
5
- /**
6
- * @Pipe SafeHtmlPipe
7
- * @name safeHtml
8
- * @description A pipe that bypasses Angular's built-in security and sanitizes HTML content,
9
- * allowing it to be safely rendered in the DOM. Use with caution and only with trusted HTML sources.
10
- */
11
- export class SafeHtmlPipe {
12
- /**
13
- * @param sanitizer - An instance of DomSanitizer used to bypass security.
14
- */
15
- constructor(sanitizer) {
16
- this.sanitizer = sanitizer;
17
- }
18
- /**
19
- * Transforms a string containing HTML into a SafeHtml object that can be bound to [innerHTML].
20
- * @param value - The HTML string to sanitize.
21
- * @returns A SafeHtml object, which Angular trusts as safe HTML.
22
- */
23
- transform(value) {
24
- if (value === null || value === undefined) {
25
- return value;
26
- }
27
- return this.sanitizer.bypassSecurityTrustHtml(value);
28
- }
29
- }
30
- SafeHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
31
- SafeHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SafeHtmlPipe, name: "safeHtml" });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SafeHtmlPipe, decorators: [{
33
- type: Pipe,
34
- args: [{ name: 'safeHtml' }]
35
- }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGlwZXMvc2FmZS1odG1sLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFFekQ7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sWUFBWTtJQUN2Qjs7T0FFRztJQUNILFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBSSxDQUFDO0lBQ2hEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsS0FBVTtRQUNsQixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN6QyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OzBHQWZVLFlBQVk7d0dBQVosWUFBWTs0RkFBWixZQUFZO2tCQUR4QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG4vKipcclxuICogQFBpcGUgU2FmZUh0bWxQaXBlXHJcbiAqIEBuYW1lIHNhZmVIdG1sXHJcbiAqIEBkZXNjcmlwdGlvbiBBIHBpcGUgdGhhdCBieXBhc3NlcyBBbmd1bGFyJ3MgYnVpbHQtaW4gc2VjdXJpdHkgYW5kIHNhbml0aXplcyBIVE1MIGNvbnRlbnQsXHJcbiAqIGFsbG93aW5nIGl0IHRvIGJlIHNhZmVseSByZW5kZXJlZCBpbiB0aGUgRE9NLiBVc2Ugd2l0aCBjYXV0aW9uIGFuZCBvbmx5IHdpdGggdHJ1c3RlZCBIVE1MIHNvdXJjZXMuXHJcbiAqL1xyXG5AUGlwZSh7IG5hbWU6ICdzYWZlSHRtbCcgfSlcclxuZXhwb3J0IGNsYXNzIFNhZmVIdG1sUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBzYW5pdGl6ZXIgLSBBbiBpbnN0YW5jZSBvZiBEb21TYW5pdGl6ZXIgdXNlZCB0byBieXBhc3Mgc2VjdXJpdHkuXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikgeyB9XHJcbiAgLyoqXHJcbiAgICogVHJhbnNmb3JtcyBhIHN0cmluZyBjb250YWluaW5nIEhUTUwgaW50byBhIFNhZmVIdG1sIG9iamVjdCB0aGF0IGNhbiBiZSBib3VuZCB0byBbaW5uZXJIVE1MXS5cclxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgSFRNTCBzdHJpbmcgdG8gc2FuaXRpemUuXHJcbiAgICogQHJldHVybnMgQSBTYWZlSHRtbCBvYmplY3QsIHdoaWNoIEFuZ3VsYXIgdHJ1c3RzIGFzIHNhZmUgSFRNTC5cclxuICAgKi9cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHZhbHVlKTtcclxuICB9XHJcbn0iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjLWxpYi13aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVjLWxpYi13aWRnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=