@arsedizioni/ars-utils 18.1.49 → 18.1.51

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.
@@ -27,4 +27,4 @@ export var PromptDialogType;
27
27
  PromptDialogType[PromptDialogType["List"] = 5] = "List";
28
28
  PromptDialogType[PromptDialogType["Time"] = 6] = "Time";
29
29
  })(PromptDialogType || (PromptDialogType = {}));
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEVBLE1BQU0sT0FBTyxjQUFjO0NBUTFCO0FBRUQsTUFBTSxPQUFPLFFBQVE7Q0FPcEI7QUFFRCxNQUFNLE9BQU8sY0FBZSxTQUFRLFFBQVE7SUFTMUMsWUFBWSxJQUFjLEVBQUUsS0FBYTtRQUN2QyxLQUFLLEVBQUUsQ0FBQztRQUVSLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLE9BQU87UUFDUCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFjRCxNQUFNLENBQU4sSUFBWSxnQkFTWDtBQVRELFdBQVksZ0JBQWdCO0lBQzFCLDZEQUFXLENBQUE7SUFDWCx1REFBUSxDQUFBO0lBQ1IsMkRBQVUsQ0FBQTtJQUNWLHVEQUFRLENBQUE7SUFDUix1RUFBZ0IsQ0FBQTtJQUNoQix1REFBUSxDQUFBO0lBQ1IsdURBQVEsQ0FBQTtBQUVWLENBQUMsRUFUVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VhcmNoYWJsZSwgU2VhcmNoQmFnIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdERpYWxvZ1Jlc3VsdCB7XHJcbiAgc2VsZWN0ZWRJdGVtczogYW55W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0RGlhbG9nTG9va3VwIHtcclxuICBpdGVtczogYW55W107XHJcbiAgZmlsdGVyPzogc3RyaW5nO1xyXG4gIHBhcmFtcz86IGFueTtcclxuICBvd25lcj86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3REaWFsb2dBcHBlbmQge1xyXG4gIGl0ZW1zOiBhbnlbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3REaWFsb2dEZWxldGUge1xyXG4gIGl0ZW1zOiBhbnlbXTtcclxuICBzZWxlY3RlZEl0ZW1zOiBhbnlbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWxlIHtcclxuICBmaWxlOiBhbnk7XHJcbiAgb3B0aW9ucz86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3REaWFsb2dEYXRhIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIG9rQ2FwdGlvbj86IHN0cmluZztcclxuICBtYXhJdGVtcz86IG51bWJlcjtcclxuICBtdWx0aT86IGJvb2xlYW47XHJcbiAgbXVzdFNlbGVjdD86IGJvb2xlYW47XHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbiAgZmlsdGVyPzogc3RyaW5nO1xyXG4gIGZpbHRlcnM/OiBhbnk7XHJcbiAgaXRlbXM/OiBhbnk7XHJcbiAgbG9va3VwRmllbGRzPzogYW55O1xyXG4gIGxvb2t1cE9uSW5pdD86IGJvb2xlYW47XHJcbiAgZW1wdHlNZXNzYWdlPzogc3RyaW5nO1xyXG4gIGNhbkxvb2t1cFdpdGhPcHRpb25zPzogYm9vbGVhbjtcclxuICBjYW5Mb29rdXA/OiBib29sZWFuO1xyXG4gIGNhbkRlbGV0ZT86IGJvb2xlYW47XHJcbiAgY2FuQXBwZW5kPzogYm9vbGVhbjtcclxuICBjYW5FZGl0PzogYm9vbGVhbjtcclxuICBjYW5WaWV3PzogYm9vbGVhbjtcclxuICBjYW5GaWx0ZXI/OiBib29sZWFuO1xyXG4gIGNhblBhZ2luYXRlPzpib29sZWFuO1xyXG4gIHBhZ2VTaXplPzogbnVtYmVyO1xyXG4gIGFwcGVhcmFuY2U/OiBzdHJpbmc7XHJcbiAgaGVhZGVyPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdFRyZWVEaWFsb2dEYXRhIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIG9rQ2FwdGlvbj86IHN0cmluZztcclxuICBub2Rlcz86IGFueTtcclxuICBpbml0aWFsRmlsdGVyPzogc3RyaW5nO1xyXG4gIGFwcGVhcmFuY2U/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0RmlsZURpYWxvZ0RhdGEge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgb2tDYXB0aW9uPzogc3RyaW5nO1xyXG4gIGhlbHBMaW5rPzogc3RyaW5nO1xyXG4gIGhlbHBDYXB0aW9uPzogc3RyaW5nO1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbiAgYXBwZWFyYW5jZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlbGVjdGFibGVJdGVtIGltcGxlbWVudHMgU2VhcmNoYWJsZSB7XHJcbiAgYmFnOiBhbnk7XHJcbiAgdGVtcGxhdGU6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoYWJsZVxyXG4gICAqL1xyXG4gIHNlYXJjaEJhZzogU2VhcmNoQmFnO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSXRlbU5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNvdW50PzogbnVtYmVyO1xyXG4gIHBhcmVudD86IEl0ZW1Ob2RlO1xyXG4gIGNoaWxkcmVuPzogSXRlbU5vZGVbXTtcclxuICBiYWc6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlbGVjdGFibGVOb2RlIGV4dGVuZHMgSXRlbU5vZGUgaW1wbGVtZW50cyBTZWFyY2hhYmxlIHtcclxuICBleHBhbmRhYmxlOiBib29sZWFuO1xyXG4gIGxldmVsOiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaGFibGVcclxuICAgKi9cclxuICBzZWFyY2hCYWc6IFNlYXJjaEJhZztcclxuXHJcbiAgY29uc3RydWN0b3IoaXRlbTogSXRlbU5vZGUsIGxldmVsOiBudW1iZXIpIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgLy8gRmxhdHRlbmVkIGltcGxlbWVudGF0aW9uXHJcbiAgICB0aGlzLmV4cGFuZGFibGUgPSBpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMDtcclxuICAgIHRoaXMubGV2ZWwgPSBsZXZlbDtcclxuXHJcbiAgICAvLyBEYXRhXHJcbiAgICB0aGlzLmlkID0gaXRlbS5pZDtcclxuICAgIHRoaXMubmFtZSA9IGl0ZW0ubmFtZTtcclxuICAgIHRoaXMuY291bnQgPSBpdGVtLmNvdW50O1xyXG4gICAgdGhpcy5wYXJlbnQgPSBpdGVtLnBhcmVudDtcclxuICAgIHRoaXMuYmFnID0gaXRlbS5iYWc7XHJcbiAgICB0aGlzLmNoaWxkcmVuID0gaXRlbS5jaGlsZHJlbjtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VuZFRvRGlhbG9nUmVzdWx0IHtcclxuICByZWNpcGllbnRzOiBzdHJpbmc7XHJcbiAgc3ViamVjdDogc3RyaW5nO1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBvcHRpb25zPzogYW55XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0RGlhbG9nUmVzdWx0IHtcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFByb21wdERpYWxvZ1R5cGUge1xyXG4gIERlZmF1bHQgPSAwLFxyXG4gIERhdGUgPSAxLFxyXG4gIE51bWJlciA9IDIsXHJcbiAgVGV4dCA9IDMsXHJcbiAgRGF0ZUludGVydmFsID0gNCxcclxuICBMaXN0ID0gNSxcclxuICBUaW1lID0gNlxyXG5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9tcHREaWFsb2dEYXRhIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHR5cGU6IFByb21wdERpYWxvZ1R5cGU7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgb2tDYXB0aW9uPzogc3RyaW5nO1xyXG4gIGNhbmNlbENhcHRpb24/OiBzdHJpbmc7XHJcbiAgaW5pdGlhbFZhbHVlPzogYW55O1xyXG4gIG1pblZhbHVlPzogbnVtYmVyO1xyXG4gIG1heFZhbHVlPzogbnVtYmVyO1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICBhcHBlYXJhbmNlPzogc3RyaW5nO1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0VGltZURpYWxvZ0RhdGEgZXh0ZW5kcyBQcm9tcHREaWFsb2dEYXRhIHtcclxuICBzbG90cz86IHN0cmluZztcclxufSJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEVBLE1BQU0sT0FBTyxjQUFjO0NBUTFCO0FBRUQsTUFBTSxPQUFPLFFBQVE7Q0FPcEI7QUFFRCxNQUFNLE9BQU8sY0FBZSxTQUFRLFFBQVE7SUFTMUMsWUFBWSxJQUFjLEVBQUUsS0FBYTtRQUN2QyxLQUFLLEVBQUUsQ0FBQztRQUVSLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLE9BQU87UUFDUCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFjRCxNQUFNLENBQU4sSUFBWSxnQkFTWDtBQVRELFdBQVksZ0JBQWdCO0lBQzFCLDZEQUFXLENBQUE7SUFDWCx1REFBUSxDQUFBO0lBQ1IsMkRBQVUsQ0FBQTtJQUNWLHVEQUFRLENBQUE7SUFDUix1RUFBZ0IsQ0FBQTtJQUNoQix1REFBUSxDQUFBO0lBQ1IsdURBQVEsQ0FBQTtBQUVWLENBQUMsRUFUVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VhcmNoYWJsZSwgU2VhcmNoQmFnIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdERpYWxvZ1Jlc3VsdCB7XHJcbiAgc2VsZWN0ZWRJdGVtczogYW55W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0RGlhbG9nTG9va3VwIHtcclxuICBpdGVtczogYW55W107XHJcbiAgZmlsdGVyPzogc3RyaW5nO1xyXG4gIHBhcmFtcz86IGFueTtcclxuICBvd25lcj86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3REaWFsb2dBcHBlbmQge1xyXG4gIGl0ZW1zOiBhbnlbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3REaWFsb2dEZWxldGUge1xyXG4gIGl0ZW1zOiBhbnlbXTtcclxuICBzZWxlY3RlZEl0ZW1zOiBhbnlbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWxlIHtcclxuICBmaWxlOiBhbnk7XHJcbiAgb3B0aW9ucz86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3REaWFsb2dEYXRhIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIG9rQ2FwdGlvbj86IHN0cmluZztcclxuICBtYXhJdGVtcz86IG51bWJlcjtcclxuICBtdWx0aT86IGJvb2xlYW47XHJcbiAgbXVzdFNlbGVjdD86IGJvb2xlYW47XHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbiAgZmlsdGVyPzogc3RyaW5nO1xyXG4gIGZpbHRlcnM/OiBhbnk7XHJcbiAgaXRlbXM/OiBhbnk7XHJcbiAgbG9va3VwRmllbGRzPzogYW55O1xyXG4gIGxvb2t1cE9uSW5pdD86IGJvb2xlYW47XHJcbiAgZW1wdHlNZXNzYWdlPzogc3RyaW5nO1xyXG4gIGNhbkxvb2t1cFdpdGhPcHRpb25zPzogYm9vbGVhbjtcclxuICBjYW5Mb29rdXA/OiBib29sZWFuO1xyXG4gIGNhbkRlbGV0ZT86IGJvb2xlYW47XHJcbiAgY2FuQXBwZW5kPzogYm9vbGVhbjtcclxuICBjYW5FZGl0PzogYm9vbGVhbjtcclxuICBjYW5WaWV3PzogYm9vbGVhbjtcclxuICBjYW5GaWx0ZXI/OiBib29sZWFuO1xyXG4gIGNhblBhZ2luYXRlPzpib29sZWFuO1xyXG4gIHBhZ2VTaXplPzogbnVtYmVyO1xyXG4gIGFwcGVhcmFuY2U/OiBzdHJpbmc7XHJcbiAgaGVhZGVyPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdFRyZWVEaWFsb2dEYXRhIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIG9rQ2FwdGlvbj86IHN0cmluZztcclxuICBub2Rlcz86IGFueTtcclxuICBpbml0aWFsRmlsdGVyPzogc3RyaW5nO1xyXG4gIGFwcGVhcmFuY2U/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0RmlsZURpYWxvZ0RhdGEge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgb2tDYXB0aW9uPzogc3RyaW5nO1xyXG4gIGhlbHBMaW5rPzogc3RyaW5nO1xyXG4gIGhlbHBDYXB0aW9uPzogc3RyaW5nO1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbiAgYXBwZWFyYW5jZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlbGVjdGFibGVJdGVtIGltcGxlbWVudHMgU2VhcmNoYWJsZSB7XHJcbiAgYmFnOiBhbnk7XHJcbiAgdGVtcGxhdGU6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoYWJsZVxyXG4gICAqL1xyXG4gIHNlYXJjaEJhZzogU2VhcmNoQmFnO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSXRlbU5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNvdW50PzogbnVtYmVyO1xyXG4gIHBhcmVudD86IEl0ZW1Ob2RlO1xyXG4gIGNoaWxkcmVuPzogSXRlbU5vZGVbXTtcclxuICBiYWc6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlbGVjdGFibGVOb2RlIGV4dGVuZHMgSXRlbU5vZGUgaW1wbGVtZW50cyBTZWFyY2hhYmxlIHtcclxuICBleHBhbmRhYmxlOiBib29sZWFuO1xyXG4gIGxldmVsOiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaGFibGVcclxuICAgKi9cclxuICBzZWFyY2hCYWc6IFNlYXJjaEJhZztcclxuXHJcbiAgY29uc3RydWN0b3IoaXRlbTogSXRlbU5vZGUsIGxldmVsOiBudW1iZXIpIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgLy8gRmxhdHRlbmVkIGltcGxlbWVudGF0aW9uXHJcbiAgICB0aGlzLmV4cGFuZGFibGUgPSBpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMDtcclxuICAgIHRoaXMubGV2ZWwgPSBsZXZlbDtcclxuXHJcbiAgICAvLyBEYXRhXHJcbiAgICB0aGlzLmlkID0gaXRlbS5pZDtcclxuICAgIHRoaXMubmFtZSA9IGl0ZW0ubmFtZTtcclxuICAgIHRoaXMuY291bnQgPSBpdGVtLmNvdW50O1xyXG4gICAgdGhpcy5wYXJlbnQgPSBpdGVtLnBhcmVudDtcclxuICAgIHRoaXMuYmFnID0gaXRlbS5iYWc7XHJcbiAgICB0aGlzLmNoaWxkcmVuID0gaXRlbS5jaGlsZHJlbjtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VuZFRvRGlhbG9nUmVzdWx0IHtcclxuICByZWNpcGllbnRzOiBzdHJpbmc7XHJcbiAgc3ViamVjdDogc3RyaW5nO1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBvcHRpb25zPzogYW55IHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb21wdERpYWxvZ1Jlc3VsdCB7XHJcbiAgdmFsdWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIG9wdGlvbnM/OiBhbnkgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBQcm9tcHREaWFsb2dUeXBlIHtcclxuICBEZWZhdWx0ID0gMCxcclxuICBEYXRlID0gMSxcclxuICBOdW1iZXIgPSAyLFxyXG4gIFRleHQgPSAzLFxyXG4gIERhdGVJbnRlcnZhbCA9IDQsXHJcbiAgTGlzdCA9IDUsXHJcbiAgVGltZSA9IDZcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0RGlhbG9nRGF0YSB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlOiBQcm9tcHREaWFsb2dUeXBlO1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIG9rQ2FwdGlvbj86IHN0cmluZztcclxuICBjYW5jZWxDYXB0aW9uPzogc3RyaW5nO1xyXG4gIGluaXRpYWxWYWx1ZT86IGFueTtcclxuICBtaW5WYWx1ZT86IG51bWJlcjtcclxuICBtYXhWYWx1ZT86IG51bWJlcjtcclxuICByZXF1aXJlZD86IGJvb2xlYW47XHJcbiAgYXBwZWFyYW5jZT86IHN0cmluZztcclxuICBvcHRpb25zPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb21wdFRpbWVEaWFsb2dEYXRhIGV4dGVuZHMgUHJvbXB0RGlhbG9nRGF0YSB7XHJcbiAgc2xvdHM/OiBzdHJpbmc7XHJcbn0iXX0=
@@ -1,18 +1,18 @@
1
- import { Component, EventEmitter, Inject, Injectable, Output, ViewChild } from '@angular/core';
1
+ import { TextFieldModule } from '@angular/cdk/text-field';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Output, ViewChild, inject } from '@angular/core';
2
3
  import { FormsModule } from '@angular/forms';
