monkey-front-components 0.0.201 → 0.0.204
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.
|
@@ -300,4 +300,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
300
300
|
selector: '[baseComponent]'
|
|
301
301
|
}]
|
|
302
302
|
}], ctorParameters: function () { return []; } });
|
|
303
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsdUJBQXVCLEVBTXZCLGFBQWEsRUFDZCxNQUFNLG1CQUFtQixDQUFDOztBQUszQixNQUFNLE9BQWdCLGFBQWE7SUFlakM7UUFWQSx3QkFBbUIsR0FBc0MsSUFBSSxDQUFDO1FBSTlELGVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFN0IsY0FBUyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBSzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxRQUFRO1FBQ2QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUM7WUFDaEQsQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDaEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLE9BQU8sQ0FDaEUsQ0FBQztRQUNKLE9BQU8sQ0FBQyxtREFBbUQsQ0FBQyxJQUFJLENBQzlELFNBQVMsQ0FBQyxTQUFTLENBQ3BCLENBQUMsSUFBSSxhQUFhLENBQUM7SUFDdEIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxJQUFJO1FBQ3BDLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxHQUFHLElBQUksQ0FBQztRQUVyQyxJQUFJLG1CQUFtQixFQUFFO1lBQ3ZCLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEdBQUcsbUJBQW1CLENBQUM7WUFFckQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUVyRCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDdEIsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBRXhCLElBQUksTUFBTSxFQUFFO29CQUNWLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUcsT0FBZSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUNqRixPQUFPLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFHLE9BQWUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEYsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7d0JBQ3RDLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQzt3QkFDMUQsTUFBTSxhQUFhLEdBQUcsWUFBWSxHQUFHLFlBQVksQ0FBQzt3QkFFbEQsSUFBSSxhQUFhLElBQUksU0FBUyxFQUFFOzRCQUM5QixPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7eUJBQ3hCO29CQUNILENBQUMsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsZUFBd0M7UUFDNUQsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxlQUFlLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN0QyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sZUFBZSxDQUFDLGdCQUEyQztRQUNqRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsZ0JBQWdCLENBQUM7UUFDckMsT0FBTyxDQUFDLG9CQUFvQjthQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQ3RDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQzVCLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBK0I7UUFDdEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFdkMsSUFBSSxTQUFTLEtBQUssT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUU7WUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV6QixPQUFPLENBQUMsWUFBWSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBRU8sOEJBQThCLENBQUMsY0FBc0MsSUFBSTtRQUMvRSxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTyxnQkFBZ0IsQ0FBQztRQUMvRCxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxlQUFlLENBQUM7UUFDN0QsSUFBSSxXQUFXLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sZUFBZSxDQUFDO1FBQzNELElBQUksV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFBRSxPQUFPLFlBQVksQ0FBQztRQUM1RCxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDO1lBQUUsT0FBTyxZQUFZLENBQUM7UUFDNUQsSUFBSSxXQUFXLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQy9DLElBQUksV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMvQyxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsc0JBQXNCLENBQUM7WUFBRSxPQUFPLGdCQUFnQixDQUFDO1FBQzNFLElBQUksV0FBVyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFBRSxPQUFPLGNBQWMsQ0FBQztRQUNoRSxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQUUsT0FBTyxjQUFjLENBQUM7UUFDaEUsSUFBSSxXQUFXLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1lBQUUsT0FBTyxrQkFBa0IsQ0FBQztRQUN2RSxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUM7WUFBRSxPQUFPLGlCQUFpQixDQUFDO1FBQ3RFLElBQUksV0FBVyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFBRSxPQUFPLGVBQWUsQ0FBQztRQUNsRSxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQUUsT0FBTyxhQUFhLENBQUM7UUFDOUQsSUFBSSxXQUFXLEVBQUUsUUFBUSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7WUFBRSxPQUFPLHlCQUF5QixDQUFDO1NBQUU7UUFDekYsSUFBSSxXQUFXLEVBQUUsUUFBUSxDQUFDLDRCQUE0QixDQUFDLEVBQUU7WUFDdkQsT0FBTyxrQ0FBa0MsQ0FBQztTQUMzQztRQUNELElBQUksV0FBVyxFQUFFLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQyxFQUFFO1lBQzFELE9BQU8sb0NBQW9DLENBQUM7U0FDN0M7UUFDRCxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxlQUFlLENBQUM7UUFFM0QsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVPLGdDQUFnQyxDQUFDLGNBQXNDLElBQUk7UUFDakYsSUFBSSxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sR0FBRyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsY0FBYyxDQUFDO1NBQzNFO1FBQ0QsSUFBSSxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sR0FBRyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsY0FBYyxDQUFDO1NBQzNFO1FBQ0QsSUFBSSxXQUFXLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQUUsT0FBTyxHQUFHLFdBQVcsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7U0FBRTtRQUNuRixJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFBRSxPQUFPLEdBQUcsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUFFO1FBRW5GLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVNLHlCQUF5QixDQUFDLENBQVksRUFBRSxLQUFjO1FBQzNELE1BQU0sVUFBVSxHQUFRLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFaEMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLE9BQU87WUFBRSxPQUFPLElBQUksQ0FBQztRQUV0QyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNsRCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUM3QixNQUFNLEdBQUcsR0FBRztvQkFDVixLQUFLLEVBQUUsVUFBVSxJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUNsRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3hELENBQUM7Z0JBQ0YsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxXQUFXLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztTQUFFO2FBQU07WUFDOUcsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQztTQUN6QztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGVBQWUsQ0FBQyxHQUFXO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUN4QixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ25CLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxZQUFZLENBQUMsQ0FBWSxFQUFFLEtBQWMsRUFBRSxLQUFjO1FBQzlELE1BQU0sVUFBVSxHQUFRLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLE9BQU87WUFBRSxPQUFPLElBQUksQ0FBQztRQUV0QyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNsRCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUM3QixNQUFNLEdBQUcsR0FBRztvQkFDVixZQUFZLEVBQUUsVUFBVSxJQUFJLENBQUMsOEJBQThCLENBQ3pELENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQ1gsRUFBRTtvQkFDSCxXQUFXLEVBQUUsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQy9ELENBQUM7Z0JBQ0YsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxXQUFXLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUM7U0FDckQ7YUFBTTtZQUNMLElBQUksR0FBUSxDQUFDO1lBRWIsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsR0FBRyxHQUFHO29CQUNKLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ1AsR0FBRyxVQUFVO3FCQUNkO2lCQUNGLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxHQUFHLEdBQUcsVUFBVSxDQUFDO2FBQ2xCO1lBRUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHO2dCQUMzQixHQUFHLElBQUksQ0FBQyxxQkFBcUI7Z0JBQzdCLEdBQUcsR0FBRzthQUNQLENBQUM7U0FDSDtRQUNELENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFNBQWtCO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztRQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQzFDLElBQUksR0FBRyxZQUFZLHVCQUF1QixFQUFFO2dCQUMxQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUSxDQUFDLElBS2Y7UUFDQyxJQUFJLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUMzQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxFQUFFLGlCQUFpQixDQUFDO1lBQ25ELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztTQUM5QztRQUNELElBQUksSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVNLFdBQVcsQ0FBQyxZQUFxQixJQUFJO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsS0FBNkIsRUFBRSxDQUFZO1FBQ3hFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDbEMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGlCQUFpQixFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQy9DLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7b0JBQ3JDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzlCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3BDLElBQUksS0FBSyxLQUFLLEdBQUcsRUFBRTt3QkFDakIsTUFBTSxHQUFHLEdBQUc7NEJBQ1YsWUFBWSxFQUFFLEVBQUU7NEJBQ2hCLFdBQVcsRUFBRSxXQUFXO3lCQUN6QixDQUFDO3dCQUNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRzs0QkFDM0IsR0FBRyxJQUFJLENBQUMscUJBQXFCOzRCQUM3QixDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUc7eUJBQ1gsQ0FBQzt3QkFDRixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQzs0QkFDeEIsU0FBUyxFQUFFLElBQUk7eUJBQ2hCLENBQUMsQ0FBQztxQkFDSjtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sTUFBTTtRQUNYLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxFQUFVO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxPQUFPO1lBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTSxlQUFlLENBQUMsSUFBUyxFQUFFLEtBQWE7UUFDN0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMzQixPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLE9BQWU7UUFDckMsT0FBTztZQUNMLEVBQUUsRUFBRSxFQUFFO1lBQ04sRUFBRSxFQUFFLEVBQUU7U0FDUCxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVNLDZCQUE2QixDQUFDLE9BQWU7UUFDbEQsT0FBTztZQUNMLEVBQUUsRUFBRSxpQkFBaUI7WUFDckIsRUFBRSxFQUFFLGVBQWU7U0FDcEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxPQUFlO1FBQ3pDLE9BQU87WUFDTCxFQUFFLEVBQUU7Z0JBQ0YsWUFBWSxFQUFFLGFBQWEsQ0FBQyxpQkFBaUI7YUFDOUM7WUFDRCxFQUFFLEVBQUU7Z0JBQ0YsWUFBWSxFQUFFLGFBQWEsQ0FBQyxvQkFBb0I7YUFDakQ7U0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQzs7MEdBNVRtQixhQUFhOzhGQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT25EZXN0cm95LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnbW9ua2V5LXN0eWxlLWd1aWRlJztcbmltcG9ydCB7XG4gIE1vbmtleUVjeENvbW1vbnNTZXJ2aWNlLFxuICBNb25rZXlFY3hFcnJvclJlc3BvbnNlLFxuICBNb25rZXlFY3hQYWdpbmF0aW9uT3B0aW9ucyxcbiAgTW9ua2V5RWN4U2Nyb2xsT3B0aW9ucyxcbiAgTW9ua2V5RWN4U3VwcG9ydE9wdGlvbnMsXG4gIE1vbmtleUVjeFRyYW5zbGF0ZU9wdGlvbnMsXG4gIFZhbGlkYXRlVXRpbHNcbn0gZnJvbSAnbW9ua2V5LWZyb250LWNvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYmFzZUNvbXBvbmVudF0nXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBfX21vbmtleWVjeEZvcm1FcnJvcnM6IGFueSB8IGFueVtdO1xuXG4gIF9fdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8YW55PjtcblxuICBfX3BhZ2luYXRpb25PcHRpb25zOiBNb25rZXlFY3hQYWdpbmF0aW9uT3B0aW9ucyB8IG51bGwgPSBudWxsO1xuXG4gIF9faTE4bjogYW55O1xuXG4gIF9faXNNb2JpbGUgPSB0aGlzLmlzTW9iaWxlKCk7XG5cbiAgX19sb2NhbGVzID0gWydwdC1CUicsICdlcy1DTCddO1xuXG4gIHByaXZhdGUgcGFnaW5hdGlvbkZ1bmM6IGFueTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fX3Vuc3Vic2NyaWJlQWxsID0gbmV3IFN1YmplY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNNb2JpbGUoKSB7XG4gICAgY29uc3QgaXNNb2JpbGVXaWR0aCA9ICh3aW5kb3cuc2NyZWVuLndpZHRoIDw9IDY0MCkgfHxcbiAgICAgICh3aW5kb3cubWF0Y2hNZWRpYSAmJlxuICAgICAgICB3aW5kb3cubWF0Y2hNZWRpYSgnb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KScpLm1hdGNoZXNcbiAgICAgICk7XG4gICAgcmV0dXJuICgvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8TW9iaWxlL2kudGVzdChcbiAgICAgIG5hdmlnYXRvci51c2VyQWdlbnRcbiAgICApKSB8fCBpc01vYmlsZVdpZHRoO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVQYWdpbmF0aW9uKGNyZWF0ZSA9IHRydWUpIHtcbiAgICBjb25zdCB7IF9fcGFnaW5hdGlvbk9wdGlvbnMgfSA9IHRoaXM7XG5cbiAgICBpZiAoX19wYWdpbmF0aW9uT3B0aW9ucykge1xuICAgICAgY29uc3QgeyBtYWluRWxlbWVudCwgc2VydmljZSB9ID0gX19wYWdpbmF0aW9uT3B0aW9ucztcblxuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1haW5FbGVtZW50KTtcblxuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5zY3JvbGwgPSBudWxsO1xuICAgICAgICBlbGVtZW50Lm9uc2Nyb2xsID0gbnVsbDtcblxuICAgICAgICBpZiAoY3JlYXRlKSB7XG4gICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoZWxlbWVudCBhcyBhbnkpLmV2ZW50TGlzdGVuZXJzKCdzY3JvbGwnKSk7XG4gICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoZWxlbWVudCBhcyBhbnkpLmV2ZW50TGlzdGVuZXJzKCdzY3JvbGwnKVswXSk7XG4gICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBvZmZzZXRIZWlnaHQgfSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50SGVpZ2h0ID0gc2Nyb2xsSGVpZ2h0IC0gb2Zmc2V0SGVpZ2h0O1xuXG4gICAgICAgICAgICBpZiAoY29udGVudEhlaWdodCA8PSBzY3JvbGxUb3ApIHtcbiAgICAgICAgICAgICAgc2VydmljZS5kb1BhZ2luYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3VwcG9ydChzdXBwb3J0Q29udHJvbHM6IE1vbmtleUVjeFN1cHBvcnRPcHRpb25zKSB7XG4gICAgY29uc3QgeyBzZXJ2aWNlLCBzaG93IH0gPSBzdXBwb3J0Q29udHJvbHM7XG4gICAgY29uc3QgbWV0aG9kID0gc2hvdyA/ICdzaG93JyA6ICdoaWRlJztcbiAgICBzZXJ2aWNlW21ldGhvZC50b0xvd2VyQ2FzZSgpXSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUcmFuc2xhdGUodHJhbnNsYXRlT3B0aW9uczogTW9ua2V5RWN4VHJhbnNsYXRlT3B0aW9ucykge1xuICAgIGNvbnN0IHsgc2VydmljZSB9ID0gdHJhbnNsYXRlT3B0aW9ucztcbiAgICBzZXJ2aWNlLl9fb25pMThuRGF0YUNoYW5nZWQkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fX3Vuc3Vic2NyaWJlQWxsKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0gc2VydmljZS5fX2kxOG47XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgdGhpcy5fX2kxOG4gPSBkYXRhO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVmlld1Njcm9sbChvcHRpb25zOiBNb25rZXlFY3hTY3JvbGxPcHRpb25zKSB7XG4gICAgY29uc3QgeyBlbGVtZW50SWQsIHNlcnZpY2UgfSA9IG9wdGlvbnM7XG5cbiAgICBpZiAoZWxlbWVudElkID09PSBzZXJ2aWNlPy5fX3NhdmVkU3RhdGU/LnNjcm9sbEVsZW1lbnRJZCkge1xuICAgICAgdGhpcy5nb1Njcm9sbChlbGVtZW50SWQpO1xuXG4gICAgICBzZXJ2aWNlLl9fc2F2ZWRTdGF0ZS5zY3JvbGxFbGVtZW50SWQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXJyb3JGaXJzdE1lc3NhZ2VUcmFuc2xhdGVkKGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gbnVsbCkge1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHJldHVybiAnRklFTEQtUkVRVUlSRUQnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2ludmFsaWQnKSkgcmV0dXJuICdGSUVMRC1JTlZBTElEJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdlbWFpbCcpKSByZXR1cm4gJ0lOVkFMSUQtRU1BSUwnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSByZXR1cm4gJ01JTi1MRU5HVEgnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21heGxlbmd0aCcpKSByZXR1cm4gJ01BWC1MRU5HVEgnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21heCcpKSByZXR1cm4gJ01BWCc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignbWluJykpIHJldHVybiAnTUlOJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdwYXNzd29yZHNOb3RNYXRjaGluZycpKSByZXR1cm4gJ01BVENILVBBU1NXT1JEJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdpbnZhbGlkRGF0ZScpKSByZXR1cm4gJ0lOVkFMSUQtREFURSc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZFRydWUnKSkgcmV0dXJuICdJTlZBTElELVRSVUUnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2ludmFsaWRDcGZDbnBqJykpIHJldHVybiAnSU5WQUxJRC1ET0NVTUVOVCc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZFppcENvZGUnKSkgcmV0dXJuICdJTlZBTElELVpJUENPREUnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2ludmFsaWRDb21ibycpKSByZXR1cm4gJ0lOVkFMSUQtQ09NQk8nO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2ludmFsaWRVcmwnKSkgcmV0dXJuICdJTlZBTElELVVSTCc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZFVubG9ja1JlZ2lzdGVyJykpIHsgcmV0dXJuICdJTlZBTElELVVOTE9DSy1SRUdJU1RFUic7IH1cbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdkYXRlU3RhcnRNdXN0QmVMZXNzVGhhbkFuZCcpKSB7XG4gICAgICByZXR1cm4gJ0RBVEUtU1RBUlQtTVVTVC1CRS1MRVNTLVRIQU4tQU5EJztcbiAgICB9XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignZGF0ZUVuZE11c3RCZUdyZWF0ZXJUaGFuU3RhcnQnKSkge1xuICAgICAgcmV0dXJuICdEQVRFLUVORC1NVVNULUJFLUdSRUFURVItVEhBTi1TQVJUJztcbiAgICB9XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcigncGhvbmUnKSkgcmV0dXJuICdJTlZBTElELVBIT05FJztcblxuICAgIHJldHVybiAnRklFTEQtSU5WQUxJRCc7XG4gIH1cblxuICBwcml2YXRlIGdldEVycm9yTGFzdE1lc3NhZ2VOb3RUcmFuc2xhdGVkKGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gbnVsbCkge1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSB7XG4gICAgICByZXR1cm4gYCR7Zm9ybUNvbnRyb2w/LmdldEVycm9yKCdtaW5sZW5ndGgnKS5yZXF1aXJlZExlbmd0aH0gY2FyYWN0ZXJlcy5gO1xuICAgIH1cbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xuICAgICAgcmV0dXJuIGAke2Zvcm1Db250cm9sPy5nZXRFcnJvcignbWF4bGVuZ3RoJykucmVxdWlyZWRMZW5ndGh9IGNhcmFjdGVyZXMuYDtcbiAgICB9XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignbWF4JykpIHsgcmV0dXJuIGAke2Zvcm1Db250cm9sPy5nZXRFcnJvcignbWF4JykubWF4fWA7IH1cbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW4nKSkgeyByZXR1cm4gYCR7Zm9ybUNvbnRyb2w/LmdldEVycm9yKCdtaW4nKS5taW59YDsgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlRm9ybVdpdGhUcmFuc2xhdGUoZjogRm9ybUdyb3VwLCBpbmRleD86IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZvcm1FcnJvcnM6IGFueSA9IGYudmFsdWU7XG5cbiAgICBpZiAoZi5zdGF0dXMgPT09ICdWQUxJRCcpIHJldHVybiB0cnVlO1xuXG4gICAgaWYgKCFmb3JtRXJyb3JzKSByZXR1cm4gdHJ1ZTtcbiAgICBPYmplY3QuZW50cmllcyhmb3JtRXJyb3JzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmLmdldChrZXkpO1xuICAgICAgZm9ybUVycm9yc1trZXldID0gJyc7XG4gICAgICBpZiAoY29udHJvbCAmJiAhY29udHJvbC52YWxpZCkge1xuICAgICAgICBjb25zdCBtc2cgPSB7XG4gICAgICAgICAgZmlyc3Q6IGBFUlJPUlMuJHt0aGlzLmdldEVycm9yRmlyc3RNZXNzYWdlVHJhbnNsYXRlZChmLmdldChrZXkpKX1gLFxuICAgICAgICAgIGxhc3Q6IHRoaXMuZ2V0RXJyb3JMYXN0TWVzc2FnZU5vdFRyYW5zbGF0ZWQoZi5nZXQoa2V5KSlcbiAgICAgICAgfTtcbiAgICAgICAgZm9ybUVycm9yc1trZXldID0gbXNnO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKE1vbmtleVV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQoaW5kZXgpKSB7IHRoaXMuX19tb25rZXllY3hGb3JtRXJyb3JzW2luZGV4IHx8IDBdID0gZm9ybUVycm9yczsgfSBlbHNlIHtcbiAgICAgIHRoaXMuX19tb25rZXllY3hGb3JtRXJyb3JzID0gZm9ybUVycm9ycztcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgY29weVRvQ2xpcGJvYXJkKHZhbDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsQm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICBzZWxCb3guc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICAgIHNlbEJveC5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgIHNlbEJveC5zdHlsZS50b3AgPSAnMCc7XG4gICAgc2VsQm94LnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgc2VsQm94LnZhbHVlID0gdmFsO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2VsQm94KTtcbiAgICBzZWxCb3guZm9jdXMoKTtcbiAgICBzZWxCb3guc2VsZWN0KCk7XG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNlbEJveCk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVGb3JtKGY6IEZvcm1Hcm91cCwgaW5kZXg/OiBudW1iZXIsIGFsaWFzPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZm9ybUVycm9yczogYW55ID0gZi52YWx1ZTtcbiAgICBpZiAoZi5zdGF0dXMgPT09ICdWQUxJRCcpIHJldHVybiB0cnVlO1xuXG4gICAgaWYgKCFmb3JtRXJyb3JzKSByZXR1cm4gdHJ1ZTtcbiAgICBPYmplY3QuZW50cmllcyhmb3JtRXJyb3JzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmLmdldChrZXkpO1xuICAgICAgZm9ybUVycm9yc1trZXldID0gJyc7XG4gICAgICBpZiAoY29udHJvbCAmJiAhY29udHJvbC52YWxpZCkge1xuICAgICAgICBjb25zdCBtc2cgPSB7XG4gICAgICAgICAgZmlyc3RNZXNzYWdlOiBgRVJST1JTLiR7dGhpcy5nZXRFcnJvckZpcnN0TWVzc2FnZVRyYW5zbGF0ZWQoXG4gICAgICAgICAgICBmLmdldChrZXkpXG4gICAgICAgICAgKX1gLFxuICAgICAgICAgIGxhc3RNZXNzYWdlOiB0aGlzLmdldEVycm9yTGFzdE1lc3NhZ2VOb3RUcmFuc2xhdGVkKGYuZ2V0KGtleSkpXG4gICAgICAgIH07XG4gICAgICAgIGZvcm1FcnJvcnNba2V5XSA9IG1zZztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChNb25rZXlVdGlscy5wZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKGluZGV4KSkge1xuICAgICAgdGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnNbaW5kZXggfHwgMF0gPSBmb3JtRXJyb3JzO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgb2JqOiBhbnk7XG5cbiAgICAgIGlmIChhbGlhcykge1xuICAgICAgICBvYmogPSB7XG4gICAgICAgICAgW2FsaWFzXToge1xuICAgICAgICAgICAgLi4uZm9ybUVycm9yc1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9iaiA9IGZvcm1FcnJvcnM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX19tb25rZXllY3hGb3JtRXJyb3JzID0ge1xuICAgICAgICAuLi50aGlzLl9fbW9ua2V5ZWN4Rm9ybUVycm9ycyxcbiAgICAgICAgLi4ub2JqXG4gICAgICB9O1xuICAgIH1cbiAgICBmLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJBbGxTZXJ2aWNlRGF0YShjbGVhckRhdGE6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcztcbiAgICBPYmplY3QudmFsdWVzKGNvbnRleHQpLmZvckVhY2goKGN0eDogYW55KSA9PiB7XG4gICAgICBpZiAoY3R4IGluc3RhbmNlb2YgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2UpIHtcbiAgICAgICAgY3R4LmNsZWFyKGNsZWFyRGF0YSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoYXJnczoge1xuICAgIHBhZ2luYXRpb25PcHRpb25zPzogTW9ua2V5RWN4UGFnaW5hdGlvbk9wdGlvbnM7XG4gICAgc3VwcG9ydENvbnRyb2xzPzogTW9ua2V5RWN4U3VwcG9ydE9wdGlvbnM7XG4gICAgc2Nyb2xsT3B0aW9ucz86IE1vbmtleUVjeFNjcm9sbE9wdGlvbnM7XG4gICAgdHJhbnNsYXRlT3B0aW9ucz86IE1vbmtleUVjeFRyYW5zbGF0ZU9wdGlvbnM7XG4gIH0pIHtcbiAgICBpZiAoYXJncz8ucGFnaW5hdGlvbk9wdGlvbnMpIHtcbiAgICAgIHRoaXMuX19wYWdpbmF0aW9uT3B0aW9ucyA9IGFyZ3M/LnBhZ2luYXRpb25PcHRpb25zO1xuICAgICAgdGhpcy5oYW5kbGVQYWdpbmF0aW9uKCk7XG4gICAgfVxuICAgIGlmIChhcmdzPy5zdXBwb3J0Q29udHJvbHMpIHtcbiAgICAgIHRoaXMuaGFuZGxlU3VwcG9ydChhcmdzPy5zdXBwb3J0Q29udHJvbHMpO1xuICAgIH1cbiAgICBpZiAoYXJncz8udHJhbnNsYXRlT3B0aW9ucykge1xuICAgICAgdGhpcy5oYW5kbGVUcmFuc2xhdGUoYXJncz8udHJhbnNsYXRlT3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChhcmdzPy5zY3JvbGxPcHRpb25zKSB7XG4gICAgICB0aGlzLmhhbmRsZVZpZXdTY3JvbGwoYXJncy5zY3JvbGxPcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koY2xlYXJEYXRhOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHRoaXMuX191bnN1YnNjcmliZUFsbC5uZXh0KCk7XG4gICAgdGhpcy5fX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jbGVhckFsbFNlcnZpY2VEYXRhKGNsZWFyRGF0YSk7XG4gICAgdGhpcy5oYW5kbGVQYWdpbmF0aW9uKGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVFcnJvckZyb21TZXJ2aWNlcyhlcnJvcjogTW9ua2V5RWN4RXJyb3JSZXNwb25zZSwgZjogRm9ybUdyb3VwKSB7XG4gICAgdGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMgPSBudWxsO1xuICAgIGlmIChlcnJvci50eXBlID09PSAnUGFyYW1ldGVyX0Vycm9yJykge1xuICAgICAgT2JqZWN0LmVudHJpZXMoZi52YWx1ZSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGVycm9yLm5vdGlmaWNhdGlvbnMuZm9yRWFjaCgoXzogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmllbGQgPSBfLnNwbGl0KCc6JylbMF07XG4gICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBfLnNwbGl0KCc6JylbMV07XG4gICAgICAgICAgaWYgKGZpZWxkID09PSBrZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IHtcbiAgICAgICAgICAgICAgZmlyc3RNZXNzYWdlOiAnJyxcbiAgICAgICAgICAgICAgbGFzdE1lc3NhZ2U6IGRlc2NyaXB0aW9uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMgPSB7XG4gICAgICAgICAgICAgIC4uLnRoaXMuX19tb25rZXllY3hGb3JtRXJyb3JzLFxuICAgICAgICAgICAgICBba2V5XTogbXNnXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZi5jb250cm9sc1trZXldLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgIGluY29ycmVjdDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGYubWFya0FsbEFzVG91Y2hlZCgpO1xuICB9XG5cbiAgcHVibGljIGdvQmFjaygpIHtcbiAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ29TY3JvbGwoaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFbWJlZGRlZERhdGEoZGF0YTogYW55LCBmaWVsZDogc3RyaW5nKTogYW55W10gfCBhbnkge1xuICAgIGNvbnN0IHsgX2VtYmVkZGVkIH0gPSBkYXRhO1xuICAgIHJldHVybiBfZW1iZWRkZWQgPyBfZW1iZWRkZWRbZmllbGRdIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuV2luZG93KHVybDogc3RyaW5nKSB7XG4gICAgd2luZG93Lm9wZW4oYCR7dXJsfWAsICdfYmxhbmsnKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxsSTE4bihkYXRhOiBhbnkpIHtcbiAgICB0aGlzLl9faTE4biA9IGRhdGE7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRyeVByZWZpeChjb3VudHJ5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnI6IDU1LFxuICAgICAgY2w6IDU2XG4gICAgfVtjb3VudHJ5XTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb3VudHJ5Q3VycmVuY3lDaGFydEZvcm1hdChjb3VudHJ5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnI6ICdSJCAjLCMjIywjIzAuMDAnLFxuICAgICAgY2w6ICdDTFAgIywjIyMsIyMwJ1xuICAgIH1bY291bnRyeV07XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRyeVZhbGlkYXRvcnMoY291bnRyeTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJyOiB7XG4gICAgICAgIGdvdmVybm1lbnRJZDogVmFsaWRhdGVVdGlscy5Eb2N1bWVudFZhbGlkYXRvclxuICAgICAgfSxcbiAgICAgIGNsOiB7XG4gICAgICAgIGdvdmVybm1lbnRJZDogVmFsaWRhdGVVdGlscy5Eb2N1bWVudFJ1dFZhbGlkYXRvclxuICAgICAgfVxuICAgIH1bY291bnRyeV07XG4gIH1cbn1cbiJdfQ==
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsdUJBQXVCLEVBTXZCLGFBQWEsRUFDZCxNQUFNLG1CQUFtQixDQUFDOztBQUszQixNQUFNLE9BQWdCLGFBQWE7SUFlakM7UUFWQSx3QkFBbUIsR0FBc0MsSUFBSSxDQUFDO1FBSTlELGVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFN0IsY0FBUyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBSzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxRQUFRO1FBQ2QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUM7WUFDaEQsQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDaEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLE9BQU8sQ0FDaEUsQ0FBQztRQUNKLE9BQU8sQ0FBQyxtREFBbUQsQ0FBQyxJQUFJLENBQzlELFNBQVMsQ0FBQyxTQUFTLENBQ3BCLENBQUMsSUFBSSxhQUFhLENBQUM7SUFDdEIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxJQUFJO1FBQ3BD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LE9BQU87WUFDTCxFQUFFLEVBQUU7Z0JBQ0YsWUFBWSxFQUFFLGFBQWEsQ0FBQyxpQkFBaUI7YUFDOUM7WUFDRCxFQUFFLEVBQUU7Z0JBQ0YsWUFBWSxFQUFFLGFBQWEsQ0FBQyxvQkFBb0I7YUFDakQ7U0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQzs7MEdBNVRtQixhQUFhOzhGQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgT25EZXN0cm95LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNb25rZXlVdGlscyB9IGZyb20gJ21vbmtleS1zdHlsZS1ndWlkZSc7XHJcbmltcG9ydCB7XHJcbiAgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2UsXHJcbiAgTW9ua2V5RWN4RXJyb3JSZXNwb25zZSxcclxuICBNb25rZXlFY3hQYWdpbmF0aW9uT3B0aW9ucyxcclxuICBNb25rZXlFY3hTY3JvbGxPcHRpb25zLFxyXG4gIE1vbmtleUVjeFN1cHBvcnRPcHRpb25zLFxyXG4gIE1vbmtleUVjeFRyYW5zbGF0ZU9wdGlvbnMsXHJcbiAgVmFsaWRhdGVVdGlsc1xyXG59IGZyb20gJ21vbmtleS1mcm9udC1jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Jhc2VDb21wb25lbnRdJ1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgX19tb25rZXllY3hGb3JtRXJyb3JzOiBhbnkgfCBhbnlbXTtcclxuXHJcbiAgX191bnN1YnNjcmliZUFsbDogU3ViamVjdDxhbnk+O1xyXG5cclxuICBfX3BhZ2luYXRpb25PcHRpb25zOiBNb25rZXlFY3hQYWdpbmF0aW9uT3B0aW9ucyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBfX2kxOG46IGFueTtcclxuXHJcbiAgX19pc01vYmlsZSA9IHRoaXMuaXNNb2JpbGUoKTtcclxuXHJcbiAgX19sb2NhbGVzID0gWydwdC1CUicsICdlcy1DTCddO1xyXG5cclxuICBwcml2YXRlIHBhZ2luYXRpb25GdW5jOiBhbnk7XHJcblxyXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX191bnN1YnNjcmliZUFsbCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzTW9iaWxlKCkge1xyXG4gICAgY29uc3QgaXNNb2JpbGVXaWR0aCA9ICh3aW5kb3cuc2NyZWVuLndpZHRoIDw9IDY0MCkgfHxcclxuICAgICAgKHdpbmRvdy5tYXRjaE1lZGlhICYmXHJcbiAgICAgICAgd2luZG93Lm1hdGNoTWVkaWEoJ29ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCknKS5tYXRjaGVzXHJcbiAgICAgICk7XHJcbiAgICByZXR1cm4gKC9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxNb2JpbGUvaS50ZXN0KFxyXG4gICAgICBuYXZpZ2F0b3IudXNlckFnZW50XHJcbiAgICApKSB8fCBpc01vYmlsZVdpZHRoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVQYWdpbmF0aW9uKGNyZWF0ZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgX19wYWdpbmF0aW9uT3B0aW9ucyB9ID0gdGhpcztcclxuXHJcbiAgICBpZiAoX19wYWdpbmF0aW9uT3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IG1haW5FbGVtZW50LCBzZXJ2aWNlIH0gPSBfX3BhZ2luYXRpb25PcHRpb25zO1xyXG5cclxuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1haW5FbGVtZW50KTtcclxuXHJcbiAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgZWxlbWVudC5zY3JvbGwgPSBudWxsO1xyXG4gICAgICAgIGVsZW1lbnQub25zY3JvbGwgPSBudWxsO1xyXG5cclxuICAgICAgICBpZiAoY3JlYXRlKSB7XHJcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIChlbGVtZW50IGFzIGFueSkuZXZlbnRMaXN0ZW5lcnMoJ3Njcm9sbCcpKTtcclxuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKGVsZW1lbnQgYXMgYW55KS5ldmVudExpc3RlbmVycygnc2Nyb2xsJylbMF0pO1xyXG4gICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIG9mZnNldEhlaWdodCB9ID0gZWxlbWVudDtcclxuICAgICAgICAgICAgY29uc3QgY29udGVudEhlaWdodCA9IHNjcm9sbEhlaWdodCAtIG9mZnNldEhlaWdodDtcclxuXHJcbiAgICAgICAgICAgIGlmIChjb250ZW50SGVpZ2h0IDw9IHNjcm9sbFRvcCkge1xyXG4gICAgICAgICAgICAgIHNlcnZpY2UuZG9QYWdpbmF0aW9uKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVTdXBwb3J0KHN1cHBvcnRDb250cm9sczogTW9ua2V5RWN4U3VwcG9ydE9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHsgc2VydmljZSwgc2hvdyB9ID0gc3VwcG9ydENvbnRyb2xzO1xyXG4gICAgY29uc3QgbWV0aG9kID0gc2hvdyA/ICdzaG93JyA6ICdoaWRlJztcclxuICAgIHNlcnZpY2VbbWV0aG9kLnRvTG93ZXJDYXNlKCldKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVRyYW5zbGF0ZSh0cmFuc2xhdGVPcHRpb25zOiBNb25rZXlFY3hUcmFuc2xhdGVPcHRpb25zKSB7XHJcbiAgICBjb25zdCB7IHNlcnZpY2UgfSA9IHRyYW5zbGF0ZU9wdGlvbnM7XHJcbiAgICBzZXJ2aWNlLl9fb25pMThuRGF0YUNoYW5nZWQkXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9fdW5zdWJzY3JpYmVBbGwpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBjb25zdCBkYXRhID0gc2VydmljZS5fX2kxOG47XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHRoaXMuX19pMThuID0gZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVWaWV3U2Nyb2xsKG9wdGlvbnM6IE1vbmtleUVjeFNjcm9sbE9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHsgZWxlbWVudElkLCBzZXJ2aWNlIH0gPSBvcHRpb25zO1xyXG5cclxuICAgIGlmIChlbGVtZW50SWQgPT09IHNlcnZpY2U/Ll9fc2F2ZWRTdGF0ZT8uc2Nyb2xsRWxlbWVudElkKSB7XHJcbiAgICAgIHRoaXMuZ29TY3JvbGwoZWxlbWVudElkKTtcclxuXHJcbiAgICAgIHNlcnZpY2UuX19zYXZlZFN0YXRlLnNjcm9sbEVsZW1lbnRJZCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVycm9yRmlyc3RNZXNzYWdlVHJhbnNsYXRlZChmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IG51bGwpIHtcclxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHJldHVybiAnRklFTEQtUkVRVUlSRUQnO1xyXG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZCcpKSByZXR1cm4gJ0ZJRUxELUlOVkFMSUQnO1xyXG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignZW1haWwnKSkgcmV0dXJuICdJTlZBTElELUVNQUlMJztcclxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSByZXR1cm4gJ01JTi1MRU5HVEgnO1xyXG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHJldHVybiAnTUFYLUxFTkdUSCc7XHJcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtYXgnKSkgcmV0dXJuICdNQVgnO1xyXG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignbWluJykpIHJldHVybiAnTUlOJztcclxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ3Bhc3N3b3Jkc05vdE1hdGNoaW5nJykpIHJldHVybiAnTUFUQ0gtUEFTU1dPUkQnO1xyXG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZERhdGUnKSkgcmV0dXJuICdJTlZBTElELURBVEUnO1xyXG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZFRydWUnKSkgcmV0dXJuICdJTlZBTElELVRSVUUnO1xyXG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZENwZkNucGonKSkgcmV0dXJuICdJTlZBTElELURPQ1VNRU5UJztcclxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2ludmFsaWRaaXBDb2RlJykpIHJldHVybiAnSU5WQUxJRC1aSVBDT0RFJztcclxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2ludmFsaWRDb21ibycpKSByZXR1cm4gJ0lOVkFMSUQtQ09NQk8nO1xyXG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZFVybCcpKSByZXR1cm4gJ0lOVkFMSUQtVVJMJztcclxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2ludmFsaWRVbmxvY2tSZWdpc3RlcicpKSB7IHJldHVybiAnSU5WQUxJRC1VTkxPQ0stUkVHSVNURVInOyB9XHJcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdkYXRlU3RhcnRNdXN0QmVMZXNzVGhhbkFuZCcpKSB7XHJcbiAgICAgIHJldHVybiAnREFURS1TVEFSVC1NVVNULUJFLUxFU1MtVEhBTi1BTkQnO1xyXG4gICAgfVxyXG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignZGF0ZUVuZE11c3RCZUdyZWF0ZXJUaGFuU3RhcnQnKSkge1xyXG4gICAgICByZXR1cm4gJ0RBVEUtRU5ELU1VU1QtQkUtR1JFQVRFUi1USEFOLVNBUlQnO1xyXG4gICAgfVxyXG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcigncGhvbmUnKSkgcmV0dXJuICdJTlZBTElELVBIT05FJztcclxuXHJcbiAgICByZXR1cm4gJ0ZJRUxELUlOVkFMSUQnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFcnJvckxhc3RNZXNzYWdlTm90VHJhbnNsYXRlZChmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IG51bGwpIHtcclxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSB7XHJcbiAgICAgIHJldHVybiBgJHtmb3JtQ29udHJvbD8uZ2V0RXJyb3IoJ21pbmxlbmd0aCcpLnJlcXVpcmVkTGVuZ3RofSBjYXJhY3RlcmVzLmA7XHJcbiAgICB9XHJcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xyXG4gICAgICByZXR1cm4gYCR7Zm9ybUNvbnRyb2w/LmdldEVycm9yKCdtYXhsZW5ndGgnKS5yZXF1aXJlZExlbmd0aH0gY2FyYWN0ZXJlcy5gO1xyXG4gICAgfVxyXG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignbWF4JykpIHsgcmV0dXJuIGAke2Zvcm1Db250cm9sPy5nZXRFcnJvcignbWF4JykubWF4fWA7IH1cclxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21pbicpKSB7IHJldHVybiBgJHtmb3JtQ29udHJvbD8uZ2V0RXJyb3IoJ21pbicpLm1pbn1gOyB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZhbGlkYXRlRm9ybVdpdGhUcmFuc2xhdGUoZjogRm9ybUdyb3VwLCBpbmRleD86IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZm9ybUVycm9yczogYW55ID0gZi52YWx1ZTtcclxuXHJcbiAgICBpZiAoZi5zdGF0dXMgPT09ICdWQUxJRCcpIHJldHVybiB0cnVlO1xyXG5cclxuICAgIGlmICghZm9ybUVycm9ycykgcmV0dXJuIHRydWU7XHJcbiAgICBPYmplY3QuZW50cmllcyhmb3JtRXJyb3JzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IGYuZ2V0KGtleSk7XHJcbiAgICAgIGZvcm1FcnJvcnNba2V5XSA9ICcnO1xyXG4gICAgICBpZiAoY29udHJvbCAmJiAhY29udHJvbC52YWxpZCkge1xyXG4gICAgICAgIGNvbnN0IG1zZyA9IHtcclxuICAgICAgICAgIGZpcnN0OiBgRVJST1JTLiR7dGhpcy5nZXRFcnJvckZpcnN0TWVzc2FnZVRyYW5zbGF0ZWQoZi5nZXQoa2V5KSl9YCxcclxuICAgICAgICAgIGxhc3Q6IHRoaXMuZ2V0RXJyb3JMYXN0TWVzc2FnZU5vdFRyYW5zbGF0ZWQoZi5nZXQoa2V5KSlcclxuICAgICAgICB9O1xyXG4gICAgICAgIGZvcm1FcnJvcnNba2V5XSA9IG1zZztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKE1vbmtleVV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQoaW5kZXgpKSB7IHRoaXMuX19tb25rZXllY3hGb3JtRXJyb3JzW2luZGV4IHx8IDBdID0gZm9ybUVycm9yczsgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMgPSBmb3JtRXJyb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb3B5VG9DbGlwYm9hcmQodmFsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNlbEJveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XHJcbiAgICBzZWxCb3guc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xyXG4gICAgc2VsQm94LnN0eWxlLmxlZnQgPSAnMCc7XHJcbiAgICBzZWxCb3guc3R5bGUudG9wID0gJzAnO1xyXG4gICAgc2VsQm94LnN0eWxlLm9wYWNpdHkgPSAnMCc7XHJcbiAgICBzZWxCb3gudmFsdWUgPSB2YWw7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNlbEJveCk7XHJcbiAgICBzZWxCb3guZm9jdXMoKTtcclxuICAgIHNlbEJveC5zZWxlY3QoKTtcclxuICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNlbEJveCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdmFsaWRhdGVGb3JtKGY6IEZvcm1Hcm91cCwgaW5kZXg/OiBudW1iZXIsIGFsaWFzPzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBmb3JtRXJyb3JzOiBhbnkgPSBmLnZhbHVlO1xyXG4gICAgaWYgKGYuc3RhdHVzID09PSAnVkFMSUQnKSByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICBpZiAoIWZvcm1FcnJvcnMpIHJldHVybiB0cnVlO1xyXG4gICAgT2JqZWN0LmVudHJpZXMoZm9ybUVycm9ycykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmLmdldChrZXkpO1xyXG4gICAgICBmb3JtRXJyb3JzW2tleV0gPSAnJztcclxuICAgICAgaWYgKGNvbnRyb2wgJiYgIWNvbnRyb2wudmFsaWQpIHtcclxuICAgICAgICBjb25zdCBtc2cgPSB7XHJcbiAgICAgICAgICBmaXJzdE1lc3NhZ2U6IGBFUlJPUlMuJHt0aGlzLmdldEVycm9yRmlyc3RNZXNzYWdlVHJhbnNsYXRlZChcclxuICAgICAgICAgICAgZi5nZXQoa2V5KVxyXG4gICAgICAgICAgKX1gLFxyXG4gICAgICAgICAgbGFzdE1lc3NhZ2U6IHRoaXMuZ2V0RXJyb3JMYXN0TWVzc2FnZU5vdFRyYW5zbGF0ZWQoZi5nZXQoa2V5KSlcclxuICAgICAgICB9O1xyXG4gICAgICAgIGZvcm1FcnJvcnNba2V5XSA9IG1zZztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKE1vbmtleVV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQoaW5kZXgpKSB7XHJcbiAgICAgIHRoaXMuX19tb25rZXllY3hGb3JtRXJyb3JzW2luZGV4IHx8IDBdID0gZm9ybUVycm9ycztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvYmo6IGFueTtcclxuXHJcbiAgICAgIGlmIChhbGlhcykge1xyXG4gICAgICAgIG9iaiA9IHtcclxuICAgICAgICAgIFthbGlhc106IHtcclxuICAgICAgICAgICAgLi4uZm9ybUVycm9yc1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb2JqID0gZm9ybUVycm9ycztcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMgPSB7XHJcbiAgICAgICAgLi4udGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMsXHJcbiAgICAgICAgLi4ub2JqXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBmLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckFsbFNlcnZpY2VEYXRhKGNsZWFyRGF0YTogYm9vbGVhbikge1xyXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7XHJcbiAgICBPYmplY3QudmFsdWVzKGNvbnRleHQpLmZvckVhY2goKGN0eDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChjdHggaW5zdGFuY2VvZiBNb25rZXlFY3hDb21tb25zU2VydmljZSkge1xyXG4gICAgICAgIGN0eC5jbGVhcihjbGVhckRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdChhcmdzOiB7XHJcbiAgICBwYWdpbmF0aW9uT3B0aW9ucz86IE1vbmtleUVjeFBhZ2luYXRpb25PcHRpb25zO1xyXG4gICAgc3VwcG9ydENvbnRyb2xzPzogTW9ua2V5RWN4U3VwcG9ydE9wdGlvbnM7XHJcbiAgICBzY3JvbGxPcHRpb25zPzogTW9ua2V5RWN4U2Nyb2xsT3B0aW9ucztcclxuICAgIHRyYW5zbGF0ZU9wdGlvbnM/OiBNb25rZXlFY3hUcmFuc2xhdGVPcHRpb25zO1xyXG4gIH0pIHtcclxuICAgIGlmIChhcmdzPy5wYWdpbmF0aW9uT3B0aW9ucykge1xyXG4gICAgICB0aGlzLl9fcGFnaW5hdGlvbk9wdGlvbnMgPSBhcmdzPy5wYWdpbmF0aW9uT3B0aW9ucztcclxuICAgICAgdGhpcy5oYW5kbGVQYWdpbmF0aW9uKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoYXJncz8uc3VwcG9ydENvbnRyb2xzKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU3VwcG9ydChhcmdzPy5zdXBwb3J0Q29udHJvbHMpO1xyXG4gICAgfVxyXG4gICAgaWYgKGFyZ3M/LnRyYW5zbGF0ZU9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5oYW5kbGVUcmFuc2xhdGUoYXJncz8udHJhbnNsYXRlT3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICBpZiAoYXJncz8uc2Nyb2xsT3B0aW9ucykge1xyXG4gICAgICB0aGlzLmhhbmRsZVZpZXdTY3JvbGwoYXJncy5zY3JvbGxPcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveShjbGVhckRhdGE6IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICB0aGlzLl9fdW5zdWJzY3JpYmVBbGwubmV4dCgpO1xyXG4gICAgdGhpcy5fX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmNsZWFyQWxsU2VydmljZURhdGEoY2xlYXJEYXRhKTtcclxuICAgIHRoaXMuaGFuZGxlUGFnaW5hdGlvbihmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRXJyb3JGcm9tU2VydmljZXMoZXJyb3I6IE1vbmtleUVjeEVycm9yUmVzcG9uc2UsIGY6IEZvcm1Hcm91cCkge1xyXG4gICAgdGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMgPSBudWxsO1xyXG4gICAgaWYgKGVycm9yLnR5cGUgPT09ICdQYXJhbWV0ZXJfRXJyb3InKSB7XHJcbiAgICAgIE9iamVjdC5lbnRyaWVzKGYudmFsdWUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgIGVycm9yLm5vdGlmaWNhdGlvbnMuZm9yRWFjaCgoXzogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBmaWVsZCA9IF8uc3BsaXQoJzonKVswXTtcclxuICAgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gXy5zcGxpdCgnOicpWzFdO1xyXG4gICAgICAgICAgaWYgKGZpZWxkID09PSBrZXkpIHtcclxuICAgICAgICAgICAgY29uc3QgbXNnID0ge1xyXG4gICAgICAgICAgICAgIGZpcnN0TWVzc2FnZTogJycsXHJcbiAgICAgICAgICAgICAgbGFzdE1lc3NhZ2U6IGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuX19tb25rZXllY3hGb3JtRXJyb3JzID0ge1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMuX19tb25rZXllY3hGb3JtRXJyb3JzLFxyXG4gICAgICAgICAgICAgIFtrZXldOiBtc2dcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgZi5jb250cm9sc1trZXldLnNldEVycm9ycyh7XHJcbiAgICAgICAgICAgICAgaW5jb3JyZWN0OiB0cnVlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnb0JhY2soKSB7XHJcbiAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ29TY3JvbGwoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuICAgIGlmIChlbGVtZW50KSBlbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RW1iZWRkZWREYXRhKGRhdGE6IGFueSwgZmllbGQ6IHN0cmluZyk6IGFueVtdIHwgYW55IHtcclxuICAgIGNvbnN0IHsgX2VtYmVkZGVkIH0gPSBkYXRhO1xyXG4gICAgcmV0dXJuIF9lbWJlZGRlZCA/IF9lbWJlZGRlZFtmaWVsZF0gOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5XaW5kb3codXJsOiBzdHJpbmcpIHtcclxuICAgIHdpbmRvdy5vcGVuKGAke3VybH1gLCAnX2JsYW5rJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsbEkxOG4oZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLl9faTE4biA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q291bnRyeVByZWZpeChjb3VudHJ5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGJyOiA1NSxcclxuICAgICAgY2w6IDU2XHJcbiAgICB9W2NvdW50cnldO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENvdW50cnlDdXJyZW5jeUNoYXJ0Rm9ybWF0KGNvdW50cnk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYnI6ICdSJCAjLCMjIywjIzAuMDAnLFxyXG4gICAgICBjbDogJ0NMUCAjLCMjIywjIzAnXHJcbiAgICB9W2NvdW50cnldO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENvdW50cnlWYWxpZGF0b3JzKGNvdW50cnk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYnI6IHtcclxuICAgICAgICBnb3Zlcm5tZW50SWQ6IFZhbGlkYXRlVXRpbHMuRG9jdW1lbnRWYWxpZGF0b3JcclxuICAgICAgfSxcclxuICAgICAgY2w6IHtcclxuICAgICAgICBnb3Zlcm5tZW50SWQ6IFZhbGlkYXRlVXRpbHMuRG9jdW1lbnRSdXRWYWxpZGF0b3JcclxuICAgICAgfVxyXG4gICAgfVtjb3VudHJ5XTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monkey-front-components.mjs","sources":["../../../projects/monkey-front-components/src/lib/components/base/base-component.ts","../../../projects/monkey-front-components/src/lib/components/base/base-validators.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic-array.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic-directive.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.html","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.html","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-components/src/public-api.ts","../../../projects/monkey-front-components/src/monkey-front-components.ts"],"sourcesContent":["/* eslint-disable max-len */\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { OnDestroy, Directive } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport {\n MonkeyEcxCommonsService,\n MonkeyEcxErrorResponse,\n MonkeyEcxPaginationOptions,\n MonkeyEcxScrollOptions,\n MonkeyEcxSupportOptions,\n MonkeyEcxTranslateOptions,\n ValidateUtils\n} from 'monkey-front-core';\n\n@Directive({\n selector: '[baseComponent]'\n})\nexport abstract class BaseComponent implements OnDestroy {\n __monkeyecxFormErrors: any | any[];\n\n __unsubscribeAll: Subject<any>;\n\n __paginationOptions: MonkeyEcxPaginationOptions | null = null;\n\n __i18n: any;\n\n __isMobile = this.isMobile();\n\n __locales = ['pt-BR', 'es-CL'];\n\n private paginationFunc: any;\n\n protected constructor() {\n this.__unsubscribeAll = new Subject();\n }\n\n private isMobile() {\n const isMobileWidth = (window.screen.width <= 640) ||\n (window.matchMedia &&\n window.matchMedia('only screen and (max-width: 640px)').matches\n );\n return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile/i.test(\n navigator.userAgent\n )) || isMobileWidth;\n }\n\n private handlePagination(create = true) {\n const { __paginationOptions } = this;\n\n if (__paginationOptions) {\n const { mainElement, service } = __paginationOptions;\n\n const element = document.getElementById(mainElement);\n\n if (element) {\n element.scroll = null;\n element.onscroll = null;\n\n if (create) {\n element.removeEventListener('scroll', (element as any).eventListeners('scroll'));\n element.removeEventListener('scroll', (element as any).eventListeners('scroll')[0]);\n element.addEventListener('scroll', () => {\n const { scrollTop, scrollHeight, offsetHeight } = element;\n const contentHeight = scrollHeight - offsetHeight;\n\n if (contentHeight <= scrollTop) {\n service.doPagination();\n }\n });\n }\n }\n }\n }\n\n private handleSupport(supportControls: MonkeyEcxSupportOptions) {\n const { service, show } = supportControls;\n const method = show ? 'show' : 'hide';\n service[method.toLowerCase()]();\n }\n\n private handleTranslate(translateOptions: MonkeyEcxTranslateOptions) {\n const { service } = translateOptions;\n service.__oni18nDataChanged$\n .pipe(takeUntil(this.__unsubscribeAll))\n .subscribe(() => {\n const data = service.__i18n;\n if (data) {\n this.__i18n = data;\n }\n });\n }\n\n private handleViewScroll(options: MonkeyEcxScrollOptions) {\n const { elementId, service } = options;\n\n if (elementId === service?.__savedState?.scrollElementId) {\n this.goScroll(elementId);\n\n service.__savedState.scrollElementId = null;\n }\n }\n\n private getErrorFirstMessageTranslated(formControl: AbstractControl | null = null) {\n if (formControl?.hasError('required')) return 'FIELD-REQUIRED';\n if (formControl?.hasError('invalid')) return 'FIELD-INVALID';\n if (formControl?.hasError('email')) return 'INVALID-EMAIL';\n if (formControl?.hasError('minlength')) return 'MIN-LENGTH';\n if (formControl?.hasError('maxlength')) return 'MAX-LENGTH';\n if (formControl?.hasError('max')) return 'MAX';\n if (formControl?.hasError('min')) return 'MIN';\n if (formControl?.hasError('passwordsNotMatching')) return 'MATCH-PASSWORD';\n if (formControl?.hasError('invalidDate')) return 'INVALID-DATE';\n if (formControl?.hasError('invalidTrue')) return 'INVALID-TRUE';\n if (formControl?.hasError('invalidCpfCnpj')) return 'INVALID-DOCUMENT';\n if (formControl?.hasError('invalidZipCode')) return 'INVALID-ZIPCODE';\n if (formControl?.hasError('invalidCombo')) return 'INVALID-COMBO';\n if (formControl?.hasError('invalidUrl')) return 'INVALID-URL';\n if (formControl?.hasError('invalidUnlockRegister')) { return 'INVALID-UNLOCK-REGISTER'; }\n if (formControl?.hasError('dateStartMustBeLessThanAnd')) {\n return 'DATE-START-MUST-BE-LESS-THAN-AND';\n }\n if (formControl?.hasError('dateEndMustBeGreaterThanStart')) {\n return 'DATE-END-MUST-BE-GREATER-THAN-SART';\n }\n if (formControl?.hasError('phone')) return 'INVALID-PHONE';\n\n return 'FIELD-INVALID';\n }\n\n private getErrorLastMessageNotTranslated(formControl: AbstractControl | null = null) {\n if (formControl?.hasError('minlength')) {\n return `${formControl?.getError('minlength').requiredLength} caracteres.`;\n }\n if (formControl?.hasError('maxlength')) {\n return `${formControl?.getError('maxlength').requiredLength} caracteres.`;\n }\n if (formControl?.hasError('max')) { return `${formControl?.getError('max').max}`; }\n if (formControl?.hasError('min')) { return `${formControl?.getError('min').min}`; }\n\n return '';\n }\n\n public validateFormWithTranslate(f: FormGroup, index?: number): boolean {\n const formErrors: any = f.value;\n\n if (f.status === 'VALID') return true;\n\n if (!formErrors) return true;\n Object.entries(formErrors).forEach(([key, value]) => {\n const control = f.get(key);\n formErrors[key] = '';\n if (control && !control.valid) {\n const msg = {\n first: `ERRORS.${this.getErrorFirstMessageTranslated(f.get(key))}`,\n last: this.getErrorLastMessageNotTranslated(f.get(key))\n };\n formErrors[key] = msg;\n }\n });\n\n if (MonkeyUtils.persistNullEmptyUndefined(index)) { this.__monkeyecxFormErrors[index || 0] = formErrors; } else {\n this.__monkeyecxFormErrors = formErrors;\n }\n\n return false;\n }\n\n public copyToClipboard(val: string) {\n const selBox = document.createElement('textarea');\n selBox.style.position = 'fixed';\n selBox.style.left = '0';\n selBox.style.top = '0';\n selBox.style.opacity = '0';\n selBox.value = val;\n document.body.appendChild(selBox);\n selBox.focus();\n selBox.select();\n document.execCommand('copy');\n document.body.removeChild(selBox);\n }\n\n public validateForm(f: FormGroup, index?: number, alias?: string): boolean {\n const formErrors: any = f.value;\n if (f.status === 'VALID') return true;\n\n if (!formErrors) return true;\n Object.entries(formErrors).forEach(([key, value]) => {\n const control = f.get(key);\n formErrors[key] = '';\n if (control && !control.valid) {\n const msg = {\n firstMessage: `ERRORS.${this.getErrorFirstMessageTranslated(\n f.get(key)\n )}`,\n lastMessage: this.getErrorLastMessageNotTranslated(f.get(key))\n };\n formErrors[key] = msg;\n }\n });\n\n if (MonkeyUtils.persistNullEmptyUndefined(index)) {\n this.__monkeyecxFormErrors[index || 0] = formErrors;\n } else {\n let obj: any;\n\n if (alias) {\n obj = {\n [alias]: {\n ...formErrors\n }\n };\n } else {\n obj = formErrors;\n }\n\n this.__monkeyecxFormErrors = {\n ...this.__monkeyecxFormErrors,\n ...obj\n };\n }\n f.markAllAsTouched();\n return false;\n }\n\n public clearAllServiceData(clearData: boolean) {\n const context = this;\n Object.values(context).forEach((ctx: any) => {\n if (ctx instanceof MonkeyEcxCommonsService) {\n ctx.clear(clearData);\n }\n });\n }\n\n public ngOnInit(args: {\n paginationOptions?: MonkeyEcxPaginationOptions;\n supportControls?: MonkeyEcxSupportOptions;\n scrollOptions?: MonkeyEcxScrollOptions;\n translateOptions?: MonkeyEcxTranslateOptions;\n }) {\n if (args?.paginationOptions) {\n this.__paginationOptions = args?.paginationOptions;\n this.handlePagination();\n }\n if (args?.supportControls) {\n this.handleSupport(args?.supportControls);\n }\n if (args?.translateOptions) {\n this.handleTranslate(args?.translateOptions);\n }\n if (args?.scrollOptions) {\n this.handleViewScroll(args.scrollOptions);\n }\n }\n\n public ngOnDestroy(clearData: boolean = true) {\n this.__unsubscribeAll.next();\n this.__unsubscribeAll.complete();\n this.clearAllServiceData(clearData);\n this.handlePagination(false);\n }\n\n public handleErrorFromServices(error: MonkeyEcxErrorResponse, f: FormGroup) {\n this.__monkeyecxFormErrors = null;\n if (error.type === 'Parameter_Error') {\n Object.entries(f.value).forEach(([key, value]) => {\n error.notifications.forEach((_: any) => {\n const field = _.split(':')[0];\n const description = _.split(':')[1];\n if (field === key) {\n const msg = {\n firstMessage: '',\n lastMessage: description\n };\n this.__monkeyecxFormErrors = {\n ...this.__monkeyecxFormErrors,\n [key]: msg\n };\n f.controls[key].setErrors({\n incorrect: true\n });\n }\n });\n });\n }\n\n f.markAllAsTouched();\n }\n\n public goBack() {\n window.history.back();\n }\n\n public goScroll(id: string) {\n const element = document.getElementById(id);\n if (element) element.scrollIntoView();\n }\n\n public getEmbeddedData(data: any, field: string): any[] | any {\n const { _embedded } = data;\n return _embedded ? _embedded[field] : null;\n }\n\n public openWindow(url: string) {\n window.open(`${url}`, '_blank');\n }\n\n public fillI18n(data: any) {\n this.__i18n = data;\n }\n\n public getCountryPrefix(country: string) {\n return {\n br: 55,\n cl: 56\n }[country];\n }\n\n public getCountryCurrencyChartFormat(country: string) {\n return {\n br: 'R$ #,###,##0.00',\n cl: 'CLP #,###,##0'\n }[country];\n }\n\n public getCountryValidators(country: string) {\n return {\n br: {\n governmentId: ValidateUtils.DocumentValidator\n },\n cl: {\n governmentId: ValidateUtils.DocumentRutValidator\n }\n }[country];\n }\n}\n","import { Validators as Validators_ } from '@angular/forms';\r\nimport { Validators } from 'monkey-front-core';\r\n\r\nexport const validators: any = {\r\n required: Validators_.required,\r\n email: Validators.email,\r\n governmentId: Validators.documentBR,\r\n governmentIdRut: Validators.documentCL,\r\n documentBR: Validators.documentBR,\r\n documentCL: Validators.documentCL,\r\n date: Validators.date,\r\n zipCode: Validators.zipCode,\r\n minLength: (param: number) => {\r\n return Validators_.minLength(param);\r\n },\r\n maxLength: (param: number) => {\r\n return Validators_.maxLength(param);\r\n }\r\n};\r\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\r\nimport { BaseComponent } from './base-component';\r\nimport { validators } from './base-validators';\r\n\r\n@Directive({\r\n selector: '[baseDynamic]'\r\n})\r\nexport abstract class BaseDynamic extends BaseComponent implements OnInit, OnChanges {\r\n @Input() onHandleSubmit = new EventEmitter<any>();\r\n\r\n @Input() onHandleUpdateForm = new EventEmitter<any>();\r\n\r\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() self: any;\r\n\r\n @Input() fields: MECXFieldConfig[] = [];\r\n\r\n @Input() data: any;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _form: FormGroup | null = null;\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n }\r\n\r\n private createControl() {\r\n const { fields } = this;\r\n if (!fields) return null;\r\n // eslint-disable-next-line object-curly-newline\r\n const group = this.fb.group({});\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled } = field;\r\n let { value } = field;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n group.addControl(name as string, control);\r\n });\r\n return group;\r\n }\r\n\r\n private bindValidations(validations: MECXFieldConfigValidator[]) {\r\n if (validations.length > 0) {\r\n const validList: any[] = [];\r\n validations.forEach((valid: MECXFieldConfigValidator) => {\r\n const validated = valid.param\r\n ? validators[valid.name](valid.param)\r\n : validators[valid.name];\r\n validList.push(validated);\r\n });\r\n return Validators.compose(validList);\r\n }\r\n return null;\r\n }\r\n\r\n public fillValues() {\r\n const { data } = this;\r\n if (!data || !this._form) return;\r\n Object.entries(data).forEach(([key, value]) => {\r\n if (MonkeyUtils.persistNullEmptyUndefined(value) && this._form?.controls[key]) {\r\n this._form?.controls[key]?.setValue(value);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this._form = this.createControl();\r\n this.fillValues();\r\n\r\n this.onHandleUpdateForm.subscribe(() => {\r\n this.fillValues();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this._form) {\r\n this._form = this.createControl();\r\n }\r\n this.fillValues();\r\n }\r\n}\r\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\r\nimport { BaseComponent } from './base-component';\r\nimport { validators } from './base-validators';\r\n\r\n@Directive({\r\n selector: '[baseDynamicArray]'\r\n})\r\nexport abstract class BaseDynamicArray extends BaseComponent implements OnInit, OnChanges {\r\n @Input() onHandleSubmit = new EventEmitter<any>();\r\n\r\n @Input() onHandleUpdateForm = new EventEmitter<any>();\r\n\r\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() self: any;\r\n\r\n @Input() fields: MECXFieldConfig[] = [];\r\n\r\n @Input() data: any;\r\n\r\n @Input() qtd: number = 1;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n _plusValidations: any[] = [];\r\n\r\n private changesUnsubscribe = new Subject();\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n }\r\n\r\n private handleInternalPlusValidation(\r\n mainField: any,\r\n data: any\r\n ) {\r\n const { operator, field, value } = mainField;\r\n const validators: any = {\r\n e: (val1: any, val2: string) => { return val1 === val2; },\r\n lt: (val1: any, val2: string) => { return val1 < val2; },\r\n gt: (val1: any, val2: string) => { return val1 > val2; }\r\n };\r\n\r\n return validators[operator](data?.[field] || data, value);\r\n }\r\n\r\n private makeInternalPlusValidation(\r\n data: any,\r\n sourceField: string,\r\n settings: any,\r\n rowIndex: number\r\n ) {\r\n const changeFields = (show: boolean) => {\r\n const saved = [...this.fields];\r\n\r\n saved.map((val) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (val.name === sourceField) {\r\n this._plusValidations[rowIndex] = {\r\n [sourceField]: {\r\n ...valSaved,\r\n alwaysShow: show\r\n }\r\n };\r\n this.createOneControl(val.name, this.formValues?.controls[rowIndex], show);\r\n } else {\r\n this._plusValidations[rowIndex] = {\r\n ...valSaved\r\n };\r\n }\r\n return null;\r\n });\r\n };\r\n\r\n const validated = this.handleInternalPlusValidation(settings, data);\r\n changeFields(validated);\r\n }\r\n\r\n private createOneControl(fieldName: string, ctrl: any, create = true) {\r\n const { fields } = this;\r\n if (!fields) return;\r\n\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled } = field;\r\n if (name !== fieldName) return;\r\n let { value } = field;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n if (create) {\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n ctrl.addControl(name, control);\r\n } else {\r\n ctrl.removeControl(name);\r\n }\r\n });\r\n }\r\n\r\n private createControl(data?: any) {\r\n const { fields } = this;\r\n if (!fields) return null;\r\n // eslint-disable-next-line object-curly-newline\r\n const group = this.fb.group({});\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled, alwaysShow } = field;\r\n let { value } = field;\r\n if (field.alwaysShowPlusValidation) {\r\n if (!this.handleInternalPlusValidation(field.alwaysShowPlusValidation, data)) return;\r\n } else if (!alwaysShow) return;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n group.addControl(name as string, control);\r\n });\r\n\r\n return group;\r\n }\r\n\r\n private bindValidations(validations: MECXFieldConfigValidator[]) {\r\n if (validations.length > 0) {\r\n const validList: any[] = [];\r\n validations.forEach((valid: MECXFieldConfigValidator) => {\r\n const validated = valid.param\r\n ? validators[valid.name](valid.param)\r\n : validators[valid.name];\r\n validList.push(validated);\r\n });\r\n return Validators.compose(validList);\r\n }\r\n return null;\r\n }\r\n\r\n private buildForm(): FormGroup {\r\n const form = this.fb.group({\r\n fields: this.fb.array([])\r\n });\r\n\r\n form?.controls.fields?.valueChanges.subscribe((_) => {\r\n this.watchForChanges();\r\n });\r\n\r\n return form;\r\n }\r\n\r\n private watchForChanges() {\r\n const { fields, changesUnsubscribe } = this;\r\n changesUnsubscribe.next();\r\n\r\n this.formValues?.controls?.map((control: any, index: number) => {\r\n fields.forEach((fieldConfig: MECXFieldConfig) => {\r\n const { name, alwaysShowPlusValidation } = fieldConfig;\r\n if (!alwaysShowPlusValidation) return;\r\n const { field } = alwaysShowPlusValidation;\r\n if (field) {\r\n control.controls[field]?.valueChanges.pipe(\r\n takeUntil(changesUnsubscribe)).subscribe((_: any) => {\r\n this.makeInternalPlusValidation(\r\n _,\r\n name as string,\r\n alwaysShowPlusValidation,\r\n index\r\n );\r\n });\r\n }\r\n });\r\n return null;\r\n });\r\n }\r\n\r\n public formBase = () => {\r\n // return this.fb.group(this.createControl());\r\n return this.createControl();\r\n };\r\n\r\n public get formValues() {\r\n return this._form ? (this._form.get('fields') as FormArray) : null;\r\n }\r\n\r\n public fillValues() {\r\n const { data, qtd } = this;\r\n if ((!this._form) && qtd) return;\r\n if (qtd > 0) {\r\n Array<any>(qtd)\r\n .fill(null)\r\n .map((_, index) => {\r\n let form = this.createControl();\r\n if (data && data[index]) {\r\n form = this.createControl(data[index]);\r\n const handledData = data[index];\r\n Object.entries(handledData).forEach(([key, value]) => {\r\n if (MonkeyUtils.persistNullEmptyUndefined(value) && form?.controls[key]) {\r\n form?.controls[key].setValue(value);\r\n }\r\n });\r\n }\r\n this.formValues?.push(form as any);\r\n\r\n return null;\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this._form = this.buildForm();\r\n this.fillValues();\r\n\r\n this.onHandleUpdateForm.subscribe(() => {\r\n this.fillValues();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this._form) {\r\n this._form = this.buildForm();\r\n }\r\n this.fillValues();\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFileUploadComponent {\r\n @Input() _field: MECXFieldConfig;\r\n\r\n @Input() _form: FormGroup;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n _function: Function = (file: any, callback?: Function) => {\r\n if (this._form?.disabled) return;\r\n if (!this._field?.functions?.onHandleUpload) {\r\n console.error('onHandleUpload not declared');\r\n return;\r\n }\r\n const { func, type } = this._field?.functions?.onHandleUpload;\r\n if (!func || !this.self[func]) {\r\n console.error('onHandleUpload not declared');\r\n return;\r\n }\r\n this.self[func](file, type, callback);\r\n };\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<monkey-file-upload\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [icon]=\"_field?.icon\" [formControl]=\"_form.controls[_field?.name]\"\r\n [placeholder]=\"_field?.placeholder | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\r\n [maxSize]=\"_field?.maxSize || 5242880\" [fileUpload]=\"_function\"\r\n [maxSizeErrorMessage]=\"'FIELD.FILE.MAX-FILE' | translate\"\r\n [allowedExtensionErrorMessage]=\"'FIELD.FILE.ALLOWED-EXTENSION' | translate\"\r\n [allowedExtensions]=\"_field?.allowedExtensions || []\" *ngIf=\"_field\">\r\n</monkey-file-upload>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicButtonComponent implements OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onClick() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field) return;\r\n const { name, value } = _field;\r\n const func = _field?.functions?.onClick;\r\n if (func) {\r\n self[func]({\r\n name,\r\n value,\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-button [icon]=\"_field?.icon\" [type]=\"_field?.type\" [color]=\"_field?.color\"\r\n (click)=\"onClick()\">\r\n {{ _field?.label | translate }}\r\n</monkey-button>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MonkeyInputComponent } from 'monkey-style-guide';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-input',\r\n templateUrl: './input.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicInputComponent implements OnInit, OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @ViewChild('inputElement', {\r\n static: true\r\n }) inputElement: MonkeyInputComponent | null = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-input\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\r\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\r\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\r\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\r\n [maxDateToday]=\"_field?.maxDateToday\">\r\n</monkey-input>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MonkeyInputComponent } from 'monkey-style-guide';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-input-phone',\r\n templateUrl: './input-phone.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicInputPhoneComponent implements OnInit, OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @ViewChild('inputElement', {\r\n static: true\r\n }) inputElement: MonkeyInputComponent | null = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-input-phone [name]=\"_field?.name\" [label]=\"_field?.label | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\"\r\n [placeholder]=\"_field?.placeholder | translate\" [icon]=\"_field?.icon\"\r\n (onChange)=\"onChange($event)\" [internationalNumber]=\"_field?.internationalNumber\"\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [maxLength]=\"_field?.maxLength\" [formControl]=\"_form.controls[_field?.name]\" #inputElement>\r\n</monkey-input-phone>","import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-radio',\r\n templateUrl: './radio.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicRadioComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n}\r\n","<monkey-radiobutton\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\">\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-radiobutton>","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n EventEmitter,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-select',\r\n templateUrl: './select.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicSelectComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n _onHandleOptions = new EventEmitter<any>();\r\n\r\n onHandleGenericLoad() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\r\n const { name } = _field;\r\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\r\n const { func, url } = _field?.functions?.onHandleGenericLoad;\r\n if (!func || !self[func]) {\r\n console.error('onHandleGenericLoad not declared');\r\n return;\r\n }\r\n _form?.disable();\r\n self[func]({\r\n name,\r\n url,\r\n form: _form,\r\n callback: (data: any[]) => {\r\n if (this._field) {\r\n this._field.value = data;\r\n }\r\n this._form?.enable();\r\n this._onHandleOptions.next(null);\r\n }\r\n });\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form?.get(this._field?.name as string),\r\n form: _form,\r\n value: _field.value\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-select\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\r\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\r\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\r\n [placeholder]=\"_field?.placeholder | translate\">\r\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\r\n enableClick=\"false\">\r\n </monkey-option>\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-select>","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n EventEmitter,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-select-search',\r\n templateUrl: './select-search.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicSelectSearchComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n _onHandleOptions = new EventEmitter<any>();\r\n\r\n onHandleGenericLoad() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\r\n const { name } = _field;\r\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\r\n const { func, url } = _field?.functions?.onHandleGenericLoad;\r\n if (!func || !self[func]) {\r\n console.error('onHandleGenericLoad not declared');\r\n return;\r\n }\r\n _form?.disable();\r\n self[func]({\r\n name,\r\n url,\r\n form: _form,\r\n callback: (data: any[]) => {\r\n if (this._field) {\r\n this._field.value = data;\r\n }\r\n this._form?.enable();\r\n this._onHandleOptions.next(null);\r\n }\r\n });\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form,\r\n value: _field.value\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-select-search\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\r\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\r\n [fieldToCompare]=\"_field?.fieldToCompare\"\r\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\r\n [placeholder]=\"_field?.placeholder | translate\">\r\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\r\n enableClick=\"false\">\r\n </monkey-option>\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-select-search>","import {\r\n ChangeDetectorRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../interfaces';\r\nimport { MECXDynamicButtonComponent } from './button';\r\nimport { MECXDynamicFileUploadComponent } from './file-upload';\r\nimport { MECXDynamicInputComponent } from './input';\r\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\r\nimport { MECXDynamicRadioComponent } from './radio';\r\nimport { MECXDynamicSelectComponent } from './select';\r\nimport { MECXDynamicSelectSearchComponent } from './select-search';\r\n\r\nconst componentMapper: any = {\r\n input: MECXDynamicInputComponent,\r\n 'input-phone': MECXDynamicInputPhoneComponent,\r\n radiobutton: MECXDynamicRadioComponent,\r\n select: MECXDynamicSelectComponent,\r\n 'select-search': MECXDynamicSelectSearchComponent,\r\n 'file-upload': MECXDynamicFileUploadComponent,\r\n button: MECXDynamicButtonComponent\r\n};\r\n\r\n@Directive({\r\n selector: '[MECXDynamic]'\r\n})\r\nexport class MECXDynamicDirective implements OnInit, OnChanges {\r\n @Input() field: MECXFieldConfig | null = null;\r\n\r\n @Input() form: FormGroup | null = null;\r\n\r\n @Input() formErrors: any;\r\n\r\n @Input() self: any;\r\n\r\n @Input() plusValidations: any;\r\n\r\n componentRef: any;\r\n\r\n constructor(private resolver: ComponentFactoryResolver, private container: ViewContainerRef,\r\n private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n private handleInternalPlusValidation() {\r\n if (!this.field?.alwaysShowPlusValidation) return false;\r\n const { operator, value, field } = this.field?.alwaysShowPlusValidation;\r\n const validators: any = {\r\n e: (val1: any, val2: string) => { return val1 === val2; },\r\n lt: (val1: any, val2: string) => { return val1 < val2; },\r\n gt: (val1: any, val2: string) => { return val1 > val2; }\r\n };\r\n const data = this.form?.controls[field as string]?.value;\r\n\r\n return validators[operator as string](data, value);\r\n }\r\n\r\n private buildComponent() {\r\n if (this.componentRef?.instance) return;\r\n const factory = this.resolver.resolveComponentFactory(\r\n componentMapper[this.field?.fieldType as string]\r\n );\r\n this.componentRef = this.container.createComponent(factory);\r\n this.componentRef.instance._field = this.field;\r\n this.componentRef.instance._form = this.form;\r\n // eslint-disable-next-line object-curly-newline\r\n this.componentRef.instance._formErrors = this.formErrors || {};\r\n this.componentRef.instance.self = this.self;\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.field?.alwaysShow && !this.handleInternalPlusValidation()) return;\r\n this.buildComponent();\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.plusValidations && this.plusValidations[this.field?.name as string]) {\r\n if (!this.field?.alwaysShow && this.plusValidations[this.field?.name as string].alwaysShow) {\r\n setTimeout(() => {\r\n this.buildComponent();\r\n this.cdr.detectChanges();\r\n }, 1);\r\n }\r\n if (this.componentRef?.instance &&\r\n !this.plusValidations[this.field?.name as string].alwaysShow) {\r\n this.componentRef.destroy();\r\n this.componentRef = null;\r\n this.form?.controls[this.field?.name as string]?.setValue(null);\r\n this.form?.controls[this.field?.name as string]?.clearValidators();\r\n }\r\n }\r\n if (!this.componentRef?.instance) return;\r\n this.componentRef.instance._formErrors = this.formErrors || {\r\n };\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDynamic } from '../../base/base-dynamic';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-form',\r\n templateUrl: './dynamic-form.component.html',\r\n styles: [],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFormComponent extends BaseDynamic implements OnInit, OnDestroy {\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\r\n super(fb);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\r\n this.onSubmit(func);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n onSubmit(callback: Function) {\r\n const { _form } = this;\r\n // eslint-disable-next-line object-curly-newline\r\n this.__monkeyecxFormErrors = {};\r\n\r\n const isValid = this.validateForm(_form as any);\r\n this.cdr.detectChanges();\r\n\r\n this.onHandleSubmitFormReady.next({\r\n validate: {\r\n isValid\r\n },\r\n callback,\r\n form: _form\r\n });\r\n }\r\n}\r\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\r\n <div class=\"row\">\r\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"_form\" [self]=\"self\"\r\n [formErrors]=\"__monkeyecxFormErrors\" [style.display]=\"'none'\">\r\n </div>\r\n </div>\r\n</form>","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDynamicArray } from '../../base';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-form-array',\r\n templateUrl: './dynamic-form-array.component.html',\r\n styleUrls: ['./dynamic-form-array.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFormArrayComponent extends BaseDynamicArray implements OnInit, OnDestroy {\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\r\n super(fb);\r\n this.__monkeyecxFormErrors = [];\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\r\n this.onSubmit(func);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n onSubmit(callback: Function) {\r\n const { _form } = this;\r\n // eslint-disable-next-line object-curly-newline\r\n this.__monkeyecxFormErrors = [];\r\n\r\n let validate = {\r\n isValid: false\r\n };\r\n let hasErrors: boolean = false;\r\n if (this.formValues) {\r\n this.__monkeyecxFormErrors = [this.formValues.length];\r\n this.formValues.controls.forEach((item: any, index: number) => {\r\n if (item instanceof FormGroup) {\r\n if (!this.validateForm(item, index)) {\r\n hasErrors = true;\r\n }\r\n }\r\n });\r\n }\r\n validate = {\r\n isValid: !hasErrors\r\n };\r\n\r\n this.cdr.detectChanges();\r\n\r\n this.onHandleSubmitFormReady.next({\r\n validate,\r\n callback,\r\n form: _form\r\n });\r\n }\r\n\r\n onHandleAdd() {\r\n this.formValues?.push(this.formBase() as any);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onHandleRemove(index: number) {\r\n this.formValues?.removeAt(index);\r\n this._plusValidations.splice(index, 1);\r\n }\r\n}\r\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\r\n <div formArrayName=\"fields\">\r\n <div *ngFor=\"let item of formValues.controls; let indForm=index\" [formGroupName]=\"indForm\">\r\n <monkey-button type=\"secondary\" color=\"error\" icon=\"close-20\" iconPosition=\"right\"\r\n [label]=\"'BUTTONS.REMOVE' | translate\" (click)=\"onHandleRemove(indForm)\"\r\n *ngIf=\"formValues.controls.length > 1 && !disabled\">\r\n </monkey-button>\r\n <div class=\"row mt-3\">\r\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"item\" [self]=\"self\"\r\n [formErrors]=\"__monkeyecxFormErrors[indForm]\"\r\n [plusValidations]=\"_plusValidations[indForm]\" [style.display]=\"'none'\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n<monkey-button type=\"secondary\" color=\"theme\" icon=\"more-20\" iconPosition=\"right\"\r\n [label]=\"'BUTTONS.ADD' | translate\" (click)=\"onHandleAdd()\" *ngIf=\"!disabled\">\r\n</monkey-button>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyButtonModule,\r\n MonkeyFileUploadModule,\r\n MonkeyInputModule,\r\n MonkeyInputPhoneModule,\r\n MonkeyOptionModule,\r\n MonkeyRadioButtonModule,\r\n MonkeySelectModule\r\n} from 'monkey-style-guide';\r\nimport { MECXDynamicButtonComponent } from './button';\r\nimport { MECXDynamicDirective } from './dynamic-directive';\r\nimport { MECXDynamicFileUploadComponent } from './file-upload';\r\nimport { MECXDynamicFormComponent, MECXDynamicFormArrayComponent } from './form';\r\nimport { MECXDynamicInputComponent } from './input';\r\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\r\nimport { MECXDynamicRadioComponent } from './radio';\r\nimport { MECXDynamicSelectComponent } from './select';\r\nimport { MECXDynamicSelectSearchComponent } from './select-search';\r\n\r\n@NgModule({\r\n declarations: [\r\n MECXDynamicButtonComponent,\r\n MECXDynamicFileUploadComponent,\r\n MECXDynamicFormComponent,\r\n MECXDynamicFormArrayComponent,\r\n MECXDynamicInputComponent,\r\n MECXDynamicInputPhoneComponent,\r\n MECXDynamicRadioComponent,\r\n MECXDynamicSelectComponent,\r\n MECXDynamicSelectSearchComponent,\r\n MECXDynamicDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyInputModule,\r\n MonkeySelectModule,\r\n MonkeyRadioButtonModule,\r\n MonkeyOptionModule,\r\n MonkeyFileUploadModule,\r\n MonkeyButtonModule,\r\n MonkeyInputPhoneModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [MECXDynamicDirective, MECXDynamicFormComponent, MECXDynamicFormArrayComponent],\r\n entryComponents: [MECXDynamicInputComponent]\r\n})\r\nexport class MECXDynamicModule {}\r\n","import { Component, Input, OnChanges, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\r\nimport { MonkeyEcxConfig, MonkeyEcxConfigService, MonkeyEcxUtils } from 'monkey-front-core';\r\nimport { PasswordStrength } from './password-strength';\r\n\r\n@Component({\r\n selector: 'mecx-password-strength',\r\n templateUrl: './password-strength.component.html',\r\n styleUrls: ['./password-strength.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXPasswordStrengthComponent implements OnChanges {\r\n @Input() passwordToCheck: string | null = null;\r\n\r\n @Output() onHandleSubmitReady = new EventEmitter<any>();\r\n\r\n _validatorsPasswordPass: Array<PasswordStrength> = [];\r\n\r\n _stepPassword = 0;\r\n\r\n private validatorsPassword = new Map();\r\n\r\n constructor(private configService: MonkeyEcxConfigService) {\r\n // not do\r\n }\r\n\r\n private handleColor(score: number) {\r\n let idx = 0;\r\n if (score > 50) idx = 1;\r\n if (score === 100) idx = 2;\r\n this._stepPassword = idx;\r\n }\r\n\r\n private passwordStrengthValidator(pass : string) {\r\n this._validatorsPasswordPass = [];\r\n let score = 0;\r\n\r\n this.validatorsPassword.forEach((key, value) => {\r\n this._validatorsPasswordPass.push({\r\n regex: `${value}`,\r\n validate: `${key.VALIDATE}` === String(RegExp(`${key.REGEX}`).test(pass)),\r\n percent: 100 / this.validatorsPassword.size\r\n });\r\n });\r\n\r\n this._validatorsPasswordPass.forEach((check) => {\r\n if (check.validate) {\r\n score += check.percent;\r\n }\r\n });\r\n\r\n return Math.trunc(score);\r\n }\r\n\r\n private onHandleReady() {\r\n const validate = this._validatorsPasswordPass?.find(({ validate }) => { return !validate; });\r\n this.onHandleSubmitReady.next(!validate);\r\n }\r\n\r\n private onHandleChages() {\r\n const password = this.passwordToCheck;\r\n this.handleColor(this.passwordStrengthValidator(password as string));\r\n this.onHandleReady();\r\n }\r\n\r\n private onHandlePasswordStrengthKeys(params: MonkeyEcxConfig) {\r\n const ps = params?.program?.screens?.login?.passwordStrength;\r\n if (ps) {\r\n Object.entries(ps)\r\n .forEach(([key, value]) => {\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\r\n this.validatorsPassword.set(key, value);\r\n }\r\n });\r\n this.onHandleChages();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.configService.config().subscribe((_: MonkeyEcxConfig) => {\r\n this.onHandlePasswordStrengthKeys(_);\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.onHandleChages();\r\n }\r\n}\r\n","<ng-container *ngIf=\"_validatorsPasswordPass?.length\">\r\n <div id=\"strength\" class=\"d-flex full-width flex-column justify-content-center align-items-center\"\r\n #strength>\r\n <div id=\"strengthBar\" class=\"strength-bar d-flex full-width flex-row\">\r\n <div class=\"d-flex full-width align-items-center\">\r\n <div class=\"bar-label\">\r\n <small>{{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TITLE' | translate }}</small>\r\n </div>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.error]=\"_stepPassword === 0\" [class.warning]=\"_stepPassword === 1\"\r\n [class.success]=\"_stepPassword === 2\">\r\n </div>\r\n <ng-container *ngIf=\"_stepPassword === 0\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.warning]=\"_stepPassword === 1\"\r\n [class.success]=\"_stepPassword === 2\"></div>\r\n <ng-container *ngIf=\"_stepPassword === 1\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.success]=\"_stepPassword === 2\"></div>\r\n <ng-container *ngIf=\"_stepPassword === 2\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"callbacks mt-2 row\">\r\n <div class=\"col-sm-6 mt-2 d-flex justify-content-start\"\r\n *ngFor=\"let validators of _validatorsPasswordPass\">\r\n <monkey-icon *ngIf=\"validators.validate\" icon=\"check-circle-20\"></monkey-icon>\r\n <monkey-icon *ngIf=\"!validators.validate\" icon=\"error-20\"></monkey-icon>\r\n <span class=\"ml-2\">\r\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TYPES.' + validators.regex | translate }}\r\n </span>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<ng-template #stepPasswordLabel>\r\n <div class=\"name-point mt-1\" [class.error]=\"_stepPassword === 0\"\r\n [class.warning]=\"_stepPassword === 1\" [class.success]=\"_stepPassword === 2\">\r\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.LABELS.' + _stepPassword | translate }}\r\n </div>\r\n</ng-template>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MonkeyEcxDirectivesModule, MonkeyEcxPipesModule } from 'monkey-front-core';\r\nimport { MonkeyButtonModule, MonkeyInputModule, MonkeyIconModule } from 'monkey-style-guide';\r\nimport { MECXPasswordStrengthComponent } from './password-strength.component';\r\n\r\n@NgModule({\r\n declarations: [MECXPasswordStrengthComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyEcxPipesModule,\r\n MonkeyEcxDirectivesModule,\r\n MonkeyButtonModule,\r\n MonkeyInputModule,\r\n MonkeyIconModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [MECXPasswordStrengthComponent]\r\n})\r\nexport class MECXPasswordStrengthModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n NavigationCancel,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationStart,\r\n Router\r\n} from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MECXProgressBarService {\r\n private visible: BehaviorSubject<any> = new BehaviorSubject(false);\r\n\r\n constructor(private router: Router) {\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n })\r\n )\r\n .subscribe(() => {\r\n this.show();\r\n });\r\n\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return (\r\n event instanceof NavigationEnd ||\r\n event instanceof NavigationError ||\r\n event instanceof NavigationCancel\r\n );\r\n })\r\n )\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n\r\n show() {\r\n this.visible.next(true);\r\n }\r\n\r\n hide() {\r\n this.visible.next(false);\r\n }\r\n\r\n visibleConfig(): Observable<any> {\r\n return this.visible.asObservable();\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseComponent } from '../../base/base-component';\r\nimport { MECXProgressBarService } from './progress-bar.service';\r\n\r\n@Component({\r\n selector: 'mecx-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXProgressBarComponent extends BaseComponent implements OnInit, OnDestroy {\r\n visible: boolean = false;\r\n\r\n constructor(private progressBarService: MECXProgressBarService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.progressBarService\r\n .visibleConfig()\r\n .pipe(takeUntil(this.__unsubscribeAll))\r\n .subscribe((visible: boolean) => {\r\n this.visible = visible;\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"visible\">\r\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\r\n</ng-container>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MECXProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [MECXProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [MECXProgressBarComponent]\r\n})\r\nexport class MECXProgressBarModule {}\r\n","/*\r\n * Public API Surface of monkey-front-components\r\n */\r\n\r\nexport * from './lib/components';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Validators_","Validators"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"monkey-front-components.mjs","sources":["../../../projects/monkey-front-components/src/lib/components/base/base-component.ts","../../../projects/monkey-front-components/src/lib/components/base/base-validators.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic-array.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic-directive.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.html","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.html","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-components/src/public-api.ts","../../../projects/monkey-front-components/src/monkey-front-components.ts"],"sourcesContent":["/* eslint-disable max-len */\r\nimport { AbstractControl, FormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { OnDestroy, Directive } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport {\r\n MonkeyEcxCommonsService,\r\n MonkeyEcxErrorResponse,\r\n MonkeyEcxPaginationOptions,\r\n MonkeyEcxScrollOptions,\r\n MonkeyEcxSupportOptions,\r\n MonkeyEcxTranslateOptions,\r\n ValidateUtils\r\n} from 'monkey-front-core';\r\n\r\n@Directive({\r\n selector: '[baseComponent]'\r\n})\r\nexport abstract class BaseComponent implements OnDestroy {\r\n __monkeyecxFormErrors: any | any[];\r\n\r\n __unsubscribeAll: Subject<any>;\r\n\r\n __paginationOptions: MonkeyEcxPaginationOptions | null = null;\r\n\r\n __i18n: any;\r\n\r\n __isMobile = this.isMobile();\r\n\r\n __locales = ['pt-BR', 'es-CL'];\r\n\r\n private paginationFunc: any;\r\n\r\n protected constructor() {\r\n this.__unsubscribeAll = new Subject();\r\n }\r\n\r\n private isMobile() {\r\n const isMobileWidth = (window.screen.width <= 640) ||\r\n (window.matchMedia &&\r\n window.matchMedia('only screen and (max-width: 640px)').matches\r\n );\r\n return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile/i.test(\r\n navigator.userAgent\r\n )) || isMobileWidth;\r\n }\r\n\r\n private handlePagination(create = true) {\r\n const { __paginationOptions } = this;\r\n\r\n if (__paginationOptions) {\r\n const { mainElement, service } = __paginationOptions;\r\n\r\n const element = document.getElementById(mainElement);\r\n\r\n if (element) {\r\n element.scroll = null;\r\n element.onscroll = null;\r\n\r\n if (create) {\r\n element.removeEventListener('scroll', (element as any).eventListeners('scroll'));\r\n element.removeEventListener('scroll', (element as any).eventListeners('scroll')[0]);\r\n element.addEventListener('scroll', () => {\r\n const { scrollTop, scrollHeight, offsetHeight } = element;\r\n const contentHeight = scrollHeight - offsetHeight;\r\n\r\n if (contentHeight <= scrollTop) {\r\n service.doPagination();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n private handleSupport(supportControls: MonkeyEcxSupportOptions) {\r\n const { service, show } = supportControls;\r\n const method = show ? 'show' : 'hide';\r\n service[method.toLowerCase()]();\r\n }\r\n\r\n private handleTranslate(translateOptions: MonkeyEcxTranslateOptions) {\r\n const { service } = translateOptions;\r\n service.__oni18nDataChanged$\r\n .pipe(takeUntil(this.__unsubscribeAll))\r\n .subscribe(() => {\r\n const data = service.__i18n;\r\n if (data) {\r\n this.__i18n = data;\r\n }\r\n });\r\n }\r\n\r\n private handleViewScroll(options: MonkeyEcxScrollOptions) {\r\n const { elementId, service } = options;\r\n\r\n if (elementId === service?.__savedState?.scrollElementId) {\r\n this.goScroll(elementId);\r\n\r\n service.__savedState.scrollElementId = null;\r\n }\r\n }\r\n\r\n private getErrorFirstMessageTranslated(formControl: AbstractControl | null = null) {\r\n if (formControl?.hasError('required')) return 'FIELD-REQUIRED';\r\n if (formControl?.hasError('invalid')) return 'FIELD-INVALID';\r\n if (formControl?.hasError('email')) return 'INVALID-EMAIL';\r\n if (formControl?.hasError('minlength')) return 'MIN-LENGTH';\r\n if (formControl?.hasError('maxlength')) return 'MAX-LENGTH';\r\n if (formControl?.hasError('max')) return 'MAX';\r\n if (formControl?.hasError('min')) return 'MIN';\r\n if (formControl?.hasError('passwordsNotMatching')) return 'MATCH-PASSWORD';\r\n if (formControl?.hasError('invalidDate')) return 'INVALID-DATE';\r\n if (formControl?.hasError('invalidTrue')) return 'INVALID-TRUE';\r\n if (formControl?.hasError('invalidCpfCnpj')) return 'INVALID-DOCUMENT';\r\n if (formControl?.hasError('invalidZipCode')) return 'INVALID-ZIPCODE';\r\n if (formControl?.hasError('invalidCombo')) return 'INVALID-COMBO';\r\n if (formControl?.hasError('invalidUrl')) return 'INVALID-URL';\r\n if (formControl?.hasError('invalidUnlockRegister')) { return 'INVALID-UNLOCK-REGISTER'; }\r\n if (formControl?.hasError('dateStartMustBeLessThanAnd')) {\r\n return 'DATE-START-MUST-BE-LESS-THAN-AND';\r\n }\r\n if (formControl?.hasError('dateEndMustBeGreaterThanStart')) {\r\n return 'DATE-END-MUST-BE-GREATER-THAN-SART';\r\n }\r\n if (formControl?.hasError('phone')) return 'INVALID-PHONE';\r\n\r\n return 'FIELD-INVALID';\r\n }\r\n\r\n private getErrorLastMessageNotTranslated(formControl: AbstractControl | null = null) {\r\n if (formControl?.hasError('minlength')) {\r\n return `${formControl?.getError('minlength').requiredLength} caracteres.`;\r\n }\r\n if (formControl?.hasError('maxlength')) {\r\n return `${formControl?.getError('maxlength').requiredLength} caracteres.`;\r\n }\r\n if (formControl?.hasError('max')) { return `${formControl?.getError('max').max}`; }\r\n if (formControl?.hasError('min')) { return `${formControl?.getError('min').min}`; }\r\n\r\n return '';\r\n }\r\n\r\n public validateFormWithTranslate(f: FormGroup, index?: number): boolean {\r\n const formErrors: any = f.value;\r\n\r\n if (f.status === 'VALID') return true;\r\n\r\n if (!formErrors) return true;\r\n Object.entries(formErrors).forEach(([key, value]) => {\r\n const control = f.get(key);\r\n formErrors[key] = '';\r\n if (control && !control.valid) {\r\n const msg = {\r\n first: `ERRORS.${this.getErrorFirstMessageTranslated(f.get(key))}`,\r\n last: this.getErrorLastMessageNotTranslated(f.get(key))\r\n };\r\n formErrors[key] = msg;\r\n }\r\n });\r\n\r\n if (MonkeyUtils.persistNullEmptyUndefined(index)) { this.__monkeyecxFormErrors[index || 0] = formErrors; } else {\r\n this.__monkeyecxFormErrors = formErrors;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public copyToClipboard(val: string) {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n\r\n public validateForm(f: FormGroup, index?: number, alias?: string): boolean {\r\n const formErrors: any = f.value;\r\n if (f.status === 'VALID') return true;\r\n\r\n if (!formErrors) return true;\r\n Object.entries(formErrors).forEach(([key, value]) => {\r\n const control = f.get(key);\r\n formErrors[key] = '';\r\n if (control && !control.valid) {\r\n const msg = {\r\n firstMessage: `ERRORS.${this.getErrorFirstMessageTranslated(\r\n f.get(key)\r\n )}`,\r\n lastMessage: this.getErrorLastMessageNotTranslated(f.get(key))\r\n };\r\n formErrors[key] = msg;\r\n }\r\n });\r\n\r\n if (MonkeyUtils.persistNullEmptyUndefined(index)) {\r\n this.__monkeyecxFormErrors[index || 0] = formErrors;\r\n } else {\r\n let obj: any;\r\n\r\n if (alias) {\r\n obj = {\r\n [alias]: {\r\n ...formErrors\r\n }\r\n };\r\n } else {\r\n obj = formErrors;\r\n }\r\n\r\n this.__monkeyecxFormErrors = {\r\n ...this.__monkeyecxFormErrors,\r\n ...obj\r\n };\r\n }\r\n f.markAllAsTouched();\r\n return false;\r\n }\r\n\r\n public clearAllServiceData(clearData: boolean) {\r\n const context = this;\r\n Object.values(context).forEach((ctx: any) => {\r\n if (ctx instanceof MonkeyEcxCommonsService) {\r\n ctx.clear(clearData);\r\n }\r\n });\r\n }\r\n\r\n public ngOnInit(args: {\r\n paginationOptions?: MonkeyEcxPaginationOptions;\r\n supportControls?: MonkeyEcxSupportOptions;\r\n scrollOptions?: MonkeyEcxScrollOptions;\r\n translateOptions?: MonkeyEcxTranslateOptions;\r\n }) {\r\n if (args?.paginationOptions) {\r\n this.__paginationOptions = args?.paginationOptions;\r\n this.handlePagination();\r\n }\r\n if (args?.supportControls) {\r\n this.handleSupport(args?.supportControls);\r\n }\r\n if (args?.translateOptions) {\r\n this.handleTranslate(args?.translateOptions);\r\n }\r\n if (args?.scrollOptions) {\r\n this.handleViewScroll(args.scrollOptions);\r\n }\r\n }\r\n\r\n public ngOnDestroy(clearData: boolean = true) {\r\n this.__unsubscribeAll.next();\r\n this.__unsubscribeAll.complete();\r\n this.clearAllServiceData(clearData);\r\n this.handlePagination(false);\r\n }\r\n\r\n public handleErrorFromServices(error: MonkeyEcxErrorResponse, f: FormGroup) {\r\n this.__monkeyecxFormErrors = null;\r\n if (error.type === 'Parameter_Error') {\r\n Object.entries(f.value).forEach(([key, value]) => {\r\n error.notifications.forEach((_: any) => {\r\n const field = _.split(':')[0];\r\n const description = _.split(':')[1];\r\n if (field === key) {\r\n const msg = {\r\n firstMessage: '',\r\n lastMessage: description\r\n };\r\n this.__monkeyecxFormErrors = {\r\n ...this.__monkeyecxFormErrors,\r\n [key]: msg\r\n };\r\n f.controls[key].setErrors({\r\n incorrect: true\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n f.markAllAsTouched();\r\n }\r\n\r\n public goBack() {\r\n window.history.back();\r\n }\r\n\r\n public goScroll(id: string) {\r\n const element = document.getElementById(id);\r\n if (element) element.scrollIntoView();\r\n }\r\n\r\n public getEmbeddedData(data: any, field: string): any[] | any {\r\n const { _embedded } = data;\r\n return _embedded ? _embedded[field] : null;\r\n }\r\n\r\n public openWindow(url: string) {\r\n window.open(`${url}`, '_blank');\r\n }\r\n\r\n public fillI18n(data: any) {\r\n this.__i18n = data;\r\n }\r\n\r\n public getCountryPrefix(country: string) {\r\n return {\r\n br: 55,\r\n cl: 56\r\n }[country];\r\n }\r\n\r\n public getCountryCurrencyChartFormat(country: string) {\r\n return {\r\n br: 'R$ #,###,##0.00',\r\n cl: 'CLP #,###,##0'\r\n }[country];\r\n }\r\n\r\n public getCountryValidators(country: string) {\r\n return {\r\n br: {\r\n governmentId: ValidateUtils.DocumentValidator\r\n },\r\n cl: {\r\n governmentId: ValidateUtils.DocumentRutValidator\r\n }\r\n }[country];\r\n }\r\n}\r\n","import { Validators as Validators_ } from '@angular/forms';\r\nimport { Validators } from 'monkey-front-core';\r\n\r\nexport const validators: any = {\r\n required: Validators_.required,\r\n email: Validators.email,\r\n governmentId: Validators.documentBR,\r\n governmentIdRut: Validators.documentCL,\r\n documentBR: Validators.documentBR,\r\n documentCL: Validators.documentCL,\r\n date: Validators.date,\r\n zipCode: Validators.zipCode,\r\n minLength: (param: number) => {\r\n return Validators_.minLength(param);\r\n },\r\n maxLength: (param: number) => {\r\n return Validators_.maxLength(param);\r\n }\r\n};\r\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\r\nimport { BaseComponent } from './base-component';\r\nimport { validators } from './base-validators';\r\n\r\n@Directive({\r\n selector: '[baseDynamic]'\r\n})\r\nexport abstract class BaseDynamic extends BaseComponent implements OnInit, OnChanges {\r\n @Input() onHandleSubmit = new EventEmitter<any>();\r\n\r\n @Input() onHandleUpdateForm = new EventEmitter<any>();\r\n\r\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() self: any;\r\n\r\n @Input() fields: MECXFieldConfig[] = [];\r\n\r\n @Input() data: any;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _form: FormGroup | null = null;\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n }\r\n\r\n private createControl() {\r\n const { fields } = this;\r\n if (!fields) return null;\r\n // eslint-disable-next-line object-curly-newline\r\n const group = this.fb.group({});\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled } = field;\r\n let { value } = field;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n group.addControl(name as string, control);\r\n });\r\n return group;\r\n }\r\n\r\n private bindValidations(validations: MECXFieldConfigValidator[]) {\r\n if (validations.length > 0) {\r\n const validList: any[] = [];\r\n validations.forEach((valid: MECXFieldConfigValidator) => {\r\n const validated = valid.param\r\n ? validators[valid.name](valid.param)\r\n : validators[valid.name];\r\n validList.push(validated);\r\n });\r\n return Validators.compose(validList);\r\n }\r\n return null;\r\n }\r\n\r\n public fillValues() {\r\n const { data } = this;\r\n if (!data || !this._form) return;\r\n Object.entries(data).forEach(([key, value]) => {\r\n if (MonkeyUtils.persistNullEmptyUndefined(value) && this._form?.controls[key]) {\r\n this._form?.controls[key]?.setValue(value);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this._form = this.createControl();\r\n this.fillValues();\r\n\r\n this.onHandleUpdateForm.subscribe(() => {\r\n this.fillValues();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this._form) {\r\n this._form = this.createControl();\r\n }\r\n this.fillValues();\r\n }\r\n}\r\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\r\nimport { BaseComponent } from './base-component';\r\nimport { validators } from './base-validators';\r\n\r\n@Directive({\r\n selector: '[baseDynamicArray]'\r\n})\r\nexport abstract class BaseDynamicArray extends BaseComponent implements OnInit, OnChanges {\r\n @Input() onHandleSubmit = new EventEmitter<any>();\r\n\r\n @Input() onHandleUpdateForm = new EventEmitter<any>();\r\n\r\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() self: any;\r\n\r\n @Input() fields: MECXFieldConfig[] = [];\r\n\r\n @Input() data: any;\r\n\r\n @Input() qtd: number = 1;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n _plusValidations: any[] = [];\r\n\r\n private changesUnsubscribe = new Subject();\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n }\r\n\r\n private handleInternalPlusValidation(\r\n mainField: any,\r\n data: any\r\n ) {\r\n const { operator, field, value } = mainField;\r\n const validators: any = {\r\n e: (val1: any, val2: string) => { return val1 === val2; },\r\n lt: (val1: any, val2: string) => { return val1 < val2; },\r\n gt: (val1: any, val2: string) => { return val1 > val2; }\r\n };\r\n\r\n return validators[operator](data?.[field] || data, value);\r\n }\r\n\r\n private makeInternalPlusValidation(\r\n data: any,\r\n sourceField: string,\r\n settings: any,\r\n rowIndex: number\r\n ) {\r\n const changeFields = (show: boolean) => {\r\n const saved = [...this.fields];\r\n\r\n saved.map((val) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (val.name === sourceField) {\r\n this._plusValidations[rowIndex] = {\r\n [sourceField]: {\r\n ...valSaved,\r\n alwaysShow: show\r\n }\r\n };\r\n this.createOneControl(val.name, this.formValues?.controls[rowIndex], show);\r\n } else {\r\n this._plusValidations[rowIndex] = {\r\n ...valSaved\r\n };\r\n }\r\n return null;\r\n });\r\n };\r\n\r\n const validated = this.handleInternalPlusValidation(settings, data);\r\n changeFields(validated);\r\n }\r\n\r\n private createOneControl(fieldName: string, ctrl: any, create = true) {\r\n const { fields } = this;\r\n if (!fields) return;\r\n\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled } = field;\r\n if (name !== fieldName) return;\r\n let { value } = field;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n if (create) {\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n ctrl.addControl(name, control);\r\n } else {\r\n ctrl.removeControl(name);\r\n }\r\n });\r\n }\r\n\r\n private createControl(data?: any) {\r\n const { fields } = this;\r\n if (!fields) return null;\r\n // eslint-disable-next-line object-curly-newline\r\n const group = this.fb.group({});\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled, alwaysShow } = field;\r\n let { value } = field;\r\n if (field.alwaysShowPlusValidation) {\r\n if (!this.handleInternalPlusValidation(field.alwaysShowPlusValidation, data)) return;\r\n } else if (!alwaysShow) return;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n group.addControl(name as string, control);\r\n });\r\n\r\n return group;\r\n }\r\n\r\n private bindValidations(validations: MECXFieldConfigValidator[]) {\r\n if (validations.length > 0) {\r\n const validList: any[] = [];\r\n validations.forEach((valid: MECXFieldConfigValidator) => {\r\n const validated = valid.param\r\n ? validators[valid.name](valid.param)\r\n : validators[valid.name];\r\n validList.push(validated);\r\n });\r\n return Validators.compose(validList);\r\n }\r\n return null;\r\n }\r\n\r\n private buildForm(): FormGroup {\r\n const form = this.fb.group({\r\n fields: this.fb.array([])\r\n });\r\n\r\n form?.controls.fields?.valueChanges.subscribe((_) => {\r\n this.watchForChanges();\r\n });\r\n\r\n return form;\r\n }\r\n\r\n private watchForChanges() {\r\n const { fields, changesUnsubscribe } = this;\r\n changesUnsubscribe.next();\r\n\r\n this.formValues?.controls?.map((control: any, index: number) => {\r\n fields.forEach((fieldConfig: MECXFieldConfig) => {\r\n const { name, alwaysShowPlusValidation } = fieldConfig;\r\n if (!alwaysShowPlusValidation) return;\r\n const { field } = alwaysShowPlusValidation;\r\n if (field) {\r\n control.controls[field]?.valueChanges.pipe(\r\n takeUntil(changesUnsubscribe)).subscribe((_: any) => {\r\n this.makeInternalPlusValidation(\r\n _,\r\n name as string,\r\n alwaysShowPlusValidation,\r\n index\r\n );\r\n });\r\n }\r\n });\r\n return null;\r\n });\r\n }\r\n\r\n public formBase = () => {\r\n // return this.fb.group(this.createControl());\r\n return this.createControl();\r\n };\r\n\r\n public get formValues() {\r\n return this._form ? (this._form.get('fields') as FormArray) : null;\r\n }\r\n\r\n public fillValues() {\r\n const { data, qtd } = this;\r\n if ((!this._form) && qtd) return;\r\n if (qtd > 0) {\r\n Array<any>(qtd)\r\n .fill(null)\r\n .map((_, index) => {\r\n let form = this.createControl();\r\n if (data && data[index]) {\r\n form = this.createControl(data[index]);\r\n const handledData = data[index];\r\n Object.entries(handledData).forEach(([key, value]) => {\r\n if (MonkeyUtils.persistNullEmptyUndefined(value) && form?.controls[key]) {\r\n form?.controls[key].setValue(value);\r\n }\r\n });\r\n }\r\n this.formValues?.push(form as any);\r\n\r\n return null;\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this._form = this.buildForm();\r\n this.fillValues();\r\n\r\n this.onHandleUpdateForm.subscribe(() => {\r\n this.fillValues();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this._form) {\r\n this._form = this.buildForm();\r\n }\r\n this.fillValues();\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFileUploadComponent {\r\n @Input() _field: MECXFieldConfig;\r\n\r\n @Input() _form: FormGroup;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n _function: Function = (file: any, callback?: Function) => {\r\n if (this._form?.disabled) return;\r\n if (!this._field?.functions?.onHandleUpload) {\r\n console.error('onHandleUpload not declared');\r\n return;\r\n }\r\n const { func, type } = this._field?.functions?.onHandleUpload;\r\n if (!func || !this.self[func]) {\r\n console.error('onHandleUpload not declared');\r\n return;\r\n }\r\n this.self[func](file, type, callback);\r\n };\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<monkey-file-upload\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [icon]=\"_field?.icon\" [formControl]=\"_form.controls[_field?.name]\"\r\n [placeholder]=\"_field?.placeholder | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\r\n [maxSize]=\"_field?.maxSize || 5242880\" [fileUpload]=\"_function\"\r\n [maxSizeErrorMessage]=\"'FIELD.FILE.MAX-FILE' | translate\"\r\n [allowedExtensionErrorMessage]=\"'FIELD.FILE.ALLOWED-EXTENSION' | translate\"\r\n [allowedExtensions]=\"_field?.allowedExtensions || []\" *ngIf=\"_field\">\r\n</monkey-file-upload>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicButtonComponent implements OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onClick() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field) return;\r\n const { name, value } = _field;\r\n const func = _field?.functions?.onClick;\r\n if (func) {\r\n self[func]({\r\n name,\r\n value,\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-button [icon]=\"_field?.icon\" [type]=\"_field?.type\" [color]=\"_field?.color\"\r\n (click)=\"onClick()\">\r\n {{ _field?.label | translate }}\r\n</monkey-button>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MonkeyInputComponent } from 'monkey-style-guide';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-input',\r\n templateUrl: './input.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicInputComponent implements OnInit, OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @ViewChild('inputElement', {\r\n static: true\r\n }) inputElement: MonkeyInputComponent | null = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-input\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\r\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\r\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\r\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\r\n [maxDateToday]=\"_field?.maxDateToday\">\r\n</monkey-input>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MonkeyInputComponent } from 'monkey-style-guide';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-input-phone',\r\n templateUrl: './input-phone.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicInputPhoneComponent implements OnInit, OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @ViewChild('inputElement', {\r\n static: true\r\n }) inputElement: MonkeyInputComponent | null = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-input-phone [name]=\"_field?.name\" [label]=\"_field?.label | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\"\r\n [placeholder]=\"_field?.placeholder | translate\" [icon]=\"_field?.icon\"\r\n (onChange)=\"onChange($event)\" [internationalNumber]=\"_field?.internationalNumber\"\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [maxLength]=\"_field?.maxLength\" [formControl]=\"_form.controls[_field?.name]\" #inputElement>\r\n</monkey-input-phone>","import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-radio',\r\n templateUrl: './radio.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicRadioComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n}\r\n","<monkey-radiobutton\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\">\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-radiobutton>","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n EventEmitter,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-select',\r\n templateUrl: './select.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicSelectComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n _onHandleOptions = new EventEmitter<any>();\r\n\r\n onHandleGenericLoad() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\r\n const { name } = _field;\r\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\r\n const { func, url } = _field?.functions?.onHandleGenericLoad;\r\n if (!func || !self[func]) {\r\n console.error('onHandleGenericLoad not declared');\r\n return;\r\n }\r\n _form?.disable();\r\n self[func]({\r\n name,\r\n url,\r\n form: _form,\r\n callback: (data: any[]) => {\r\n if (this._field) {\r\n this._field.value = data;\r\n }\r\n this._form?.enable();\r\n this._onHandleOptions.next(null);\r\n }\r\n });\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form?.get(this._field?.name as string),\r\n form: _form,\r\n value: _field.value\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-select\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\r\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\r\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\r\n [placeholder]=\"_field?.placeholder | translate\">\r\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\r\n enableClick=\"false\">\r\n </monkey-option>\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-select>","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n EventEmitter,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-select-search',\r\n templateUrl: './select-search.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicSelectSearchComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n _onHandleOptions = new EventEmitter<any>();\r\n\r\n onHandleGenericLoad() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\r\n const { name } = _field;\r\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\r\n const { func, url } = _field?.functions?.onHandleGenericLoad;\r\n if (!func || !self[func]) {\r\n console.error('onHandleGenericLoad not declared');\r\n return;\r\n }\r\n _form?.disable();\r\n self[func]({\r\n name,\r\n url,\r\n form: _form,\r\n callback: (data: any[]) => {\r\n if (this._field) {\r\n this._field.value = data;\r\n }\r\n this._form?.enable();\r\n this._onHandleOptions.next(null);\r\n }\r\n });\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form,\r\n value: _field.value\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-select-search\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\r\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\r\n [fieldToCompare]=\"_field?.fieldToCompare\"\r\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\r\n [placeholder]=\"_field?.placeholder | translate\">\r\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\r\n enableClick=\"false\">\r\n </monkey-option>\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-select-search>","import {\r\n ChangeDetectorRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../interfaces';\r\nimport { MECXDynamicButtonComponent } from './button';\r\nimport { MECXDynamicFileUploadComponent } from './file-upload';\r\nimport { MECXDynamicInputComponent } from './input';\r\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\r\nimport { MECXDynamicRadioComponent } from './radio';\r\nimport { MECXDynamicSelectComponent } from './select';\r\nimport { MECXDynamicSelectSearchComponent } from './select-search';\r\n\r\nconst componentMapper: any = {\r\n input: MECXDynamicInputComponent,\r\n 'input-phone': MECXDynamicInputPhoneComponent,\r\n radiobutton: MECXDynamicRadioComponent,\r\n select: MECXDynamicSelectComponent,\r\n 'select-search': MECXDynamicSelectSearchComponent,\r\n 'file-upload': MECXDynamicFileUploadComponent,\r\n button: MECXDynamicButtonComponent\r\n};\r\n\r\n@Directive({\r\n selector: '[MECXDynamic]'\r\n})\r\nexport class MECXDynamicDirective implements OnInit, OnChanges {\r\n @Input() field: MECXFieldConfig | null = null;\r\n\r\n @Input() form: FormGroup | null = null;\r\n\r\n @Input() formErrors: any;\r\n\r\n @Input() self: any;\r\n\r\n @Input() plusValidations: any;\r\n\r\n componentRef: any;\r\n\r\n constructor(private resolver: ComponentFactoryResolver, private container: ViewContainerRef,\r\n private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n private handleInternalPlusValidation() {\r\n if (!this.field?.alwaysShowPlusValidation) return false;\r\n const { operator, value, field } = this.field?.alwaysShowPlusValidation;\r\n const validators: any = {\r\n e: (val1: any, val2: string) => { return val1 === val2; },\r\n lt: (val1: any, val2: string) => { return val1 < val2; },\r\n gt: (val1: any, val2: string) => { return val1 > val2; }\r\n };\r\n const data = this.form?.controls[field as string]?.value;\r\n\r\n return validators[operator as string](data, value);\r\n }\r\n\r\n private buildComponent() {\r\n if (this.componentRef?.instance) return;\r\n const factory = this.resolver.resolveComponentFactory(\r\n componentMapper[this.field?.fieldType as string]\r\n );\r\n this.componentRef = this.container.createComponent(factory);\r\n this.componentRef.instance._field = this.field;\r\n this.componentRef.instance._form = this.form;\r\n // eslint-disable-next-line object-curly-newline\r\n this.componentRef.instance._formErrors = this.formErrors || {};\r\n this.componentRef.instance.self = this.self;\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.field?.alwaysShow && !this.handleInternalPlusValidation()) return;\r\n this.buildComponent();\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.plusValidations && this.plusValidations[this.field?.name as string]) {\r\n if (!this.field?.alwaysShow && this.plusValidations[this.field?.name as string].alwaysShow) {\r\n setTimeout(() => {\r\n this.buildComponent();\r\n this.cdr.detectChanges();\r\n }, 1);\r\n }\r\n if (this.componentRef?.instance &&\r\n !this.plusValidations[this.field?.name as string].alwaysShow) {\r\n this.componentRef.destroy();\r\n this.componentRef = null;\r\n this.form?.controls[this.field?.name as string]?.setValue(null);\r\n this.form?.controls[this.field?.name as string]?.clearValidators();\r\n }\r\n }\r\n if (!this.componentRef?.instance) return;\r\n this.componentRef.instance._formErrors = this.formErrors || {\r\n };\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDynamic } from '../../base/base-dynamic';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-form',\r\n templateUrl: './dynamic-form.component.html',\r\n styles: [],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFormComponent extends BaseDynamic implements OnInit, OnDestroy {\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\r\n super(fb);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\r\n this.onSubmit(func);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n onSubmit(callback: Function) {\r\n const { _form } = this;\r\n // eslint-disable-next-line object-curly-newline\r\n this.__monkeyecxFormErrors = {};\r\n\r\n const isValid = this.validateForm(_form as any);\r\n this.cdr.detectChanges();\r\n\r\n this.onHandleSubmitFormReady.next({\r\n validate: {\r\n isValid\r\n },\r\n callback,\r\n form: _form\r\n });\r\n }\r\n}\r\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\r\n <div class=\"row\">\r\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"_form\" [self]=\"self\"\r\n [formErrors]=\"__monkeyecxFormErrors\" [style.display]=\"'none'\">\r\n </div>\r\n </div>\r\n</form>","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDynamicArray } from '../../base';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-form-array',\r\n templateUrl: './dynamic-form-array.component.html',\r\n styleUrls: ['./dynamic-form-array.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFormArrayComponent extends BaseDynamicArray implements OnInit, OnDestroy {\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\r\n super(fb);\r\n this.__monkeyecxFormErrors = [];\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\r\n this.onSubmit(func);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n onSubmit(callback: Function) {\r\n const { _form } = this;\r\n // eslint-disable-next-line object-curly-newline\r\n this.__monkeyecxFormErrors = [];\r\n\r\n let validate = {\r\n isValid: false\r\n };\r\n let hasErrors: boolean = false;\r\n if (this.formValues) {\r\n this.__monkeyecxFormErrors = [this.formValues.length];\r\n this.formValues.controls.forEach((item: any, index: number) => {\r\n if (item instanceof FormGroup) {\r\n if (!this.validateForm(item, index)) {\r\n hasErrors = true;\r\n }\r\n }\r\n });\r\n }\r\n validate = {\r\n isValid: !hasErrors\r\n };\r\n\r\n this.cdr.detectChanges();\r\n\r\n this.onHandleSubmitFormReady.next({\r\n validate,\r\n callback,\r\n form: _form\r\n });\r\n }\r\n\r\n onHandleAdd() {\r\n this.formValues?.push(this.formBase() as any);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onHandleRemove(index: number) {\r\n this.formValues?.removeAt(index);\r\n this._plusValidations.splice(index, 1);\r\n }\r\n}\r\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\r\n <div formArrayName=\"fields\">\r\n <div *ngFor=\"let item of formValues.controls; let indForm=index\" [formGroupName]=\"indForm\">\r\n <monkey-button type=\"secondary\" color=\"error\" icon=\"close-20\" iconPosition=\"right\"\r\n [label]=\"'BUTTONS.REMOVE' | translate\" (click)=\"onHandleRemove(indForm)\"\r\n *ngIf=\"formValues.controls.length > 1 && !disabled\">\r\n </monkey-button>\r\n <div class=\"row mt-3\">\r\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"item\" [self]=\"self\"\r\n [formErrors]=\"__monkeyecxFormErrors[indForm]\"\r\n [plusValidations]=\"_plusValidations[indForm]\" [style.display]=\"'none'\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n<monkey-button type=\"secondary\" color=\"theme\" icon=\"more-20\" iconPosition=\"right\"\r\n [label]=\"'BUTTONS.ADD' | translate\" (click)=\"onHandleAdd()\" *ngIf=\"!disabled\">\r\n</monkey-button>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyButtonModule,\r\n MonkeyFileUploadModule,\r\n MonkeyInputModule,\r\n MonkeyInputPhoneModule,\r\n MonkeyOptionModule,\r\n MonkeyRadioButtonModule,\r\n MonkeySelectModule\r\n} from 'monkey-style-guide';\r\nimport { MECXDynamicButtonComponent } from './button';\r\nimport { MECXDynamicDirective } from './dynamic-directive';\r\nimport { MECXDynamicFileUploadComponent } from './file-upload';\r\nimport { MECXDynamicFormComponent, MECXDynamicFormArrayComponent } from './form';\r\nimport { MECXDynamicInputComponent } from './input';\r\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\r\nimport { MECXDynamicRadioComponent } from './radio';\r\nimport { MECXDynamicSelectComponent } from './select';\r\nimport { MECXDynamicSelectSearchComponent } from './select-search';\r\n\r\n@NgModule({\r\n declarations: [\r\n MECXDynamicButtonComponent,\r\n MECXDynamicFileUploadComponent,\r\n MECXDynamicFormComponent,\r\n MECXDynamicFormArrayComponent,\r\n MECXDynamicInputComponent,\r\n MECXDynamicInputPhoneComponent,\r\n MECXDynamicRadioComponent,\r\n MECXDynamicSelectComponent,\r\n MECXDynamicSelectSearchComponent,\r\n MECXDynamicDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyInputModule,\r\n MonkeySelectModule,\r\n MonkeyRadioButtonModule,\r\n MonkeyOptionModule,\r\n MonkeyFileUploadModule,\r\n MonkeyButtonModule,\r\n MonkeyInputPhoneModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [MECXDynamicDirective, MECXDynamicFormComponent, MECXDynamicFormArrayComponent],\r\n entryComponents: [MECXDynamicInputComponent]\r\n})\r\nexport class MECXDynamicModule {}\r\n","import { Component, Input, OnChanges, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\r\nimport { MonkeyEcxConfig, MonkeyEcxConfigService, MonkeyEcxUtils } from 'monkey-front-core';\r\nimport { PasswordStrength } from './password-strength';\r\n\r\n@Component({\r\n selector: 'mecx-password-strength',\r\n templateUrl: './password-strength.component.html',\r\n styleUrls: ['./password-strength.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXPasswordStrengthComponent implements OnChanges {\r\n @Input() passwordToCheck: string | null = null;\r\n\r\n @Output() onHandleSubmitReady = new EventEmitter<any>();\r\n\r\n _validatorsPasswordPass: Array<PasswordStrength> = [];\r\n\r\n _stepPassword = 0;\r\n\r\n private validatorsPassword = new Map();\r\n\r\n constructor(private configService: MonkeyEcxConfigService) {\r\n // not do\r\n }\r\n\r\n private handleColor(score: number) {\r\n let idx = 0;\r\n if (score > 50) idx = 1;\r\n if (score === 100) idx = 2;\r\n this._stepPassword = idx;\r\n }\r\n\r\n private passwordStrengthValidator(pass : string) {\r\n this._validatorsPasswordPass = [];\r\n let score = 0;\r\n\r\n this.validatorsPassword.forEach((key, value) => {\r\n this._validatorsPasswordPass.push({\r\n regex: `${value}`,\r\n validate: `${key.VALIDATE}` === String(RegExp(`${key.REGEX}`).test(pass)),\r\n percent: 100 / this.validatorsPassword.size\r\n });\r\n });\r\n\r\n this._validatorsPasswordPass.forEach((check) => {\r\n if (check.validate) {\r\n score += check.percent;\r\n }\r\n });\r\n\r\n return Math.trunc(score);\r\n }\r\n\r\n private onHandleReady() {\r\n const validate = this._validatorsPasswordPass?.find(({ validate }) => { return !validate; });\r\n this.onHandleSubmitReady.next(!validate);\r\n }\r\n\r\n private onHandleChages() {\r\n const password = this.passwordToCheck;\r\n this.handleColor(this.passwordStrengthValidator(password as string));\r\n this.onHandleReady();\r\n }\r\n\r\n private onHandlePasswordStrengthKeys(params: MonkeyEcxConfig) {\r\n const ps = params?.program?.screens?.login?.passwordStrength;\r\n if (ps) {\r\n Object.entries(ps)\r\n .forEach(([key, value]) => {\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\r\n this.validatorsPassword.set(key, value);\r\n }\r\n });\r\n this.onHandleChages();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.configService.config().subscribe((_: MonkeyEcxConfig) => {\r\n this.onHandlePasswordStrengthKeys(_);\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.onHandleChages();\r\n }\r\n}\r\n","<ng-container *ngIf=\"_validatorsPasswordPass?.length\">\r\n <div id=\"strength\" class=\"d-flex full-width flex-column justify-content-center align-items-center\"\r\n #strength>\r\n <div id=\"strengthBar\" class=\"strength-bar d-flex full-width flex-row\">\r\n <div class=\"d-flex full-width align-items-center\">\r\n <div class=\"bar-label\">\r\n <small>{{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TITLE' | translate }}</small>\r\n </div>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.error]=\"_stepPassword === 0\" [class.warning]=\"_stepPassword === 1\"\r\n [class.success]=\"_stepPassword === 2\">\r\n </div>\r\n <ng-container *ngIf=\"_stepPassword === 0\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.warning]=\"_stepPassword === 1\"\r\n [class.success]=\"_stepPassword === 2\"></div>\r\n <ng-container *ngIf=\"_stepPassword === 1\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.success]=\"_stepPassword === 2\"></div>\r\n <ng-container *ngIf=\"_stepPassword === 2\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"callbacks mt-2 row\">\r\n <div class=\"col-sm-6 mt-2 d-flex justify-content-start\"\r\n *ngFor=\"let validators of _validatorsPasswordPass\">\r\n <monkey-icon *ngIf=\"validators.validate\" icon=\"check-circle-20\"></monkey-icon>\r\n <monkey-icon *ngIf=\"!validators.validate\" icon=\"error-20\"></monkey-icon>\r\n <span class=\"ml-2\">\r\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TYPES.' + validators.regex | translate }}\r\n </span>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<ng-template #stepPasswordLabel>\r\n <div class=\"name-point mt-1\" [class.error]=\"_stepPassword === 0\"\r\n [class.warning]=\"_stepPassword === 1\" [class.success]=\"_stepPassword === 2\">\r\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.LABELS.' + _stepPassword | translate }}\r\n </div>\r\n</ng-template>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MonkeyEcxDirectivesModule, MonkeyEcxPipesModule } from 'monkey-front-core';\r\nimport { MonkeyButtonModule, MonkeyInputModule, MonkeyIconModule } from 'monkey-style-guide';\r\nimport { MECXPasswordStrengthComponent } from './password-strength.component';\r\n\r\n@NgModule({\r\n declarations: [MECXPasswordStrengthComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyEcxPipesModule,\r\n MonkeyEcxDirectivesModule,\r\n MonkeyButtonModule,\r\n MonkeyInputModule,\r\n MonkeyIconModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [MECXPasswordStrengthComponent]\r\n})\r\nexport class MECXPasswordStrengthModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n NavigationCancel,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationStart,\r\n Router\r\n} from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MECXProgressBarService {\r\n private visible: BehaviorSubject<any> = new BehaviorSubject(false);\r\n\r\n constructor(private router: Router) {\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n })\r\n )\r\n .subscribe(() => {\r\n this.show();\r\n });\r\n\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return (\r\n event instanceof NavigationEnd ||\r\n event instanceof NavigationError ||\r\n event instanceof NavigationCancel\r\n );\r\n })\r\n )\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n\r\n show() {\r\n this.visible.next(true);\r\n }\r\n\r\n hide() {\r\n this.visible.next(false);\r\n }\r\n\r\n visibleConfig(): Observable<any> {\r\n return this.visible.asObservable();\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseComponent } from '../../base/base-component';\r\nimport { MECXProgressBarService } from './progress-bar.service';\r\n\r\n@Component({\r\n selector: 'mecx-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXProgressBarComponent extends BaseComponent implements OnInit, OnDestroy {\r\n visible: boolean = false;\r\n\r\n constructor(private progressBarService: MECXProgressBarService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.progressBarService\r\n .visibleConfig()\r\n .pipe(takeUntil(this.__unsubscribeAll))\r\n .subscribe((visible: boolean) => {\r\n this.visible = visible;\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"visible\">\r\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\r\n</ng-container>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MECXProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [MECXProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [MECXProgressBarComponent]\r\n})\r\nexport class MECXProgressBarModule {}\r\n","/*\r\n * Public API Surface of monkey-front-components\r\n */\r\n\r\nexport * from './lib/components';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Validators_","Validators"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monkey-front-components.mjs","sources":["../../../projects/monkey-front-components/src/lib/components/base/base-component.ts","../../../projects/monkey-front-components/src/lib/components/base/base-validators.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic-array.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic-directive.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.html","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.html","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-components/src/public-api.ts","../../../projects/monkey-front-components/src/monkey-front-components.ts"],"sourcesContent":["/* eslint-disable max-len */\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { OnDestroy, Directive } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport {\n MonkeyEcxCommonsService,\n MonkeyEcxErrorResponse,\n MonkeyEcxPaginationOptions,\n MonkeyEcxScrollOptions,\n MonkeyEcxSupportOptions,\n MonkeyEcxTranslateOptions,\n ValidateUtils\n} from 'monkey-front-core';\n\n@Directive({\n selector: '[baseComponent]'\n})\nexport abstract class BaseComponent implements OnDestroy {\n __monkeyecxFormErrors: any | any[];\n\n __unsubscribeAll: Subject<any>;\n\n __paginationOptions: MonkeyEcxPaginationOptions | null = null;\n\n __i18n: any;\n\n __isMobile = this.isMobile();\n\n __locales = ['pt-BR', 'es-CL'];\n\n private paginationFunc: any;\n\n protected constructor() {\n this.__unsubscribeAll = new Subject();\n }\n\n private isMobile() {\n const isMobileWidth = (window.screen.width <= 640) ||\n (window.matchMedia &&\n window.matchMedia('only screen and (max-width: 640px)').matches\n );\n return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile/i.test(\n navigator.userAgent\n )) || isMobileWidth;\n }\n\n private handlePagination(create = true) {\n const { __paginationOptions } = this;\n\n if (__paginationOptions) {\n const { mainElement, service } = __paginationOptions;\n\n const element = document.getElementById(mainElement);\n\n if (element) {\n element.scroll = null;\n element.onscroll = null;\n\n if (create) {\n element.removeEventListener('scroll', (element as any).eventListeners('scroll'));\n element.removeEventListener('scroll', (element as any).eventListeners('scroll')[0]);\n element.addEventListener('scroll', () => {\n const { scrollTop, scrollHeight, offsetHeight } = element;\n const contentHeight = scrollHeight - offsetHeight;\n\n if (contentHeight <= scrollTop) {\n service.doPagination();\n }\n });\n }\n }\n }\n }\n\n private handleSupport(supportControls: MonkeyEcxSupportOptions) {\n const { service, show } = supportControls;\n const method = show ? 'show' : 'hide';\n service[method.toLowerCase()]();\n }\n\n private handleTranslate(translateOptions: MonkeyEcxTranslateOptions) {\n const { service } = translateOptions;\n service.__oni18nDataChanged$\n .pipe(takeUntil(this.__unsubscribeAll))\n .subscribe(() => {\n const data = service.__i18n;\n if (data) {\n this.__i18n = data;\n }\n });\n }\n\n private handleViewScroll(options: MonkeyEcxScrollOptions) {\n const { elementId, service } = options;\n\n if (elementId === service?.__savedState?.scrollElementId) {\n this.goScroll(elementId);\n\n service.__savedState.scrollElementId = null;\n }\n }\n\n private getErrorFirstMessageTranslated(formControl: AbstractControl | null = null) {\n if (formControl?.hasError('required')) return 'FIELD-REQUIRED';\n if (formControl?.hasError('invalid')) return 'FIELD-INVALID';\n if (formControl?.hasError('email')) return 'INVALID-EMAIL';\n if (formControl?.hasError('minlength')) return 'MIN-LENGTH';\n if (formControl?.hasError('maxlength')) return 'MAX-LENGTH';\n if (formControl?.hasError('max')) return 'MAX';\n if (formControl?.hasError('min')) return 'MIN';\n if (formControl?.hasError('passwordsNotMatching')) return 'MATCH-PASSWORD';\n if (formControl?.hasError('invalidDate')) return 'INVALID-DATE';\n if (formControl?.hasError('invalidTrue')) return 'INVALID-TRUE';\n if (formControl?.hasError('invalidCpfCnpj')) return 'INVALID-DOCUMENT';\n if (formControl?.hasError('invalidZipCode')) return 'INVALID-ZIPCODE';\n if (formControl?.hasError('invalidCombo')) return 'INVALID-COMBO';\n if (formControl?.hasError('invalidUrl')) return 'INVALID-URL';\n if (formControl?.hasError('invalidUnlockRegister')) { return 'INVALID-UNLOCK-REGISTER'; }\n if (formControl?.hasError('dateStartMustBeLessThanAnd')) {\n return 'DATE-START-MUST-BE-LESS-THAN-AND';\n }\n if (formControl?.hasError('dateEndMustBeGreaterThanStart')) {\n return 'DATE-END-MUST-BE-GREATER-THAN-SART';\n }\n if (formControl?.hasError('phone')) return 'INVALID-PHONE';\n\n return 'FIELD-INVALID';\n }\n\n private getErrorLastMessageNotTranslated(formControl: AbstractControl | null = null) {\n if (formControl?.hasError('minlength')) {\n return `${formControl?.getError('minlength').requiredLength} caracteres.`;\n }\n if (formControl?.hasError('maxlength')) {\n return `${formControl?.getError('maxlength').requiredLength} caracteres.`;\n }\n if (formControl?.hasError('max')) { return `${formControl?.getError('max').max}`; }\n if (formControl?.hasError('min')) { return `${formControl?.getError('min').min}`; }\n\n return '';\n }\n\n public validateFormWithTranslate(f: FormGroup, index?: number): boolean {\n const formErrors: any = f.value;\n\n if (f.status === 'VALID') return true;\n\n if (!formErrors) return true;\n Object.entries(formErrors).forEach(([key, value]) => {\n const control = f.get(key);\n formErrors[key] = '';\n if (control && !control.valid) {\n const msg = {\n first: `ERRORS.${this.getErrorFirstMessageTranslated(f.get(key))}`,\n last: this.getErrorLastMessageNotTranslated(f.get(key))\n };\n formErrors[key] = msg;\n }\n });\n\n if (MonkeyUtils.persistNullEmptyUndefined(index)) { this.__monkeyecxFormErrors[index || 0] = formErrors; } else {\n this.__monkeyecxFormErrors = formErrors;\n }\n\n return false;\n }\n\n public copyToClipboard(val: string) {\n const selBox = document.createElement('textarea');\n selBox.style.position = 'fixed';\n selBox.style.left = '0';\n selBox.style.top = '0';\n selBox.style.opacity = '0';\n selBox.value = val;\n document.body.appendChild(selBox);\n selBox.focus();\n selBox.select();\n document.execCommand('copy');\n document.body.removeChild(selBox);\n }\n\n public validateForm(f: FormGroup, index?: number, alias?: string): boolean {\n const formErrors: any = f.value;\n if (f.status === 'VALID') return true;\n\n if (!formErrors) return true;\n Object.entries(formErrors).forEach(([key, value]) => {\n const control = f.get(key);\n formErrors[key] = '';\n if (control && !control.valid) {\n const msg = {\n firstMessage: `ERRORS.${this.getErrorFirstMessageTranslated(\n f.get(key)\n )}`,\n lastMessage: this.getErrorLastMessageNotTranslated(f.get(key))\n };\n formErrors[key] = msg;\n }\n });\n\n if (MonkeyUtils.persistNullEmptyUndefined(index)) {\n this.__monkeyecxFormErrors[index || 0] = formErrors;\n } else {\n let obj: any;\n\n if (alias) {\n obj = {\n [alias]: {\n ...formErrors\n }\n };\n } else {\n obj = formErrors;\n }\n\n this.__monkeyecxFormErrors = {\n ...this.__monkeyecxFormErrors,\n ...obj\n };\n }\n f.markAllAsTouched();\n return false;\n }\n\n public clearAllServiceData(clearData: boolean) {\n const context = this;\n Object.values(context).forEach((ctx: any) => {\n if (ctx instanceof MonkeyEcxCommonsService) {\n ctx.clear(clearData);\n }\n });\n }\n\n public ngOnInit(args: {\n paginationOptions?: MonkeyEcxPaginationOptions;\n supportControls?: MonkeyEcxSupportOptions;\n scrollOptions?: MonkeyEcxScrollOptions;\n translateOptions?: MonkeyEcxTranslateOptions;\n }) {\n if (args?.paginationOptions) {\n this.__paginationOptions = args?.paginationOptions;\n this.handlePagination();\n }\n if (args?.supportControls) {\n this.handleSupport(args?.supportControls);\n }\n if (args?.translateOptions) {\n this.handleTranslate(args?.translateOptions);\n }\n if (args?.scrollOptions) {\n this.handleViewScroll(args.scrollOptions);\n }\n }\n\n public ngOnDestroy(clearData: boolean = true) {\n this.__unsubscribeAll.next();\n this.__unsubscribeAll.complete();\n this.clearAllServiceData(clearData);\n this.handlePagination(false);\n }\n\n public handleErrorFromServices(error: MonkeyEcxErrorResponse, f: FormGroup) {\n this.__monkeyecxFormErrors = null;\n if (error.type === 'Parameter_Error') {\n Object.entries(f.value).forEach(([key, value]) => {\n error.notifications.forEach((_: any) => {\n const field = _.split(':')[0];\n const description = _.split(':')[1];\n if (field === key) {\n const msg = {\n firstMessage: '',\n lastMessage: description\n };\n this.__monkeyecxFormErrors = {\n ...this.__monkeyecxFormErrors,\n [key]: msg\n };\n f.controls[key].setErrors({\n incorrect: true\n });\n }\n });\n });\n }\n\n f.markAllAsTouched();\n }\n\n public goBack() {\n window.history.back();\n }\n\n public goScroll(id: string) {\n const element = document.getElementById(id);\n if (element) element.scrollIntoView();\n }\n\n public getEmbeddedData(data: any, field: string): any[] | any {\n const { _embedded } = data;\n return _embedded ? _embedded[field] : null;\n }\n\n public openWindow(url: string) {\n window.open(`${url}`, '_blank');\n }\n\n public fillI18n(data: any) {\n this.__i18n = data;\n }\n\n public getCountryPrefix(country: string) {\n return {\n br: 55,\n cl: 56\n }[country];\n }\n\n public getCountryCurrencyChartFormat(country: string) {\n return {\n br: 'R$ #,###,##0.00',\n cl: 'CLP #,###,##0'\n }[country];\n }\n\n public getCountryValidators(country: string) {\n return {\n br: {\n governmentId: ValidateUtils.DocumentValidator\n },\n cl: {\n governmentId: ValidateUtils.DocumentRutValidator\n }\n }[country];\n }\n}\n","import { Validators as Validators_ } from '@angular/forms';\r\nimport { Validators } from 'monkey-front-core';\r\n\r\nexport const validators: any = {\r\n required: Validators_.required,\r\n email: Validators.email,\r\n governmentId: Validators.documentBR,\r\n governmentIdRut: Validators.documentCL,\r\n documentBR: Validators.documentBR,\r\n documentCL: Validators.documentCL,\r\n date: Validators.date,\r\n zipCode: Validators.zipCode,\r\n minLength: (param: number) => {\r\n return Validators_.minLength(param);\r\n },\r\n maxLength: (param: number) => {\r\n return Validators_.maxLength(param);\r\n }\r\n};\r\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\r\nimport { BaseComponent } from './base-component';\r\nimport { validators } from './base-validators';\r\n\r\n@Directive({\r\n selector: '[baseDynamic]'\r\n})\r\nexport abstract class BaseDynamic extends BaseComponent implements OnInit, OnChanges {\r\n @Input() onHandleSubmit = new EventEmitter<any>();\r\n\r\n @Input() onHandleUpdateForm = new EventEmitter<any>();\r\n\r\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() self: any;\r\n\r\n @Input() fields: MECXFieldConfig[] = [];\r\n\r\n @Input() data: any;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _form: FormGroup | null = null;\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n }\r\n\r\n private createControl() {\r\n const { fields } = this;\r\n if (!fields) return null;\r\n // eslint-disable-next-line object-curly-newline\r\n const group = this.fb.group({});\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled } = field;\r\n let { value } = field;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n group.addControl(name as string, control);\r\n });\r\n return group;\r\n }\r\n\r\n private bindValidations(validations: MECXFieldConfigValidator[]) {\r\n if (validations.length > 0) {\r\n const validList: any[] = [];\r\n validations.forEach((valid: MECXFieldConfigValidator) => {\r\n const validated = valid.param\r\n ? validators[valid.name](valid.param)\r\n : validators[valid.name];\r\n validList.push(validated);\r\n });\r\n return Validators.compose(validList);\r\n }\r\n return null;\r\n }\r\n\r\n public fillValues() {\r\n const { data } = this;\r\n if (!data || !this._form) return;\r\n Object.entries(data).forEach(([key, value]) => {\r\n if (MonkeyUtils.persistNullEmptyUndefined(value) && this._form?.controls[key]) {\r\n this._form?.controls[key]?.setValue(value);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this._form = this.createControl();\r\n this.fillValues();\r\n\r\n this.onHandleUpdateForm.subscribe(() => {\r\n this.fillValues();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this._form) {\r\n this._form = this.createControl();\r\n }\r\n this.fillValues();\r\n }\r\n}\r\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\r\nimport { BaseComponent } from './base-component';\r\nimport { validators } from './base-validators';\r\n\r\n@Directive({\r\n selector: '[baseDynamicArray]'\r\n})\r\nexport abstract class BaseDynamicArray extends BaseComponent implements OnInit, OnChanges {\r\n @Input() onHandleSubmit = new EventEmitter<any>();\r\n\r\n @Input() onHandleUpdateForm = new EventEmitter<any>();\r\n\r\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() self: any;\r\n\r\n @Input() fields: MECXFieldConfig[] = [];\r\n\r\n @Input() data: any;\r\n\r\n @Input() qtd: number = 1;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n _plusValidations: any[] = [];\r\n\r\n private changesUnsubscribe = new Subject();\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n }\r\n\r\n private handleInternalPlusValidation(\r\n mainField: any,\r\n data: any\r\n ) {\r\n const { operator, field, value } = mainField;\r\n const validators: any = {\r\n e: (val1: any, val2: string) => { return val1 === val2; },\r\n lt: (val1: any, val2: string) => { return val1 < val2; },\r\n gt: (val1: any, val2: string) => { return val1 > val2; }\r\n };\r\n\r\n return validators[operator](data?.[field] || data, value);\r\n }\r\n\r\n private makeInternalPlusValidation(\r\n data: any,\r\n sourceField: string,\r\n settings: any,\r\n rowIndex: number\r\n ) {\r\n const changeFields = (show: boolean) => {\r\n const saved = [...this.fields];\r\n\r\n saved.map((val) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (val.name === sourceField) {\r\n this._plusValidations[rowIndex] = {\r\n [sourceField]: {\r\n ...valSaved,\r\n alwaysShow: show\r\n }\r\n };\r\n this.createOneControl(val.name, this.formValues?.controls[rowIndex], show);\r\n } else {\r\n this._plusValidations[rowIndex] = {\r\n ...valSaved\r\n };\r\n }\r\n return null;\r\n });\r\n };\r\n\r\n const validated = this.handleInternalPlusValidation(settings, data);\r\n changeFields(validated);\r\n }\r\n\r\n private createOneControl(fieldName: string, ctrl: any, create = true) {\r\n const { fields } = this;\r\n if (!fields) return;\r\n\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled } = field;\r\n if (name !== fieldName) return;\r\n let { value } = field;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n if (create) {\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n ctrl.addControl(name, control);\r\n } else {\r\n ctrl.removeControl(name);\r\n }\r\n });\r\n }\r\n\r\n private createControl(data?: any) {\r\n const { fields } = this;\r\n if (!fields) return null;\r\n // eslint-disable-next-line object-curly-newline\r\n const group = this.fb.group({});\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled, alwaysShow } = field;\r\n let { value } = field;\r\n if (field.alwaysShowPlusValidation) {\r\n if (!this.handleInternalPlusValidation(field.alwaysShowPlusValidation, data)) return;\r\n } else if (!alwaysShow) return;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n group.addControl(name as string, control);\r\n });\r\n\r\n return group;\r\n }\r\n\r\n private bindValidations(validations: MECXFieldConfigValidator[]) {\r\n if (validations.length > 0) {\r\n const validList: any[] = [];\r\n validations.forEach((valid: MECXFieldConfigValidator) => {\r\n const validated = valid.param\r\n ? validators[valid.name](valid.param)\r\n : validators[valid.name];\r\n validList.push(validated);\r\n });\r\n return Validators.compose(validList);\r\n }\r\n return null;\r\n }\r\n\r\n private buildForm(): FormGroup {\r\n const form = this.fb.group({\r\n fields: this.fb.array([])\r\n });\r\n\r\n form?.controls.fields?.valueChanges.subscribe((_) => {\r\n this.watchForChanges();\r\n });\r\n\r\n return form;\r\n }\r\n\r\n private watchForChanges() {\r\n const { fields, changesUnsubscribe } = this;\r\n changesUnsubscribe.next();\r\n\r\n this.formValues?.controls?.map((control: any, index: number) => {\r\n fields.forEach((fieldConfig: MECXFieldConfig) => {\r\n const { name, alwaysShowPlusValidation } = fieldConfig;\r\n if (!alwaysShowPlusValidation) return;\r\n const { field } = alwaysShowPlusValidation;\r\n if (field) {\r\n control.controls[field]?.valueChanges.pipe(\r\n takeUntil(changesUnsubscribe)).subscribe((_: any) => {\r\n this.makeInternalPlusValidation(\r\n _,\r\n name as string,\r\n alwaysShowPlusValidation,\r\n index\r\n );\r\n });\r\n }\r\n });\r\n return null;\r\n });\r\n }\r\n\r\n public formBase = () => {\r\n // return this.fb.group(this.createControl());\r\n return this.createControl();\r\n };\r\n\r\n public get formValues() {\r\n return this._form ? (this._form.get('fields') as FormArray) : null;\r\n }\r\n\r\n public fillValues() {\r\n const { data, qtd } = this;\r\n if ((!this._form) && qtd) return;\r\n if (qtd > 0) {\r\n Array<any>(qtd)\r\n .fill(null)\r\n .map((_, index) => {\r\n let form = this.createControl();\r\n if (data && data[index]) {\r\n form = this.createControl(data[index]);\r\n const handledData = data[index];\r\n Object.entries(handledData).forEach(([key, value]) => {\r\n if (MonkeyUtils.persistNullEmptyUndefined(value) && form?.controls[key]) {\r\n form?.controls[key].setValue(value);\r\n }\r\n });\r\n }\r\n this.formValues?.push(form as any);\r\n\r\n return null;\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this._form = this.buildForm();\r\n this.fillValues();\r\n\r\n this.onHandleUpdateForm.subscribe(() => {\r\n this.fillValues();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this._form) {\r\n this._form = this.buildForm();\r\n }\r\n this.fillValues();\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFileUploadComponent {\r\n @Input() _field: MECXFieldConfig;\r\n\r\n @Input() _form: FormGroup;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n _function: Function = (file: any, callback?: Function) => {\r\n if (this._form?.disabled) return;\r\n if (!this._field?.functions?.onHandleUpload) {\r\n console.error('onHandleUpload not declared');\r\n return;\r\n }\r\n const { func, type } = this._field?.functions?.onHandleUpload;\r\n if (!func || !this.self[func]) {\r\n console.error('onHandleUpload not declared');\r\n return;\r\n }\r\n this.self[func](file, type, callback);\r\n };\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<monkey-file-upload\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [icon]=\"_field?.icon\" [formControl]=\"_form.controls[_field?.name]\"\r\n [placeholder]=\"_field?.placeholder | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\r\n [maxSize]=\"_field?.maxSize || 5242880\" [fileUpload]=\"_function\"\r\n [maxSizeErrorMessage]=\"'FIELD.FILE.MAX-FILE' | translate\"\r\n [allowedExtensionErrorMessage]=\"'FIELD.FILE.ALLOWED-EXTENSION' | translate\"\r\n [allowedExtensions]=\"_field?.allowedExtensions || []\" *ngIf=\"_field\">\r\n</monkey-file-upload>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicButtonComponent implements OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onClick() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field) return;\r\n const { name, value } = _field;\r\n const func = _field?.functions?.onClick;\r\n if (func) {\r\n self[func]({\r\n name,\r\n value,\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-button [icon]=\"_field?.icon\" [type]=\"_field?.type\" [color]=\"_field?.color\"\r\n (click)=\"onClick()\">\r\n {{ _field?.label | translate }}\r\n</monkey-button>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MonkeyInputComponent } from 'monkey-style-guide';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-input',\r\n templateUrl: './input.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicInputComponent implements OnInit, OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @ViewChild('inputElement', {\r\n static: true\r\n }) inputElement: MonkeyInputComponent | null = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-input\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\r\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\r\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\r\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\r\n [maxDateToday]=\"_field?.maxDateToday\">\r\n</monkey-input>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MonkeyInputComponent } from 'monkey-style-guide';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-input-phone',\r\n templateUrl: './input-phone.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicInputPhoneComponent implements OnInit, OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @ViewChild('inputElement', {\r\n static: true\r\n }) inputElement: MonkeyInputComponent | null = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-input-phone [name]=\"_field?.name\" [label]=\"_field?.label | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\"\r\n [placeholder]=\"_field?.placeholder | translate\" [icon]=\"_field?.icon\"\r\n (onChange)=\"onChange($event)\" [internationalNumber]=\"_field?.internationalNumber\"\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [maxLength]=\"_field?.maxLength\" [formControl]=\"_form.controls[_field?.name]\" #inputElement>\r\n</monkey-input-phone>","import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-radio',\r\n templateUrl: './radio.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicRadioComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n}\r\n","<monkey-radiobutton\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\">\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-radiobutton>","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n EventEmitter,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-select',\r\n templateUrl: './select.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicSelectComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n _onHandleOptions = new EventEmitter<any>();\r\n\r\n onHandleGenericLoad() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\r\n const { name } = _field;\r\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\r\n const { func, url } = _field?.functions?.onHandleGenericLoad;\r\n if (!func || !self[func]) {\r\n console.error('onHandleGenericLoad not declared');\r\n return;\r\n }\r\n _form?.disable();\r\n self[func]({\r\n name,\r\n url,\r\n form: _form,\r\n callback: (data: any[]) => {\r\n if (this._field) {\r\n this._field.value = data;\r\n }\r\n this._form?.enable();\r\n this._onHandleOptions.next(null);\r\n }\r\n });\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form?.get(this._field?.name as string),\r\n form: _form,\r\n value: _field.value\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-select\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\r\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\r\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\r\n [placeholder]=\"_field?.placeholder | translate\">\r\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\r\n enableClick=\"false\">\r\n </monkey-option>\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-select>","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n EventEmitter,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-select-search',\r\n templateUrl: './select-search.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicSelectSearchComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n _onHandleOptions = new EventEmitter<any>();\r\n\r\n onHandleGenericLoad() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\r\n const { name } = _field;\r\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\r\n const { func, url } = _field?.functions?.onHandleGenericLoad;\r\n if (!func || !self[func]) {\r\n console.error('onHandleGenericLoad not declared');\r\n return;\r\n }\r\n _form?.disable();\r\n self[func]({\r\n name,\r\n url,\r\n form: _form,\r\n callback: (data: any[]) => {\r\n if (this._field) {\r\n this._field.value = data;\r\n }\r\n this._form?.enable();\r\n this._onHandleOptions.next(null);\r\n }\r\n });\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form,\r\n value: _field.value\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-select-search\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\r\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\r\n [fieldToCompare]=\"_field?.fieldToCompare\"\r\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\r\n [placeholder]=\"_field?.placeholder | translate\">\r\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\r\n enableClick=\"false\">\r\n </monkey-option>\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-select-search>","import {\r\n ChangeDetectorRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../interfaces';\r\nimport { MECXDynamicButtonComponent } from './button';\r\nimport { MECXDynamicFileUploadComponent } from './file-upload';\r\nimport { MECXDynamicInputComponent } from './input';\r\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\r\nimport { MECXDynamicRadioComponent } from './radio';\r\nimport { MECXDynamicSelectComponent } from './select';\r\nimport { MECXDynamicSelectSearchComponent } from './select-search';\r\n\r\nconst componentMapper: any = {\r\n input: MECXDynamicInputComponent,\r\n 'input-phone': MECXDynamicInputPhoneComponent,\r\n radiobutton: MECXDynamicRadioComponent,\r\n select: MECXDynamicSelectComponent,\r\n 'select-search': MECXDynamicSelectSearchComponent,\r\n 'file-upload': MECXDynamicFileUploadComponent,\r\n button: MECXDynamicButtonComponent\r\n};\r\n\r\n@Directive({\r\n selector: '[MECXDynamic]'\r\n})\r\nexport class MECXDynamicDirective implements OnInit, OnChanges {\r\n @Input() field: MECXFieldConfig | null = null;\r\n\r\n @Input() form: FormGroup | null = null;\r\n\r\n @Input() formErrors: any;\r\n\r\n @Input() self: any;\r\n\r\n @Input() plusValidations: any;\r\n\r\n componentRef: any;\r\n\r\n constructor(private resolver: ComponentFactoryResolver, private container: ViewContainerRef,\r\n private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n private handleInternalPlusValidation() {\r\n if (!this.field?.alwaysShowPlusValidation) return false;\r\n const { operator, value, field } = this.field?.alwaysShowPlusValidation;\r\n const validators: any = {\r\n e: (val1: any, val2: string) => { return val1 === val2; },\r\n lt: (val1: any, val2: string) => { return val1 < val2; },\r\n gt: (val1: any, val2: string) => { return val1 > val2; }\r\n };\r\n const data = this.form?.controls[field as string]?.value;\r\n\r\n return validators[operator as string](data, value);\r\n }\r\n\r\n private buildComponent() {\r\n if (this.componentRef?.instance) return;\r\n const factory = this.resolver.resolveComponentFactory(\r\n componentMapper[this.field?.fieldType as string]\r\n );\r\n this.componentRef = this.container.createComponent(factory);\r\n this.componentRef.instance._field = this.field;\r\n this.componentRef.instance._form = this.form;\r\n // eslint-disable-next-line object-curly-newline\r\n this.componentRef.instance._formErrors = this.formErrors || {};\r\n this.componentRef.instance.self = this.self;\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.field?.alwaysShow && !this.handleInternalPlusValidation()) return;\r\n this.buildComponent();\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.plusValidations && this.plusValidations[this.field?.name as string]) {\r\n if (!this.field?.alwaysShow && this.plusValidations[this.field?.name as string].alwaysShow) {\r\n setTimeout(() => {\r\n this.buildComponent();\r\n this.cdr.detectChanges();\r\n }, 1);\r\n }\r\n if (this.componentRef?.instance &&\r\n !this.plusValidations[this.field?.name as string].alwaysShow) {\r\n this.componentRef.destroy();\r\n this.componentRef = null;\r\n this.form?.controls[this.field?.name as string]?.setValue(null);\r\n this.form?.controls[this.field?.name as string]?.clearValidators();\r\n }\r\n }\r\n if (!this.componentRef?.instance) return;\r\n this.componentRef.instance._formErrors = this.formErrors || {\r\n };\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDynamic } from '../../base/base-dynamic';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-form',\r\n templateUrl: './dynamic-form.component.html',\r\n styles: [],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFormComponent extends BaseDynamic implements OnInit, OnDestroy {\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\r\n super(fb);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\r\n this.onSubmit(func);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n onSubmit(callback: Function) {\r\n const { _form } = this;\r\n // eslint-disable-next-line object-curly-newline\r\n this.__monkeyecxFormErrors = {};\r\n\r\n const isValid = this.validateForm(_form as any);\r\n this.cdr.detectChanges();\r\n\r\n this.onHandleSubmitFormReady.next({\r\n validate: {\r\n isValid\r\n },\r\n callback,\r\n form: _form\r\n });\r\n }\r\n}\r\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\r\n <div class=\"row\">\r\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"_form\" [self]=\"self\"\r\n [formErrors]=\"__monkeyecxFormErrors\" [style.display]=\"'none'\">\r\n </div>\r\n </div>\r\n</form>","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDynamicArray } from '../../base';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-form-array',\r\n templateUrl: './dynamic-form-array.component.html',\r\n styleUrls: ['./dynamic-form-array.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFormArrayComponent extends BaseDynamicArray implements OnInit, OnDestroy {\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\r\n super(fb);\r\n this.__monkeyecxFormErrors = [];\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\r\n this.onSubmit(func);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n onSubmit(callback: Function) {\r\n const { _form } = this;\r\n // eslint-disable-next-line object-curly-newline\r\n this.__monkeyecxFormErrors = [];\r\n\r\n let validate = {\r\n isValid: false\r\n };\r\n let hasErrors: boolean = false;\r\n if (this.formValues) {\r\n this.__monkeyecxFormErrors = [this.formValues.length];\r\n this.formValues.controls.forEach((item: any, index: number) => {\r\n if (item instanceof FormGroup) {\r\n if (!this.validateForm(item, index)) {\r\n hasErrors = true;\r\n }\r\n }\r\n });\r\n }\r\n validate = {\r\n isValid: !hasErrors\r\n };\r\n\r\n this.cdr.detectChanges();\r\n\r\n this.onHandleSubmitFormReady.next({\r\n validate,\r\n callback,\r\n form: _form\r\n });\r\n }\r\n\r\n onHandleAdd() {\r\n this.formValues?.push(this.formBase() as any);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onHandleRemove(index: number) {\r\n this.formValues?.removeAt(index);\r\n this._plusValidations.splice(index, 1);\r\n }\r\n}\r\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\r\n <div formArrayName=\"fields\">\r\n <div *ngFor=\"let item of formValues.controls; let indForm=index\" [formGroupName]=\"indForm\">\r\n <monkey-button type=\"secondary\" color=\"error\" icon=\"close-20\" iconPosition=\"right\"\r\n [label]=\"'BUTTONS.REMOVE' | translate\" (click)=\"onHandleRemove(indForm)\"\r\n *ngIf=\"formValues.controls.length > 1 && !disabled\">\r\n </monkey-button>\r\n <div class=\"row mt-3\">\r\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"item\" [self]=\"self\"\r\n [formErrors]=\"__monkeyecxFormErrors[indForm]\"\r\n [plusValidations]=\"_plusValidations[indForm]\" [style.display]=\"'none'\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n<monkey-button type=\"secondary\" color=\"theme\" icon=\"more-20\" iconPosition=\"right\"\r\n [label]=\"'BUTTONS.ADD' | translate\" (click)=\"onHandleAdd()\" *ngIf=\"!disabled\">\r\n</monkey-button>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyButtonModule,\r\n MonkeyFileUploadModule,\r\n MonkeyInputModule,\r\n MonkeyInputPhoneModule,\r\n MonkeyOptionModule,\r\n MonkeyRadioButtonModule,\r\n MonkeySelectModule\r\n} from 'monkey-style-guide';\r\nimport { MECXDynamicButtonComponent } from './button';\r\nimport { MECXDynamicDirective } from './dynamic-directive';\r\nimport { MECXDynamicFileUploadComponent } from './file-upload';\r\nimport { MECXDynamicFormComponent, MECXDynamicFormArrayComponent } from './form';\r\nimport { MECXDynamicInputComponent } from './input';\r\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\r\nimport { MECXDynamicRadioComponent } from './radio';\r\nimport { MECXDynamicSelectComponent } from './select';\r\nimport { MECXDynamicSelectSearchComponent } from './select-search';\r\n\r\n@NgModule({\r\n declarations: [\r\n MECXDynamicButtonComponent,\r\n MECXDynamicFileUploadComponent,\r\n MECXDynamicFormComponent,\r\n MECXDynamicFormArrayComponent,\r\n MECXDynamicInputComponent,\r\n MECXDynamicInputPhoneComponent,\r\n MECXDynamicRadioComponent,\r\n MECXDynamicSelectComponent,\r\n MECXDynamicSelectSearchComponent,\r\n MECXDynamicDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyInputModule,\r\n MonkeySelectModule,\r\n MonkeyRadioButtonModule,\r\n MonkeyOptionModule,\r\n MonkeyFileUploadModule,\r\n MonkeyButtonModule,\r\n MonkeyInputPhoneModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [MECXDynamicDirective, MECXDynamicFormComponent, MECXDynamicFormArrayComponent],\r\n entryComponents: [MECXDynamicInputComponent]\r\n})\r\nexport class MECXDynamicModule {}\r\n","import { Component, Input, OnChanges, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\r\nimport { MonkeyEcxConfig, MonkeyEcxConfigService, MonkeyEcxUtils } from 'monkey-front-core';\r\nimport { PasswordStrength } from './password-strength';\r\n\r\n@Component({\r\n selector: 'mecx-password-strength',\r\n templateUrl: './password-strength.component.html',\r\n styleUrls: ['./password-strength.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXPasswordStrengthComponent implements OnChanges {\r\n @Input() passwordToCheck: string | null = null;\r\n\r\n @Output() onHandleSubmitReady = new EventEmitter<any>();\r\n\r\n _validatorsPasswordPass: Array<PasswordStrength> = [];\r\n\r\n _stepPassword = 0;\r\n\r\n private validatorsPassword = new Map();\r\n\r\n constructor(private configService: MonkeyEcxConfigService) {\r\n // not do\r\n }\r\n\r\n private handleColor(score: number) {\r\n let idx = 0;\r\n if (score > 50) idx = 1;\r\n if (score === 100) idx = 2;\r\n this._stepPassword = idx;\r\n }\r\n\r\n private passwordStrengthValidator(pass : string) {\r\n this._validatorsPasswordPass = [];\r\n let score = 0;\r\n\r\n this.validatorsPassword.forEach((key, value) => {\r\n this._validatorsPasswordPass.push({\r\n regex: `${value}`,\r\n validate: `${key.VALIDATE}` === String(RegExp(`${key.REGEX}`).test(pass)),\r\n percent: 100 / this.validatorsPassword.size\r\n });\r\n });\r\n\r\n this._validatorsPasswordPass.forEach((check) => {\r\n if (check.validate) {\r\n score += check.percent;\r\n }\r\n });\r\n\r\n return Math.trunc(score);\r\n }\r\n\r\n private onHandleReady() {\r\n const validate = this._validatorsPasswordPass?.find(({ validate }) => { return !validate; });\r\n this.onHandleSubmitReady.next(!validate);\r\n }\r\n\r\n private onHandleChages() {\r\n const password = this.passwordToCheck;\r\n this.handleColor(this.passwordStrengthValidator(password as string));\r\n this.onHandleReady();\r\n }\r\n\r\n private onHandlePasswordStrengthKeys(params: MonkeyEcxConfig) {\r\n const ps = params?.program?.screens?.login?.passwordStrength;\r\n if (ps) {\r\n Object.entries(ps)\r\n .forEach(([key, value]) => {\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\r\n this.validatorsPassword.set(key, value);\r\n }\r\n });\r\n this.onHandleChages();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.configService.config().subscribe((_: MonkeyEcxConfig) => {\r\n this.onHandlePasswordStrengthKeys(_);\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.onHandleChages();\r\n }\r\n}\r\n","<ng-container *ngIf=\"_validatorsPasswordPass?.length\">\r\n <div id=\"strength\" class=\"d-flex full-width flex-column justify-content-center align-items-center\"\r\n #strength>\r\n <div id=\"strengthBar\" class=\"strength-bar d-flex full-width flex-row\">\r\n <div class=\"d-flex full-width align-items-center\">\r\n <div class=\"bar-label\">\r\n <small>{{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TITLE' | translate }}</small>\r\n </div>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.error]=\"_stepPassword === 0\" [class.warning]=\"_stepPassword === 1\"\r\n [class.success]=\"_stepPassword === 2\">\r\n </div>\r\n <ng-container *ngIf=\"_stepPassword === 0\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.warning]=\"_stepPassword === 1\"\r\n [class.success]=\"_stepPassword === 2\"></div>\r\n <ng-container *ngIf=\"_stepPassword === 1\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.success]=\"_stepPassword === 2\"></div>\r\n <ng-container *ngIf=\"_stepPassword === 2\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"callbacks mt-2 row\">\r\n <div class=\"col-sm-6 mt-2 d-flex justify-content-start\"\r\n *ngFor=\"let validators of _validatorsPasswordPass\">\r\n <monkey-icon *ngIf=\"validators.validate\" icon=\"check-circle-20\"></monkey-icon>\r\n <monkey-icon *ngIf=\"!validators.validate\" icon=\"error-20\"></monkey-icon>\r\n <span class=\"ml-2\">\r\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TYPES.' + validators.regex | translate }}\r\n </span>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<ng-template #stepPasswordLabel>\r\n <div class=\"name-point mt-1\" [class.error]=\"_stepPassword === 0\"\r\n [class.warning]=\"_stepPassword === 1\" [class.success]=\"_stepPassword === 2\">\r\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.LABELS.' + _stepPassword | translate }}\r\n </div>\r\n</ng-template>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MonkeyEcxDirectivesModule, MonkeyEcxPipesModule } from 'monkey-front-core';\r\nimport { MonkeyButtonModule, MonkeyInputModule, MonkeyIconModule } from 'monkey-style-guide';\r\nimport { MECXPasswordStrengthComponent } from './password-strength.component';\r\n\r\n@NgModule({\r\n declarations: [MECXPasswordStrengthComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyEcxPipesModule,\r\n MonkeyEcxDirectivesModule,\r\n MonkeyButtonModule,\r\n MonkeyInputModule,\r\n MonkeyIconModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [MECXPasswordStrengthComponent]\r\n})\r\nexport class MECXPasswordStrengthModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n NavigationCancel,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationStart,\r\n Router\r\n} from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MECXProgressBarService {\r\n private visible: BehaviorSubject<any> = new BehaviorSubject(false);\r\n\r\n constructor(private router: Router) {\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n })\r\n )\r\n .subscribe(() => {\r\n this.show();\r\n });\r\n\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return (\r\n event instanceof NavigationEnd ||\r\n event instanceof NavigationError ||\r\n event instanceof NavigationCancel\r\n );\r\n })\r\n )\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n\r\n show() {\r\n this.visible.next(true);\r\n }\r\n\r\n hide() {\r\n this.visible.next(false);\r\n }\r\n\r\n visibleConfig(): Observable<any> {\r\n return this.visible.asObservable();\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseComponent } from '../../base/base-component';\r\nimport { MECXProgressBarService } from './progress-bar.service';\r\n\r\n@Component({\r\n selector: 'mecx-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXProgressBarComponent extends BaseComponent implements OnInit, OnDestroy {\r\n visible: boolean = false;\r\n\r\n constructor(private progressBarService: MECXProgressBarService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.progressBarService\r\n .visibleConfig()\r\n .pipe(takeUntil(this.__unsubscribeAll))\r\n .subscribe((visible: boolean) => {\r\n this.visible = visible;\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"visible\">\r\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\r\n</ng-container>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MECXProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [MECXProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [MECXProgressBarComponent]\r\n})\r\nexport class MECXProgressBarModule {}\r\n","/*\r\n * Public API Surface of monkey-front-components\r\n */\r\n\r\nexport * from './lib/components';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Validators_","Validators"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"monkey-front-components.mjs","sources":["../../../projects/monkey-front-components/src/lib/components/base/base-component.ts","../../../projects/monkey-front-components/src/lib/components/base/base-validators.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic-array.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic-directive.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.html","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.html","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-components/src/public-api.ts","../../../projects/monkey-front-components/src/monkey-front-components.ts"],"sourcesContent":["/* eslint-disable max-len */\r\nimport { AbstractControl, FormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { OnDestroy, Directive } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport {\r\n MonkeyEcxCommonsService,\r\n MonkeyEcxErrorResponse,\r\n MonkeyEcxPaginationOptions,\r\n MonkeyEcxScrollOptions,\r\n MonkeyEcxSupportOptions,\r\n MonkeyEcxTranslateOptions,\r\n ValidateUtils\r\n} from 'monkey-front-core';\r\n\r\n@Directive({\r\n selector: '[baseComponent]'\r\n})\r\nexport abstract class BaseComponent implements OnDestroy {\r\n __monkeyecxFormErrors: any | any[];\r\n\r\n __unsubscribeAll: Subject<any>;\r\n\r\n __paginationOptions: MonkeyEcxPaginationOptions | null = null;\r\n\r\n __i18n: any;\r\n\r\n __isMobile = this.isMobile();\r\n\r\n __locales = ['pt-BR', 'es-CL'];\r\n\r\n private paginationFunc: any;\r\n\r\n protected constructor() {\r\n this.__unsubscribeAll = new Subject();\r\n }\r\n\r\n private isMobile() {\r\n const isMobileWidth = (window.screen.width <= 640) ||\r\n (window.matchMedia &&\r\n window.matchMedia('only screen and (max-width: 640px)').matches\r\n );\r\n return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile/i.test(\r\n navigator.userAgent\r\n )) || isMobileWidth;\r\n }\r\n\r\n private handlePagination(create = true) {\r\n const { __paginationOptions } = this;\r\n\r\n if (__paginationOptions) {\r\n const { mainElement, service } = __paginationOptions;\r\n\r\n const element = document.getElementById(mainElement);\r\n\r\n if (element) {\r\n element.scroll = null;\r\n element.onscroll = null;\r\n\r\n if (create) {\r\n element.removeEventListener('scroll', (element as any).eventListeners('scroll'));\r\n element.removeEventListener('scroll', (element as any).eventListeners('scroll')[0]);\r\n element.addEventListener('scroll', () => {\r\n const { scrollTop, scrollHeight, offsetHeight } = element;\r\n const contentHeight = scrollHeight - offsetHeight;\r\n\r\n if (contentHeight <= scrollTop) {\r\n service.doPagination();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n private handleSupport(supportControls: MonkeyEcxSupportOptions) {\r\n const { service, show } = supportControls;\r\n const method = show ? 'show' : 'hide';\r\n service[method.toLowerCase()]();\r\n }\r\n\r\n private handleTranslate(translateOptions: MonkeyEcxTranslateOptions) {\r\n const { service } = translateOptions;\r\n service.__oni18nDataChanged$\r\n .pipe(takeUntil(this.__unsubscribeAll))\r\n .subscribe(() => {\r\n const data = service.__i18n;\r\n if (data) {\r\n this.__i18n = data;\r\n }\r\n });\r\n }\r\n\r\n private handleViewScroll(options: MonkeyEcxScrollOptions) {\r\n const { elementId, service } = options;\r\n\r\n if (elementId === service?.__savedState?.scrollElementId) {\r\n this.goScroll(elementId);\r\n\r\n service.__savedState.scrollElementId = null;\r\n }\r\n }\r\n\r\n private getErrorFirstMessageTranslated(formControl: AbstractControl | null = null) {\r\n if (formControl?.hasError('required')) return 'FIELD-REQUIRED';\r\n if (formControl?.hasError('invalid')) return 'FIELD-INVALID';\r\n if (formControl?.hasError('email')) return 'INVALID-EMAIL';\r\n if (formControl?.hasError('minlength')) return 'MIN-LENGTH';\r\n if (formControl?.hasError('maxlength')) return 'MAX-LENGTH';\r\n if (formControl?.hasError('max')) return 'MAX';\r\n if (formControl?.hasError('min')) return 'MIN';\r\n if (formControl?.hasError('passwordsNotMatching')) return 'MATCH-PASSWORD';\r\n if (formControl?.hasError('invalidDate')) return 'INVALID-DATE';\r\n if (formControl?.hasError('invalidTrue')) return 'INVALID-TRUE';\r\n if (formControl?.hasError('invalidCpfCnpj')) return 'INVALID-DOCUMENT';\r\n if (formControl?.hasError('invalidZipCode')) return 'INVALID-ZIPCODE';\r\n if (formControl?.hasError('invalidCombo')) return 'INVALID-COMBO';\r\n if (formControl?.hasError('invalidUrl')) return 'INVALID-URL';\r\n if (formControl?.hasError('invalidUnlockRegister')) { return 'INVALID-UNLOCK-REGISTER'; }\r\n if (formControl?.hasError('dateStartMustBeLessThanAnd')) {\r\n return 'DATE-START-MUST-BE-LESS-THAN-AND';\r\n }\r\n if (formControl?.hasError('dateEndMustBeGreaterThanStart')) {\r\n return 'DATE-END-MUST-BE-GREATER-THAN-SART';\r\n }\r\n if (formControl?.hasError('phone')) return 'INVALID-PHONE';\r\n\r\n return 'FIELD-INVALID';\r\n }\r\n\r\n private getErrorLastMessageNotTranslated(formControl: AbstractControl | null = null) {\r\n if (formControl?.hasError('minlength')) {\r\n return `${formControl?.getError('minlength').requiredLength} caracteres.`;\r\n }\r\n if (formControl?.hasError('maxlength')) {\r\n return `${formControl?.getError('maxlength').requiredLength} caracteres.`;\r\n }\r\n if (formControl?.hasError('max')) { return `${formControl?.getError('max').max}`; }\r\n if (formControl?.hasError('min')) { return `${formControl?.getError('min').min}`; }\r\n\r\n return '';\r\n }\r\n\r\n public validateFormWithTranslate(f: FormGroup, index?: number): boolean {\r\n const formErrors: any = f.value;\r\n\r\n if (f.status === 'VALID') return true;\r\n\r\n if (!formErrors) return true;\r\n Object.entries(formErrors).forEach(([key, value]) => {\r\n const control = f.get(key);\r\n formErrors[key] = '';\r\n if (control && !control.valid) {\r\n const msg = {\r\n first: `ERRORS.${this.getErrorFirstMessageTranslated(f.get(key))}`,\r\n last: this.getErrorLastMessageNotTranslated(f.get(key))\r\n };\r\n formErrors[key] = msg;\r\n }\r\n });\r\n\r\n if (MonkeyUtils.persistNullEmptyUndefined(index)) { this.__monkeyecxFormErrors[index || 0] = formErrors; } else {\r\n this.__monkeyecxFormErrors = formErrors;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public copyToClipboard(val: string) {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n\r\n public validateForm(f: FormGroup, index?: number, alias?: string): boolean {\r\n const formErrors: any = f.value;\r\n if (f.status === 'VALID') return true;\r\n\r\n if (!formErrors) return true;\r\n Object.entries(formErrors).forEach(([key, value]) => {\r\n const control = f.get(key);\r\n formErrors[key] = '';\r\n if (control && !control.valid) {\r\n const msg = {\r\n firstMessage: `ERRORS.${this.getErrorFirstMessageTranslated(\r\n f.get(key)\r\n )}`,\r\n lastMessage: this.getErrorLastMessageNotTranslated(f.get(key))\r\n };\r\n formErrors[key] = msg;\r\n }\r\n });\r\n\r\n if (MonkeyUtils.persistNullEmptyUndefined(index)) {\r\n this.__monkeyecxFormErrors[index || 0] = formErrors;\r\n } else {\r\n let obj: any;\r\n\r\n if (alias) {\r\n obj = {\r\n [alias]: {\r\n ...formErrors\r\n }\r\n };\r\n } else {\r\n obj = formErrors;\r\n }\r\n\r\n this.__monkeyecxFormErrors = {\r\n ...this.__monkeyecxFormErrors,\r\n ...obj\r\n };\r\n }\r\n f.markAllAsTouched();\r\n return false;\r\n }\r\n\r\n public clearAllServiceData(clearData: boolean) {\r\n const context = this;\r\n Object.values(context).forEach((ctx: any) => {\r\n if (ctx instanceof MonkeyEcxCommonsService) {\r\n ctx.clear(clearData);\r\n }\r\n });\r\n }\r\n\r\n public ngOnInit(args: {\r\n paginationOptions?: MonkeyEcxPaginationOptions;\r\n supportControls?: MonkeyEcxSupportOptions;\r\n scrollOptions?: MonkeyEcxScrollOptions;\r\n translateOptions?: MonkeyEcxTranslateOptions;\r\n }) {\r\n if (args?.paginationOptions) {\r\n this.__paginationOptions = args?.paginationOptions;\r\n this.handlePagination();\r\n }\r\n if (args?.supportControls) {\r\n this.handleSupport(args?.supportControls);\r\n }\r\n if (args?.translateOptions) {\r\n this.handleTranslate(args?.translateOptions);\r\n }\r\n if (args?.scrollOptions) {\r\n this.handleViewScroll(args.scrollOptions);\r\n }\r\n }\r\n\r\n public ngOnDestroy(clearData: boolean = true) {\r\n this.__unsubscribeAll.next();\r\n this.__unsubscribeAll.complete();\r\n this.clearAllServiceData(clearData);\r\n this.handlePagination(false);\r\n }\r\n\r\n public handleErrorFromServices(error: MonkeyEcxErrorResponse, f: FormGroup) {\r\n this.__monkeyecxFormErrors = null;\r\n if (error.type === 'Parameter_Error') {\r\n Object.entries(f.value).forEach(([key, value]) => {\r\n error.notifications.forEach((_: any) => {\r\n const field = _.split(':')[0];\r\n const description = _.split(':')[1];\r\n if (field === key) {\r\n const msg = {\r\n firstMessage: '',\r\n lastMessage: description\r\n };\r\n this.__monkeyecxFormErrors = {\r\n ...this.__monkeyecxFormErrors,\r\n [key]: msg\r\n };\r\n f.controls[key].setErrors({\r\n incorrect: true\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n f.markAllAsTouched();\r\n }\r\n\r\n public goBack() {\r\n window.history.back();\r\n }\r\n\r\n public goScroll(id: string) {\r\n const element = document.getElementById(id);\r\n if (element) element.scrollIntoView();\r\n }\r\n\r\n public getEmbeddedData(data: any, field: string): any[] | any {\r\n const { _embedded } = data;\r\n return _embedded ? _embedded[field] : null;\r\n }\r\n\r\n public openWindow(url: string) {\r\n window.open(`${url}`, '_blank');\r\n }\r\n\r\n public fillI18n(data: any) {\r\n this.__i18n = data;\r\n }\r\n\r\n public getCountryPrefix(country: string) {\r\n return {\r\n br: 55,\r\n cl: 56\r\n }[country];\r\n }\r\n\r\n public getCountryCurrencyChartFormat(country: string) {\r\n return {\r\n br: 'R$ #,###,##0.00',\r\n cl: 'CLP #,###,##0'\r\n }[country];\r\n }\r\n\r\n public getCountryValidators(country: string) {\r\n return {\r\n br: {\r\n governmentId: ValidateUtils.DocumentValidator\r\n },\r\n cl: {\r\n governmentId: ValidateUtils.DocumentRutValidator\r\n }\r\n }[country];\r\n }\r\n}\r\n","import { Validators as Validators_ } from '@angular/forms';\r\nimport { Validators } from 'monkey-front-core';\r\n\r\nexport const validators: any = {\r\n required: Validators_.required,\r\n email: Validators.email,\r\n governmentId: Validators.documentBR,\r\n governmentIdRut: Validators.documentCL,\r\n documentBR: Validators.documentBR,\r\n documentCL: Validators.documentCL,\r\n date: Validators.date,\r\n zipCode: Validators.zipCode,\r\n minLength: (param: number) => {\r\n return Validators_.minLength(param);\r\n },\r\n maxLength: (param: number) => {\r\n return Validators_.maxLength(param);\r\n }\r\n};\r\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\r\nimport { BaseComponent } from './base-component';\r\nimport { validators } from './base-validators';\r\n\r\n@Directive({\r\n selector: '[baseDynamic]'\r\n})\r\nexport abstract class BaseDynamic extends BaseComponent implements OnInit, OnChanges {\r\n @Input() onHandleSubmit = new EventEmitter<any>();\r\n\r\n @Input() onHandleUpdateForm = new EventEmitter<any>();\r\n\r\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() self: any;\r\n\r\n @Input() fields: MECXFieldConfig[] = [];\r\n\r\n @Input() data: any;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _form: FormGroup | null = null;\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n }\r\n\r\n private createControl() {\r\n const { fields } = this;\r\n if (!fields) return null;\r\n // eslint-disable-next-line object-curly-newline\r\n const group = this.fb.group({});\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled } = field;\r\n let { value } = field;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n group.addControl(name as string, control);\r\n });\r\n return group;\r\n }\r\n\r\n private bindValidations(validations: MECXFieldConfigValidator[]) {\r\n if (validations.length > 0) {\r\n const validList: any[] = [];\r\n validations.forEach((valid: MECXFieldConfigValidator) => {\r\n const validated = valid.param\r\n ? validators[valid.name](valid.param)\r\n : validators[valid.name];\r\n validList.push(validated);\r\n });\r\n return Validators.compose(validList);\r\n }\r\n return null;\r\n }\r\n\r\n public fillValues() {\r\n const { data } = this;\r\n if (!data || !this._form) return;\r\n Object.entries(data).forEach(([key, value]) => {\r\n if (MonkeyUtils.persistNullEmptyUndefined(value) && this._form?.controls[key]) {\r\n this._form?.controls[key]?.setValue(value);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this._form = this.createControl();\r\n this.fillValues();\r\n\r\n this.onHandleUpdateForm.subscribe(() => {\r\n this.fillValues();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this._form) {\r\n this._form = this.createControl();\r\n }\r\n this.fillValues();\r\n }\r\n}\r\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\r\nimport { BaseComponent } from './base-component';\r\nimport { validators } from './base-validators';\r\n\r\n@Directive({\r\n selector: '[baseDynamicArray]'\r\n})\r\nexport abstract class BaseDynamicArray extends BaseComponent implements OnInit, OnChanges {\r\n @Input() onHandleSubmit = new EventEmitter<any>();\r\n\r\n @Input() onHandleUpdateForm = new EventEmitter<any>();\r\n\r\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() self: any;\r\n\r\n @Input() fields: MECXFieldConfig[] = [];\r\n\r\n @Input() data: any;\r\n\r\n @Input() qtd: number = 1;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n _plusValidations: any[] = [];\r\n\r\n private changesUnsubscribe = new Subject();\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n }\r\n\r\n private handleInternalPlusValidation(\r\n mainField: any,\r\n data: any\r\n ) {\r\n const { operator, field, value } = mainField;\r\n const validators: any = {\r\n e: (val1: any, val2: string) => { return val1 === val2; },\r\n lt: (val1: any, val2: string) => { return val1 < val2; },\r\n gt: (val1: any, val2: string) => { return val1 > val2; }\r\n };\r\n\r\n return validators[operator](data?.[field] || data, value);\r\n }\r\n\r\n private makeInternalPlusValidation(\r\n data: any,\r\n sourceField: string,\r\n settings: any,\r\n rowIndex: number\r\n ) {\r\n const changeFields = (show: boolean) => {\r\n const saved = [...this.fields];\r\n\r\n saved.map((val) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (val.name === sourceField) {\r\n this._plusValidations[rowIndex] = {\r\n [sourceField]: {\r\n ...valSaved,\r\n alwaysShow: show\r\n }\r\n };\r\n this.createOneControl(val.name, this.formValues?.controls[rowIndex], show);\r\n } else {\r\n this._plusValidations[rowIndex] = {\r\n ...valSaved\r\n };\r\n }\r\n return null;\r\n });\r\n };\r\n\r\n const validated = this.handleInternalPlusValidation(settings, data);\r\n changeFields(validated);\r\n }\r\n\r\n private createOneControl(fieldName: string, ctrl: any, create = true) {\r\n const { fields } = this;\r\n if (!fields) return;\r\n\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled } = field;\r\n if (name !== fieldName) return;\r\n let { value } = field;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n if (create) {\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n ctrl.addControl(name, control);\r\n } else {\r\n ctrl.removeControl(name);\r\n }\r\n });\r\n }\r\n\r\n private createControl(data?: any) {\r\n const { fields } = this;\r\n if (!fields) return null;\r\n // eslint-disable-next-line object-curly-newline\r\n const group = this.fb.group({});\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled, alwaysShow } = field;\r\n let { value } = field;\r\n if (field.alwaysShowPlusValidation) {\r\n if (!this.handleInternalPlusValidation(field.alwaysShowPlusValidation, data)) return;\r\n } else if (!alwaysShow) return;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n group.addControl(name as string, control);\r\n });\r\n\r\n return group;\r\n }\r\n\r\n private bindValidations(validations: MECXFieldConfigValidator[]) {\r\n if (validations.length > 0) {\r\n const validList: any[] = [];\r\n validations.forEach((valid: MECXFieldConfigValidator) => {\r\n const validated = valid.param\r\n ? validators[valid.name](valid.param)\r\n : validators[valid.name];\r\n validList.push(validated);\r\n });\r\n return Validators.compose(validList);\r\n }\r\n return null;\r\n }\r\n\r\n private buildForm(): FormGroup {\r\n const form = this.fb.group({\r\n fields: this.fb.array([])\r\n });\r\n\r\n form?.controls.fields?.valueChanges.subscribe((_) => {\r\n this.watchForChanges();\r\n });\r\n\r\n return form;\r\n }\r\n\r\n private watchForChanges() {\r\n const { fields, changesUnsubscribe } = this;\r\n changesUnsubscribe.next();\r\n\r\n this.formValues?.controls?.map((control: any, index: number) => {\r\n fields.forEach((fieldConfig: MECXFieldConfig) => {\r\n const { name, alwaysShowPlusValidation } = fieldConfig;\r\n if (!alwaysShowPlusValidation) return;\r\n const { field } = alwaysShowPlusValidation;\r\n if (field) {\r\n control.controls[field]?.valueChanges.pipe(\r\n takeUntil(changesUnsubscribe)).subscribe((_: any) => {\r\n this.makeInternalPlusValidation(\r\n _,\r\n name as string,\r\n alwaysShowPlusValidation,\r\n index\r\n );\r\n });\r\n }\r\n });\r\n return null;\r\n });\r\n }\r\n\r\n public formBase = () => {\r\n // return this.fb.group(this.createControl());\r\n return this.createControl();\r\n };\r\n\r\n public get formValues() {\r\n return this._form ? (this._form.get('fields') as FormArray) : null;\r\n }\r\n\r\n public fillValues() {\r\n const { data, qtd } = this;\r\n if ((!this._form) && qtd) return;\r\n if (qtd > 0) {\r\n Array<any>(qtd)\r\n .fill(null)\r\n .map((_, index) => {\r\n let form = this.createControl();\r\n if (data && data[index]) {\r\n form = this.createControl(data[index]);\r\n const handledData = data[index];\r\n Object.entries(handledData).forEach(([key, value]) => {\r\n if (MonkeyUtils.persistNullEmptyUndefined(value) && form?.controls[key]) {\r\n form?.controls[key].setValue(value);\r\n }\r\n });\r\n }\r\n this.formValues?.push(form as any);\r\n\r\n return null;\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this._form = this.buildForm();\r\n this.fillValues();\r\n\r\n this.onHandleUpdateForm.subscribe(() => {\r\n this.fillValues();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this._form) {\r\n this._form = this.buildForm();\r\n }\r\n this.fillValues();\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFileUploadComponent {\r\n @Input() _field: MECXFieldConfig;\r\n\r\n @Input() _form: FormGroup;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n _function: Function = (file: any, callback?: Function) => {\r\n if (this._form?.disabled) return;\r\n if (!this._field?.functions?.onHandleUpload) {\r\n console.error('onHandleUpload not declared');\r\n return;\r\n }\r\n const { func, type } = this._field?.functions?.onHandleUpload;\r\n if (!func || !this.self[func]) {\r\n console.error('onHandleUpload not declared');\r\n return;\r\n }\r\n this.self[func](file, type, callback);\r\n };\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<monkey-file-upload\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [icon]=\"_field?.icon\" [formControl]=\"_form.controls[_field?.name]\"\r\n [placeholder]=\"_field?.placeholder | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\r\n [maxSize]=\"_field?.maxSize || 5242880\" [fileUpload]=\"_function\"\r\n [maxSizeErrorMessage]=\"'FIELD.FILE.MAX-FILE' | translate\"\r\n [allowedExtensionErrorMessage]=\"'FIELD.FILE.ALLOWED-EXTENSION' | translate\"\r\n [allowedExtensions]=\"_field?.allowedExtensions || []\" *ngIf=\"_field\">\r\n</monkey-file-upload>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicButtonComponent implements OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onClick() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field) return;\r\n const { name, value } = _field;\r\n const func = _field?.functions?.onClick;\r\n if (func) {\r\n self[func]({\r\n name,\r\n value,\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-button [icon]=\"_field?.icon\" [type]=\"_field?.type\" [color]=\"_field?.color\"\r\n (click)=\"onClick()\">\r\n {{ _field?.label | translate }}\r\n</monkey-button>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MonkeyInputComponent } from 'monkey-style-guide';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-input',\r\n templateUrl: './input.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicInputComponent implements OnInit, OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @ViewChild('inputElement', {\r\n static: true\r\n }) inputElement: MonkeyInputComponent | null = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-input\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\r\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\r\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\r\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\r\n [maxDateToday]=\"_field?.maxDateToday\">\r\n</monkey-input>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MonkeyInputComponent } from 'monkey-style-guide';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-input-phone',\r\n templateUrl: './input-phone.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicInputPhoneComponent implements OnInit, OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @ViewChild('inputElement', {\r\n static: true\r\n }) inputElement: MonkeyInputComponent | null = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-input-phone [name]=\"_field?.name\" [label]=\"_field?.label | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\"\r\n [placeholder]=\"_field?.placeholder | translate\" [icon]=\"_field?.icon\"\r\n (onChange)=\"onChange($event)\" [internationalNumber]=\"_field?.internationalNumber\"\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [maxLength]=\"_field?.maxLength\" [formControl]=\"_form.controls[_field?.name]\" #inputElement>\r\n</monkey-input-phone>","import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-radio',\r\n templateUrl: './radio.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicRadioComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n}\r\n","<monkey-radiobutton\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\">\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-radiobutton>","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n EventEmitter,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-select',\r\n templateUrl: './select.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicSelectComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n _onHandleOptions = new EventEmitter<any>();\r\n\r\n onHandleGenericLoad() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\r\n const { name } = _field;\r\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\r\n const { func, url } = _field?.functions?.onHandleGenericLoad;\r\n if (!func || !self[func]) {\r\n console.error('onHandleGenericLoad not declared');\r\n return;\r\n }\r\n _form?.disable();\r\n self[func]({\r\n name,\r\n url,\r\n form: _form,\r\n callback: (data: any[]) => {\r\n if (this._field) {\r\n this._field.value = data;\r\n }\r\n this._form?.enable();\r\n this._onHandleOptions.next(null);\r\n }\r\n });\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form?.get(this._field?.name as string),\r\n form: _form,\r\n value: _field.value\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-select\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\r\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\r\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\r\n [placeholder]=\"_field?.placeholder | translate\">\r\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\r\n enableClick=\"false\">\r\n </monkey-option>\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-select>","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n EventEmitter,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-select-search',\r\n templateUrl: './select-search.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicSelectSearchComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n _onHandleOptions = new EventEmitter<any>();\r\n\r\n onHandleGenericLoad() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\r\n const { name } = _field;\r\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\r\n const { func, url } = _field?.functions?.onHandleGenericLoad;\r\n if (!func || !self[func]) {\r\n console.error('onHandleGenericLoad not declared');\r\n return;\r\n }\r\n _form?.disable();\r\n self[func]({\r\n name,\r\n url,\r\n form: _form,\r\n callback: (data: any[]) => {\r\n if (this._field) {\r\n this._field.value = data;\r\n }\r\n this._form?.enable();\r\n this._onHandleOptions.next(null);\r\n }\r\n });\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form,\r\n value: _field.value\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-select-search\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\r\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\r\n [fieldToCompare]=\"_field?.fieldToCompare\"\r\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\r\n [placeholder]=\"_field?.placeholder | translate\">\r\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\r\n enableClick=\"false\">\r\n </monkey-option>\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-select-search>","import {\r\n ChangeDetectorRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../interfaces';\r\nimport { MECXDynamicButtonComponent } from './button';\r\nimport { MECXDynamicFileUploadComponent } from './file-upload';\r\nimport { MECXDynamicInputComponent } from './input';\r\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\r\nimport { MECXDynamicRadioComponent } from './radio';\r\nimport { MECXDynamicSelectComponent } from './select';\r\nimport { MECXDynamicSelectSearchComponent } from './select-search';\r\n\r\nconst componentMapper: any = {\r\n input: MECXDynamicInputComponent,\r\n 'input-phone': MECXDynamicInputPhoneComponent,\r\n radiobutton: MECXDynamicRadioComponent,\r\n select: MECXDynamicSelectComponent,\r\n 'select-search': MECXDynamicSelectSearchComponent,\r\n 'file-upload': MECXDynamicFileUploadComponent,\r\n button: MECXDynamicButtonComponent\r\n};\r\n\r\n@Directive({\r\n selector: '[MECXDynamic]'\r\n})\r\nexport class MECXDynamicDirective implements OnInit, OnChanges {\r\n @Input() field: MECXFieldConfig | null = null;\r\n\r\n @Input() form: FormGroup | null = null;\r\n\r\n @Input() formErrors: any;\r\n\r\n @Input() self: any;\r\n\r\n @Input() plusValidations: any;\r\n\r\n componentRef: any;\r\n\r\n constructor(private resolver: ComponentFactoryResolver, private container: ViewContainerRef,\r\n private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n private handleInternalPlusValidation() {\r\n if (!this.field?.alwaysShowPlusValidation) return false;\r\n const { operator, value, field } = this.field?.alwaysShowPlusValidation;\r\n const validators: any = {\r\n e: (val1: any, val2: string) => { return val1 === val2; },\r\n lt: (val1: any, val2: string) => { return val1 < val2; },\r\n gt: (val1: any, val2: string) => { return val1 > val2; }\r\n };\r\n const data = this.form?.controls[field as string]?.value;\r\n\r\n return validators[operator as string](data, value);\r\n }\r\n\r\n private buildComponent() {\r\n if (this.componentRef?.instance) return;\r\n const factory = this.resolver.resolveComponentFactory(\r\n componentMapper[this.field?.fieldType as string]\r\n );\r\n this.componentRef = this.container.createComponent(factory);\r\n this.componentRef.instance._field = this.field;\r\n this.componentRef.instance._form = this.form;\r\n // eslint-disable-next-line object-curly-newline\r\n this.componentRef.instance._formErrors = this.formErrors || {};\r\n this.componentRef.instance.self = this.self;\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.field?.alwaysShow && !this.handleInternalPlusValidation()) return;\r\n this.buildComponent();\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.plusValidations && this.plusValidations[this.field?.name as string]) {\r\n if (!this.field?.alwaysShow && this.plusValidations[this.field?.name as string].alwaysShow) {\r\n setTimeout(() => {\r\n this.buildComponent();\r\n this.cdr.detectChanges();\r\n }, 1);\r\n }\r\n if (this.componentRef?.instance &&\r\n !this.plusValidations[this.field?.name as string].alwaysShow) {\r\n this.componentRef.destroy();\r\n this.componentRef = null;\r\n this.form?.controls[this.field?.name as string]?.setValue(null);\r\n this.form?.controls[this.field?.name as string]?.clearValidators();\r\n }\r\n }\r\n if (!this.componentRef?.instance) return;\r\n this.componentRef.instance._formErrors = this.formErrors || {\r\n };\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDynamic } from '../../base/base-dynamic';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-form',\r\n templateUrl: './dynamic-form.component.html',\r\n styles: [],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFormComponent extends BaseDynamic implements OnInit, OnDestroy {\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\r\n super(fb);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\r\n this.onSubmit(func);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n onSubmit(callback: Function) {\r\n const { _form } = this;\r\n // eslint-disable-next-line object-curly-newline\r\n this.__monkeyecxFormErrors = {};\r\n\r\n const isValid = this.validateForm(_form as any);\r\n this.cdr.detectChanges();\r\n\r\n this.onHandleSubmitFormReady.next({\r\n validate: {\r\n isValid\r\n },\r\n callback,\r\n form: _form\r\n });\r\n }\r\n}\r\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\r\n <div class=\"row\">\r\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"_form\" [self]=\"self\"\r\n [formErrors]=\"__monkeyecxFormErrors\" [style.display]=\"'none'\">\r\n </div>\r\n </div>\r\n</form>","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDynamicArray } from '../../base';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-form-array',\r\n templateUrl: './dynamic-form-array.component.html',\r\n styleUrls: ['./dynamic-form-array.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFormArrayComponent extends BaseDynamicArray implements OnInit, OnDestroy {\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\r\n super(fb);\r\n this.__monkeyecxFormErrors = [];\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\r\n this.onSubmit(func);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n onSubmit(callback: Function) {\r\n const { _form } = this;\r\n // eslint-disable-next-line object-curly-newline\r\n this.__monkeyecxFormErrors = [];\r\n\r\n let validate = {\r\n isValid: false\r\n };\r\n let hasErrors: boolean = false;\r\n if (this.formValues) {\r\n this.__monkeyecxFormErrors = [this.formValues.length];\r\n this.formValues.controls.forEach((item: any, index: number) => {\r\n if (item instanceof FormGroup) {\r\n if (!this.validateForm(item, index)) {\r\n hasErrors = true;\r\n }\r\n }\r\n });\r\n }\r\n validate = {\r\n isValid: !hasErrors\r\n };\r\n\r\n this.cdr.detectChanges();\r\n\r\n this.onHandleSubmitFormReady.next({\r\n validate,\r\n callback,\r\n form: _form\r\n });\r\n }\r\n\r\n onHandleAdd() {\r\n this.formValues?.push(this.formBase() as any);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onHandleRemove(index: number) {\r\n this.formValues?.removeAt(index);\r\n this._plusValidations.splice(index, 1);\r\n }\r\n}\r\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\r\n <div formArrayName=\"fields\">\r\n <div *ngFor=\"let item of formValues.controls; let indForm=index\" [formGroupName]=\"indForm\">\r\n <monkey-button type=\"secondary\" color=\"error\" icon=\"close-20\" iconPosition=\"right\"\r\n [label]=\"'BUTTONS.REMOVE' | translate\" (click)=\"onHandleRemove(indForm)\"\r\n *ngIf=\"formValues.controls.length > 1 && !disabled\">\r\n </monkey-button>\r\n <div class=\"row mt-3\">\r\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"item\" [self]=\"self\"\r\n [formErrors]=\"__monkeyecxFormErrors[indForm]\"\r\n [plusValidations]=\"_plusValidations[indForm]\" [style.display]=\"'none'\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n<monkey-button type=\"secondary\" color=\"theme\" icon=\"more-20\" iconPosition=\"right\"\r\n [label]=\"'BUTTONS.ADD' | translate\" (click)=\"onHandleAdd()\" *ngIf=\"!disabled\">\r\n</monkey-button>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyButtonModule,\r\n MonkeyFileUploadModule,\r\n MonkeyInputModule,\r\n MonkeyInputPhoneModule,\r\n MonkeyOptionModule,\r\n MonkeyRadioButtonModule,\r\n MonkeySelectModule\r\n} from 'monkey-style-guide';\r\nimport { MECXDynamicButtonComponent } from './button';\r\nimport { MECXDynamicDirective } from './dynamic-directive';\r\nimport { MECXDynamicFileUploadComponent } from './file-upload';\r\nimport { MECXDynamicFormComponent, MECXDynamicFormArrayComponent } from './form';\r\nimport { MECXDynamicInputComponent } from './input';\r\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\r\nimport { MECXDynamicRadioComponent } from './radio';\r\nimport { MECXDynamicSelectComponent } from './select';\r\nimport { MECXDynamicSelectSearchComponent } from './select-search';\r\n\r\n@NgModule({\r\n declarations: [\r\n MECXDynamicButtonComponent,\r\n MECXDynamicFileUploadComponent,\r\n MECXDynamicFormComponent,\r\n MECXDynamicFormArrayComponent,\r\n MECXDynamicInputComponent,\r\n MECXDynamicInputPhoneComponent,\r\n MECXDynamicRadioComponent,\r\n MECXDynamicSelectComponent,\r\n MECXDynamicSelectSearchComponent,\r\n MECXDynamicDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyInputModule,\r\n MonkeySelectModule,\r\n MonkeyRadioButtonModule,\r\n MonkeyOptionModule,\r\n MonkeyFileUploadModule,\r\n MonkeyButtonModule,\r\n MonkeyInputPhoneModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [MECXDynamicDirective, MECXDynamicFormComponent, MECXDynamicFormArrayComponent],\r\n entryComponents: [MECXDynamicInputComponent]\r\n})\r\nexport class MECXDynamicModule {}\r\n","import { Component, Input, OnChanges, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\r\nimport { MonkeyEcxConfig, MonkeyEcxConfigService, MonkeyEcxUtils } from 'monkey-front-core';\r\nimport { PasswordStrength } from './password-strength';\r\n\r\n@Component({\r\n selector: 'mecx-password-strength',\r\n templateUrl: './password-strength.component.html',\r\n styleUrls: ['./password-strength.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXPasswordStrengthComponent implements OnChanges {\r\n @Input() passwordToCheck: string | null = null;\r\n\r\n @Output() onHandleSubmitReady = new EventEmitter<any>();\r\n\r\n _validatorsPasswordPass: Array<PasswordStrength> = [];\r\n\r\n _stepPassword = 0;\r\n\r\n private validatorsPassword = new Map();\r\n\r\n constructor(private configService: MonkeyEcxConfigService) {\r\n // not do\r\n }\r\n\r\n private handleColor(score: number) {\r\n let idx = 0;\r\n if (score > 50) idx = 1;\r\n if (score === 100) idx = 2;\r\n this._stepPassword = idx;\r\n }\r\n\r\n private passwordStrengthValidator(pass : string) {\r\n this._validatorsPasswordPass = [];\r\n let score = 0;\r\n\r\n this.validatorsPassword.forEach((key, value) => {\r\n this._validatorsPasswordPass.push({\r\n regex: `${value}`,\r\n validate: `${key.VALIDATE}` === String(RegExp(`${key.REGEX}`).test(pass)),\r\n percent: 100 / this.validatorsPassword.size\r\n });\r\n });\r\n\r\n this._validatorsPasswordPass.forEach((check) => {\r\n if (check.validate) {\r\n score += check.percent;\r\n }\r\n });\r\n\r\n return Math.trunc(score);\r\n }\r\n\r\n private onHandleReady() {\r\n const validate = this._validatorsPasswordPass?.find(({ validate }) => { return !validate; });\r\n this.onHandleSubmitReady.next(!validate);\r\n }\r\n\r\n private onHandleChages() {\r\n const password = this.passwordToCheck;\r\n this.handleColor(this.passwordStrengthValidator(password as string));\r\n this.onHandleReady();\r\n }\r\n\r\n private onHandlePasswordStrengthKeys(params: MonkeyEcxConfig) {\r\n const ps = params?.program?.screens?.login?.passwordStrength;\r\n if (ps) {\r\n Object.entries(ps)\r\n .forEach(([key, value]) => {\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\r\n this.validatorsPassword.set(key, value);\r\n }\r\n });\r\n this.onHandleChages();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.configService.config().subscribe((_: MonkeyEcxConfig) => {\r\n this.onHandlePasswordStrengthKeys(_);\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.onHandleChages();\r\n }\r\n}\r\n","<ng-container *ngIf=\"_validatorsPasswordPass?.length\">\r\n <div id=\"strength\" class=\"d-flex full-width flex-column justify-content-center align-items-center\"\r\n #strength>\r\n <div id=\"strengthBar\" class=\"strength-bar d-flex full-width flex-row\">\r\n <div class=\"d-flex full-width align-items-center\">\r\n <div class=\"bar-label\">\r\n <small>{{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TITLE' | translate }}</small>\r\n </div>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.error]=\"_stepPassword === 0\" [class.warning]=\"_stepPassword === 1\"\r\n [class.success]=\"_stepPassword === 2\">\r\n </div>\r\n <ng-container *ngIf=\"_stepPassword === 0\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.warning]=\"_stepPassword === 1\"\r\n [class.success]=\"_stepPassword === 2\"></div>\r\n <ng-container *ngIf=\"_stepPassword === 1\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.success]=\"_stepPassword === 2\"></div>\r\n <ng-container *ngIf=\"_stepPassword === 2\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"callbacks mt-2 row\">\r\n <div class=\"col-sm-6 mt-2 d-flex justify-content-start\"\r\n *ngFor=\"let validators of _validatorsPasswordPass\">\r\n <monkey-icon *ngIf=\"validators.validate\" icon=\"check-circle-20\"></monkey-icon>\r\n <monkey-icon *ngIf=\"!validators.validate\" icon=\"error-20\"></monkey-icon>\r\n <span class=\"ml-2\">\r\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TYPES.' + validators.regex | translate }}\r\n </span>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<ng-template #stepPasswordLabel>\r\n <div class=\"name-point mt-1\" [class.error]=\"_stepPassword === 0\"\r\n [class.warning]=\"_stepPassword === 1\" [class.success]=\"_stepPassword === 2\">\r\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.LABELS.' + _stepPassword | translate }}\r\n </div>\r\n</ng-template>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MonkeyEcxDirectivesModule, MonkeyEcxPipesModule } from 'monkey-front-core';\r\nimport { MonkeyButtonModule, MonkeyInputModule, MonkeyIconModule } from 'monkey-style-guide';\r\nimport { MECXPasswordStrengthComponent } from './password-strength.component';\r\n\r\n@NgModule({\r\n declarations: [MECXPasswordStrengthComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyEcxPipesModule,\r\n MonkeyEcxDirectivesModule,\r\n MonkeyButtonModule,\r\n MonkeyInputModule,\r\n MonkeyIconModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [MECXPasswordStrengthComponent]\r\n})\r\nexport class MECXPasswordStrengthModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n NavigationCancel,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationStart,\r\n Router\r\n} from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MECXProgressBarService {\r\n private visible: BehaviorSubject<any> = new BehaviorSubject(false);\r\n\r\n constructor(private router: Router) {\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n })\r\n )\r\n .subscribe(() => {\r\n this.show();\r\n });\r\n\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return (\r\n event instanceof NavigationEnd ||\r\n event instanceof NavigationError ||\r\n event instanceof NavigationCancel\r\n );\r\n })\r\n )\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n\r\n show() {\r\n this.visible.next(true);\r\n }\r\n\r\n hide() {\r\n this.visible.next(false);\r\n }\r\n\r\n visibleConfig(): Observable<any> {\r\n return this.visible.asObservable();\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseComponent } from '../../base/base-component';\r\nimport { MECXProgressBarService } from './progress-bar.service';\r\n\r\n@Component({\r\n selector: 'mecx-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXProgressBarComponent extends BaseComponent implements OnInit, OnDestroy {\r\n visible: boolean = false;\r\n\r\n constructor(private progressBarService: MECXProgressBarService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.progressBarService\r\n .visibleConfig()\r\n .pipe(takeUntil(this.__unsubscribeAll))\r\n .subscribe((visible: boolean) => {\r\n this.visible = visible;\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"visible\">\r\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\r\n</ng-container>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MECXProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [MECXProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [MECXProgressBarComponent]\r\n})\r\nexport class MECXProgressBarModule {}\r\n","/*\r\n * Public API Surface of monkey-front-components\r\n */\r\n\r\nexport * from './lib/components';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Validators_","Validators"],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monkey-front-components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.204",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^13.1.1",
|
|
6
6
|
"@angular/core": "^13.1.1",
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
"@angular/router": "^13.1.1",
|
|
9
9
|
"rxjs": "^6.6.3",
|
|
10
10
|
"@ngx-translate/core": "^13.0.0",
|
|
11
|
-
"monkey-style-guide": "^2.0.
|
|
12
|
-
"monkey-front-core": "0.0.
|
|
11
|
+
"monkey-style-guide": "^2.0.112",
|
|
12
|
+
"monkey-front-core": "0.0.100",
|
|
13
13
|
"ngx-mask": "^12.0.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"monkey-style-guide": "^2.0.
|
|
16
|
+
"monkey-style-guide": "^2.0.112",
|
|
17
17
|
"tslib": "^2.3.0"
|
|
18
18
|
},
|
|
19
19
|
"module": "fesm2015/monkey-front-components.mjs",
|
|
Binary file
|