ngx-bimplus-components 0.0.160 → 0.0.162
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/images/default/Attachment_18_gray.svg +1 -0
- package/assets/images/default/Attachment_18_maincolor.svg +3 -0
- package/assets/images/default/Attachmentlink_18_gray.svg +7 -0
- package/assets/images/default/Attachmentlink_18_maincolor.svg +7 -0
- package/assets/images/default/Calendar_18.svg +4 -0
- package/assets/images/default/Calendar_18_disabled.svg +1 -0
- package/assets/images/default/Calendar_18_gray.svg +1 -0
- package/assets/images/default/Comments_18_gray.svg +1 -0
- package/assets/images/default/Comments_18_maincolor.svg +4 -0
- package/assets/images/default/Links_18_gray.svg +1 -0
- package/assets/images/default/Links_18_maincolor.svg +4 -0
- package/assets/images/default/Refresh_18_gray.svg +1 -0
- package/assets/images/default/bimplus_WebIcons_Cross_Disabled.svg +1 -0
- package/assets/images/default/ic_models.svg +3 -0
- package/assets/images/default/ic_models_maincolor.svg +3 -0
- package/assets/images/default/icn_grid_attachments.png +0 -0
- package/assets/images/default/icn_grid_hyperlinks.png +0 -0
- package/assets/images/default/progress-spinner.svg +1 -0
- package/esm2022/lib/components/bimplus-attachments/bimplus-attachments.component.mjs +114 -0
- package/esm2022/lib/components/bimplus-attachments/bimplus-attachments.interface.mjs +38 -0
- package/esm2022/lib/components/bimplus-attachments/components/bimplus-attachment-item/bimplus-attachment-item.component.mjs +95 -0
- package/esm2022/lib/components/bimplus-attachments/services/bimplus-attachments.service.mjs +32 -0
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.mjs +40 -5
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.mjs +5 -2
- package/esm2022/lib/components/bimplus-comment/IComment.mjs +2 -0
- package/esm2022/lib/components/bimplus-comment/bimplus-comment.component.mjs +118 -0
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.component.mjs +5 -5
- package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.mjs +115 -7
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.mjs +1 -1
- package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-dialog-config-settings.mjs +1 -1
- package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-input-checkbox/bimplus-input-checkbox.component.mjs +64 -0
- package/esm2022/lib/components/bimplus-input-combobox/bimplus-input-combobox.component.mjs +161 -0
- package/esm2022/lib/components/bimplus-input-date/bimplus-input-date.component.mjs +271 -0
- package/esm2022/lib/components/bimplus-input-number/bimplus-input-number.component.mjs +85 -0
- package/esm2022/lib/components/bimplus-input-text-field/bimplus-input-text-field.component.mjs +92 -0
- package/esm2022/lib/components/bimplus-link-tooltip-message/bimplus-link-tooltip-message.component.mjs +78 -0
- package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.mjs +388 -0
- package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.interface.mjs +3 -0
- package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.service.mjs +104 -0
- package/esm2022/lib/components/bimplus-object-comments-list/bimplusObjectCommentsI.mjs +2 -0
- package/esm2022/lib/components/bimplus-object-complex-properties/bimplus-object-complex-properties.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs +6 -3
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-object-navigator/object-filter-result/object-filter-result.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.component.mjs +42 -4
- package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.interface.mjs +4 -2
- package/esm2022/lib/components/bimplus-overlay-dialog-confirm/bimplus-overlay-dialog-confirm.component.mjs +77 -0
- package/esm2022/lib/components/bimplus-overlay-dialog-delete/bimplus-overlay-dialog-delete.component.mjs +83 -0
- package/esm2022/lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component.mjs +31 -8
- package/esm2022/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.mjs +34 -8
- package/esm2022/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.mjs +1 -1
- package/esm2022/lib/components/bimplus-status-bar/bimplus-status-bar.component.mjs +35 -0
- package/esm2022/lib/components/bimplus-status-bar/bimplus-status-bar.service.mjs +35 -0
- package/esm2022/lib/components/bimplus-status-bar/statusBar.mjs +2 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.component.mjs +38 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.interface.mjs +10 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/components/bimplus-tab/bimplus-tab.component.mjs +89 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/services/bimplus-tabs-switcher.service.mjs +33 -0
- package/esm2022/lib/components/bimplus-textarea/autoResizeTextarea.directive.mjs +83 -0
- package/esm2022/lib/components/bimplus-textarea/bimplus-textarea.component.mjs +128 -0
- package/esm2022/lib/components/links-to-documents/links-to-documents.component.mjs +376 -0
- package/esm2022/lib/components/object-hyperlinks/object-hyperlinks.component.mjs +145 -0
- package/esm2022/lib/components/object-hyperlinks-item/object-hyperlinks-item.component.mjs +36 -0
- package/esm2022/lib/components/object-preview/object-preview.component.mjs +284 -0
- package/esm2022/lib/components/object-preview/object-preview.interface.mjs +2 -0
- package/esm2022/lib/components/object-properties/object-properties.component.mjs +545 -0
- package/esm2022/lib/components/object-properties/object-properties.interface.mjs +2 -0
- package/esm2022/lib/components/object-properties/object-properties.service.mjs +26 -0
- package/esm2022/lib/components/object-properties-group/object-properties-group.component.mjs +129 -0
- package/esm2022/lib/components/object-properties-group/object-property-value/object-property-value.component.mjs +55 -0
- package/esm2022/lib/components/object-properties-header/object-properties-header.component.mjs +48 -6
- package/esm2022/lib/components/object-properties-header/object-properties-header.interface.mjs +1 -1
- package/esm2022/lib/components/resizable-panel/resizable-panel.component.mjs +54 -10
- package/esm2022/lib/pipes/bit-converter.pipe.mjs +46 -0
- package/esm2022/lib/pipes/get-attribute-value-as-string.pipe.mjs +173 -0
- package/esm2022/lib/pipes/get-attribute-value.pipe.mjs +156 -0
- package/esm2022/lib/pipes/round.pipe.mjs +20 -0
- package/esm2022/lib/services/decorators.service.mjs +65 -0
- package/esm2022/lib/utils/objectProperties.mjs +9 -0
- package/esm2022/lib/validators/double-enum.validator.mjs +20 -0
- package/esm2022/lib/validators/double.validator.mjs +23 -0
- package/esm2022/lib/validators/guid-enum.validator.mjs +20 -0
- package/esm2022/lib/validators/guid.validator.mjs +14 -0
- package/esm2022/lib/validators/integer.validator.mjs +23 -0
- package/esm2022/lib/validators/string-combobox.validator.mjs +20 -0
- package/esm2022/lib/validators/string-enum.validator.mjs +20 -0
- package/esm2022/public-api.mjs +22 -1
- package/fesm2022/ngx-bimplus-components.mjs +4618 -80
- package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
- package/lib/components/bimplus-attachments/bimplus-attachments.component.d.ts +39 -0
- package/lib/components/bimplus-attachments/bimplus-attachments.interface.d.ts +33 -0
- package/lib/components/bimplus-attachments/components/bimplus-attachment-item/bimplus-attachment-item.component.d.ts +30 -0
- package/lib/components/bimplus-attachments/services/bimplus-attachments.service.d.ts +8 -0
- package/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.d.ts +14 -3
- package/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.d.ts +7 -1
- package/lib/components/bimplus-comment/IComment.d.ts +4 -0
- package/lib/components/bimplus-comment/bimplus-comment.component.d.ts +39 -0
- package/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.d.ts +16 -3
- package/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.d.ts +4 -0
- package/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.d.ts +1 -1
- package/lib/components/bimplus-general-overlay-dialog/bimplus-general-dialog-config-settings.d.ts +3 -3
- package/lib/components/bimplus-input-checkbox/bimplus-input-checkbox.component.d.ts +18 -0
- package/lib/components/bimplus-input-combobox/bimplus-input-combobox.component.d.ts +41 -0
- package/lib/components/bimplus-input-date/bimplus-input-date.component.d.ts +46 -0
- package/lib/components/bimplus-input-number/bimplus-input-number.component.d.ts +26 -0
- package/lib/components/bimplus-input-text-field/bimplus-input-text-field.component.d.ts +28 -0
- package/lib/components/bimplus-link-tooltip-message/bimplus-link-tooltip-message.component.d.ts +22 -0
- package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.d.ts +88 -0
- package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.interface.d.ts +10 -0
- package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.service.d.ts +20 -0
- package/lib/components/bimplus-object-comments-list/bimplusObjectCommentsI.d.ts +11 -0
- package/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.d.ts +2 -1
- package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.d.ts +12 -12
- package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.interface.d.ts +3 -3
- package/lib/components/bimplus-object-structure/bimplus-object-structure.component.d.ts +5 -1
- package/lib/components/bimplus-object-structure/bimplus-object-structure.interface.d.ts +2 -0
- package/lib/components/bimplus-overlay-dialog-confirm/bimplus-overlay-dialog-confirm.component.d.ts +29 -0
- package/lib/components/bimplus-overlay-dialog-delete/bimplus-overlay-dialog-delete.component.d.ts +24 -0
- package/lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component.d.ts +8 -1
- package/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.d.ts +11 -1
- package/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.d.ts +1 -1
- package/lib/components/bimplus-status-bar/bimplus-status-bar.component.d.ts +14 -0
- package/lib/components/bimplus-status-bar/bimplus-status-bar.service.d.ts +14 -0
- package/lib/components/bimplus-status-bar/statusBar.d.ts +4 -0
- package/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.component.d.ts +16 -0
- package/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.interface.d.ts +18 -0
- package/lib/components/bimplus-tabs-switcher/components/bimplus-tab/bimplus-tab.component.d.ts +36 -0
- package/lib/components/bimplus-tabs-switcher/services/bimplus-tabs-switcher.service.d.ts +15 -0
- package/lib/components/bimplus-textarea/autoResizeTextarea.directive.d.ts +24 -0
- package/lib/components/bimplus-textarea/bimplus-textarea.component.d.ts +42 -0
- package/lib/components/links-to-documents/links-to-documents.component.d.ts +69 -0
- package/lib/components/object-hyperlinks/object-hyperlinks.component.d.ts +32 -0
- package/lib/components/object-hyperlinks-item/object-hyperlinks-item.component.d.ts +15 -0
- package/lib/components/object-preview/object-preview.component.d.ts +45 -0
- package/lib/components/object-preview/object-preview.interface.d.ts +5 -0
- package/lib/components/object-properties/object-properties.component.d.ts +79 -0
- package/lib/components/object-properties/object-properties.interface.d.ts +22 -0
- package/lib/components/object-properties/object-properties.service.d.ts +12 -0
- package/lib/components/object-properties-group/object-properties-group.component.d.ts +30 -0
- package/lib/components/object-properties-group/object-property-value/object-property-value.component.d.ts +14 -0
- package/lib/components/object-properties-header/object-properties-header.component.d.ts +13 -4
- package/lib/components/object-properties-header/object-properties-header.interface.d.ts +8 -0
- package/lib/components/resizable-panel/resizable-panel.component.d.ts +12 -3
- package/lib/pipes/bit-converter.pipe.d.ts +17 -0
- package/lib/pipes/get-attribute-value-as-string.pipe.d.ts +35 -0
- package/lib/pipes/get-attribute-value.pipe.d.ts +35 -0
- package/lib/pipes/round.pipe.d.ts +7 -0
- package/lib/services/decorators.service.d.ts +12 -0
- package/lib/utils/objectProperties.d.ts +2 -0
- package/lib/validators/double-enum.validator.d.ts +2 -0
- package/lib/validators/double.validator.d.ts +2 -0
- package/lib/validators/guid-enum.validator.d.ts +2 -0
- package/lib/validators/guid.validator.d.ts +2 -0
- package/lib/validators/integer.validator.d.ts +2 -0
- package/lib/validators/string-combobox.validator.d.ts +2 -0
- package/lib/validators/string-enum.validator.d.ts +2 -0
- package/package.json +14 -4
- package/public-api.d.ts +21 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, Input } from '@angular/core';
|
|
1
|
+
import { Component, ViewEncapsulation, Input, HostListener } from '@angular/core';
|
|
2
2
|
import { XDraggableDirective } from '../../directives/x-draggable.directive';
|
|
3
3
|
import { PxsuffixPipe } from '../../pipes/pxsuffix.pipe';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
@@ -6,35 +6,79 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
7
7
|
export class ResizablePanelComponent {
|
|
8
8
|
constructor() {
|
|
9
|
-
this.position =
|
|
9
|
+
this.position = 'right';
|
|
10
10
|
this.hasDraggableHandle = false;
|
|
11
11
|
this.hasDraggableBorder = false;
|
|
12
|
-
this.
|
|
12
|
+
this.minWidth = 350;
|
|
13
|
+
this.defaultWidth = 350;
|
|
14
|
+
// Function to determine if resizing is allowed
|
|
15
|
+
this.canResize = () => true;
|
|
16
|
+
this.drawerWidth = this.defaultWidth;
|
|
13
17
|
this.drawerExpanded = true;
|
|
18
|
+
this.handleWindowResize = () => {
|
|
19
|
+
this.applyWidthConstraints();
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
this.drawerWidth = this.defaultWidth;
|
|
24
|
+
window.addEventListener('resize', this.handleWindowResize);
|
|
25
|
+
}
|
|
26
|
+
ngOnDestroy() {
|
|
27
|
+
window.removeEventListener('resize', this.handleWindowResize);
|
|
28
|
+
}
|
|
29
|
+
applyWidthConstraints() {
|
|
30
|
+
const minWidth = typeof this.minWidth === 'function' ? this.minWidth() : this.minWidth;
|
|
31
|
+
const maxWidth = typeof this.maxWidth === 'function' ? this.maxWidth() : this.maxWidth;
|
|
32
|
+
if (minWidth && this.drawerWidth < minWidth) {
|
|
33
|
+
this.drawerWidth = minWidth;
|
|
34
|
+
}
|
|
35
|
+
else if (maxWidth && this.drawerWidth > maxWidth) {
|
|
36
|
+
this.drawerWidth = maxWidth;
|
|
37
|
+
}
|
|
14
38
|
}
|
|
15
39
|
_toggleDrawer() {
|
|
16
40
|
this.drawerExpanded = !this.drawerExpanded;
|
|
41
|
+
if (!this.drawerExpanded) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.applyWidthConstraints();
|
|
17
45
|
}
|
|
18
46
|
_onResizeWidth(event) {
|
|
19
47
|
const deltaX = event;
|
|
20
|
-
|
|
21
|
-
|
|
48
|
+
let newWidth = this.drawerWidth;
|
|
49
|
+
if (this.position === 'left') {
|
|
50
|
+
newWidth += deltaX;
|
|
22
51
|
}
|
|
23
|
-
else if (this.position ===
|
|
24
|
-
|
|
52
|
+
else if (this.position === 'right') {
|
|
53
|
+
newWidth -= deltaX;
|
|
54
|
+
}
|
|
55
|
+
if (this.canResize?.(this.drawerWidth, deltaX) !== false) {
|
|
56
|
+
this.drawerWidth = newWidth;
|
|
57
|
+
this.applyWidthConstraints();
|
|
25
58
|
}
|
|
26
59
|
}
|
|
27
60
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ResizablePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: ResizablePanelComponent, isStandalone: true, selector: "lib-resizable-panel", inputs: { position: "position", hasDraggableHandle: "hasDraggableHandle", hasDraggableBorder: "hasDraggableBorder" }, ngImport: i0, template: "<div\r\n class=\"resizable-panel-drawer\"\r\n [style.width] = \"drawerWidth | pxsuffix\"\r\n [ngClass]=\"drawerExpanded ? '' : 'hidden'\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n>\r\n <slot></slot>\r\n @if (drawerExpanded) {\r\n @if (hasDraggableBorder) {\r\n <div\r\n xDraggable\r\n class=\"resizable-panel-resize-border\"\r\n (dragging)=\"_onResizeWidth($event)\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n @if (hasDraggableHandle) {\r\n <div\r\n xDraggable\r\n class=\"resizable-panel-resize-handle\"\r\n (dragging)=\"_onResizeWidth($event)\"\r\n (clicked)=\"_toggleDrawer()\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n }\r\n</div>\r\n@if (!drawerExpanded) {\r\n @if (hasDraggableHandle) {\r\n <div\r\n class=\"resizable-panel-resize-handle collapsed\"\r\n (click)=\"_toggleDrawer()\"\r\n (keypress)=\"_toggleDrawer()\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n}\r\n", styles: [".noselect{-webkit-user-select:none;user-select:none}.resizable-panel-drawer.position-left.hidden,.resizable-panel-drawer.position-right.hidden{display:none}.resizable-panel-drawer.position-left{min-width:var(--resizable-panel-min-width, 1rem);height:100%;border:0 solid var(--sidenav-drawer-border-color-enabled);position:absolute;bottom:0;left:0;background-color:var(--sidenav-drawer-background-color-enabled);transition:background-color .7s;border-right:solid thin var(--sidenav-drawer-border-right-color-enabled);width:300px;display:flex;flex-direction:row}.resizable-panel-drawer.position-left:hover{background-color:var(--sidenav-drawer-background-color-hovered)}.resizable-panel-drawer.position-right{min-width:var(--resizable-panel-min-width, 1rem);height:100%;border:0 solid var(--sidenav-drawer-border-color-enabled);position:absolute;bottom:0;right:0;background-color:var(--sidenav-drawer-background-color-enabled);transition:background-color .7s;border-left:solid thin var(--sidenav-drawer-border-right-color-enabled);width:300px;display:flex;flex-direction:row}.resizable-panel-drawer.position-right:hover{background-color:var(--sidenav-drawer-background-color-hovered)}.resizable-panel-resize-border.position-left{right:-5px;position:absolute;height:100%;cursor:col-resize;width:5px;-webkit-user-select:none;user-select:none}.resizable-panel-resize-border.position-right{left:0;position:absolute;height:100%;cursor:col-resize;width:5px;-webkit-user-select:none;user-select:none}.resizable-panel-resize-handle.position-left{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M11.0104 0L2 9L11.0104 18L12.4246 16.5874L4.82843 9L12.4246 1.41258L11.0104 0Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');position:absolute;top:calc(50% - 2.4rem);right:-2.1rem;width:2.1rem;height:4.8rem;border-radius:0 .4rem .4rem 0;background-color:var(--sidenav-resize-handle-left-background-color-enabled);cursor:pointer;pointer-events:all;background-position:center center;background-repeat:no-repeat;-webkit-user-select:none;user-select:none}.resizable-panel-resize-handle.position-right{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M11.0104 0L2 9L11.0104 18L12.4246 16.5874L4.82843 9L12.4246 1.41258L11.0104 0Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');position:absolute;top:calc(50% - 2.4rem);left:-2.1rem;width:2.1rem;height:4.8rem;border-radius
|
|
61
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: ResizablePanelComponent, isStandalone: true, selector: "lib-resizable-panel", inputs: { position: "position", hasDraggableHandle: "hasDraggableHandle", hasDraggableBorder: "hasDraggableBorder", minWidth: "minWidth", maxWidth: "maxWidth", defaultWidth: "defaultWidth", canResize: "canResize" }, host: { listeners: { "window:resize": "handleWindowResize()" } }, ngImport: i0, template: "<div\r\n class=\"resizable-panel-drawer\"\r\n [style.width] = \"drawerWidth | pxsuffix\"\r\n [ngClass]=\"drawerExpanded ? '' : 'hidden'\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n>\r\n <slot></slot>\r\n @if (drawerExpanded) {\r\n @if (hasDraggableBorder) {\r\n <div\r\n xDraggable\r\n class=\"resizable-panel-resize-border\"\r\n (dragging)=\"_onResizeWidth($event)\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n @if (hasDraggableHandle) {\r\n <div\r\n xDraggable\r\n class=\"resizable-panel-resize-handle\"\r\n (dragging)=\"_onResizeWidth($event)\"\r\n (clicked)=\"_toggleDrawer()\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n }\r\n</div>\r\n@if (!drawerExpanded) {\r\n @if (hasDraggableHandle) {\r\n <div\r\n class=\"resizable-panel-resize-handle collapsed\"\r\n (click)=\"_toggleDrawer()\"\r\n (keypress)=\"_toggleDrawer()\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n}\r\n", styles: [".noselect{-webkit-user-select:none;user-select:none}.resizable-panel-drawer.position-left.hidden,.resizable-panel-drawer.position-right.hidden{display:none}.resizable-panel-drawer.position-left{min-width:var(--resizable-panel-min-width, 1rem);height:100%;border:0 solid var(--sidenav-drawer-border-color-enabled);position:absolute;bottom:0;left:0;background-color:var(--sidenav-drawer-background-color-enabled);transition:background-color .7s;border-right:solid thin var(--sidenav-drawer-border-right-color-enabled);width:300px;display:flex;flex-direction:row}.resizable-panel-drawer.position-left:hover{background-color:var(--sidenav-drawer-background-color-hovered)}.resizable-panel-drawer.position-right{min-width:var(--resizable-panel-min-width, 1rem);height:100%;border:0 solid var(--sidenav-drawer-border-color-enabled);position:absolute;bottom:0;right:0;background-color:var(--sidenav-drawer-background-color-enabled);transition:background-color .7s;border-left:solid thin var(--sidenav-drawer-border-right-color-enabled);width:300px;display:flex;flex-direction:row}.resizable-panel-drawer.position-right:hover{background-color:var(--sidenav-drawer-background-color-hovered)}.resizable-panel-resize-border.position-left{right:-5px;position:absolute;height:100%;cursor:col-resize;width:5px;-webkit-user-select:none;user-select:none}.resizable-panel-resize-border.position-right{left:0;position:absolute;height:100%;cursor:col-resize;width:5px;-webkit-user-select:none;user-select:none}.resizable-panel-resize-handle.position-left{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M11.0104 0L2 9L11.0104 18L12.4246 16.5874L4.82843 9L12.4246 1.41258L11.0104 0Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');position:absolute;top:calc(50% - 2.4rem);right:-2.1rem;width:2.1rem;height:4.8rem;border-radius:0 .4rem .4rem 0;background-color:var(--sidenav-resize-handle-left-background-color-enabled);cursor:pointer;pointer-events:all;background-position:center center;background-repeat:no-repeat;-webkit-user-select:none;user-select:none}.resizable-panel-resize-handle.position-right{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M11.0104 0L2 9L11.0104 18L12.4246 16.5874L4.82843 9L12.4246 1.41258L11.0104 0Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');position:absolute;top:calc(50% - 2.4rem);left:-2.1rem;width:2.1rem;height:4.8rem;border-radius:0 .4rem .4rem 0;background-color:var(--sidenav-resize-handle-left-background-color-enabled);cursor:pointer;pointer-events:all;background-position:center center;background-repeat:no-repeat;transform:rotate(180deg);-webkit-user-select:none;user-select:none}.resizable-panel-resize-handle.position-left.collapsed{left:0;border-radius:.4rem 0 0 .4rem;transform:rotate(180deg)}.resizable-panel-resize-handle.position-right.collapsed{left:calc(100% - 2.1rem);border-radius:.4rem 0 0 .4rem;transform:rotate(0)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: XDraggableDirective, selector: "[xDraggable]", outputs: ["dragging", "clicked"] }, { kind: "pipe", type: PxsuffixPipe, name: "pxsuffix" }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
29
62
|
}
|
|
30
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ResizablePanelComponent, decorators: [{
|
|
31
64
|
type: Component,
|
|
32
|
-
args: [{ selector: 'lib-resizable-panel', standalone: true, imports: [CommonModule, XDraggableDirective, PxsuffixPipe], encapsulation: ViewEncapsulation.ShadowDom, template: "<div\r\n class=\"resizable-panel-drawer\"\r\n [style.width] = \"drawerWidth | pxsuffix\"\r\n [ngClass]=\"drawerExpanded ? '' : 'hidden'\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n>\r\n <slot></slot>\r\n @if (drawerExpanded) {\r\n @if (hasDraggableBorder) {\r\n <div\r\n xDraggable\r\n class=\"resizable-panel-resize-border\"\r\n (dragging)=\"_onResizeWidth($event)\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n @if (hasDraggableHandle) {\r\n <div\r\n xDraggable\r\n class=\"resizable-panel-resize-handle\"\r\n (dragging)=\"_onResizeWidth($event)\"\r\n (clicked)=\"_toggleDrawer()\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n }\r\n</div>\r\n@if (!drawerExpanded) {\r\n @if (hasDraggableHandle) {\r\n <div\r\n class=\"resizable-panel-resize-handle collapsed\"\r\n (click)=\"_toggleDrawer()\"\r\n (keypress)=\"_toggleDrawer()\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n}\r\n", styles: [".noselect{-webkit-user-select:none;user-select:none}.resizable-panel-drawer.position-left.hidden,.resizable-panel-drawer.position-right.hidden{display:none}.resizable-panel-drawer.position-left{min-width:var(--resizable-panel-min-width, 1rem);height:100%;border:0 solid var(--sidenav-drawer-border-color-enabled);position:absolute;bottom:0;left:0;background-color:var(--sidenav-drawer-background-color-enabled);transition:background-color .7s;border-right:solid thin var(--sidenav-drawer-border-right-color-enabled);width:300px;display:flex;flex-direction:row}.resizable-panel-drawer.position-left:hover{background-color:var(--sidenav-drawer-background-color-hovered)}.resizable-panel-drawer.position-right{min-width:var(--resizable-panel-min-width, 1rem);height:100%;border:0 solid var(--sidenav-drawer-border-color-enabled);position:absolute;bottom:0;right:0;background-color:var(--sidenav-drawer-background-color-enabled);transition:background-color .7s;border-left:solid thin var(--sidenav-drawer-border-right-color-enabled);width:300px;display:flex;flex-direction:row}.resizable-panel-drawer.position-right:hover{background-color:var(--sidenav-drawer-background-color-hovered)}.resizable-panel-resize-border.position-left{right:-5px;position:absolute;height:100%;cursor:col-resize;width:5px;-webkit-user-select:none;user-select:none}.resizable-panel-resize-border.position-right{left:0;position:absolute;height:100%;cursor:col-resize;width:5px;-webkit-user-select:none;user-select:none}.resizable-panel-resize-handle.position-left{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M11.0104 0L2 9L11.0104 18L12.4246 16.5874L4.82843 9L12.4246 1.41258L11.0104 0Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');position:absolute;top:calc(50% - 2.4rem);right:-2.1rem;width:2.1rem;height:4.8rem;border-radius:0 .4rem .4rem 0;background-color:var(--sidenav-resize-handle-left-background-color-enabled);cursor:pointer;pointer-events:all;background-position:center center;background-repeat:no-repeat;-webkit-user-select:none;user-select:none}.resizable-panel-resize-handle.position-right{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M11.0104 0L2 9L11.0104 18L12.4246 16.5874L4.82843 9L12.4246 1.41258L11.0104 0Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');position:absolute;top:calc(50% - 2.4rem);left:-2.1rem;width:2.1rem;height:4.8rem;border-radius
|
|
65
|
+
args: [{ selector: 'lib-resizable-panel', standalone: true, imports: [CommonModule, XDraggableDirective, PxsuffixPipe], encapsulation: ViewEncapsulation.ShadowDom, template: "<div\r\n class=\"resizable-panel-drawer\"\r\n [style.width] = \"drawerWidth | pxsuffix\"\r\n [ngClass]=\"drawerExpanded ? '' : 'hidden'\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n>\r\n <slot></slot>\r\n @if (drawerExpanded) {\r\n @if (hasDraggableBorder) {\r\n <div\r\n xDraggable\r\n class=\"resizable-panel-resize-border\"\r\n (dragging)=\"_onResizeWidth($event)\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n @if (hasDraggableHandle) {\r\n <div\r\n xDraggable\r\n class=\"resizable-panel-resize-handle\"\r\n (dragging)=\"_onResizeWidth($event)\"\r\n (clicked)=\"_toggleDrawer()\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n }\r\n</div>\r\n@if (!drawerExpanded) {\r\n @if (hasDraggableHandle) {\r\n <div\r\n class=\"resizable-panel-resize-handle collapsed\"\r\n (click)=\"_toggleDrawer()\"\r\n (keypress)=\"_toggleDrawer()\"\r\n [class.position-right]=\"position === 'right'\"\r\n [class.position-left]=\"position === 'left'\"\r\n >\r\n </div>\r\n }\r\n}\r\n", styles: [".noselect{-webkit-user-select:none;user-select:none}.resizable-panel-drawer.position-left.hidden,.resizable-panel-drawer.position-right.hidden{display:none}.resizable-panel-drawer.position-left{min-width:var(--resizable-panel-min-width, 1rem);height:100%;border:0 solid var(--sidenav-drawer-border-color-enabled);position:absolute;bottom:0;left:0;background-color:var(--sidenav-drawer-background-color-enabled);transition:background-color .7s;border-right:solid thin var(--sidenav-drawer-border-right-color-enabled);width:300px;display:flex;flex-direction:row}.resizable-panel-drawer.position-left:hover{background-color:var(--sidenav-drawer-background-color-hovered)}.resizable-panel-drawer.position-right{min-width:var(--resizable-panel-min-width, 1rem);height:100%;border:0 solid var(--sidenav-drawer-border-color-enabled);position:absolute;bottom:0;right:0;background-color:var(--sidenav-drawer-background-color-enabled);transition:background-color .7s;border-left:solid thin var(--sidenav-drawer-border-right-color-enabled);width:300px;display:flex;flex-direction:row}.resizable-panel-drawer.position-right:hover{background-color:var(--sidenav-drawer-background-color-hovered)}.resizable-panel-resize-border.position-left{right:-5px;position:absolute;height:100%;cursor:col-resize;width:5px;-webkit-user-select:none;user-select:none}.resizable-panel-resize-border.position-right{left:0;position:absolute;height:100%;cursor:col-resize;width:5px;-webkit-user-select:none;user-select:none}.resizable-panel-resize-handle.position-left{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M11.0104 0L2 9L11.0104 18L12.4246 16.5874L4.82843 9L12.4246 1.41258L11.0104 0Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');position:absolute;top:calc(50% - 2.4rem);right:-2.1rem;width:2.1rem;height:4.8rem;border-radius:0 .4rem .4rem 0;background-color:var(--sidenav-resize-handle-left-background-color-enabled);cursor:pointer;pointer-events:all;background-position:center center;background-repeat:no-repeat;-webkit-user-select:none;user-select:none}.resizable-panel-resize-handle.position-right{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M11.0104 0L2 9L11.0104 18L12.4246 16.5874L4.82843 9L12.4246 1.41258L11.0104 0Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');position:absolute;top:calc(50% - 2.4rem);left:-2.1rem;width:2.1rem;height:4.8rem;border-radius:0 .4rem .4rem 0;background-color:var(--sidenav-resize-handle-left-background-color-enabled);cursor:pointer;pointer-events:all;background-position:center center;background-repeat:no-repeat;transform:rotate(180deg);-webkit-user-select:none;user-select:none}.resizable-panel-resize-handle.position-left.collapsed{left:0;border-radius:.4rem 0 0 .4rem;transform:rotate(180deg)}.resizable-panel-resize-handle.position-right.collapsed{left:calc(100% - 2.1rem);border-radius:.4rem 0 0 .4rem;transform:rotate(0)}\n"] }]
|
|
33
66
|
}], propDecorators: { position: [{
|
|
34
67
|
type: Input
|
|
35
68
|
}], hasDraggableHandle: [{
|
|
36
69
|
type: Input
|
|
37
70
|
}], hasDraggableBorder: [{
|
|
38
71
|
type: Input
|
|
72
|
+
}], minWidth: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], maxWidth: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], defaultWidth: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], canResize: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], handleWindowResize: [{
|
|
81
|
+
type: HostListener,
|
|
82
|
+
args: ['window:resize']
|
|
39
83
|
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Jlc2l6YWJsZS1wYW5lbC9yZXNpemFibGUtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvcmVzaXphYmxlLXBhbmVsL3Jlc2l6YWJsZS1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBcUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVUvQyxNQUFNLE9BQU8sdUJBQXVCO0lBUnBDO1FBU1csYUFBUSxHQUFxQixPQUFPLENBQUM7UUFDckMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxhQUFRLEdBQXdDLEdBQUcsQ0FBQztRQUVwRCxpQkFBWSxHQUFXLEdBQUcsQ0FBQztRQUNwQywrQ0FBK0M7UUFDdEMsY0FBUyxHQUFzRCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFFbkYsZ0JBQVcsR0FBVyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3hDLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBdUIvQix1QkFBa0IsR0FBRyxHQUFTLEVBQUU7WUFDOUIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDO0tBMkJIO0lBbERDLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDckMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixNQUFNLFFBQVEsR0FBRyxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkYsTUFBTSxRQUFRLEdBQUcsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRXZGLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7UUFDOUIsQ0FBQzthQUFNLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFPRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYTtRQUMxQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFckIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDN0IsUUFBUSxJQUFJLE1BQU0sQ0FBQztRQUNyQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3JDLFFBQVEsSUFBSSxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7WUFFNUIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7K0dBOURVLHVCQUF1QjttR0FBdkIsdUJBQXVCLHlXQ2JwQyw4MENBNENBLDZqR0RwQ1ksWUFBWSw2SEFBRSxtQkFBbUIsc0ZBQUUsWUFBWTs7NEZBSzlDLHVCQUF1QjtrQkFSbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxpQkFHM0MsaUJBQWlCLENBQUMsU0FBUzs4QkFHakMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBMEJOLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWERyYWdnYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMveC1kcmFnZ2FibGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUHhzdWZmaXhQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvcHhzdWZmaXgucGlwZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1yZXNpemFibGUtcGFuZWwnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgWERyYWdnYWJsZURpcmVjdGl2ZSwgUHhzdWZmaXhQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC5sZXNzJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb20sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXNpemFibGVQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBwb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCc7XHJcbiAgQElucHV0KCkgaGFzRHJhZ2dhYmxlSGFuZGxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGFzRHJhZ2dhYmxlQm9yZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbWluV2lkdGg6IG51bWJlciB8ICgoKSA9PiBudW1iZXIpIHwgdW5kZWZpbmVkID0gMzUwO1xyXG4gIEBJbnB1dCgpIG1heFdpZHRoOiBudW1iZXIgfCAoKCkgPT4gbnVtYmVyKSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBkZWZhdWx0V2lkdGg6IG51bWJlciA9IDM1MDtcclxuICAvLyBGdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgcmVzaXppbmcgaXMgYWxsb3dlZFxyXG4gIEBJbnB1dCgpIGNhblJlc2l6ZTogKGN1cnJlbnRXaWR0aDogbnVtYmVyLCBkZWx0YVg6IG51bWJlcikgPT4gYm9vbGVhbiA9ICgpID0+IHRydWU7XHJcblxyXG4gIGRyYXdlcldpZHRoOiBudW1iZXIgPSB0aGlzLmRlZmF1bHRXaWR0aDtcclxuICBkcmF3ZXJFeHBhbmRlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kcmF3ZXJXaWR0aCA9IHRoaXMuZGVmYXVsdFdpZHRoO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuaGFuZGxlV2luZG93UmVzaXplKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuaGFuZGxlV2luZG93UmVzaXplKTtcclxuICB9XHJcblxyXG4gIGFwcGx5V2lkdGhDb25zdHJhaW50cygpIHtcclxuICAgIGNvbnN0IG1pbldpZHRoID0gdHlwZW9mIHRoaXMubWluV2lkdGggPT09ICdmdW5jdGlvbicgPyB0aGlzLm1pbldpZHRoKCkgOiB0aGlzLm1pbldpZHRoO1xyXG4gICAgY29uc3QgbWF4V2lkdGggPSB0eXBlb2YgdGhpcy5tYXhXaWR0aCA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMubWF4V2lkdGgoKSA6IHRoaXMubWF4V2lkdGg7XHJcblxyXG4gICAgaWYgKG1pbldpZHRoICYmIHRoaXMuZHJhd2VyV2lkdGggPCBtaW5XaWR0aCkge1xyXG4gICAgICB0aGlzLmRyYXdlcldpZHRoID0gbWluV2lkdGg7XHJcbiAgICB9IGVsc2UgaWYgKG1heFdpZHRoICYmIHRoaXMuZHJhd2VyV2lkdGggPiBtYXhXaWR0aCkge1xyXG4gICAgICB0aGlzLmRyYXdlcldpZHRoID0gbWF4V2lkdGg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICBoYW5kbGVXaW5kb3dSZXNpemUgPSAoKTogdm9pZCA9PiB7XHJcbiAgICB0aGlzLmFwcGx5V2lkdGhDb25zdHJhaW50cygpO1xyXG4gIH07XHJcblxyXG4gIF90b2dnbGVEcmF3ZXIoKSB7XHJcbiAgICB0aGlzLmRyYXdlckV4cGFuZGVkID0gIXRoaXMuZHJhd2VyRXhwYW5kZWQ7XHJcbiAgICBpZiAoIXRoaXMuZHJhd2VyRXhwYW5kZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwbHlXaWR0aENvbnN0cmFpbnRzKCk7XHJcbiAgfVxyXG5cclxuICBfb25SZXNpemVXaWR0aChldmVudDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBjb25zdCBkZWx0YVggPSBldmVudDtcclxuXHJcbiAgICBsZXQgbmV3V2lkdGggPSB0aGlzLmRyYXdlcldpZHRoO1xyXG4gICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICBuZXdXaWR0aCArPSBkZWx0YVg7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucG9zaXRpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgbmV3V2lkdGggLT0gZGVsdGFYO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNhblJlc2l6ZT8uKHRoaXMuZHJhd2VyV2lkdGgsIGRlbHRhWCkgIT09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMuZHJhd2VyV2lkdGggPSBuZXdXaWR0aDtcclxuXHJcbiAgICAgIHRoaXMuYXBwbHlXaWR0aENvbnN0cmFpbnRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cInJlc2l6YWJsZS1wYW5lbC1kcmF3ZXJcIlxyXG4gIFtzdHlsZS53aWR0aF0gPSBcImRyYXdlcldpZHRoIHwgcHhzdWZmaXhcIlxyXG4gIFtuZ0NsYXNzXT1cImRyYXdlckV4cGFuZGVkID8gJycgOiAnaGlkZGVuJ1wiXHJcbiAgW2NsYXNzLnBvc2l0aW9uLXJpZ2h0XT1cInBvc2l0aW9uID09PSAncmlnaHQnXCJcclxuICBbY2xhc3MucG9zaXRpb24tbGVmdF09XCJwb3NpdGlvbiA9PT0gJ2xlZnQnXCJcclxuPlxyXG4gIDxzbG90Pjwvc2xvdD5cclxuICBAaWYgKGRyYXdlckV4cGFuZGVkKSB7XHJcbiAgICBAaWYgKGhhc0RyYWdnYWJsZUJvcmRlcikge1xyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgeERyYWdnYWJsZVxyXG4gICAgICAgIGNsYXNzPVwicmVzaXphYmxlLXBhbmVsLXJlc2l6ZS1ib3JkZXJcIlxyXG4gICAgICAgIChkcmFnZ2luZyk9XCJfb25SZXNpemVXaWR0aCgkZXZlbnQpXCJcclxuICAgICAgICBbY2xhc3MucG9zaXRpb24tcmlnaHRdPVwicG9zaXRpb24gPT09ICdyaWdodCdcIlxyXG4gICAgICAgIFtjbGFzcy5wb3NpdGlvbi1sZWZ0XT1cInBvc2l0aW9uID09PSAnbGVmdCdcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgQGlmIChoYXNEcmFnZ2FibGVIYW5kbGUpIHtcclxuICAgICAgPGRpdlxyXG4gICAgICAgIHhEcmFnZ2FibGVcclxuICAgICAgICBjbGFzcz1cInJlc2l6YWJsZS1wYW5lbC1yZXNpemUtaGFuZGxlXCJcclxuICAgICAgICAoZHJhZ2dpbmcpPVwiX29uUmVzaXplV2lkdGgoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNsaWNrZWQpPVwiX3RvZ2dsZURyYXdlcigpXCJcclxuICAgICAgICBbY2xhc3MucG9zaXRpb24tcmlnaHRdPVwicG9zaXRpb24gPT09ICdyaWdodCdcIlxyXG4gICAgICAgIFtjbGFzcy5wb3NpdGlvbi1sZWZ0XT1cInBvc2l0aW9uID09PSAnbGVmdCdcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIH1cclxuPC9kaXY+XHJcbkBpZiAoIWRyYXdlckV4cGFuZGVkKSB7XHJcbiAgQGlmIChoYXNEcmFnZ2FibGVIYW5kbGUpIHtcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJyZXNpemFibGUtcGFuZWwtcmVzaXplLWhhbmRsZSBjb2xsYXBzZWRcIlxyXG4gICAgICAoY2xpY2spPVwiX3RvZ2dsZURyYXdlcigpXCJcclxuICAgICAgKGtleXByZXNzKT1cIl90b2dnbGVEcmF3ZXIoKVwiXHJcbiAgICAgIFtjbGFzcy5wb3NpdGlvbi1yaWdodF09XCJwb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiXHJcbiAgICAgIFtjbGFzcy5wb3NpdGlvbi1sZWZ0XT1cInBvc2l0aW9uID09PSAnbGVmdCdcIlxyXG4gICAgPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DecimalPipe } from '@angular/common';
|
|
2
|
+
import { Pipe } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
const MB_SIZE = 1000;
|
|
5
|
+
export const BitConverterSize = {
|
|
6
|
+
KB: 'kB',
|
|
7
|
+
GB: 'gib',
|
|
8
|
+
MB: 'mb'
|
|
9
|
+
// more..
|
|
10
|
+
};
|
|
11
|
+
export class BitConverterPipe extends DecimalPipe {
|
|
12
|
+
transform(value, sizeToConvert = BitConverterSize.KB, digitsInfo = '1.2-2', base = MB_SIZE) {
|
|
13
|
+
if (!this.isNumber(value)) {
|
|
14
|
+
throw new Error('[BitConverterPipe]: value is not a number');
|
|
15
|
+
}
|
|
16
|
+
const size = this.getSizeFromBites(value, sizeToConvert, base);
|
|
17
|
+
let decimalValue = super.transform(size, digitsInfo);
|
|
18
|
+
decimalValue ??= value.toString();
|
|
19
|
+
return `(${decimalValue} ${sizeToConvert})`;
|
|
20
|
+
}
|
|
21
|
+
getSizeFromBites(value, size, base) {
|
|
22
|
+
switch (size) {
|
|
23
|
+
case 'kB':
|
|
24
|
+
return value / base;
|
|
25
|
+
case 'mb':
|
|
26
|
+
return value / (base * base);
|
|
27
|
+
case 'gib':
|
|
28
|
+
return value / (base * base * base);
|
|
29
|
+
default:
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
isNumber(value) {
|
|
34
|
+
return typeof value === 'number' && !isNaN(value);
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BitConverterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
37
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: BitConverterPipe, isStandalone: true, name: "bitConverter" }); }
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BitConverterPipe, decorators: [{
|
|
40
|
+
type: Pipe,
|
|
41
|
+
args: [{
|
|
42
|
+
name: 'bitConverter',
|
|
43
|
+
standalone: true
|
|
44
|
+
}]
|
|
45
|
+
}] });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWNvbnZlcnRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL3BpcGVzL2JpdC1jb252ZXJ0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXBELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztBQUVyQixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxLQUFLO0lBQ1QsRUFBRSxFQUFFLElBQUk7SUFDUixTQUFTO0NBQ0gsQ0FBQztBQVFYLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBSXBDLFNBQVMsQ0FBQyxLQUFjLEVBQUUsZ0JBQTBCLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxhQUFxQixPQUFPLEVBQUUsT0FBZSxPQUFPO1FBQ2xJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvRCxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNyRCxZQUFZLEtBQUssS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWxDLE9BQU8sSUFBSSxZQUFZLElBQUksYUFBYSxHQUFHLENBQUM7SUFDaEQsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWEsRUFBRSxJQUFjLEVBQUUsSUFBWTtRQUNoRSxRQUFPLElBQUksRUFBRSxDQUFDO1lBQ1YsS0FBSyxJQUFJO2dCQUNMLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQztZQUN4QixLQUFLLElBQUk7Z0JBQ0wsT0FBTyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDakMsS0FBSyxLQUFLO2dCQUNOLE9BQU8sS0FBSyxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN4QztnQkFDSSxPQUFPLEtBQUssQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFjO1FBQzNCLE9BQVEsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBOUJRLGdCQUFnQjs2R0FBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUo1QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxjQUFjO29CQUNwQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmNvbnN0IE1CX1NJWkUgPSAxMDAwO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJpdENvbnZlcnRlclNpemUgPSB7XHJcbiAgICBLQjogJ2tCJyxcclxuICAgIEdCOiAnZ2liJyxcclxuICAgIE1COiAnbWInXHJcbiAgICAvLyBtb3JlLi5cclxufSBhcyBjb25zdDtcclxuXHJcbnR5cGUgU2l6ZVR5cGUgPSB0eXBlb2YgQml0Q29udmVydGVyU2l6ZVsnR0InIHwgJ0tCJyB8ICdNQiddO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdiaXRDb252ZXJ0ZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEJpdENvbnZlcnRlclBpcGUgZXh0ZW5kcyBEZWNpbWFsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgb3ZlcnJpZGUgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGRpZ2l0c0luZm8/OiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZyk6IHN0cmluZyB8IG51bGw7XHJcbiAgICBvdmVycmlkZSB0cmFuc2Zvcm0odmFsdWU6IG51bGwgfCB1bmRlZmluZWQsIGRpZ2l0c0luZm8/OiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZyk6IG51bGw7XHJcbiAgICBvdmVycmlkZSB0cmFuc2Zvcm0odmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIGRpZ2l0c0luZm8/OiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZyk6IHN0cmluZyB8IG51bGw7XHJcbiAgICBvdmVycmlkZSB0cmFuc2Zvcm0odmFsdWU6IHVua25vd24sIHNpemVUb0NvbnZlcnQ6IFNpemVUeXBlID0gQml0Q29udmVydGVyU2l6ZS5LQiwgZGlnaXRzSW5mbzogc3RyaW5nID0gJzEuMi0yJywgYmFzZTogbnVtYmVyID0gTUJfU0laRSk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmICghdGhpcy5pc051bWJlcih2YWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdbQml0Q29udmVydGVyUGlwZV06IHZhbHVlIGlzIG5vdCBhIG51bWJlcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5nZXRTaXplRnJvbUJpdGVzKHZhbHVlLCBzaXplVG9Db252ZXJ0LCBiYXNlKTtcclxuICAgICAgICBsZXQgZGVjaW1hbFZhbHVlID0gc3VwZXIudHJhbnNmb3JtKHNpemUsIGRpZ2l0c0luZm8pO1xyXG4gICAgICAgIGRlY2ltYWxWYWx1ZSA/Pz0gdmFsdWUudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAoJHtkZWNpbWFsVmFsdWV9ICR7c2l6ZVRvQ29udmVydH0pYDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFNpemVGcm9tQml0ZXModmFsdWU6IG51bWJlciwgc2l6ZTogU2l6ZVR5cGUsIGJhc2U6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgc3dpdGNoKHNpemUpIHtcclxuICAgICAgICAgICAgY2FzZSAna0InOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlIC8gYmFzZTtcclxuICAgICAgICAgICAgY2FzZSAnbWInOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlIC8gKGJhc2UgKiBiYXNlKTtcclxuICAgICAgICAgICAgY2FzZSAnZ2liJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSAvIChiYXNlICogYmFzZSAqIGJhc2UpO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzTnVtYmVyKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { RoundPipe } from './round.pipe';
|
|
3
|
+
import moment from 'moment';
|
|
4
|
+
import 'moment/min/locales';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class GetAttributeValueAsString {
|
|
7
|
+
constructor() {
|
|
8
|
+
const locale = window.navigator.language;
|
|
9
|
+
moment.locale(locale);
|
|
10
|
+
}
|
|
11
|
+
_transformDoubleToString(value) {
|
|
12
|
+
return new RoundPipe().transform(value.value, value.decimal || 2);
|
|
13
|
+
}
|
|
14
|
+
_transformDoubleEnumerationToString(value) {
|
|
15
|
+
if (!value.enumdefinition) {
|
|
16
|
+
return '';
|
|
17
|
+
}
|
|
18
|
+
const _retval = value.enumdefinition[Number(value.value)];
|
|
19
|
+
if (_retval) {
|
|
20
|
+
return `${_retval}`;
|
|
21
|
+
}
|
|
22
|
+
return '';
|
|
23
|
+
}
|
|
24
|
+
_transformDatetimeToString(value) {
|
|
25
|
+
const localeDate = moment(value.value).format('L');
|
|
26
|
+
if (localeDate) {
|
|
27
|
+
return localeDate;
|
|
28
|
+
}
|
|
29
|
+
return `${value.value}`;
|
|
30
|
+
}
|
|
31
|
+
_transformGUIDToString(value) {
|
|
32
|
+
return `${value.value}`;
|
|
33
|
+
}
|
|
34
|
+
_transformEnumerationToString(value) {
|
|
35
|
+
if (value.control && /^Enumeration$/i.test(value.control)) {
|
|
36
|
+
if (!value.enumdefinition) {
|
|
37
|
+
return '';
|
|
38
|
+
}
|
|
39
|
+
const _retVal = value.enumdefinition[Number(value.value)];
|
|
40
|
+
if (_retVal) {
|
|
41
|
+
return `${_retVal}`;
|
|
42
|
+
}
|
|
43
|
+
return '';
|
|
44
|
+
}
|
|
45
|
+
return `${value.value}`;
|
|
46
|
+
}
|
|
47
|
+
_transformGUIDEnumerationToString(value) {
|
|
48
|
+
return this._transformEnumerationToString(value);
|
|
49
|
+
}
|
|
50
|
+
_transformIntToString(value) {
|
|
51
|
+
return `${value.value}`;
|
|
52
|
+
}
|
|
53
|
+
_transformIntEnumerationToString(value) {
|
|
54
|
+
return this._transformEnumerationToString(value);
|
|
55
|
+
}
|
|
56
|
+
_transformString(value) {
|
|
57
|
+
return `${value.value}`;
|
|
58
|
+
}
|
|
59
|
+
_transformStringEnumeration(value) {
|
|
60
|
+
return this._transformEnumerationToString(value);
|
|
61
|
+
}
|
|
62
|
+
_transformStringCombobox(value) {
|
|
63
|
+
if (value.control && /^Combobox$/i.test(value.control)) {
|
|
64
|
+
return `${value.value}`;
|
|
65
|
+
}
|
|
66
|
+
return `${value.value}`;
|
|
67
|
+
}
|
|
68
|
+
_transformBooleanToString(value) {
|
|
69
|
+
if (value.value === '1'
|
|
70
|
+
|| /^true$/i.test(value.value)) {
|
|
71
|
+
return "True";
|
|
72
|
+
}
|
|
73
|
+
return "False";
|
|
74
|
+
}
|
|
75
|
+
transform(value) {
|
|
76
|
+
const _value = value.value;
|
|
77
|
+
if (this.isEmpty(_value)) {
|
|
78
|
+
return '';
|
|
79
|
+
}
|
|
80
|
+
if (this.isDouble(value)) {
|
|
81
|
+
return this._transformDoubleToString(value);
|
|
82
|
+
}
|
|
83
|
+
if (this.isDoubleEnumeration(value)) {
|
|
84
|
+
return this._transformDoubleEnumerationToString(value);
|
|
85
|
+
}
|
|
86
|
+
if (this.isDatetime(value)) {
|
|
87
|
+
return this._transformDatetimeToString(value);
|
|
88
|
+
}
|
|
89
|
+
if (this.isGUID(value)) {
|
|
90
|
+
return this._transformGUIDToString(value);
|
|
91
|
+
}
|
|
92
|
+
if (this.isGUIDEnumeration(value)) {
|
|
93
|
+
return this._transformGUIDEnumerationToString(value);
|
|
94
|
+
}
|
|
95
|
+
if (this.isInt(value)) {
|
|
96
|
+
return this._transformIntToString(value);
|
|
97
|
+
}
|
|
98
|
+
if (this.isIntEnumeration(value)) {
|
|
99
|
+
return this._transformIntEnumerationToString(value);
|
|
100
|
+
}
|
|
101
|
+
if (this.isString(value)) {
|
|
102
|
+
return this._transformString(value);
|
|
103
|
+
}
|
|
104
|
+
if (this.isStringEnumeration(value)) {
|
|
105
|
+
return this._transformStringEnumeration(value);
|
|
106
|
+
}
|
|
107
|
+
if (this.isStringCombobox(value)) {
|
|
108
|
+
return this._transformStringCombobox(value);
|
|
109
|
+
}
|
|
110
|
+
if (this.isBooleanCheckbox(value)) {
|
|
111
|
+
return this._transformBooleanToString(value);
|
|
112
|
+
}
|
|
113
|
+
if (this.isBooleanTextbox(value)) {
|
|
114
|
+
return this._transformBooleanToString(value);
|
|
115
|
+
}
|
|
116
|
+
return value.value;
|
|
117
|
+
}
|
|
118
|
+
isEmpty(value) {
|
|
119
|
+
return value === undefined || value === null || value === '';
|
|
120
|
+
}
|
|
121
|
+
isDouble(value) {
|
|
122
|
+
return typeof value.type === 'string' && /^double$/i.test(value.type) && !value.control;
|
|
123
|
+
}
|
|
124
|
+
isDoubleEnumeration(value) {
|
|
125
|
+
return typeof value.type === 'string' && /^double$/i.test(value.type)
|
|
126
|
+
&& typeof value.control === 'string' && /^enumeration$/i.test(value.control);
|
|
127
|
+
}
|
|
128
|
+
isDatetime(value) {
|
|
129
|
+
return typeof value.type === 'string' && /^datetime$/i.test(value.type) && !value.control;
|
|
130
|
+
}
|
|
131
|
+
isGUID(value) {
|
|
132
|
+
return typeof value.type === 'string' && /^guid$/i.test(value.type) && !value.control;
|
|
133
|
+
}
|
|
134
|
+
isGUIDEnumeration(value) {
|
|
135
|
+
return typeof value.type === 'string' && /^guid$/i.test(value.type)
|
|
136
|
+
&& typeof value.control === 'string' && /^enumeration$/i.test(value.control);
|
|
137
|
+
}
|
|
138
|
+
isInt(value) {
|
|
139
|
+
return typeof value.type === 'string' && /^int(32)?$/i.test(value.type) && !value.control;
|
|
140
|
+
}
|
|
141
|
+
isIntEnumeration(value) {
|
|
142
|
+
return typeof value.type === 'string' && /^int(32)?$/i.test(value.type)
|
|
143
|
+
&& typeof value.control === 'string' && /^enumeration$/i.test(value.control);
|
|
144
|
+
}
|
|
145
|
+
isString(value) {
|
|
146
|
+
return typeof value.type === 'string' && /^string$/i.test(value.type) && !value.control;
|
|
147
|
+
}
|
|
148
|
+
isStringEnumeration(value) {
|
|
149
|
+
return typeof value.type === 'string' && /^string$/i.test(value.type)
|
|
150
|
+
&& typeof value.control === 'string' && /^enumeration$/i.test(value.control);
|
|
151
|
+
}
|
|
152
|
+
isStringCombobox(value) {
|
|
153
|
+
return typeof value.type === 'string' && /^string$/i.test(value.type)
|
|
154
|
+
&& typeof value.control === 'string' && /^combobox$/i.test(value.control);
|
|
155
|
+
}
|
|
156
|
+
isBooleanCheckbox(value) {
|
|
157
|
+
return typeof value.type === 'string' && /^boolean$/i.test(value.type)
|
|
158
|
+
&& typeof value.control === 'string' && /^checkbox$/i.test(value.control);
|
|
159
|
+
}
|
|
160
|
+
isBooleanTextbox(value) {
|
|
161
|
+
return typeof value.type === 'string' && /^boolean$/i.test(value.type) && !value.control;
|
|
162
|
+
}
|
|
163
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: GetAttributeValueAsString, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
164
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: GetAttributeValueAsString, isStandalone: true, name: "getAttributeValueAsString" }); }
|
|
165
|
+
}
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: GetAttributeValueAsString, decorators: [{
|
|
167
|
+
type: Pipe,
|
|
168
|
+
args: [{
|
|
169
|
+
name: 'getAttributeValueAsString',
|
|
170
|
+
standalone: true
|
|
171
|
+
}]
|
|
172
|
+
}], ctorParameters: () => [] });
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWF0dHJpYnV0ZS12YWx1ZS1hcy1zdHJpbmcucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9waXBlcy9nZXQtYXR0cmlidXRlLXZhbHVlLWFzLXN0cmluZy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sb0JBQW9CLENBQUM7O0FBTzVCLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEM7UUFDRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxLQUFzQjtRQUM3QyxPQUFPLElBQUksU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsbUNBQW1DLENBQUMsS0FBc0I7UUFDeEQsSUFBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBSSxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFHLE9BQU8sRUFBRSxDQUFDO1lBQ1gsT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxLQUFzQjtRQUMvQyxNQUFNLFVBQVUsR0FBVyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMxRCxJQUFHLFVBQVUsRUFBRSxDQUFDO1lBQ2QsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUNELE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQXNCO1FBQzNDLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELDZCQUE2QixDQUFDLEtBQXNCO1FBQ2xELElBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDekQsSUFBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDMUQsSUFBRyxPQUFPLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDdEIsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGlDQUFpQyxDQUFDLEtBQXNCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFzQjtRQUMxQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQ0FBZ0MsQ0FBQyxLQUFzQjtRQUNyRCxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBc0I7UUFDckMsT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsMkJBQTJCLENBQUMsS0FBc0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQXNCO1FBQzdDLElBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3RELE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELHlCQUF5QixDQUFDLEtBQXNCO1FBQzlDLElBQUcsS0FBSyxDQUFDLEtBQUssS0FBSyxHQUFHO2VBQ2pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBc0I7UUFDOUIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLGlDQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWdDO1FBQzlDLE9BQU8sS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFzQjtRQUNyQyxPQUFPLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQzFGLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFzQjtRQUNoRCxPQUFPLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2VBQ2hFLE9BQU8sS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQXNCO1FBQ3ZDLE9BQU8sT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDNUYsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFzQjtRQUNuQyxPQUFPLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQ3hGLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFzQjtRQUM5QyxPQUFPLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2VBQzlELE9BQU8sS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sS0FBSyxDQUFDLEtBQXNCO1FBQ2xDLE9BQU8sT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDNUYsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQXNCO1FBQzdDLE9BQU8sT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7ZUFDbEUsT0FBTyxLQUFLLENBQUMsT0FBTyxLQUFLLFFBQVEsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBc0I7UUFDckMsT0FBTyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUMxRixDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBc0I7UUFDaEQsT0FBTyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztlQUNoRSxPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUSxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQXNCO1FBQzdDLE9BQU8sT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7ZUFDaEUsT0FBTyxLQUFLLENBQUMsT0FBTyxLQUFLLFFBQVEsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBc0I7UUFDOUMsT0FBTyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztlQUNqRSxPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUSxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFzQjtRQUM3QyxPQUFPLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQzNGLENBQUM7K0dBcE1VLHlCQUF5Qjs2R0FBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQUpyQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSwyQkFBMkI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JqZWN0QXR0cmlidXRlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9vYmplY3QtcHJvcGVydGllcy9vYmplY3QtcHJvcGVydGllcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBSb3VuZFBpcGUgfSBmcm9tICcuL3JvdW5kLnBpcGUnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCAnbW9tZW50L21pbi9sb2NhbGVzJztcclxuXHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2dldEF0dHJpYnV0ZVZhbHVlQXNTdHJpbmcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEdldEF0dHJpYnV0ZVZhbHVlQXNTdHJpbmcgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBjb25zdCBsb2NhbGUgPSB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlO1xyXG4gICAgbW9tZW50LmxvY2FsZShsb2NhbGUpO1xyXG4gIH1cclxuXHJcbiAgX3RyYW5zZm9ybURvdWJsZVRvU3RyaW5nKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIG5ldyBSb3VuZFBpcGUoKS50cmFuc2Zvcm0odmFsdWUudmFsdWUsIHZhbHVlLmRlY2ltYWwgfHwgMik7XHJcbiAgfVxyXG5cclxuICBfdHJhbnNmb3JtRG91YmxlRW51bWVyYXRpb25Ub1N0cmluZyh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIGlmKCF2YWx1ZS5lbnVtZGVmaW5pdGlvbikge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICBjb25zdCBfcmV0dmFsID0gIHZhbHVlLmVudW1kZWZpbml0aW9uW051bWJlcih2YWx1ZS52YWx1ZSldO1xyXG4gICAgaWYoX3JldHZhbCkge1xyXG4gICAgICByZXR1cm4gYCR7X3JldHZhbH1gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgX3RyYW5zZm9ybURhdGV0aW1lVG9TdHJpbmcodmFsdWU6IE9iamVjdEF0dHJpYnV0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBsb2NhbGVEYXRlOiBzdHJpbmcgPSBtb21lbnQodmFsdWUudmFsdWUpLmZvcm1hdCgnTCcpXHJcbiAgICBpZihsb2NhbGVEYXRlKSB7XHJcbiAgICAgIHJldHVybiBsb2NhbGVEYXRlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3ZhbHVlLnZhbHVlfWA7XHJcbiAgfVxyXG5cclxuICBfdHJhbnNmb3JtR1VJRFRvU3RyaW5nKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3ZhbHVlLnZhbHVlfWA7XHJcbiAgfVxyXG5cclxuICBfdHJhbnNmb3JtRW51bWVyYXRpb25Ub1N0cmluZyh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIGlmKHZhbHVlLmNvbnRyb2wgJiYgL15FbnVtZXJhdGlvbiQvaS50ZXN0KHZhbHVlLmNvbnRyb2wpKSB7XHJcbiAgICAgIGlmKCF2YWx1ZS5lbnVtZGVmaW5pdGlvbikge1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBfcmV0VmFsID0gdmFsdWUuZW51bWRlZmluaXRpb25bTnVtYmVyKHZhbHVlLnZhbHVlKV07XHJcbiAgICAgIGlmKF9yZXRWYWwpIHtcclxuICAgICAgICByZXR1cm4gYCR7X3JldFZhbH1gO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt2YWx1ZS52YWx1ZX1gO1xyXG4gIH1cclxuXHJcbiAgX3RyYW5zZm9ybUdVSURFbnVtZXJhdGlvblRvU3RyaW5nKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybUVudW1lcmF0aW9uVG9TdHJpbmcodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgX3RyYW5zZm9ybUludFRvU3RyaW5nKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3ZhbHVlLnZhbHVlfWA7XHJcbiAgfVxyXG5cclxuICBfdHJhbnNmb3JtSW50RW51bWVyYXRpb25Ub1N0cmluZyh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1FbnVtZXJhdGlvblRvU3RyaW5nKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIF90cmFuc2Zvcm1TdHJpbmcodmFsdWU6IE9iamVjdEF0dHJpYnV0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dmFsdWUudmFsdWV9YDtcclxuICB9XHJcblxyXG4gIF90cmFuc2Zvcm1TdHJpbmdFbnVtZXJhdGlvbih2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1FbnVtZXJhdGlvblRvU3RyaW5nKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIF90cmFuc2Zvcm1TdHJpbmdDb21ib2JveCh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIGlmKHZhbHVlLmNvbnRyb2wgJiYgL15Db21ib2JveCQvaS50ZXN0KHZhbHVlLmNvbnRyb2wpKSB7XHJcbiAgICAgIHJldHVybiBgJHt2YWx1ZS52YWx1ZX1gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3ZhbHVlLnZhbHVlfWA7XHJcbiAgfVxyXG5cclxuICBfdHJhbnNmb3JtQm9vbGVhblRvU3RyaW5nKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgaWYodmFsdWUudmFsdWUgPT09ICcxJ1xyXG4gICAgICB8fCAvXnRydWUkL2kudGVzdCh2YWx1ZS52YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gXCJUcnVlXCI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIFwiRmFsc2VcIjtcclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IF92YWx1ZSA9IHZhbHVlLnZhbHVlO1xyXG4gICAgaWYgKHRoaXMuaXNFbXB0eShfdmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0RvdWJsZSh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybURvdWJsZVRvU3RyaW5nKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0RvdWJsZUVudW1lcmF0aW9uKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNmb3JtRG91YmxlRW51bWVyYXRpb25Ub1N0cmluZyh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNEYXRldGltZSh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybURhdGV0aW1lVG9TdHJpbmcodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzR1VJRCh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybUdVSURUb1N0cmluZyh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNHVUlERW51bWVyYXRpb24odmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1HVUlERW51bWVyYXRpb25Ub1N0cmluZyh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNJbnQodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1JbnRUb1N0cmluZyh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNJbnRFbnVtZXJhdGlvbih2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybUludEVudW1lcmF0aW9uVG9TdHJpbmcodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNmb3JtU3RyaW5nKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1N0cmluZ0VudW1lcmF0aW9uKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNmb3JtU3RyaW5nRW51bWVyYXRpb24odmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nQ29tYm9ib3godmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1TdHJpbmdDb21ib2JveCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNCb29sZWFuQ2hlY2tib3godmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1Cb29sZWFuVG9TdHJpbmcodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzQm9vbGVhblRleHRib3godmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1Cb29sZWFuVG9TdHJpbmcodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFbXB0eSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0RvdWJsZSh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnICYmIC9eZG91YmxlJC9pLnRlc3QodmFsdWUudHlwZSkgJiYgIXZhbHVlLmNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRG91YmxlRW51bWVyYXRpb24odmFsdWU6IE9iamVjdEF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZS50eXBlID09PSAnc3RyaW5nJyAmJiAvXmRvdWJsZSQvaS50ZXN0KHZhbHVlLnR5cGUpXHJcbiAgICAgICYmIHR5cGVvZiB2YWx1ZS5jb250cm9sID09PSAnc3RyaW5nJyAmJiAvXmVudW1lcmF0aW9uJC9pLnRlc3QodmFsdWUuY29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRGF0ZXRpbWUodmFsdWU6IE9iamVjdEF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZS50eXBlID09PSAnc3RyaW5nJyAmJiAvXmRhdGV0aW1lJC9pLnRlc3QodmFsdWUudHlwZSkgJiYgIXZhbHVlLmNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzR1VJRCh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnICYmIC9eZ3VpZCQvaS50ZXN0KHZhbHVlLnR5cGUpICYmICF2YWx1ZS5jb250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0dVSURFbnVtZXJhdGlvbih2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnICYmIC9eZ3VpZCQvaS50ZXN0KHZhbHVlLnR5cGUpXHJcbiAgICAgICYmIHR5cGVvZiB2YWx1ZS5jb250cm9sID09PSAnc3RyaW5nJyAmJiAvXmVudW1lcmF0aW9uJC9pLnRlc3QodmFsdWUuY29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzSW50KHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycgJiYgL15pbnQoMzIpPyQvaS50ZXN0KHZhbHVlLnR5cGUpICYmICF2YWx1ZS5jb250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0ludEVudW1lcmF0aW9uKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycgJiYgL15pbnQoMzIpPyQvaS50ZXN0KHZhbHVlLnR5cGUpXHJcbiAgICAgICYmIHR5cGVvZiB2YWx1ZS5jb250cm9sID09PSAnc3RyaW5nJyAmJiAvXmVudW1lcmF0aW9uJC9pLnRlc3QodmFsdWUuY29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU3RyaW5nKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycgJiYgL15zdHJpbmckL2kudGVzdCh2YWx1ZS50eXBlKSAmJiAhdmFsdWUuY29udHJvbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNTdHJpbmdFbnVtZXJhdGlvbih2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnICYmIC9ec3RyaW5nJC9pLnRlc3QodmFsdWUudHlwZSlcclxuICAgICAgJiYgdHlwZW9mIHZhbHVlLmNvbnRyb2wgPT09ICdzdHJpbmcnICYmIC9eZW51bWVyYXRpb24kL2kudGVzdCh2YWx1ZS5jb250cm9sKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNTdHJpbmdDb21ib2JveCh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnICYmIC9ec3RyaW5nJC9pLnRlc3QodmFsdWUudHlwZSlcclxuICAgICAgJiYgdHlwZW9mIHZhbHVlLmNvbnRyb2wgPT09ICdzdHJpbmcnICYmIC9eY29tYm9ib3gkL2kudGVzdCh2YWx1ZS5jb250cm9sKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNCb29sZWFuQ2hlY2tib3godmFsdWU6IE9iamVjdEF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZS50eXBlID09PSAnc3RyaW5nJyAmJiAvXmJvb2xlYW4kL2kudGVzdCh2YWx1ZS50eXBlKVxyXG4gICAgICAmJiB0eXBlb2YgdmFsdWUuY29udHJvbCA9PT0gJ3N0cmluZycgJiYgL15jaGVja2JveCQvaS50ZXN0KHZhbHVlLmNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0Jvb2xlYW5UZXh0Ym94KHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycgJiYgL15ib29sZWFuJC9pLnRlc3QodmFsdWUudHlwZSkgJiYgIXZhbHVlLmNvbnRyb2w7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { RoundPipe } from './round.pipe';
|
|
3
|
+
import moment from 'moment';
|
|
4
|
+
import 'moment/min/locales';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class GetAttributeValue {
|
|
7
|
+
constructor() {
|
|
8
|
+
const locale = window.navigator.language;
|
|
9
|
+
moment.locale(locale);
|
|
10
|
+
}
|
|
11
|
+
_transformDouble(value) {
|
|
12
|
+
return new RoundPipe().transform(value.value, value.decimal ?? 2);
|
|
13
|
+
}
|
|
14
|
+
_transformDoubleEnumeration(value) {
|
|
15
|
+
return this._transformDouble(value);
|
|
16
|
+
}
|
|
17
|
+
_transformDatetime(value) {
|
|
18
|
+
return value.value;
|
|
19
|
+
}
|
|
20
|
+
_transformGUID(value) {
|
|
21
|
+
return value.value;
|
|
22
|
+
}
|
|
23
|
+
_transformGUIDEnumeration(value) {
|
|
24
|
+
return `${value.value}`;
|
|
25
|
+
}
|
|
26
|
+
_transformInt(value) {
|
|
27
|
+
return value.value;
|
|
28
|
+
}
|
|
29
|
+
_transformIntEnumeration(value) {
|
|
30
|
+
return `${value.value}`;
|
|
31
|
+
}
|
|
32
|
+
_transformString(value) {
|
|
33
|
+
return value.value;
|
|
34
|
+
}
|
|
35
|
+
_transformStringEnumeration(value) {
|
|
36
|
+
return `${value.value}`;
|
|
37
|
+
}
|
|
38
|
+
_transformStringCombobox(value) {
|
|
39
|
+
if (value.control && /^combobox$/i.test(value.control)) {
|
|
40
|
+
return value.value;
|
|
41
|
+
}
|
|
42
|
+
return '';
|
|
43
|
+
}
|
|
44
|
+
_transformBooleanToBoolean(value) {
|
|
45
|
+
if (value.value === '1'
|
|
46
|
+
|| /^true$/i.test(value.value)) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
_transformBooleanToString(value) {
|
|
52
|
+
if (value.value === '1'
|
|
53
|
+
|| /^true$/i.test(value.value)) {
|
|
54
|
+
return "True";
|
|
55
|
+
}
|
|
56
|
+
return "False";
|
|
57
|
+
}
|
|
58
|
+
transform(value) {
|
|
59
|
+
const _value = value.value;
|
|
60
|
+
if (this.isEmpty(_value)) {
|
|
61
|
+
return '';
|
|
62
|
+
}
|
|
63
|
+
if (this.isDouble(value)) {
|
|
64
|
+
return this._transformDouble(value);
|
|
65
|
+
}
|
|
66
|
+
if (this.isDoubleEnumeration(value)) {
|
|
67
|
+
return this._transformDoubleEnumeration(value);
|
|
68
|
+
}
|
|
69
|
+
if (this.isDatetime(value)) {
|
|
70
|
+
return this._transformDatetime(value);
|
|
71
|
+
}
|
|
72
|
+
if (this.isGUID(value)) {
|
|
73
|
+
return this._transformGUID(value);
|
|
74
|
+
}
|
|
75
|
+
if (this.isGUIDEnumeration(value)) {
|
|
76
|
+
return this._transformGUIDEnumeration(value);
|
|
77
|
+
}
|
|
78
|
+
if (this.isInt(value)) {
|
|
79
|
+
return this._transformInt(value);
|
|
80
|
+
}
|
|
81
|
+
if (this.isIntEnumeration(value)) {
|
|
82
|
+
return this._transformIntEnumeration(value);
|
|
83
|
+
}
|
|
84
|
+
if (this.isString(value)) {
|
|
85
|
+
return this._transformString(value);
|
|
86
|
+
}
|
|
87
|
+
if (this.isStringEnumeration(value)) {
|
|
88
|
+
return this._transformStringEnumeration(value);
|
|
89
|
+
}
|
|
90
|
+
if (this.isStringCombobox(value)) {
|
|
91
|
+
return this._transformStringCombobox(value);
|
|
92
|
+
}
|
|
93
|
+
if (this.isBooleanCheckbox(value)) {
|
|
94
|
+
return this._transformBooleanToBoolean(value);
|
|
95
|
+
}
|
|
96
|
+
if (this.isBooleanTextbox(value)) {
|
|
97
|
+
return this._transformBooleanToString(value);
|
|
98
|
+
}
|
|
99
|
+
return value.value;
|
|
100
|
+
}
|
|
101
|
+
isEmpty(value) {
|
|
102
|
+
return value === undefined || value === null || value === '';
|
|
103
|
+
}
|
|
104
|
+
isDouble(value) {
|
|
105
|
+
return typeof value.type === 'string' && /^double$/i.test(value.type) && !value.control;
|
|
106
|
+
}
|
|
107
|
+
isDoubleEnumeration(value) {
|
|
108
|
+
return typeof value.type === 'string' && /^double$/i.test(value.type)
|
|
109
|
+
&& typeof value.control === 'string' && /^enumeration$/i.test(value.control);
|
|
110
|
+
}
|
|
111
|
+
isDatetime(value) {
|
|
112
|
+
return typeof value.type === 'string' && /^datetime$/i.test(value.type) && !value.control;
|
|
113
|
+
}
|
|
114
|
+
isGUID(value) {
|
|
115
|
+
return typeof value.type === 'string' && /^guid$/i.test(value.type) && !value.control;
|
|
116
|
+
}
|
|
117
|
+
isGUIDEnumeration(value) {
|
|
118
|
+
return typeof value.type === 'string' && /^guid$/i.test(value.type)
|
|
119
|
+
&& typeof value.control === 'string' && /^enumeration$/i.test(value.control);
|
|
120
|
+
}
|
|
121
|
+
isInt(value) {
|
|
122
|
+
return typeof value.type === 'string' && /^int(32)?$/i.test(value.type) && !value.control;
|
|
123
|
+
}
|
|
124
|
+
isIntEnumeration(value) {
|
|
125
|
+
return typeof value.type === 'string' && /^int(32)?$/i.test(value.type)
|
|
126
|
+
&& typeof value.control === 'string' && /^enumeration$/i.test(value.control);
|
|
127
|
+
}
|
|
128
|
+
isString(value) {
|
|
129
|
+
return typeof value.type === 'string' && /^string$/i.test(value.type) && !value.control;
|
|
130
|
+
}
|
|
131
|
+
isStringEnumeration(value) {
|
|
132
|
+
return typeof value.type === 'string' && /^string$/i.test(value.type)
|
|
133
|
+
&& typeof value.control === 'string' && /^enumeration$/i.test(value.control);
|
|
134
|
+
}
|
|
135
|
+
isStringCombobox(value) {
|
|
136
|
+
return typeof value.type === 'string' && /^string$/i.test(value.type)
|
|
137
|
+
&& typeof value.control === 'string' && /^combobox$/i.test(value.control);
|
|
138
|
+
}
|
|
139
|
+
isBooleanCheckbox(value) {
|
|
140
|
+
return typeof value.type === 'string' && /^boolean$/i.test(value.type)
|
|
141
|
+
&& typeof value.control === 'string' && /^checkbox$/i.test(value.control);
|
|
142
|
+
}
|
|
143
|
+
isBooleanTextbox(value) {
|
|
144
|
+
return typeof value.type === 'string' && /^boolean$/i.test(value.type) && !value.control;
|
|
145
|
+
}
|
|
146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: GetAttributeValue, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
147
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: GetAttributeValue, isStandalone: true, name: "getAttributeValue" }); }
|
|
148
|
+
}
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: GetAttributeValue, decorators: [{
|
|
150
|
+
type: Pipe,
|
|
151
|
+
args: [{
|
|
152
|
+
name: 'getAttributeValue',
|
|
153
|
+
standalone: true
|
|
154
|
+
}]
|
|
155
|
+
}], ctorParameters: () => [] });
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWF0dHJpYnV0ZS12YWx1ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL3BpcGVzL2dldC1hdHRyaWJ1dGUtdmFsdWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLG9CQUFvQixDQUFDOztBQU81QixNQUFNLE9BQU8saUJBQWlCO0lBRTVCO1FBQ0UsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDekMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBc0I7UUFDckMsT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELDJCQUEyQixDQUFDLEtBQXNCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFzQjtRQUN2QyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFzQjtRQUNuQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELHlCQUF5QixDQUFDLEtBQXNCO1FBQzlDLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFzQjtRQUNs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QUMsT0FBTyxDQUFDO0lBQzNGLENBQUM7K0dBbkxVLGlCQUFpQjs2R0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUo3QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JqZWN0QXR0cmlidXRlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9vYmplY3QtcHJvcGVydGllcy9vYmplY3QtcHJvcGVydGllcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBSb3VuZFBpcGUgfSBmcm9tICcuL3JvdW5kLnBpcGUnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCAnbW9tZW50L21pbi9sb2NhbGVzJztcclxuXHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2dldEF0dHJpYnV0ZVZhbHVlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZXRBdHRyaWJ1dGVWYWx1ZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGNvbnN0IGxvY2FsZSA9IHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2U7XHJcbiAgICBtb21lbnQubG9jYWxlKGxvY2FsZSk7XHJcbiAgfVxyXG5cclxuICBfdHJhbnNmb3JtRG91YmxlKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIG5ldyBSb3VuZFBpcGUoKS50cmFuc2Zvcm0odmFsdWUudmFsdWUsIHZhbHVlLmRlY2ltYWwgPz8gMik7XHJcbiAgfVxyXG5cclxuICBfdHJhbnNmb3JtRG91YmxlRW51bWVyYXRpb24odmFsdWU6IE9iamVjdEF0dHJpYnV0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNmb3JtRG91YmxlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIF90cmFuc2Zvcm1EYXRldGltZSh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB2YWx1ZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIF90cmFuc2Zvcm1HVUlEKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHZhbHVlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgX3RyYW5zZm9ybUdVSURFbnVtZXJhdGlvbih2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt2YWx1ZS52YWx1ZX1gO1xyXG4gIH1cclxuXHJcbiAgX3RyYW5zZm9ybUludCh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB2YWx1ZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIF90cmFuc2Zvcm1JbnRFbnVtZXJhdGlvbih2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt2YWx1ZS52YWx1ZX1gO1xyXG4gIH1cclxuXHJcbiAgX3RyYW5zZm9ybVN0cmluZyh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB2YWx1ZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIF90cmFuc2Zvcm1TdHJpbmdFbnVtZXJhdGlvbih2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt2YWx1ZS52YWx1ZX1gO1xyXG4gIH1cclxuXHJcbiAgX3RyYW5zZm9ybVN0cmluZ0NvbWJvYm94KHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgaWYodmFsdWUuY29udHJvbCAmJiAvXmNvbWJvYm94JC9pLnRlc3QodmFsdWUuY29udHJvbCkpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlLnZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgX3RyYW5zZm9ybUJvb2xlYW5Ub0Jvb2xlYW4odmFsdWU6IE9iamVjdEF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYodmFsdWUudmFsdWUgPT09ICcxJ1xyXG4gICAgICB8fCAvXnRydWUkL2kudGVzdCh2YWx1ZS52YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBfdHJhbnNmb3JtQm9vbGVhblRvU3RyaW5nKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgaWYodmFsdWUudmFsdWUgPT09ICcxJ1xyXG4gICAgICB8fCAvXnRydWUkL2kudGVzdCh2YWx1ZS52YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gXCJUcnVlXCI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIFwiRmFsc2VcIjtcclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogc3RyaW5nIHwgYm9vbGVhbiB7XHJcbiAgICBjb25zdCBfdmFsdWUgPSB2YWx1ZS52YWx1ZTtcclxuICAgIGlmICh0aGlzLmlzRW1wdHkoX3ZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNEb3VibGUodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1Eb3VibGUodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzRG91YmxlRW51bWVyYXRpb24odmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1Eb3VibGVFbnVtZXJhdGlvbih2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNEYXRldGltZSh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybURhdGV0aW1lKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0dVSUQodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1HVUlEKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0dVSURFbnVtZXJhdGlvbih2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybUdVSURFbnVtZXJhdGlvbih2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNJbnQodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1JbnQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzSW50RW51bWVyYXRpb24odmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1JbnRFbnVtZXJhdGlvbih2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1TdHJpbmcodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nRW51bWVyYXRpb24odmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1TdHJpbmdFbnVtZXJhdGlvbih2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmdDb21ib2JveCh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybVN0cmluZ0NvbWJvYm94KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0Jvb2xlYW5DaGVja2JveCh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybUJvb2xlYW5Ub0Jvb2xlYW4odmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzQm9vbGVhblRleHRib3godmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1Cb29sZWFuVG9TdHJpbmcodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFbXB0eSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0RvdWJsZSh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnICYmIC9eZG91YmxlJC9pLnRlc3QodmFsdWUudHlwZSkgJiYgIXZhbHVlLmNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRG91YmxlRW51bWVyYXRpb24odmFsdWU6IE9iamVjdEF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZS50eXBlID09PSAnc3RyaW5nJyAmJiAvXmRvdWJsZSQvaS50ZXN0KHZhbHVlLnR5cGUpXHJcbiAgICAgICYmIHR5cGVvZiB2YWx1ZS5jb250cm9sID09PSAnc3RyaW5nJyAmJiAvXmVudW1lcmF0aW9uJC9pLnRlc3QodmFsdWUuY29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRGF0ZXRpbWUodmFsdWU6IE9iamVjdEF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZS50eXBlID09PSAnc3RyaW5nJyAmJiAvXmRhdGV0aW1lJC9pLnRlc3QodmFsdWUudHlwZSkgJiYgIXZhbHVlLmNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzR1VJRCh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnICYmIC9eZ3VpZCQvaS50ZXN0KHZhbHVlLnR5cGUpICYmICF2YWx1ZS5jb250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0dVSURFbnVtZXJhdGlvbih2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnICYmIC9eZ3VpZCQvaS50ZXN0KHZhbHVlLnR5cGUpXHJcbiAgICAgICYmIHR5cGVvZiB2YWx1ZS5jb250cm9sID09PSAnc3RyaW5nJyAmJiAvXmVudW1lcmF0aW9uJC9pLnRlc3QodmFsdWUuY29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzSW50KHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycgJiYgL15pbnQoMzIpPyQvaS50ZXN0KHZhbHVlLnR5cGUpICYmICF2YWx1ZS5jb250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0ludEVudW1lcmF0aW9uKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycgJiYgL15pbnQoMzIpPyQvaS50ZXN0KHZhbHVlLnR5cGUpXHJcbiAgICAgICYmIHR5cGVvZiB2YWx1ZS5jb250cm9sID09PSAnc3RyaW5nJyAmJiAvXmVudW1lcmF0aW9uJC9pLnRlc3QodmFsdWUuY29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU3RyaW5nKHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycgJiYgL15zdHJpbmckL2kudGVzdCh2YWx1ZS50eXBlKSAmJiAhdmFsdWUuY29udHJvbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNTdHJpbmdFbnVtZXJhdGlvbih2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnICYmIC9ec3RyaW5nJC9pLnRlc3QodmFsdWUudHlwZSlcclxuICAgICAgJiYgdHlwZW9mIHZhbHVlLmNvbnRyb2wgPT09ICdzdHJpbmcnICYmIC9eZW51bWVyYXRpb24kL2kudGVzdCh2YWx1ZS5jb250cm9sKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNTdHJpbmdDb21ib2JveCh2YWx1ZTogT2JqZWN0QXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnICYmIC9ec3RyaW5nJC9pLnRlc3QodmFsdWUudHlwZSlcclxuICAgICAgJiYgdHlwZW9mIHZhbHVlLmNvbnRyb2wgPT09ICdzdHJpbmcnICYmIC9eY29tYm9ib3gkL2kudGVzdCh2YWx1ZS5jb250cm9sKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNCb29sZWFuQ2hlY2tib3godmFsdWU6IE9iamVjdEF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZS50eXBlID09PSAnc3RyaW5nJyAmJiAvXmJvb2xlYW4kL2kudGVzdCh2YWx1ZS50eXBlKVxyXG4gICAgICAmJiB0eXBlb2YgdmFsdWUuY29udHJvbCA9PT0gJ3N0cmluZycgJiYgL15jaGVja2JveCQvaS50ZXN0KHZhbHVlLmNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0Jvb2xlYW5UZXh0Ym94KHZhbHVlOiBPYmplY3RBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycgJiYgL15ib29sZWFuJC9pLnRlc3QodmFsdWUudHlwZSkgJiYgIXZhbHVlLmNvbnRyb2w7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|