3
- import { MAT_DIALOG_DATA, MatDialogTitle, MatDialogContent, MatDialogActions, MatDialogClose } from '@angular/material/dialog';
4
- import { DateInterval } from '@arsedizioni/ars-utils/core';
5
- import { PromptDialogType } from '../../definitions';
6
- import { SystemUtils } from '@arsedizioni/ars-utils/core';
4
+ import { MatButtonModule } from '@angular/material/button';
7
5
  import { MatCheckboxModule } from '@angular/material/checkbox';
8
6
  import { MatOptionModule } from '@angular/material/core';
9
- import { MatSelectModule } from '@angular/material/select';
10
- import { TextFieldModule } from '@angular/cdk/text-field';
7
+ import { MAT_DIALOG_DATA, MatDialogActions, MatDialogClose, MatDialogContent, MatDialogTitle } from '@angular/material/dialog';
8
+ import { MatFormFieldModule } from '@angular/material/form-field';
11
9
  import { MatIconModule } from '@angular/material/icon';
12
- import { MatButtonModule } from '@angular/material/button';
13
10
  import { MatInputModule } from '@angular/material/input';
14
- import { MatFormFieldModule } from '@angular/material/form-field';
11
+ import { MatSelectModule } from '@angular/material/select';
12
+ import { SystemUtils } from '@arsedizioni/ars-utils/core';
15
13
  import { FlexModule } from '@ngbracket/ngx-layout/flex';
