zek 14.2.38 → 14.2.48
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/esm2020/lib/components/base.component.mjs +3 -2
- package/esm2020/lib/components/core-ui.component.mjs +20 -5
- package/esm2020/lib/modules/age/age.pipe.mjs +2 -3
- package/esm2020/lib/modules/alert/alert/alert.component.mjs +1 -1
- package/esm2020/lib/modules/bb/bb-modal-base.component.mjs +9 -2
- package/esm2020/lib/modules/bb/bb-modal-toolbar.mjs +9 -2
- package/esm2020/lib/modules/bb/bb.component.mjs +32 -8
- package/esm2020/lib/modules/card/card/card.component.mjs +1 -1
- package/esm2020/lib/modules/edit-toolbar/edit-toolbar.component.mjs +23 -4
- package/esm2020/lib/modules/file/file-size.pipe.mjs +3 -3
- package/esm2020/lib/modules/grid-toolbar/grid-toolbar/grid-toolbar.component.mjs +72 -11
- package/esm2020/lib/modules/index.mjs +3 -1
- package/esm2020/lib/modules/list-toolbar/list-toolbar.component.mjs +44 -7
- package/esm2020/lib/modules/modal/modal/modal.component.mjs +72 -8
- package/esm2020/lib/modules/page-title/page-title.component.mjs +11 -1
- package/esm2020/lib/modules/pager/pager/pager.component.mjs +9 -2
- package/esm2020/lib/modules/password/password.component.mjs +9 -2
- package/esm2020/lib/modules/radio/radio-button.component.mjs +3 -3
- package/esm2020/lib/modules/readonly/readonly.directive.mjs +5 -5
- package/esm2020/lib/modules/select/index.mjs +3 -0
- package/esm2020/lib/modules/select/model.mjs +4 -0
- package/esm2020/lib/modules/select/module.mjs +28 -0
- package/esm2020/lib/modules/select/select.mjs +198 -0
- package/esm2020/lib/modules/select2/select2.component.mjs +1 -1
- package/esm2020/lib/modules/select2-multiple/select2-multiple.component.mjs +1 -1
- package/esm2020/lib/modules/validator/field-validator.component.mjs +1 -1
- package/esm2020/lib/modules/validators/directive.mjs +75 -0
- package/esm2020/lib/modules/validators/index.mjs +4 -0
- package/esm2020/lib/modules/validators/module.mjs +22 -0
- package/esm2020/lib/modules/validators/validator.mjs +72 -0
- package/esm2020/lib/modules/wizard/wizard/wizard.component.mjs +1 -1
- package/esm2020/lib/services/auth.service.mjs +2 -2
- package/esm2020/lib/utils/array-helper.mjs +25 -9
- package/esm2020/lib/utils/bitwise-helper.mjs +3 -3
- package/esm2020/lib/utils/convert.mjs +1 -1
- package/esm2020/lib/utils/date-helper.mjs +2 -2
- package/esm2020/lib/utils/filter-helper.mjs +2 -2
- package/esm2020/lib/utils/object-helper.mjs +17 -4
- package/esm2020/lib/utils/string-helper.mjs +9 -18
- package/esm2020/lib/utils/time-helper.mjs +2 -2
- package/fesm2015/zek.mjs +734 -91
- package/fesm2015/zek.mjs.map +1 -1
- package/fesm2020/zek.mjs +734 -91
- package/fesm2020/zek.mjs.map +1 -1
- package/lib/components/base.component.d.ts +3 -2
- package/lib/components/core-ui.component.d.ts +9 -4
- package/lib/modules/bb/bb-modal-base.component.d.ts +4 -2
- package/lib/modules/bb/bb-modal-toolbar.d.ts +4 -1
- package/lib/modules/bb/bb.component.d.ts +13 -10
- package/lib/modules/edit-toolbar/edit-toolbar.component.d.ts +10 -3
- package/lib/modules/grid-toolbar/grid-toolbar/grid-toolbar.component.d.ts +31 -10
- package/lib/modules/index.d.ts +2 -0
- package/lib/modules/list-toolbar/list-toolbar.component.d.ts +19 -6
- package/lib/modules/modal/modal/modal.component.d.ts +31 -11
- package/lib/modules/page-title/page-title.component.d.ts +4 -1
- package/lib/modules/pager/pager/pager.component.d.ts +4 -1
- package/lib/modules/password/password.component.d.ts +4 -1
- package/lib/modules/radio/radio-button.component.d.ts +0 -6
- package/lib/modules/readonly/readonly.directive.d.ts +3 -2
- package/lib/modules/select/index.d.ts +2 -0
- package/lib/modules/select/model.d.ts +5 -0
- package/lib/modules/select/module.d.ts +9 -0
- package/lib/modules/select/select.d.ts +42 -0
- package/lib/modules/validators/directive.d.ts +67 -0
- package/lib/modules/validators/index.d.ts +3 -0
- package/lib/modules/validators/module.d.ts +8 -0
- package/lib/modules/validators/validator.d.ts +33 -0
- package/lib/utils/array-helper.d.ts +2 -1
- package/lib/utils/bitwise-helper.d.ts +2 -2
- package/lib/utils/object-helper.d.ts +6 -0
- package/lib/utils/string-helper.d.ts +3 -3
- package/package.json +1 -1
|
@@ -133,7 +133,7 @@ export class DateHelper {
|
|
|
133
133
|
;
|
|
134
134
|
// 1 2 3 4 5 6 7 8 9 10 11
|
|
135
135
|
static parseDate(value) {
|
|
136
|
-
if (value
|
|
136
|
+
if (typeof value === 'undefined' || value == null || value === '')
|
|
137
137
|
return null;
|
|
138
138
|
return this.toDate(value);
|
|
139
139
|
}
|
|
@@ -216,4 +216,4 @@ export class DateHelper {
|
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
218
|
DateHelper.ISO8601_DATE_REGEX = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi91dGlscy9kYXRlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE1BQU0sT0FBTyxVQUFVO0lBRW5CLE1BQU0sQ0FBQyxPQUFPO1FBQ1YsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQUEsQ0FBQztJQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBb0IsRUFBRSxNQUFvQjtRQUNwRCxJQUFJLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNyRSxJQUFJLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUdyRSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNoQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFXLEVBQUUsR0FBUztRQUNsQyxJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBUSxDQUFDO1FBQzlCLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3JD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LE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDakUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBVTtRQUNwQixPQUFPLEtBQUssWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7QUFsR00sNkJBQWtCLEdBQ3JCLHNHQUFzRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGltZUhlbHBlciB9IGZyb20gXCIuL3RpbWUtaGVscGVyXCI7XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRlSGVscGVyIHtcclxuXHJcbiAgICBzdGF0aWMgbWluRGF0ZSgpIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoMCk7XHJcbiAgICB9O1xyXG5cclxuICAgIHN0YXRpYyBlcXVhbHModmFsdWUxPzogRGF0ZSB8IG51bGwsIHZhbHVlMj86IERhdGUgfCBudWxsKSB7XHJcbiAgICAgICAgbGV0IHZhbDEgPSAodmFsdWUxID09PSB1bmRlZmluZWQgfHwgdmFsdWUxID09PSBudWxsKSA/IG51bGwgOiB2YWx1ZTE7XHJcbiAgICAgICAgbGV0IHZhbDIgPSAodmFsdWUyID09PSB1bmRlZmluZWQgfHwgdmFsdWUyID09PSBudWxsKSA/IG51bGwgOiB2YWx1ZTI7XHJcblxyXG5cclxuICAgICAgICBpZiAodmFsMSA9PT0gdmFsMikge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdmFsMSB8fCAhdmFsMikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsMS5nZXRUaW1lKCkgPT09IHZhbDIuZ2V0VGltZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXREYXRlcyhzdGFydDogRGF0ZSwgZW5kOiBEYXRlKSB7XHJcbiAgICAgICAgdmFyIGRhdGVzID0gbmV3IEFycmF5PERhdGU+KCk7XHJcbiAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZShzdGFydC52YWx1ZU9mKCkpO1xyXG4gICAgICAgIHdoaWxlIChkYXRlIDw9IGVuZCkge1xyXG4gICAgICAgICAgICBkYXRlcy5wdXNoKG5ldyBEYXRlKGRhdGUpKTtcclxuICAgICAgICAgICAgZGF0ZSA9IHRoaXMuYWRkRGF5cyhkYXRlLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRhdGVzO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBkYXRlT25seSh2YWx1ZTogRGF0ZSkge1xyXG4gICAgICAgIGxldCB5ZWFyID0gdmFsdWUuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgICBsZXQgbW9udGggPSB2YWx1ZS5nZXRNb250aCgpO1xyXG4gICAgICAgIGxldCBkYXkgPSB2YWx1ZS5nZXREYXRlKCk7XHJcbiAgICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5KSk7XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB0b0lTT0RhdGVTdHJpbmcodmFsdWU6IERhdGUgfCBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgZGF0ZSA9IHRoaXMucGFyc2VEYXRlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKCFkYXRlKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgbGV0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgLy8gQWRkICsxIHRvIG1vbnRoIHNpbmNlIDAgaXMgSmFudWFyeVxyXG4gICAgICAgIGxldCBtb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XHJcbiAgICAgICAgbGV0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG5cclxuICAgICAgICBsZXQgc3RyID0gYCR7eWVhcn0tJHttb250aCA8IDEwID8gJzAnIDogJyd9JHttb250aH0tJHtkYXkgPCAxMCA/ICcwJyA6ICcnfSR7ZGF5fWA7XHJcbiAgICAgICAgLy9zdHIgPSB5ZWFyLnRvU3RyaW5nKCkgKyBcIi1cIiArIChtb250aCArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpICsgXCItXCIgKyBkYXkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIik7XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBhZGRUaW1lKHZhbHVlOiBEYXRlLCB0aW1lOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XHJcbiAgICAgICAgbGV0IHRtcCA9IFRpbWVIZWxwZXIucGFyc2VUaW1lKHRpbWUpO1xyXG4gICAgICAgIGlmICghdG1wKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgICAgIGxldCB0aW1lRGF0ZSA9IG5ldyBEYXRlKCcxOTcwLTAxLTAxVCcgKyB0aW1lICsgJ1onKTtcclxuICAgICAgICBsZXQgZGF0ZSA9IHZhbHVlO1xyXG4gICAgICAgIGRhdGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSArIHRpbWVEYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9O1xyXG4gICAgc3RhdGljIGFkZFllYXJzKHY6IERhdGUsIHllYXJzOiBudW1iZXIpOiBEYXRlIHtcclxuICAgICAgICBpZiAoIXllYXJzKSByZXR1cm4gdjtcclxuXHJcbiAgICAgICAgbGV0IGRhdGUgPSB2O1xyXG4gICAgICAgIGRhdGUuc2V0RnVsbFllYXIodi5nZXRGdWxsWWVhcigpICsgeWVhcnMpO1xyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGFkZERheXModjogRGF0ZSwgZGF5czogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFkYXlzKSByZXR1cm4gdjtcclxuXHJcbiAgICAgICAgbGV0IGRhdGUgPSB2O1xyXG4gICAgICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIGRheXMpO1xyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfTtcclxuICAgIHN0YXRpYyBhZGRNaW51dGVzKHY6IERhdGUsIG1pbnV0ZXM6IG51bWJlcikge1xyXG4gICAgICAgIGlmICghbWludXRlcykgcmV0dXJuIHY7XHJcblxyXG4gICAgICAgIGxldCBkYXRlID0gdjtcclxuICAgICAgICAvL3RvZG8gbmVlZCB0byBjaGVjayBpZiB0aGlzIGxpbmUgbmVlZHMgLS0+IGRhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgICAgZGF0ZS5zZXRNaW51dGVzKGRhdGUuZ2V0TWludXRlcygpICsgbWludXRlcyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgYWRkU2Vjb25kcyh2OiBEYXRlLCBzZWNvbmRzOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAoIXNlY29uZHMpIHJldHVybiB2O1xyXG5cclxuICAgICAgICBsZXQgZGF0ZSA9IHY7XHJcbiAgICAgICAgZGF0ZS5zZXRTZWNvbmRzKGRhdGUuZ2V0U2Vjb25kcygpICsgc2Vjb25kcyk7XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfTtcclxuICAgIHN0YXRpYyBpc1RvZGF5KGRhdGU6IERhdGUpIHtcclxuICAgICAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZURhdGUoZGF0ZSwgdG9kYXkpO1xyXG4gICAgfTtcclxuICAgIHN0YXRpYyBjbG9uZShkYXRlOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCtkYXRlKTtcclxuICAgIH07XHJcbiAgICBzdGF0aWMgaXNBbm90aGVyTW9udGgoYTogRGF0ZSwgYjogRGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBiICYmIGEuZ2V0TW9udGgoKSAhPT0gYi5nZXRNb250aCgpO1xyXG4gICAgfTtcclxuICAgIHN0YXRpYyBpc1dlZWtlbmQodjogRGF0ZSwpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdi5nZXREYXkoKSA9PT0gMCB8fCB2LmdldERheSgpID09PSA2O1xyXG4gICAgfTtcclxuICAgIHN0YXRpYyBpc1NhbWVEYXRlKGE6IERhdGUsIGI6IERhdGUpIHtcclxuICAgICAgICByZXR1cm4gYiAmJiBhLmdldEZ1bGxZZWFyKCkgPT09IGIuZ2V0RnVsbFllYXIoKSAmJiBhLmdldE1vbnRoKCkgPT09IGIuZ2V0TW9udGgoKSAmJiBhLmdldERhdGUoKSA9PT0gYi5nZXREYXRlKCk7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICBzdGF0aWMgZ2V0QWdlKHZhbHVlPzogRGF0ZSB8IHN0cmluZyB8IG51bGwsIG5vdz86IERhdGUgfCBudWxsKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnIHx8IHZhbHVlICE9PSB2YWx1ZSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLnRvRGF0ZSh2YWx1ZSk7XHJcblxyXG4gICAgICAgIGxldCBub3dUaW1lID0gbm93ID8gbm93LmdldFRpbWUoKSA6IERhdGUubm93KCk7XHJcbiAgICAgICAgbGV0IHRpbWVEaWZmID0gbm93VGltZSAtIGRhdGUuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcigodGltZURpZmYgLyA4NjQwMDAwMCkgLyAzNjUuMjUpOy8vODY0MDAwMDAgPSAoMTAwMCAqIDYwICogNjAgKiAyNCkgPSAxMDAwIG1pbGxpc2Vjb25kICogNjBzZWNvbmQgICogNjBtaW51dGUgKiAyNGhvdXJcclxuICAgIH07XHJcbiAgICBzdGF0aWMgc3VidHJhY3REYXlzKHZhbHVlOiBEYXRlLCBkYXRlPzogRGF0ZSB8IG51bGwpIHtcclxuICAgICAgICBpZiAoIWRhdGUpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBkYXRlID0gdGhpcy50b0RhdGUoZGF0ZSk7XHJcbiAgICAgICAgbGV0IHRpbWVEaWZmID0gZGF0ZS5nZXRUaW1lKCkgLSB2YWx1ZS5nZXRUaW1lKCk7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IodGltZURpZmYgLyA4NjQwMDAwMCk7Ly84NjQwMDAwMCA9ICgxMDAwICogNjAgKiA2MCAqIDI0KSA9IDEwMDAgbWlsbGlzZWNvbmQgKiA2MHNlY29uZCAgKiA2MG1pbnV0ZSAqIDI0aG91clxyXG4gICAgfTtcclxuICAgIHN0YXRpYyBzdWJ0cmFjdE1pbnV0ZXModmFsdWU6IERhdGUsIGRhdGU/OiBEYXRlIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICghZGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGRhdGUgPSB0aGlzLnRvRGF0ZShkYXRlKTtcclxuICAgICAgICBsZXQgdGltZURpZmYgPSBkYXRlLmdldFRpbWUoKSAtIHZhbHVlLmdldFRpbWUoKTtcclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcigoKHRpbWVEaWZmICUgODY0MDAwMDApICUgMzYwMDAwMCkgLyA2MDAwMCk7O1xyXG4gICAgfTtcclxuXHJcblxyXG5cclxuXHJcbiAgICBzdGF0aWMgSVNPODYwMV9EQVRFX1JFR0VYID1cclxuICAgICAgICAvXihcXGR7NH0pLT8oXFxkXFxkKS0/KFxcZFxcZCkoPzpUKFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86Oj8oXFxkXFxkKSg/OlxcLihcXGQrKSk/KT8pPyhafChbKy1dKShcXGRcXGQpOj8oXFxkXFxkKSk/KT8kLztcclxuICAgIC8vICAgICAgICAxICAgICAgICAyICAgICAgIDMgICAgICAgICA0ICAgICAgICAgIDUgICAgICAgICAgNiAgICAgICAgICA3ICAgICAgICAgIDggIDkgICAgIDEwICAgICAgMTFcclxuXHJcblxyXG4gICAgc3RhdGljIHBhcnNlRGF0ZSh2YWx1ZTogYW55KTogRGF0ZSB8IG51bGwge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gbnVsbDtcclxuICAgICAgICByZXR1cm4gdGhpcy50b0RhdGUodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBleHBvcnQgZnVuY3Rpb24gdG9EYXRlKHZhbHVlOiBzdHJpbmd8bnVtYmVyfERhdGUpOiBEYXRlIHRoaXMgZnVuY3Rpb24gaXMgaW1wb3J0ZWQgZnJvbSBkYXRlIHBpcGUgXHJcbiAgICAvLyBwYWNrYWdlcy9jb21tb24vc3JjL2kxOG4vZm9ybWF0X2RhdGUudHNcclxuXHJcbiAgICAvKioqXHJcbiAgICAgKiBDb252ZXJ0cyBhIHZhbHVlIHRvIGRhdGUuXHJcbiAgICAgKlxyXG4gICAgICogU3VwcG9ydGVkIGlucHV0IGZvcm1hdHM6XHJcbiAgICAgKiAtIGBEYXRlYFxyXG4gICAgICogLSBudW1iZXI6IHRpbWVzdGFtcFxyXG4gICAgICogLSBzdHJpbmc6IG51bWVyaWMgKGUuZy4gXCIxMjM0XCIpLCBJU08gYW5kIGRhdGUgc3RyaW5ncyBpbiBhIGZvcm1hdCBzdXBwb3J0ZWQgYnlcclxuICAgICAqICAgW0RhdGUucGFyc2UoKV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS9wYXJzZSkuXHJcbiAgICAgKiAgIE5vdGU6IElTTyBzdHJpbmdzIHdpdGhvdXQgdGltZSByZXR1cm4gYSBkYXRlIHdpdGhvdXQgdGltZW9mZnNldC5cclxuICAgICAqXHJcbiAgICAgKiBUaHJvd3MgaWYgdW5hYmxlIHRvIGNvbnZlcnQgdG8gYSBkYXRlLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgdG9EYXRlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlKTogRGF0ZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNEYXRlKHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiAhaXNOYU4odmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZE5iID0gcGFyc2VGbG9hdCh2YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAvLyBhbnkgc3RyaW5nIHRoYXQgb25seSBjb250YWlucyBudW1iZXJzLCBsaWtlIFwiMTIzNFwiIGJ1dCBub3QgbGlrZSBcIjEyMzRoZWxsb1wiXHJcbiAgICAgICAgICAgIGlmICghaXNOYU4odmFsdWUgYXMgYW55IC0gcGFyc2VkTmIpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUocGFyc2VkTmIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoL14oXFxkezR9LVxcZHsxLDJ9LVxcZHsxLDJ9KSQvLnRlc3QodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBGb3IgSVNPIFN0cmluZ3Mgd2l0aG91dCB0aW1lIHRoZSBkYXksIG1vbnRoIGFuZCB5ZWFyIG11c3QgYmUgZXh0cmFjdGVkIGZyb20gdGhlIElTTyBTdHJpbmdcclxuICAgICAgICAgICAgICAgIGJlZm9yZSBEYXRlIGNyZWF0aW9uIHRvIGF2b2lkIHRpbWUgb2Zmc2V0IGFuZCBlcnJvcnMgaW4gdGhlIG5ldyBEYXRlLlxyXG4gICAgICAgICAgICAgICAgSWYgd2Ugb25seSByZXBsYWNlICctJyB3aXRoICcsJyBpbiB0aGUgSVNPIFN0cmluZyAoXCIyMDE1LDAxLDAxXCIpLCBhbmQgdHJ5IHRvIGNyZWF0ZSBhIG5ld1xyXG4gICAgICAgICAgICAgICAgZGF0ZSwgc29tZSBicm93c2VycyAoZS5nLiBJRSA5KSB3aWxsIHRocm93IGFuIGludmFsaWQgRGF0ZSBlcnJvci5cclxuICAgICAgICAgICAgICAgIElmIHdlIGxlYXZlIHRoZSAnLScgKFwiMjAxNS0wMS0wMVwiKSBhbmQgdHJ5IHRvIGNyZWF0ZSBhIG5ldyBEYXRlKFwiMjAxNS0wMS0wMVwiKSB0aGUgdGltZW9mZnNldFxyXG4gICAgICAgICAgICAgICAgaXMgYXBwbGllZC5cclxuICAgICAgICAgICAgICAgIE5vdGU6IElTTyBtb250aHMgYXJlIDAgZm9yIEphbnVhcnksIDEgZm9yIEZlYnJ1YXJ5LCAuLi4gKi9cclxuICAgICAgICAgICAgICAgIGNvbnN0IFt5LCBtLCBkXSA9IHZhbHVlLnNwbGl0KCctJykubWFwKCh2YWw6IHN0cmluZykgPT4gK3ZhbCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoeSwgbSAtIDEsIGQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgbWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsO1xyXG4gICAgICAgICAgICBpZiAobWF0Y2ggPSB2YWx1ZS5tYXRjaCh0aGlzLklTTzg2MDFfREFURV9SRUdFWCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzb1N0cmluZ1RvRGF0ZShtYXRjaCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSBhcyBhbnkpO1xyXG4gICAgICAgIGlmICghdGhpcy5pc0RhdGUoZGF0ZSkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gY29udmVydCBcIiR7dmFsdWV9XCIgaW50byBhIGRhdGVgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb252ZXJ0cyBhIGRhdGUgaW4gSVNPODYwMSB0byBhIERhdGUuXHJcbiAgICAgKiBVc2VkIGluc3RlYWQgb2YgYERhdGUucGFyc2VgIGJlY2F1c2Ugb2YgYnJvd3NlciBkaXNjcmVwYW5jaWVzLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNvU3RyaW5nVG9EYXRlKG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5KTogRGF0ZSB7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDApO1xyXG4gICAgICAgIGxldCB0ekhvdXIgPSAwO1xyXG4gICAgICAgIGxldCB0ek1pbiA9IDA7XHJcblxyXG4gICAgICAgIC8vIG1hdGNoWzhdIG1lYW5zIHRoYXQgdGhlIHN0cmluZyBjb250YWlucyBcIlpcIiAoVVRDKSBvciBhIHRpbWV6b25lIGxpa2UgXCIrMDE6MDBcIiBvciBcIiswMTAwXCJcclxuICAgICAgICBjb25zdCBkYXRlU2V0dGVyID0gbWF0Y2hbOF0gPyBkYXRlLnNldFVUQ0Z1bGxZZWFyIDogZGF0ZS5zZXRGdWxsWWVhcjtcclxuICAgICAgICBjb25zdCB0aW1lU2V0dGVyID0gbWF0Y2hbOF0gPyBkYXRlLnNldFVUQ0hvdXJzIDogZGF0ZS5zZXRIb3VycztcclxuXHJcbiAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSB0aW1lem9uZSBkZWZpbmVkIGxpa2UgXCIrMDE6MDBcIiBvciBcIiswMTAwXCJcclxuICAgICAgICBpZiAobWF0Y2hbOV0pIHtcclxuICAgICAgICAgICAgdHpIb3VyID0gTnVtYmVyKG1hdGNoWzldICsgbWF0Y2hbMTBdKTtcclxuICAgICAgICAgICAgdHpNaW4gPSBOdW1iZXIobWF0Y2hbOV0gKyBtYXRjaFsxMV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkYXRlU2V0dGVyLmNhbGwoZGF0ZSwgTnVtYmVyKG1hdGNoWzFdKSwgTnVtYmVyKG1hdGNoWzJdKSAtIDEsIE51bWJlcihtYXRjaFszXSkpO1xyXG4gICAgICAgIGNvbnN0IGggPSBOdW1iZXIobWF0Y2hbNF0gfHwgMCkgLSB0ekhvdXI7XHJcbiAgICAgICAgY29uc3QgbSA9IE51bWJlcihtYXRjaFs1XSB8fCAwKSAtIHR6TWluO1xyXG4gICAgICAgIGNvbnN0IHMgPSBOdW1iZXIobWF0Y2hbNl0gfHwgMCk7XHJcbiAgICAgICAgY29uc3QgbXMgPSBNYXRoLnJvdW5kKHBhcnNlRmxvYXQoJzAuJyArIChtYXRjaFs3XSB8fCAwKSkgKiAxMDAwKTtcclxuICAgICAgICB0aW1lU2V0dGVyLmNhbGwoZGF0ZSwgaCwgbSwgcywgbXMpO1xyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0RhdGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIERhdGUge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKHZhbHVlLnZhbHVlT2YoKSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi91dGlscy9kYXRlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE1BQU0sT0FBTyxVQUFVO0lBRW5CLE1BQU0sQ0FBQyxPQUFPO1FBQ1YsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQUEsQ0FBQztJQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBb0IsRUFBRSxNQUFvQjtRQUNwRCxJQUFJLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNyRSxJQUFJLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUdyRSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNoQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFXLEVBQUUsR0FBUztRQUNsQyxJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBUSxDQUFDO1FBQzlCLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRTtZQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBVztRQUN2QixJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0IsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVoRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFvQjtRQUN2QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxJQUFJO1lBQ0wsT0FBTyxJQUFJLENBQUM7UUFFaEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlCLHFDQUFxQztRQUNyQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUV6QixJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDbEYsZ0hBQWdIO1FBQ2hILE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUlELE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBVyxFQUFFLElBQStCO1FBQ3ZELElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV2QixJQUFJLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUEsQ0FBQztJQUNGLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBTyxFQUFFLEtBQWE7UUFDbEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUVyQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFPLEVBQUUsSUFBWTtRQUNoQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXBCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQSxDQUFDO0lBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFPLEVBQUUsT0FBZTtRQUN0QyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXZCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFPLEVBQUUsT0FBZTtRQUN0QyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXZCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRTdDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQSxDQUFDO0lBQ0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFVO1FBQ3JCLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQUEsQ0FBQztJQUNGLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUNuQixPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUFBLENBQUM7SUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLENBQU8sRUFBRSxDQUFPO1FBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUFBLENBQUM7SUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLENBQU87UUFDcEIsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUFBLENBQUM7SUFDRixNQUFNLENBQUMsVUFBVSxDQUFDLENBQU8sRUFBRSxDQUFPO1FBQzlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BILENBQUM7SUFBQSxDQUFDO0lBR0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUE0QixFQUFFLEdBQWlCO1FBQ3pELElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxLQUFLLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUUxRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhDLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0MsSUFBSSxRQUFRLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUV4QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQSxxRkFBcUY7SUFDM0ksQ0FBQztJQUFBLENBQUM7SUFDRixNQUFNLENBQUMsWUFBWSxDQUFDLEtBQVcsRUFBRSxJQUFrQjtRQUMvQyxJQUFJLENBQUMsSUFBSTtZQUNMLE9BQU8sSUFBSSxDQUFDO1FBRWhCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFBLHFGQUFxRjtJQUNoSSxDQUFDO0lBQUEsQ0FBQztJQUNGLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBVyxFQUFFLElBQWtCO1FBQ2xELElBQUksQ0FBQyxJQUFJO1lBQ0wsT0FBTyxJQUFJLENBQUM7UUFFaEIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUFBLENBQUM7SUFDbEUsQ0FBQztJQUFBLENBQUM7SUFPRixvR0FBb0c7SUFHcEcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELHFHQUFxRztJQUNyRywwQ0FBMEM7SUFFMUM7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQTZCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVuQyw4RUFBOEU7WUFDOUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFZLEdBQUcsUUFBUSxDQUFDLEVBQUU7Z0JBQ2pDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0I7WUFFRCxJQUFJLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDekM7Ozs7OzswRUFNMEQ7Z0JBQzFELE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5RCxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2hDO1lBRUQsSUFBSSxLQUE4QixDQUFDO1lBQ25DLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQzlDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QztTQUNKO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBWSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsS0FBSyxlQUFlLENBQUMsQ0FBQztTQUMvRDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQXVCO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLDJGQUEyRjtRQUMzRixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckUsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRS9ELDBEQUEwRDtRQUMxRCxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNWLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDekMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDeEMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqRSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFVO1FBQ3BCLE9BQU8sS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDOztBQWxHTSw2QkFBa0IsR0FDckIsc0dBQXNHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaW1lSGVscGVyIH0gZnJvbSBcIi4vdGltZS1oZWxwZXJcIjtcclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVIZWxwZXIge1xyXG5cclxuICAgIHN0YXRpYyBtaW5EYXRlKCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSgwKTtcclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIGVxdWFscyh2YWx1ZTE/OiBEYXRlIHwgbnVsbCwgdmFsdWUyPzogRGF0ZSB8IG51bGwpIHtcclxuICAgICAgICBsZXQgdmFsMSA9ICh2YWx1ZTEgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZTEgPT09IG51bGwpID8gbnVsbCA6IHZhbHVlMTtcclxuICAgICAgICBsZXQgdmFsMiA9ICh2YWx1ZTIgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZTIgPT09IG51bGwpID8gbnVsbCA6IHZhbHVlMjtcclxuXHJcblxyXG4gICAgICAgIGlmICh2YWwxID09PSB2YWwyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF2YWwxIHx8ICF2YWwyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YWwxLmdldFRpbWUoKSA9PT0gdmFsMi5nZXRUaW1lKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldERhdGVzKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUpIHtcclxuICAgICAgICB2YXIgZGF0ZXMgPSBuZXcgQXJyYXk8RGF0ZT4oKTtcclxuICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHN0YXJ0LnZhbHVlT2YoKSk7XHJcbiAgICAgICAgd2hpbGUgKGRhdGUgPD0gZW5kKSB7XHJcbiAgICAgICAgICAgIGRhdGVzLnB1c2gobmV3IERhdGUoZGF0ZSkpO1xyXG4gICAgICAgICAgICBkYXRlID0gdGhpcy5hZGREYXlzKGRhdGUsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGF0ZXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGRhdGVPbmx5KHZhbHVlOiBEYXRlKSB7XHJcbiAgICAgICAgbGV0IHllYXIgPSB2YWx1ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgIGxldCBtb250aCA9IHZhbHVlLmdldE1vbnRoKCk7XHJcbiAgICAgICAgbGV0IGRheSA9IHZhbHVlLmdldERhdGUoKTtcclxuICAgICAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXkpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHRvSVNPRGF0ZVN0cmluZyh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xyXG4gICAgICAgIGxldCBkYXRlID0gdGhpcy5wYXJzZURhdGUodmFsdWUpO1xyXG5cclxuICAgICAgICBpZiAoIWRhdGUpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBsZXQgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgICAvLyBBZGQgKzEgdG8gbW9udGggc2luY2UgMCBpcyBKYW51YXJ5XHJcbiAgICAgICAgbGV0IG1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgICAgICBsZXQgZGF5ID0gZGF0ZS5nZXREYXRlKCk7XHJcblxyXG4gICAgICAgIGxldCBzdHIgPSBgJHt5ZWFyfS0ke21vbnRoIDwgMTAgPyAnMCcgOiAnJ30ke21vbnRofS0ke2RheSA8IDEwID8gJzAnIDogJyd9JHtkYXl9YDtcclxuICAgICAgICAvL3N0ciA9IHllYXIudG9TdHJpbmcoKSArIFwiLVwiICsgKG1vbnRoICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIikgKyBcIi1cIiArIGRheS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIFwiMFwiKTtcclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgc3RhdGljIGFkZFRpbWUodmFsdWU6IERhdGUsIHRpbWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHtcclxuICAgICAgICBsZXQgdG1wID0gVGltZUhlbHBlci5wYXJzZVRpbWUodGltZSk7XHJcbiAgICAgICAgaWYgKCF0bXApIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICAgICAgbGV0IHRpbWVEYXRlID0gbmV3IERhdGUoJzE5NzAtMDEtMDFUJyArIHRpbWUgKyAnWicpO1xyXG4gICAgICAgIGxldCBkYXRlID0gdmFsdWU7XHJcbiAgICAgICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgdGltZURhdGUuZ2V0VGltZSgpKTtcclxuICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH07XHJcbiAgICBzdGF0aWMgYWRkWWVhcnModjogRGF0ZSwgeWVhcnM6IG51bWJlcik6IERhdGUge1xyXG4gICAgICAgIGlmICgheWVhcnMpIHJldHVybiB2O1xyXG5cclxuICAgICAgICBsZXQgZGF0ZSA9IHY7XHJcbiAgICAgICAgZGF0ZS5zZXRGdWxsWWVhcih2LmdldEZ1bGxZZWFyKCkgKyB5ZWFycyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgYWRkRGF5cyh2OiBEYXRlLCBkYXlzOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAoIWRheXMpIHJldHVybiB2O1xyXG5cclxuICAgICAgICBsZXQgZGF0ZSA9IHY7XHJcbiAgICAgICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgZGF5cyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9O1xyXG4gICAgc3RhdGljIGFkZE1pbnV0ZXModjogRGF0ZSwgbWludXRlczogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFtaW51dGVzKSByZXR1cm4gdjtcclxuXHJcbiAgICAgICAgbGV0IGRhdGUgPSB2O1xyXG4gICAgICAgIC8vdG9kbyBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgbGluZSBuZWVkcyAtLT4gZGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcclxuICAgICAgICBkYXRlLnNldE1pbnV0ZXMoZGF0ZS5nZXRNaW51dGVzKCkgKyBtaW51dGVzKTtcclxuICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBhZGRTZWNvbmRzKHY6IERhdGUsIHNlY29uZHM6IG51bWJlcikge1xyXG4gICAgICAgIGlmICghc2Vjb25kcykgcmV0dXJuIHY7XHJcblxyXG4gICAgICAgIGxldCBkYXRlID0gdjtcclxuICAgICAgICBkYXRlLnNldFNlY29uZHMoZGF0ZS5nZXRTZWNvbmRzKCkgKyBzZWNvbmRzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9O1xyXG4gICAgc3RhdGljIGlzVG9kYXkoZGF0ZTogRGF0ZSkge1xyXG4gICAgICAgIGxldCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lRGF0ZShkYXRlLCB0b2RheSk7XHJcbiAgICB9O1xyXG4gICAgc3RhdGljIGNsb25lKGRhdGU6IERhdGUpIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoK2RhdGUpO1xyXG4gICAgfTtcclxuICAgIHN0YXRpYyBpc0Fub3RoZXJNb250aChhOiBEYXRlLCBiOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIGIgJiYgYS5nZXRNb250aCgpICE9PSBiLmdldE1vbnRoKCk7XHJcbiAgICB9O1xyXG4gICAgc3RhdGljIGlzV2Vla2VuZCh2OiBEYXRlLCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB2LmdldERheSgpID09PSAwIHx8IHYuZ2V0RGF5KCkgPT09IDY7XHJcbiAgICB9O1xyXG4gICAgc3RhdGljIGlzU2FtZURhdGUoYTogRGF0ZSwgYjogRGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBiICYmIGEuZ2V0RnVsbFllYXIoKSA9PT0gYi5nZXRGdWxsWWVhcigpICYmIGEuZ2V0TW9udGgoKSA9PT0gYi5nZXRNb250aCgpICYmIGEuZ2V0RGF0ZSgpID09PSBiLmdldERhdGUoKTtcclxuICAgIH07XHJcblxyXG5cclxuICAgIHN0YXRpYyBnZXRBZ2UodmFsdWU/OiBEYXRlIHwgc3RyaW5nIHwgbnVsbCwgbm93PzogRGF0ZSB8IG51bGwpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgIT09IHZhbHVlKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMudG9EYXRlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgbGV0IG5vd1RpbWUgPSBub3cgPyBub3cuZ2V0VGltZSgpIDogRGF0ZS5ub3coKTtcclxuICAgICAgICBsZXQgdGltZURpZmYgPSBub3dUaW1lIC0gZGF0ZS5nZXRUaW1lKCk7XHJcblxyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKCh0aW1lRGlmZiAvIDg2NDAwMDAwKSAvIDM2NS4yNSk7Ly84NjQwMDAwMCA9ICgxMDAwICogNjAgKiA2MCAqIDI0KSA9IDEwMDAgbWlsbGlzZWNvbmQgKiA2MHNlY29uZCAgKiA2MG1pbnV0ZSAqIDI0aG91clxyXG4gICAgfTtcclxuICAgIHN0YXRpYyBzdWJ0cmFjdERheXModmFsdWU6IERhdGUsIGRhdGU/OiBEYXRlIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICghZGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGRhdGUgPSB0aGlzLnRvRGF0ZShkYXRlKTtcclxuICAgICAgICBsZXQgdGltZURpZmYgPSBkYXRlLmdldFRpbWUoKSAtIHZhbHVlLmdldFRpbWUoKTtcclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih0aW1lRGlmZiAvIDg2NDAwMDAwKTsvLzg2NDAwMDAwID0gKDEwMDAgKiA2MCAqIDYwICogMjQpID0gMTAwMCBtaWxsaXNlY29uZCAqIDYwc2Vjb25kICAqIDYwbWludXRlICogMjRob3VyXHJcbiAgICB9O1xyXG4gICAgc3RhdGljIHN1YnRyYWN0TWludXRlcyh2YWx1ZTogRGF0ZSwgZGF0ZT86IERhdGUgfCBudWxsKSB7XHJcbiAgICAgICAgaWYgKCFkYXRlKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgZGF0ZSA9IHRoaXMudG9EYXRlKGRhdGUpO1xyXG4gICAgICAgIGxldCB0aW1lRGlmZiA9IGRhdGUuZ2V0VGltZSgpIC0gdmFsdWUuZ2V0VGltZSgpO1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKCgodGltZURpZmYgJSA4NjQwMDAwMCkgJSAzNjAwMDAwKSAvIDYwMDAwKTs7XHJcbiAgICB9O1xyXG5cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBJU084NjAxX0RBVEVfUkVHRVggPVxyXG4gICAgICAgIC9eKFxcZHs0fSktPyhcXGRcXGQpLT8oXFxkXFxkKSg/OlQoXFxkXFxkKSg/Ojo/KFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86XFwuKFxcZCspKT8pPyk/KFp8KFsrLV0pKFxcZFxcZCk6PyhcXGRcXGQpKT8pPyQvO1xyXG4gICAgLy8gICAgICAgIDEgICAgICAgIDIgICAgICAgMyAgICAgICAgIDQgICAgICAgICAgNSAgICAgICAgICA2ICAgICAgICAgIDcgICAgICAgICAgOCAgOSAgICAgMTAgICAgICAxMVxyXG5cclxuXHJcbiAgICBzdGF0aWMgcGFyc2VEYXRlKHZhbHVlOiBhbnkpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHJldHVybiBudWxsO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRvRGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGV4cG9ydCBmdW5jdGlvbiB0b0RhdGUodmFsdWU6IHN0cmluZ3xudW1iZXJ8RGF0ZSk6IERhdGUgdGhpcyBmdW5jdGlvbiBpcyBpbXBvcnRlZCBmcm9tIGRhdGUgcGlwZSBcclxuICAgIC8vIHBhY2thZ2VzL2NvbW1vbi9zcmMvaTE4bi9mb3JtYXRfZGF0ZS50c1xyXG5cclxuICAgIC8qKipcclxuICAgICAqIENvbnZlcnRzIGEgdmFsdWUgdG8gZGF0ZS5cclxuICAgICAqXHJcbiAgICAgKiBTdXBwb3J0ZWQgaW5wdXQgZm9ybWF0czpcclxuICAgICAqIC0gYERhdGVgXHJcbiAgICAgKiAtIG51bWJlcjogdGltZXN0YW1wXHJcbiAgICAgKiAtIHN0cmluZzogbnVtZXJpYyAoZS5nLiBcIjEyMzRcIiksIElTTyBhbmQgZGF0ZSBzdHJpbmdzIGluIGEgZm9ybWF0IHN1cHBvcnRlZCBieVxyXG4gICAgICogICBbRGF0ZS5wYXJzZSgpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL3BhcnNlKS5cclxuICAgICAqICAgTm90ZTogSVNPIHN0cmluZ3Mgd2l0aG91dCB0aW1lIHJldHVybiBhIGRhdGUgd2l0aG91dCB0aW1lb2Zmc2V0LlxyXG4gICAgICpcclxuICAgICAqIFRocm93cyBpZiB1bmFibGUgdG8gY29udmVydCB0byBhIGRhdGUuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB0b0RhdGUodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IERhdGUpOiBEYXRlIHtcclxuICAgICAgICBpZiAodGhpcy5pc0RhdGUodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmICFpc05hTih2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudHJpbSgpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgcGFyc2VkTmIgPSBwYXJzZUZsb2F0KHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGFueSBzdHJpbmcgdGhhdCBvbmx5IGNvbnRhaW5zIG51bWJlcnMsIGxpa2UgXCIxMjM0XCIgYnV0IG5vdCBsaWtlIFwiMTIzNGhlbGxvXCJcclxuICAgICAgICAgICAgaWYgKCFpc05hTih2YWx1ZSBhcyBhbnkgLSBwYXJzZWROYikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShwYXJzZWROYik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICgvXihcXGR7NH0tXFxkezEsMn0tXFxkezEsMn0pJC8udGVzdCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIC8qIEZvciBJU08gU3RyaW5ncyB3aXRob3V0IHRpbWUgdGhlIGRheSwgbW9udGggYW5kIHllYXIgbXVzdCBiZSBleHRyYWN0ZWQgZnJvbSB0aGUgSVNPIFN0cmluZ1xyXG4gICAgICAgICAgICAgICAgYmVmb3JlIERhdGUgY3JlYXRpb24gdG8gYXZvaWQgdGltZSBvZmZzZXQgYW5kIGVycm9ycyBpbiB0aGUgbmV3IERhdGUuXHJcbiAgICAgICAgICAgICAgICBJZiB3ZSBvbmx5IHJlcGxhY2UgJy0nIHdpdGggJywnIGluIHRoZSBJU08gU3RyaW5nIChcIjIwMTUsMDEsMDFcIiksIGFuZCB0cnkgdG8gY3JlYXRlIGEgbmV3XHJcbiAgICAgICAgICAgICAgICBkYXRlLCBzb21lIGJyb3dzZXJzIChlLmcuIElFIDkpIHdpbGwgdGhyb3cgYW4gaW52YWxpZCBEYXRlIGVycm9yLlxyXG4gICAgICAgICAgICAgICAgSWYgd2UgbGVhdmUgdGhlICctJyAoXCIyMDE1LTAxLTAxXCIpIGFuZCB0cnkgdG8gY3JlYXRlIGEgbmV3IERhdGUoXCIyMDE1LTAxLTAxXCIpIHRoZSB0aW1lb2Zmc2V0XHJcbiAgICAgICAgICAgICAgICBpcyBhcHBsaWVkLlxyXG4gICAgICAgICAgICAgICAgTm90ZTogSVNPIG1vbnRocyBhcmUgMCBmb3IgSmFudWFyeSwgMSBmb3IgRmVicnVhcnksIC4uLiAqL1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW3ksIG0sIGRdID0gdmFsdWUuc3BsaXQoJy0nKS5tYXAoKHZhbDogc3RyaW5nKSA9PiArdmFsKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh5LCBtIC0gMSwgZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBtYXRjaDogUmVnRXhwTWF0Y2hBcnJheSB8IG51bGw7XHJcbiAgICAgICAgICAgIGlmIChtYXRjaCA9IHZhbHVlLm1hdGNoKHRoaXMuSVNPODYwMV9EQVRFX1JFR0VYKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNvU3RyaW5nVG9EYXRlKG1hdGNoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlIGFzIGFueSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzRGF0ZShkYXRlKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBjb252ZXJ0IFwiJHt2YWx1ZX1cIiBpbnRvIGEgZGF0ZWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnZlcnRzIGEgZGF0ZSBpbiBJU084NjAxIHRvIGEgRGF0ZS5cclxuICAgICAqIFVzZWQgaW5zdGVhZCBvZiBgRGF0ZS5wYXJzZWAgYmVjYXVzZSBvZiBicm93c2VyIGRpc2NyZXBhbmNpZXMuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc29TdHJpbmdUb0RhdGUobWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkpOiBEYXRlIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMCk7XHJcbiAgICAgICAgbGV0IHR6SG91ciA9IDA7XHJcbiAgICAgICAgbGV0IHR6TWluID0gMDtcclxuXHJcbiAgICAgICAgLy8gbWF0Y2hbOF0gbWVhbnMgdGhhdCB0aGUgc3RyaW5nIGNvbnRhaW5zIFwiWlwiIChVVEMpIG9yIGEgdGltZXpvbmUgbGlrZSBcIiswMTowMFwiIG9yIFwiKzAxMDBcIlxyXG4gICAgICAgIGNvbnN0IGRhdGVTZXR0ZXIgPSBtYXRjaFs4XSA/IGRhdGUuc2V0VVRDRnVsbFllYXIgOiBkYXRlLnNldEZ1bGxZZWFyO1xyXG4gICAgICAgIGNvbnN0IHRpbWVTZXR0ZXIgPSBtYXRjaFs4XSA/IGRhdGUuc2V0VVRDSG91cnMgOiBkYXRlLnNldEhvdXJzO1xyXG5cclxuICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHRpbWV6b25lIGRlZmluZWQgbGlrZSBcIiswMTowMFwiIG9yIFwiKzAxMDBcIlxyXG4gICAgICAgIGlmIChtYXRjaFs5XSkge1xyXG4gICAgICAgICAgICB0ekhvdXIgPSBOdW1iZXIobWF0Y2hbOV0gKyBtYXRjaFsxMF0pO1xyXG4gICAgICAgICAgICB0ek1pbiA9IE51bWJlcihtYXRjaFs5XSArIG1hdGNoWzExXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRhdGVTZXR0ZXIuY2FsbChkYXRlLCBOdW1iZXIobWF0Y2hbMV0pLCBOdW1iZXIobWF0Y2hbMl0pIC0gMSwgTnVtYmVyKG1hdGNoWzNdKSk7XHJcbiAgICAgICAgY29uc3QgaCA9IE51bWJlcihtYXRjaFs0XSB8fCAwKSAtIHR6SG91cjtcclxuICAgICAgICBjb25zdCBtID0gTnVtYmVyKG1hdGNoWzVdIHx8IDApIC0gdHpNaW47XHJcbiAgICAgICAgY29uc3QgcyA9IE51bWJlcihtYXRjaFs2XSB8fCAwKTtcclxuICAgICAgICBjb25zdCBtcyA9IE1hdGgucm91bmQocGFyc2VGbG9hdCgnMC4nICsgKG1hdGNoWzddIHx8IDApKSAqIDEwMDApO1xyXG4gICAgICAgIHRpbWVTZXR0ZXIuY2FsbChkYXRlLCBoLCBtLCBzLCBtcyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzRGF0ZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUudmFsdWVPZigpKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ObjectHelper } from "./object-helper";
|
|
2
2
|
export class FilterHelper {
|
|
3
3
|
static isEmpty(obj) {
|
|
4
|
-
if (obj === undefined || obj === null)
|
|
4
|
+
if (typeof obj === 'undefined' || obj === null)
|
|
5
5
|
return true;
|
|
6
6
|
let tmp = Object.assign({}, obj);
|
|
7
7
|
delete tmp.page;
|
|
@@ -10,4 +10,4 @@ export class FilterHelper {
|
|
|
10
10
|
return ObjectHelper.isEmpty(tmp);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3V0aWxzL2ZpbHRlci1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBUTtRQUNuQixJQUFJLE9BQU8sR0FBRyxLQUFLLFdBQVcsSUFBSSxHQUFHLEtBQUssSUFBSTtZQUMxQyxPQUFPLElBQUksQ0FBQztRQUVoQixJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDaEIsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztRQUVoQixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JqZWN0SGVscGVyIH0gZnJvbSBcIi4vb2JqZWN0LWhlbHBlclwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlckhlbHBlciB7XHJcbiAgICBzdGF0aWMgaXNFbXB0eShvYmo6IGFueSkge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJyB8fCBvYmogPT09IG51bGwpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICBsZXQgdG1wID0gT2JqZWN0LmFzc2lnbih7fSwgb2JqKTtcclxuICAgICAgICBkZWxldGUgdG1wLnBhZ2U7XHJcbiAgICAgICAgZGVsZXRlIHRtcC5wYWdlU2l6ZTtcclxuICAgICAgICBkZWxldGUgdG1wLnNvcnQ7XHJcblxyXG4gICAgICAgIHJldHVybiBPYmplY3RIZWxwZXIuaXNFbXB0eSh0bXApO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -5,13 +5,26 @@ export class ObjectHelper {
|
|
|
5
5
|
static isObject(value) {
|
|
6
6
|
return this.isDefined(value) && typeof value === 'object';
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Check if the object is a string or array before evaluating the length attribute.
|
|
10
|
+
* This avoids falsely rejecting objects that contain a custom length attribute.
|
|
11
|
+
* For example, the object {id: 1, length: 0, width: 0} should not be returned as empty.
|
|
12
|
+
*/
|
|
13
|
+
static isEmptyValue(value) {
|
|
14
|
+
return !this.isDefined(value) || ((typeof value === 'string' || Array.isArray(value)) && value.length === 0);
|
|
15
|
+
}
|
|
8
16
|
static isEmpty(obj) {
|
|
9
|
-
if (obj
|
|
17
|
+
if (!this.isDefined(obj))
|
|
10
18
|
return true;
|
|
19
|
+
// if (typeof obj === 'undefined' || obj === null)
|
|
20
|
+
// return true;
|
|
11
21
|
for (let prop in obj) {
|
|
12
|
-
|
|
22
|
+
let v = obj[prop];
|
|
23
|
+
if (!this.isEmptyValue(v))
|
|
13
24
|
return false;
|
|
14
|
-
|
|
25
|
+
// if (typeof (obj[prop]) !== undefined && obj[prop] !== null && obj[prop] !== '') {
|
|
26
|
+
// return false;
|
|
27
|
+
// }
|
|
15
28
|
}
|
|
16
29
|
return true;
|
|
17
30
|
}
|
|
@@ -51,4 +64,4 @@ export class ObjectHelper {
|
|
|
51
64
|
return output;
|
|
52
65
|
}
|
|
53
66
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3V0aWxzL29iamVjdC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFPLFlBQVk7SUFDckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLE9BQU8sT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7SUFDMUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO0lBQzlELENBQUM7SUFHRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFVO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUdELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBUTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsa0RBQWtEO1FBQ2xELG1CQUFtQjtRQUNuQixLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixPQUFPLEtBQUssQ0FBQztZQUNqQixvRkFBb0Y7WUFDcEYsb0JBQW9CO1lBQ3BCLElBQUk7U0FDUDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQVE7UUFDMUIsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPO1FBQ2pCLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ2pCLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtnQkFDbkMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUE7YUFDZDtTQUNKO0lBQ0wsQ0FBQztJQUFBLENBQUM7SUFHRixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQVE7UUFDckIsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQU1ELE1BQU0sQ0FBQyxRQUFRLENBQVUsS0FBVTtRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDckIsT0FBTyxLQUFLLENBQUM7UUFFakIsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QixNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3QzthQUNJO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDcEMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVyQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUVsQztxQkFBTTtvQkFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDdkM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxNQUFXLENBQUM7SUFDdkIsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RIZWxwZXIge1xyXG4gICAgc3RhdGljIGlzRGVmaW5lZCh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzT2JqZWN0KHZhbHVlOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0RlZmluZWQodmFsdWUpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgaWYgdGhlIG9iamVjdCBpcyBhIHN0cmluZyBvciBhcnJheSBiZWZvcmUgZXZhbHVhdGluZyB0aGUgbGVuZ3RoIGF0dHJpYnV0ZS5cclxuICAgICAqIFRoaXMgYXZvaWRzIGZhbHNlbHkgcmVqZWN0aW5nIG9iamVjdHMgdGhhdCBjb250YWluIGEgY3VzdG9tIGxlbmd0aCBhdHRyaWJ1dGUuXHJcbiAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIG9iamVjdCB7aWQ6IDEsIGxlbmd0aDogMCwgd2lkdGg6IDB9IHNob3VsZCBub3QgYmUgcmV0dXJuZWQgYXMgZW1wdHkuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0VtcHR5VmFsdWUodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5pc0RlZmluZWQodmFsdWUpIHx8ICgodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIGlzRW1wdHkob2JqOiBhbnkpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNEZWZpbmVkKG9iaikpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIC8vIGlmICh0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJyB8fCBvYmogPT09IG51bGwpXHJcbiAgICAgICAgLy8gICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IHByb3AgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgIGxldCB2ID0gb2JqW3Byb3BdO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNFbXB0eVZhbHVlKHYpKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAvLyBpZiAodHlwZW9mIChvYmpbcHJvcF0pICE9PSB1bmRlZmluZWQgJiYgb2JqW3Byb3BdICE9PSBudWxsICYmIG9ialtwcm9wXSAhPT0gJycpIHtcclxuICAgICAgICAgICAgLy8gICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGRlbGV0ZU51bGxLZXlzKHZhbDogYW55KSB7XHJcbiAgICAgICAgaWYgKCF2YWwpIHJldHVybjtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gdmFsKSB7XHJcbiAgICAgICAgICAgIGxldCB0bXAgPSB2YWxba2V5XTtcclxuICAgICAgICAgICAgaWYgKHRtcCA9PT0gdW5kZWZpbmVkIHx8IHRtcCA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIHZhbFtrZXldO1xyXG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG5cclxuICAgIHN0YXRpYyBpc0Jvb2xlYW4odmFsOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdmFsID09PSBmYWxzZSB8fCB2YWwgPT09IHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBkZWVwQ29weTxUID0gYW55Pih2YWx1ZTogYW55KTogVCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzT2JqZWN0KHZhbHVlKSlcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG5cclxuICAgICAgICBsZXQgb3V0cHV0OiBhbnkgPSB7fTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgb3V0cHV0ID0gdmFsdWUubWFwKHggPT4gdGhpcy5kZWVwQ29weSh4KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyh2YWx1ZSkuZm9yRWFjaCgoa2V5OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHYgPSB2YWx1ZVtrZXldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT2JqZWN0KHYpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0W2tleV0gPSB0aGlzLmRlZXBDb3B5KHYpO1xyXG5cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvdXRwdXQsIHsgW2tleV06IHYgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG91dHB1dCBhcyBUO1xyXG4gICAgfVxyXG5cclxufSJdfQ==
|
|
@@ -4,17 +4,11 @@ export class StringHelper {
|
|
|
4
4
|
return v;
|
|
5
5
|
return v.charAt(0).toUpperCase() + v.slice(1);
|
|
6
6
|
}
|
|
7
|
-
static isNullOrEmpty(
|
|
8
|
-
|
|
9
|
-
return true;
|
|
10
|
-
}
|
|
11
|
-
return false;
|
|
7
|
+
static isNullOrEmpty(value) {
|
|
8
|
+
return typeof value === 'undefined' || value == null || ((typeof value === 'string') && value.length === 0);
|
|
12
9
|
}
|
|
13
|
-
static isNullOrWhiteSpace(
|
|
14
|
-
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
return false;
|
|
10
|
+
static isNullOrWhiteSpace(value) {
|
|
11
|
+
return typeof value === 'undefined' || value == null || ((typeof value === 'string') && value.trim().length === 0);
|
|
18
12
|
}
|
|
19
13
|
static tryTrim(val) {
|
|
20
14
|
if (val === undefined || val === null) {
|
|
@@ -22,20 +16,17 @@ export class StringHelper {
|
|
|
22
16
|
}
|
|
23
17
|
return val.trim();
|
|
24
18
|
}
|
|
25
|
-
static ifNullEmpty(
|
|
26
|
-
|
|
27
|
-
return '';
|
|
28
|
-
}
|
|
29
|
-
return val;
|
|
19
|
+
static ifNullEmpty(value) {
|
|
20
|
+
return typeof value === 'undefined' || value == null ? '' : value;
|
|
30
21
|
}
|
|
31
22
|
static join(val, separator, part) {
|
|
32
|
-
if (val
|
|
23
|
+
if (this.isNullOrEmpty(val)) {
|
|
33
24
|
return part;
|
|
34
25
|
}
|
|
35
|
-
if (part
|
|
26
|
+
if (this.isNullOrEmpty(part)) {
|
|
36
27
|
return val;
|
|
37
28
|
}
|
|
38
29
|
return val + separator + part;
|
|
39
30
|
}
|
|
40
31
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3V0aWxzL3N0cmluZy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFlBQVk7SUFDckIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFpQjtRQUMvQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNsQixPQUFPLENBQUMsQ0FBQztRQUViLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQXFCO1FBQ3RDLE9BQU8sT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUNELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFxQjtRQUMzQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQThCO1FBQ3pDLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ25DLE9BQU8sR0FBRyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFxQjtRQUNwQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN0RSxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUE4QixFQUFFLFNBQWlCLEVBQUUsSUFBK0I7UUFDMUYsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUIsT0FBTyxHQUFHLENBQUM7U0FDZDtRQUVELE9BQU8sR0FBRyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN0cmluZ0hlbHBlciB7XHJcbiAgICBzdGF0aWMgZmlyc3RVcHBlcih2Pzogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICghdiB8fCB2Lmxlbmd0aCA8IDEpXHJcbiAgICAgICAgICAgIHJldHVybiB2O1xyXG5cclxuICAgICAgICByZXR1cm4gdi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHYuc2xpY2UoMSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzTnVsbE9yRW1wdHkodmFsdWU/OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT0gbnVsbCB8fCAoKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCk7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgaXNOdWxsT3JXaGl0ZVNwYWNlKHZhbHVlPzogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHZhbHVlID09IG51bGwgfHwgKCh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID09PSAwKTtcclxuICAgIH1cclxuICAgIHN0YXRpYyB0cnlUcmltKHZhbDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICh2YWwgPT09IHVuZGVmaW5lZCB8fCB2YWwgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbC50cmltKCk7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgaWZOdWxsRW1wdHkodmFsdWU/OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgam9pbih2YWw6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsIHNlcGFyYXRvcjogc3RyaW5nLCBwYXJ0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNOdWxsT3JFbXB0eSh2YWwpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwYXJ0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNOdWxsT3JFbXB0eShwYXJ0KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbCArIHNlcGFyYXRvciArIHBhcnQ7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OverlapHelper } from "./overlap-helper";
|
|
2
2
|
export class TimeHelper {
|
|
3
3
|
static parseTime(value) {
|
|
4
|
-
if (value
|
|
4
|
+
if (typeof value === 'undefined' || value == null || value === '')
|
|
5
5
|
return null;
|
|
6
6
|
return this.toTime(value);
|
|
7
7
|
}
|
|
@@ -44,4 +44,4 @@ export class TimeHelper {
|
|
|
44
44
|
return OverlapHelper.overlaps(startDate1, endDate1, startDate2, endDate2);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi91dGlscy90aW1lLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsTUFBTSxPQUFPLFVBQVU7SUFDbkIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBYTtRQUN2QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJCLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzRCxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDO2FBQ2pFO2lCQUFNLElBQUksNkJBQTZCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNsRCxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUQsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDdkY7U0FDSjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUdELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBK0I7UUFDekMsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXRCLElBQUksUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbEQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUFBLENBQUM7SUFHRixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQWMsRUFBRSxJQUFZLEVBQUUsTUFBYyxFQUFFLElBQVk7UUFDeEUsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqQyxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxNQUFjLEVBQUUsSUFBWTtRQUN0RSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpDLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGFwSGVscGVyIH0gZnJvbSBcIi4vb3ZlcmxhcC1oZWxwZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBUaW1lSGVscGVyIHtcclxuICAgIHN0YXRpYyBwYXJzZVRpbWUodmFsdWU6IGFueSk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gbnVsbDtcclxuICAgICAgICByZXR1cm4gdGhpcy50b1RpbWUodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIHRvVGltZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTtcclxuXHJcbiAgICAgICAgICAgIGlmICgvXihcXGR7MSwyfTpcXGR7MSwyfSkkLy50ZXN0KHZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW2gsIG1dID0gdmFsdWUuc3BsaXQoJzonKS5tYXAoKHZhbDogc3RyaW5nKSA9PiArdmFsKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtoIDwgMTAgPyAnMCcgOiAnJ30ke2h9OiR7bSA8IDEwID8gJzAnIDogJyd9JHttfTowMGA7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoL14oXFxkezEsMn06XFxkezEsMn06XFxkezEsMn0pJC8udGVzdCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFtoLCBtLCBzXSA9IHZhbHVlLnNwbGl0KCc6JykubWFwKCh2YWw6IHN0cmluZykgPT4gK3ZhbCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7aCA8IDEwID8gJzAnIDogJyd9JHtofToke20gPCAxMCA/ICcwJyA6ICcnfSR7bX06JHtzIDwgMTAgPyAnMCcgOiAnJ30ke3N9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXRpYyB0b0RhdGUodGltZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IERhdGUge1xyXG4gICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUoMCk7XHJcblxyXG4gICAgICAgIGxldCB0bXAgPSB0aGlzLnBhcnNlVGltZSh0aW1lKTtcclxuICAgICAgICBpZiAoIXRtcCkgcmV0dXJuIGRhdGU7XHJcblxyXG4gICAgICAgIGxldCB0aW1lRGF0ZSA9IG5ldyBEYXRlKCcxOTcwLTAxLTAxVCcgKyB0aW1lICsgJ1onKTtcclxuICAgICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyB0aW1lRGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfTtcclxuXHJcblxyXG4gICAgc3RhdGljIGludGVyc2VjdHMoc3RhcnQxOiBzdHJpbmcsIGVuZDE6IHN0cmluZywgc3RhcnQyOiBzdHJpbmcsIGVuZDI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBzdGFydERhdGUxID0gdGhpcy50b0RhdGUoc3RhcnQxKTtcclxuICAgICAgICBsZXQgZW5kRGF0ZTEgPSB0aGlzLnRvRGF0ZShlbmQxKTtcclxuICAgICAgICBsZXQgc3RhcnREYXRlMiA9IHRoaXMudG9EYXRlKHN0YXJ0Mik7XHJcbiAgICAgICAgbGV0IGVuZERhdGUyID0gdGhpcy50b0RhdGUoZW5kMik7XHJcblxyXG4gICAgICAgIHJldHVybiBPdmVybGFwSGVscGVyLmludGVyc2VjdHMoc3RhcnREYXRlMSwgZW5kRGF0ZTEsIHN0YXJ0RGF0ZTIsIGVuZERhdGUyKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgb3ZlcmxhcHMoc3RhcnQxOiBzdHJpbmcsIGVuZDE6IHN0cmluZywgc3RhcnQyOiBzdHJpbmcsIGVuZDI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBzdGFydERhdGUxID0gdGhpcy50b0RhdGUoc3RhcnQxKTtcclxuICAgICAgICBsZXQgZW5kRGF0ZTEgPSB0aGlzLnRvRGF0ZShlbmQxKTtcclxuICAgICAgICBsZXQgc3RhcnREYXRlMiA9IHRoaXMudG9EYXRlKHN0YXJ0Mik7XHJcbiAgICAgICAgbGV0IGVuZERhdGUyID0gdGhpcy50b0RhdGUoZW5kMik7XHJcblxyXG4gICAgICAgIHJldHVybiBPdmVybGFwSGVscGVyLm92ZXJsYXBzKHN0YXJ0RGF0ZTEsIGVuZERhdGUxLCBzdGFydERhdGUyLCBlbmREYXRlMik7XHJcbiAgICB9XHJcbn0iXX0=
|