@esfaenza/utility-components 11.2.7 → 13.3.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/esfaenza-utility-components.d.ts +1 -0
- package/esm2020/lib/components/currency-span/currency-span.component.mjs +34 -0
- package/esm2020/lib/components/shorten-span/shorten-span.component.mjs +51 -0
- package/esm2020/lib/components/simple-dropdown/simple-dropdown.component.mjs +34 -0
- package/esm2020/lib/components/status-badge/status-badge.component.mjs +49 -0
- package/esm2020/lib/utility-components.module.mjs +69 -0
- package/fesm2015/esfaenza-utility-components.mjs +246 -0
- package/fesm2015/esfaenza-utility-components.mjs.map +1 -0
- package/fesm2020/esfaenza-utility-components.mjs +245 -0
- package/fesm2020/esfaenza-utility-components.mjs.map +1 -0
- package/lib/components/currency-span/currency-span.component.d.ts +3 -0
- package/lib/components/shorten-span/shorten-span.component.d.ts +3 -0
- package/lib/components/simple-dropdown/simple-dropdown.component.d.ts +3 -0
- package/lib/components/status-badge/status-badge.component.d.ts +3 -0
- package/lib/utility-components.module.d.ts +13 -0
- package/package.json +22 -10
- package/bundles/esfaenza-utility-components.umd.js +0 -236
- package/bundles/esfaenza-utility-components.umd.js.map +0 -1
- package/bundles/esfaenza-utility-components.umd.min.js +0 -2
- package/bundles/esfaenza-utility-components.umd.min.js.map +0 -1
- package/esfaenza-utility-components.metadata.json +0 -1
- package/esm2015/lib/components/currency-span/currency-span.component.js +0 -32
- package/esm2015/lib/components/shorten-span/shorten-span.component.js +0 -54
- package/esm2015/lib/components/simple-dropdown/simple-dropdown.component.js +0 -32
- package/esm2015/lib/components/status-badge/status-badge.component.js +0 -41
- package/esm2015/lib/utility-components.module.js +0 -48
- package/fesm2015/esfaenza-utility-components.js +0 -218
- package/fesm2015/esfaenza-utility-components.js.map +0 -1
- /package/{esm2015/esfaenza-utility-components.js → esm2020/esfaenza-utility-components.mjs} +0 -0
- /package/{esm2015/lib/models/DropdownOption.js → esm2020/lib/models/DropdownOption.mjs} +0 -0
- /package/{esm2015/lib/models/UtilityComponentsModuleConfig.js → esm2020/lib/models/UtilityComponentsModuleConfig.mjs} +0 -0
- /package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
- /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Component, Input } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
/** Questo componente rappresenta un elemento span che formatta automaticamente un **CurrencyValue** in base al suo **CurrencyType** */
|
|
6
|
+
export class CurrencySpanComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
/** Tipo in base al quale formattare il valore **CurrencyValue** */
|
|
9
|
+
this.CurrencyType = CurrencyType.EMPTY;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
CurrencySpanComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrencySpanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
CurrencySpanComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CurrencySpanComponent, selector: "currency-span", inputs: { CurrencyValue: "CurrencyValue", CurrencyType: "CurrencyType" }, ngImport: i0, template: "<span [class.text-info]=\"CurrencyValue == 0\"\r\n [class.text-success]=\"CurrencyValue > 0\"\r\n [class.text-danger]=\"CurrencyValue < 0\">\r\n {{CurrencyValue ? (CurrencyValue | currency:'':'':'1.2-2':'it') : '0,00'}} {{CurrencyType}}\r\n</span>", pipes: { "currency": i1.CurrencyPipe } });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrencySpanComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: "currency-span", template: "<span [class.text-info]=\"CurrencyValue == 0\"\r\n [class.text-success]=\"CurrencyValue > 0\"\r\n [class.text-danger]=\"CurrencyValue < 0\">\r\n {{CurrencyValue ? (CurrencyValue | currency:'':'':'1.2-2':'it') : '0,00'}} {{CurrencyType}}\r\n</span>" }]
|
|
17
|
+
}], propDecorators: { CurrencyValue: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}], CurrencyType: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}] } });
|
|
22
|
+
/**
|
|
23
|
+
* @ignore
|
|
24
|
+
* Al momento non serve assolutamente a niente, ma per espandere eventualmente
|
|
25
|
+
* il componente in futuro lo lascio qui che schifo non fa.
|
|
26
|
+
*/
|
|
27
|
+
export var CurrencyType;
|
|
28
|
+
(function (CurrencyType) {
|
|
29
|
+
CurrencyType["EUR"] = "\u20AC";
|
|
30
|
+
CurrencyType["USD"] = "$";
|
|
31
|
+
CurrencyType["CAD"] = "$";
|
|
32
|
+
CurrencyType["EMPTY"] = "";
|
|
33
|
+
})(CurrencyType || (CurrencyType = {}));
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktc3Bhbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91dGlsaXR5LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2N1cnJlbmN5LXNwYW4vY3VycmVuY3ktc3Bhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91dGlsaXR5LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2N1cnJlbmN5LXNwYW4vY3VycmVuY3ktc3Bhbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVqRCx1SUFBdUk7QUFLdkksTUFBTSxPQUFPLHFCQUFxQjtJQUpsQztRQU9JLG1FQUFtRTtRQUMxRCxpQkFBWSxHQUFXLFlBQVksQ0FBQyxLQUFLLENBQUM7S0FDdEQ7O21IQUxZLHFCQUFxQjt1R0FBckIscUJBQXFCLCtIQ1JsQyxzUUFJTzs0RkRJTSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0ksZUFBZTs4QkFLaEIsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLOztBQUdWOzs7O0dBSUc7QUFDSCxNQUFNLENBQU4sSUFBWSxZQUtYO0FBTEQsV0FBWSxZQUFZO0lBQ3BCLDhCQUFTLENBQUE7SUFDVCx5QkFBUyxDQUFBO0lBQ1QseUJBQVMsQ0FBQTtJQUNULDBCQUFVLENBQUE7QUFDZCxDQUFDLEVBTFcsWUFBWSxLQUFaLFlBQVksUUFLdkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqIFF1ZXN0byBjb21wb25lbnRlIHJhcHByZXNlbnRhIHVuIGVsZW1lbnRvIHNwYW4gY2hlIGZvcm1hdHRhIGF1dG9tYXRpY2FtZW50ZSB1biAqKkN1cnJlbmN5VmFsdWUqKiBpbiBiYXNlIGFsIHN1byAqKkN1cnJlbmN5VHlwZSoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY3VycmVuY3ktc3BhblwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiY3VycmVuY3ktc3Bhbi5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeVNwYW5Db21wb25lbnQge1xyXG4gICAgLyoqIFZhbG9yZSBkYSBmb3JtYXR0YXJlICovXHJcbiAgICBASW5wdXQoKSBDdXJyZW5jeVZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICAvKiogVGlwbyBpbiBiYXNlIGFsIHF1YWxlIGZvcm1hdHRhcmUgaWwgdmFsb3JlICoqQ3VycmVuY3lWYWx1ZSoqICovXHJcbiAgICBASW5wdXQoKSBDdXJyZW5jeVR5cGU6IHN0cmluZyA9IEN1cnJlbmN5VHlwZS5FTVBUWTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBpZ25vcmVcclxuICogQWwgbW9tZW50byBub24gc2VydmUgYXNzb2x1dGFtZW50ZSBhIG5pZW50ZSwgbWEgcGVyIGVzcGFuZGVyZSBldmVudHVhbG1lbnRlIFxyXG4gKiBpbCBjb21wb25lbnRlIGluIGZ1dHVybyBsbyBsYXNjaW8gcXVpIGNoZSBzY2hpZm8gbm9uIGZhLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gQ3VycmVuY3lUeXBlIHtcclxuICAgIEVVUiA9IFwi4oKsXCIsXHJcbiAgICBVU0QgPSBcIiRcIixcclxuICAgIENBRCA9IFwiJFwiLFxyXG4gICAgRU1QVFkgPSBcIlwiXHJcbn0iLCI8c3BhbiBbY2xhc3MudGV4dC1pbmZvXT1cIkN1cnJlbmN5VmFsdWUgPT0gMFwiXHJcbiAgICAgIFtjbGFzcy50ZXh0LXN1Y2Nlc3NdPVwiQ3VycmVuY3lWYWx1ZSA+IDBcIlxyXG4gICAgICBbY2xhc3MudGV4dC1kYW5nZXJdPVwiQ3VycmVuY3lWYWx1ZSA8IDBcIj5cclxuICAgIHt7Q3VycmVuY3lWYWx1ZSA/IChDdXJyZW5jeVZhbHVlIHwgY3VycmVuY3k6Jyc6Jyc6JzEuMi0yJzonaXQnKSA6ICcwLDAwJ319IHt7Q3VycmVuY3lUeXBlfX1cclxuPC9zcGFuPiJdfQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Component, Input } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "ngx-toastr";
|
|
5
|
+
import * as i2 from "@esfaenza/extensions";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/material/tooltip";
|
|
8
|
+
/** Questo componente rappresenta un elemento span che tronca un **Text** in base ad una **MaxLength** */
|
|
9
|
+
export class ShortenSpanComponent {
|
|
10
|
+
/** @ignore */
|
|
11
|
+
constructor(toastrService, clipboardService) {
|
|
12
|
+
this.toastrService = toastrService;
|
|
13
|
+
this.clipboardService = clipboardService;
|
|
14
|
+
/** Mostra **Text** con stile grassetto */
|
|
15
|
+
this.Bold = false;
|
|
16
|
+
/** Lunghezza massima del testo, prima di venire troncato */
|
|
17
|
+
this.MaxLength = 999;
|
|
18
|
+
/** Abilita la possibilita di copiare **Text** col tasto sinistro del mouse */
|
|
19
|
+
this.ClipboardCopy = false;
|
|
20
|
+
/** Testo da mostrare nel tooltip di material, quando ha valore diverso da null */
|
|
21
|
+
this.ShowTooltip = null;
|
|
22
|
+
}
|
|
23
|
+
/** @ignore */
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.ShowTooltip = this.Text?.length >= this.MaxLength ? this.Text : null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Copia un valore nella clipboard
|
|
29
|
+
*
|
|
30
|
+
* @param {string} value Valore da copiare nella clipboard
|
|
31
|
+
*/
|
|
32
|
+
copyToClipboard(value) {
|
|
33
|
+
this.clipboardService.copyTextToClipboard(value);
|
|
34
|
+
this.toastrService.info('Testo copiato!', null, { positionClass: 'toast-top-center' });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
ShortenSpanComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ShortenSpanComponent, deps: [{ token: i1.ToastrService }, { token: i2.ClipboardService }], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
+
ShortenSpanComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ShortenSpanComponent, selector: "shorten-span", inputs: { Bold: "Bold", Text: "Text", MaxLength: "MaxLength", ClipboardCopy: "ClipboardCopy" }, ngImport: i0, template: "<span [class.utils-copy]=\"ClipboardCopy\" (click)=\"ClipboardCopy ? copyToClipboard(Text) : null\" *ngIf=\"Text\" [class.utils-bold]=\"Bold\" [matTooltip]=\"ShowTooltip\">\r\n {{Text.length > MaxLength + 3 ? Text.substr(0, MaxLength) + \"...\" : Text}}\r\n</span>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ShortenSpanComponent, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{ selector: "shorten-span", template: "<span [class.utils-copy]=\"ClipboardCopy\" (click)=\"ClipboardCopy ? copyToClipboard(Text) : null\" *ngIf=\"Text\" [class.utils-bold]=\"Bold\" [matTooltip]=\"ShowTooltip\">\r\n {{Text.length > MaxLength + 3 ? Text.substr(0, MaxLength) + \"...\" : Text}}\r\n</span>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}\n"] }]
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i1.ToastrService }, { type: i2.ClipboardService }]; }, propDecorators: { Bold: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], Text: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], MaxLength: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], ClipboardCopy: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}] } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnRlbi1zcGFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxpdHktY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2hvcnRlbi1zcGFuL3Nob3J0ZW4tc3Bhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91dGlsaXR5LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Nob3J0ZW4tc3Bhbi9zaG9ydGVuLXNwYW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRakQseUdBQXlHO0FBTXpHLE1BQU0sT0FBTyxvQkFBb0I7SUFVN0IsY0FBYztJQUNkLFlBQW9CLGFBQTRCLEVBQVUsZ0JBQWtDO1FBQXhFLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVY1RiwwQ0FBMEM7UUFDakMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUcvQiw0REFBNEQ7UUFDbkQsY0FBUyxHQUFXLEdBQUcsQ0FBQztRQUNqQyw4RUFBOEU7UUFDckUsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFLeEMsa0ZBQWtGO1FBQzNFLGdCQUFXLEdBQUcsSUFBSSxDQUFDO0lBSHNFLENBQUM7SUFLakcsY0FBYztJQUNkLFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWUsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7O2tIQTdCUSxvQkFBb0I7c0dBQXBCLG9CQUFvQixvSkNmakMsNlFBRU87NEZEYU0sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNJLGNBQWM7bUlBTWYsSUFBSTtzQkFBWixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQ2xpcGJvYXJkU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSBcIm5neC10b2FzdHJcIjtcclxuXHJcbi8qKiBRdWVzdG8gY29tcG9uZW50ZSByYXBwcmVzZW50YSB1biBlbGVtZW50byBzcGFuIGNoZSB0cm9uY2EgdW4gKipUZXh0KiogaW4gYmFzZSBhZCB1bmEgKipNYXhMZW5ndGgqKiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcInNob3J0ZW4tc3BhblwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwic2hvcnRlbi1zcGFuLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vc2hvcnRlbi1zcGFuLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaG9ydGVuU3BhbkNvbXBvbmVudCB7XHJcbiAgICAvKiogTW9zdHJhICoqVGV4dCoqIGNvbiBzdGlsZSBncmFzc2V0dG8gKi9cclxuICAgIEBJbnB1dCgpIEJvbGQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIC8qKiBUZXN0byBkYSBtb3N0cmFyZSBuZWxsbyBzcGFuICovXHJcbiAgICBASW5wdXQoKSBUZXh0OiBzdHJpbmc7XHJcbiAgICAvKiogTHVuZ2hlenphIG1hc3NpbWEgZGVsIHRlc3RvLCBwcmltYSBkaSB2ZW5pcmUgdHJvbmNhdG8gKi9cclxuICAgIEBJbnB1dCgpIE1heExlbmd0aDogbnVtYmVyID0gOTk5O1xyXG4gICAgLyoqIEFiaWxpdGEgbGEgcG9zc2liaWxpdGEgZGkgY29waWFyZSAqKlRleHQqKiBjb2wgdGFzdG8gc2luaXN0cm8gZGVsIG1vdXNlICovXHJcbiAgICBASW5wdXQoKSBDbGlwYm9hcmRDb3B5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSwgcHJpdmF0ZSBjbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICAvKiogVGVzdG8gZGEgbW9zdHJhcmUgbmVsIHRvb2x0aXAgZGkgbWF0ZXJpYWwsIHF1YW5kbyBoYSB2YWxvcmUgZGl2ZXJzbyBkYSBudWxsICovXHJcbiAgICBwdWJsaWMgU2hvd1Rvb2x0aXAgPSBudWxsO1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLlNob3dUb29sdGlwID0gdGhpcy5UZXh0Py5sZW5ndGggPj0gdGhpcy5NYXhMZW5ndGggPyB0aGlzLlRleHQgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29waWEgdW4gdmFsb3JlIG5lbGxhIGNsaXBib2FyZFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgVmFsb3JlIGRhIGNvcGlhcmUgbmVsbGEgY2xpcGJvYXJkXHJcbiAgICAgKi9cclxuICAgIGNvcHlUb0NsaXBib2FyZCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmNvcHlUZXh0VG9DbGlwYm9hcmQodmFsdWUpO1xyXG4gICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5pbmZvKCdUZXN0byBjb3BpYXRvIScsIG51bGwsIHsgcG9zaXRpb25DbGFzczogJ3RvYXN0LXRvcC1jZW50ZXInIH0pO1xyXG4gICAgfVxyXG59IiwiPHNwYW4gW2NsYXNzLnV0aWxzLWNvcHldPVwiQ2xpcGJvYXJkQ29weVwiIChjbGljayk9XCJDbGlwYm9hcmRDb3B5ID8gY29weVRvQ2xpcGJvYXJkKFRleHQpIDogbnVsbFwiICpuZ0lmPVwiVGV4dFwiIFtjbGFzcy51dGlscy1ib2xkXT1cIkJvbGRcIiBbbWF0VG9vbHRpcF09XCJTaG93VG9vbHRpcFwiPlxyXG4gICAge3tUZXh0Lmxlbmd0aCA+IE1heExlbmd0aCArIDMgPyBUZXh0LnN1YnN0cigwLCBNYXhMZW5ndGgpICsgXCIuLi5cIiA6IFRleHR9fVxyXG48L3NwYW4+Il19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Component, Input, ViewChild, ViewEncapsulation } from "@angular/core";
|
|
3
|
+
import { MatMenuTrigger } from "@angular/material/menu";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/menu";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
/** Questo componente si occupa di creare un context-menu con **Options** definite dal programmatore, che innescano una funzione quando selezionate */
|
|
8
|
+
export class SimpleDropdownComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
/** Opzioni da mostrare nel context-menu, composte da un campo Nome ed uno Operazione */
|
|
11
|
+
this.Options = [];
|
|
12
|
+
/** Posizione di Default del context-menu, evitare di smanazzare */
|
|
13
|
+
this.MenuPosition = { x: '0', y: '0' };
|
|
14
|
+
}
|
|
15
|
+
/** Serve per far apparire il menu dove definito da **MenuPosition**, facendo uso di **matMenuTrigger** */
|
|
16
|
+
Show(event) {
|
|
17
|
+
this.MenuPosition.x = event.clientX + 'px';
|
|
18
|
+
this.MenuPosition.y = event.clientY + 'px';
|
|
19
|
+
this.matMenuTrigger.openMenu();
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
SimpleDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SimpleDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
+
SimpleDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SimpleDropdownComponent, selector: "simple-dropdown", inputs: { Options: "Options" }, viewQueries: [{ propertyName: "matMenuTrigger", first: true, predicate: MatMenuTrigger, descendants: true, static: true }], ngImport: i0, template: "<div style=\"visibility: hidden; position: fixed;\" \r\n [style.left]=\"MenuPosition.x\" \r\n [style.top]=\"MenuPosition.y\" \r\n [matMenuTriggerFor]=\"rightMenu\">\r\n</div>\r\n\r\n<mat-menu #rightMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let item of Options\">\r\n <button mat-menu-item (click)=\"item.execute()\">{{item.label}}</button>\r\n </ng-container>\r\n</mat-menu>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}.mat-menu-content:not(:empty){padding:0!important}.mat-menu-panel{min-height:unset!important}.mat-menu-item{background-color:#fff!important;height:38px!important;line-height:38px!important}\n"], components: [{ type: i1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SimpleDropdownComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: "simple-dropdown", encapsulation: ViewEncapsulation.None, template: "<div style=\"visibility: hidden; position: fixed;\" \r\n [style.left]=\"MenuPosition.x\" \r\n [style.top]=\"MenuPosition.y\" \r\n [matMenuTriggerFor]=\"rightMenu\">\r\n</div>\r\n\r\n<mat-menu #rightMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let item of Options\">\r\n <button mat-menu-item (click)=\"item.execute()\">{{item.label}}</button>\r\n </ng-container>\r\n</mat-menu>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}.mat-menu-content:not(:empty){padding:0!important}.mat-menu-panel{min-height:unset!important}.mat-menu-item{background-color:#fff!important;height:38px!important;line-height:38px!important}\n"] }]
|
|
28
|
+
}], propDecorators: { matMenuTrigger: [{
|
|
29
|
+
type: ViewChild,
|
|
30
|
+
args: [MatMenuTrigger, { static: true }]
|
|
31
|
+
}], Options: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxpdHktY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2ltcGxlLWRyb3Bkb3duL3NpbXBsZS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91dGlsaXR5LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NpbXBsZS1kcm9wZG93bi9zaW1wbGUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFLeEQsc0pBQXNKO0FBT3RKLE1BQU0sT0FBTyx1QkFBdUI7SUFOcEM7UUFTSSx3RkFBd0Y7UUFDL0UsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFDeEMsbUVBQW1FO1FBQzVELGlCQUFZLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtLQVMzQztJQVJHLDBHQUEwRztJQUNuRyxJQUFJLENBQUMsS0FBaUI7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUUvQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOztxSEFkUSx1QkFBdUI7eUdBQXZCLHVCQUF1Qix1SUFFckIsY0FBYyw4RENoQjdCLG9aQVVXOzRGRElFLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxpQkFBaUIsaUJBR1osaUJBQWlCLENBQUMsSUFBSTs4QkFJUSxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRWxDLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcclxuXHJcbi8vIE1vZGVsc1xyXG5pbXBvcnQgeyBEcm9wZG93bk9wdGlvbiB9IGZyb20gXCIuLi8uLi9tb2RlbHMvRHJvcGRvd25PcHRpb25cIjtcclxuXHJcbi8qKiBRdWVzdG8gY29tcG9uZW50ZSBzaSBvY2N1cGEgZGkgY3JlYXJlIHVuIGNvbnRleHQtbWVudSBjb24gKipPcHRpb25zKiogZGVmaW5pdGUgZGFsIHByb2dyYW1tYXRvcmUsIGNoZSBpbm5lc2Nhbm8gdW5hIGZ1bnppb25lIHF1YW5kbyBzZWxlemlvbmF0ZSAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcInNpbXBsZS1kcm9wZG93blwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwic2ltcGxlLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vc2ltcGxlLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2ltcGxlRHJvcGRvd25Db21wb25lbnQge1xyXG4gICAgLyoqIFRyaWdnZXIgZGVsIE1hdE1lbnUsIHBlciBwb3RlciBkZWNpZGVyZSBxdWFuZG8gbW9zdHJhcmUgaWwgbWVudSBkYSBjb2RpY2UgKi9cclxuICAgIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIsIHsgc3RhdGljOiB0cnVlIH0pIG1hdE1lbnVUcmlnZ2VyOiBNYXRNZW51VHJpZ2dlcjtcclxuICAgIC8qKiBPcHppb25pIGRhIG1vc3RyYXJlIG5lbCBjb250ZXh0LW1lbnUsIGNvbXBvc3RlIGRhIHVuIGNhbXBvIE5vbWUgZWQgdW5vIE9wZXJhemlvbmUgKi9cclxuICAgIEBJbnB1dCgpIE9wdGlvbnM6IERyb3Bkb3duT3B0aW9uW10gPSBbXTtcclxuICAgIC8qKiBQb3NpemlvbmUgZGkgRGVmYXVsdCBkZWwgY29udGV4dC1tZW51LCBldml0YXJlIGRpIHNtYW5henphcmUgKi9cclxuICAgIHB1YmxpYyBNZW51UG9zaXRpb24gPSB7IHg6ICcwJywgeTogJzAnIH1cclxuICAgIC8qKiBTZXJ2ZSBwZXIgZmFyIGFwcGFyaXJlIGlsIG1lbnUgZG92ZSBkZWZpbml0byBkYSAqKk1lbnVQb3NpdGlvbioqLCBmYWNlbmRvIHVzbyBkaSAqKm1hdE1lbnVUcmlnZ2VyKiogKi9cclxuICAgIHB1YmxpYyBTaG93KGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5NZW51UG9zaXRpb24ueCA9IGV2ZW50LmNsaWVudFggKyAncHgnO1xyXG4gICAgICAgIHRoaXMuTWVudVBvc2l0aW9uLnkgPSBldmVudC5jbGllbnRZICsgJ3B4JztcclxuICAgICAgICB0aGlzLm1hdE1lbnVUcmlnZ2VyLm9wZW5NZW51KCk7XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufSIsIjxkaXYgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47IHBvc2l0aW9uOiBmaXhlZDtcIiBcclxuICAgICBbc3R5bGUubGVmdF09XCJNZW51UG9zaXRpb24ueFwiIFxyXG4gICAgIFtzdHlsZS50b3BdPVwiTWVudVBvc2l0aW9uLnlcIiBcclxuICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwicmlnaHRNZW51XCI+XHJcbjwvZGl2PlxyXG5cclxuPG1hdC1tZW51ICNyaWdodE1lbnU9XCJtYXRNZW51XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIE9wdGlvbnNcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIml0ZW0uZXhlY3V0ZSgpXCI+e3tpdGVtLmxhYmVsfX08L2J1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L21hdC1tZW51PiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Component, Input } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
/**
|
|
6
|
+
* Questo componente serve a mostrare un badge di stato, con un testo **Status**.
|
|
7
|
+
* Colorato in base a condizioni di **Info**, **Success**, **Warning** o **Danger**
|
|
8
|
+
*/
|
|
9
|
+
export class StatusBadgeComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
/** Dimensione del badge, in valore numerico (1 = 100%) */
|
|
12
|
+
this.Zoom = 1;
|
|
13
|
+
/** Valore dello stile 'top' del badge */
|
|
14
|
+
this.Top = "20px";
|
|
15
|
+
/** Valore dello stile 'right' del badge */
|
|
16
|
+
this.Right = "0px";
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.Info = this.Level == "Info";
|
|
20
|
+
this.Warning = this.Level == "Warning";
|
|
21
|
+
this.Success = this.Level == "Success";
|
|
22
|
+
this.Danger = this.Level == "Danger";
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
StatusBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StatusBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
StatusBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: StatusBadgeComponent, selector: "status-badge", inputs: { Status: "Status", Zoom: "Zoom", Top: "Top", Right: "Right", Level: "Level", Info: "Info", Warning: "Warning", Success: "Success", Danger: "Danger" }, ngImport: i0, template: "<div class=\"status-badge-container utils-no-selection\" [style.margin-top]=\"Top\" [style.margin-right]=\"Right\" [style.zoom]=\"Zoom\" [style.-moz-transform]=\"'scale(' + Zoom + ')'\">\r\n <span class=\"status-badge\"\r\n [class.status-badge-info]=\"Info\"\r\n [class.status-badge-warning]=\"Warning\"\r\n [class.status-badge-success]=\"Success\"\r\n [class.status-badge-danger]=\"Danger\">\r\n <i style=\"font-size: 18px;\"\r\n class=\"fa\" \r\n [class.fa-info-circle]=\"Info\" \r\n [class.fa-exclamation-circle]=\"Warning\" \r\n [class.fa-check-circle]=\"Success\" \r\n [class.fa-times-circle]=\"Danger\" \r\n \r\n >\r\n </i>\r\n <span *ngIf=\"Status\" \r\n class=\"ml-2 app-bold\"\r\n [class.text-info]=\"Info\"\r\n [class.text-warning]=\"Warning\"\r\n [class.text-success]=\"Success\"\r\n [class.text-danger]=\"Danger\">\r\n {{Status.toUpperCase()}}\r\n </span>\r\n </span>\r\n</div>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}.status-badge-container{position:absolute;right:0;margin-right:15px;top:0;white-space:nowrap}.status-badge{height:30px;padding:5px 10px;font-size:16px;line-height:20px;border-radius:5px}.status-badge-info{border:3px solid;color:#248dad}.status-badge-warning{border:3px solid;color:#f79a17}.status-badge-success{border:3px solid;color:#2d922d}.status-badge-danger{border:3px solid;color:#bf1725}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StatusBadgeComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: "status-badge", template: "<div class=\"status-badge-container utils-no-selection\" [style.margin-top]=\"Top\" [style.margin-right]=\"Right\" [style.zoom]=\"Zoom\" [style.-moz-transform]=\"'scale(' + Zoom + ')'\">\r\n <span class=\"status-badge\"\r\n [class.status-badge-info]=\"Info\"\r\n [class.status-badge-warning]=\"Warning\"\r\n [class.status-badge-success]=\"Success\"\r\n [class.status-badge-danger]=\"Danger\">\r\n <i style=\"font-size: 18px;\"\r\n class=\"fa\" \r\n [class.fa-info-circle]=\"Info\" \r\n [class.fa-exclamation-circle]=\"Warning\" \r\n [class.fa-check-circle]=\"Success\" \r\n [class.fa-times-circle]=\"Danger\" \r\n \r\n >\r\n </i>\r\n <span *ngIf=\"Status\" \r\n class=\"ml-2 app-bold\"\r\n [class.text-info]=\"Info\"\r\n [class.text-warning]=\"Warning\"\r\n [class.text-success]=\"Success\"\r\n [class.text-danger]=\"Danger\">\r\n {{Status.toUpperCase()}}\r\n </span>\r\n </span>\r\n</div>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}.status-badge-container{position:absolute;right:0;margin-right:15px;top:0;white-space:nowrap}.status-badge{height:30px;padding:5px 10px;font-size:16px;line-height:20px;border-radius:5px}.status-badge-info{border:3px solid;color:#248dad}.status-badge-warning{border:3px solid;color:#f79a17}.status-badge-success{border:3px solid;color:#2d922d}.status-badge-danger{border:3px solid;color:#bf1725}\n"] }]
|
|
30
|
+
}], propDecorators: { Status: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], Zoom: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], Top: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], Right: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], Level: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], Info: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], Warning: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], Success: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], Danger: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}] } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWJhZGdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxpdHktY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RhdHVzLWJhZGdlL3N0YXR1cy1iYWRnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91dGlsaXR5LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3N0YXR1cy1iYWRnZS9zdGF0dXMtYmFkZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFakQ7OztHQUdHO0FBTUgsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVFJLDBEQUEwRDtRQUMxQyxTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBQ2pDLHlDQUF5QztRQUN6QixRQUFHLEdBQVcsTUFBTSxDQUFDO1FBQ3JDLDJDQUEyQztRQUMzQixVQUFLLEdBQVcsS0FBSyxDQUFDO0tBa0J6QztJQU5HLFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDO0lBQ3pDLENBQUM7O2tIQXpCUSxvQkFBb0I7c0dBQXBCLG9CQUFvQixvTkNaakMsbWxDQXdCTTs0RkRaTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksY0FBYzs4QkFNUixNQUFNO3NCQUFyQixLQUFLO2dCQUVVLElBQUk7c0JBQW5CLEtBQUs7Z0JBRVUsR0FBRztzQkFBbEIsS0FBSztnQkFFVSxLQUFLO3NCQUFwQixLQUFLO2dCQUVVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBRVUsSUFBSTtzQkFBbkIsS0FBSztnQkFFVSxPQUFPO3NCQUF0QixLQUFLO2dCQUVVLE9BQU87c0JBQXRCLEtBQUs7Z0JBRVUsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKiogXHJcbiAqIFF1ZXN0byBjb21wb25lbnRlIHNlcnZlIGEgbW9zdHJhcmUgdW4gYmFkZ2UgZGkgc3RhdG8sIGNvbiB1biB0ZXN0byAqKlN0YXR1cyoqLlxyXG4gKiBDb2xvcmF0byBpbiBiYXNlIGEgY29uZGl6aW9uaSBkaSAqKkluZm8qKiwgKipTdWNjZXNzKiosICoqV2FybmluZyoqIG8gKipEYW5nZXIqKiBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwic3RhdHVzLWJhZGdlXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCJzdGF0dXMtYmFkZ2UuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9zdGF0dXMtYmFkZ2UuY29tcG9uZW50LnNjc3NcIl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN0YXR1c0JhZGdlQ29tcG9uZW50IHtcclxuICAgIC8qKiBFdGljaGV0dGEgZGEgbW9zdHJhcmUgbmVsIGJhZGdlICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgU3RhdHVzOiBzdHJpbmc7XHJcbiAgICAvKiogRGltZW5zaW9uZSBkZWwgYmFkZ2UsIGluIHZhbG9yZSBudW1lcmljbyAoMSA9IDEwMCUpICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgWm9vbTogbnVtYmVyID0gMTtcclxuICAgIC8qKiBWYWxvcmUgZGVsbG8gc3RpbGUgJ3RvcCcgZGVsIGJhZGdlICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgVG9wOiBzdHJpbmcgPSBcIjIwcHhcIjtcclxuICAgIC8qKiBWYWxvcmUgZGVsbG8gc3RpbGUgJ3JpZ2h0JyBkZWwgYmFkZ2UgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBSaWdodDogc3RyaW5nID0gXCIwcHhcIjtcclxuICAgIC8qKiBDb25kaXppb25lIHBlciBsYSBnZXN0aW9uZSBkZWwgbGl2ZWxsbyBkZWwgYmFkZ2UgLSAoSW5mbyBvIFdhcm5pbmcgbyBTdWNjZXNzIG8gRGFuZ2VyKSovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgTGV2ZWw6ICdJbmZvJyB8ICdXYXJuaW5nJyB8ICdTdWNjZXNzJyB8ICdEYW5nZXInO1xyXG4gICAgLyoqIFZhbG9yZSBib29sZW4gcmVsYXRpdm8gYWwgYmluZGluZyBkZWwgbGl2ZWxsbyBiYWRnZSAtIChJbmZvKSAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIEluZm86IGJvb2xlYW4gO1xyXG4gICAgLyoqIFZhbG9yZSBib29sZW4gcmVsYXRpdm8gYWwgYmluZGluZyBkZWwgbGl2ZWxsbyBiYWRnZSAtIChXYXJuaW5nKSAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIFdhcm5pbmc6IGJvb2xlYW47XHJcbiAgIC8qKiBWYWxvcmUgYm9vbGVuIHJlbGF0aXZvIGFsIGJpbmRpbmcgZGVsIGxpdmVsbG8gYmFkZ2UgLSAoU3VjY2VzcykgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBTdWNjZXNzOiBib29sZWFuIDtcclxuICAgIC8qKiBWYWxvcmUgYm9vbGVuIHJlbGF0aXZvIGFsIGJpbmRpbmcgZGVsIGxpdmVsbG8gYmFkZ2UgLSAoRGFuZ2VyKSAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIERhbmdlcjogYm9vbGVhbiA7XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5JbmZvID0gdGhpcy5MZXZlbCA9PSBcIkluZm9cIjtcclxuICAgICAgICB0aGlzLldhcm5pbmcgPSB0aGlzLkxldmVsID09IFwiV2FybmluZ1wiO1xyXG4gICAgICAgIHRoaXMuU3VjY2VzcyA9IHRoaXMuTGV2ZWwgPT0gXCJTdWNjZXNzXCI7XHJcbiAgICAgICAgdGhpcy5EYW5nZXIgPSB0aGlzLkxldmVsID09IFwiRGFuZ2VyXCI7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwic3RhdHVzLWJhZGdlLWNvbnRhaW5lciB1dGlscy1uby1zZWxlY3Rpb25cIiBbc3R5bGUubWFyZ2luLXRvcF09XCJUb3BcIiBbc3R5bGUubWFyZ2luLXJpZ2h0XT1cIlJpZ2h0XCIgW3N0eWxlLnpvb21dPVwiWm9vbVwiIFtzdHlsZS4tbW96LXRyYW5zZm9ybV09XCInc2NhbGUoJyArIFpvb20gKyAnKSdcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwic3RhdHVzLWJhZGdlXCJcclxuICAgICAgICAgIFtjbGFzcy5zdGF0dXMtYmFkZ2UtaW5mb109XCJJbmZvXCJcclxuICAgICAgICAgIFtjbGFzcy5zdGF0dXMtYmFkZ2Utd2FybmluZ109XCJXYXJuaW5nXCJcclxuICAgICAgICAgIFtjbGFzcy5zdGF0dXMtYmFkZ2Utc3VjY2Vzc109XCJTdWNjZXNzXCJcclxuICAgICAgICAgIFtjbGFzcy5zdGF0dXMtYmFkZ2UtZGFuZ2VyXT1cIkRhbmdlclwiPlxyXG4gICAgICAgIDxpIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4O1wiXHJcbiAgICAgICAgICAgY2xhc3M9XCJmYVwiIFxyXG4gICAgICAgICAgIFtjbGFzcy5mYS1pbmZvLWNpcmNsZV09XCJJbmZvXCIgXHJcbiAgICAgICAgICAgW2NsYXNzLmZhLWV4Y2xhbWF0aW9uLWNpcmNsZV09XCJXYXJuaW5nXCIgXHJcbiAgICAgICAgICAgW2NsYXNzLmZhLWNoZWNrLWNpcmNsZV09XCJTdWNjZXNzXCIgXHJcbiAgICAgICAgICAgW2NsYXNzLmZhLXRpbWVzLWNpcmNsZV09XCJEYW5nZXJcIiBcclxuICAgICAgICAgICBcclxuICAgICAgICAgICA+XHJcbiAgICAgICAgPC9pPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiU3RhdHVzXCIgXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtbC0yIGFwcC1ib2xkXCJcclxuICAgICAgICAgICAgICBbY2xhc3MudGV4dC1pbmZvXT1cIkluZm9cIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy50ZXh0LXdhcm5pbmddPVwiV2FybmluZ1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLnRleHQtc3VjY2Vzc109XCJTdWNjZXNzXCJcclxuICAgICAgICAgICAgICBbY2xhc3MudGV4dC1kYW5nZXJdPVwiRGFuZ2VyXCI+XHJcbiAgICAgICAgICAgIHt7U3RhdHVzLnRvVXBwZXJDYXNlKCl9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Modules
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { ToastrModule } from 'ngx-toastr';
|
|
5
|
+
import { FullExtensionsModule } from '@esfaenza/extensions';
|
|
6
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
7
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
8
|
+
import { UCCO_DEBUG_MODE, UCCO_LOCALE } from './tokens';
|
|
9
|
+
// Components
|
|
10
|
+
import { CurrencySpanComponent } from './components/currency-span/currency-span.component';
|
|
11
|
+
import { ShortenSpanComponent } from './components/shorten-span/shorten-span.component';
|
|
12
|
+
import { StatusBadgeComponent } from './components/status-badge/status-badge.component';
|
|
13
|
+
import { SimpleDropdownComponent } from './components/simple-dropdown/simple-dropdown.component';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
export class UtilityComponentsModule {
|
|
16
|
+
static forRoot(config) {
|
|
17
|
+
return {
|
|
18
|
+
ngModule: UtilityComponentsModule,
|
|
19
|
+
providers: [
|
|
20
|
+
{ provide: UCCO_LOCALE, useValue: config?.locale || 'it-IT' },
|
|
21
|
+
{ provide: UCCO_DEBUG_MODE, useValue: config?.debugMode != null ? config?.debugMode : false }
|
|
22
|
+
]
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
UtilityComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UtilityComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
27
|
+
UtilityComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UtilityComponentsModule, declarations: [CurrencySpanComponent,
|
|
28
|
+
ShortenSpanComponent,
|
|
29
|
+
StatusBadgeComponent,
|
|
30
|
+
SimpleDropdownComponent], imports: [CommonModule,
|
|
31
|
+
MatTooltipModule,
|
|
32
|
+
MatMenuModule,
|
|
33
|
+
FullExtensionsModule,
|
|
34
|
+
ToastrModule], exports: [CurrencySpanComponent,
|
|
35
|
+
ShortenSpanComponent,
|
|
36
|
+
StatusBadgeComponent,
|
|
37
|
+
SimpleDropdownComponent] });
|
|
38
|
+
UtilityComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UtilityComponentsModule, imports: [[
|
|
39
|
+
CommonModule,
|
|
40
|
+
MatTooltipModule,
|
|
41
|
+
MatMenuModule,
|
|
42
|
+
FullExtensionsModule,
|
|
43
|
+
ToastrModule
|
|
44
|
+
]] });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UtilityComponentsModule, decorators: [{
|
|
46
|
+
type: NgModule,
|
|
47
|
+
args: [{
|
|
48
|
+
declarations: [
|
|
49
|
+
CurrencySpanComponent,
|
|
50
|
+
ShortenSpanComponent,
|
|
51
|
+
StatusBadgeComponent,
|
|
52
|
+
SimpleDropdownComponent
|
|
53
|
+
],
|
|
54
|
+
imports: [
|
|
55
|
+
CommonModule,
|
|
56
|
+
MatTooltipModule,
|
|
57
|
+
MatMenuModule,
|
|
58
|
+
FullExtensionsModule,
|
|
59
|
+
ToastrModule
|
|
60
|
+
],
|
|
61
|
+
exports: [
|
|
62
|
+
CurrencySpanComponent,
|
|
63
|
+
ShortenSpanComponent,
|
|
64
|
+
StatusBadgeComponent,
|
|
65
|
+
SimpleDropdownComponent
|
|
66
|
+
]
|
|
67
|
+
}]
|
|
68
|
+
}] });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxpdHktY29tcG9uZW50cy9zcmMvbGliL3V0aWxpdHktY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4RCxhQUFhO0FBQ2IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7O0FBdUJqRyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0M7UUFDbkQsT0FBTztZQUNMLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUU7Z0JBQzdELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTthQUM5RjtTQUNGLENBQUM7SUFDSixDQUFDOztxSEFUVSx1QkFBdUI7c0hBQXZCLHVCQUF1QixpQkFuQmhDLHFCQUFxQjtRQUNyQixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLHVCQUF1QixhQUd2QixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsWUFBWSxhQUdaLHFCQUFxQjtRQUNyQixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLHVCQUF1QjtzSEFHZCx1QkFBdUIsWUFkekI7WUFDUCxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsWUFBWTtTQUNiOzRGQVFVLHVCQUF1QjtrQkFyQm5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLHVCQUF1QjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3FCQUN4QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIE1vZHVsZXNcclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVG9hc3RyTW9kdWxlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IEZ1bGxFeHRlbnNpb25zTW9kdWxlIH0gZnJvbSAnQGVzZmFlbnphL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuLy8gTW9kZWxzXHJcbmltcG9ydCB7IFV0aWxpdHlDb21wb25lbnRzTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvVXRpbGl0eUNvbXBvbmVudHNNb2R1bGVDb25maWcnO1xyXG5pbXBvcnQgeyBVQ0NPX0RFQlVHX01PREUsIFVDQ09fTE9DQUxFIH0gZnJvbSAnLi90b2tlbnMnO1xyXG4vLyBDb21wb25lbnRzXHJcbmltcG9ydCB7IEN1cnJlbmN5U3BhbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXJyZW5jeS1zcGFuL2N1cnJlbmN5LXNwYW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2hvcnRlblNwYW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2hvcnRlbi1zcGFuL3Nob3J0ZW4tc3Bhbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdGF0dXNCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zdGF0dXMtYmFkZ2Uvc3RhdHVzLWJhZGdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNpbXBsZURyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NpbXBsZS1kcm9wZG93bi9zaW1wbGUtZHJvcGRvd24uY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBDdXJyZW5jeVNwYW5Db21wb25lbnQsXHJcbiAgICBTaG9ydGVuU3BhbkNvbXBvbmVudCxcclxuICAgIFN0YXR1c0JhZGdlQ29tcG9uZW50LFxyXG4gICAgU2ltcGxlRHJvcGRvd25Db21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgRnVsbEV4dGVuc2lvbnNNb2R1bGUsXHJcbiAgICBUb2FzdHJNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEN1cnJlbmN5U3BhbkNvbXBvbmVudCxcclxuICAgIFNob3J0ZW5TcGFuQ29tcG9uZW50LFxyXG4gICAgU3RhdHVzQmFkZ2VDb21wb25lbnQsXHJcbiAgICBTaW1wbGVEcm9wZG93bkNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFV0aWxpdHlDb21wb25lbnRzTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBVdGlsaXR5Q29tcG9uZW50c01vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VXRpbGl0eUNvbXBvbmVudHNNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBVdGlsaXR5Q29tcG9uZW50c01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBVQ0NPX0xPQ0FMRSwgdXNlVmFsdWU6IGNvbmZpZz8ubG9jYWxlIHx8ICdpdC1JVCcgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IFVDQ09fREVCVUdfTU9ERSwgdXNlVmFsdWU6IGNvbmZpZz8uZGVidWdNb2RlICE9IG51bGwgPyBjb25maWc/LmRlYnVnTW9kZSA6IGZhbHNlIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, Component, Input, ViewEncapsulation, ViewChild, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i1$1 from 'ngx-toastr';
|
|
6
|
+
import { ToastrModule } from 'ngx-toastr';
|
|
7
|
+
import * as i2 from '@esfaenza/extensions';
|
|
8
|
+
import { FullExtensionsModule } from '@esfaenza/extensions';
|
|
9
|
+
import * as i4 from '@angular/material/tooltip';
|
|
10
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
11
|
+
import * as i1$2 from '@angular/material/menu';
|
|
12
|
+
import { MatMenuTrigger, MatMenuModule } from '@angular/material/menu';
|
|
13
|
+
|
|
14
|
+
/** Token che indica la lingua da utilizzare, sono supportate "it-IT" ed "en-US" */
|
|
15
|
+
const UCCO_LOCALE = new InjectionToken('UCCO_LOCALE');
|
|
16
|
+
/** Token che indica la lingua da utilizzare, sono supportate "it-IT" ed "en-US" */
|
|
17
|
+
const UCCO_DEBUG_MODE = new InjectionToken('UCCO_DEBUG_MODE');
|
|
18
|
+
|
|
19
|
+
// Angular
|
|
20
|
+
/** Questo componente rappresenta un elemento span che formatta automaticamente un **CurrencyValue** in base al suo **CurrencyType** */
|
|
21
|
+
class CurrencySpanComponent {
|
|
22
|
+
constructor() {
|
|
23
|
+
/** Tipo in base al quale formattare il valore **CurrencyValue** */
|
|
24
|
+
this.CurrencyType = CurrencyType.EMPTY;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
CurrencySpanComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrencySpanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
+
CurrencySpanComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CurrencySpanComponent, selector: "currency-span", inputs: { CurrencyValue: "CurrencyValue", CurrencyType: "CurrencyType" }, ngImport: i0, template: "<span [class.text-info]=\"CurrencyValue == 0\"\r\n [class.text-success]=\"CurrencyValue > 0\"\r\n [class.text-danger]=\"CurrencyValue < 0\">\r\n {{CurrencyValue ? (CurrencyValue | currency:'':'':'1.2-2':'it') : '0,00'}} {{CurrencyType}}\r\n</span>", pipes: { "currency": i1.CurrencyPipe } });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CurrencySpanComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: "currency-span", template: "<span [class.text-info]=\"CurrencyValue == 0\"\r\n [class.text-success]=\"CurrencyValue > 0\"\r\n [class.text-danger]=\"CurrencyValue < 0\">\r\n {{CurrencyValue ? (CurrencyValue | currency:'':'':'1.2-2':'it') : '0,00'}} {{CurrencyType}}\r\n</span>" }]
|
|
32
|
+
}], propDecorators: { CurrencyValue: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], CurrencyType: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}] } });
|
|
37
|
+
/**
|
|
38
|
+
* @ignore
|
|
39
|
+
* Al momento non serve assolutamente a niente, ma per espandere eventualmente
|
|
40
|
+
* il componente in futuro lo lascio qui che schifo non fa.
|
|
41
|
+
*/
|
|
42
|
+
var CurrencyType;
|
|
43
|
+
(function (CurrencyType) {
|
|
44
|
+
CurrencyType["EUR"] = "\u20AC";
|
|
45
|
+
CurrencyType["USD"] = "$";
|
|
46
|
+
CurrencyType["CAD"] = "$";
|
|
47
|
+
CurrencyType["EMPTY"] = "";
|
|
48
|
+
})(CurrencyType || (CurrencyType = {}));
|
|
49
|
+
|
|
50
|
+
// Angular
|
|
51
|
+
/** Questo componente rappresenta un elemento span che tronca un **Text** in base ad una **MaxLength** */
|
|
52
|
+
class ShortenSpanComponent {
|
|
53
|
+
/** @ignore */
|
|
54
|
+
constructor(toastrService, clipboardService) {
|
|
55
|
+
this.toastrService = toastrService;
|
|
56
|
+
this.clipboardService = clipboardService;
|
|
57
|
+
/** Mostra **Text** con stile grassetto */
|
|
58
|
+
this.Bold = false;
|
|
59
|
+
/** Lunghezza massima del testo, prima di venire troncato */
|
|
60
|
+
this.MaxLength = 999;
|
|
61
|
+
/** Abilita la possibilita di copiare **Text** col tasto sinistro del mouse */
|
|
62
|
+
this.ClipboardCopy = false;
|
|
63
|
+
/** Testo da mostrare nel tooltip di material, quando ha valore diverso da null */
|
|
64
|
+
this.ShowTooltip = null;
|
|
65
|
+
}
|
|
66
|
+
/** @ignore */
|
|
67
|
+
ngOnInit() {
|
|
68
|
+
var _a;
|
|
69
|
+
this.ShowTooltip = ((_a = this.Text) === null || _a === void 0 ? void 0 : _a.length) >= this.MaxLength ? this.Text : null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Copia un valore nella clipboard
|
|
73
|
+
*
|
|
74
|
+
* @param {string} value Valore da copiare nella clipboard
|
|
75
|
+
*/
|
|
76
|
+
copyToClipboard(value) {
|
|
77
|
+
this.clipboardService.copyTextToClipboard(value);
|
|
78
|
+
this.toastrService.info('Testo copiato!', null, { positionClass: 'toast-top-center' });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
ShortenSpanComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ShortenSpanComponent, deps: [{ token: i1$1.ToastrService }, { token: i2.ClipboardService }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
ShortenSpanComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ShortenSpanComponent, selector: "shorten-span", inputs: { Bold: "Bold", Text: "Text", MaxLength: "MaxLength", ClipboardCopy: "ClipboardCopy" }, ngImport: i0, template: "<span [class.utils-copy]=\"ClipboardCopy\" (click)=\"ClipboardCopy ? copyToClipboard(Text) : null\" *ngIf=\"Text\" [class.utils-bold]=\"Bold\" [matTooltip]=\"ShowTooltip\">\r\n {{Text.length > MaxLength + 3 ? Text.substr(0, MaxLength) + \"...\" : Text}}\r\n</span>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ShortenSpanComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{ selector: "shorten-span", template: "<span [class.utils-copy]=\"ClipboardCopy\" (click)=\"ClipboardCopy ? copyToClipboard(Text) : null\" *ngIf=\"Text\" [class.utils-bold]=\"Bold\" [matTooltip]=\"ShowTooltip\">\r\n {{Text.length > MaxLength + 3 ? Text.substr(0, MaxLength) + \"...\" : Text}}\r\n</span>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}\n"] }]
|
|
86
|
+
}], ctorParameters: function () { return [{ type: i1$1.ToastrService }, { type: i2.ClipboardService }]; }, propDecorators: { Bold: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], Text: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], MaxLength: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], ClipboardCopy: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}] } });
|
|
95
|
+
|
|
96
|
+
// Angular
|
|
97
|
+
/**
|
|
98
|
+
* Questo componente serve a mostrare un badge di stato, con un testo **Status**.
|
|
99
|
+
* Colorato in base a condizioni di **Info**, **Success**, **Warning** o **Danger**
|
|
100
|
+
*/
|
|
101
|
+
class StatusBadgeComponent {
|
|
102
|
+
constructor() {
|
|
103
|
+
/** Dimensione del badge, in valore numerico (1 = 100%) */
|
|
104
|
+
this.Zoom = 1;
|
|
105
|
+
/** Valore dello stile 'top' del badge */
|
|
106
|
+
this.Top = "20px";
|
|
107
|
+
/** Valore dello stile 'right' del badge */
|
|
108
|
+
this.Right = "0px";
|
|
109
|
+
}
|
|
110
|
+
ngOnInit() {
|
|
111
|
+
this.Info = this.Level == "Info";
|
|
112
|
+
this.Warning = this.Level == "Warning";
|
|
113
|
+
this.Success = this.Level == "Success";
|
|
114
|
+
this.Danger = this.Level == "Danger";
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
StatusBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StatusBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
118
|
+
StatusBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: StatusBadgeComponent, selector: "status-badge", inputs: { Status: "Status", Zoom: "Zoom", Top: "Top", Right: "Right", Level: "Level", Info: "Info", Warning: "Warning", Success: "Success", Danger: "Danger" }, ngImport: i0, template: "<div class=\"status-badge-container utils-no-selection\" [style.margin-top]=\"Top\" [style.margin-right]=\"Right\" [style.zoom]=\"Zoom\" [style.-moz-transform]=\"'scale(' + Zoom + ')'\">\r\n <span class=\"status-badge\"\r\n [class.status-badge-info]=\"Info\"\r\n [class.status-badge-warning]=\"Warning\"\r\n [class.status-badge-success]=\"Success\"\r\n [class.status-badge-danger]=\"Danger\">\r\n <i style=\"font-size: 18px;\"\r\n class=\"fa\" \r\n [class.fa-info-circle]=\"Info\" \r\n [class.fa-exclamation-circle]=\"Warning\" \r\n [class.fa-check-circle]=\"Success\" \r\n [class.fa-times-circle]=\"Danger\" \r\n \r\n >\r\n </i>\r\n <span *ngIf=\"Status\" \r\n class=\"ml-2 app-bold\"\r\n [class.text-info]=\"Info\"\r\n [class.text-warning]=\"Warning\"\r\n [class.text-success]=\"Success\"\r\n [class.text-danger]=\"Danger\">\r\n {{Status.toUpperCase()}}\r\n </span>\r\n </span>\r\n</div>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}.status-badge-container{position:absolute;right:0;margin-right:15px;top:0;white-space:nowrap}.status-badge{height:30px;padding:5px 10px;font-size:16px;line-height:20px;border-radius:5px}.status-badge-info{border:3px solid;color:#248dad}.status-badge-warning{border:3px solid;color:#f79a17}.status-badge-success{border:3px solid;color:#2d922d}.status-badge-danger{border:3px solid;color:#bf1725}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StatusBadgeComponent, decorators: [{
|
|
120
|
+
type: Component,
|
|
121
|
+
args: [{ selector: "status-badge", template: "<div class=\"status-badge-container utils-no-selection\" [style.margin-top]=\"Top\" [style.margin-right]=\"Right\" [style.zoom]=\"Zoom\" [style.-moz-transform]=\"'scale(' + Zoom + ')'\">\r\n <span class=\"status-badge\"\r\n [class.status-badge-info]=\"Info\"\r\n [class.status-badge-warning]=\"Warning\"\r\n [class.status-badge-success]=\"Success\"\r\n [class.status-badge-danger]=\"Danger\">\r\n <i style=\"font-size: 18px;\"\r\n class=\"fa\" \r\n [class.fa-info-circle]=\"Info\" \r\n [class.fa-exclamation-circle]=\"Warning\" \r\n [class.fa-check-circle]=\"Success\" \r\n [class.fa-times-circle]=\"Danger\" \r\n \r\n >\r\n </i>\r\n <span *ngIf=\"Status\" \r\n class=\"ml-2 app-bold\"\r\n [class.text-info]=\"Info\"\r\n [class.text-warning]=\"Warning\"\r\n [class.text-success]=\"Success\"\r\n [class.text-danger]=\"Danger\">\r\n {{Status.toUpperCase()}}\r\n </span>\r\n </span>\r\n</div>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}.status-badge-container{position:absolute;right:0;margin-right:15px;top:0;white-space:nowrap}.status-badge{height:30px;padding:5px 10px;font-size:16px;line-height:20px;border-radius:5px}.status-badge-info{border:3px solid;color:#248dad}.status-badge-warning{border:3px solid;color:#f79a17}.status-badge-success{border:3px solid;color:#2d922d}.status-badge-danger{border:3px solid;color:#bf1725}\n"] }]
|
|
122
|
+
}], propDecorators: { Status: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], Zoom: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], Top: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], Right: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], Level: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], Info: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], Warning: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], Success: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], Danger: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}] } });
|
|
141
|
+
|
|
142
|
+
// Angular
|
|
143
|
+
/** Questo componente si occupa di creare un context-menu con **Options** definite dal programmatore, che innescano una funzione quando selezionate */
|
|
144
|
+
class SimpleDropdownComponent {
|
|
145
|
+
constructor() {
|
|
146
|
+
/** Opzioni da mostrare nel context-menu, composte da un campo Nome ed uno Operazione */
|
|
147
|
+
this.Options = [];
|
|
148
|
+
/** Posizione di Default del context-menu, evitare di smanazzare */
|
|
149
|
+
this.MenuPosition = { x: '0', y: '0' };
|
|
150
|
+
}
|
|
151
|
+
/** Serve per far apparire il menu dove definito da **MenuPosition**, facendo uso di **matMenuTrigger** */
|
|
152
|
+
Show(event) {
|
|
153
|
+
this.MenuPosition.x = event.clientX + 'px';
|
|
154
|
+
this.MenuPosition.y = event.clientY + 'px';
|
|
155
|
+
this.matMenuTrigger.openMenu();
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
SimpleDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SimpleDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
160
|
+
SimpleDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SimpleDropdownComponent, selector: "simple-dropdown", inputs: { Options: "Options" }, viewQueries: [{ propertyName: "matMenuTrigger", first: true, predicate: MatMenuTrigger, descendants: true, static: true }], ngImport: i0, template: "<div style=\"visibility: hidden; position: fixed;\" \r\n [style.left]=\"MenuPosition.x\" \r\n [style.top]=\"MenuPosition.y\" \r\n [matMenuTriggerFor]=\"rightMenu\">\r\n</div>\r\n\r\n<mat-menu #rightMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let item of Options\">\r\n <button mat-menu-item (click)=\"item.execute()\">{{item.label}}</button>\r\n </ng-container>\r\n</mat-menu>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}.mat-menu-content:not(:empty){padding:0!important}.mat-menu-panel{min-height:unset!important}.mat-menu-item{background-color:#fff!important;height:38px!important;line-height:38px!important}\n"], components: [{ type: i1$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i1$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i1$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SimpleDropdownComponent, decorators: [{
|
|
162
|
+
type: Component,
|
|
163
|
+
args: [{ selector: "simple-dropdown", encapsulation: ViewEncapsulation.None, template: "<div style=\"visibility: hidden; position: fixed;\" \r\n [style.left]=\"MenuPosition.x\" \r\n [style.top]=\"MenuPosition.y\" \r\n [matMenuTriggerFor]=\"rightMenu\">\r\n</div>\r\n\r\n<mat-menu #rightMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let item of Options\">\r\n <button mat-menu-item (click)=\"item.execute()\">{{item.label}}</button>\r\n </ng-container>\r\n</mat-menu>", styles: [".utils-pointer{cursor:pointer}.utils-copy{cursor:copy}.utils-bold{font-weight:700}.utils-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}::ng-deep .mat-tooltip{font-size:16px}.mat-menu-content:not(:empty){padding:0!important}.mat-menu-panel{min-height:unset!important}.mat-menu-item{background-color:#fff!important;height:38px!important;line-height:38px!important}\n"] }]
|
|
164
|
+
}], propDecorators: { matMenuTrigger: [{
|
|
165
|
+
type: ViewChild,
|
|
166
|
+
args: [MatMenuTrigger, { static: true }]
|
|
167
|
+
}], Options: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}] } });
|
|
170
|
+
|
|
171
|
+
// Modules
|
|
172
|
+
class UtilityComponentsModule {
|
|
173
|
+
static forRoot(config) {
|
|
174
|
+
return {
|
|
175
|
+
ngModule: UtilityComponentsModule,
|
|
176
|
+
providers: [
|
|
177
|
+
{ provide: UCCO_LOCALE, useValue: (config === null || config === void 0 ? void 0 : config.locale) || 'it-IT' },
|
|
178
|
+
{ provide: UCCO_DEBUG_MODE, useValue: (config === null || config === void 0 ? void 0 : config.debugMode) != null ? config === null || config === void 0 ? void 0 : config.debugMode : false }
|
|
179
|
+
]
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
UtilityComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UtilityComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
184
|
+
UtilityComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UtilityComponentsModule, declarations: [CurrencySpanComponent,
|
|
185
|
+
ShortenSpanComponent,
|
|
186
|
+
StatusBadgeComponent,
|
|
187
|
+
SimpleDropdownComponent], imports: [CommonModule,
|
|
188
|
+
MatTooltipModule,
|
|
189
|
+
MatMenuModule,
|
|
190
|
+
FullExtensionsModule,
|
|
191
|
+
ToastrModule], exports: [CurrencySpanComponent,
|
|
192
|
+
ShortenSpanComponent,
|
|
193
|
+
StatusBadgeComponent,
|
|
194
|
+
SimpleDropdownComponent] });
|
|
195
|
+
UtilityComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UtilityComponentsModule, imports: [[
|
|
196
|
+
CommonModule,
|
|
197
|
+
MatTooltipModule,
|
|
198
|
+
MatMenuModule,
|
|
199
|
+
FullExtensionsModule,
|
|
200
|
+
ToastrModule
|
|
201
|
+
]] });
|
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UtilityComponentsModule, decorators: [{
|
|
203
|
+
type: NgModule,
|
|
204
|
+
args: [{
|
|
205
|
+
declarations: [
|
|
206
|
+
CurrencySpanComponent,
|
|
207
|
+
ShortenSpanComponent,
|
|
208
|
+
StatusBadgeComponent,
|
|
209
|
+
SimpleDropdownComponent
|
|
210
|
+
],
|
|
211
|
+
imports: [
|
|
212
|
+
CommonModule,
|
|
213
|
+
MatTooltipModule,
|
|
214
|
+
MatMenuModule,
|
|
215
|
+
FullExtensionsModule,
|
|
216
|
+
ToastrModule
|
|
217
|
+
],
|
|
218
|
+
exports: [
|
|
219
|
+
CurrencySpanComponent,
|
|
220
|
+
ShortenSpanComponent,
|
|
221
|
+
StatusBadgeComponent,
|
|
222
|
+
SimpleDropdownComponent
|
|
223
|
+
]
|
|
224
|
+
}]
|
|
225
|
+
}] });
|
|
226
|
+
|
|
227
|
+
/** Modello che definisce una opzione del menu contestuale */
|
|
228
|
+
class DropdownOption {
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Classe di configurazione del modulo
|
|
233
|
+
*/
|
|
234
|
+
class UtilityComponentsModuleConfig {
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/*
|
|
238
|
+
* Public API Surface of utility-components
|
|
239
|
+
*/
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Generated bundle index. Do not edit.
|
|
243
|
+
*/
|
|
244
|
+
|
|
245
|
+
export { CurrencySpanComponent, CurrencyType, DropdownOption, ShortenSpanComponent, SimpleDropdownComponent, StatusBadgeComponent, UCCO_DEBUG_MODE, UCCO_LOCALE, UtilityComponentsModule, UtilityComponentsModuleConfig };
|
|
246
|
+
//# sourceMappingURL=esfaenza-utility-components.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esfaenza-utility-components.mjs","sources":["../../../projects/utility-components/src/lib/tokens.ts","../../../projects/utility-components/src/lib/components/currency-span/currency-span.component.ts","../../../projects/utility-components/src/lib/components/currency-span/currency-span.component.html","../../../projects/utility-components/src/lib/components/shorten-span/shorten-span.component.ts","../../../projects/utility-components/src/lib/components/shorten-span/shorten-span.component.html","../../../projects/utility-components/src/lib/components/status-badge/status-badge.component.ts","../../../projects/utility-components/src/lib/components/status-badge/status-badge.component.html","../../../projects/utility-components/src/lib/components/simple-dropdown/simple-dropdown.component.ts","../../../projects/utility-components/src/lib/components/simple-dropdown/simple-dropdown.component.html","../../../projects/utility-components/src/lib/utility-components.module.ts","../../../projects/utility-components/src/lib/models/DropdownOption.ts","../../../projects/utility-components/src/lib/models/UtilityComponentsModuleConfig.ts","../../../projects/utility-components/src/public-api.ts","../../../projects/utility-components/src/esfaenza-utility-components.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\n/** Token che indica la lingua da utilizzare, sono supportate \"it-IT\" ed \"en-US\" */\r\nexport const UCCO_LOCALE: InjectionToken<string> = new InjectionToken<string>('UCCO_LOCALE');\r\n/** Token che indica la lingua da utilizzare, sono supportate \"it-IT\" ed \"en-US\" */\r\nexport const UCCO_DEBUG_MODE: InjectionToken<boolean> = new InjectionToken<boolean>('UCCO_DEBUG_MODE');","// Angular\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n/** Questo componente rappresenta un elemento span che formatta automaticamente un **CurrencyValue** in base al suo **CurrencyType** */\r\n@Component({\r\n selector: \"currency-span\",\r\n templateUrl: \"currency-span.component.html\"\r\n})\r\nexport class CurrencySpanComponent {\r\n /** Valore da formattare */\r\n @Input() CurrencyValue: string | number;\r\n /** Tipo in base al quale formattare il valore **CurrencyValue** */\r\n @Input() CurrencyType: string = CurrencyType.EMPTY;\r\n}\r\n\r\n/**\r\n * @ignore\r\n * Al momento non serve assolutamente a niente, ma per espandere eventualmente \r\n * il componente in futuro lo lascio qui che schifo non fa.\r\n */\r\nexport enum CurrencyType {\r\n EUR = \"€\",\r\n USD = \"$\",\r\n CAD = \"$\",\r\n EMPTY = \"\"\r\n}","<span [class.text-info]=\"CurrencyValue == 0\"\r\n [class.text-success]=\"CurrencyValue > 0\"\r\n [class.text-danger]=\"CurrencyValue < 0\">\r\n {{CurrencyValue ? (CurrencyValue | currency:'':'':'1.2-2':'it') : '0,00'}} {{CurrencyType}}\r\n</span>","// Angular\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { ClipboardService } from \"@esfaenza/extensions\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { ToastrService } from \"ngx-toastr\";\r\n\r\n/** Questo componente rappresenta un elemento span che tronca un **Text** in base ad una **MaxLength** */\r\n@Component({\r\n selector: \"shorten-span\",\r\n templateUrl: \"shorten-span.component.html\",\r\n styleUrls: [\"./shorten-span.component.scss\"]\r\n})\r\nexport class ShortenSpanComponent {\r\n /** Mostra **Text** con stile grassetto */\r\n @Input() Bold: boolean = false;\r\n /** Testo da mostrare nello span */\r\n @Input() Text: string;\r\n /** Lunghezza massima del testo, prima di venire troncato */\r\n @Input() MaxLength: number = 999;\r\n /** Abilita la possibilita di copiare **Text** col tasto sinistro del mouse */\r\n @Input() ClipboardCopy: boolean = false;\r\n\r\n /** @ignore */\r\n constructor(private toastrService: ToastrService, private clipboardService: ClipboardService) { }\r\n\r\n /** Testo da mostrare nel tooltip di material, quando ha valore diverso da null */\r\n public ShowTooltip = null;\r\n\r\n /** @ignore */\r\n ngOnInit() {\r\n this.ShowTooltip = this.Text?.length >= this.MaxLength ? this.Text : null;\r\n }\r\n\r\n /**\r\n * Copia un valore nella clipboard\r\n * \r\n * @param {string} value Valore da copiare nella clipboard\r\n */\r\n copyToClipboard(value: string) {\r\n this.clipboardService.copyTextToClipboard(value);\r\n this.toastrService.info('Testo copiato!', null, { positionClass: 'toast-top-center' });\r\n }\r\n}","<span [class.utils-copy]=\"ClipboardCopy\" (click)=\"ClipboardCopy ? copyToClipboard(Text) : null\" *ngIf=\"Text\" [class.utils-bold]=\"Bold\" [matTooltip]=\"ShowTooltip\">\r\n {{Text.length > MaxLength + 3 ? Text.substr(0, MaxLength) + \"...\" : Text}}\r\n</span>","// Angular\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n/** \r\n * Questo componente serve a mostrare un badge di stato, con un testo **Status**.\r\n * Colorato in base a condizioni di **Info**, **Success**, **Warning** o **Danger** \r\n */\r\n@Component({\r\n selector: \"status-badge\",\r\n templateUrl: \"status-badge.component.html\",\r\n styleUrls: [\"./status-badge.component.scss\"]\r\n})\r\nexport class StatusBadgeComponent {\r\n /** Etichetta da mostrare nel badge */\r\n @Input() public Status: string;\r\n /** Dimensione del badge, in valore numerico (1 = 100%) */\r\n @Input() public Zoom: number = 1;\r\n /** Valore dello stile 'top' del badge */\r\n @Input() public Top: string = \"20px\";\r\n /** Valore dello stile 'right' del badge */\r\n @Input() public Right: string = \"0px\";\r\n /** Condizione per la gestione del livello del badge - (Info o Warning o Success o Danger)*/\r\n @Input() public Level: 'Info' | 'Warning' | 'Success' | 'Danger';\r\n /** Valore boolen relativo al binding del livello badge - (Info) */\r\n @Input() public Info: boolean ;\r\n /** Valore boolen relativo al binding del livello badge - (Warning) */\r\n @Input() public Warning: boolean;\r\n /** Valore boolen relativo al binding del livello badge - (Success) */\r\n @Input() public Success: boolean ;\r\n /** Valore boolen relativo al binding del livello badge - (Danger) */\r\n @Input() public Danger: boolean ;\r\n\r\n ngOnInit() {\r\n this.Info = this.Level == \"Info\";\r\n this.Warning = this.Level == \"Warning\";\r\n this.Success = this.Level == \"Success\";\r\n this.Danger = this.Level == \"Danger\";\r\n }\r\n}","<div class=\"status-badge-container utils-no-selection\" [style.margin-top]=\"Top\" [style.margin-right]=\"Right\" [style.zoom]=\"Zoom\" [style.-moz-transform]=\"'scale(' + Zoom + ')'\">\r\n <span class=\"status-badge\"\r\n [class.status-badge-info]=\"Info\"\r\n [class.status-badge-warning]=\"Warning\"\r\n [class.status-badge-success]=\"Success\"\r\n [class.status-badge-danger]=\"Danger\">\r\n <i style=\"font-size: 18px;\"\r\n class=\"fa\" \r\n [class.fa-info-circle]=\"Info\" \r\n [class.fa-exclamation-circle]=\"Warning\" \r\n [class.fa-check-circle]=\"Success\" \r\n [class.fa-times-circle]=\"Danger\" \r\n \r\n >\r\n </i>\r\n <span *ngIf=\"Status\" \r\n class=\"ml-2 app-bold\"\r\n [class.text-info]=\"Info\"\r\n [class.text-warning]=\"Warning\"\r\n [class.text-success]=\"Success\"\r\n [class.text-danger]=\"Danger\">\r\n {{Status.toUpperCase()}}\r\n </span>\r\n </span>\r\n</div>","// Angular\r\nimport { Component, Input, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatMenuTrigger } from \"@angular/material/menu\";\r\n\r\n// Models\r\nimport { DropdownOption } from \"../../models/DropdownOption\";\r\n\r\n/** Questo componente si occupa di creare un context-menu con **Options** definite dal programmatore, che innescano una funzione quando selezionate */\r\n@Component({\r\n selector: \"simple-dropdown\",\r\n templateUrl: \"simple-dropdown.component.html\",\r\n styleUrls: [\"./simple-dropdown.component.scss\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SimpleDropdownComponent {\r\n /** Trigger del MatMenu, per poter decidere quando mostrare il menu da codice */\r\n @ViewChild(MatMenuTrigger, { static: true }) matMenuTrigger: MatMenuTrigger;\r\n /** Opzioni da mostrare nel context-menu, composte da un campo Nome ed uno Operazione */\r\n @Input() Options: DropdownOption[] = [];\r\n /** Posizione di Default del context-menu, evitare di smanazzare */\r\n public MenuPosition = { x: '0', y: '0' }\r\n /** Serve per far apparire il menu dove definito da **MenuPosition**, facendo uso di **matMenuTrigger** */\r\n public Show(event: MouseEvent) {\r\n this.MenuPosition.x = event.clientX + 'px';\r\n this.MenuPosition.y = event.clientY + 'px';\r\n this.matMenuTrigger.openMenu();\r\n\r\n return false;\r\n }\r\n}","<div style=\"visibility: hidden; position: fixed;\" \r\n [style.left]=\"MenuPosition.x\" \r\n [style.top]=\"MenuPosition.y\" \r\n [matMenuTriggerFor]=\"rightMenu\">\r\n</div>\r\n\r\n<mat-menu #rightMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let item of Options\">\r\n <button mat-menu-item (click)=\"item.execute()\">{{item.label}}</button>\r\n </ng-container>\r\n</mat-menu>","// Modules\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { FullExtensionsModule } from '@esfaenza/extensions';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n// Models\r\nimport { UtilityComponentsModuleConfig } from './models/UtilityComponentsModuleConfig';\r\nimport { UCCO_DEBUG_MODE, UCCO_LOCALE } from './tokens';\r\n// Components\r\nimport { CurrencySpanComponent } from './components/currency-span/currency-span.component';\r\nimport { ShortenSpanComponent } from './components/shorten-span/shorten-span.component';\r\nimport { StatusBadgeComponent } from './components/status-badge/status-badge.component';\r\nimport { SimpleDropdownComponent } from './components/simple-dropdown/simple-dropdown.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n CurrencySpanComponent,\r\n ShortenSpanComponent,\r\n StatusBadgeComponent,\r\n SimpleDropdownComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatTooltipModule,\r\n MatMenuModule,\r\n FullExtensionsModule,\r\n ToastrModule\r\n ],\r\n exports: [\r\n CurrencySpanComponent,\r\n ShortenSpanComponent,\r\n StatusBadgeComponent,\r\n SimpleDropdownComponent\r\n ]\r\n})\r\nexport class UtilityComponentsModule {\r\n static forRoot(config?: UtilityComponentsModuleConfig): ModuleWithProviders<UtilityComponentsModule> {\r\n return {\r\n ngModule: UtilityComponentsModule,\r\n providers: [\r\n { provide: UCCO_LOCALE, useValue: config?.locale || 'it-IT' },\r\n { provide: UCCO_DEBUG_MODE, useValue: config?.debugMode != null ? config?.debugMode : false }\r\n ]\r\n };\r\n }\r\n}\r\n","/** Modello che definisce una opzione del menu contestuale */\r\nexport class DropdownOption {\r\n /** Nome dell'opzione da mostrare */\r\n label: string;\r\n /** Funzione da eseguire quando viene selezionata l'opzione */\r\n execute: () => {};\r\n}","/**\r\n * Classe di configurazione del modulo\r\n */\r\n export class UtilityComponentsModuleConfig {\r\n /** Locale del modulo. Sono supportati solo 'it-IT' ed 'en-US', default it-IT */\r\n locale?: string;\r\n /** Abilita o meno la modalità di debug */\r\n debugMode?: boolean;\r\n}","/*\r\n * Public API Surface of utility-components\r\n */\r\n\r\nexport * from './lib/utility-components.module';\r\nexport * from './lib/components/currency-span/currency-span.component';\r\nexport * from './lib/components/shorten-span/shorten-span.component';\r\nexport * from './lib/components/simple-dropdown/simple-dropdown.component';\r\nexport * from './lib/components/status-badge/status-badge.component';\r\nexport * from './lib/models/DropdownOption';\r\nexport * from './lib/models/UtilityComponentsModuleConfig';\r\nexport * from './lib/tokens';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2"],"mappings":"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"}
|