14
+ import { PromptDialogType } from '../../definitions';
15
+ import { DialogService } from '@arsedizioni/ars-utils/ui';
16
16
  import * as i0 from "@angular/core";
17
17
  import * as i1 from "@angular/forms";
18
18
  import * as i2 from "@ngbracket/ngx-layout/flex";
@@ -24,90 +24,54 @@ import * as i7 from "@angular/material/icon";
24
24
  import * as i8 from "@angular/material/select";
25
25
  import * as i9 from "@angular/material/core";
26
26
  import * as i10 from "@angular/material/checkbox";
27
- import * as i11 from "@arsedizioni/ars-utils/ui";
28
27
  export class PromptDialogComponent {
29
- constructor(_data) {
28
+ constructor() {
30
29
  this.done = new EventEmitter();
30
+ this.dialogService = inject(DialogService);
31
+ this.dialogData = inject(MAT_DIALOG_DATA) ?? { appearance: 'fill', title: 'Inserisci dato', type: PromptDialogType.Default };
31
32
  this.value = null;
32
- this.data = _data || { appearance: 'fill', title: 'Inserisci dato', type: PromptDialogType.Default };
33
- if (!this.data.appearance)
34
- this.data.appearance = 'fill';
35
- if (!this.data.title)
36
- this.data.title = 'Inserisci dato';
37
- if (!this.data.type)
38
- this.data.type = PromptDialogType.Default;
39
- if (!this.data.okCaption)
40
- this.data.okCaption = 'Ok';
41
- if (!this.data.cancelCaption)
42
- this.data.cancelCaption = 'Annulla';
43
- if (this.data.type === PromptDialogType.DateInterval)
44
- this.value = new DateInterval();
45
- if (this.data.initialValue && this.data.type !== PromptDialogType.List)
46
- this.value = this.data.initialValue;
33
+ }
34
+ ngOnInit() {
35
+ if (!this.dialogData.appearance) {
36
+ this.dialogData.appearance = 'fill';
37
+ }
38
+ if (!this.dialogData.title) {
39
+ this.dialogData.title = 'Inserisci dato';
40
+ }
41
+ if (!this.dialogData.type) {
42
+ this.dialogData.type = PromptDialogType.Default;
43
+ }
44
+ if (!this.dialogData.okCaption) {
45
+ this.dialogData.okCaption = 'Ok';
46
+ }
47
+ if (!this.dialogData.cancelCaption) {
48
+ this.dialogData.cancelCaption = 'Annulla';
49
+ }
50
+ if (this.dialogData.initialValue && this.dialogData.type !== PromptDialogType.List) {
51
+ this.value = this.dialogData.initialValue;
52
+ }
47
53
  }
48
54
  /**
49
55
  * Done
50
56
  */
51
57
  ok() {
52
- if (this.f.form.invalid)
58
+ if (this.f.form.invalid) {
59
+ this.dialogService.error("Ci sono degli errori da correggere.");
53
60
  return;
54
- this.done.emit({ value: this.value, options: this.data.options });
61
+ }
62
+ this.done.emit({ value: this.value, options: this.dialogData.options });
55
63
  }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: PromptDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: PromptDialogComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "f", first: true, predicate: ["f"], descendants: true }], ngImport: i0, template: "<h2 mat-dialog-title>{{data.title}}</h2>\r\n<div mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" novalidate>\r\n <div fxLayout=\"column\" fxLayoutGap=\"32px\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"column\" fxFill>\r\n @if (!data.type) {\r\n <mat-form-field [appearance]=\"data.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{data.description}}</mat-label>\r\n <input type=\"text\" cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"data.required\" maxlength=\"200\">\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (data.type === 1) {\r\n <mat-form-field [appearance]=\"data.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{data.description}}</mat-label>\r\n <input type=\"date\" matInput [(ngModel)]=\"value\" name=\"_value\" #_value=\"ngModel\" [required]=\"data.required\">\r\n @if (_value.invalid) {\r\n <mat-error>Data non valida.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (data.type === 2) {\r\n <mat-form-field [appearance]=\"data.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{data.description}}</mat-label>\r\n <input type=\"number\" cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"data.required\" [min]=\"data.minValue\" [max]=\"data.maxValue\">\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (data.type === 3) {\r\n <mat-form-field [appearance]=\"data.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{data.description}}</mat-label>\r\n <textarea cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"data.required\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\" cdkAutosizeMaxRows=\"10\"\r\n maxlength=\"1000\"></textarea>\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-hint align=\"end\">{{_value.value?.length || 0}}/1000 </mat-hint>\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (data.type === 5) {\r\n <mat-form-field [appearance]=\"data.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{data.description}}</mat-label>\r\n <mat-select [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\" [required]=\"data.required\">\r\n @for (i of data.initialValue; track i) {\r\n <mat-option [value]=\"i.value\">\r\n {{i.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n </div>\r\n @if (data.options) {\r\n <div>\r\n @for (o of data.options; track o; let i = $index) {\r\n <div>\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"o.value\" name=\"opt_{{i}}\">\r\n {{o.description}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n <br>\r\n </div>\r\n }\r\n </div>\r\n </form>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button color=\"primary\" [disabled]=\"f.form.invalid\" \r\n (click)=\"ok()\">{{data.okCaption}}</button>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\"\r\n >{{data.cancelCaption}}</button>\r\n </div>\r\n</div>", styles: [":root{--ars-dialog-info-ok: #388E3C;--ars-filterbox-filtered-background-color: #f9fbe7}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-dialog-info-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}b{font-weight:700}.large{font-size:large!important}.small{font-size:small!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (prefers-color-scheme: dark){:root{--ars-dialog-info-ok: #4CAF50;--ars-filterbox-filtered-background-color: #c6c7b8}.dialog-info-green,.dialog-info-ok{color:var(--ars-dialog-info-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] }); }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: PromptDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: PromptDialogComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "f", first: true, predicate: ["f"], descendants: true }], ngImport: i0, template: "<h2 mat-dialog-title>{{dialogData.title}}</h2>\r\n<div mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" novalidate>\r\n <div fxLayout=\"column\" fxLayoutGap=\"32px\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"column\" fxFill>\r\n @if (!dialogData.type) {\r\n <mat-form-field [appearance]=\"dialogData.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{dialogData.description}}</mat-label>\r\n <input type=\"text\" cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"dialogData.required\" maxlength=\"200\">\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (dialogData.type === 1) {\r\n <mat-form-field [appearance]=\"dialogData.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{dialogData.description}}</mat-label>\r\n <input type=\"date\" matInput [(ngModel)]=\"value\" name=\"_value\" #_value=\"ngModel\" [required]=\"dialogData.required\">\r\n @if (_value.invalid) {\r\n <mat-error>Data non valida.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (dialogData.type === 2) {\r\n <mat-form-field [appearance]=\"dialogData.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{dialogData.description}}</mat-label>\r\n <input type=\"number\" cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"dialogData.required\" [min]=\"dialogData.minValue\" [max]=\"dialogData.maxValue\">\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (dialogData.type === 3) {\r\n <mat-form-field [appearance]=\"dialogData.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{dialogData.description}}</mat-label>\r\n <textarea cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"dialogData.required\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\" cdkAutosizeMaxRows=\"10\"\r\n maxlength=\"1000\"></textarea>\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-hint align=\"end\">{{_value.value?.length || 0}}/1000 </mat-hint>\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (dialogData.type === 5) {\r\n <mat-form-field [appearance]=\"dialogData.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{dialogData.description}}</mat-label>\r\n <mat-select [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\" [required]=\"dialogData.required\">\r\n @for (i of dialogData.initialValue; track i) {\r\n <mat-option [value]=\"i.value\">\r\n {{i.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n </div>\r\n @if (dialogData.options) {\r\n <div>\r\n @for (o of dialogData.options; track o; let i = $index) {\r\n <div>\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"o.value\" name=\"opt_{{i}}\">\r\n {{o.description}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n <br>\r\n </div>\r\n }\r\n </div>\r\n </form>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button color=\"primary\" [disabled]=\"f.form.invalid\" \r\n (click)=\"ok()\">{{dialogData.okCaption}}</button>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\"\r\n >{{dialogData.cancelCaption}}</button>\r\n </div>\r\n</div>", styles: [":root{--ars-dialog-info-ok: #388E3C;--ars-filterbox-filtered-background-color: #f9fbe7}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-dialog-info-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}b{font-weight:700}.large{font-size:large!important}.small{font-size:small!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (prefers-color-scheme: dark){:root{--ars-dialog-info-ok: #4CAF50;--ars-filterbox-filtered-background-color: #c6c7b8}.dialog-info-green,.dialog-info-ok{color:var(--ars-dialog-info-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
66
  }
59
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: PromptDialogComponent, decorators: [{
60
68
  type: Component,
61
- args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, imports: [MatDialogTitle, MatDialogContent, FormsModule, FlexModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule, TextFieldModule, MatSelectModule, MatOptionModule, MatCheckboxModule, MatDialogActions, MatDialogClose], template: "<h2 mat-dialog-title>{{data.title}}</h2>\r\n<div mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" novalidate>\r\n <div fxLayout=\"column\" fxLayoutGap=\"32px\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"column\" fxFill>\r\n @if (!data.type) {\r\n <mat-form-field [appearance]=\"data.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{data.description}}</mat-label>\r\n <input type=\"text\" cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"data.required\" maxlength=\"200\">\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (data.type === 1) {\r\n <mat-form-field [appearance]=\"data.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{data.description}}</mat-label>\r\n <input type=\"date\" matInput [(ngModel)]=\"value\" name=\"_value\" #_value=\"ngModel\" [required]=\"data.required\">\r\n @if (_value.invalid) {\r\n <mat-error>Data non valida.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (data.type === 2) {\r\n <mat-form-field [appearance]=\"data.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{data.description}}</mat-label>\r\n <input type=\"number\" cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"data.required\" [min]=\"data.minValue\" [max]=\"data.maxValue\">\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (data.type === 3) {\r\n <mat-form-field [appearance]=\"data.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{data.description}}</mat-label>\r\n <textarea cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"data.required\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\" cdkAutosizeMaxRows=\"10\"\r\n maxlength=\"1000\"></textarea>\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-hint align=\"end\">{{_value.value?.length || 0}}/1000 </mat-hint>\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (data.type === 5) {\r\n <mat-form-field [appearance]=\"data.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{data.description}}</mat-label>\r\n <mat-select [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\" [required]=\"data.required\">\r\n @for (i of data.initialValue; track i) {\r\n <mat-option [value]=\"i.value\">\r\n {{i.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n </div>\r\n @if (data.options) {\r\n <div>\r\n @for (o of data.options; track o; let i = $index) {\r\n <div>\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"o.value\" name=\"opt_{{i}}\">\r\n {{o.description}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n <br>\r\n </div>\r\n }\r\n </div>\r\n </form>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button color=\"primary\" [disabled]=\"f.form.invalid\" \r\n (click)=\"ok()\">{{data.okCaption}}</button>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\"\r\n >{{data.cancelCaption}}</button>\r\n </div>\r\n</div>", styles: [":root{--ars-dialog-info-ok: #388E3C;--ars-filterbox-filtered-background-color: #f9fbe7}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-dialog-info-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}b{font-weight:700}.large{font-size:large!important}.small{font-size:small!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (prefers-color-scheme: dark){:root{--ars-dialog-info-ok: #4CAF50;--ars-filterbox-filtered-background-color: #c6c7b8}.dialog-info-green,.dialog-info-ok{color:var(--ars-dialog-info-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}\n"] }]
62
- }], ctorParameters: () => [{ type: undefined, decorators: [{
63
- type: Inject,
64
- args: [MAT_DIALOG_DATA]
65
- }] }], propDecorators: { f: [{
69
+ args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatDialogTitle, MatDialogContent, FormsModule, FlexModule, MatFormFieldModule, MatInputModule,
70
+ MatButtonModule, MatIconModule, TextFieldModule, MatSelectModule, MatOptionModule, MatCheckboxModule, MatDialogActions, MatDialogClose], template: "<h2 mat-dialog-title>{{dialogData.title}}</h2>\r\n<div mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" novalidate>\r\n <div fxLayout=\"column\" fxLayoutGap=\"32px\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"column\" fxFill>\r\n @if (!dialogData.type) {\r\n <mat-form-field [appearance]=\"dialogData.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{dialogData.description}}</mat-label>\r\n <input type=\"text\" cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"dialogData.required\" maxlength=\"200\">\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (dialogData.type === 1) {\r\n <mat-form-field [appearance]=\"dialogData.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{dialogData.description}}</mat-label>\r\n <input type=\"date\" matInput [(ngModel)]=\"value\" name=\"_value\" #_value=\"ngModel\" [required]=\"dialogData.required\">\r\n @if (_value.invalid) {\r\n <mat-error>Data non valida.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (dialogData.type === 2) {\r\n <mat-form-field [appearance]=\"dialogData.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{dialogData.description}}</mat-label>\r\n <input type=\"number\" cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"dialogData.required\" [min]=\"dialogData.minValue\" [max]=\"dialogData.maxValue\">\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (dialogData.type === 3) {\r\n <mat-form-field [appearance]=\"dialogData.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{dialogData.description}}</mat-label>\r\n <textarea cdkFocusInitial matInput [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\"\r\n [required]=\"dialogData.required\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\" cdkAutosizeMaxRows=\"10\"\r\n maxlength=\"1000\"></textarea>\r\n @if (value) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\" (click)=\"value = ''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-hint align=\"end\">{{_value.value?.length || 0}}/1000 </mat-hint>\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (dialogData.type === 5) {\r\n <mat-form-field [appearance]=\"dialogData.appearance\" style=\"width: 100%;\">\r\n <mat-label>{{dialogData.description}}</mat-label>\r\n <mat-select [(ngModel)]=\"value\" #_value=\"ngModel\" name=\"_value\" [required]=\"dialogData.required\">\r\n @for (i of dialogData.initialValue; track i) {\r\n <mat-option [value]=\"i.value\">\r\n {{i.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (_value.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n </div>\r\n @if (dialogData.options) {\r\n <div>\r\n @for (o of dialogData.options; track o; let i = $index) {\r\n <div>\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"o.value\" name=\"opt_{{i}}\">\r\n {{o.description}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n <br>\r\n </div>\r\n }\r\n </div>\r\n </form>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button color=\"primary\" [disabled]=\"f.form.invalid\" \r\n (click)=\"ok()\">{{dialogData.okCaption}}</button>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\"\r\n >{{dialogData.cancelCaption}}</button>\r\n </div>\r\n</div>", styles: [":root{--ars-dialog-info-ok: #388E3C;--ars-filterbox-filtered-background-color: #f9fbe7}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-dialog-info-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}b{font-weight:700}.large{font-size:large!important}.small{font-size:small!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (prefers-color-scheme: dark){:root{--ars-dialog-info-ok: #4CAF50;--ars-filterbox-filtered-background-color: #c6c7b8}.dialog-info-green,.dialog-info-ok{color:var(--ars-dialog-info-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}\n"] }]
71
+ }], propDecorators: { f: [{
66
72
  type: ViewChild,
67
73
  args: ['f']
68
74
  }], done: [{
69
75
  type: Output
70
76
  }] } });
