monkey-style-guide 2.0.127 → 2.0.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/scss/partials/_forms.scss +1 -1
- package/assets/scss/partials/components/_buttons.scss +43 -0
- package/esm2020/lib/components/button/button-loading.component.mjs +78 -0
- package/esm2020/lib/components/button/button.module.mjs +22 -5
- package/esm2020/lib/components/button/index.mjs +2 -1
- package/esm2020/lib/components/date-range-picker/date-range-picker.component.mjs +26 -32
- package/esm2020/lib/components/input/input.component.mjs +8 -4
- package/esm2020/lib/core/services/snackbar/mokey-style-guide-snackbar.service.mjs +7 -3
- package/fesm2015/monkey-style-guide.mjs +133 -41
- package/fesm2015/monkey-style-guide.mjs.map +1 -1
- package/fesm2020/monkey-style-guide.mjs +133 -41
- package/fesm2020/monkey-style-guide.mjs.map +1 -1
- package/lib/components/button/button-loading.component.d.ts +12 -0
- package/lib/components/button/button.module.d.ts +6 -5
- package/lib/components/button/index.d.ts +1 -0
- package/lib/core/services/snackbar/mokey-style-guide-snackbar.service.d.ts +2 -0
- package/monkey-style-guide-2.0.130.tgz +0 -0
- package/package.json +2 -2
- package/monkey-style-guide-2.0.127.tgz +0 -0
|
@@ -158,14 +158,18 @@ export class MonkeyStyleGuideSnackbarService {
|
|
|
158
158
|
}
|
|
159
159
|
if (actionCancelElement) {
|
|
160
160
|
actionCancelElement.addEventListener('click', () => {
|
|
161
|
-
|
|
161
|
+
if (!cancel?.keepOnAction) {
|
|
162
|
+
this.close(id);
|
|
163
|
+
}
|
|
162
164
|
cancel.action();
|
|
163
165
|
});
|
|
164
166
|
actionElement.appendChild(actionCancelElement);
|
|
165
167
|
}
|
|
166
168
|
if (actionConfirmElement) {
|
|
167
169
|
actionConfirmElement.addEventListener('click', () => {
|
|
168
|
-
|
|
170
|
+
if (!confirm?.keepOnAction) {
|
|
171
|
+
this.close(id);
|
|
172
|
+
}
|
|
169
173
|
confirm.action();
|
|
170
174
|
});
|
|
171
175
|
actionElement.appendChild(actionConfirmElement);
|
|
@@ -219,4 +223,4 @@ MonkeyStyleGuideSnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion
|
|
|
219
223
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyStyleGuideSnackbarService, decorators: [{
|
|
220
224
|
type: Injectable
|
|
221
225
|
}], ctorParameters: function () { return [{ type: i1.Location }]; } });
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9rZXktc3R5bGUtZ3VpZGUtc25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS9zcmMvbGliL2NvcmUvc2VydmljZXMvc25hY2tiYXIvbW9rZXktc3R5bGUtZ3VpZGUtc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUUxQyxNQUFNLEtBQUssR0FBRztJQUNaLE9BQU8sRUFBRTs7O1dBR0E7SUFDVCxPQUFPLEVBQUU7Ozs7V0FJQTtJQUNULEtBQUssRUFBRTs7OztXQUlFO0lBQ1QsUUFBUSxFQUFFOzs7O1dBSUQ7SUFDVCxPQUFPLEVBQUU7O1NBRUY7Q0FDUixDQUFDO0FBNEJGLE1BQU0sZ0JBQWdCO0lBT3BCO1FBTkEsYUFBUSxHQUdGLEVBQUUsQ0FBQztRQUNULGtCQUFhLEdBQVcsRUFBRSxDQUFDO0lBRVosQ0FBQztJQUVoQixHQUFHLENBQUMsT0FBdUIsRUFBRSxRQUFnQixFQUFFLFFBQWtCLEVBQUUsZ0JBQXdCO1FBQ3pGLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7U0FDekI7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUM7UUFFNUQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNoQyxRQUFRLEVBQUUsQ0FBQztRQUNiLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUViLElBQUksQ0FBQyxRQUFRLENBQUMs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LFFBQVE7UUFDYixNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbEMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxFQUFVO1FBQ3JCLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNsQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7OzRIQTVMVSwrQkFBK0I7Z0lBQS9CLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcclxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXHJcbiAqIE1JVCBMaWNlbmNlXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5cclxuY29uc3QgaWNvbnMgPSB7XHJcbiAgc3VjY2VzczogYDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCI3XCIgZmlsbD1cIiMwMDg3NUFcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNMTEgNUw3IDExTDQgOC4yNzI3M1wiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgPC9zdmc+YCxcclxuICB3YXJuaW5nOiBgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgIDxwYXRoIGQ9XCJNNi44NTQzMyAyLjYzODE5TDEuMTc5NTcgMTIuMDExNEMxLjA2MjU3IDEyLjIxMTggMS4wMDA2NiAxMi40MzkxIDEuMDAwMDEgMTIuNjcwNkMwLjk5OTM1IDEyLjkwMjEgMS4wNTk5NyAxMy4xMjk3IDEuMTc1ODMgMTMuMzMwOEMxLjI5MTcgMTMuNTMyIDEuNDU4NzcgMTMuNjk5NSAxLjY2MDQyIDEzLjgxNjlDMS44NjIwNyAxMy45MzQzIDIuMDkxMjggMTMuOTk3NSAyLjMyNTI0IDE0SDEzLjY3NDhDMTMuOTA4NyAxMy45OTc1IDE0LjEzNzkgMTMuOTM0MyAxNC4zMzk2IDEzLjgxNjlDMTQuNTQxMiAxMy42OTk1IDE0LjcwODMgMTMuNTMyIDE0LjgyNDIgMTMuMzMwOEMxNC45NCAxMy4xMjk3IDE1LjAwMDYgMTIuOTAyMSAxNSAxMi42NzA2QzE0Ljk5OTMgMTIuNDM5MSAxNC45Mzc0IDEyLjIxMTggMTQuODIwNCAxMi4wMTE0TDkuMTQ1NjcgMi42MzgxOUM5LjAyNjIzIDIuNDQzMzcgOC44NTgwNiAyLjI4MjMgOC42NTczOCAyLjE3MDUxQzguNDU2NzEgMi4wNTg3MyA4LjIzMDMgMiA4IDJDNy43Njk3IDIgNy41NDMyOSAyLjA1ODczIDcuMzQyNjIgMi4xNzA1MUM3LjE0MTk0IDIuMjgyMyA2Ljk3Mzc3IDIuNDQzMzcgNi44NTQzMyAyLjYzODE5WlwiIGZpbGw9XCIjRUZBMzBFXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTTggNlYxMFwiIHN0cm9rZT1cIiMwMDBGMUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNOCAxMkg4LjAwNjY3XCIgc3Ryb2tlPVwiIzAwMEYxRVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgIDwvc3ZnPmAsXHJcbiAgZXJyb3I6IGA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgPHBhdGggZD1cIk01LjEwMiAxSDEwLjg5OEwxNSA1LjEwMlYxMC44OThMMTAuODk4IDE1SDUuMTAyTDEgMTAuODk4VjUuMTAyTDUuMTAyIDFaXCIgZmlsbD1cIiNGQTM4MzhcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNOCA1LjMzMzMzVjcuOTk5OTlcIiBzdHJva2U9XCIjRjVGQUZGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTTggMTAuNjY2N0g4LjAwNjY3XCIgc3Ryb2tlPVwiI0Y1RkFGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgIDwvc3ZnPmAsXHJcbiAgcXVlc3Rpb246IGA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgPHBhdGggZD1cIk04LjAwMDA0IDE0LjY2NjhDMTEuNjgxOSAxNC42NjY4IDE0LjY2NjcgMTEuNjgyMSAxNC42NjY3IDguMDAwMTZDMTQuNjY2NyA0LjMxODI2IDExLjY4MTkgMS4zMzM1IDguMDAwMDQgMS4zMzM1QzQuMzE4MTQgMS4zMzM1IDEuMzMzMzcgNC4zMTgyNiAxLjMzMzM3IDguMDAwMTZDMS4zMzMzNyAxMS42ODIxIDQuMzE4MTQgMTQuNjY2OCA4LjAwMDA0IDE0LjY2NjhaXCIgc3Ryb2tlPVwiIzhEMzhGQVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgPHBhdGggZD1cIk02LjA1OTk0IDUuOTk5ODlDNi4yMTY2NyA1LjU1NDM0IDYuNTI2MDQgNS4xNzg2MyA2LjkzMzI0IDQuOTM5MzFDNy4zNDA0NCA0LjcgNy44MTkyIDQuNjEyNTIgOC4yODQ3MiA0LjY5MjM3QzguNzUwMjQgNC43NzIyMiA5LjE3MjQ4IDUuMDE0MjQgOS40NzY2NSA1LjM3NTU4QzkuNzgwODMgNS43MzY5MSA5Ljk0NzMxIDYuMTk0MjQgOS45NDY2IDYuNjY2NTZDOS45NDY2IDcuOTk5ODkgNy45NDY2IDguNjY2NTYgNy45NDY2IDguNjY2NTZWOS40OTk4OVwiIHN0cm9rZT1cIiM4RDM4RkFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNOCAxMS4zMzM1SDguMDA2NjdcIiBzdHJva2U9XCIjOEQzOEZBXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgPC9zdmc+YCxcclxuICBsb2FkaW5nOiBgPHN2ZyBjbGFzcz1cImNpcmN1bGFyLWxvYWRlclwiIHZpZXdCb3g9XCIyNSAyNSA1MCA1MFwiID5cclxuICAgIDxjaXJjbGUgY2xhc3M9XCJsb2FkZXItcGF0aFwiIGN4PVwiNTBcIiBjeT1cIjUwXCIgcj1cIjIwXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIjNTc1NzU3XCIgc3Ryb2tlLXdpZHRoPVwiNVwiIC8+XHJcbiAgPC9zdmc+YCxcclxufTtcclxuXHJcbmludGVyZmFjZSBTbmFja2JhckFjdGlvbkNvbmZpZyB7XHJcbiAgY29uZmlybT86IHtcclxuICAgIHN0eWxlOiAnbGluaycgfCAnYnV0dG9uJztcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBhY3Rpb246IEZ1bmN0aW9uO1xyXG4gIH07XHJcbiAgY2FuY2VsPzoge1xyXG4gICAgc3R5bGU6ICdsaW5rJyB8ICdidXR0b24nO1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGFjdGlvbjogRnVuY3Rpb247XHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNuYWNrYmFyQ29uZmlnIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG4gIHR5cGU/OiAndGhlbWUnIHwgJ3dhcm5pbmcnIHwgJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICdxdWVzdGlvbicgfCAnbG9hZGluZyc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgaG9yaXpvbnRhbFBvc2l0aW9uPzogJ2NlbnRlcicgfCAnbGVmdCcgfCAncmlnaHQnO1xyXG4gIHZlcnRpY2FsUG9zaXRpb24/OiAndG9wJyB8ICdib3R0b20nO1xyXG4gIGFjdGlvbj86IFNuYWNrYmFyQWN0aW9uQ29uZmlnO1xyXG4gIGtlZXBPcGVuPzogYm9vbGVhbjtcclxuICBibGlua1RhYj86IGJvb2xlYW47XHJcbiAga2VlcE9uVXJsQ2hhbmdlPzogYm9vbGVhbjtcclxufVxyXG5cclxuY2xhc3MgU25hY2tiYXJFbGVtZW50cyB7XHJcbiAgZWxlbWVudHM6IHtcclxuICAgIGVsZW1lbnQ/OiBIVE1MRGl2RWxlbWVudDtcclxuICAgIGludGVydmFsPzogYW55O1xyXG4gIH1bXSA9IFtdO1xyXG4gIGxhc3RTY3JvbGxUb3A6IG51bWJlciA9IDE1O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGFkZChlbGVtZW50OiBIVE1MRGl2RWxlbWVudCwgZHVyYXRpb246IG51bWJlciwgY2FsbGJhY2s6IEZ1bmN0aW9uLCB2ZXJ0aWNhbFBvc2l0aW9uOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmVsZW1lbnRzICYmIHRoaXMuZWxlbWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMubGFzdFNjcm9sbFRvcCA9IDE1O1xyXG4gICAgfVxyXG4gICAgZWxlbWVudC5zdHlsZVt2ZXJ0aWNhbFBvc2l0aW9uXSA9IGAke3RoaXMubGFzdFNjcm9sbFRvcH1weGA7XHJcblxyXG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICB9LCBkdXJhdGlvbik7XHJcblxyXG4gICAgdGhpcy5lbGVtZW50cy5wdXNoKHtcclxuICAgICAgZWxlbWVudDogZWxlbWVudCxcclxuICAgICAgaW50ZXJ2YWw6IGludGVydmFsLFxyXG4gICAgfSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xyXG4gICAgdGhpcy5sYXN0U2Nyb2xsVG9wID0gdGhpcy5sYXN0U2Nyb2xsVG9wICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudC5pZCkub2Zmc2V0SGVpZ2h0ICsgMTU7XHJcbiAgfVxyXG5cclxuICByZW1vdmUocmVtb3ZlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudHMuZmluZCgoeyBlbGVtZW50OiB7IGlkIH0gfSkgPT4gaWQgPT09IHJlbW92ZUlkKTtcclxuICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuZWxlbWVudHMgPVxyXG4gICAgICAgIHRoaXMuZWxlbWVudHMuZmlsdGVyKCh7IGVsZW1lbnQ6IHsgaWQgfSB9KSA9PiBpZCAhPT0gZWxlbWVudC5lbGVtZW50LmlkKSB8fCBbXTtcclxuICAgICAgZWxlbWVudC5lbGVtZW50LmNsYXNzTmFtZSA9IGAke2VsZW1lbnQuZWxlbWVudC5jbGFzc05hbWV9IGZhZGUtb3V0IGhpZGVgO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmxhc3RTY3JvbGxUb3AgPVxyXG4gICAgICAgICAgdGhpcy5sYXN0U2Nyb2xsVG9wIC0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlbW92ZUlkKS5vZmZzZXRIZWlnaHQgKyAxNSk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50LmVsZW1lbnQpO1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwoZWxlbWVudC5pbnRlcnZhbCk7XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQWxsKCkge1xyXG4gICAgdGhpcy5lbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudC5lbGVtZW50KTtcclxuICAgICAgY2xlYXJJbnRlcnZhbChlbGVtZW50LmludGVydmFsKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5sYXN0U2Nyb2xsVG9wID0gMTU7XHJcbiAgICB0aGlzLmVsZW1lbnRzID0gW107XHJcbiAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlTdHlsZUd1aWRlU25hY2tiYXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNvbmZpZzogU25hY2tiYXJDb25maWc7XHJcbiAgcHJpdmF0ZSBzbmFja2JhckVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gIHByaXZhdGUgc25hY2tiYXJFbGVtZW50czogU25hY2tiYXJFbGVtZW50cztcclxuICBwcml2YXRlIHNuYWNrYmFyQm9keUVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gIHByaXZhdGUgc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gIHByaXZhdGUgb2xkVGl0bGU6IHN0cmluZztcclxuICBwcml2YXRlIHRpbWVvdXRCbGlua1RhYiA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb25Sb3V0ZXI6IExvY2F0aW9uKSB7XHJcbiAgICB0aGlzLnNuYWNrYmFyRWxlbWVudHMgPSBuZXcgU25hY2tiYXJFbGVtZW50cygpO1xyXG4gICAgdGhpcy5sb2NhdGlvblJvdXRlci5vblVybENoYW5nZSgoKSA9PiB7XHJcbiAgICAgIGlmKHRoaXMuY29uZmlnICYmICF0aGlzLmNvbmZpZz8ua2VlcE9uVXJsQ2hhbmdlKXtcclxuICAgICAgICB0aGlzLmNsb3NlQWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdG9wQmxpbmtpbmcoKSB7XHJcbiAgICBpZiAodGhpcy5vbGRUaXRsZSkge1xyXG4gICAgICBkb2N1bWVudC50aXRsZSA9IHRoaXMub2xkVGl0bGU7XHJcbiAgICAgIGlmICh0aGlzLnNuYWNrYmFyRWxlbWVudHMuZWxlbWVudHMubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZW91dEJsaW5rVGFiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBibGlua1RhYigpIHtcclxuICAgIHRoaXMub2xkVGl0bGUgPSB0aGlzLm9sZFRpdGxlIHx8IGRvY3VtZW50LnRpdGxlO1xyXG5cclxuICAgIGNvbnN0IHN0YXJ0QmxpbmtpbmcgPSAoKSA9PiB7XHJcbiAgICAgIGxldCBtZXNzYWdlID0gYCgke3RoaXMuc25hY2tiYXJFbGVtZW50cy5lbGVtZW50cy5sZW5ndGh9KSAke3RoaXMub2xkVGl0bGV9YDtcclxuICAgICAgZG9jdW1lbnQudGl0bGUgPSBkb2N1bWVudC50aXRsZSA9PT0gbWVzc2FnZSA/IHRoaXMub2xkVGl0bGUgOiBtZXNzYWdlO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy50aW1lb3V0QmxpbmtUYWIpIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lb3V0QmxpbmtUYWIpO1xyXG4gICAgdGhpcy50aW1lb3V0QmxpbmtUYWIgPSBzZXRJbnRlcnZhbChzdGFydEJsaW5raW5nLCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdChpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IGNvbmZpZyB9ID0gdGhpcztcclxuICAgIGxldCB7IGhvcml6b250YWxQb3NpdGlvbiwgdmVydGljYWxQb3NpdGlvbiwgdHlwZSB9ID0gY29uZmlnO1xyXG4gICAgaG9yaXpvbnRhbFBvc2l0aW9uID0gaG9yaXpvbnRhbFBvc2l0aW9uIHx8ICdjZW50ZXInO1xyXG4gICAgdmVydGljYWxQb3NpdGlvbiA9IHZlcnRpY2FsUG9zaXRpb24gfHwgJ3RvcCc7XHJcblxyXG4gICAgdGhpcy5zbmFja2JhckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHRoaXMuc25hY2tiYXJFbGVtZW50LmlkID0gYCR7aWR9YDtcclxuICAgIHRoaXMuc25hY2tiYXJFbGVtZW50LmNsYXNzTmFtZSA9IGBtZWN4LXNuYWNrYmFyLWNvbnRhaW5lciAke2hvcml6b250YWxQb3NpdGlvbn0tJHt2ZXJ0aWNhbFBvc2l0aW9ufSAke3R5cGV9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRCb2R5KCkge1xyXG4gICAgdGhpcy5zbmFja2JhckJvZHlFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aGlzLnNuYWNrYmFyQm9keUVsZW1lbnQuY2xhc3NOYW1lID0gJ21lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHknO1xyXG5cclxuICAgIHRoaXMuc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHRoaXMuc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQuY2xhc3NOYW1lID0gJ21lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHktY29udGVudCc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkVGl0bGVBbmRNZXNzYWdlKCkge1xyXG4gICAgbGV0IHtcclxuICAgICAgY29uZmlnOiB7IHRpdGxlLCBtZXNzYWdlLCBhY3Rpb24gfSxcclxuICAgIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgdGl0bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aXRsZUVsZW1lbnQuaW5uZXJUZXh0ID0gYCR7dGl0bGV9YDtcclxuICAgIHRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAnbWVjeC1zbmFja2Jhci1jb250YWluZXItYm9keS1jb250ZW50LXRpdGxlJztcclxuXHJcbiAgICBjb25zdCBtZXNzYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgbWVzc2FnZUVsZW1lbnQuaW5uZXJUZXh0ID0gYCR7bWVzc2FnZX1gO1xyXG4gICAgbWVzc2FnZUVsZW1lbnQuY2xhc3NOYW1lID0gYG1lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHktY29udGVudC1tZXNzYWdlICR7XHJcbiAgICAgIGFjdGlvbiA/ICd3aXRoLWFjdGlvbicgOiAnJ1xyXG4gICAgfWA7XHJcblxyXG4gICAgdGhpcy5zbmFja2JhckJvZHlNZXNzYWdlRWxlbWVudC5hcHBlbmRDaGlsZCh0aXRsZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5zbmFja2JhckJvZHlNZXNzYWdlRWxlbWVudC5hcHBlbmRDaGlsZChtZXNzYWdlRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQWN0aW9uKGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29uZmlnOiB7IHR5cGUsIGFjdGlvbiB9LFxyXG4gICAgfSA9IHRoaXM7XHJcbiAgICBpZiAoYWN0aW9uKSB7XHJcbiAgICAgIGNvbnN0IHsgY29uZmlybSwgY2FuY2VsIH0gPSBhY3Rpb247XHJcbiAgICAgIGNvbnN0IGFjdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHJcbiAgICAgIGxldCBhY3Rpb25DYW5jZWxFbGVtZW50ID0gbnVsbCxcclxuICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudCA9IG51bGw7XHJcblxyXG4gICAgICBpZihjb25maXJtKXtcclxuICAgICAgICBjb25zdCB7IHN0eWxlLCBsYWJlbCB9ID0gY29uZmlybTtcclxuICAgICAgICBpZiAoc3R5bGUgPT09ICdsaW5rJykge1xyXG4gICAgICAgICAgYWN0aW9uQ29uZmlybUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudC5ocmVmID0gJ2phdmFzY3JpcHQ6dm9pZCgwKSc7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudC5pbm5lclRleHQgPSBsYWJlbDtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xyXG4gICAgICAgICAgYWN0aW9uQ29uZmlybUVsZW1lbnQuY2xhc3NOYW1lID0gYG1lY3gtYnV0dG9uLXByaW1hcnkgbWVjeC1idXR0b24tcHJpbWFyeV9fJHt0eXBlfWA7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudC5pbm5lclRleHQgPSBsYWJlbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKGNhbmNlbCl7ICAgICAgICBcclxuICAgICAgICBjb25zdCB7IHN0eWxlLCBsYWJlbCB9ID0gY2FuY2VsO1xyXG4gICAgICAgIGlmKHN0eWxlID09PSAnbGluaycpe1xyXG4gICAgICAgICAgYWN0aW9uQ2FuY2VsRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuaHJlZiA9ICdqYXZhc2NyaXB0OnZvaWQoMCknO1xyXG4gICAgICAgICAgYWN0aW9uQ2FuY2VsRWxlbWVudC5pbm5lclRleHQgPSBsYWJlbDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuY2xhc3NOYW1lID0gYG1lY3gtYnV0dG9uLXRlcnRpYXJ5IG1lY3gtYnV0dG9uLXRlcnRpYXJ5X18ke3R5cGV9YDtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuaW5uZXJUZXh0ID0gbGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYWN0aW9uQ2FuY2VsRWxlbWVudCkge1xyXG4gICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlKGlkKTtcclxuICAgICAgICAgIGNhbmNlbC5hY3Rpb24oKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChhY3Rpb25DYW5jZWxFbGVtZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGFjdGlvbkNvbmZpcm1FbGVtZW50KSB7XHJcbiAgICAgICAgYWN0aW9uQ29uZmlybUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlKGlkKTtcclxuICAgICAgICAgIGNvbmZpcm0uYWN0aW9uKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChhY3Rpb25Db25maXJtRWxlbWVudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFjdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gJ21lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHktY29udGVudC1hY3Rpb24nO1xyXG4gICAgICB0aGlzLnNuYWNrYmFyQm9keU1lc3NhZ2VFbGVtZW50LmFwcGVuZENoaWxkKGFjdGlvbkVsZW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEljb24oKSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBjb25maWc6IHsgdHlwZSB9LFxyXG4gICAgfSA9IHRoaXM7XHJcblxyXG4gICAgY29uc3Qgc25hY2tiYXJCb2R5SWNvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHNuYWNrYmFyQm9keUljb25FbGVtZW50LmNsYXNzTmFtZSA9ICdtZWN4LXNuYWNrYmFyLWNvbnRhaW5lci1ib2R5LWljb24nO1xyXG4gICAgc25hY2tiYXJCb2R5SWNvbkVsZW1lbnQuaW5uZXJIVE1MID0gYCR7aWNvbnNbdHlwZV19YDtcclxuICAgIHRoaXMuc25hY2tiYXJCb2R5RWxlbWVudC5hcHBlbmRDaGlsZChzbmFja2JhckJvZHlJY29uRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmlzaChpZDogc3RyaW5nKSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBjb25maWc6IHsgZHVyYXRpb24sIGtlZXBPcGVuLCB2ZXJ0aWNhbFBvc2l0aW9uIH0sXHJcbiAgICB9ID0gdGhpcztcclxuICAgIGR1cmF0aW9uID0gZHVyYXRpb24gfHwgNDAwMDtcclxuICAgIGNvbnN0IHsgc25hY2tiYXJCb2R5RWxlbWVudCwgc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQsIHNuYWNrYmFyRWxlbWVudCB9ID0gdGhpcztcclxuICAgIHNuYWNrYmFyQm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQoc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQpO1xyXG4gICAgc25hY2tiYXJFbGVtZW50LmFwcGVuZENoaWxkKHNuYWNrYmFyQm9keUVsZW1lbnQpO1xyXG5cclxuICAgIHRoaXMuc25hY2tiYXJFbGVtZW50cy5hZGQoXHJcbiAgICAgIHNuYWNrYmFyRWxlbWVudCxcclxuICAgICAgZHVyYXRpb24sXHJcbiAgICAgICgpID0+ICgha2VlcE9wZW4gPyB0aGlzLmNsb3NlKGlkKSA6IG51bGwpLFxyXG4gICAgICB2ZXJ0aWNhbFBvc2l0aW9uXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3coY29uZmlnOiBTbmFja2JhckNvbmZpZyk6IHN0cmluZyB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcclxuICAgIGNvbnN0IGlkID0gYG1vbmtleS1zbmFja2Jhci0ke01vbmtleVV0aWxzLmdldFJhbmRvbVN0cmluZygzMCl9YDtcclxuICAgIHRoaXMuY2xvc2VBbGwoKTtcclxuICAgIHRoaXMuaW5pdChpZCk7XHJcbiAgICB0aGlzLmJ1aWxkQm9keSgpO1xyXG4gICAgdGhpcy5idWlsZFRpdGxlQW5kTWVzc2FnZSgpO1xyXG4gICAgdGhpcy5idWlsZEFjdGlvbihpZCk7XHJcbiAgICB0aGlzLmJ1aWxkSWNvbigpO1xyXG4gICAgdGhpcy5maW5pc2goaWQpO1xyXG4gICAgaWYgKGNvbmZpZz8uYmxpbmtUYWIpIHtcclxuICAgICAgdGhpcy5ibGlua1RhYigpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlQWxsKCkge1xyXG4gICAgY29uc3QgeyBzbmFja2JhckVsZW1lbnRzIH0gPSB0aGlzO1xyXG4gICAgc25hY2tiYXJFbGVtZW50cy5yZW1vdmVBbGwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZShpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IHNuYWNrYmFyRWxlbWVudHMgfSA9IHRoaXM7XHJcbiAgICBzbmFja2JhckVsZW1lbnRzLnJlbW92ZShpZCk7XHJcbiAgICB0aGlzLnN0b3BCbGlua2luZygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9rZXktc3R5bGUtZ3VpZGUtc25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS9zcmMvbGliL2NvcmUvc2VydmljZXMvc25hY2tiYXIvbW9rZXktc3R5bGUtZ3VpZGUtc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUUxQyxNQUFNLEtBQUssR0FBRztJQUNaLE9BQU8sRUFBRTs7O1dBR0E7SUFDVCxPQUFPLEVBQUU7Ozs7V0FJQTtJQUNULEtBQUssRUFBRTs7OztXQUlFO0lBQ1QsUUFBUSxFQUFFOzs7O1dBSUQ7SUFDVCxPQUFPLEVBQUU7O1NBRUY7Q0FDUixDQUFDO0FBOEJGLE1BQU0sZ0JBQWdCO0lBT3BCO1FBTkEsYUFBUSxHQUdGLEVBQUUsQ0FBQztRQUNULGtCQUFhLEdBQVcsRUFBRSxDQUFDO0lBRVosQ0FBQztJQUVoQixHQUFHLENBQUMsT0FBdUIsRUFBRSxRQUFnQixFQUFFLFFBQWtCLEVBQUUsZ0JBQXdCO1FBQ3pGLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7U0FDekI7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUM7UUFFNUQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNoQyxRQUFRLEVBQUUsQ0FBQztRQUNiLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUViLElBQUksQ0FBQyxRQUFRLENBQUMs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TSxFQUFFLFFBQVEsRUFBRTtZQUNwQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTSxRQUFRO1FBQ2IsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxLQUFLLENBQUMsRUFBVTtRQUNyQixNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbEMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs0SEFoTVUsK0JBQStCO2dJQUEvQiwrQkFBK0I7MkZBQS9CLCtCQUErQjtrQkFEM0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXHJcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxyXG4gKiBNSVQgTGljZW5jZVxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb25rZXlVdGlscyB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuXHJcbmNvbnN0IGljb25zID0ge1xyXG4gIHN1Y2Nlc3M6IGA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjhcIiByPVwiN1wiIGZpbGw9XCIjMDA4NzVBXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTTExIDVMNyAxMUw0IDguMjcyNzNcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgIDwvc3ZnPmAsXHJcbiAgd2FybmluZzogYDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICA8cGF0aCBkPVwiTTYuODU0MzMgMi42MzgxOUwxLjE3OTU3IDEyLjAxMTRDMS4wNjI1NyAxMi4yMTE4IDEuMDAwNjYgMTIuNDM5MSAxLjAwMDAxIDEyLjY3MDZDMC45OTkzNSAxMi45MDIxIDEuMDU5OTcgMTMuMTI5NyAxLjE3NTgzIDEzLjMzMDhDMS4yOTE3IDEzLjUzMiAxLjQ1ODc3IDEzLjY5OTUgMS42NjA0MiAxMy44MTY5QzEuODYyMDcgMTMuOTM0MyAyLjA5MTI4IDEzLjk5NzUgMi4zMjUyNCAxNEgxMy42NzQ4QzEzLjkwODcgMTMuOTk3NSAxNC4xMzc5IDEzLjkzNDMgMTQuMzM5NiAxMy44MTY5QzE0LjU0MTIgMTMuNjk5NSAxNC43MDgzIDEzLjUzMiAxNC44MjQyIDEzLjMzMDhDMTQuOTQgMTMuMTI5NyAxNS4wMDA2IDEyLjkwMjEgMTUgMTIuNjcwNkMxNC45OTkzIDEyLjQzOTEgMTQuOTM3NCAxMi4yMTE4IDE0LjgyMDQgMTIuMDExNEw5LjE0NTY3IDIuNjM4MTlDOS4wMjYyMyAyLjQ0MzM3IDguODU4MDYgMi4yODIzIDguNjU3MzggMi4xNzA1MUM4LjQ1NjcxIDIuMDU4NzMgOC4yMzAzIDIgOCAyQzcuNzY5NyAyIDcuNTQzMjkgMi4wNTg3MyA3LjM0MjYyIDIuMTcwNTFDNy4xNDE5NCAyLjI4MjMgNi45NzM3NyAyLjQ0MzM3IDYuODU0MzMgMi42MzgxOVpcIiBmaWxsPVwiI0VGQTMwRVwiLz5cclxuICAgICAgPHBhdGggZD1cIk04IDZWMTBcIiBzdHJva2U9XCIjMDAwRjFFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTTggMTJIOC4wMDY2N1wiIHN0cm9rZT1cIiMwMDBGMUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICA8L3N2Zz5gLFxyXG4gIGVycm9yOiBgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgIDxwYXRoIGQ9XCJNNS4xMDIgMUgxMC44OThMMTUgNS4xMDJWMTAuODk4TDEwLjg5OCAxNUg1LjEwMkwxIDEwLjg5OFY1LjEwMkw1LjEwMiAxWlwiIGZpbGw9XCIjRkEzODM4XCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTTggNS4zMzMzM1Y3Ljk5OTk5XCIgc3Ryb2tlPVwiI0Y1RkFGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgPHBhdGggZD1cIk04IDEwLjY2NjdIOC4wMDY2N1wiIHN0cm9rZT1cIiNGNUZBRkZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICA8L3N2Zz5gLFxyXG4gIHF1ZXN0aW9uOiBgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgIDxwYXRoIGQ9XCJNOC4wMDAwNCAxNC42NjY4QzExLjY4MTkgMTQuNjY2OCAxNC42NjY3IDExLjY4MjEgMTQuNjY2NyA4LjAwMDE2QzE0LjY2NjcgNC4zMTgyNiAxMS42ODE5IDEuMzMzNSA4LjAwMDA0IDEuMzMzNUM0LjMxODE0IDEuMzMzNSAxLjMzMzM3IDQuMzE4MjYgMS4zMzMzNyA4LjAwMDE2QzEuMzMzMzcgMTEuNjgyMSA0LjMxODE0IDE0LjY2NjggOC4wMDAwNCAxNC42NjY4WlwiIHN0cm9rZT1cIiM4RDM4RkFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNNi4wNTk5NCA1Ljk5OTg5QzYuMjE2NjcgNS41NTQzNCA2LjUyNjA0IDUuMTc4NjMgNi45MzMyNCA0LjkzOTMxQzcuMzQwNDQgNC43IDcuODE5MiA0LjYxMjUyIDguMjg0NzIgNC42OTIzN0M4Ljc1MDI0IDQuNzcyMjIgOS4xNzI0OCA1LjAxNDI0IDkuNDc2NjUgNS4zNzU1OEM5Ljc4MDgzIDUuNzM2OTEgOS45NDczMSA2LjE5NDI0IDkuOTQ2NiA2LjY2NjU2QzkuOTQ2NiA3Ljk5OTg5IDcuOTQ2NiA4LjY2NjU2IDcuOTQ2NiA4LjY2NjU2VjkuNDk5ODlcIiBzdHJva2U9XCIjOEQzOEZBXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTTggMTEuMzMzNUg4LjAwNjY3XCIgc3Ryb2tlPVwiIzhEMzhGQVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgIDwvc3ZnPmAsXHJcbiAgbG9hZGluZzogYDxzdmcgY2xhc3M9XCJjaXJjdWxhci1sb2FkZXJcIiB2aWV3Qm94PVwiMjUgMjUgNTAgNTBcIiA+XHJcbiAgICA8Y2lyY2xlIGNsYXNzPVwibG9hZGVyLXBhdGhcIiBjeD1cIjUwXCIgY3k9XCI1MFwiIHI9XCIyMFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiIzU3NTc1N1wiIHN0cm9rZS13aWR0aD1cIjVcIiAvPlxyXG4gIDwvc3ZnPmAsXHJcbn07XHJcblxyXG5pbnRlcmZhY2UgU25hY2tiYXJBY3Rpb25Db25maWcge1xyXG4gIGNvbmZpcm0/OiB7XHJcbiAgICBzdHlsZTogJ2xpbmsnIHwgJ2J1dHRvbic7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgYWN0aW9uOiBGdW5jdGlvbjtcclxuICAgIGtlZXBPbkFjdGlvbj86IGJvb2xlYW47XHJcbiAgfTtcclxuICBjYW5jZWw/OiB7XHJcbiAgICBzdHlsZTogJ2xpbmsnIHwgJ2J1dHRvbic7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgYWN0aW9uOiBGdW5jdGlvbjtcclxuICAgIGtlZXBPbkFjdGlvbj86IGJvb2xlYW47XHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNuYWNrYmFyQ29uZmlnIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG4gIHR5cGU/OiAndGhlbWUnIHwgJ3dhcm5pbmcnIHwgJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICdxdWVzdGlvbicgfCAnbG9hZGluZyc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgaG9yaXpvbnRhbFBvc2l0aW9uPzogJ2NlbnRlcicgfCAnbGVmdCcgfCAncmlnaHQnO1xyXG4gIHZlcnRpY2FsUG9zaXRpb24/OiAndG9wJyB8ICdib3R0b20nO1xyXG4gIGFjdGlvbj86IFNuYWNrYmFyQWN0aW9uQ29uZmlnO1xyXG4gIGtlZXBPcGVuPzogYm9vbGVhbjtcclxuICBibGlua1RhYj86IGJvb2xlYW47XHJcbiAga2VlcE9uVXJsQ2hhbmdlPzogYm9vbGVhbjtcclxufVxyXG5cclxuY2xhc3MgU25hY2tiYXJFbGVtZW50cyB7XHJcbiAgZWxlbWVudHM6IHtcclxuICAgIGVsZW1lbnQ/OiBIVE1MRGl2RWxlbWVudDtcclxuICAgIGludGVydmFsPzogYW55O1xyXG4gIH1bXSA9IFtdO1xyXG4gIGxhc3RTY3JvbGxUb3A6IG51bWJlciA9IDE1O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGFkZChlbGVtZW50OiBIVE1MRGl2RWxlbWVudCwgZHVyYXRpb246IG51bWJlciwgY2FsbGJhY2s6IEZ1bmN0aW9uLCB2ZXJ0aWNhbFBvc2l0aW9uOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmVsZW1lbnRzICYmIHRoaXMuZWxlbWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMubGFzdFNjcm9sbFRvcCA9IDE1O1xyXG4gICAgfVxyXG4gICAgZWxlbWVudC5zdHlsZVt2ZXJ0aWNhbFBvc2l0aW9uXSA9IGAke3RoaXMubGFzdFNjcm9sbFRvcH1weGA7XHJcblxyXG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICB9LCBkdXJhdGlvbik7XHJcblxyXG4gICAgdGhpcy5lbGVtZW50cy5wdXNoKHtcclxuICAgICAgZWxlbWVudDogZWxlbWVudCxcclxuICAgICAgaW50ZXJ2YWw6IGludGVydmFsLFxyXG4gICAgfSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xyXG4gICAgdGhpcy5sYXN0U2Nyb2xsVG9wID0gdGhpcy5sYXN0U2Nyb2xsVG9wICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudC5pZCkub2Zmc2V0SGVpZ2h0ICsgMTU7XHJcbiAgfVxyXG5cclxuICByZW1vdmUocmVtb3ZlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudHMuZmluZCgoeyBlbGVtZW50OiB7IGlkIH0gfSkgPT4gaWQgPT09IHJlbW92ZUlkKTtcclxuICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuZWxlbWVudHMgPVxyXG4gICAgICAgIHRoaXMuZWxlbWVudHMuZmlsdGVyKCh7IGVsZW1lbnQ6IHsgaWQgfSB9KSA9PiBpZCAhPT0gZWxlbWVudC5lbGVtZW50LmlkKSB8fCBbXTtcclxuICAgICAgZWxlbWVudC5lbGVtZW50LmNsYXNzTmFtZSA9IGAke2VsZW1lbnQuZWxlbWVudC5jbGFzc05hbWV9IGZhZGUtb3V0IGhpZGVgO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmxhc3RTY3JvbGxUb3AgPVxyXG4gICAgICAgICAgdGhpcy5sYXN0U2Nyb2xsVG9wIC0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlbW92ZUlkKS5vZmZzZXRIZWlnaHQgKyAxNSk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50LmVsZW1lbnQpO1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwoZWxlbWVudC5pbnRlcnZhbCk7XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQWxsKCkge1xyXG4gICAgdGhpcy5lbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudC5lbGVtZW50KTtcclxuICAgICAgY2xlYXJJbnRlcnZhbChlbGVtZW50LmludGVydmFsKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5sYXN0U2Nyb2xsVG9wID0gMTU7XHJcbiAgICB0aGlzLmVsZW1lbnRzID0gW107XHJcbiAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlTdHlsZUd1aWRlU25hY2tiYXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNvbmZpZzogU25hY2tiYXJDb25maWc7XHJcbiAgcHJpdmF0ZSBzbmFja2JhckVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gIHByaXZhdGUgc25hY2tiYXJFbGVtZW50czogU25hY2tiYXJFbGVtZW50cztcclxuICBwcml2YXRlIHNuYWNrYmFyQm9keUVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gIHByaXZhdGUgc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gIHByaXZhdGUgb2xkVGl0bGU6IHN0cmluZztcclxuICBwcml2YXRlIHRpbWVvdXRCbGlua1RhYiA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb25Sb3V0ZXI6IExvY2F0aW9uKSB7XHJcbiAgICB0aGlzLnNuYWNrYmFyRWxlbWVudHMgPSBuZXcgU25hY2tiYXJFbGVtZW50cygpO1xyXG4gICAgdGhpcy5sb2NhdGlvblJvdXRlci5vblVybENoYW5nZSgoKSA9PiB7XHJcbiAgICAgIGlmKHRoaXMuY29uZmlnICYmICF0aGlzLmNvbmZpZz8ua2VlcE9uVXJsQ2hhbmdlKXtcclxuICAgICAgICB0aGlzLmNsb3NlQWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdG9wQmxpbmtpbmcoKSB7XHJcbiAgICBpZiAodGhpcy5vbGRUaXRsZSkge1xyXG4gICAgICBkb2N1bWVudC50aXRsZSA9IHRoaXMub2xkVGl0bGU7XHJcbiAgICAgIGlmICh0aGlzLnNuYWNrYmFyRWxlbWVudHMuZWxlbWVudHMubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZW91dEJsaW5rVGFiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBibGlua1RhYigpIHtcclxuICAgIHRoaXMub2xkVGl0bGUgPSB0aGlzLm9sZFRpdGxlIHx8IGRvY3VtZW50LnRpdGxlO1xyXG5cclxuICAgIGNvbnN0IHN0YXJ0QmxpbmtpbmcgPSAoKSA9PiB7XHJcbiAgICAgIGxldCBtZXNzYWdlID0gYCgke3RoaXMuc25hY2tiYXJFbGVtZW50cy5lbGVtZW50cy5sZW5ndGh9KSAke3RoaXMub2xkVGl0bGV9YDtcclxuICAgICAgZG9jdW1lbnQudGl0bGUgPSBkb2N1bWVudC50aXRsZSA9PT0gbWVzc2FnZSA/IHRoaXMub2xkVGl0bGUgOiBtZXNzYWdlO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy50aW1lb3V0QmxpbmtUYWIpIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lb3V0QmxpbmtUYWIpO1xyXG4gICAgdGhpcy50aW1lb3V0QmxpbmtUYWIgPSBzZXRJbnRlcnZhbChzdGFydEJsaW5raW5nLCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdChpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IGNvbmZpZyB9ID0gdGhpcztcclxuICAgIGxldCB7IGhvcml6b250YWxQb3NpdGlvbiwgdmVydGljYWxQb3NpdGlvbiwgdHlwZSB9ID0gY29uZmlnO1xyXG4gICAgaG9yaXpvbnRhbFBvc2l0aW9uID0gaG9yaXpvbnRhbFBvc2l0aW9uIHx8ICdjZW50ZXInO1xyXG4gICAgdmVydGljYWxQb3NpdGlvbiA9IHZlcnRpY2FsUG9zaXRpb24gfHwgJ3RvcCc7XHJcblxyXG4gICAgdGhpcy5zbmFja2JhckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHRoaXMuc25hY2tiYXJFbGVtZW50LmlkID0gYCR7aWR9YDtcclxuICAgIHRoaXMuc25hY2tiYXJFbGVtZW50LmNsYXNzTmFtZSA9IGBtZWN4LXNuYWNrYmFyLWNvbnRhaW5lciAke2hvcml6b250YWxQb3NpdGlvbn0tJHt2ZXJ0aWNhbFBvc2l0aW9ufSAke3R5cGV9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRCb2R5KCkge1xyXG4gICAgdGhpcy5zbmFja2JhckJvZHlFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aGlzLnNuYWNrYmFyQm9keUVsZW1lbnQuY2xhc3NOYW1lID0gJ21lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHknO1xyXG5cclxuICAgIHRoaXMuc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHRoaXMuc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQuY2xhc3NOYW1lID0gJ21lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHktY29udGVudCc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkVGl0bGVBbmRNZXNzYWdlKCkge1xyXG4gICAgbGV0IHtcclxuICAgICAgY29uZmlnOiB7IHRpdGxlLCBtZXNzYWdlLCBhY3Rpb24gfSxcclxuICAgIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgdGl0bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aXRsZUVsZW1lbnQuaW5uZXJUZXh0ID0gYCR7dGl0bGV9YDtcclxuICAgIHRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAnbWVjeC1zbmFja2Jhci1jb250YWluZXItYm9keS1jb250ZW50LXRpdGxlJztcclxuXHJcbiAgICBjb25zdCBtZXNzYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgbWVzc2FnZUVsZW1lbnQuaW5uZXJUZXh0ID0gYCR7bWVzc2FnZX1gO1xyXG4gICAgbWVzc2FnZUVsZW1lbnQuY2xhc3NOYW1lID0gYG1lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHktY29udGVudC1tZXNzYWdlICR7XHJcbiAgICAgIGFjdGlvbiA/ICd3aXRoLWFjdGlvbicgOiAnJ1xyXG4gICAgfWA7XHJcblxyXG4gICAgdGhpcy5zbmFja2JhckJvZHlNZXNzYWdlRWxlbWVudC5hcHBlbmRDaGlsZCh0aXRsZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5zbmFja2JhckJvZHlNZXNzYWdlRWxlbWVudC5hcHBlbmRDaGlsZChtZXNzYWdlRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQWN0aW9uKGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29uZmlnOiB7IHR5cGUsIGFjdGlvbiB9LFxyXG4gICAgfSA9IHRoaXM7XHJcbiAgICBpZiAoYWN0aW9uKSB7XHJcbiAgICAgIGNvbnN0IHsgY29uZmlybSwgY2FuY2VsIH0gPSBhY3Rpb247XHJcbiAgICAgIGNvbnN0IGFjdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHJcbiAgICAgIGxldCBhY3Rpb25DYW5jZWxFbGVtZW50ID0gbnVsbCxcclxuICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudCA9IG51bGw7XHJcblxyXG4gICAgICBpZihjb25maXJtKXtcclxuICAgICAgICBjb25zdCB7IHN0eWxlLCBsYWJlbCB9ID0gY29uZmlybTtcclxuICAgICAgICBpZiAoc3R5bGUgPT09ICdsaW5rJykge1xyXG4gICAgICAgICAgYWN0aW9uQ29uZmlybUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudC5ocmVmID0gJ2phdmFzY3JpcHQ6dm9pZCgwKSc7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudC5pbm5lclRleHQgPSBsYWJlbDtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xyXG4gICAgICAgICAgYWN0aW9uQ29uZmlybUVsZW1lbnQuY2xhc3NOYW1lID0gYG1lY3gtYnV0dG9uLXByaW1hcnkgbWVjeC1idXR0b24tcHJpbWFyeV9fJHt0eXBlfWA7XHJcbiAgICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudC5pbm5lclRleHQgPSBsYWJlbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKGNhbmNlbCl7ICAgICAgICBcclxuICAgICAgICBjb25zdCB7IHN0eWxlLCBsYWJlbCB9ID0gY2FuY2VsO1xyXG4gICAgICAgIGlmKHN0eWxlID09PSAnbGluaycpe1xyXG4gICAgICAgICAgYWN0aW9uQ2FuY2VsRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuaHJlZiA9ICdqYXZhc2NyaXB0OnZvaWQoMCknO1xyXG4gICAgICAgICAgYWN0aW9uQ2FuY2VsRWxlbWVudC5pbm5lclRleHQgPSBsYWJlbDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuY2xhc3NOYW1lID0gYG1lY3gtYnV0dG9uLXRlcnRpYXJ5IG1lY3gtYnV0dG9uLXRlcnRpYXJ5X18ke3R5cGV9YDtcclxuICAgICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuaW5uZXJUZXh0ID0gbGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYWN0aW9uQ2FuY2VsRWxlbWVudCkge1xyXG4gICAgICAgIGFjdGlvbkNhbmNlbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWNhbmNlbD8ua2VlcE9uQWN0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2FuY2VsLmFjdGlvbigpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBhY3Rpb25FbGVtZW50LmFwcGVuZENoaWxkKGFjdGlvbkNhbmNlbEVsZW1lbnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYWN0aW9uQ29uZmlybUVsZW1lbnQpIHtcclxuICAgICAgICBhY3Rpb25Db25maXJtRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgIGlmICghY29uZmlybT8ua2VlcE9uQWN0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uZmlybS5hY3Rpb24oKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBhY3Rpb25FbGVtZW50LmFwcGVuZENoaWxkKGFjdGlvbkNvbmZpcm1FbGVtZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgYWN0aW9uRWxlbWVudC5jbGFzc05hbWUgPSAnbWVjeC1zbmFja2Jhci1jb250YWluZXItYm9keS1jb250ZW50LWFjdGlvbic7XHJcbiAgICAgIHRoaXMuc25hY2tiYXJCb2R5TWVzc2FnZUVsZW1lbnQuYXBwZW5kQ2hpbGQoYWN0aW9uRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkSWNvbigpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIGNvbmZpZzogeyB0eXBlIH0sXHJcbiAgICB9ID0gdGhpcztcclxuXHJcbiAgICBjb25zdCBzbmFja2JhckJvZHlJY29uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgc25hY2tiYXJCb2R5SWNvbkVsZW1lbnQuY2xhc3NOYW1lID0gJ21lY3gtc25hY2tiYXItY29udGFpbmVyLWJvZHktaWNvbic7XHJcbiAgICBzbmFja2JhckJvZHlJY29uRWxlbWVudC5pbm5lckhUTUwgPSBgJHtpY29uc1t0eXBlXX1gO1xyXG4gICAgdGhpcy5zbmFja2JhckJvZHlFbGVtZW50LmFwcGVuZENoaWxkKHNuYWNrYmFyQm9keUljb25FbGVtZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluaXNoKGlkOiBzdHJpbmcpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIGNvbmZpZzogeyBkdXJhdGlvbiwga2VlcE9wZW4sIHZlcnRpY2FsUG9zaXRpb24gfSxcclxuICAgIH0gPSB0aGlzO1xyXG4gICAgZHVyYXRpb24gPSBkdXJhdGlvbiB8fCA0MDAwO1xyXG4gICAgY29uc3QgeyBzbmFja2JhckJvZHlFbGVtZW50LCBzbmFja2JhckJvZHlNZXNzYWdlRWxlbWVudCwgc25hY2tiYXJFbGVtZW50IH0gPSB0aGlzO1xyXG4gICAgc25hY2tiYXJCb2R5RWxlbWVudC5hcHBlbmRDaGlsZChzbmFja2JhckJvZHlNZXNzYWdlRWxlbWVudCk7XHJcbiAgICBzbmFja2JhckVsZW1lbnQuYXBwZW5kQ2hpbGQoc25hY2tiYXJCb2R5RWxlbWVudCk7XHJcblxyXG4gICAgdGhpcy5zbmFja2JhckVsZW1lbnRzLmFkZChcclxuICAgICAgc25hY2tiYXJFbGVtZW50LFxyXG4gICAgICBkdXJhdGlvbixcclxuICAgICAgKCkgPT4gKCFrZWVwT3BlbiA/IHRoaXMuY2xvc2UoaWQpIDogbnVsbCksXHJcbiAgICAgIHZlcnRpY2FsUG9zaXRpb25cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvdyhjb25maWc6IFNuYWNrYmFyQ29uZmlnKTogc3RyaW5nIHtcclxuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xyXG4gICAgY29uc3QgaWQgPSBgbW9ua2V5LXNuYWNrYmFyLSR7TW9ua2V5VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDMwKX1gO1xyXG4gICAgdGhpcy5jbG9zZUFsbCgpO1xyXG4gICAgdGhpcy5pbml0KGlkKTtcclxuICAgIHRoaXMuYnVpbGRCb2R5KCk7XHJcbiAgICB0aGlzLmJ1aWxkVGl0bGVBbmRNZXNzYWdlKCk7XHJcbiAgICB0aGlzLmJ1aWxkQWN0aW9uKGlkKTtcclxuICAgIHRoaXMuYnVpbGRJY29uKCk7XHJcbiAgICB0aGlzLmZpbmlzaChpZCk7XHJcbiAgICBpZiAoY29uZmlnPy5ibGlua1RhYikge1xyXG4gICAgICB0aGlzLmJsaW5rVGFiKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VBbGwoKSB7XHJcbiAgICBjb25zdCB7IHNuYWNrYmFyRWxlbWVudHMgfSA9IHRoaXM7XHJcbiAgICBzbmFja2JhckVsZW1lbnRzLnJlbW92ZUFsbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlKGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHsgc25hY2tiYXJFbGVtZW50cyB9ID0gdGhpcztcclxuICAgIHNuYWNrYmFyRWxlbWVudHMucmVtb3ZlKGlkKTtcclxuICAgIHRoaXMuc3RvcEJsaW5raW5nKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -526,14 +526,18 @@ class MonkeyStyleGuideSnackbarService {
|
|
|
526
526
|
}
|
|
527
527
|
if (actionCancelElement) {
|
|
528
528
|
actionCancelElement.addEventListener('click', () => {
|
|
529
|
-
|
|
529
|
+
if (!(cancel === null || cancel === void 0 ? void 0 : cancel.keepOnAction)) {
|
|
530
|
+
this.close(id);
|
|
531
|
+
}
|
|
530
532
|
cancel.action();
|
|
531
533
|
});
|
|
532
534
|
actionElement.appendChild(actionCancelElement);
|
|
533
535
|
}
|
|
534
536
|
if (actionConfirmElement) {
|
|
535
537
|
actionConfirmElement.addEventListener('click', () => {
|
|
536
|
-
|
|
538
|
+
if (!(confirm === null || confirm === void 0 ? void 0 : confirm.keepOnAction)) {
|
|
539
|
+
this.close(id);
|
|
540
|
+
}
|
|
537
541
|
confirm.action();
|
|
538
542
|
});
|
|
539
543
|
actionElement.appendChild(actionConfirmElement);
|
|
@@ -2819,6 +2823,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
|
|
|
2819
2823
|
args: ['click', ['$event']]
|
|
2820
2824
|
}] } });
|
|
2821
2825
|
|
|
2826
|
+
/**************************
|
|
2827
|
+
* Copyright Monkey Exchange. All Rights Reserved
|
|
2828
|
+
* This style guide was developed by Monkey Exchange Team
|
|
2829
|
+
* MIT Licence
|
|
2830
|
+
**************************/
|
|
2831
|
+
class MonkeyButtonLoadingComponent {
|
|
2832
|
+
constructor() {
|
|
2833
|
+
this.size = 'md';
|
|
2834
|
+
this._id = `mecx-button-loading-${MonkeyUtils.getRandomString(10)}`;
|
|
2835
|
+
}
|
|
2836
|
+
}
|
|
2837
|
+
MonkeyButtonLoadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2838
|
+
MonkeyButtonLoadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MonkeyButtonLoadingComponent, selector: "monkey-button-loading", inputs: { label: "label", type: "type", color: "color", size: "size", progress: "progress", totalProgress: "totalProgress" }, ngImport: i0, template: `
|
|
2839
|
+
<button
|
|
2840
|
+
[ngClass]="
|
|
2841
|
+
'mecx-button-' +
|
|
2842
|
+
type +
|
|
2843
|
+
' mecx-button-' +
|
|
2844
|
+
type +
|
|
2845
|
+
'__' +
|
|
2846
|
+
color +
|
|
2847
|
+
' no-icon' +
|
|
2848
|
+
' ' +
|
|
2849
|
+
size
|
|
2850
|
+
"
|
|
2851
|
+
type="button"
|
|
2852
|
+
[id]="_id"
|
|
2853
|
+
>
|
|
2854
|
+
<mecx-button-progress-info>
|
|
2855
|
+
<span [style.width.%]="progress"> {{ progress }}%</span>
|
|
2856
|
+
</mecx-button-progress-info>
|
|
2857
|
+
</button>
|
|
2858
|
+
`, isInline: true, directives: [{ type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
2859
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonLoadingComponent, decorators: [{
|
|
2860
|
+
type: Component,
|
|
2861
|
+
args: [{
|
|
2862
|
+
selector: 'monkey-button-loading',
|
|
2863
|
+
template: `
|
|
2864
|
+
<button
|
|
2865
|
+
[ngClass]="
|
|
2866
|
+
'mecx-button-' +
|
|
2867
|
+
type +
|
|
2868
|
+
' mecx-button-' +
|
|
2869
|
+
type +
|
|
2870
|
+
'__' +
|
|
2871
|
+
color +
|
|
2872
|
+
' no-icon' +
|
|
2873
|
+
' ' +
|
|
2874
|
+
size
|
|
2875
|
+
"
|
|
2876
|
+
type="button"
|
|
2877
|
+
[id]="_id"
|
|
2878
|
+
>
|
|
2879
|
+
<mecx-button-progress-info>
|
|
2880
|
+
<span [style.width.%]="progress"> {{ progress }}%</span>
|
|
2881
|
+
</mecx-button-progress-info>
|
|
2882
|
+
</button>
|
|
2883
|
+
`,
|
|
2884
|
+
encapsulation: ViewEncapsulation.None
|
|
2885
|
+
}]
|
|
2886
|
+
}], propDecorators: { label: [{
|
|
2887
|
+
type: Input
|
|
2888
|
+
}], type: [{
|
|
2889
|
+
type: Input
|
|
2890
|
+
}], color: [{
|
|
2891
|
+
type: Input
|
|
2892
|
+
}], size: [{
|
|
2893
|
+
type: Input
|
|
2894
|
+
}], progress: [{
|
|
2895
|
+
type: Input
|
|
2896
|
+
}], totalProgress: [{
|
|
2897
|
+
type: Input
|
|
2898
|
+
}] } });
|
|
2899
|
+
|
|
2822
2900
|
/**************************
|
|
2823
2901
|
* Copyright Monkey Exchange. All Rights Reserved
|
|
2824
2902
|
* This style guide was developed by Monkey Exchange Team
|
|
@@ -3026,15 +3104,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
|
|
|
3026
3104
|
class MonkeyButtonModule {
|
|
3027
3105
|
}
|
|
3028
3106
|
MonkeyButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3029
|
-
MonkeyButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonModule, declarations: [MonkeyButtonComponent,
|
|
3107
|
+
MonkeyButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonModule, declarations: [MonkeyButtonComponent,
|
|
3108
|
+
MonkeyButtonDropdownComponent,
|
|
3109
|
+
MonkeyButtonLoadingComponent,
|
|
3110
|
+
MonkeyButtonAvatarComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, MonkeyIconModule], exports: [MonkeyButtonComponent,
|
|
3111
|
+
MonkeyButtonDropdownComponent,
|
|
3112
|
+
MonkeyButtonLoadingComponent,
|
|
3113
|
+
MonkeyButtonAvatarComponent] });
|
|
3030
3114
|
MonkeyButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule, MonkeyIconModule]] });
|
|
3031
3115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonModule, decorators: [{
|
|
3032
3116
|
type: NgModule,
|
|
3033
3117
|
args: [{
|
|
3034
|
-
declarations: [
|
|
3118
|
+
declarations: [
|
|
3119
|
+
MonkeyButtonComponent,
|
|
3120
|
+
MonkeyButtonDropdownComponent,
|
|
3121
|
+
MonkeyButtonLoadingComponent,
|
|
3122
|
+
MonkeyButtonAvatarComponent
|
|
3123
|
+
],
|
|
3035
3124
|
imports: [CommonModule, FormsModule, ReactiveFormsModule, MonkeyIconModule],
|
|
3036
|
-
exports: [
|
|
3037
|
-
|
|
3125
|
+
exports: [
|
|
3126
|
+
MonkeyButtonComponent,
|
|
3127
|
+
MonkeyButtonDropdownComponent,
|
|
3128
|
+
MonkeyButtonLoadingComponent,
|
|
3129
|
+
MonkeyButtonAvatarComponent
|
|
3130
|
+
],
|
|
3131
|
+
schemas: [NO_ERRORS_SCHEMA]
|
|
3038
3132
|
}]
|
|
3039
3133
|
}] });
|
|
3040
3134
|
|
|
@@ -3206,43 +3300,37 @@ class MonkeyDateRangePickerComponent {
|
|
|
3206
3300
|
return day === null || day === void 0 ? void 0 : day.isSame(endDate);
|
|
3207
3301
|
}
|
|
3208
3302
|
selectedDate(day) {
|
|
3209
|
-
|
|
3210
|
-
|
|
3303
|
+
if (this._disabled)
|
|
3304
|
+
return;
|
|
3305
|
+
const { _dateForm, _minDate } = this;
|
|
3306
|
+
let dayFormatted = day.format('YYYY-MM-DD');
|
|
3307
|
+
if (_minDate) {
|
|
3308
|
+
const firstDay = moment(_minDate);
|
|
3309
|
+
if (day.isBefore(firstDay.subtract(1, 'day')))
|
|
3211
3310
|
return;
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3215
|
-
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
this.clearDates();
|
|
3221
|
-
}
|
|
3222
|
-
let { startDate, endDate } = _dateForm.value;
|
|
3223
|
-
if (startDate) {
|
|
3224
|
-
if (moment(startDate).isAfter(moment(dayFormatted))) {
|
|
3225
|
-
endDate = startDate;
|
|
3226
|
-
startDate = dayFormatted;
|
|
3227
|
-
}
|
|
3228
|
-
else {
|
|
3229
|
-
endDate = dayFormatted;
|
|
3230
|
-
}
|
|
3231
|
-
}
|
|
3232
|
-
else
|
|
3311
|
+
}
|
|
3312
|
+
if (_dateForm.valid) {
|
|
3313
|
+
this.clearDates();
|
|
3314
|
+
}
|
|
3315
|
+
let { startDate, endDate } = _dateForm.value;
|
|
3316
|
+
if (startDate) {
|
|
3317
|
+
if (moment(startDate).isAfter(moment(dayFormatted))) {
|
|
3318
|
+
endDate = startDate;
|
|
3233
3319
|
startDate = dayFormatted;
|
|
3234
|
-
if (startDate) {
|
|
3235
|
-
_dateForm.get('startDate').patchValue(startDate);
|
|
3236
3320
|
}
|
|
3237
|
-
|
|
3238
|
-
|
|
3321
|
+
else {
|
|
3322
|
+
endDate = dayFormatted;
|
|
3239
3323
|
}
|
|
3240
|
-
console.log(_dateForm.value);
|
|
3241
|
-
this.writeValue(_dateForm.value);
|
|
3242
3324
|
}
|
|
3243
|
-
|
|
3244
|
-
|
|
3325
|
+
else
|
|
3326
|
+
startDate = dayFormatted;
|
|
3327
|
+
if (startDate) {
|
|
3328
|
+
_dateForm.get('startDate').patchValue(startDate);
|
|
3329
|
+
}
|
|
3330
|
+
if (endDate) {
|
|
3331
|
+
_dateForm.get('endDate').patchValue(endDate);
|
|
3245
3332
|
}
|
|
3333
|
+
this.writeValue(_dateForm.value);
|
|
3246
3334
|
}
|
|
3247
3335
|
selectRangeOfDays(days) {
|
|
3248
3336
|
if (this._disabled)
|
|
@@ -3677,15 +3765,19 @@ class MonkeyInputComponent {
|
|
|
3677
3765
|
}
|
|
3678
3766
|
formatValue(value) {
|
|
3679
3767
|
var _a, _b;
|
|
3680
|
-
const { settings } = this;
|
|
3681
|
-
if (
|
|
3768
|
+
const { settings, type, currency, percent } = this;
|
|
3769
|
+
if (currency) {
|
|
3682
3770
|
if (!value || !this.replaceZero(value))
|
|
3683
3771
|
return '';
|
|
3684
3772
|
return this.currencyPipe.transform(value, ((_a = settings === null || settings === void 0 ? void 0 : settings.currency) === null || _a === void 0 ? void 0 : _a.code) || 'BRL', '', '1.2-2', ((_b = settings === null || settings === void 0 ? void 0 : settings.currency) === null || _b === void 0 ? void 0 : _b.locale) || 'pt-BR');
|
|
3685
3773
|
}
|
|
3686
|
-
else if (
|
|
3774
|
+
else if (percent) {
|
|
3687
3775
|
return `${value}`;
|
|
3688
3776
|
}
|
|
3777
|
+
else if (type === 'date') {
|
|
3778
|
+
//return `${value}`.substring(0,10);
|
|
3779
|
+
return value;
|
|
3780
|
+
}
|
|
3689
3781
|
return value;
|
|
3690
3782
|
}
|
|
3691
3783
|
handleSymbol() {
|
|
@@ -8067,5 +8159,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
|
|
|
8067
8159
|
* Generated bundle index. Do not edit.
|
|
8068
8160
|
*/
|
|
8069
8161
|
|
|
8070
|
-
export { MonkeyBadgeComponent, MonkeyBadgeModule, MonkeyButtonAvatarComponent, MonkeyButtonComponent, MonkeyButtonDropdownComponent, MonkeyButtonModule, MonkeyCheckboxComponent, MonkeyCheckboxModule, MonkeyDateRangePickerComponent, MonkeyDateRangePickerModule, MonkeyExpansionComponent, MonkeyExpansionModule, MonkeyFileUploadComponent, MonkeyFileUploadModule, MonkeyIconArrowLeftComponent, MonkeyIconArrowRightComponent, MonkeyIconArrowUpComponent, MonkeyIconAuctionComponent, MonkeyIconBankComponent, MonkeyIconBellComponent, MonkeyIconBookComponent, MonkeyIconBoxComponent, MonkeyIconCNPJComponent, MonkeyIconCalendarComponent, MonkeyIconCameraComponent, MonkeyIconChatComponent, MonkeyIconCheckCircleComponent, MonkeyIconCheckCircleOutComponent, MonkeyIconCheckComponent, MonkeyIconCheckGreyComponent, MonkeyIconCheckWhiteComponent, MonkeyIconClipboardComponent, MonkeyIconClockComponent, MonkeyIconCloseComponent, MonkeyIconCodepenComponent, MonkeyIconCompanyNameComponent, MonkeyIconComponent, MonkeyIconContractComponent, MonkeyIconDeleteComponent, MonkeyIconDocumentComponent, MonkeyIconDollarSignComponent, MonkeyIconDomainComponent, MonkeyIconDownloadComponent, MonkeyIconEditComponent, MonkeyIconEmailComponent, MonkeyIconEmptyDocComponent, MonkeyIconErrorComponent, MonkeyIconEyeClosedComponent, MonkeyIconEyeOpenComponent, MonkeyIconFilterComponent, MonkeyIconGridComponent, MonkeyIconHelpComponent, MonkeyIconHexagonComponent, MonkeyIconHomeComponent, MonkeyIconImageComponent, MonkeyIconListComponent, MonkeyIconLocationPinComponent, MonkeyIconLoginComponent, MonkeyIconLogoutComponent, MonkeyIconMenuComponent, MonkeyIconModule, MonkeyIconMoneySignComponent, MonkeyIconMoreComponent, MonkeyIconOfferedComponent, MonkeyIconPasswordComponent, MonkeyIconPeopleComponent, MonkeyIconPercentComponent, MonkeyIconPersonDocumentComponent, MonkeyIconPersonSadComponent, MonkeyIconPhoneComponent, MonkeyIconPorkComponent, MonkeyIconRadioComponent, MonkeyIconRefreshComponent, MonkeyIconRepeatComponent, MonkeyIconSearchComponent, MonkeyIconSecondWarningComponent, MonkeyIconSettingsComponent, MonkeyIconTrashComponent, MonkeyIconTrophyComponent, MonkeyIconUploadComponent, MonkeyIconUserComponent, MonkeyIconWaitingComponent, MonkeyIconWalletComponent, MonkeyIconWarningComponent, MonkeyImageCropComponent, MonkeyImageCropModule, MonkeyInputComponent, MonkeyInputFilterComponent, MonkeyInputModule, MonkeyInputPhoneComponent, MonkeyInputPhoneModule, MonkeyModalComponent, MonkeyModalModule, MonkeyOptionComponent, MonkeyOptionModule, MonkeyRadioButtonComponent, MonkeyRadioButtonModule, MonkeySelectComponent, MonkeySelectFilterComponent, MonkeySelectModule, MonkeySelectMultipleComponent, MonkeySelectSearchComponent, MonkeyStepperComponent, MonkeyStepperModule, MonkeyStyleGuideModalFixedService, MonkeyStyleGuideModalService, MonkeyStyleGuideModule, MonkeyStyleGuideSettingsService, MonkeyStyleGuideSnackbarService, MonkeyTabComponent, MonkeyTabModule, MonkeyTableColumnComponent, MonkeyTableComponent, MonkeyTableModule, MonkeyToggleComponent, MonkeyToggleModule, MonkeyUtils, MonkeyWizardComponent, MonkeyWizardModule, PhoneNumberValidDirective };
|
|
8162
|
+
export { MonkeyBadgeComponent, MonkeyBadgeModule, MonkeyButtonAvatarComponent, MonkeyButtonComponent, MonkeyButtonDropdownComponent, MonkeyButtonLoadingComponent, MonkeyButtonModule, MonkeyCheckboxComponent, MonkeyCheckboxModule, MonkeyDateRangePickerComponent, MonkeyDateRangePickerModule, MonkeyExpansionComponent, MonkeyExpansionModule, MonkeyFileUploadComponent, MonkeyFileUploadModule, MonkeyIconArrowLeftComponent, MonkeyIconArrowRightComponent, MonkeyIconArrowUpComponent, MonkeyIconAuctionComponent, MonkeyIconBankComponent, MonkeyIconBellComponent, MonkeyIconBookComponent, MonkeyIconBoxComponent, MonkeyIconCNPJComponent, MonkeyIconCalendarComponent, MonkeyIconCameraComponent, MonkeyIconChatComponent, MonkeyIconCheckCircleComponent, MonkeyIconCheckCircleOutComponent, MonkeyIconCheckComponent, MonkeyIconCheckGreyComponent, MonkeyIconCheckWhiteComponent, MonkeyIconClipboardComponent, MonkeyIconClockComponent, MonkeyIconCloseComponent, MonkeyIconCodepenComponent, MonkeyIconCompanyNameComponent, MonkeyIconComponent, MonkeyIconContractComponent, MonkeyIconDeleteComponent, MonkeyIconDocumentComponent, MonkeyIconDollarSignComponent, MonkeyIconDomainComponent, MonkeyIconDownloadComponent, MonkeyIconEditComponent, MonkeyIconEmailComponent, MonkeyIconEmptyDocComponent, MonkeyIconErrorComponent, MonkeyIconEyeClosedComponent, MonkeyIconEyeOpenComponent, MonkeyIconFilterComponent, MonkeyIconGridComponent, MonkeyIconHelpComponent, MonkeyIconHexagonComponent, MonkeyIconHomeComponent, MonkeyIconImageComponent, MonkeyIconListComponent, MonkeyIconLocationPinComponent, MonkeyIconLoginComponent, MonkeyIconLogoutComponent, MonkeyIconMenuComponent, MonkeyIconModule, MonkeyIconMoneySignComponent, MonkeyIconMoreComponent, MonkeyIconOfferedComponent, MonkeyIconPasswordComponent, MonkeyIconPeopleComponent, MonkeyIconPercentComponent, MonkeyIconPersonDocumentComponent, MonkeyIconPersonSadComponent, MonkeyIconPhoneComponent, MonkeyIconPorkComponent, MonkeyIconRadioComponent, MonkeyIconRefreshComponent, MonkeyIconRepeatComponent, MonkeyIconSearchComponent, MonkeyIconSecondWarningComponent, MonkeyIconSettingsComponent, MonkeyIconTrashComponent, MonkeyIconTrophyComponent, MonkeyIconUploadComponent, MonkeyIconUserComponent, MonkeyIconWaitingComponent, MonkeyIconWalletComponent, MonkeyIconWarningComponent, MonkeyImageCropComponent, MonkeyImageCropModule, MonkeyInputComponent, MonkeyInputFilterComponent, MonkeyInputModule, MonkeyInputPhoneComponent, MonkeyInputPhoneModule, MonkeyModalComponent, MonkeyModalModule, MonkeyOptionComponent, MonkeyOptionModule, MonkeyRadioButtonComponent, MonkeyRadioButtonModule, MonkeySelectComponent, MonkeySelectFilterComponent, MonkeySelectModule, MonkeySelectMultipleComponent, MonkeySelectSearchComponent, MonkeyStepperComponent, MonkeyStepperModule, MonkeyStyleGuideModalFixedService, MonkeyStyleGuideModalService, MonkeyStyleGuideModule, MonkeyStyleGuideSettingsService, MonkeyStyleGuideSnackbarService, MonkeyTabComponent, MonkeyTabModule, MonkeyTableColumnComponent, MonkeyTableComponent, MonkeyTableModule, MonkeyToggleComponent, MonkeyToggleModule, MonkeyUtils, MonkeyWizardComponent, MonkeyWizardModule, PhoneNumberValidDirective };
|
|
8071
8163
|
//# sourceMappingURL=monkey-style-guide.mjs.map
|