@senior-gestao-empresarial/angular-components 7.19.0 → 7.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/senior-gestao-empresarial-angular-components.umd.js +843 -220
- package/bundles/senior-gestao-empresarial-angular-components.umd.js.map +1 -1
- package/bundles/senior-gestao-empresarial-angular-components.umd.min.js +2 -2
- package/bundles/senior-gestao-empresarial-angular-components.umd.min.js.map +1 -1
- package/components/object-card/elements/field/object-card-field.component.d.ts +18 -0
- package/components/object-card/elements/main/object-card-main.component.d.ts +37 -0
- package/components/object-card/index.d.ts +4 -0
- package/components/object-card/object-card.component.d.ts +29 -0
- package/components/object-card/object-card.module.d.ts +2 -0
- package/components/shared/border-button/border-button.component.d.ts +7 -0
- package/components/shared/border-button/border-button.module.d.ts +2 -0
- package/components/shared/models/border-button-options.d.ts +9 -0
- package/components/shared/models/enum-severity.d.ts +7 -0
- package/components/thumbnail/index.d.ts +3 -0
- package/components/thumbnail/thumbnail-size.d.ts +5 -0
- package/components/thumbnail/thumbnail.component.d.ts +28 -0
- package/components/thumbnail/thumbnail.module.d.ts +2 -0
- package/components/thumbnail/thumbnail.service.d.ts +21 -0
- package/esm2015/components/object-card/elements/field/object-card-field.component.js +58 -0
- package/esm2015/components/object-card/elements/main/object-card-main.component.js +142 -0
- package/esm2015/components/object-card/index.js +5 -0
- package/esm2015/components/object-card/object-card.component.js +142 -0
- package/esm2015/components/object-card/object-card.module.js +22 -0
- package/esm2015/components/shared/border-button/border-button.component.js +24 -0
- package/esm2015/components/shared/border-button/border-button.module.js +16 -0
- package/esm2015/components/shared/models/border-button-options.js +1 -0
- package/esm2015/components/shared/models/enum-severity.js +9 -0
- package/esm2015/components/thumbnail/index.js +4 -0
- package/esm2015/components/thumbnail/thumbnail-size.js +7 -0
- package/esm2015/components/thumbnail/thumbnail.component.js +96 -0
- package/esm2015/components/thumbnail/thumbnail.module.js +17 -0
- package/esm2015/components/thumbnail/thumbnail.service.js +90 -0
- package/esm2015/public-api.js +3 -1
- package/esm2015/senior-gestao-empresarial-angular-components.js +8 -5
- package/esm5/components/object-card/elements/field/object-card-field.component.js +60 -0
- package/esm5/components/object-card/elements/main/object-card-main.component.js +167 -0
- package/esm5/components/object-card/index.js +5 -0
- package/esm5/components/object-card/object-card.component.js +144 -0
- package/esm5/components/object-card/object-card.module.js +25 -0
- package/esm5/components/shared/border-button/border-button.component.js +25 -0
- package/esm5/components/shared/border-button/border-button.module.js +19 -0
- package/esm5/components/shared/models/border-button-options.js +1 -0
- package/esm5/components/shared/models/enum-severity.js +9 -0
- package/esm5/components/thumbnail/index.js +4 -0
- package/esm5/components/thumbnail/thumbnail-size.js +7 -0
- package/esm5/components/thumbnail/thumbnail.component.js +99 -0
- package/esm5/components/thumbnail/thumbnail.module.js +20 -0
- package/esm5/components/thumbnail/thumbnail.service.js +95 -0
- package/esm5/public-api.js +3 -1
- package/esm5/senior-gestao-empresarial-angular-components.js +8 -5
- package/fesm2015/senior-gestao-empresarial-angular-components.js +737 -167
- package/fesm2015/senior-gestao-empresarial-angular-components.js.map +1 -1
- package/fesm5/senior-gestao-empresarial-angular-components.js +835 -218
- package/fesm5/senior-gestao-empresarial-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/senior-gestao-empresarial-angular-components.d.ts +7 -4
- package/senior-gestao-empresarial-angular-components.metadata.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EventEmitter, TemplateRef } from "@angular/core";
|
|
2
|
+
import { MenuItem } from "primeng/api";
|
|
3
|
+
import { ThumbnailComponent } from "../../../thumbnail/thumbnail.component";
|
|
4
|
+
export declare class ObjectCardFieldComponent {
|
|
5
|
+
private static nextId;
|
|
6
|
+
id: string;
|
|
7
|
+
imageSource?: string;
|
|
8
|
+
imageAlt?: string;
|
|
9
|
+
iconClass?: string;
|
|
10
|
+
label?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
buttonLabel?: string;
|
|
13
|
+
buttonModel?: MenuItem[];
|
|
14
|
+
buttonClick: EventEmitter<any>;
|
|
15
|
+
thumbnailComponent: ThumbnailComponent;
|
|
16
|
+
content: TemplateRef<any>;
|
|
17
|
+
private static getNextId;
|
|
18
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { AfterContentInit, EventEmitter } from "@angular/core";
|
|
2
|
+
import { MenuItem } from "primeng/api";
|
|
3
|
+
import { Observable } from "rxjs";
|
|
4
|
+
import { ThumbnailSize } from "../../../thumbnail/thumbnail-size";
|
|
5
|
+
import { ThumbnailComponent } from "../../../thumbnail/thumbnail.component";
|
|
6
|
+
export declare class ObjectCardMainComponent implements AfterContentInit {
|
|
7
|
+
private static nextId;
|
|
8
|
+
id: string;
|
|
9
|
+
imageSource?: string;
|
|
10
|
+
imageFallback?: string;
|
|
11
|
+
imageAlt?: string;
|
|
12
|
+
iconClass: string;
|
|
13
|
+
hasThumbnail: boolean;
|
|
14
|
+
hasDescription: boolean;
|
|
15
|
+
isBrand: boolean;
|
|
16
|
+
expandableImage: boolean;
|
|
17
|
+
imageLoader?: () => Observable<string> | Promise<string>;
|
|
18
|
+
label?: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
buttonLabel?: string;
|
|
21
|
+
buttonModel?: MenuItem[];
|
|
22
|
+
buttonClick: EventEmitter<any>;
|
|
23
|
+
thumbnailComponent: ThumbnailComponent;
|
|
24
|
+
showImageModal: boolean;
|
|
25
|
+
fullImageSource?: string;
|
|
26
|
+
loadingFullImage: boolean;
|
|
27
|
+
private _thumbnailSize;
|
|
28
|
+
set thumbnailSize(value: ThumbnailSize);
|
|
29
|
+
get thumbnailSize(): ThumbnailSize;
|
|
30
|
+
onResize(): void;
|
|
31
|
+
ngAfterContentInit(): void;
|
|
32
|
+
update(): void;
|
|
33
|
+
private static getNextId;
|
|
34
|
+
getImageAltText(): string;
|
|
35
|
+
openImageModal(): Promise<void>;
|
|
36
|
+
private resolveFullImageSource;
|
|
37
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AfterContentChecked, EventEmitter, QueryList } from "@angular/core";
|
|
2
|
+
import { BorderButtonOptions } from "../shared/models/border-button-options";
|
|
3
|
+
import { EnumSeverity } from "../shared/models/enum-severity";
|
|
4
|
+
import { ObjectCardFieldComponent } from "./elements/field/object-card-field.component";
|
|
5
|
+
import { ObjectCardMainComponent } from "./elements/main/object-card-main.component";
|
|
6
|
+
export declare class ObjectCardComponent implements AfterContentChecked {
|
|
7
|
+
private static nextId;
|
|
8
|
+
id: string;
|
|
9
|
+
expanded: boolean;
|
|
10
|
+
expandTooltip: string;
|
|
11
|
+
collapseTooltip: string;
|
|
12
|
+
fieldsMinWidth: number;
|
|
13
|
+
expandedChange: EventEmitter<boolean>;
|
|
14
|
+
main: ObjectCardMainComponent;
|
|
15
|
+
fields?: QueryList<ObjectCardFieldComponent>;
|
|
16
|
+
maxVisibleFields: number;
|
|
17
|
+
severity: EnumSeverity;
|
|
18
|
+
borderButtonOptions: BorderButtonOptions;
|
|
19
|
+
readonly EnumSeverity: typeof EnumSeverity;
|
|
20
|
+
private readonly container;
|
|
21
|
+
private readonly cardMainContainer;
|
|
22
|
+
private readonly iconContainer;
|
|
23
|
+
ngAfterContentChecked(): void;
|
|
24
|
+
private update;
|
|
25
|
+
toggle(): void;
|
|
26
|
+
expand(): void;
|
|
27
|
+
collapse(): void;
|
|
28
|
+
private static getNextId;
|
|
29
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BorderButtonOptions } from "../models/border-button-options";
|
|
2
|
+
import { EnumSeverity } from "../models/enum-severity";
|
|
3
|
+
export declare class BorderButtonComponent {
|
|
4
|
+
severity: EnumSeverity;
|
|
5
|
+
options: BorderButtonOptions;
|
|
6
|
+
readonly EnumSeverity: typeof EnumSeverity;
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EnumSeverity } from "./enum-severity";
|
|
2
|
+
export declare type BorderButtonOptions = {
|
|
3
|
+
label: (severity: EnumSeverity) => string;
|
|
4
|
+
onClick?: (severity: EnumSeverity) => void;
|
|
5
|
+
visible?: (severity: EnumSeverity) => boolean;
|
|
6
|
+
disabled?: (severity: EnumSeverity) => boolean;
|
|
7
|
+
tooltip?: (severity: EnumSeverity) => string;
|
|
8
|
+
icon?: (severity: EnumSeverity) => string;
|
|
9
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, OnDestroy } from "@angular/core";
|
|
2
|
+
import { ThumbnailSize } from "./thumbnail-size";
|
|
3
|
+
import { ThumbnailService } from "./thumbnail.service";
|
|
4
|
+
export declare class ThumbnailComponent implements AfterViewInit, OnDestroy {
|
|
5
|
+
private readonly thumbnailService;
|
|
6
|
+
private static nextId;
|
|
7
|
+
fallback: boolean;
|
|
8
|
+
orientation: number;
|
|
9
|
+
imgEl: ElementRef;
|
|
10
|
+
id: string;
|
|
11
|
+
size: ThumbnailSize;
|
|
12
|
+
imageSource: string;
|
|
13
|
+
imageFallback?: string;
|
|
14
|
+
imageAlt: string;
|
|
15
|
+
iconClass: string;
|
|
16
|
+
hasAction: boolean;
|
|
17
|
+
actionIconClass: string;
|
|
18
|
+
isTile: boolean;
|
|
19
|
+
isBrand: boolean;
|
|
20
|
+
private readonly ngUnsubscribe;
|
|
21
|
+
constructor(thumbnailService: ThumbnailService);
|
|
22
|
+
ngOnDestroy(): void;
|
|
23
|
+
ngAfterViewInit(): void;
|
|
24
|
+
private static getNextId;
|
|
25
|
+
getImageAltText(): string;
|
|
26
|
+
onImageError(): void;
|
|
27
|
+
onFallbackError(): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare class ThumbnailService {
|
|
2
|
+
private static readonly HTTP_STATUS_OK;
|
|
3
|
+
private static readonly JPEG_MARKER;
|
|
4
|
+
private static readonly EXIF_MARKER;
|
|
5
|
+
private static readonly EXIF_SIGNATURE;
|
|
6
|
+
private static readonly LITTLE_ENDIAN_MARKER;
|
|
7
|
+
private static readonly ORIENTATION_TAG;
|
|
8
|
+
private static readonly MARKER_MASK;
|
|
9
|
+
private static readonly NOT_DEFINED;
|
|
10
|
+
private static readonly NOT_JPEG;
|
|
11
|
+
private static readonly INITIAL_OFFSET;
|
|
12
|
+
private static readonly EXIF_OFFSET;
|
|
13
|
+
private static readonly TAG_SIZE;
|
|
14
|
+
private static readonly TAG_VALUE_OFFSET;
|
|
15
|
+
getBinaryFile(img: HTMLImageElement): Promise<unknown>;
|
|
16
|
+
/**
|
|
17
|
+
* Retorna a tag da orientação EXIF {-1} Não definido, {-2} Não é formato JPEG, {1, 2, 3, 4, 5, 6, 7, 8} valores da orientação.
|
|
18
|
+
*/
|
|
19
|
+
private getOrientation;
|
|
20
|
+
private extractOrientationFromExif;
|
|
21
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
var ObjectCardFieldComponent_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from "@angular/core";
|
|
4
|
+
import { ThumbnailComponent } from "../../../thumbnail/thumbnail.component";
|
|
5
|
+
let ObjectCardFieldComponent = ObjectCardFieldComponent_1 = class ObjectCardFieldComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.id = `erp-object-card-field-${ObjectCardFieldComponent_1.getNextId()}`;
|
|
8
|
+
this.buttonClick = new EventEmitter();
|
|
9
|
+
}
|
|
10
|
+
static getNextId() {
|
|
11
|
+
const id = ObjectCardFieldComponent_1.nextId;
|
|
12
|
+
ObjectCardFieldComponent_1.nextId++;
|
|
13
|
+
return id;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
ObjectCardFieldComponent.nextId = 0;
|
|
17
|
+
__decorate([
|
|
18
|
+
Input()
|
|
19
|
+
], ObjectCardFieldComponent.prototype, "id", void 0);
|
|
20
|
+
__decorate([
|
|
21
|
+
Input()
|
|
22
|
+
], ObjectCardFieldComponent.prototype, "imageSource", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
Input()
|
|
25
|
+
], ObjectCardFieldComponent.prototype, "imageAlt", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
Input()
|
|
28
|
+
], ObjectCardFieldComponent.prototype, "iconClass", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
Input()
|
|
31
|
+
], ObjectCardFieldComponent.prototype, "label", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
Input()
|
|
34
|
+
], ObjectCardFieldComponent.prototype, "description", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
Input()
|
|
37
|
+
], ObjectCardFieldComponent.prototype, "buttonLabel", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
Input()
|
|
40
|
+
], ObjectCardFieldComponent.prototype, "buttonModel", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
Output()
|
|
43
|
+
], ObjectCardFieldComponent.prototype, "buttonClick", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
ContentChild(ThumbnailComponent, { static: true })
|
|
46
|
+
], ObjectCardFieldComponent.prototype, "thumbnailComponent", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
ViewChild(TemplateRef, { static: true })
|
|
49
|
+
], ObjectCardFieldComponent.prototype, "content", void 0);
|
|
50
|
+
ObjectCardFieldComponent = ObjectCardFieldComponent_1 = __decorate([
|
|
51
|
+
Component({
|
|
52
|
+
selector: "erp-object-card-field",
|
|
53
|
+
template: "<ng-template>\n <div class=\"container\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n *ngIf=\"!thumbnailComponent && (imageSource || iconClass)\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass\"\n size=\"small\"\n ></s-thumbnail>\n\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n <ng-container *ngTemplateOutlet=\"textSpan; context: {\n elementId: id + '-label',\n text: label,\n cssClass: 'label',\n templateWrapper: labelTemplate\n }\"></ng-container>\n\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\n <ng-container *ngTemplateOutlet=\"textSpan; context: {\n cssClass: 'description',\n elementId: id + '-description',\n templateWrapper: descriptionTemplate,\n text: description\n }\"></ng-container>\n\n <s-button\n *ngIf=\"buttonLabel\"\n [id]=\"id + '-button'\"\n styleClass=\"object-card-button\"\n [label]=\"buttonLabel\"\n priority=\"link\"\n size=\"small\"\n [model]=\"buttonModel\"\n (onClick)=\"buttonClick.emit($event)\"\n ></s-button>\n\n <ng-template\n #textSpan\n let-text=\"text\"\n let-elementId=\"elementId\"\n let-templateWrapper=\"templateWrapper\"\n let-cssClass=\"cssClass\"\n >\n <span\n *ngIf=\"!templateWrapper.children.length\"\n [id]=\"elementId\"\n [pTooltip]=\"text\"\n tooltipPosition=\"top\"\n [class]=\"cssClass\"\n showDelay=\"500\"\n >{{ text }}</span>\n </ng-template>\n </div>\n </div>\n</ng-template>\n",
|
|
54
|
+
styles: [".container{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:100%}.info-container{margin-left:10px}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{color:#999;display:block}.info-container .description{display:block}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.info-container{-ms-flex:1;flex:1}}@media (max-width:767px){.info-container,.info-container span{white-space:normal}}.info-container:only-child{margin-left:0}"]
|
|
55
|
+
})
|
|
56
|
+
], ObjectCardFieldComponent);
|
|
57
|
+
export { ObjectCardFieldComponent };
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9vYmplY3QtY2FyZC9lbGVtZW50cy9maWVsZC9vYmplY3QtY2FyZC1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTzVFLElBQWEsd0JBQXdCLGdDQUFyQyxNQUFhLHdCQUF3QjtJQUFyQztRQUlXLE9BQUUsR0FBRyx5QkFBeUIsMEJBQXdCLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQXdCckUsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBYzVDLENBQUM7SUFMVyxNQUFNLENBQUMsU0FBUztRQUNwQixNQUFNLEVBQUUsR0FBRywwQkFBd0IsQ0FBQyxNQUFNLENBQUM7UUFDM0MsMEJBQXdCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEMsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0osQ0FBQTtBQXpDa0IsK0JBQU0sR0FBRyxDQUFDLENBQUM7QUFHMUI7SUFEQyxLQUFLLEVBQUU7b0RBQ29FO0FBRzVFO0lBREMsS0FBSyxFQUFFOzZEQUNvQjtBQUc1QjtJQURDLEtBQUssRUFBRTswREFDaUI7QUFHekI7SUFEQyxLQUFLLEVBQUU7MkRBQ2tCO0FBRzFCO0lBREMsS0FBSyxFQUFFO3VEQUNjO0FBR3RCO0lBREMsS0FBSyxFQUFFOzZEQUNvQjtBQUc1QjtJQURDLEtBQUssRUFBRTs2REFDb0I7QUFHNUI7SUFEQyxLQUFLLEVBQUU7NkRBQ3dCO0FBR2hDO0lBREMsTUFBTSxFQUFFOzZEQUMrQjtBQUd4QztJQURDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztvRUFDTDtBQUc5QztJQURDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7eURBQ1I7QUFsQ3hCLHdCQUF3QjtJQUxwQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsdUJBQXVCO1FBQ2pDLG10RUFBaUQ7O0tBRXBELENBQUM7R0FDVyx3QkFBd0IsQ0EwQ3BDO1NBMUNZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcblxuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL3RodW1ibmFpbC90aHVtYm5haWwuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcImVycC1vYmplY3QtY2FyZC1maWVsZFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vb2JqZWN0LWNhcmQtZmllbGQuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vb2JqZWN0LWNhcmQtZmllbGQuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENhcmRGaWVsZENvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYGVycC1vYmplY3QtY2FyZC1maWVsZC0ke09iamVjdENhcmRGaWVsZENvbXBvbmVudC5nZXROZXh0SWQoKX1gO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW1hZ2VTb3VyY2U/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbWFnZUFsdD86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25DbGFzcz86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsPzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBidXR0b25MYWJlbD86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJ1dHRvbk1vZGVsPzogTWVudUl0ZW1bXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBDb250ZW50Q2hpbGQoVGh1bWJuYWlsQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyB0aHVtYm5haWxDb21wb25lbnQ6IFRodW1ibmFpbENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cblxuICAgIHByaXZhdGUgc3RhdGljIGdldE5leHRJZCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBpZCA9IE9iamVjdENhcmRGaWVsZENvbXBvbmVudC5uZXh0SWQ7XG4gICAgICAgIE9iamVjdENhcmRGaWVsZENvbXBvbmVudC5uZXh0SWQrKztcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cbn1cblxuXG4iXX0=
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
var ObjectCardMainComponent_1;
|
|
2
|
+
import { __awaiter, __decorate } from "tslib";
|
|
3
|
+
import { Component, ContentChild, EventEmitter, HostListener, Input, Output } from "@angular/core";
|
|
4
|
+
import { ThumbnailSize } from "../../../thumbnail/thumbnail-size";
|
|
5
|
+
import { ThumbnailComponent } from "../../../thumbnail/thumbnail.component";
|
|
6
|
+
import { Breakpoints } from "../../../utils";
|
|
7
|
+
let ObjectCardMainComponent = ObjectCardMainComponent_1 = class ObjectCardMainComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.id = `erp-object-card-main-${ObjectCardMainComponent_1.getNextId()}`;
|
|
10
|
+
this.iconClass = "fa fa-picture-o";
|
|
11
|
+
this.hasThumbnail = true;
|
|
12
|
+
this.hasDescription = true;
|
|
13
|
+
this.isBrand = false;
|
|
14
|
+
this.expandableImage = false;
|
|
15
|
+
this.buttonClick = new EventEmitter();
|
|
16
|
+
this.showImageModal = false;
|
|
17
|
+
this.loadingFullImage = false;
|
|
18
|
+
this._thumbnailSize = ThumbnailSize.Medium;
|
|
19
|
+
}
|
|
20
|
+
set thumbnailSize(value) {
|
|
21
|
+
this._thumbnailSize = value;
|
|
22
|
+
if (this.thumbnailComponent) {
|
|
23
|
+
this.thumbnailComponent.size = value;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
get thumbnailSize() {
|
|
27
|
+
return this._thumbnailSize;
|
|
28
|
+
}
|
|
29
|
+
onResize() {
|
|
30
|
+
this.update();
|
|
31
|
+
}
|
|
32
|
+
ngAfterContentInit() {
|
|
33
|
+
this.update();
|
|
34
|
+
}
|
|
35
|
+
update() {
|
|
36
|
+
const windowWidth = window.innerWidth;
|
|
37
|
+
if (windowWidth <= Breakpoints.SM_MAX) {
|
|
38
|
+
this.thumbnailSize = ThumbnailSize.Small;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.thumbnailSize = ThumbnailSize.Medium;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
static getNextId() {
|
|
45
|
+
const id = ObjectCardMainComponent_1.nextId;
|
|
46
|
+
ObjectCardMainComponent_1.nextId++;
|
|
47
|
+
return id;
|
|
48
|
+
}
|
|
49
|
+
getImageAltText() {
|
|
50
|
+
const altText = this.imageAlt || this.label || '';
|
|
51
|
+
return altText.replace(/\bimage\b/gi, '').replace(/\bimagem\b/gi, '').trim();
|
|
52
|
+
}
|
|
53
|
+
openImageModal() {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
if (!this.expandableImage || !this.imageSource) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
this.showImageModal = true;
|
|
59
|
+
this.fullImageSource = yield this.resolveFullImageSource();
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
resolveFullImageSource() {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
if (!this.imageLoader || this.fullImageSource) {
|
|
65
|
+
return this.fullImageSource || this.imageSource;
|
|
66
|
+
}
|
|
67
|
+
this.loadingFullImage = true;
|
|
68
|
+
try {
|
|
69
|
+
const result = this.imageLoader();
|
|
70
|
+
return yield (result instanceof Promise ? result : result.toPromise());
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
console.error('Erro ao carregar imagem completa:', error);
|
|
74
|
+
return this.imageSource;
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
this.loadingFullImage = false;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
ObjectCardMainComponent.nextId = 0;
|
|
83
|
+
__decorate([
|
|
84
|
+
Input()
|
|
85
|
+
], ObjectCardMainComponent.prototype, "id", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
Input()
|
|
88
|
+
], ObjectCardMainComponent.prototype, "imageSource", void 0);
|
|
89
|
+
__decorate([
|
|
90
|
+
Input()
|
|
91
|
+
], ObjectCardMainComponent.prototype, "imageFallback", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
Input()
|
|
94
|
+
], ObjectCardMainComponent.prototype, "imageAlt", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
Input()
|
|
97
|
+
], ObjectCardMainComponent.prototype, "iconClass", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
Input()
|
|
100
|
+
], ObjectCardMainComponent.prototype, "hasThumbnail", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
Input()
|
|
103
|
+
], ObjectCardMainComponent.prototype, "hasDescription", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
Input()
|
|
106
|
+
], ObjectCardMainComponent.prototype, "isBrand", void 0);
|
|
107
|
+
__decorate([
|
|
108
|
+
Input()
|
|
109
|
+
], ObjectCardMainComponent.prototype, "expandableImage", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
Input()
|
|
112
|
+
], ObjectCardMainComponent.prototype, "imageLoader", void 0);
|
|
113
|
+
__decorate([
|
|
114
|
+
Input()
|
|
115
|
+
], ObjectCardMainComponent.prototype, "label", void 0);
|
|
116
|
+
__decorate([
|
|
117
|
+
Input()
|
|
118
|
+
], ObjectCardMainComponent.prototype, "description", void 0);
|
|
119
|
+
__decorate([
|
|
120
|
+
Input()
|
|
121
|
+
], ObjectCardMainComponent.prototype, "buttonLabel", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
Input()
|
|
124
|
+
], ObjectCardMainComponent.prototype, "buttonModel", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
Output()
|
|
127
|
+
], ObjectCardMainComponent.prototype, "buttonClick", void 0);
|
|
128
|
+
__decorate([
|
|
129
|
+
ContentChild(ThumbnailComponent, { static: true })
|
|
130
|
+
], ObjectCardMainComponent.prototype, "thumbnailComponent", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
HostListener("window:resize")
|
|
133
|
+
], ObjectCardMainComponent.prototype, "onResize", null);
|
|
134
|
+
ObjectCardMainComponent = ObjectCardMainComponent_1 = __decorate([
|
|
135
|
+
Component({
|
|
136
|
+
selector: "erp-object-card-main",
|
|
137
|
+
template: "<ng-container *ngIf=\"hasThumbnail\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageFallback]=\"imageFallback\"\n [imageAlt]=\"imageAlt\"\n [iconClass]=\"iconClass\"\n [size]=\"thumbnailSize\"\n *ngIf=\"!thumbnailComponent\"\n [isBrand]=\"isBrand\"\n [ngClass]=\"{'expandable-thumbnail': expandableImage && imageSource}\"\n (click)=\"openImageModal()\"\n (keydown.enter)=\"openImageModal()\"\n (keydown.space)=\"openImageModal()\"\n tabindex=\"0\"\n role=\"button\"\n ></s-thumbnail>\n</ng-container>\n\n<p-dialog\n [header]=\"imageAlt || 'Visualizar'\"\n [(visible)]=\"showImageModal\"\n [modal]=\"true\"\n [dismissableMask]=\"true\"\n [styleClass]=\"'image-modal'\"\n [contentStyle]=\"{'overflow': 'auto', 'text-align': 'center'}\"\n>\n <s-loading-state [loading]=\"loadingFullImage\">\n <img\n *ngIf=\"fullImageSource\"\n [src]=\"fullImageSource\"\n alt=\"\"\n [attr.alt]=\"getImageAltText()\"\n width=\"100%\"\n height=\"auto\"\n class=\"expanded-image\"\n />\n </s-loading-state>\n</p-dialog>\n\n<ng-container *ngIf=\"hasDescription\">\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n <ng-container *ngTemplateOutlet=\"textSpan; context: {\n elementId: id + '-label',\n text: label,\n cssClass: 'label',\n templateWrapper: labelTemplate\n }\"></ng-container>\n\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\n <ng-container *ngTemplateOutlet=\"textSpan; context: {\n elementId: id + '-description',\n text: description,\n cssClass: 'description',\n templateWrapper: descriptionTemplate\n }\"></ng-container>\n\n <s-button\n [id]=\"id + '-button'\"\n *ngIf=\"buttonLabel\"\n styleClass=\"object-card-button\"\n priority=\"link\"\n [label]=\"buttonLabel\"\n [model]=\"buttonModel\"\n size=\"small\"\n (onClick)=\"buttonClick.emit($event)\"\n ></s-button>\n\n <ng-template\n #textSpan\n let-elementId=\"elementId\"\n let-text=\"text\"\n let-cssClass=\"cssClass\"\n let-templateWrapper=\"templateWrapper\"\n >\n <span\n [id]=\"elementId\"\n *ngIf=\"!templateWrapper.children.length\"\n [class]=\"cssClass\"\n [pTooltip]=\"text\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n >{{ text }}</span>\n </ng-template>\n </div>\n</ng-container>\n",
|
|
138
|
+
styles: [":host{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;min-height:70px}.info-container{margin-left:10px;-ms-flex:1;flex:1}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{display:block;font-weight:700}.info-container .description{color:#999;display:block}@media (max-width:767px){.info-container,.info-container span{white-space:normal}}::ng-deep .expandable-thumbnail{cursor:pointer;transition:opacity .2s}::ng-deep .expandable-thumbnail:hover{opacity:.8}::ng-deep .image-modal .p-dialog{max-width:90vw;max-height:90vh}::ng-deep .image-modal .expanded-image{max-width:80vw;max-height:80vh;width:auto;height:auto;object-fit:contain}"]
|
|
139
|
+
})
|
|
140
|
+
], ObjectCardMainComponent);
|
|
141
|
+
export { ObjectCardMainComponent };
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQtbWFpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL29iamVjdC1jYXJkL2VsZW1lbnRzL21haW4vb2JqZWN0LWNhcmQtbWFpbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPN0MsSUFBYSx1QkFBdUIsK0JBQXBDLE1BQWEsdUJBQXVCO0lBQXBDO1FBSVcsT0FBRSxHQUFHLHdCQUF3Qix5QkFBdUIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBWW5FLGNBQVMsR0FBRyxpQkFBaUIsQ0FBQztRQUc5QixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUdwQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUd0QixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2hCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBa0J4QixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBS3BELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV4QixtQkFBYyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFvRWxELENBQUM7SUFsRUcsSUFBVyxhQUFhLENBQUMsS0FBb0I7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxJQUFJ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R2hFO0lBREMsS0FBSyxFQUFFO3NEQUNjO0FBR3RCO0lBREMsS0FBSyxFQUFFOzREQUNvQjtBQUc1QjtJQURDLEtBQUssRUFBRTs0REFDb0I7QUFHNUI7SUFEQyxLQUFLLEVBQUU7NERBQ3dCO0FBR2hDO0lBREMsTUFBTSxFQUFFOzREQUNrRDtBQUczRDtJQURDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzttRUFDTDtBQW9COUM7SUFEQyxZQUFZLENBQUMsZUFBZSxDQUFDO3VEQUc3QjtBQXZFUSx1QkFBdUI7SUFMbkMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQywyN0ZBQWdEOztLQUVuRCxDQUFDO0dBQ1csdUJBQXVCLENBMkhuQztTQTNIWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQgeyBUaHVtYm5haWxTaXplIH0gZnJvbSBcIi4uLy4uLy4uL3RodW1ibmFpbC90aHVtYm5haWwtc2l6ZVwiO1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL3RodW1ibmFpbC90aHVtYm5haWwuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBCcmVha3BvaW50cyB9IGZyb20gXCIuLi8uLi8uLi91dGlsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJlcnAtb2JqZWN0LWNhcmQtbWFpblwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vb2JqZWN0LWNhcmQtbWFpbi5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9vYmplY3QtY2FyZC1tYWluLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RDYXJkTWFpbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBlcnAtb2JqZWN0LWNhcmQtbWFpbi0ke09iamVjdENhcmRNYWluQ29tcG9uZW50LmdldE5leHRJZCgpfWA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbWFnZVNvdXJjZT86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGltYWdlRmFsbGJhY2s/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbWFnZUFsdD86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25DbGFzcyA9IFwiZmEgZmEtcGljdHVyZS1vXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoYXNUaHVtYm5haWwgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGFzRGVzY3JpcHRpb24gPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXNCcmFuZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhwYW5kYWJsZUltYWdlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbWFnZUxvYWRlcj86ICgpID0+IE9ic2VydmFibGU8c3RyaW5nPiB8IFByb21pc2U8c3RyaW5nPjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsPzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBidXR0b25MYWJlbD86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJ1dHRvbk1vZGVsPzogTWVudUl0ZW1bXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBidXR0b25DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAQ29udGVudENoaWxkKFRodW1ibmFpbENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgdGh1bWJuYWlsQ29tcG9uZW50OiBUaHVtYm5haWxDb21wb25lbnQ7XG5cbiAgICBwdWJsaWMgc2hvd0ltYWdlTW9kYWwgPSBmYWxzZTtcbiAgICBwdWJsaWMgZnVsbEltYWdlU291cmNlPzogc3RyaW5nO1xuICAgIHB1YmxpYyBsb2FkaW5nRnVsbEltYWdlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF90aHVtYm5haWxTaXplID0gVGh1bWJuYWlsU2l6ZS5NZWRpdW07XG5cbiAgICBwdWJsaWMgc2V0IHRodW1ibmFpbFNpemUodmFsdWU6IFRodW1ibmFpbFNpemUpIHtcbiAgICAgICAgdGhpcy5fdGh1bWJuYWlsU2l6ZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy50aHVtYm5haWxDb21wb25lbnQpe1xuICAgICAgICAgICAgdGhpcy50aHVtYm5haWxDb21wb25lbnQuc2l6ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0aHVtYm5haWxTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGh1bWJuYWlsU2l6ZTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxuICAgIHB1YmxpYyBvblJlc2l6ZSgpIHtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG5cbiAgICAgICAgaWYgKHdpbmRvd1dpZHRoIDw9IEJyZWFrcG9pbnRzLlNNX01BWCkge1xuICAgICAgICAgICAgdGhpcy50aHVtYm5haWxTaXplID0gVGh1bWJuYWlsU2l6ZS5TbWFsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsU2l6ZSA9IFRodW1ibmFpbFNpemUuTWVkaXVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TmV4dElkKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGlkID0gT2JqZWN0Q2FyZE1haW5Db21wb25lbnQubmV4dElkO1xuICAgICAgICBPYmplY3RDYXJkTWFpbkNvbXBvbmVudC5uZXh0SWQrKztcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJbWFnZUFsdFRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgYWx0VGV4dCA9IHRoaXMuaW1hZ2VBbHQgfHwgdGhpcy5sYWJlbCB8fCAnJztcbiAgICAgICAgcmV0dXJuIGFsdFRleHQucmVwbGFjZSgvXFxiaW1hZ2VcXGIvZ2ksICcnKS5yZXBsYWNlKC9cXGJpbWFnZW1cXGIvZ2ksICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG9wZW5JbWFnZU1vZGFsKCkge1xuICAgICAgICBpZiAoIXRoaXMuZXhwYW5kYWJsZUltYWdlIHx8ICF0aGlzLmltYWdlU291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNob3dJbWFnZU1vZGFsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mdWxsSW1hZ2VTb3VyY2UgPSBhd2FpdCB0aGlzLnJlc29sdmVGdWxsSW1hZ2VTb3VyY2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHJlc29sdmVGdWxsSW1hZ2VTb3VyY2UoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKCF0aGlzLmltYWdlTG9hZGVyIHx8IHRoaXMuZnVsbEltYWdlU291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mdWxsSW1hZ2VTb3VyY2UgfHwgdGhpcy5pbWFnZVNvdXJjZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9hZGluZ0Z1bGxJbWFnZSA9IHRydWU7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmltYWdlTG9hZGVyKCk7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UgPyByZXN1bHQgOiByZXN1bHQudG9Qcm9taXNlKCkpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJybyBhbyBjYXJyZWdhciBpbWFnZW0gY29tcGxldGE6JywgZXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VTb3VyY2U7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdGdWxsSW1hZ2UgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from "./object-card.module";
|
|
2
|
+
export * from "./object-card.component";
|
|
3
|
+
export * from "./elements/field/object-card-field.component";
|
|
4
|
+
export * from "./elements/main/object-card-main.component";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL29iamVjdC1jYXJkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNENBQTRDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9vYmplY3QtY2FyZC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL29iamVjdC1jYXJkLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZWxlbWVudHMvZmllbGQvb2JqZWN0LWNhcmQtZmllbGQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbGVtZW50cy9tYWluL29iamVjdC1jYXJkLW1haW4uY29tcG9uZW50XCI7XG4iXX0=
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
var ObjectCardComponent_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import { animate, state, style, transition, trigger } from "@angular/animations";
|
|
4
|
+
import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, ViewChild } from "@angular/core";
|
|
5
|
+
import { EnumSeverity } from "../shared/models/enum-severity";
|
|
6
|
+
import { Breakpoints } from "../utils/breakpoints";
|
|
7
|
+
import { ObjectCardFieldComponent } from "./elements/field/object-card-field.component";
|
|
8
|
+
import { ObjectCardMainComponent } from "./elements/main/object-card-main.component";
|
|
9
|
+
let ObjectCardComponent = ObjectCardComponent_1 = class ObjectCardComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.id = `erp-object-card-${ObjectCardComponent_1.getNextId()}`;
|
|
12
|
+
this.expanded = false;
|
|
13
|
+
this.expandTooltip = "Abrir painel";
|
|
14
|
+
this.collapseTooltip = "Fechar painel";
|
|
15
|
+
this.fieldsMinWidth = 200;
|
|
16
|
+
this.expandedChange = new EventEmitter();
|
|
17
|
+
this.maxVisibleFields = 0;
|
|
18
|
+
this.severity = EnumSeverity.Default;
|
|
19
|
+
this.EnumSeverity = EnumSeverity;
|
|
20
|
+
}
|
|
21
|
+
ngAfterContentChecked() {
|
|
22
|
+
this.update();
|
|
23
|
+
}
|
|
24
|
+
update() {
|
|
25
|
+
const windowWidth = window.innerWidth;
|
|
26
|
+
const containerWidth = this.container.nativeElement.getBoundingClientRect().width;
|
|
27
|
+
const mainFieldWidth = this.cardMainContainer.nativeElement.getBoundingClientRect().width;
|
|
28
|
+
let remainingSpace = containerWidth - mainFieldWidth;
|
|
29
|
+
const fieldsMinWidth = this.fieldsMinWidth;
|
|
30
|
+
const expandIconWidth = this.iconContainer.nativeElement.getBoundingClientRect().width;
|
|
31
|
+
let maxFieldQtd;
|
|
32
|
+
if (windowWidth <= Breakpoints.SM_MAX) {
|
|
33
|
+
maxFieldQtd = 0;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
maxFieldQtd = Math.floor((remainingSpace) / fieldsMinWidth);
|
|
37
|
+
}
|
|
38
|
+
const hasExpandIcon = maxFieldQtd && maxFieldQtd < this.fields.length;
|
|
39
|
+
if (hasExpandIcon) {
|
|
40
|
+
this.iconContainer.nativeElement.style.display = 'flex';
|
|
41
|
+
remainingSpace = remainingSpace - expandIconWidth;
|
|
42
|
+
maxFieldQtd = Math.floor((remainingSpace) / fieldsMinWidth);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.iconContainer.nativeElement.style.display = 'none';
|
|
46
|
+
}
|
|
47
|
+
this.maxVisibleFields = maxFieldQtd;
|
|
48
|
+
if (maxFieldQtd >= this.fields.length && this.expanded) {
|
|
49
|
+
this.collapse();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
toggle() {
|
|
53
|
+
this.expanded ? this.collapse() : this.expand();
|
|
54
|
+
}
|
|
55
|
+
expand() {
|
|
56
|
+
this.expanded = true;
|
|
57
|
+
this.expandedChange.emit(this.expanded);
|
|
58
|
+
}
|
|
59
|
+
collapse() {
|
|
60
|
+
this.expanded = false;
|
|
61
|
+
this.expandedChange.emit(this.expanded);
|
|
62
|
+
}
|
|
63
|
+
static getNextId() {
|
|
64
|
+
const id = ObjectCardComponent_1.nextId;
|
|
65
|
+
ObjectCardComponent_1.nextId++;
|
|
66
|
+
return id;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
ObjectCardComponent.nextId = 0;
|
|
70
|
+
__decorate([
|
|
71
|
+
Input()
|
|
72
|
+
], ObjectCardComponent.prototype, "id", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
Input()
|
|
75
|
+
], ObjectCardComponent.prototype, "expanded", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
Input()
|
|
78
|
+
], ObjectCardComponent.prototype, "expandTooltip", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
Input()
|
|
81
|
+
], ObjectCardComponent.prototype, "collapseTooltip", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
Input()
|
|
84
|
+
], ObjectCardComponent.prototype, "fieldsMinWidth", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
Output()
|
|
87
|
+
], ObjectCardComponent.prototype, "expandedChange", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
ContentChild(ObjectCardMainComponent, { static: true })
|
|
90
|
+
], ObjectCardComponent.prototype, "main", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
ContentChildren(ObjectCardFieldComponent, { descendants: true })
|
|
93
|
+
], ObjectCardComponent.prototype, "fields", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
Input()
|
|
96
|
+
], ObjectCardComponent.prototype, "severity", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
Input()
|
|
99
|
+
], ObjectCardComponent.prototype, "borderButtonOptions", void 0);
|
|
100
|
+
__decorate([
|
|
101
|
+
ViewChild('contentContainer', { static: true })
|
|
102
|
+
], ObjectCardComponent.prototype, "container", void 0);
|
|
103
|
+
__decorate([
|
|
104
|
+
ViewChild('cardMainContainer', { static: true })
|
|
105
|
+
], ObjectCardComponent.prototype, "cardMainContainer", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
ViewChild('iconContainer', { static: true })
|
|
108
|
+
], ObjectCardComponent.prototype, "iconContainer", void 0);
|
|
109
|
+
ObjectCardComponent = ObjectCardComponent_1 = __decorate([
|
|
110
|
+
Component({
|
|
111
|
+
selector: "erp-object-card",
|
|
112
|
+
template: "<div [id]=\"id\" class=\"container\">\n <s-border-button\n *ngIf=\"\n borderButtonOptions?.visible\n ? borderButtonOptions?.visible(severity)\n : false\n \"\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields.length > maxVisibleFields,\n 'with-visible-fields': fields.length && maxVisibleFields,\n 'main-container--severity-default': severity === EnumSeverity.Default,\n 'main-container--severity-info': severity === EnumSeverity.Info,\n 'main-container--severity-warn': severity === EnumSeverity.Warn,\n 'main-container--severity-error': severity === EnumSeverity.Error,\n 'main-container--severity-success': severity == EnumSeverity.Success\n }\"\n >\n <div class=\"object-content\">\n <div class=\"erp-object-card-main\" #cardMainContainer [style.min-width.px]=\"fieldsMinWidth\">\n <ng-content select=\"erp-object-card-main\"></ng-content>\n </div>\n\n <div class=\"divider\" *ngIf=\"maxVisibleFields && fields.length\"></div>\n\n <div *ngFor=\"let field of (fields.toArray() | slice: 0:maxVisibleFields)\"\n class=\"erp-object-card-field\"\n [style.min-width.px]=\"fieldsMinWidth\">\n\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n </div>\n\n <button\n #iconContainer\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n (click)=\"toggle()\"\n [pTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n [attr.aria-label]=\"expanded ? collapseTooltip : expandTooltip\"\n title=\"Expandir/Recolher\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n type=\"button\"\n >\n <span\n [id]=\"id + '-expand-icon'\"\n class=\"expand-icon fa\"\n [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"\n ></span>\n </button>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default':\n severity === EnumSeverity.Default,\n 'expandable-container--severity-info': severity === EnumSeverity.Info,\n 'expandable-container--severity-warn': severity === EnumSeverity.Warn,\n 'expandable-container--severity-error': severity === EnumSeverity.Error,\n 'expandable-container--severity-success':\n severity == EnumSeverity.Success\n }\"\n >\n <div class=\"childlist\">\n <ng-container\n *ngFor=\"\n let field of fields.toArray()\n | slice : maxVisibleFields : fields.length\n \"\n >\n <div class=\"erp-object-card-field\" [style.min-width.px]=\"fieldsMinWidth\">\n <ng-container\n *ngTemplateOutlet=\"field.content\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n",
|
|
113
|
+
animations: [
|
|
114
|
+
trigger("expandableContent", [
|
|
115
|
+
state("*", style({
|
|
116
|
+
height: "0",
|
|
117
|
+
})),
|
|
118
|
+
state("false", style({
|
|
119
|
+
height: "0",
|
|
120
|
+
})),
|
|
121
|
+
state("true", style({
|
|
122
|
+
height: "*",
|
|
123
|
+
})),
|
|
124
|
+
transition("* => true", animate("200ms ease-out")),
|
|
125
|
+
transition("false <=> true", animate("200ms ease-out")),
|
|
126
|
+
]),
|
|
127
|
+
trigger("BorderButtonAnimation", [
|
|
128
|
+
transition(":enter", [
|
|
129
|
+
style({ transform: "scaleY(0)", opacity: 0 }),
|
|
130
|
+
animate("300ms ease", style({ transform: "scaleY(1)", opacity: 1 })),
|
|
131
|
+
]),
|
|
132
|
+
transition(":leave", [
|
|
133
|
+
style({ transform: "scaleY(1)", opacity: 1 }),
|
|
134
|
+
animate("300ms ease", style({ transform: "scaleY(0)", opacity: 0 })),
|
|
135
|
+
]),
|
|
136
|
+
]),
|
|
137
|
+
],
|
|
138
|
+
styles: [":host{display:block}:host::ng-deep .sds-badge{height:auto;white-space:normal}.container{margin-bottom:20px;position:relative}.main-container{display:-ms-flexbox;display:flex}.expandable-container,.main-container{background-color:#fff;border:1px solid #ccc;position:relative;overflow:hidden;width:100%}.expandable-container--severity-default{border-color:#ccc;border-top:initial}.expandable-container--severity-info{transition:border-color .5s;border-color:#428bca;border-top:initial}.expandable-container--severity-warn{transition:border-color .5s;border-color:#f8931f;border-top:initial}.expandable-container--severity-error{transition:border-color .5s;border-color:#c13018;border-top:initial}.expandable-container--severity-success{transition:border-color .5s;border-color:#0c9348;border-top:initial}.main-container--severity-default{border-color:#ccc}.main-container--severity-info{transition:border-color .5s;border-color:#428bca}.main-container--severity-warn{transition:border-color .5s;border-color:#f8931f}.main-container--severity-error{transition:border-color .5s;border-color:#c13018}.main-container--severity-success{transition:border-color .5s;border-color:#0c9348}.object-card__border-button{position:absolute;top:-13px;right:15px;z-index:1}.expandable-container{border-top:none;box-shadow:inset 0 6px 4px -4px #ddd;margin-top:-1px}.expand-icon-container{display:none;text-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;padding:12px;background:0 0;border:none;color:inherit}.expand-icon{-ms-flex:1;flex:1}.object-content{display:-ms-flexbox;display:flex;width:100%}.erp-object-card-main{overflow:hidden;padding:15px}.main-container.with-visible-fields .erp-object-card-main{max-width:30%}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.main-container.with-visible-fields .erp-object-card-main{width:20%}}.erp-object-card-field{overflow:hidden;height:100%}.main-container .erp-object-card-field{padding:15px}.main-container .divider{width:1px;-ms-flex-negative:0;flex-shrink:0;background-color:#ccc;margin:15px -1px 15px 0}.main-container.with-hidden-fields .object-content{width:calc(100% - 35px)}.main-container.with-hidden-fields .expand-icon-container{display:-ms-flexbox;display:flex}::ng-deep .object-card-button{padding-left:0!important;padding-right:10px!important;border:none!important;height:auto!important;min-width:auto!important;text-align:left!important}@media (max-width:767px){.erp-object-card-main{max-width:calc(100% - 50px)}}.childlist{width:100%;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:1em;gap:1em}"]
|
|
139
|
+
})
|
|
140
|
+
], ObjectCardComponent);
|
|
141
|
+
export { ObjectCardComponent };
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9vYmplY3QtY2FyZC9vYmplY3QtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQXlDckYsSUFBYSxtQkFBbUIsMkJBQWhDLE1BQWEsbUJBQW1CO0lBQWhDO1FBSVcsT0FBRSxHQUFHLG1CQUFtQixxQkFBbUIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBRzFELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsa0JBQWEsR0FBRyxjQUFjLENBQUM7UUFHL0Isb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFHbEMsbUJBQWMsR0FBRyxHQUFHLENBQUM7UUFHckIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBUTdDLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUc1QixhQUFRLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUt2QixpQkFBWSxHQUFHLFlBQVksQ0FBQztJQW9FekMs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QUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUM3QyxPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3ZFLENBQUM7Z0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDakIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQzdDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDdkUsQ0FBQzthQUNMLENBQUM7U0FDTDs7S0FDSixDQUFDO0dBQ1csbUJBQW1CLENBdUcvQjtTQXZHWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEJvcmRlckJ1dHRvbk9wdGlvbnMgfSBmcm9tIFwiLi4vc2hhcmVkL21vZGVscy9ib3JkZXItYnV0dG9uLW9wdGlvbnNcIjtcbmltcG9ydCB7IEVudW1TZXZlcml0eSB9IGZyb20gXCIuLi9zaGFyZWQvbW9kZWxzL2VudW0tc2V2ZXJpdHlcIjtcbmltcG9ydCB7IEJyZWFrcG9pbnRzIH0gZnJvbSBcIi4uL3V0aWxzL2JyZWFrcG9pbnRzXCI7XG5pbXBvcnQgeyBPYmplY3RDYXJkRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9maWVsZC9vYmplY3QtY2FyZC1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IE9iamVjdENhcmRNYWluQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvbWFpbi9vYmplY3QtY2FyZC1tYWluLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJlcnAtb2JqZWN0LWNhcmRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL29iamVjdC1jYXJkLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL29iamVjdC1jYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcihcImV4cGFuZGFibGVDb250ZW50XCIsIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiKlwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjBcIixcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiZmFsc2VcIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIwXCIsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcInRydWVcIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIqXCIsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiKiA9PiB0cnVlXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLW91dFwiKSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiZmFsc2UgPD0+IHRydWVcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2Utb3V0XCIpKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoXCJCb3JkZXJCdXR0b25BbmltYXRpb25cIiwgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbihcIjplbnRlclwiLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDApXCIsIG9wYWNpdHk6IDAgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcIjMwMG1zIGVhc2VcIiwgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDEpXCIsIG9wYWNpdHk6IDEgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiOmxlYXZlXCIsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogXCJzY2FsZVkoMSlcIiwgb3BhY2l0eTogMSB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKFwiMzAwbXMgZWFzZVwiLCBzdHlsZSh7IHRyYW5zZm9ybTogXCJzY2FsZVkoMClcIiwgb3BhY2l0eTogMCB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuICAgIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBlcnAtb2JqZWN0LWNhcmQtJHtPYmplY3RDYXJkQ29tcG9uZW50LmdldE5leHRJZCgpfWA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBleHBhbmRlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhwYW5kVG9vbHRpcCA9IFwiQWJyaXIgcGFpbmVsXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb2xsYXBzZVRvb2x0aXAgPSBcIkZlY2hhciBwYWluZWxcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpZWxkc01pbldpZHRoID0gMjAwO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGV4cGFuZGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChPYmplY3RDYXJkTWFpbkNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgbWFpbjogT2JqZWN0Q2FyZE1haW5Db21wb25lbnQ7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKE9iamVjdENhcmRGaWVsZENvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHB1YmxpYyBmaWVsZHM/OiBRdWVyeUxpc3Q8T2JqZWN0Q2FyZEZpZWxkQ29tcG9uZW50PjtcblxuICAgIHB1YmxpYyBtYXhWaXNpYmxlRmllbGRzID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V2ZXJpdHkgPSBFbnVtU2V2ZXJpdHkuRGVmYXVsdDtcblxuICAgIEBJbnB1dCgpXG4gICAgYm9yZGVyQnV0dG9uT3B0aW9uczogQm9yZGVyQnV0dG9uT3B0aW9ucztcblxuICAgIHJlYWRvbmx5IEVudW1TZXZlcml0eSA9IEVudW1TZXZlcml0eTtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnRDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NhcmRNYWluQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcmRNYWluQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuXG4gICAgQFZpZXdDaGlsZCgnaWNvbkNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZSgpIHtcbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICBjb25zdCBtYWluRmllbGRXaWR0aCA9IHRoaXMuY2FyZE1haW5Db250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgbGV0IHJlbWFpbmluZ1NwYWNlID0gIGNvbnRhaW5lcldpZHRoIC0gbWFpbkZpZWxkV2lkdGg7XG4gICAgICAgIGNvbnN0IGZpZWxkc01pbldpZHRoID0gdGhpcy5maWVsZHNNaW5XaWR0aDtcbiAgICAgICAgY29uc3QgZXhwYW5kSWNvbldpZHRoID0gdGhpcy5pY29uQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cbiAgICAgICAgbGV0IG1heEZpZWxkUXRkOiBudW1iZXI7XG5cbiAgICAgICAgaWYgKHdpbmRvd1dpZHRoIDw9IEJyZWFrcG9pbnRzLlNNX01BWCkge1xuICAgICAgICAgICAgbWF4RmllbGRRdGQgPSAwXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYXhGaWVsZFF0ZCA9IE1hdGguZmxvb3IoKHJlbWFpbmluZ1NwYWNlKSAvIGZpZWxkc01pbldpZHRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhhc0V4cGFuZEljb24gPSBtYXhGaWVsZFF0ZCAmJiBtYXhGaWVsZFF0ZCA8IHRoaXMuZmllbGRzLmxlbmd0aFxuXG4gICAgICAgIGlmIChoYXNFeHBhbmRJY29uKSB7XG4gICAgICAgICAgICB0aGlzLmljb25Db250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgICAgICAgICAgcmVtYWluaW5nU3BhY2UgPSByZW1haW5pbmdTcGFjZSAtIGV4cGFuZEljb25XaWR0aDtcbiAgICAgICAgICAgIG1heEZpZWxkUXRkID0gTWF0aC5mbG9vcigocmVtYWluaW5nU3BhY2UpIC8gZmllbGRzTWluV2lkdGgpO1xuICAgICAgICB9ZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmljb25Db250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tYXhWaXNpYmxlRmllbGRzID0gbWF4RmllbGRRdGQ7XG5cbiAgICAgICAgaWYgKG1heEZpZWxkUXRkID49IHRoaXMuZmllbGRzLmxlbmd0aCAmJiB0aGlzLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID8gdGhpcy5jb2xsYXBzZSgpIDogdGhpcy5leHBhbmQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwYW5kKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb2xsYXBzZSgpIHtcbiAgICAgICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TmV4dElkKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGlkID0gT2JqZWN0Q2FyZENvbXBvbmVudC5uZXh0SWQ7XG4gICAgICAgIE9iamVjdENhcmRDb21wb25lbnQubmV4dElkKys7XG4gICAgICAgIHJldHVybiBpZDtcbiAgICB9XG5cbn1cbiJdfQ==
|