71
- export class _PromptDialogService {
72
- constructor($dialog) {
73
- this.$dialog = $dialog;
74
- }
75
- /**
76
- * Prompt user to insert a value
77
- * @param title : the dialog title
78
- * @param type : the input type: 0 = text, 1 = date, 2 = number
79
- * @param description : the placeholder description
80
- * @param initialValue : the initial value
81
- * @param okCaption : ok button caption
82
- * @param cancelCaption : cancel button caption
83
- * @param options : checkable option list
84
- * @param width: the preferred width
85
- */
86
- prompt(title, type = 0, description, initialValue = null, okCaption = 'Ok', cancelCaption = 'Annulla', options = null, width = 500) {
87
- return this.$dialog.open(PromptDialogComponent, {
88
- ariaLabel: 'inserisci valore',
89
- autoFocus: true,
90
- restoreFocus: false,
91
- data: {
92
- title: title,
93
- type: type,
94
- description: description,
95
- initialValue: initialValue,
96
- okCaption: okCaption,
97
- cancelCaption: cancelCaption,
98
- appearance: 'fill',
99
- options: options
100
- },
101
- closeOnNavigation: false,
102
- minWidth: '375px',
103
- maxWidth: width + 'px',
104
- width: '99%'
105
- });
106
- }
107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: _PromptDialogService, deps: [{ token: i11.DialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
108
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: _PromptDialogService }); }
109
- }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: _PromptDialogService, decorators: [{
111
- type: Injectable
112
- }], ctorParameters: () => [{ type: i11.DialogService }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9wcm9tcHQvcHJvbXB0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9wcm9tcHQvcHJvbXB0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFVLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUM3SSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUF3QyxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFB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QU07MkJBQUMsZUFBZTt5Q0FQVCxDQUFDO3NCQUFoQixTQUFTO3VCQUFDLEdBQUc7Z0JBQ0osSUFBSTtzQkFBYixNQUFNOztBQWdDUixNQUFNLE9BQU8sb0JBQW9CO0lBQ2hDLFlBQ1MsT0FBc0I7UUFBdEIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtJQUMzQixDQUFDO0lBRUw7Ozs7Ozs7Ozs7UUFVSTtJQUNKLE1BQU0sQ0FDSixLQUFhLEVBQ2IsT0FBZSxDQUFDLEVBQ2hCLFdBQW1CLEVBQ25CLGVBQW9CLElBQUksRUFDeEIsWUFBb0IsSUFBSSxFQUN4QixnQkFBd0IsU0FBUyxFQUNqQyxVQUFlLElBQUksRUFDbkIsUUFBZ0IsR0FBRztRQUVuQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzlDLFNBQVMsRUFBRSxrQkFBa0I7WUFDN0IsU0FBUyxFQUFFLElBQUk7WUFDZixZQUFZLEVBQUUsS0FBSztZQUNuQixJQUFJLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osSUFBSSxFQUFFLElBQUk7Z0JBQ1YsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLFlBQVksRUFBRSxZQUFZO2dCQUMxQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLFVBQVUsRUFBRSxNQUFNO2dCQUNsQixPQUFPLEVBQUUsT0FBTzthQUNHO1lBQ3JCLGlCQUFpQixFQUFFLEtBQUs7WUFDeEIsUUFBUSxFQUFFLE9BQU87WUFDakIsUUFBUSxFQUFFLEtBQUssR0FBRyxJQUFJO1lBQ3RCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E3Q1csb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3RhYmxlLCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0Zvcm0sIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1RpdGxlLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dBY3Rpb25zLCBNYXREaWFsb2dDbG9zZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgRGF0ZUludGVydmFsIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgUHJvbXB0RGlhbG9nRGF0YSwgUHJvbXB0RGlhbG9nUmVzdWx0LCBQcm9tcHREaWFsb2dUeXBlIH0gZnJvbSAnLi4vLi4vZGVmaW5pdGlvbnMnO1xyXG5pbXBvcnQgeyBTeXN0ZW1VdGlscyB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY29yZSc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgRmxleE1vZHVsZSB9IGZyb20gJ0BuZ2JyYWNrZXQvbmd4LWxheW91dC9mbGV4JztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvdWknO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9tcHQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wcm9tcHQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTWF0RGlhbG9nVGl0bGUsIE1hdERpYWxvZ0NvbnRlbnQsIEZvcm1zTW9kdWxlLCBGbGV4TW9kdWxlLCAgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBUZXh0RmllbGRNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgIE1hdE9wdGlvbk1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0Nsb3NlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvbXB0RGlhbG9nQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCdmJykgZiE6IE5nRm9ybTtcclxuICBAT3V0cHV0KCkgZG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvbXB0RGlhbG9nUmVzdWx0PigpO1xyXG5cclxuICBkYXRhOiBQcm9tcHREaWFsb2dEYXRhO1xyXG4gIHZhbHVlOiBhbnkgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBfZGF0YTogUHJvbXB0RGlhbG9nRGF0YVxyXG4gICkge1xyXG4gICAgdGhpcy5kYXRhID0gX2RhdGEgfHwgeyBhcHBlYXJhbmNlOiAnZmlsbCcsIHRpdGxlOiAnSW5zZXJpc2NpIGRhdG8nLCB0eXBlOiBQcm9tcHREaWFsb2dUeXBlLkRlZmF1bHQgfTtcclxuICAgIGlmICghdGhpcy5kYXRhLmFwcGVhcmFuY2UpIHRoaXMuZGF0YS5hcHBlYXJhbmNlID0gJ2ZpbGwnO1xyXG4gICAgaWYgKCF0aGlzLmRhdGEudGl0bGUpIHRoaXMuZGF0YS50aXRsZSA9ICdJbnNlcmlzY2kgZGF0byc7XHJcbiAgICBpZiAoIXRoaXMuZGF0YS50eXBlKSB0aGlzLmRhdGEudHlwZSA9IFByb21wdERpYWxvZ1R5cGUuRGVmYXVsdDtcclxuICAgIGlmICghdGhpcy5kYXRhLm9rQ2FwdGlvbikgdGhpcy5kYXRhLm9rQ2FwdGlvbiA9ICdPayc7XHJcbiAgICBpZiAoIXRoaXMuZGF0YS5jYW5jZWxDYXB0aW9uKSB0aGlzLmRhdGEuY2FuY2VsQ2FwdGlvbiA9ICdBbm51bGxhJztcclxuICAgIGlmICh0aGlzLmRhdGEudHlwZSA9PT0gUHJvbXB0RGlhbG9nVHlwZS5EYXRlSW50ZXJ2YWwpXHJcbiAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZUludGVydmFsKCk7XHJcbiAgICBpZiAodGhpcy5kYXRhLmluaXRpYWxWYWx1ZSAmJiB0aGlzLmRhdGEudHlwZSAhPT0gUHJvbXB0RGlhbG9nVHlwZS5MaXN0KVxyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5kYXRhLmluaXRpYWxWYWx1ZTtcclxuXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEb25lXHJcbiAgICovXHJcbiAgb2soKSB7XHJcbiAgICBpZiAodGhpcy5mLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5kb25lLmVtaXQoeyB2YWx1ZTogdGhpcy52YWx1ZSwgb3B0aW9uczogdGhpcy5kYXRhLm9wdGlvbnMgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG4gZXhwb3J0IGNsYXNzIF9Qcm9tcHREaWFsb2dTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyAkZGlhbG9nOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAgKiBQcm9tcHQgdXNlciB0byBpbnNlcnQgYSB2YWx1ZVxyXG4gICAgKiBAcGFyYW0gdGl0bGUgOiB0aGUgZGlhbG9nIHRpdGxlXHJcbiAgICAqIEBwYXJhbSB0eXBlIDogdGhlIGlucHV0IHR5cGU6IDAgPSB0ZXh0LCAxID0gZGF0ZSwgMiA9IG51bWJlclxyXG4gICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gOiB0aGUgcGxhY2Vob2xkZXIgZGVzY3JpcHRpb25cclxuICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSA6IHRoZSBpbml0aWFsIHZhbHVlXHJcbiAgICAqIEBwYXJhbSBva0NhcHRpb24gOiBvayBidXR0b24gY2FwdGlvblxyXG4gICAgKiBAcGFyYW0gY2FuY2VsQ2FwdGlvbiA6IGNhbmNlbCBidXR0b24gY2FwdGlvblxyXG4gICAgKiBAcGFyYW0gb3B0aW9ucyA6IGNoZWNrYWJsZSBvcHRpb24gbGlzdFxyXG4gICAgKiBAcGFyYW0gd2lkdGg6IHRoZSBwcmVmZXJyZWQgd2lkdGhcclxuICAgICovXHJcbiAgcHJvbXB0KFxyXG4gICAgdGl0bGU6IHN0cmluZyxcclxuICAgIHR5cGU6IG51bWJlciA9IDAsXHJcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nLFxyXG4gICAgaW5pdGlhbFZhbHVlOiBhbnkgPSBudWxsLFxyXG4gICAgb2tDYXB0aW9uOiBzdHJpbmcgPSAnT2snLFxyXG4gICAgY2FuY2VsQ2FwdGlvbjogc3RyaW5nID0gJ0FubnVsbGEnLFxyXG4gICAgb3B0aW9uczogYW55ID0gbnVsbCxcclxuICAgIHdpZHRoOiBudW1iZXIgPSA1MDBcclxuICApOiBNYXREaWFsb2dSZWY8UHJvbXB0RGlhbG9nQ29tcG9uZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy4kZGlhbG9nLm9wZW4oUHJvbXB0RGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGFyaWFMYWJlbDogJ2luc2VyaXNjaSB2YWxvcmUnLFxyXG4gICAgICBhdXRvRm9jdXM6IHRydWUsXHJcbiAgICAgIHJlc3RvcmVGb2N1czogZmFsc2UsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICAgICAgb2tDYXB0aW9uOiBva0NhcHRpb24sXHJcbiAgICAgICAgY2FuY2VsQ2FwdGlvbjogY2FuY2VsQ2FwdGlvbixcclxuICAgICAgICBhcHBlYXJhbmNlOiAnZmlsbCcsXHJcbiAgICAgICAgb3B0aW9uczogb3B0aW9uc1xyXG4gICAgICB9IGFzIFByb21wdERpYWxvZ0RhdGEsXHJcbiAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiBmYWxzZSxcclxuICAgICAgbWluV2lkdGg6ICczNzVweCcsXHJcbiAgICAgIG1heFdpZHRoOiB3aWR0aCArICdweCcsXHJcbiAgICAgIHdpZHRoOiAnOTklJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG59IiwiPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3tkYXRhLnRpdGxlfX08L2gyPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8Zm9ybSBuYW1lPVwiZm9ybVwiICNmPVwibmdGb3JtXCIgbm92YWxpZGF0ZT5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEdhcD1cIjMycHhcIiBmeEZpbGw+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGaWxsPlxyXG4gICAgICAgIEBpZiAoIWRhdGEudHlwZSkge1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJkYXRhLmFwcGVhcmFuY2VcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57e2RhdGEuZGVzY3JpcHRpb259fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2RrRm9jdXNJbml0aWFsIG1hdElucHV0IFsobmdNb2RlbCldPVwidmFsdWVcIiAjX3ZhbHVlPVwibmdNb2RlbFwiIG5hbWU9XCJfdmFsdWVcIlxyXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiZGF0YS5yZXF1aXJlZFwiIG1heGxlbmd0aD1cIjIwMFwiPlxyXG4gICAgICAgICAgQGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIlB1bGlzY2lcIiAoY2xpY2spPVwidmFsdWUgPSAnJ1wiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKF92YWx1ZS5pbnZhbGlkKSB7XHJcbiAgICAgICAgICA8bWF0LWVycm9yPk9iYmxpZ2F0b3Jpby48L21hdC1lcnJvcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKGRhdGEudHlwZSA9PT0gMSkge1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJkYXRhLmFwcGVhcmFuY2VcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57e2RhdGEuZGVzY3JpcHRpb259fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJkYXRlXCIgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIG5hbWU9XCJfdmFsdWVcIiAjX3ZhbHVlPVwibmdNb2RlbFwiIFtyZXF1aXJlZF09XCJkYXRhLnJlcXVpcmVkXCI+XHJcbiAgICAgICAgICBAaWYgKF92YWx1ZS5pbnZhbGlkKSB7XHJcbiAgICAgICAgICA8bWF0LWVycm9yPkRhdGEgbm9uIHZhbGlkYS48L21hdC1lcnJvcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKGRhdGEudHlwZSA9PT0gMikge1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJkYXRhLmFwcGVhcmFuY2VcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57e2RhdGEuZGVzY3JpcHRpb259fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjZGtGb2N1c0luaXRpYWwgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiICNfdmFsdWU9XCJuZ01vZGVsXCIgbmFtZT1cIl92YWx1ZVwiXHJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJkYXRhLnJlcXVpcmVkXCIgW21pbl09XCJkYXRhLm1pblZhbHVlXCIgW21heF09XCJkYXRhLm1heFZhbHVlXCI+XHJcbiAgICAgICAgICBAaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIi0xXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiUHVsaXNjaVwiIChjbGljayk9XCJ2YWx1ZSA9ICcnXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiAoX3ZhbHVlLmludmFsaWQpIHtcclxuICAgICAgICAgIDxtYXQtZXJyb3I+T2JibGlnYXRvcmlvLjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoZGF0YS50eXBlID09PSAzKSB7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cImRhdGEuYXBwZWFyYW5jZVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7ZGF0YS5kZXNjcmlwdGlvbn19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8dGV4dGFyZWEgY2RrRm9jdXNJbml0aWFsIG1hdElucHV0IFsobmdNb2RlbCldPVwidmFsdWVcIiAjX3ZhbHVlPVwibmdNb2RlbFwiIG5hbWU9XCJfdmFsdWVcIlxyXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiZGF0YS5yZXF1aXJlZFwiIGNka1RleHRhcmVhQXV0b3NpemUgY2RrQXV0b3NpemVNaW5Sb3dzPVwiMVwiIGNka0F1dG9zaXplTWF4Um93cz1cIjEwXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTAwMFwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICBAaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIi0xXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiUHVsaXNjaVwiIChjbGljayk9XCJ2YWx1ZSA9ICcnXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxtYXQtaGludCBhbGlnbj1cImVuZFwiPnt7X3ZhbHVlLnZhbHVlPy5sZW5ndGggfHwgMH19LzEwMDAgPC9tYXQtaGludD5cclxuICAgICAgICAgIEBpZiAoX3ZhbHVlLmludmFsaWQpIHtcclxuICAgICAgICAgIDxtYXQtZXJyb3I+T2JibGlnYXRvcmlvLjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoZGF0YS50eXBlID09PSA1KSB7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cImRhdGEuYXBwZWFyYW5jZVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7ZGF0YS5kZXNjcmlwdGlvbn19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInZhbHVlXCIgI192YWx1ZT1cIm5nTW9kZWxcIiBuYW1lPVwiX3ZhbHVlXCIgW3JlcXVpcmVkXT1cImRhdGEucmVxdWlyZWRcIj5cclxuICAgICAgICAgICAgQGZvciAoaSBvZiBkYXRhLmluaXRpYWxWYWx1ZTsgdHJhY2sgaSkge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaS52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgIHt7aS5uYW1lfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICBAaWYgKF92YWx1ZS5pbnZhbGlkKSB7XHJcbiAgICAgICAgICA8bWF0LWVycm9yPk9iYmxpZ2F0b3Jpby48L21hdC1lcnJvcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIEBpZiAoZGF0YS5vcHRpb25zKSB7XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgQGZvciAobyBvZiBkYXRhLm9wdGlvbnM7IHRyYWNrIG87IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgWyhuZ01vZGVsKV09XCJvLnZhbHVlXCIgbmFtZT1cIm9wdF97e2l9fVwiPlxyXG4gICAgICAgICAgICB7e28uZGVzY3JpcHRpb259fVxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxicj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kXCIgZnhGaWxsPlxyXG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImYuZm9ybS5pbnZhbGlkXCIgXHJcbiAgICAgIChjbGljayk9XCJvaygpXCI+e3tkYXRhLm9rQ2FwdGlvbn19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwidHJ1ZVwiIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgID57e2RhdGEuY2FuY2VsQ2FwdGlvbn19PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9wcm9tcHQvcHJvbXB0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9wcm9tcHQvcHJvbXB0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFdBQVcsRUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0gsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFB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QyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxjQUFjO3dCQUNyRyxlQUFlLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsQ0FBQzs4QkFHekgsQ0FBQztzQkFBaEIsU0FBUzt1QkFBQyxHQUFHO2dCQUNKLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0Nsb3NlLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBTeXN0ZW1VdGlscyB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY29yZSc7XHJcbmltcG9ydCB7IEZsZXhNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQvZmxleCc7XHJcbmltcG9ydCB7IFByb21wdERpYWxvZ0RhdGEsIFByb21wdERpYWxvZ1Jlc3VsdCwgUHJvbXB0RGlhbG9nVHlwZSB9IGZyb20gJy4uLy4uL2RlZmluaXRpb25zJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvdWknO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9tcHQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wcm9tcHQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbTWF0RGlhbG9nVGl0bGUsIE1hdERpYWxvZ0NvbnRlbnQsIEZvcm1zTW9kdWxlLCBGbGV4TW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgVGV4dEZpZWxkTW9kdWxlLCBNYXRTZWxlY3RNb2R1bGUsIE1hdE9wdGlvbk1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0Nsb3NlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvbXB0RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdmJykgZiE6IE5nRm9ybTtcclxuICBAT3V0cHV0KCkgZG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvbXB0RGlhbG9nUmVzdWx0PigpO1xyXG5cclxuICBwcml2YXRlIGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoRGlhbG9nU2VydmljZSk7XHJcblxyXG4gIHByb3RlY3RlZCBkaWFsb2dEYXRhOiBQcm9tcHREaWFsb2dEYXRhID0gaW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgPz8geyBhcHBlYXJhbmNlOiAnZmlsbCcsIHRpdGxlOiAnSW5zZXJpc2NpIGRhdG8nLCB0eXBlOiBQcm9tcHREaWFsb2dUeXBlLkRlZmF1bHQgfVxyXG5cclxuICBwcm90ZWN0ZWQgdmFsdWU6IGFueSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLmFwcGVhcmFuY2UpIHtcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLmFwcGVhcmFuY2UgPSAnZmlsbCc7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuZGlhbG9nRGF0YS50aXRsZSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEudGl0bGUgPSAnSW5zZXJpc2NpIGRhdG8nO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEudHlwZSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEudHlwZSA9IFByb21wdERpYWxvZ1R5cGUuRGVmYXVsdDtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLm9rQ2FwdGlvbikgeyBcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLm9rQ2FwdGlvbiA9ICdPayc7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuZGlhbG9nRGF0YS5jYW5jZWxDYXB0aW9uKXsgXHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5jYW5jZWxDYXB0aW9uID0gJ0FubnVsbGEnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5pbml0aWFsVmFsdWUgJiYgdGhpcy5kaWFsb2dEYXRhLnR5cGUgIT09IFByb21wdERpYWxvZ1R5cGUuTGlzdCl7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmRpYWxvZ0RhdGEuaW5pdGlhbFZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG9uZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBvaygpIHtcclxuICAgIGlmICh0aGlzLmYuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5lcnJvcihcIkNpIHNvbm8gZGVnbGkgZXJyb3JpIGRhIGNvcnJlZ2dlcmUuXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmRvbmUuZW1pdCh7IHZhbHVlOiB0aGlzLnZhbHVlLCBvcHRpb25zOiB0aGlzLmRpYWxvZ0RhdGEub3B0aW9ucyB9KTtcclxuICB9XHJcbn1cclxuIiwiPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3tkaWFsb2dEYXRhLnRpdGxlfX08L2gyPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8Zm9ybSBuYW1lPVwiZm9ybVwiICNmPVwibmdGb3JtXCIgbm92YWxpZGF0ZT5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEdhcD1cIjMycHhcIiBmeEZpbGw+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGaWxsPlxyXG4gICAgICAgIEBpZiAoIWRpYWxvZ0RhdGEudHlwZSkge1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJkaWFsb2dEYXRhLmFwcGVhcmFuY2VcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57e2RpYWxvZ0RhdGEuZGVzY3JpcHRpb259fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2RrRm9jdXNJbml0aWFsIG1hdElucHV0IFsobmdNb2RlbCldPVwidmFsdWVcIiAjX3ZhbHVlPVwibmdNb2RlbFwiIG5hbWU9XCJfdmFsdWVcIlxyXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiZGlhbG9nRGF0YS5yZXF1aXJlZFwiIG1heGxlbmd0aD1cIjIwMFwiPlxyXG4gICAgICAgICAgQGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIlB1bGlzY2lcIiAoY2xpY2spPVwidmFsdWUgPSAnJ1wiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKF92YWx1ZS5pbnZhbGlkKSB7XHJcbiAgICAgICAgICA8bWF0LWVycm9yPk9iYmxpZ2F0b3Jpby48L21hdC1lcnJvcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKGRpYWxvZ0RhdGEudHlwZSA9PT0gMSkge1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJkaWFsb2dEYXRhLmFwcGVhcmFuY2VcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57e2RpYWxvZ0RhdGEuZGVzY3JpcHRpb259fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJkYXRlXCIgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIG5hbWU9XCJfdmFsdWVcIiAjX3ZhbHVlPVwibmdNb2RlbFwiIFtyZXF1aXJlZF09XCJkaWFsb2dEYXRhLnJlcXVpcmVkXCI+XHJcbiAgICAgICAgICBAaWYgKF92YWx1ZS5pbnZhbGlkKSB7XHJcbiAgICAgICAgICA8bWF0LWVycm9yPkRhdGEgbm9uIHZhbGlkYS48L21hdC1lcnJvcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKGRpYWxvZ0RhdGEudHlwZSA9PT0gMikge1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJkaWFsb2dEYXRhLmFwcGVhcmFuY2VcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57e2RpYWxvZ0RhdGEuZGVzY3JpcHRpb259fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjZGtGb2N1c0luaXRpYWwgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiICNfdmFsdWU9XCJuZ01vZGVsXCIgbmFtZT1cIl92YWx1ZVwiXHJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJkaWFsb2dEYXRhLnJlcXVpcmVkXCIgW21pbl09XCJkaWFsb2dEYXRhLm1pblZhbHVlXCIgW21heF09XCJkaWFsb2dEYXRhLm1heFZhbHVlXCI+XHJcbiAgICAgICAgICBAaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIi0xXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiUHVsaXNjaVwiIChjbGljayk9XCJ2YWx1ZSA9ICcnXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiAoX3ZhbHVlLmludmFsaWQpIHtcclxuICAgICAgICAgIDxtYXQtZXJyb3I+T2JibGlnYXRvcmlvLjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoZGlhbG9nRGF0YS50eXBlID09PSAzKSB7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cImRpYWxvZ0RhdGEuYXBwZWFyYW5jZVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7ZGlhbG9nRGF0YS5kZXNjcmlwdGlvbn19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8dGV4dGFyZWEgY2RrRm9jdXNJbml0aWFsIG1hdElucHV0IFsobmdNb2RlbCldPVwidmFsdWVcIiAjX3ZhbHVlPVwibmdNb2RlbFwiIG5hbWU9XCJfdmFsdWVcIlxyXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiZGlhbG9nRGF0YS5yZXF1aXJlZFwiIGNka1RleHRhcmVhQXV0b3NpemUgY2RrQXV0b3NpemVNaW5Sb3dzPVwiMVwiIGNka0F1dG9zaXplTWF4Um93cz1cIjEwXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTAwMFwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICBAaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIi0xXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiUHVsaXNjaVwiIChjbGljayk9XCJ2YWx1ZSA9ICcnXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxtYXQtaGludCBhbGlnbj1cImVuZFwiPnt7X3ZhbHVlLnZhbHVlPy5sZW5ndGggfHwgMH19LzEwMDAgPC9tYXQtaGludD5cclxuICAgICAgICAgIEBpZiAoX3ZhbHVlLmludmFsaWQpIHtcclxuICAgICAgICAgIDxtYXQtZXJyb3I+T2JibGlnYXRvcmlvLjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoZGlhbG9nRGF0YS50eXBlID09PSA1KSB7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cImRpYWxvZ0RhdGEuYXBwZWFyYW5jZVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7ZGlhbG9nRGF0YS5kZXNjcmlwdGlvbn19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInZhbHVlXCIgI192YWx1ZT1cIm5nTW9kZWxcIiBuYW1lPVwiX3ZhbHVlXCIgW3JlcXVpcmVkXT1cImRpYWxvZ0RhdGEucmVxdWlyZWRcIj5cclxuICAgICAgICAgICAgQGZvciAoaSBvZiBkaWFsb2dEYXRhLmluaXRpYWxWYWx1ZTsgdHJhY2sgaSkge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaS52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgIHt7aS5uYW1lfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICBAaWYgKF92YWx1ZS5pbnZhbGlkKSB7XHJcbiAgICAgICAgICA8bWF0LWVycm9yPk9iYmxpZ2F0b3Jpby48L21hdC1lcnJvcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIEBpZiAoZGlhbG9nRGF0YS5vcHRpb25zKSB7XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgQGZvciAobyBvZiBkaWFsb2dEYXRhLm9wdGlvbnM7IHRyYWNrIG87IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgWyhuZ01vZGVsKV09XCJvLnZhbHVlXCIgbmFtZT1cIm9wdF97e2l9fVwiPlxyXG4gICAgICAgICAgICB7e28uZGVzY3JpcHRpb259fVxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxicj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kXCIgZnhGaWxsPlxyXG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImYuZm9ybS5pbnZhbGlkXCIgXHJcbiAgICAgIChjbGljayk9XCJvaygpXCI+e3tkaWFsb2dEYXRhLm9rQ2FwdGlvbn19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwidHJ1ZVwiIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgID57e2RpYWxvZ0RhdGEuY2FuY2VsQ2FwdGlvbn19PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==