ngx-material-entity 18.0.1 → 18.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -13
- package/components/create-page/create-page.component.d.ts +3 -0
- package/components/custom-table/custom-table-configuration.model.d.ts +65 -0
- package/components/custom-table/custom-table.component.d.ts +111 -0
- package/components/edit-page/edit-page.component.d.ts +8 -1
- package/components/input/array/array-date-input/array-date-input.component.d.ts +2 -2
- package/components/input/array/array-date-range-input/array-date-range-input.component.d.ts +3 -3
- package/components/input/array/array-date-time-input/array-date-time-input.component.d.ts +3 -3
- package/components/input/array/array-table.class.d.ts +25 -19
- package/components/input/file/file-default-input/file-default-input.component.d.ts +1 -1
- package/components/input/file/file-image-input/file-image-input.component.d.ts +3 -0
- package/components/input/file/file-input/file-input.component.d.ts +8 -2
- package/components/input/input.component.d.ts +101 -80
- package/components/input/number/number-dropdown-input/number-dropdown-input.component.d.ts +2 -0
- package/components/input/relations/references-many-input/references-many-input.component.d.ts +14 -17
- package/components/input/string/string-dropdown-input/string-dropdown-input.component.d.ts +2 -0
- package/components/input/string/string-password-input/string-password-input.component.d.ts +3 -0
- package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +5 -5
- package/components/table/table-data.d.ts +9 -4
- package/components/table/table.component.d.ts +15 -37
- package/components/tooltip/tooltip.component.d.ts +2 -0
- package/decorators/array/array-decorator-internal.data.d.ts +8 -3
- package/decorators/array/array-decorator.data.d.ts +45 -88
- package/decorators/base/property-decorator.data.d.ts +2 -2
- package/decorators/file/file-decorator-internal.data.d.ts +3 -2
- package/decorators/file/file-decorator.data.d.ts +4 -3
- package/decorators/references-many/references-many-decorator-internal.data.d.ts +3 -1
- package/decorators/references-many/references-many-decorator.data.d.ts +13 -1
- package/directives/dynamic-style-class.directive.d.ts +4 -5
- package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +7 -8
- package/esm2022/components/create-page/create-page.component.mjs +17 -11
- package/esm2022/components/custom-table/custom-table-configuration.model.mjs +37 -0
- package/esm2022/components/custom-table/custom-table.component.mjs +213 -0
- package/esm2022/components/edit-page/edit-page.component.mjs +29 -12
- package/esm2022/components/form/form.component.mjs +7 -8
- package/esm2022/components/input/array/array-date-input/array-date-input.component.mjs +17 -21
- package/esm2022/components/input/array/array-date-range-input/array-date-range-input.component.mjs +28 -27
- package/esm2022/components/input/array/array-date-time-input/array-date-time-input.component.mjs +18 -22
- package/esm2022/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +9 -7
- package/esm2022/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +9 -7
- package/esm2022/components/input/array/array-table.class.mjs +53 -45
- package/esm2022/components/input/base-input.component.mjs +3 -3
- package/esm2022/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +4 -4
- package/esm2022/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.mjs +3 -3
- package/esm2022/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +4 -4
- package/esm2022/components/input/custom/custom.component.mjs +3 -3
- package/esm2022/components/input/date/date-input/date-input.component.mjs +3 -3
- package/esm2022/components/input/date/date-range-input/date-range-input.component.mjs +7 -8
- package/esm2022/components/input/date/date-time-input/date-time-input.component.mjs +6 -6
- package/esm2022/components/input/file/file-default-input/file-default-input.component.mjs +5 -5
- package/esm2022/components/input/file/file-image-input/file-image-input.component.mjs +10 -9
- package/esm2022/components/input/file/file-input/file-input.component.mjs +27 -15
- package/esm2022/components/input/input.component.mjs +162 -114
- package/esm2022/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +11 -8
- package/esm2022/components/input/number/number-input/number-input.component.mjs +3 -3
- package/esm2022/components/input/number/number-slider-input/number-slider-input.component.mjs +4 -4
- package/esm2022/components/input/relations/references-many-input/references-many-input.component.mjs +46 -57
- package/esm2022/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +6 -7
- package/esm2022/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +11 -8
- package/esm2022/components/input/string/string-input/string-input.component.mjs +3 -3
- package/esm2022/components/input/string/string-password-input/string-password-input.component.mjs +13 -8
- package/esm2022/components/input/string/string-textbox-input/string-textbox-input.component.mjs +3 -3
- package/esm2022/components/table/create-dialog/create-entity-dialog.component.mjs +9 -10
- package/esm2022/components/table/display-column-value/base-display-column-value.component.mjs +3 -3
- package/esm2022/components/table/display-column-value/display-column-value.component.mjs +3 -3
- package/esm2022/components/table/edit-dialog/edit-data.builder.mjs +1 -1
- package/esm2022/components/table/edit-dialog/edit-entity-dialog.component.mjs +21 -16
- package/esm2022/components/table/table-data.builder.mjs +3 -1
- package/esm2022/components/table/table-data.mjs +1 -1
- package/esm2022/components/table/table.component.mjs +41 -114
- package/esm2022/components/tooltip/tooltip.component.mjs +9 -5
- package/esm2022/decorators/array/array-decorator-internal.data.mjs +18 -3
- package/esm2022/decorators/array/array-decorator.data.mjs +33 -2
- package/esm2022/decorators/array/array.decorator.mjs +15 -8
- package/esm2022/decorators/base/property-decorator.data.mjs +2 -2
- package/esm2022/decorators/file/file-decorator-internal.data.mjs +4 -3
- package/esm2022/decorators/file/file-decorator.data.mjs +3 -3
- package/esm2022/decorators/file/file.decorator.mjs +7 -4
- package/esm2022/decorators/has-many/has-many-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/number/number.decorator.mjs +7 -4
- package/esm2022/decorators/object/object.decorator.mjs +5 -3
- package/esm2022/decorators/references-many/references-many-decorator-internal.data.mjs +8 -1
- package/esm2022/decorators/references-many/references-many-decorator.data.mjs +1 -1
- package/esm2022/decorators/string/string-decorator-internal.data.mjs +2 -1
- package/esm2022/decorators/string/string.decorator.mjs +11 -6
- package/esm2022/directives/drag-drop.directive.mjs +3 -3
- package/esm2022/directives/dynamic-style-class.directive.mjs +7 -7
- package/esm2022/directives/included-in.directive.mjs +3 -3
- package/esm2022/directives/number.directive.mjs +3 -3
- package/esm2022/directives/password-match.directive.mjs +3 -3
- package/esm2022/directives/tooltip.directive.mjs +7 -4
- package/esm2022/functions/dropdown-values-to-function.function.mjs +2 -1
- package/esm2022/functions/get-changes-tooltip-content.function.mjs +23 -0
- package/esm2022/functions/get-validation-errors-tooltip-content.function.mjs +23 -0
- package/esm2022/functions/table-column-value-to-sort-value.function.mjs +33 -0
- package/esm2022/public-api.mjs +3 -2
- package/esm2022/utilities/date.utilities.mjs +7 -6
- package/esm2022/utilities/entity.utilities.mjs +58 -27
- package/esm2022/utilities/file.utilities.mjs +7 -4
- package/esm2022/utilities/validation.utilities.mjs +41 -21
- package/fesm2022/ngx-material-entity.mjs +2767 -2336
- package/fesm2022/ngx-material-entity.mjs.map +1 -1
- package/functions/get-changes-tooltip-content.function.d.ts +13 -0
- package/functions/table-column-value-to-sort-value.function.d.ts +9 -0
- package/package.json +4 -2
- package/public-api.d.ts +2 -1
- package/utilities/entity.utilities.d.ts +11 -7
- package/esm2022/functions/get-validation-errors-tooltip-content.function.ts.mjs +0 -23
- /package/functions/{get-validation-errors-tooltip-content.function.ts.d.ts → get-validation-errors-tooltip-content.function.d.ts} +0 -0
|
@@ -6,9 +6,10 @@
|
|
|
6
6
|
// eslint-disable-next-line typescript/no-explicit-any
|
|
7
7
|
export function dropdownValuesToFunction(dropdownValues) {
|
|
8
8
|
if (Array.isArray(dropdownValues)) {
|
|
9
|
+
// eslint-disable-next-line typescript/require-await
|
|
9
10
|
return async () => dropdownValues;
|
|
10
11
|
}
|
|
11
12
|
// eslint-disable-next-line typescript/no-explicit-any
|
|
12
13
|
return async (e) => await dropdownValues(e);
|
|
13
14
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdmFsdWVzLXRvLWZ1bmN0aW9uLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvZnVuY3Rpb25zL2Ryb3Bkb3duLXZhbHVlcy10by1mdW5jdGlvbi5mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQTs7OztHQUlHO0FBQ0gsc0RBQXNEO0FBQ3RELE1BQU0sVUFBVSx3QkFBd0IsQ0FBSSxjQUFpQztJQUN6RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxvREFBb0Q7UUFDcEQsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQztJQUN0QyxDQUFDO0lBQ0Qsc0RBQXNEO0lBQ3RELE9BQU8sS0FBSyxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyb3Bkb3duVmFsdWUgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2Jhc2UvZHJvcGRvd24tdmFsdWUuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBHZW5lcmljIFR5cGUgZm9yIGFsbCBwb3NzaWJsZSB2YWx1ZXMgdGhhdCBjYW4gYmUgcHJvdmlkZWQgYXMgZHJvcGRvd24gdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBEcm9wZG93blZhbHVlczxUPiA9IERyb3Bkb3duVmFsdWU8VCB8IHVuZGVmaW5lZD5bXVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB0eXBlc2NyaXB0L25vLWV4cGxpY2l0LWFueVxuICAgIHwgKChlbnRpdHk6IGFueSkgPT4gRHJvcGRvd25WYWx1ZTxUIHwgdW5kZWZpbmVkPltdKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB0eXBlc2NyaXB0L25vLWV4cGxpY2l0LWFueVxuICAgIHwgKChlbnRpdHk6IGFueSkgPT4gUHJvbWlzZTxEcm9wZG93blZhbHVlPFQgfCB1bmRlZmluZWQ+W10+KTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIHRoZSBnaXZlbiBkcm9wZG93biB2YWx1ZXMgdG8gYW4gYXN5bmMgZnVuY3Rpb24uXG4gKiBAcGFyYW0gZHJvcGRvd25WYWx1ZXMgLSBUaGUgZHJvcGRvd24gdmFsdWVzIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIEFuIGFic3RyYWN0IGZ1bmN0aW9uLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHlwZXNjcmlwdC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBkcm9wZG93blZhbHVlc1RvRnVuY3Rpb248VD4oZHJvcGRvd25WYWx1ZXM6IERyb3Bkb3duVmFsdWVzPFQ+KTogKGVudGl0eTogYW55KSA9PiBQcm9taXNlPERyb3Bkb3duVmFsdWU8VCB8IHVuZGVmaW5lZD5bXT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGRyb3Bkb3duVmFsdWVzKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHlwZXNjcmlwdC9yZXF1aXJlLWF3YWl0XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBkcm9wZG93blZhbHVlcztcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQvbm8tZXhwbGljaXQtYW55XG4gICAgcmV0dXJuIGFzeW5jIChlOiBhbnkpID0+IGF3YWl0IGRyb3Bkb3duVmFsdWVzKGUpO1xufSJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { InjectionToken, inject } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Provider for the changes tooltip title.
|
|
4
|
+
*/
|
|
5
|
+
export const NgxChangesTooltipTitle = new InjectionToken('Provider for the changes tooltip title.', {
|
|
6
|
+
providedIn: 'root',
|
|
7
|
+
factory: () => 'Changed Values:'
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* The default function that gets the changes tooltip content.
|
|
11
|
+
* @param changes - All changes for which the tooltip content should be generated.
|
|
12
|
+
* @returns A html string, containing a list of the name of each changed property.
|
|
13
|
+
*/
|
|
14
|
+
export function getChangesTooltipContent(changes) {
|
|
15
|
+
const title = inject(NgxChangesTooltipTitle);
|
|
16
|
+
let res = `${title}\n<br>\n<ul style="margin-bottom: 0px; padding-left: 16px;">`;
|
|
17
|
+
for (const change of changes) {
|
|
18
|
+
res = res.concat(`\n\t<li>${String(change.key)}</li>`);
|
|
19
|
+
}
|
|
20
|
+
res = res.concat('\n</ul>');
|
|
21
|
+
return res;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNoYW5nZXMtdG9vbHRpcC1jb250ZW50LmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvZnVuY3Rpb25zL2dldC1jaGFuZ2VzLXRvb2x0aXAtY29udGVudC5mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt2RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUEyQixJQUFJLGNBQWMsQ0FDNUUseUNBQXlDLEVBQ3pDO0lBQ0ksVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGlCQUFpQjtDQUNuQyxDQUNKLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFnRCxPQUFpQztJQUNySCxNQUFNLEtBQUssR0FBVyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRCxJQUFJLEdBQUcsR0FBVyxHQUFHLEtBQUssOERBQThELENBQUM7SUFDekYsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMzQixHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgRGlmZmVyZW5jZSB9IGZyb20gJy4uL3V0aWxpdGllcy9lbnRpdHkudXRpbGl0aWVzJztcblxuLyoqXG4gKiBQcm92aWRlciBmb3IgdGhlIGNoYW5nZXMgdG9vbHRpcCB0aXRsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE5neENoYW5nZXNUb29sdGlwVGl0bGU6IEluamVjdGlvblRva2VuPHN0cmluZz4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICAgJ1Byb3ZpZGVyIGZvciB0aGUgY2hhbmdlcyB0b29sdGlwIHRpdGxlLicsXG4gICAge1xuICAgICAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgICAgIGZhY3Rvcnk6ICgpID0+ICdDaGFuZ2VkIFZhbHVlczonXG4gICAgfVxuKTtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiB0aGF0IGdldHMgdGhlIGNoYW5nZXMgdG9vbHRpcCBjb250ZW50LlxuICogQHBhcmFtIGNoYW5nZXMgLSBBbGwgY2hhbmdlcyBmb3Igd2hpY2ggdGhlIHRvb2x0aXAgY29udGVudCBzaG91bGQgYmUgZ2VuZXJhdGVkLlxuICogQHJldHVybnMgQSBodG1sIHN0cmluZywgY29udGFpbmluZyBhIGxpc3Qgb2YgdGhlIG5hbWUgb2YgZWFjaCBjaGFuZ2VkIHByb3BlcnR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbmdlc1Rvb2x0aXBDb250ZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4oY2hhbmdlczogRGlmZmVyZW5jZTxFbnRpdHlUeXBlPltdKTogc3RyaW5nIHtcbiAgICBjb25zdCB0aXRsZTogc3RyaW5nID0gaW5qZWN0KE5neENoYW5nZXNUb29sdGlwVGl0bGUpO1xuICAgIGxldCByZXM6IHN0cmluZyA9IGAke3RpdGxlfVxcbjxicj5cXG48dWwgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwcHg7IHBhZGRpbmctbGVmdDogMTZweDtcIj5gO1xuICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIGNoYW5nZXMpIHtcbiAgICAgICAgcmVzID0gcmVzLmNvbmNhdChgXFxuXFx0PGxpPiR7U3RyaW5nKGNoYW5nZS5rZXkpfTwvbGk+YCk7XG4gICAgfVxuICAgIHJlcyA9IHJlcy5jb25jYXQoJ1xcbjwvdWw+Jyk7XG4gICAgcmV0dXJuIHJlcztcbn0iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { InjectionToken, inject } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Provider for the validation errors tooltip title.
|
|
4
|
+
*/
|
|
5
|
+
export const NgxValidationErrorsTooltipTitle = new InjectionToken('Provider for the validation errors tooltip title.', {
|
|
6
|
+
providedIn: 'root',
|
|
7
|
+
factory: () => 'Validation Errors:'
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* The default function that gets the validation errors tooltip content.
|
|
11
|
+
* @param validationErrors - All validation errors for which the tooltip content should be generated.
|
|
12
|
+
* @returns A html string, containing a list of the name of each invalid property.
|
|
13
|
+
*/
|
|
14
|
+
export function getValidationErrorsTooltipContent(validationErrors) {
|
|
15
|
+
const title = inject(NgxValidationErrorsTooltipTitle);
|
|
16
|
+
let res = `${title}\n<br>\n<ul style="margin-bottom: 0px; padding-left: 16px;">`;
|
|
17
|
+
for (const error of validationErrors) {
|
|
18
|
+
res = res.concat(`\n\t<li>${error.property}</li>`);
|
|
19
|
+
}
|
|
20
|
+
res = res.concat('\n</ul>');
|
|
21
|
+
return res;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZhbGlkYXRpb24tZXJyb3JzLXRvb2x0aXAtY29udGVudC5mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2Z1bmN0aW9ucy9nZXQtdmFsaWRhdGlvbi1lcnJvcnMtdG9vbHRpcC1jb250ZW50LmZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXZEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQTJCLElBQUksY0FBYyxDQUNyRixtREFBbUQsRUFDbkQ7SUFDSSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CO0NBQ3RDLENBQ0osQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsZ0JBQW1DO0lBQ2pGLE1BQU0sS0FBSyxHQUFXLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQzlELElBQUksR0FBRyxHQUFXLEdBQUcsS0FBSyw4REFBOEQsQ0FBQztJQUN6RixLQUFLLE1BQU0sS0FBSyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDbkMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxLQUFLLENBQUMsUUFBUSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi91dGlsaXRpZXMvdmFsaWRhdGlvbi51dGlsaXRpZXMnO1xuXG4vKipcbiAqIFByb3ZpZGVyIGZvciB0aGUgdmFsaWRhdGlvbiBlcnJvcnMgdG9vbHRpcCB0aXRsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE5neFZhbGlkYXRpb25FcnJvcnNUb29sdGlwVGl0bGU6IEluamVjdGlvblRva2VuPHN0cmluZz4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICAgJ1Byb3ZpZGVyIGZvciB0aGUgdmFsaWRhdGlvbiBlcnJvcnMgdG9vbHRpcCB0aXRsZS4nLFxuICAgIHtcbiAgICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgICAgICBmYWN0b3J5OiAoKSA9PiAnVmFsaWRhdGlvbiBFcnJvcnM6J1xuICAgIH1cbik7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgZnVuY3Rpb24gdGhhdCBnZXRzIHRoZSB2YWxpZGF0aW9uIGVycm9ycyB0b29sdGlwIGNvbnRlbnQuXG4gKiBAcGFyYW0gdmFsaWRhdGlvbkVycm9ycyAtIEFsbCB2YWxpZGF0aW9uIGVycm9ycyBmb3Igd2hpY2ggdGhlIHRvb2x0aXAgY29udGVudCBzaG91bGQgYmUgZ2VuZXJhdGVkLlxuICogQHJldHVybnMgQSBodG1sIHN0cmluZywgY29udGFpbmluZyBhIGxpc3Qgb2YgdGhlIG5hbWUgb2YgZWFjaCBpbnZhbGlkIHByb3BlcnR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdGlvbkVycm9yc1Rvb2x0aXBDb250ZW50KHZhbGlkYXRpb25FcnJvcnM6IFZhbGlkYXRpb25FcnJvcltdKTogc3RyaW5nIHtcbiAgICBjb25zdCB0aXRsZTogc3RyaW5nID0gaW5qZWN0KE5neFZhbGlkYXRpb25FcnJvcnNUb29sdGlwVGl0bGUpO1xuICAgIGxldCByZXM6IHN0cmluZyA9IGAke3RpdGxlfVxcbjxicj5cXG48dWwgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwcHg7IHBhZGRpbmctbGVmdDogMTZweDtcIj5gO1xuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgdmFsaWRhdGlvbkVycm9ycykge1xuICAgICAgICByZXMgPSByZXMuY29uY2F0KGBcXG5cXHQ8bGk+JHtlcnJvci5wcm9wZXJ0eX08L2xpPmApO1xuICAgIH1cbiAgICByZXMgPSByZXMuY29uY2F0KCdcXG48L3VsPicpO1xuICAgIHJldHVybiByZXM7XG59Il19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts the given table column value to a string/number for sorting.
|
|
3
|
+
* This also supports string dates, if you eg. Needed to format them.
|
|
4
|
+
* @param value - The value to convert.
|
|
5
|
+
* @returns A string or a number to sort by.
|
|
6
|
+
* @throws When a value with an unknown type has been provided.
|
|
7
|
+
*/
|
|
8
|
+
export function tableColumnValueToSortValue(value) {
|
|
9
|
+
switch (typeof value) {
|
|
10
|
+
case 'string': {
|
|
11
|
+
const stringDate = new Date(value);
|
|
12
|
+
if (!Number.isNaN(stringDate.getTime())) {
|
|
13
|
+
return stringDate.getTime();
|
|
14
|
+
}
|
|
15
|
+
const number = Number.parseFloat(value);
|
|
16
|
+
if (!Number.isNaN(number)) {
|
|
17
|
+
return number;
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
case 'number': {
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
case 'object': {
|
|
25
|
+
const date = new Date(value);
|
|
26
|
+
return date.getTime();
|
|
27
|
+
}
|
|
28
|
+
default: {
|
|
29
|
+
throw new Error(`Unsupported type for table value: ${typeof value}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXZhbHVlLXRvLXNvcnQtdmFsdWUuZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9mdW5jdGlvbnMvdGFibGUtY29sdW1uLXZhbHVlLXRvLXNvcnQtdmFsdWUuZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQixDQUFDLEtBQXVCO0lBQy9ELFFBQVEsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNuQixLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDWixNQUFNLFVBQVUsR0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxPQUFPLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQVcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN4QixPQUFPLE1BQU0sQ0FBQztZQUNsQixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUNELEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNaLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDWixNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbHVtblZhbHVlIH0gZnJvbSAnLi4vY29tcG9uZW50cy90YWJsZS90YWJsZS1kYXRhJztcblxuLyoqXG4gKiBDb252ZXJ0cyB0aGUgZ2l2ZW4gdGFibGUgY29sdW1uIHZhbHVlIHRvIGEgc3RyaW5nL251bWJlciBmb3Igc29ydGluZy5cbiAqIFRoaXMgYWxzbyBzdXBwb3J0cyBzdHJpbmcgZGF0ZXMsIGlmIHlvdSBlZy4gTmVlZGVkIHRvIGZvcm1hdCB0aGVtLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIHN0cmluZyBvciBhIG51bWJlciB0byBzb3J0IGJ5LlxuICogQHRocm93cyBXaGVuIGEgdmFsdWUgd2l0aCBhbiB1bmtub3duIHR5cGUgaGFzIGJlZW4gcHJvdmlkZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0YWJsZUNvbHVtblZhbHVlVG9Tb3J0VmFsdWUodmFsdWU6IFRhYmxlQ29sdW1uVmFsdWUpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ3N0cmluZyc6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0cmluZ0RhdGU6IERhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoIU51bWJlci5pc05hTihzdHJpbmdEYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nRGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBudW1iZXI6IG51bWJlciA9IE51bWJlci5wYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ251bWJlcic6IHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdvYmplY3QnOiB7XG4gICAgICAgICAgICBjb25zdCBkYXRlOiBEYXRlID0gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUuZ2V0VGltZSgpO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdHlwZSBmb3IgdGFibGUgdmFsdWU6ICR7dHlwZW9mIHZhbHVlfWApO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -53,7 +53,8 @@ export * from './directives/number.directive';
|
|
|
53
53
|
export * from './directives/tooltip.directive';
|
|
54
54
|
// functions
|
|
55
55
|
export * from './functions/get-validation-error-message.function';
|
|
56
|
-
export * from './functions/get-validation-errors-tooltip-content.function
|
|
56
|
+
export * from './functions/get-validation-errors-tooltip-content.function';
|
|
57
|
+
export * from './functions/get-changes-tooltip-content.function';
|
|
57
58
|
// services
|
|
58
59
|
export * from './services/entity.service';
|
|
59
60
|
export * from './services/unsaved-changes.guard';
|
|
@@ -64,4 +65,4 @@ export * from './utilities/file.utilities';
|
|
|
64
65
|
export * from './utilities/validation.utilities';
|
|
65
66
|
// default values
|
|
66
67
|
export * from './global-configuration-values';
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxVQUFVO0FBQ1YsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxhQUFhO0FBQ2IsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNkVBQTZFLENBQUM7QUFDNUYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGFBQWE7QUFDYixjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDRDQUE0QyxDQUFDO0FBRzNELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxhQUFhO0FBQ2IsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxZQUFZO0FBQ1osY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsV0FBVztBQUNYLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxXQUFXO0FBQ1gsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxpQkFBaUI7QUFDakIsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1tYXRlcmlhbC1lbnRpdHkuXG4gKi9cblxuLy8gY2xhc3Nlc1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG4vLyBjb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2ctZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtcGFnZS9jcmVhdGUtZGF0YS5yb3V0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY3JlYXRlLXBhZ2UvY3JlYXRlLXBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9lZGl0LXBhZ2UvZWRpdC1kYXRhLnJvdXRlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9lZGl0LXBhZ2UvZWRpdC1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaW5wdXQvYmFzZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvY3JlYXRlLWRpYWxvZy9jcmVhdGUtZW50aXR5LWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL2NyZWF0ZS1kaWFsb2cvY3JlYXRlLWVudGl0eS1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90YWJsZS9kZWZhdWx0LmFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL2Rpc3BsYXktY29sdW1uLXZhbHVlL2Jhc2UtZGlzcGxheS1jb2x1bW4tdmFsdWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90YWJsZS9lZGl0LWRpYWxvZy9lZGl0LWVudGl0eS1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90YWJsZS9lZGl0LWRpYWxvZy9lZGl0LWVudGl0eS1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90YWJsZS90YWJsZS1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuLy8gZGVjb3JhdG9yc1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2FycmF5L2FycmF5LWRlY29yYXRvci5kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9hcnJheS9hcnJheS5kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2Jhc2UvZGVjb3JhdG9yLXR5cGVzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2Jhc2UvZHJvcGRvd24tdmFsdWUuaW50ZXJmYWNlJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgeyBDb2wsIFBvc2l0aW9uIH0gZnJvbSAnLi9kZWNvcmF0b3JzL2Jhc2UvcHJvcGVydHktZGVjb3JhdG9yLmRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2Jvb2xlYW4vYm9vbGVhbi1kZWNvcmF0b3IuZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvYm9vbGVhbi9ib29sZWFuLmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvY3VzdG9tL2N1c3RvbS1kZWNvcmF0b3IuZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvY3VzdG9tL2N1c3RvbS5kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2RhdGUvZGF0ZS1kZWNvcmF0b3IuZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvZGF0ZS9kYXRlLmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvZmlsZS9maWxlLWRlY29yYXRvci5kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9maWxlL2ZpbGUuZGVjb3JhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9oYXMtbWFueS9oYXMtbWFueS1kZWNvcmF0b3IuZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvaGFzLW1hbnkvaGFzLW1hbnkuZGVjb3JhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9udW1iZXIvbnVtYmVyLWRlY29yYXRvci5kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9udW1iZXIvbnVtYmVyLmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvb2JqZWN0L29iamVjdC1kZWNvcmF0b3IuZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvb2JqZWN0L29iamVjdC5kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL3JlZmVyZW5jZXMtbWFueS9yZWZlcmVuY2VzLW1hbnktZGVjb3JhdG9yLmRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL3JlZmVyZW5jZXMtbWFueS9yZWZlcmVuY2VzLW1hbnkuZGVjb3JhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9yZWZlcmVuY2VzLW9uZS9yZWZlcmVuY2VzLW9uZS1kZWNvcmF0b3IuZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvcmVmZXJlbmNlcy1vbmUvcmVmZXJlbmNlcy1vbmUuZGVjb3JhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9zdHJpbmcvc3RyaW5nLWRlY29yYXRvci5kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9zdHJpbmcvc3RyaW5nLmRlY29yYXRvcic7XG4vLyBkaXJlY3RpdmVzXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZHluYW1pYy1zdHlsZS1jbGFzcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2luY2x1ZGVkLWluLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvbnVtYmVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUnO1xuLy8gZnVuY3Rpb25zXG5leHBvcnQgKiBmcm9tICcuL2Z1bmN0aW9ucy9nZXQtdmFsaWRhdGlvbi1lcnJvci1tZXNzYWdlLmZ1bmN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZnVuY3Rpb25zL2dldC12YWxpZGF0aW9uLWVycm9ycy10b29sdGlwLWNvbnRlbnQuZnVuY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9mdW5jdGlvbnMvZ2V0LWNoYW5nZXMtdG9vbHRpcC1jb250ZW50LmZ1bmN0aW9uJztcbi8vIHNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2VudGl0eS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdW5zYXZlZC1jaGFuZ2VzLmd1YXJkJztcbi8vdXRpbGl0aWVzXG5leHBvcnQgKiBmcm9tICcuL3V0aWxpdGllcy9kYXRlLnV0aWxpdGllcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxpdGllcy9lbnRpdHkudXRpbGl0aWVzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbGl0aWVzL2ZpbGUudXRpbGl0aWVzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbGl0aWVzL3ZhbGlkYXRpb24udXRpbGl0aWVzJztcbi8vIGRlZmF1bHQgdmFsdWVzXG5leHBvcnQgKiBmcm9tICcuL2dsb2JhbC1jb25maWd1cmF0aW9uLXZhbHVlcyc7Il19
|
|
@@ -81,12 +81,13 @@ export class DateUtilities {
|
|
|
81
81
|
* @returns All dates between the two provided dates. Includes start and end date.
|
|
82
82
|
*/
|
|
83
83
|
static getDatesBetween(startDate, endDate, filter) {
|
|
84
|
+
const clonedStartDate = new Date(startDate);
|
|
84
85
|
const res = [];
|
|
85
|
-
while (
|
|
86
|
-
||
|
|
87
|
-
||
|
|
88
|
-
res.push(new Date(
|
|
89
|
-
|
|
86
|
+
while (clonedStartDate.getFullYear() < endDate.getFullYear()
|
|
87
|
+
|| clonedStartDate.getMonth() < endDate.getMonth()
|
|
88
|
+
|| clonedStartDate.getDate() <= endDate.getDate()) {
|
|
89
|
+
res.push(new Date(clonedStartDate));
|
|
90
|
+
clonedStartDate.setTime(clonedStartDate.getTime() + DAY_IN_MS);
|
|
90
91
|
}
|
|
91
92
|
return filter ? res.filter(d => filter(d)) : res;
|
|
92
93
|
}
|
|
@@ -134,4 +135,4 @@ export class DateUtilities {
|
|
|
134
135
|
|| Number.isNaN(time.minutes);
|
|
135
136
|
}
|
|
136
137
|
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy91dGlsaXRpZXMvZGF0ZS51dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVqRSxNQUFNLFNBQVMsR0FBVyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUEyQzlDOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixhQUFhO0lBRS9COztPQUVHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixHQUEwQyxXQUFXLENBQUM7SUFFOUU7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBYztRQUN4QixPQUFPLEtBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLFNBQWtCLEVBQUUsRUFBRSxjQUEyQixFQUFFO1FBQ3RFLE1BQU0sR0FBRyxHQUEwQixDQUFDLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBNEIsRUFBRSxDQUFDLENBQUM7UUFDL0YsS0FBSyxJQUFJLElBQUksR0FBUyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLEtBQUssSUFBSSxNQUFNLEdBQVcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUM5RCxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsSUFBWSxFQUFFLE1BQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3pGLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxH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QUFDLElBQVc7UUFDbEMsT0FBTyxJQUFJLEVBQUUsS0FBSyxJQUFJLFNBQVM7ZUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVE7ZUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2VBQ3hCLElBQUksQ0FBQyxPQUFPLElBQUksU0FBUztlQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUTtlQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZUZpbHRlckZuIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5cbmltcG9ydCB7IERyb3Bkb3duVmFsdWUgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2Jhc2UvZHJvcGRvd24tdmFsdWUuaW50ZXJmYWNlJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uL2VuY2Fwc3VsYXRpb24vbG9kYXNoLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBkZWZhdWx0VHJ1ZSB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kZWZhdWx0LXRydWUuZnVuY3Rpb24nO1xuXG5jb25zdCBEQVlfSU5fTVM6IG51bWJlciA9IDEwMDAgKiA2MCAqIDYwICogMjQ7XG5cbi8qKlxuICogSGVscGVyIHR5cGUgZm9yIGhvdXJzIGFuZCBtaW51dGVzLlxuICovXG50eXBlIEVudW1lcmF0ZTxOIGV4dGVuZHMgbnVtYmVyLCBBY2MgZXh0ZW5kcyBudW1iZXJbXSA9IFtdPiA9IEFjY1snbGVuZ3RoJ10gZXh0ZW5kcyBOXG4gICAgPyBBY2NbbnVtYmVyXVxuICAgIDogRW51bWVyYXRlPE4sIFsuLi5BY2MsIEFjY1snbGVuZ3RoJ11dPjtcblxuLyoqXG4gKiBIZWxwZXIgdHlwZSBmb3IgaG91cnMgYW5kIG1pbnV0ZXMuXG4gKi9cbnR5cGUgUmFuZ2U8RiBleHRlbmRzIG51bWJlciwgVCBleHRlbmRzIG51bWJlcj4gPSBFeGNsdWRlPEVudW1lcmF0ZTxUPiwgRW51bWVyYXRlPEY+PjtcblxuLyoqXG4gKiBUaGUgcG9zc2libGUgaG91ciB2YWx1ZXMuIFJhbmdlcyBmcm9tIDAgdG8gMjMuXG4gKi9cbmV4cG9ydCB0eXBlIEhvdXIgPSBSYW5nZTwwLCAyND47XG5cbi8qKlxuICogVGhlIHBvc3NpYmxlIG1pbnV0ZSB2YWx1ZXMuIFJhbmdlcyBmcm9tIDAgdG8gNTkuXG4gKi9cbmV4cG9ydCB0eXBlIE1pbnV0ZSA9IFJhbmdlPDAsIDYwPjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdGltZSB2YWx1ZSB3aXRoIGhvdXJzIGFuZCBtaW51dGVzLlxuICovXG5leHBvcnQgdHlwZSBUaW1lID0ge1xuICAgIC8qKlxuICAgICAqIFRoZSBob3VycyBpbiB0aGUgMjQgaG91ciBmb3JtYXQuXG4gICAgICovXG4gICAgaG91cnM6IEhvdXIsXG4gICAgLyoqXG4gICAgICogVGhlIG1pbnV0ZXMgb2YgdGhlIHRpbWUuXG4gICAgICovXG4gICAgbWludXRlczogTWludXRlXG59O1xuXG4vKipcbiAqIFZhbGlkIHN0ZXBzIGZyb20gb25lIHRpbWUgdmFsdWUgdG8gdGhlIG5leHQuIE5lZWRzIHRvIGJlIGFibGUgdG8gZGl2aWRlIDYwIG1pbnV0ZXMgd2l0aG91dCByZW1haW5kZXIuXG4gKi9cbnR5cGUgTWludXRlU3RlcHMgPSAxIHwgMiB8IDMgfCA0IHwgNSB8IDYgfCAxMCB8IDEyIHwgMTUgfCAyMCB8IDMwIHwgNjA7XG5cbi8qKlxuICogQ29udGFpbnMgSGVscGVyIEZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgZGF0ZSBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZVV0aWxpdGllcyB7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGVmYXVsdCBmaWx0ZXIgZnVuY3Rpb24gdG8gdXNlciB3aGVuIG5vbmUgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLlxuICAgICAqL1xuICAgIHN0YXRpYyBkZWZhdWx0RGF0ZUZpbHRlcjogRGF0ZUZpbHRlckZuPERhdGUgfCBudWxsIHwgdW5kZWZpbmVkPiA9IGRlZmF1bHRUcnVlO1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZ2l2ZW4gdmFsdWUgYXMgYSBkYXRlIHZhbHVlLlxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBnZXQgYXMgYSBkYXRlLlxuICAgICAqIEByZXR1cm5zIFRoZSBnaXZlbiB2YWx1ZSBhcyBhIGRhdGUuXG4gICAgICovXG4gICAgc3RhdGljIGFzRGF0ZSh2YWx1ZTogdW5rbm93bik6IERhdGUge1xuICAgICAgICByZXR1cm4gdmFsdWUgYXMgRGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBkZWZhdWx0IHRpbWVzIHVzZWQgYnkgdGhlIERhdGVUaW1lIHBpY2tlciB3aGVuIG5vdGhpbmcgaXMgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLlxuICAgICAqIEBwYXJhbSBmb3JtYXQgLSBUaGUgdGltZSBmb3JtYXQuIERlZmF1bHRzIHRvIDI0LlxuICAgICAqIEBwYXJhbSBtaW51dGVTdGVwcyAtIFRoZSBzdGVwcyBmcm9tIG9uZSB0aW1lIHZhbHVlIHRvIHRoZSBuZXh0LiBEZWZhdWx0cyB0byAzMC5cbiAgICAgKiBAcmV0dXJucyBUaW1lcyBpbiB0aGUgMjQgaG91ciBmb3JtYXQgZnJvbSAwOjAwIHVudGlsIDIzOjMwIGluIDMwIG1pbnV0ZSBzdGVwcy5cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0RGVmYXVsdFRpbWVzKGZvcm1hdDogMTIgfCAyNCA9IDI0LCBtaW51dGVTdGVwczogTWludXRlU3RlcHMgPSAzMCk6IERyb3Bkb3duVmFsdWU8VGltZT5bXSB7XG4gICAgICAgIGNvbnN0IHJlczogRHJvcGRvd25WYWx1ZTxUaW1lPltdID0gW3sgZGlzcGxheU5hbWU6ICctJywgdmFsdWU6IHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFRpbWUgfV07XG4gICAgICAgIGZvciAobGV0IGhvdXI6IEhvdXIgPSAwOyBob3VyIDwgMjQ7IGhvdXIrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgbWludXRlOiBNaW51dGUgPSAwOyBtaW51dGUgPCA2MDsgbWludXRlICs9IG1pbnV0ZVN0ZXBzKSB7XG4gICAgICAgICAgICAgICAgcmVzLnB1c2goRGF0ZVV0aWxpdGllcy5nZXRUaW1lRHJvcGRvd25WYWx1ZShmb3JtYXQsIGhvdXIgYXMgSG91ciwgbWludXRlIGFzIE1pbnV0ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0VGltZURyb3Bkb3duVmFsdWUoZm9ybWF0OiAxMiB8IDI0LCBob3VyOiBIb3VyLCBtaW51dGU6IE1pbnV0ZSk6IERyb3Bkb3duVmFsdWU8VGltZT4ge1xuICAgICAgICBjb25zdCBkaXNwbGF5SG91cjogbnVtYmVyID0gRGF0ZVV0aWxpdGllcy5nZXRGb3JtYXR0ZWRIb3VyKGZvcm1hdCwgTG9kYXNoVXRpbGl0aWVzLmNsb25lRGVlcChob3VyKSk7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlNaW51dGU6IHN0cmluZyA9IERhdGVVdGlsaXRpZXMuZ2V0Rm9ybWF0dGVkTWludXRlKGZvcm1hdCwgaG91ciwgbWludXRlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBgJHtkaXNwbGF5SG91cn06JHtkaXNwbGF5TWludXRlfWAsXG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGhvdXJzOiBob3VyLFxuICAgICAgICAgICAgICAgIG1pbnV0ZXM6IG1pbnV0ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldEZvcm1hdHRlZEhvdXIoZm9ybWF0OiAxMiB8IDI0LCBob3VyOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAoZm9ybWF0ID09PSAxMiAmJiBob3VyID4gMTIpIHtcbiAgICAgICAgICAgIGhvdXIgLT0gMTI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0Rm9ybWF0dGVkTWludXRlKGZvcm1hdDogMTIgfCAyNCwgaG91cjogbnVtYmVyLCBtaW51dGU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGxldCByZXM6IHN0cmluZyA9IGAke21pbnV0ZX1gO1xuICAgICAgICBpZiAoZm9ybWF0ID09PSAxMikge1xuICAgICAgICAgICAgcmVzID0gaG91ciA+IDEyID8gYCR7bWludXRlfSBQTWAgOiBgJHttaW51dGV9IEFNYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWludXRlLnRvU3RyaW5nKCkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByZXMgPSAnMCcuY29uY2F0KHJlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBUaW1lIG9iamVjdCBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBkYXRlIHRvIGdldCB0aGUgdGltZSBvYmplY3QgZnJvbS5cbiAgICAgKiBAcmV0dXJucyBUaGUgVGltZSBvYmplY3QgYnVpbGQgZnJvbSB0aGUgZGF0ZSB2YWx1ZS5cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0VGltZUZyb21EYXRlKHZhbHVlPzogRGF0ZSk6IFRpbWUgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBob3VyczogbmV3IERhdGUodmFsdWUpLmdldEhvdXJzKCkgYXMgSG91cixcbiAgICAgICAgICAgIG1pbnV0ZXM6IG5ldyBEYXRlKHZhbHVlKS5nZXRNaW51dGVzKCkgYXMgTWludXRlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZGF0ZXMgYmV0d2VlbiB0aGUgdHdvIGdpdmVuIGdhdGVzLiBEb2VzIGFkZGl0aW9uYWwgZmlsdGVyaW5nIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBEYXRlUmFuZ2UgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIHN0YXJ0RGF0ZSAtIFRoZSBzdGFydCBkYXRlLlxuICAgICAqIEBwYXJhbSBlbmREYXRlIC0gVGhlIGVuZCBkYXRlLlxuICAgICAqIEBwYXJhbSBmaWx0ZXIgLSBUaGUgY3VzdG9tIGZpbHRlciBmcm9tIHRoZSBtZXRhZGF0YS5cbiAgICAgKiBAcmV0dXJucyBBbGwgZGF0ZXMgYmV0d2VlbiB0aGUgdHdvIHByb3ZpZGVkIGRhdGVzLiBJbmNsdWRlcyBzdGFydCBhbmQgZW5kIGRhdGUuXG4gICAgICovXG4gICAgc3RhdGljIGdldERhdGVzQmV0d2VlbihcbiAgICAgICAgc3RhcnREYXRlOiBEYXRlLFxuICAgICAgICBlbmREYXRlOiBEYXRlLFxuICAgICAgICBmaWx0ZXI/OiBEYXRlRmlsdGVyRm48RGF0ZT5cbiAgICApOiBEYXRlW10ge1xuICAgICAgICBjb25zdCByZXM6IERhdGVbXSA9IFtdO1xuICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgICBzdGFydERhdGUuZ2V0RnVsbFllYXIoKSA8IGVuZERhdGUuZ2V0RnVsbFllYXIoKVxuICAgICAgICAgICAgfHwgc3RhcnREYXRlLmdldE1vbnRoKCkgPCBlbmREYXRlLmdldE1vbnRoKClcbiAgICAgICAgICAgIHx8IHN0YXJ0RGF0ZS5nZXREYXRlKCkgPD0gZW5kRGF0ZS5nZXREYXRlKClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXMucHVzaChuZXcgRGF0ZShzdGFydERhdGUpKTtcbiAgICAgICAgICAgIHN0YXJ0RGF0ZS5zZXRUaW1lKHN0YXJ0RGF0ZS5nZXRUaW1lKCkgKyBEQVlfSU5fTVMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXIgPyByZXMuZmlsdGVyKGQgPT4gZmlsdGVyKGQpKSA6IHJlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWxsIHZhbGlkIHRpbWVzIGZvciB0aGUgZHJvcGRvd24gb2YgYSBkYXRldGltZSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdGltZXMgLSBBbGwgZ2l2ZW4gdGltZXMgdG8gZmlsdGVyLlxuICAgICAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgb2YgdGhlIGRhdGV0aW1lLlxuICAgICAqIEBwYXJhbSBtaW4gLSBUaGUgZnVuY3Rpb24gdGhhdCBkZWZpbmVzIHRoZSBtaW5pbXVtIHRpbWUuXG4gICAgICogQHBhcmFtIG1heCAtIFRoZSBmdW5jdGlvbiB0aGF0IGRlZmluZXMgdGhlIG1heGltdW0gdGltZS5cbiAgICAgKiBAcGFyYW0gZmlsdGVyIC0gQSBmaWx0ZXIgZnVuY3Rpb24gdG8gZG8gbW9yZSBzcGVjaWZpYyB0aW1lIGZpbHRlcmluZy4gVGhpcyBjb3VsZCBiZSBlLmcuIFRoZSByZW1vdmFsIG9mIGx1bmNoIGJyZWFrcy5cbiAgICAgKiBAcmV0dXJucyBBbGwgdmFsaWQgZHJvcGRvd24gdmFsdWVzIGZvciB0aGUgZGF0ZXRpbWUgcHJvcGVydHkuXG4gICAgICovXG4gICAgc3RhdGljIGdldFZhbGlkVGltZXNGb3JEcm9wZG93bihcbiAgICAgICAgdGltZXM6IERyb3Bkb3duVmFsdWU8VGltZSB8IHVuZGVmaW5lZD5bXSxcbiAgICAgICAgZGF0ZT86IERhdGUsXG4gICAgICAgIG1pbj86IChkYXRlPzogRGF0ZSkgPT4gVGltZSxcbiAgICAgICAgbWF4PzogKGRhdGU/OiBEYXRlKSA9PiBUaW1lLFxuICAgICAgICBmaWx0ZXI/OiAoKHRpbWU6IFRpbWUpID0+IGJvb2xlYW4pIHwgKCgpID0+IGJvb2xlYW4pXG4gICAgKTogRHJvcGRvd25WYWx1ZTxUaW1lIHwgdW5kZWZpbmVkPltdIHtcbiAgICAgICAgaWYgKG1pbikge1xuICAgICAgICAgICAgY29uc3QgbWluVGltZTogVGltZSA9IG1pbihkYXRlKTtcbiAgICAgICAgICAgIHRpbWVzID0gdGltZXMuZmlsdGVyKHQgPT4gIXQudmFsdWVcbiAgICAgICAgICAgIHx8IHQudmFsdWUuaG91cnMgPiBtaW5UaW1lLmhvdXJzXG4gICAgICAgICAgICB8fCAoXG4gICAgICAgICAgICAgICAgdC52YWx1ZS5ob3VycyA9PT0gbWluVGltZS5ob3Vyc1xuICAgICAgICAgICAgICAgICYmIHQudmFsdWUubWludXRlcyA+PSBtaW5UaW1lLm1pbnV0ZXNcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXgpIHtcbiAgICAgICAgICAgIGNvbnN0IG1heFRpbWU6IFRpbWUgPSBtYXgoZGF0ZSk7XG4gICAgICAgICAgICB0aW1lcyA9IHRpbWVzLmZpbHRlcih0ID0+ICF0LnZhbHVlXG4gICAgICAgICAgICB8fCB0LnZhbHVlLmhvdXJzIDwgbWF4VGltZS5ob3Vyc1xuICAgICAgICAgICAgfHwgKFxuICAgICAgICAgICAgICAgIHQudmFsdWUuaG91cnMgPT09IG1heFRpbWUuaG91cnNcbiAgICAgICAgICAgICAgICAmJiB0LnZhbHVlLm1pbnV0ZXMgPD0gbWF4VGltZS5taW51dGVzXG4gICAgICAgICAgICApKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICB0aW1lcyA9IHRpbWVzLmZpbHRlcih0ID0+ICF0LnZhbHVlIHx8IGZpbHRlcih0LnZhbHVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGltZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSB0aW1lIG9iamVjdCBoYXMgcHJvY2Vzc2FibGUgaG91cnMgYW5kIG1pbnV0ZXMgcHJvcGVydGllcy5cbiAgICAgKiBEb2Vzbid0IGNoZWNrIGN1c3RvbSB2YWxpZGF0b3JzIGxpa2UgbWluL21heCBmcm9tIHRoZSBtZXRhZGF0YSBjb25maWd1cmF0aW9uLlxuICAgICAqIEBwYXJhbSB0aW1lIC0gVGhlIHRpbWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMgV2hldGhlciBvciBub3QgdGhlIHRpbWUgb2JqZWN0IGlzIHVucHJvY2Vzc2FibGUuXG4gICAgICovXG4gICAgc3RhdGljIHRpbWVJc1VucHJvY2Vzc2FibGUodGltZT86IFRpbWUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRpbWU/LmhvdXJzID09IHVuZGVmaW5lZFxuICAgICAgICAgICAgfHwgdHlwZW9mIHRpbWUuaG91cnMgIT09ICdudW1iZXInXG4gICAgICAgICAgICB8fCBOdW1iZXIuaXNOYU4odGltZS5ob3VycylcbiAgICAgICAgICAgIHx8IHRpbWUubWludXRlcyA9PSB1bmRlZmluZWRcbiAgICAgICAgICAgIHx8IHR5cGVvZiB0aW1lLm1pbnV0ZXMgIT09ICdudW1iZXInXG4gICAgICAgICAgICB8fCBOdW1iZXIuaXNOYU4odGltZS5taW51dGVzKTtcbiAgICB9XG59Il19
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy91dGlsaXRpZXMvZGF0ZS51dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVqRSxNQUFNLFNBQVMsR0FBVyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUEyQzlDOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixhQUFhO0lBRS9COztPQUVHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixHQUEwQyxXQUFXLENBQUM7SUFFOUU7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBYztRQUN4QixPQUFPLEtBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLFNBQWtCLEVBQUUsRUFBRSxjQUEyQixFQUFFO1FBQ3RFLE1BQU0sR0FBRyxHQUEwQixDQUFDLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBNEIsRUFBRSxDQUFDLENBQUM7UUFDL0YsS0FBSyxJQUFJLElBQUksR0FBUyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLEtBQUssSUFBSSxNQUFNLEdBQVcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUM5RCxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsSUFBWSxFQUFFLE1BQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3pGLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRU8sTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQWUsRUFBRSxJQUFVLEVBQUUsTUFBYztRQUMzRSxNQUFNLFdBQVcsR0FBVyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRyxNQUFNLGFBQWEsR0FBVyxhQUFhLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRixPQUFPO1lBQ0gsV0FBVyxFQUFFLEdBQUcsV0FBVyxJQUFJLGFBQWEsRUFBRTtZQUM5QyxLQUFLLEVBQUU7Z0JBQ0gsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsT0FBTyxFQUFFLE1BQU07YUFDbEI7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFlLEVBQUUsSUFBWTtRQUN6RCxJQUFJLE1BQU0sS0FBSyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQzdCLElBQUksSUFBSSxFQUFFLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFlLEVBQUUsSUFBWSxFQUFFLE1BQWM7UUFDM0UsSUFBSSxHQUFHLEdBQVcsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUM5QixJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNoQixHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLEtBQUssQ0FBQztRQUN0RCxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFZO1FBQy9CLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNULE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPO1lBQ0gsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBVTtZQUN6QyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFZO1NBQ2xELENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFlLEVBQUUsT0FBYSxFQUFFLE1BQTJCO1FBQzlFLE1BQU0sZUFBZSxHQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sR0FBRyxHQUFXLEVBQUUsQ0FBQztRQUN2QixPQUNJLGVBQWUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFO2VBQ2xELGVBQWUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFO2VBQy9DLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQ25ELENBQUM7WUFDQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDcEMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsd0JBQXdCLENBQzNCLEtBQXdDLEVBQ3hDLElBQVcsRUFDWCxHQUEyQixFQUMzQixHQUEyQixFQUMzQixNQUFvRDtRQUVwRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ04sTUFBTSxPQUFPLEdBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSzttQkFDM0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUs7bUJBQzdCLENBQ0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLEtBQUs7dUJBQzVCLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQ3hDLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ04sTUFBTSxPQUFPLEdBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSzttQkFDM0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUs7bUJBQzdCLENBQ0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLEtBQUs7dUJBQzVCLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQ3hDLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBVztRQUNsQyxPQUFPLElBQUksRUFBRSxLQUFLLElBQUksU0FBUztlQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUTtlQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7ZUFDeEIsSUFBSSxDQUFDLE9BQU8sSUFBSSxTQUFTO2VBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRO2VBQ2hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlRmlsdGVyRm4gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcblxuaW1wb3J0IHsgRHJvcGRvd25WYWx1ZSB9IGZyb20gJy4uL2RlY29yYXRvcnMvYmFzZS9kcm9wZG93bi12YWx1ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTG9kYXNoVXRpbGl0aWVzIH0gZnJvbSAnLi4vZW5jYXBzdWxhdGlvbi9sb2Rhc2gudXRpbGl0aWVzJztcbmltcG9ydCB7IGRlZmF1bHRUcnVlIH0gZnJvbSAnLi4vZnVuY3Rpb25zL2RlZmF1bHQtdHJ1ZS5mdW5jdGlvbic7XG5cbmNvbnN0IERBWV9JTl9NUzogbnVtYmVyID0gMTAwMCAqIDYwICogNjAgKiAyNDtcblxuLyoqXG4gKiBIZWxwZXIgdHlwZSBmb3IgaG91cnMgYW5kIG1pbnV0ZXMuXG4gKi9cbnR5cGUgRW51bWVyYXRlPE4gZXh0ZW5kcyBudW1iZXIsIEFjYyBleHRlbmRzIG51bWJlcltdID0gW10+ID0gQWNjWydsZW5ndGgnXSBleHRlbmRzIE5cbiAgICA/IEFjY1tudW1iZXJdXG4gICAgOiBFbnVtZXJhdGU8TiwgWy4uLkFjYywgQWNjWydsZW5ndGgnXV0+O1xuXG4vKipcbiAqIEhlbHBlciB0eXBlIGZvciBob3VycyBhbmQgbWludXRlcy5cbiAqL1xudHlwZSBSYW5nZTxGIGV4dGVuZHMgbnVtYmVyLCBUIGV4dGVuZHMgbnVtYmVyPiA9IEV4Y2x1ZGU8RW51bWVyYXRlPFQ+LCBFbnVtZXJhdGU8Rj4+O1xuXG4vKipcbiAqIFRoZSBwb3NzaWJsZSBob3VyIHZhbHVlcy4gUmFuZ2VzIGZyb20gMCB0byAyMy5cbiAqL1xuZXhwb3J0IHR5cGUgSG91ciA9IFJhbmdlPDAsIDI0PjtcblxuLyoqXG4gKiBUaGUgcG9zc2libGUgbWludXRlIHZhbHVlcy4gUmFuZ2VzIGZyb20gMCB0byA1OS5cbiAqL1xuZXhwb3J0IHR5cGUgTWludXRlID0gUmFuZ2U8MCwgNjA+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0aW1lIHZhbHVlIHdpdGggaG91cnMgYW5kIG1pbnV0ZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFRpbWUgPSB7XG4gICAgLyoqXG4gICAgICogVGhlIGhvdXJzIGluIHRoZSAyNCBob3VyIGZvcm1hdC5cbiAgICAgKi9cbiAgICBob3VyczogSG91cixcbiAgICAvKipcbiAgICAgKiBUaGUgbWludXRlcyBvZiB0aGUgdGltZS5cbiAgICAgKi9cbiAgICBtaW51dGVzOiBNaW51dGVcbn07XG5cbi8qKlxuICogVmFsaWQgc3RlcHMgZnJvbSBvbmUgdGltZSB2YWx1ZSB0byB0aGUgbmV4dC4gTmVlZHMgdG8gYmUgYWJsZSB0byBkaXZpZGUgNjAgbWludXRlcyB3aXRob3V0IHJlbWFpbmRlci5cbiAqL1xudHlwZSBNaW51dGVTdGVwcyA9IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB8IDEwIHwgMTIgfCAxNSB8IDIwIHwgMzAgfCA2MDtcblxuLyoqXG4gKiBDb250YWlucyBIZWxwZXIgRnVuY3Rpb25zIGZvciBoYW5kbGluZyBkYXRlIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlVXRpbGl0aWVzIHtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkZWZhdWx0IGZpbHRlciBmdW5jdGlvbiB0byB1c2VyIHdoZW4gbm9uZSB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIuXG4gICAgICovXG4gICAgc3RhdGljIGRlZmF1bHREYXRlRmlsdGVyOiBEYXRlRmlsdGVyRm48RGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ+ID0gZGVmYXVsdFRydWU7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBnaXZlbiB2YWx1ZSBhcyBhIGRhdGUgdmFsdWUuXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGdldCBhcyBhIGRhdGUuXG4gICAgICogQHJldHVybnMgVGhlIGdpdmVuIHZhbHVlIGFzIGEgZGF0ZS5cbiAgICAgKi9cbiAgICBzdGF0aWMgYXNEYXRlKHZhbHVlOiB1bmtub3duKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBhcyBEYXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGRlZmF1bHQgdGltZXMgdXNlZCBieSB0aGUgRGF0ZVRpbWUgcGlja2VyIHdoZW4gbm90aGluZyBpcyBzcGVjaWZpZWQgYnkgdGhlIHVzZXIuXG4gICAgICogQHBhcmFtIGZvcm1hdCAtIFRoZSB0aW1lIGZvcm1hdC4gRGVmYXVsdHMgdG8gMjQuXG4gICAgICogQHBhcmFtIG1pbnV0ZVN0ZXBzIC0gVGhlIHN0ZXBzIGZyb20gb25lIHRpbWUgdmFsdWUgdG8gdGhlIG5leHQuIERlZmF1bHRzIHRvIDMwLlxuICAgICAqIEByZXR1cm5zIFRpbWVzIGluIHRoZSAyNCBob3VyIGZvcm1hdCBmcm9tIDA6MDAgdW50aWwgMjM6MzAgaW4gMzAgbWludXRlIHN0ZXBzLlxuICAgICAqL1xuICAgIHN0YXRpYyBnZXREZWZhdWx0VGltZXMoZm9ybWF0OiAxMiB8IDI0ID0gMjQsIG1pbnV0ZVN0ZXBzOiBNaW51dGVTdGVwcyA9IDMwKTogRHJvcGRvd25WYWx1ZTxUaW1lPltdIHtcbiAgICAgICAgY29uc3QgcmVzOiBEcm9wZG93blZhbHVlPFRpbWU+W10gPSBbeyBkaXNwbGF5TmFtZTogJy0nLCB2YWx1ZTogdW5kZWZpbmVkIGFzIHVua25vd24gYXMgVGltZSB9XTtcbiAgICAgICAgZm9yIChsZXQgaG91cjogSG91ciA9IDA7IGhvdXIgPCAyNDsgaG91cisrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBtaW51dGU6IE1pbnV0ZSA9IDA7IG1pbnV0ZSA8IDYwOyBtaW51dGUgKz0gbWludXRlU3RlcHMpIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaChEYXRlVXRpbGl0aWVzLmdldFRpbWVEcm9wZG93blZhbHVlKGZvcm1hdCwgaG91ciBhcyBIb3VyLCBtaW51dGUgYXMgTWludXRlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRUaW1lRHJvcGRvd25WYWx1ZShmb3JtYXQ6IDEyIHwgMjQsIGhvdXI6IEhvdXIsIG1pbnV0ZTogTWludXRlKTogRHJvcGRvd25WYWx1ZTxUaW1lPiB7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlIb3VyOiBudW1iZXIgPSBEYXRlVXRpbGl0aWVzLmdldEZvcm1hdHRlZEhvdXIoZm9ybWF0LCBMb2Rhc2hVdGlsaXRpZXMuY2xvbmVEZWVwKGhvdXIpKTtcbiAgICAgICAgY29uc3QgZGlzcGxheU1pbnV0ZTogc3RyaW5nID0gRGF0ZVV0aWxpdGllcy5nZXRGb3JtYXR0ZWRNaW51dGUoZm9ybWF0LCBob3VyLCBtaW51dGUpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGlzcGxheU5hbWU6IGAke2Rpc3BsYXlIb3VyfToke2Rpc3BsYXlNaW51dGV9YCxcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgaG91cnM6IGhvdXIsXG4gICAgICAgICAgICAgICAgbWludXRlczogbWludXRlXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0Rm9ybWF0dGVkSG91cihmb3JtYXQ6IDEyIHwgMjQsIGhvdXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmIChmb3JtYXQgPT09IDEyICYmIGhvdXIgPiAxMikge1xuICAgICAgICAgICAgaG91ciAtPSAxMjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaG91cjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRGb3JtYXR0ZWRNaW51dGUoZm9ybWF0OiAxMiB8IDI0LCBob3VyOiBudW1iZXIsIG1pbnV0ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlczogc3RyaW5nID0gYCR7bWludXRlfWA7XG4gICAgICAgIGlmIChmb3JtYXQgPT09IDEyKSB7XG4gICAgICAgICAgICByZXMgPSBob3VyID4gMTIgPyBgJHttaW51dGV9IFBNYCA6IGAke21pbnV0ZX0gQU1gO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtaW51dGUudG9TdHJpbmcoKS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJlcyA9ICcwJy5jb25jYXQocmVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIFRpbWUgb2JqZWN0IGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGRhdGUgdG8gZ2V0IHRoZSB0aW1lIG9iamVjdCBmcm9tLlxuICAgICAqIEByZXR1cm5zIFRoZSBUaW1lIG9iamVjdCBidWlsZCBmcm9tIHRoZSBkYXRlIHZhbHVlLlxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRUaW1lRnJvbURhdGUodmFsdWU/OiBEYXRlKTogVGltZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhvdXJzOiBuZXcgRGF0ZSh2YWx1ZSkuZ2V0SG91cnMoKSBhcyBIb3VyLFxuICAgICAgICAgICAgbWludXRlczogbmV3IERhdGUodmFsdWUpLmdldE1pbnV0ZXMoKSBhcyBNaW51dGVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBkYXRlcyBiZXR3ZWVuIHRoZSB0d28gZ2l2ZW4gZ2F0ZXMuIERvZXMgYWRkaXRpb25hbCBmaWx0ZXJpbmcgYmFzZWQgb24gdGhlIHByb3ZpZGVkIERhdGVSYW5nZSBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0gc3RhcnREYXRlIC0gVGhlIHN0YXJ0IGRhdGUuXG4gICAgICogQHBhcmFtIGVuZERhdGUgLSBUaGUgZW5kIGRhdGUuXG4gICAgICogQHBhcmFtIGZpbHRlciAtIFRoZSBjdXN0b20gZmlsdGVyIGZyb20gdGhlIG1ldGFkYXRhLlxuICAgICAqIEByZXR1cm5zIEFsbCBkYXRlcyBiZXR3ZWVuIHRoZSB0d28gcHJvdmlkZWQgZGF0ZXMuIEluY2x1ZGVzIHN0YXJ0IGFuZCBlbmQgZGF0ZS5cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0RGF0ZXNCZXR3ZWVuKHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSwgZmlsdGVyPzogRGF0ZUZpbHRlckZuPERhdGU+KTogRGF0ZVtdIHtcbiAgICAgICAgY29uc3QgY2xvbmVkU3RhcnREYXRlOiBEYXRlID0gbmV3IERhdGUoc3RhcnREYXRlKTtcbiAgICAgICAgY29uc3QgcmVzOiBEYXRlW10gPSBbXTtcbiAgICAgICAgd2hpbGUgKFxuICAgICAgICAgICAgY2xvbmVkU3RhcnREYXRlLmdldEZ1bGxZZWFyKCkgPCBlbmREYXRlLmdldEZ1bGxZZWFyKClcbiAgICAgICAgICAgIHx8IGNsb25lZFN0YXJ0RGF0ZS5nZXRNb250aCgpIDwgZW5kRGF0ZS5nZXRNb250aCgpXG4gICAgICAgICAgICB8fCBjbG9uZWRTdGFydERhdGUuZ2V0RGF0ZSgpIDw9IGVuZERhdGUuZ2V0RGF0ZSgpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmVzLnB1c2gobmV3IERhdGUoY2xvbmVkU3RhcnREYXRlKSk7XG4gICAgICAgICAgICBjbG9uZWRTdGFydERhdGUuc2V0VGltZShjbG9uZWRTdGFydERhdGUuZ2V0VGltZSgpICsgREFZX0lOX01TKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVyID8gcmVzLmZpbHRlcihkID0+IGZpbHRlcihkKSkgOiByZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGFsbCB2YWxpZCB0aW1lcyBmb3IgdGhlIGRyb3Bkb3duIG9mIGEgZGF0ZXRpbWUgcHJvcGVydHkuXG4gICAgICogQHBhcmFtIHRpbWVzIC0gQWxsIGdpdmVuIHRpbWVzIHRvIGZpbHRlci5cbiAgICAgKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIG9mIHRoZSBkYXRldGltZS5cbiAgICAgKiBAcGFyYW0gbWluIC0gVGhlIGZ1bmN0aW9uIHRoYXQgZGVmaW5lcyB0aGUgbWluaW11bSB0aW1lLlxuICAgICAqIEBwYXJhbSBtYXggLSBUaGUgZnVuY3Rpb24gdGhhdCBkZWZpbmVzIHRoZSBtYXhpbXVtIHRpbWUuXG4gICAgICogQHBhcmFtIGZpbHRlciAtIEEgZmlsdGVyIGZ1bmN0aW9uIHRvIGRvIG1vcmUgc3BlY2lmaWMgdGltZSBmaWx0ZXJpbmcuIFRoaXMgY291bGQgYmUgZS5nLiBUaGUgcmVtb3ZhbCBvZiBsdW5jaCBicmVha3MuXG4gICAgICogQHJldHVybnMgQWxsIHZhbGlkIGRyb3Bkb3duIHZhbHVlcyBmb3IgdGhlIGRhdGV0aW1lIHByb3BlcnR5LlxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRWYWxpZFRpbWVzRm9yRHJvcGRvd24oXG4gICAgICAgIHRpbWVzOiBEcm9wZG93blZhbHVlPFRpbWUgfCB1bmRlZmluZWQ+W10sXG4gICAgICAgIGRhdGU/OiBEYXRlLFxuICAgICAgICBtaW4/OiAoZGF0ZT86IERhdGUpID0+IFRpbWUsXG4gICAgICAgIG1heD86IChkYXRlPzogRGF0ZSkgPT4gVGltZSxcbiAgICAgICAgZmlsdGVyPzogKCh0aW1lOiBUaW1lKSA9PiBib29sZWFuKSB8ICgoKSA9PiBib29sZWFuKVxuICAgICk6IERyb3Bkb3duVmFsdWU8VGltZSB8IHVuZGVmaW5lZD5bXSB7XG4gICAgICAgIGlmIChtaW4pIHtcbiAgICAgICAgICAgIGNvbnN0IG1pblRpbWU6IFRpbWUgPSBtaW4oZGF0ZSk7XG4gICAgICAgICAgICB0aW1lcyA9IHRpbWVzLmZpbHRlcih0ID0+ICF0LnZhbHVlXG4gICAgICAgICAgICAgICAgfHwgdC52YWx1ZS5ob3VycyA+IG1pblRpbWUuaG91cnNcbiAgICAgICAgICAgICAgICB8fCAoXG4gICAgICAgICAgICAgICAgICAgIHQudmFsdWUuaG91cnMgPT09IG1pblRpbWUuaG91cnNcbiAgICAgICAgICAgICAgICAgICAgJiYgdC52YWx1ZS5taW51dGVzID49IG1pblRpbWUubWludXRlc1xuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXgpIHtcbiAgICAgICAgICAgIGNvbnN0IG1heFRpbWU6IFRpbWUgPSBtYXgoZGF0ZSk7XG4gICAgICAgICAgICB0aW1lcyA9IHRpbWVzLmZpbHRlcih0ID0+ICF0LnZhbHVlXG4gICAgICAgICAgICAgICAgfHwgdC52YWx1ZS5ob3VycyA8IG1heFRpbWUuaG91cnNcbiAgICAgICAgICAgICAgICB8fCAoXG4gICAgICAgICAgICAgICAgICAgIHQudmFsdWUuaG91cnMgPT09IG1heFRpbWUuaG91cnNcbiAgICAgICAgICAgICAgICAgICAgJiYgdC52YWx1ZS5taW51dGVzIDw9IG1heFRpbWUubWludXRlc1xuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgIHRpbWVzID0gdGltZXMuZmlsdGVyKHQgPT4gIXQudmFsdWUgfHwgZmlsdGVyKHQudmFsdWUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aW1lcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIHRpbWUgb2JqZWN0IGhhcyBwcm9jZXNzYWJsZSBob3VycyBhbmQgbWludXRlcyBwcm9wZXJ0aWVzLlxuICAgICAqIERvZXNuJ3QgY2hlY2sgY3VzdG9tIHZhbGlkYXRvcnMgbGlrZSBtaW4vbWF4IGZyb20gdGhlIG1ldGFkYXRhIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHBhcmFtIHRpbWUgLSBUaGUgdGltZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyBXaGV0aGVyIG9yIG5vdCB0aGUgdGltZSBvYmplY3QgaXMgdW5wcm9jZXNzYWJsZS5cbiAgICAgKi9cbiAgICBzdGF0aWMgdGltZUlzVW5wcm9jZXNzYWJsZSh0aW1lPzogVGltZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGltZT8uaG91cnMgPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICB8fCB0eXBlb2YgdGltZS5ob3VycyAhPT0gJ251bWJlcidcbiAgICAgICAgICAgIHx8IE51bWJlci5pc05hTih0aW1lLmhvdXJzKVxuICAgICAgICAgICAgfHwgdGltZS5taW51dGVzID09IHVuZGVmaW5lZFxuICAgICAgICAgICAgfHwgdHlwZW9mIHRpbWUubWludXRlcyAhPT0gJ251bWJlcidcbiAgICAgICAgICAgIHx8IE51bWJlci5pc05hTih0aW1lLm1pbnV0ZXMpO1xuICAgIH1cbn0iXX0=
|