ngx-sfc-common 0.0.18 → 0.0.20

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.
Files changed (79) hide show
  1. package/esm2020/lib/components/button/button.component.mjs +3 -3
  2. package/esm2020/lib/components/checkmark/checkmark.component.mjs +3 -6
  3. package/esm2020/lib/components/delimeter/delimeter.component.mjs +2 -2
  4. package/esm2020/lib/components/hamburger/default/hamburger.component.mjs +2 -2
  5. package/esm2020/lib/components/hamburger/menu/hamburger-menu.component.mjs +2 -2
  6. package/esm2020/lib/components/index.mjs +2 -1
  7. package/esm2020/lib/components/load-container/load-container.component.mjs +38 -19
  8. package/esm2020/lib/components/load-container/load-container.enum.mjs +6 -1
  9. package/esm2020/lib/components/load-container/models/load-container.model.mjs +1 -1
  10. package/esm2020/lib/components/load-container/models/load-more-parameters.model.mjs +1 -1
  11. package/esm2020/lib/components/load-container/models/load-more-predicate-parameters.model.mjs +2 -0
  12. package/esm2020/lib/components/load-container/models/load-more.model.mjs +1 -1
  13. package/esm2020/lib/components/load-container/service/load-more.service.mjs +4 -4
  14. package/esm2020/lib/components/load-more-button/load-more-button.component.mjs +2 -2
  15. package/esm2020/lib/components/modal/directive/click/modal-open-on-click.directive.mjs +6 -4
  16. package/esm2020/lib/components/modal/directive/open/modal-open.directive.mjs +5 -6
  17. package/esm2020/lib/components/modal/footer/default/default-modal-footer.component.mjs +24 -12
  18. package/esm2020/lib/components/modal/footer/default/default-modal-footer.model.mjs +1 -1
  19. package/esm2020/lib/components/modal/header/default/default-modal-header.component.mjs +5 -4
  20. package/esm2020/lib/components/modal/header/default/default-modal-header.model.mjs +1 -1
  21. package/esm2020/lib/components/modal/modal.component.mjs +15 -6
  22. package/esm2020/lib/components/modal/service/modal.event.mjs +2 -0
  23. package/esm2020/lib/components/modal/service/modal.service.mjs +14 -9
  24. package/esm2020/lib/components/toggle-switcher/toggle-switcher.component.mjs +2 -2
  25. package/esm2020/lib/constants/common.constants.mjs +2 -1
  26. package/esm2020/lib/constants/ui.constants.mjs +4 -1
  27. package/esm2020/lib/directives/if/if.directive.mjs +26 -0
  28. package/esm2020/lib/directives/index.mjs +2 -1
  29. package/esm2020/lib/directives/scroll-into-view/scroll-into-view.directive.mjs +18 -8
  30. package/esm2020/lib/directives/show-hide-element/show-hide-element.directive.mjs +1 -1
  31. package/esm2020/lib/models/class.model.mjs +2 -0
  32. package/esm2020/lib/models/index.mjs +2 -0
  33. package/esm2020/lib/ngx-sfc-common.module.mjs +6 -2
  34. package/esm2020/lib/utils/collections.utils.mjs +10 -1
  35. package/esm2020/lib/utils/common.utils.mjs +71 -2
  36. package/esm2020/lib/utils/date-time.utils.mjs +11 -1
  37. package/esm2020/lib/utils/index.mjs +4 -4
  38. package/fesm2015/ngx-sfc-common.mjs +391 -216
  39. package/fesm2015/ngx-sfc-common.mjs.map +1 -1
  40. package/fesm2020/ngx-sfc-common.mjs +390 -215
  41. package/fesm2020/ngx-sfc-common.mjs.map +1 -1
  42. package/lib/components/button/button.component.d.ts +4 -3
  43. package/lib/components/checkmark/checkmark.component.d.ts +1 -2
  44. package/lib/components/index.d.ts +2 -0
  45. package/lib/components/load-container/load-container.component.d.ts +3 -2
  46. package/lib/components/load-container/load-container.enum.d.ts +4 -0
  47. package/lib/components/load-container/models/load-container.model.d.ts +5 -2
  48. package/lib/components/load-container/models/load-more-parameters.model.d.ts +2 -1
  49. package/lib/components/load-container/models/load-more-predicate-parameters.model.d.ts +3 -0
  50. package/lib/components/load-container/models/load-more.model.d.ts +1 -0
  51. package/lib/components/load-container/service/load-more.service.d.ts +1 -1
  52. package/lib/components/modal/directive/open/modal-open.directive.d.ts +0 -1
  53. package/lib/components/modal/footer/default/default-modal-footer.component.d.ts +1 -1
  54. package/lib/components/modal/footer/default/default-modal-footer.model.d.ts +4 -2
  55. package/lib/components/modal/header/default/default-modal-header.component.d.ts +1 -1
  56. package/lib/components/modal/header/default/default-modal-header.model.d.ts +1 -1
  57. package/lib/components/modal/modal.component.d.ts +5 -3
  58. package/lib/components/modal/service/modal.event.d.ts +4 -0
  59. package/lib/components/modal/service/modal.service.d.ts +6 -5
  60. package/lib/constants/common.constants.d.ts +1 -0
  61. package/lib/constants/ui.constants.d.ts +3 -0
  62. package/lib/directives/if/if.directive.d.ts +11 -0
  63. package/lib/directives/index.d.ts +1 -0
  64. package/lib/directives/scroll-into-view/scroll-into-view.directive.d.ts +6 -2
  65. package/lib/models/class.model.d.ts +3 -0
  66. package/lib/models/index.d.ts +1 -0
  67. package/lib/ngx-sfc-common.module.d.ts +36 -35
  68. package/lib/utils/collections.utils.d.ts +7 -0
  69. package/lib/utils/common.utils.d.ts +7 -0
  70. package/lib/utils/date-time.utils.d.ts +7 -0
  71. package/lib/utils/index.d.ts +3 -3
  72. package/package.json +1 -1
  73. package/styles/_index.scss +2 -0
  74. package/styles/_mixins-delimeter.scss +21 -0
  75. package/styles/_mixins-scroll.scss +38 -0
  76. package/styles/_mixins.scss +5 -25
  77. package/styles/_variables.scss +5 -0
  78. package/styles/themes/_dark.scss +2 -2
  79. package/styles/themes/_default.scss +2 -2
@@ -1,5 +1,6 @@
1
1
  export { ClickOutsideDirective } from './click-outside/click-outside.directive';
2
2
  export { ShowHideElementDirective } from './show-hide-element/show-hide-element.directive';
3
+ export { IfDirective } from './if/if.directive';
3
4
  export { ThrowElementOnHoverDirective } from './throw-element-on-hover/throw-element-on-hover.directive';
4
5
  export { TemplateReferenceDirective } from './template-reference/template-reference.directive';
5
6
  export { MouseDownDirective } from './mouse-down/mouse-down.directive';
@@ -10,4 +11,4 @@ export { ScrollTrackerDirective } from './scroll-tracker/scroll-tracker.directiv
10
11
  export { ScrollIntoViewDirective } from './scroll-into-view/scroll-into-view.directive';
11
12
  export { ImageLoadDirective } from './image-size/image-load.directive';
12
13
  export { ImageLoadService } from './image-size/services/image-load.service';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQzlCLDJEQUEyRCxDQUFDO0FBQ3JFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUM1QixtREFBbUQsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5leHBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2NsaWNrLW91dHNpZGUvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBDbGlja091dHNpZGVFdmVudCB9IGZyb20gJy4vY2xpY2stb3V0c2lkZS9jbGljay1vdXRzaWRlLmV2ZW50JztcclxuZXhwb3J0IHsgU2hvd0hpZGVFbGVtZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9zaG93LWhpZGUtZWxlbWVudC9zaG93LWhpZGUtZWxlbWVudC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBUaHJvd0VsZW1lbnRPbkhvdmVyRGlyZWN0aXZlIH1cclxuICAgIGZyb20gJy4vdGhyb3ctZWxlbWVudC1vbi1ob3Zlci90aHJvdy1lbGVtZW50LW9uLWhvdmVyLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IFRlbXBsYXRlUmVmZXJlbmNlRGlyZWN0aXZlIH1cclxuICAgIGZyb20gJy4vdGVtcGxhdGUtcmVmZXJlbmNlL3RlbXBsYXRlLXJlZmVyZW5jZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBNb3VzZURvd25EaXJlY3RpdmUgfSBmcm9tICcuL21vdXNlLWRvd24vbW91c2UtZG93bi5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBDb21wb25lbnRTaXplRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnQtc2l6ZS9jb21wb25lbnQtc2l6ZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBEZXN0cm95UGFyZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9kZXN0cm95LXBhcmVudC9kZXN0cm95LXBhcmVudC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBEb21DaGFuZ2VzRGlyZWN0aXZlIH0gZnJvbSAnLi9kb20tY2hhbmdlcy9kb20tY2hhbmdlcy5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBTY3JvbGxUcmFja2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9zY3JvbGwtdHJhY2tlci9zY3JvbGwtdHJhY2tlci5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBTY3JvbGxJbnRvVmlld0RpcmVjdGl2ZSB9IGZyb20gJy4vc2Nyb2xsLWludG8tdmlldy9zY3JvbGwtaW50by12aWV3LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IEltYWdlTG9hZERpcmVjdGl2ZSB9IGZyb20gJy4vaW1hZ2Utc2l6ZS9pbWFnZS1sb2FkLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IEltYWdlU2l6ZSB9IGZyb20gJy4vaW1hZ2Utc2l6ZS9zZXJ2aWNlcy9pbWFnZS1zaXplLm1vZGVsJztcclxuZXhwb3J0IHsgSW1hZ2VMb2FkRXZlbnQgfSBmcm9tICcuL2ltYWdlLXNpemUvc2VydmljZXMvaW1hZ2UtbG9hZC5ldmVudCc7XHJcbmV4cG9ydCB7IEltYWdlTG9hZFNlcnZpY2UgfSBmcm9tICcuL2ltYWdlLXNpemUvc2VydmljZXMvaW1hZ2UtbG9hZC5zZXJ2aWNlJzsiXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUM5QiwyREFBMkQsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFDNUIsbURBQW1ELENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IHsgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIH0gZnJvbSAnLi9jbGljay1vdXRzaWRlL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgQ2xpY2tPdXRzaWRlRXZlbnQgfSBmcm9tICcuL2NsaWNrLW91dHNpZGUvY2xpY2stb3V0c2lkZS5ldmVudCc7XHJcbmV4cG9ydCB7IFNob3dIaWRlRWxlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4vc2hvdy1oaWRlLWVsZW1lbnQvc2hvdy1oaWRlLWVsZW1lbnQuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgSWZEaXJlY3RpdmUgfSBmcm9tICcuL2lmL2lmLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IFRocm93RWxlbWVudE9uSG92ZXJEaXJlY3RpdmUgfVxyXG4gICAgZnJvbSAnLi90aHJvdy1lbGVtZW50LW9uLWhvdmVyL3Rocm93LWVsZW1lbnQtb24taG92ZXIuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgVGVtcGxhdGVSZWZlcmVuY2VEaXJlY3RpdmUgfVxyXG4gICAgZnJvbSAnLi90ZW1wbGF0ZS1yZWZlcmVuY2UvdGVtcGxhdGUtcmVmZXJlbmNlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IE1vdXNlRG93bkRpcmVjdGl2ZSB9IGZyb20gJy4vbW91c2UtZG93bi9tb3VzZS1kb3duLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IENvbXBvbmVudFNpemVEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudC1zaXplL2NvbXBvbmVudC1zaXplLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IERlc3Ryb3lQYXJlbnREaXJlY3RpdmUgfSBmcm9tICcuL2Rlc3Ryb3ktcGFyZW50L2Rlc3Ryb3ktcGFyZW50LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IERvbUNoYW5nZXNEaXJlY3RpdmUgfSBmcm9tICcuL2RvbS1jaGFuZ2VzL2RvbS1jaGFuZ2VzLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IFNjcm9sbFRyYWNrZXJEaXJlY3RpdmUgfSBmcm9tICcuL3Njcm9sbC10cmFja2VyL3Njcm9sbC10cmFja2VyLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IFNjcm9sbEludG9WaWV3RGlyZWN0aXZlIH0gZnJvbSAnLi9zY3JvbGwtaW50by12aWV3L3Njcm9sbC1pbnRvLXZpZXcuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgSW1hZ2VMb2FkRGlyZWN0aXZlIH0gZnJvbSAnLi9pbWFnZS1zaXplL2ltYWdlLWxvYWQuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgSW1hZ2VTaXplIH0gZnJvbSAnLi9pbWFnZS1zaXplL3NlcnZpY2VzL2ltYWdlLXNpemUubW9kZWwnO1xyXG5leHBvcnQgeyBJbWFnZUxvYWRFdmVudCB9IGZyb20gJy4vaW1hZ2Utc2l6ZS9zZXJ2aWNlcy9pbWFnZS1sb2FkLmV2ZW50JztcclxuZXhwb3J0IHsgSW1hZ2VMb2FkU2VydmljZSB9IGZyb20gJy4vaW1hZ2Utc2l6ZS9zZXJ2aWNlcy9pbWFnZS1sb2FkLnNlcnZpY2UnOyJdfQ==
@@ -3,19 +3,27 @@ import { isChromeBrowser, isDefined } from '../../utils';
3
3
  import * as i0 from "@angular/core";
4
4
  export class ScrollIntoViewDirective {
5
5
  constructor() {
6
+ /**
7
+ * Scroll into middle of local container(not whole page)
8
+ */
9
+ this.local = false;
6
10
  this.options = { behavior: 'smooth', block: 'center', inline: 'start' };
7
11
  }
8
- set sfcScrollIntoView(value) {
9
- if (!isDefined(value))
12
+ set sfcScrollIntoView(target) {
13
+ if (!isDefined(target))
10
14
  return;
11
- if (isChromeBrowser())
12
- value.scrollIntoViewIfNeeded();
13
- else
14
- value.scrollIntoView(this.options);
15
+ if (this.local)
16
+ target.scrollTop = target.offsetHeight / 2;
17
+ else {
18
+ if (isChromeBrowser())
19
+ target.scrollIntoViewIfNeeded();
20
+ else
21
+ target.scrollIntoView(this.options);
22
+ }
15
23
  }
16
24
  }
17
25
  ScrollIntoViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ScrollIntoViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
- ScrollIntoViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ScrollIntoViewDirective, selector: "[sfcScrollIntoView]", inputs: { sfcScrollIntoView: "sfcScrollIntoView", options: "options" }, ngImport: i0 });
26
+ ScrollIntoViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ScrollIntoViewDirective, selector: "[sfcScrollIntoView]", inputs: { sfcScrollIntoView: "sfcScrollIntoView", local: "local", options: "options" }, ngImport: i0 });
19
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ScrollIntoViewDirective, decorators: [{
20
28
  type: Directive,
21
29
  args: [{
@@ -23,7 +31,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
23
31
  }]
24
32
  }], propDecorators: { sfcScrollIntoView: [{
25
33
  type: Input
34
+ }], local: [{
35
+ type: Input
26
36
  }], options: [{
27
37
  type: Input
28
38
  }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWludG8tdmlldy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvc2Nyb2xsLWludG8tdmlldy9zY3JvbGwtaW50by12aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLHVCQUF1QjtJQUhwQztRQWlCRSxZQUFPLEdBQTBCLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztLQUMzRjtJQWJDLElBQ0ksaUJBQWlCLENBQUMsS0FBa0I7UUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDbkIsT0FBTztRQUVULElBQUksZUFBZSxFQUFFO1lBQ2xCLEtBQWEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDOztZQUV4QyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDOztvSEFYVSx1QkFBdUI7d0dBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7aUJBQ2hDOzhCQUlLLGlCQUFpQjtzQkFEcEIsS0FBSztnQkFZTixPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzQ2hyb21lQnJvd3NlciwgaXNEZWZpbmVkIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc2ZjU2Nyb2xsSW50b1ZpZXddJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2Nyb2xsSW50b1ZpZXdEaXJlY3RpdmUge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZmNTY3JvbGxJbnRvVmlldyh2YWx1ZTogSFRNTEVsZW1lbnQpIHtcclxuICAgIGlmICghaXNEZWZpbmVkKHZhbHVlKSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGlmIChpc0Nocm9tZUJyb3dzZXIoKSlcclxuICAgICAgKHZhbHVlIGFzIGFueSkuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpO1xyXG4gICAgZWxzZVxyXG4gICAgICB2YWx1ZS5zY3JvbGxJbnRvVmlldyh0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBvcHRpb25zOiBTY3JvbGxJbnRvVmlld09wdGlvbnMgPSB7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdjZW50ZXInLCBpbmxpbmU6ICdzdGFydCcgfTtcclxufSJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWludG8tdmlldy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvc2Nyb2xsLWludG8tdmlldy9zY3JvbGwtaW50by12aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLHVCQUF1QjtJQUhwQztRQW9CRTs7V0FFRztRQUVILFVBQUssR0FBWSxLQUFLLENBQUM7UUFHdkIsWUFBTyxHQUEwQixFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7S0FDM0Y7SUF2QkMsSUFDSSxpQkFBaUIsQ0FBQyxNQUFtQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUNwQixPQUFPO1FBRVQsSUFBSSxJQUFJLENBQUMsS0FBSztZQUNaLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7YUFDeEM7WUFDSCxJQUFJLGVBQWUsRUFBRTtnQkFDbEIsTUFBYyxDQUFDLHNCQUFzQixFQUFFLENBQUM7O2dCQUV6QyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7O29IQWZVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtpQkFDaEM7OEJBSUssaUJBQWlCO3NCQURwQixLQUFLO2dCQW1CTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc0Nocm9tZUJyb3dzZXIsIGlzRGVmaW5lZCB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NmY1Njcm9sbEludG9WaWV3XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjcm9sbEludG9WaWV3RGlyZWN0aXZlIHtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgc2ZjU2Nyb2xsSW50b1ZpZXcodGFyZ2V0OiBIVE1MRWxlbWVudCkge1xyXG4gICAgaWYgKCFpc0RlZmluZWQodGFyZ2V0KSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGlmICh0aGlzLmxvY2FsKVxyXG4gICAgICB0YXJnZXQuc2Nyb2xsVG9wID0gdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDI7XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKGlzQ2hyb21lQnJvd3NlcigpKVxyXG4gICAgICAgICh0YXJnZXQgYXMgYW55KS5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0YXJnZXQuc2Nyb2xsSW50b1ZpZXcodGhpcy5vcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNjcm9sbCBpbnRvIG1pZGRsZSBvZiBsb2NhbCBjb250YWluZXIobm90IHdob2xlIHBhZ2UpXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBsb2NhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG9wdGlvbnM6IFNjcm9sbEludG9WaWV3T3B0aW9ucyA9IHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcicsIGlubGluZTogJ3N0YXJ0JyB9O1xyXG59Il19
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
39
39
  }], delay: [{
40
40
  type: Input
41
41
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1oaWRlLWVsZW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL3Nob3ctaGlkZS1lbGVtZW50L3Nob3ctaGlkZS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSzlDLE1BQU0sT0FBTyx3QkFBd0I7SUFxQm5DLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBbkJqQix1Q0FBa0MsR0FBVyxHQUFHLENBQUM7UUFvQmhFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFuQkQsSUFDSSxlQUFlLENBQUMsSUFBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJO1lBQzFCLENBQUMsQ0FBQyxXQUFXLENBQUMsc0JBQXNCO1lBQ3BDLENBQUMsQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFZLEtBQUs7UUFDZixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBTU8sa0JBQWtCLENBQUMsUUFBZ0IsSUFBSSxDQUFDLGtDQUFrQztRQUNoRixPQUFPLGNBQWMsS0FBSztzQkFDUixLQUFLO21CQUNSLENBQUM7SUFDbEIsQ0FBQzs7cUhBN0JVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakM7aUdBTUssZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBU3ZCLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVUlDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc2ZjU2hvd0hpZGVFbGVtZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNob3dIaWRlRWxlbWVudERpcmVjdGl2ZSB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgU0hPV19ISURFX1RSQU5TSVRJT05fREVMQVlfREVGQVVMVDogbnVtYmVyID0gMC41OyAgXHJcblxyXG4gIEBJbnB1dCgnc2ZjU2hvd0hpZGVFbGVtZW50JylcclxuICBzZXQgc2hvd0hpZGVFbGVtZW50KHNob3c6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc3R5bGUudmlzaWJpbGl0eSA9IHNob3dcclxuICAgICAgPyBVSUNvbnN0YW50cy5DU1NfVklTSUJJTElUWV9WSVNJQkxFXHJcbiAgICAgIDogVUlDb25zdGFudHMuQ1NTX1ZJU0lCSUxJVFlfSElEREVOO1xyXG4gICAgdGhpcy5zdHlsZS5vcGFjaXR5ID0gc2hvdyA/IDEgOiAwO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZGVsYXkodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5zdHlsZS50cmFuc2l0aW9uID0gdGhpcy5nZXRUcmFuc2l0aW9uVmFsdWUodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgZ2V0IHN0eWxlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5zdHlsZS50cmFuc2l0aW9uID0gdGhpcy5nZXRUcmFuc2l0aW9uVmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VHJhbnNpdGlvblZhbHVlKGRlbGF5OiBudW1iZXIgPSB0aGlzLlNIT1dfSElERV9UUkFOU0lUSU9OX0RFTEFZX0RFRkFVTFQpIHtcclxuICAgIHJldHVybiBgdmlzaWJpbGl0eSAke2RlbGF5fXMsIFxyXG4gICAgICAgICAgICBvcGFjaXR5ICR7ZGVsYXl9cyBcclxuICAgICAgICAgICAgbGluZWFyYDtcclxuICB9XHJcbn0iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1oaWRlLWVsZW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL3Nob3ctaGlkZS1lbGVtZW50L3Nob3ctaGlkZS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSzlDLE1BQU0sT0FBTyx3QkFBd0I7SUFxQm5DLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBbkJqQix1Q0FBa0MsR0FBVyxHQUFHLENBQUM7UUFvQmhFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFuQkQsSUFDSSxlQUFlLENBQUMsSUFBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJO1lBQzFCLENBQUMsQ0FBQyxXQUFXLENBQUMsc0JBQXNCO1lBQ3BDLENBQUMsQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFZLEtBQUs7UUFDZixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBTU8sa0JBQWtCLENBQUMsUUFBZ0IsSUFBSSxDQUFDLGtDQUFrQztRQUNoRixPQUFPLGNBQWMsS0FBSztzQkFDUixLQUFLO21CQUNSLENBQUM7SUFDbEIsQ0FBQzs7cUhBN0JVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakM7aUdBTUssZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBU3ZCLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVUlDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc2ZjU2hvd0hpZGVFbGVtZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNob3dIaWRlRWxlbWVudERpcmVjdGl2ZSB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgU0hPV19ISURFX1RSQU5TSVRJT05fREVMQVlfREVGQVVMVDogbnVtYmVyID0gMC41O1xyXG5cclxuICBASW5wdXQoJ3NmY1Nob3dIaWRlRWxlbWVudCcpXHJcbiAgc2V0IHNob3dIaWRlRWxlbWVudChzaG93OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnN0eWxlLnZpc2liaWxpdHkgPSBzaG93XHJcbiAgICAgID8gVUlDb25zdGFudHMuQ1NTX1ZJU0lCSUxJVFlfVklTSUJMRVxyXG4gICAgICA6IFVJQ29uc3RhbnRzLkNTU19WSVNJQklMSVRZX0hJRERFTjtcclxuICAgIHRoaXMuc3R5bGUub3BhY2l0eSA9IHNob3cgPyAxIDogMDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRlbGF5KHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc3R5bGUudHJhbnNpdGlvbiA9IHRoaXMuZ2V0VHJhbnNpdGlvblZhbHVlKHZhbHVlKTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGdldCBzdHlsZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgIHRoaXMuc3R5bGUudHJhbnNpdGlvbiA9IHRoaXMuZ2V0VHJhbnNpdGlvblZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRyYW5zaXRpb25WYWx1ZShkZWxheTogbnVtYmVyID0gdGhpcy5TSE9XX0hJREVfVFJBTlNJVElPTl9ERUxBWV9ERUZBVUxUKSB7XHJcbiAgICByZXR1cm4gYHZpc2liaWxpdHkgJHtkZWxheX1zLCBcclxuICAgICAgICAgICAgb3BhY2l0eSAke2RlbGF5fXMgXHJcbiAgICAgICAgICAgIGxpbmVhcmA7XHJcbiAgfVxyXG59Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL21vZGVscy9jbGFzcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQ2xhc3NNb2RlbCB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBib29sZWFuO1xyXG59Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgSUNsYXNzTW9kZWwgfSBmcm9tICcuL2NsYXNzLm1vZGVsJzsiXX0=
@@ -2,7 +2,7 @@ import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
4
4
  import { DOCUMENT_PROVIDERS, WINDOW_PROVIDERS } from './services';
5
- import { ClickOutsideDirective, ShowHideElementDirective, ThrowElementOnHoverDirective, TemplateReferenceDirective, MouseDownDirective, ComponentSizeDirective, DestroyParentDirective, DomChangesDirective, ScrollTrackerDirective, ScrollIntoViewDirective, ImageLoadDirective } from './directives';
5
+ import { ClickOutsideDirective, ShowHideElementDirective, IfDirective, ThrowElementOnHoverDirective, TemplateReferenceDirective, MouseDownDirective, ComponentSizeDirective, DestroyParentDirective, DomChangesDirective, ScrollTrackerDirective, ScrollIntoViewDirective, ImageLoadDirective } from './directives';
6
6
  import { SwitchMultiCasePipe } from './pipes';
7
7
  import { ButtonComponent, TooltipComponent, DelimeterComponent, BounceLoaderComponent, CircleLoaderComponent, ModalComponent, ModalOpenOnClickDirective, ModalOpenDirective, DefaultModalHeaderComponent, DefaultModalFooterComponent, HamburgerComponent, HamburgerMenuComponent, DotsComponent, ToggleSwitcherComponent, CheckmarkComponent, TemplateContentComponent, CloseComponent, PaginationComponent, SortingComponent, LoadContainerComponent, LoadMoreButtonComponent, IconComponent } from './components';
8
8
  import * as i0 from "@angular/core";
@@ -13,6 +13,7 @@ NgxSfcCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
13
13
  // directives
14
14
  ClickOutsideDirective,
15
15
  ShowHideElementDirective,
16
+ IfDirective,
16
17
  ThrowElementOnHoverDirective,
17
18
  TemplateReferenceDirective,
18
19
  MouseDownDirective,
@@ -53,6 +54,7 @@ NgxSfcCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
53
54
  // directives
54
55
  ClickOutsideDirective,
55
56
  ShowHideElementDirective,
57
+ IfDirective,
56
58
  ThrowElementOnHoverDirective,
57
59
  TemplateReferenceDirective,
58
60
  MouseDownDirective,
@@ -98,6 +100,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
98
100
  // directives
99
101
  ClickOutsideDirective,
100
102
  ShowHideElementDirective,
103
+ IfDirective,
101
104
  ThrowElementOnHoverDirective,
102
105
  TemplateReferenceDirective,
103
106
  MouseDownDirective,
@@ -143,6 +146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
143
146
  // directives
144
147
  ClickOutsideDirective,
145
148
  ShowHideElementDirective,
149
+ IfDirective,
146
150
  ThrowElementOnHoverDirective,
147
151
  TemplateReferenceDirective,
148
152
  MouseDownDirective,
@@ -183,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
183
187
  providers: [DOCUMENT_PROVIDERS, WINDOW_PROVIDERS]
184
188
  }]
185
189
  }] });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNmYy1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9uZ3gtc2ZjLWNvbW1vbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDakIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbkIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCx5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0Isa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixhQUFhLEVBQ2IsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixhQUFhLEVBQ2QsTUFBTSxjQUFjLENBQUM7O0FBMkZ0QixNQUFNLE9BQU8sa0JBQWtCOzsr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QUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3dCQUN2QixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsUUFBUTt3QkFDUixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6QiwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsUUFBUTt3QkFDUixtQkFBbUI7cUJBQ3BCO29CQUNELFNBQVMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5pbXBvcnQge1xyXG4gIERPQ1VNRU5UX1BST1ZJREVSUyxcclxuICBXSU5ET1dfUFJPVklERVJTXHJcbn0gZnJvbSAnLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxyXG4gIFNob3dIaWRlRWxlbWVudERpcmVjdGl2ZSxcclxuICBUaHJvd0VsZW1lbnRPbkhvdmVyRGlyZWN0aXZlLFxyXG4gIFRlbXBsYXRlUmVmZXJlbmNlRGlyZWN0aXZlLFxyXG4gIE1vdXNlRG93bkRpcmVjdGl2ZSxcclxuICBDb21wb25lbnRTaXplRGlyZWN0aXZlLFxyXG4gIERlc3Ryb3lQYXJlbnREaXJlY3RpdmUsXHJcbiAgRG9tQ2hhbmdlc0RpcmVjdGl2ZSxcclxuICBTY3JvbGxUcmFja2VyRGlyZWN0aXZlLFxyXG4gIFNjcm9sbEludG9WaWV3RGlyZWN0aXZlLFxyXG4gIEltYWdlTG9hZERpcmVjdGl2ZVxyXG59IGZyb20gJy4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IFN3aXRjaE11bHRpQ2FzZVBpcGUgfSBmcm9tICcuL3BpcGVzJztcclxuaW1wb3J0IHtcclxuICBCdXR0b25Db21wb25lbnQsXHJcbiAgVG9vbHRpcENvbXBvbmVudCxcclxuICBEZWxpbWV0ZXJDb21wb25lbnQsXHJcbiAgQm91bmNlTG9hZGVyQ29tcG9uZW50LFxyXG4gIENpcmNsZUxvYWRlckNvbXBvbmVudCxcclxuICBNb2RhbENvbXBvbmVudCxcclxuICBNb2RhbE9wZW5PbkNsaWNrRGlyZWN0aXZlLFxyXG4gIE1vZGFsT3BlbkRpcmVjdGl2ZSxcclxuICBEZWZhdWx0TW9kYWxIZWFkZXJDb21wb25lbnQsXHJcbiAgRGVmYXVsdE1vZGFsRm9vdGVyQ29tcG9uZW50LFxyXG4gIEhhbWJ1cmdlckNvbXBvbmVudCxcclxuICBIYW1idXJnZXJNZW51Q29tcG9uZW50LFxyXG4gIERvdHNDb21wb25lbnQsXHJcbiAgVG9nZ2xlU3dpdGNoZXJDb21wb25lbnQsXHJcbiAgQ2hlY2ttYXJrQ29tcG9uZW50LFxyXG4gIFRlbXBsYXRlQ29udGVudENvbXBvbmVudCxcclxuICBDbG9zZUNvbXBvbmVudCxcclxuICBQYWdpbmF0aW9uQ29tcG9uZW50LFxyXG4gIFNvcnRpbmdDb21wb25lbnQsXHJcbiAgTG9hZENvbnRhaW5lckNvbXBvbmVudCxcclxuICBMb2FkTW9yZUJ1dHRvbkNvbXBvbmVudCxcclxuICBJY29uQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9jb21wb25lbnRzJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAvLyBkaXJlY3RpdmVzXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBTaG93SGlkZUVsZW1lbnREaXJlY3RpdmUsXHJcbiAgICBUaHJvd0VsZW1lbnRPbkhvdmVyRGlyZWN0aXZlLFxyXG4gICAgVGVtcGxhdGVSZWZlcmVuY2VEaXJlY3RpdmUsXHJcbiAgICBNb3VzZURvd25EaXJlY3RpdmUsXHJcbiAgICBDb21wb25lbnRTaXplRGlyZWN0aXZlLFxyXG4gICAgRGVzdHJveVBhcmVudERpcmVjdGl2ZSxcclxuICAgIERvbUNoYW5nZXNEaXJlY3RpdmUsXHJcbiAgICBTY3JvbGxUcmFja2VyRGlyZWN0aXZlLFxyXG4gICAgU2Nyb2xsSW50b1ZpZXdEaXJlY3RpdmUsXHJcbiAgICBJbWFnZUxvYWREaXJlY3RpdmUsXHJcbiAgICAvLyBjb21wb25lbnRzXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBUb29sdGlwQ29tcG9uZW50LFxyXG4gICAgRGVsaW1ldGVyQ29tcG9uZW50LFxyXG4gICAgVG9nZ2xlU3dpdGNoZXJDb21wb25lbnQsXHJcbiAgICBDaGVja21hcmtDb21wb25lbnQsXHJcbiAgICBUZW1wbGF0ZUNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBDbG9zZUNvbXBvbmVudCxcclxuICAgIEhhbWJ1cmdlckNvbXBvbmVudCxcclxuICAgIEhhbWJ1cmdlck1lbnVDb21wb25lbnQsXHJcbiAgICBEb3RzQ29tcG9uZW50LFxyXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFNvcnRpbmdDb21wb25lbnQsXHJcbiAgICBMb2FkTW9yZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIExvYWRDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBJY29uQ29tcG9uZW50LFxyXG4gICAgLy8gbG9hZGVyc1xyXG4gICAgQm91bmNlTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgQ2lyY2xlTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgLy8gbW9kYWxcclxuICAgIE1vZGFsQ29tcG9uZW50LFxyXG4gICAgTW9kYWxPcGVuRGlyZWN0aXZlLFxyXG4gICAgTW9kYWxPcGVuT25DbGlja0RpcmVjdGl2ZSxcclxuICAgIERlZmF1bHRNb2RhbEhlYWRlckNvbXBvbmVudCxcclxuICAgIERlZmF1bHRNb2RhbEZvb3RlckNvbXBvbmVudCxcclxuICAgIC8vIHBpcGVzXHJcbiAgICBTd2l0Y2hNdWx0aUNhc2VQaXBlICAgICAgICBcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvbnRBd2Vzb21lTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICAvLyBkaXJlY3RpdmVzXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBTaG93SGlkZUVsZW1lbnREaXJlY3RpdmUsXHJcbiAgICBUaHJvd0VsZW1lbnRPbkhvdmVyRGlyZWN0aXZlLFxyXG4gICAgVGVtcGxhdGVSZWZlcmVuY2VEaXJlY3RpdmUsXHJcbiAgICBNb3VzZURvd25EaXJlY3RpdmUsXHJcbiAgICBDb21wb25lbnRTaXplRGlyZWN0aXZlLFxyXG4gICAgRGVzdHJveVBhcmVudERpcmVjdGl2ZSxcclxuICAgIERvbUNoYW5nZXNEaXJlY3RpdmUsXHJcbiAgICBTY3JvbGxUcmFja2VyRGlyZWN0aXZlLFxyXG4gICAgU2Nyb2xsSW50b1ZpZXdEaXJlY3RpdmUsXHJcbiAgICBJbWFnZUxvYWREaXJlY3RpdmUsXHJcbiAgICAvLyBjb21wb25lbnRzXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBUb29sdGlwQ29tcG9uZW50LFxyXG4gICAgRGVsaW1ldGVyQ29tcG9uZW50LFxyXG4gICAgQ2xvc2VDb21wb25lbnQsXHJcbiAgICBDaGVja21hcmtDb21wb25lbnQsXHJcbiAgICBUZW1wbGF0ZUNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBUb2dnbGVTd2l0Y2hlckNvbXBvbmVudCxcclxuICAgIERvdHNDb21wb25lbnQsXHJcbiAgICBIYW1idXJnZXJDb21wb25lbnQsXHJcbiAgICBIYW1idXJnZXJNZW51Q29tcG9uZW50LFxyXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFNvcnRpbmdDb21wb25lbnQsXHJcbiAgICBMb2FkTW9yZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIExvYWRDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBJY29uQ29tcG9uZW50LFxyXG4gICAgLy8gbG9hZGVyc1xyXG4gICAgQm91bmNlTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgQ2lyY2xlTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgLy8gbW9kYWxcclxuICAgIE1vZGFsQ29tcG9uZW50LFxyXG4gICAgTW9kYWxPcGVuRGlyZWN0aXZlLFxyXG4gICAgTW9kYWxPcGVuT25DbGlja0RpcmVjdGl2ZSxcclxuICAgIERlZmF1bHRNb2RhbEhlYWRlckNvbXBvbmVudCxcclxuICAgIERlZmF1bHRNb2RhbEZvb3RlckNvbXBvbmVudCxcclxuICAgIC8vIHBpcGVzXHJcbiAgICBTd2l0Y2hNdWx0aUNhc2VQaXBlICAgICAgICBcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW0RPQ1VNRU5UX1BST1ZJREVSUywgV0lORE9XX1BST1ZJREVSU11cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFNmY0NvbW1vbk1vZHVsZSB7IH1cclxuIl19
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNmYy1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9uZ3gtc2ZjLWNvbW1vbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDakIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsV0FBVyxFQUNYLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ25CLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsYUFBYSxFQUNiLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsYUFBYSxFQUNkLE1BQU0sY0FBYyxDQUFDOztBQTZGdEIsTUFBTSxPQUFP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Vzt3QkFDWCw0QkFBNEI7d0JBQzVCLDBCQUEwQjt3QkFDMUIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixhQUFhO3dCQUNiLFVBQVU7d0JBQ1YscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLFFBQVE7d0JBQ1IsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLHlCQUF5Qjt3QkFDekIsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLFFBQVE7d0JBQ1IsbUJBQW1CO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcclxuaW1wb3J0IHtcclxuICBET0NVTUVOVF9QUk9WSURFUlMsXHJcbiAgV0lORE9XX1BST1ZJREVSU1xyXG59IGZyb20gJy4vc2VydmljZXMnO1xyXG5pbXBvcnQge1xyXG4gIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcclxuICBTaG93SGlkZUVsZW1lbnREaXJlY3RpdmUsXHJcbiAgSWZEaXJlY3RpdmUsXHJcbiAgVGhyb3dFbGVtZW50T25Ib3ZlckRpcmVjdGl2ZSxcclxuICBUZW1wbGF0ZVJlZmVyZW5jZURpcmVjdGl2ZSxcclxuICBNb3VzZURvd25EaXJlY3RpdmUsXHJcbiAgQ29tcG9uZW50U2l6ZURpcmVjdGl2ZSxcclxuICBEZXN0cm95UGFyZW50RGlyZWN0aXZlLFxyXG4gIERvbUNoYW5nZXNEaXJlY3RpdmUsXHJcbiAgU2Nyb2xsVHJhY2tlckRpcmVjdGl2ZSxcclxuICBTY3JvbGxJbnRvVmlld0RpcmVjdGl2ZSxcclxuICBJbWFnZUxvYWREaXJlY3RpdmVcclxufSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBTd2l0Y2hNdWx0aUNhc2VQaXBlIH0gZnJvbSAnLi9waXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgQnV0dG9uQ29tcG9uZW50LFxyXG4gIFRvb2x0aXBDb21wb25lbnQsXHJcbiAgRGVsaW1ldGVyQ29tcG9uZW50LFxyXG4gIEJvdW5jZUxvYWRlckNvbXBvbmVudCxcclxuICBDaXJjbGVMb2FkZXJDb21wb25lbnQsXHJcbiAgTW9kYWxDb21wb25lbnQsXHJcbiAgTW9kYWxPcGVuT25DbGlja0RpcmVjdGl2ZSxcclxuICBNb2RhbE9wZW5EaXJlY3RpdmUsXHJcbiAgRGVmYXVsdE1vZGFsSGVhZGVyQ29tcG9uZW50LFxyXG4gIERlZmF1bHRNb2RhbEZvb3RlckNvbXBvbmVudCxcclxuICBIYW1idXJnZXJDb21wb25lbnQsXHJcbiAgSGFtYnVyZ2VyTWVudUNvbXBvbmVudCxcclxuICBEb3RzQ29tcG9uZW50LFxyXG4gIFRvZ2dsZVN3aXRjaGVyQ29tcG9uZW50LFxyXG4gIENoZWNrbWFya0NvbXBvbmVudCxcclxuICBUZW1wbGF0ZUNvbnRlbnRDb21wb25lbnQsXHJcbiAgQ2xvc2VDb21wb25lbnQsXHJcbiAgUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICBTb3J0aW5nQ29tcG9uZW50LFxyXG4gIExvYWRDb250YWluZXJDb21wb25lbnQsXHJcbiAgTG9hZE1vcmVCdXR0b25Db21wb25lbnQsXHJcbiAgSWNvbkNvbXBvbmVudFxyXG59IGZyb20gJy4vY29tcG9uZW50cyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgLy8gZGlyZWN0aXZlc1xyXG4gICAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxyXG4gICAgU2hvd0hpZGVFbGVtZW50RGlyZWN0aXZlLFxyXG4gICAgSWZEaXJlY3RpdmUsXHJcbiAgICBUaHJvd0VsZW1lbnRPbkhvdmVyRGlyZWN0aXZlLFxyXG4gICAgVGVtcGxhdGVSZWZlcmVuY2VEaXJlY3RpdmUsXHJcbiAgICBNb3VzZURvd25EaXJlY3RpdmUsXHJcbiAgICBDb21wb25lbnRTaXplRGlyZWN0aXZlLFxyXG4gICAgRGVzdHJveVBhcmVudERpcmVjdGl2ZSxcclxuICAgIERvbUNoYW5nZXNEaXJlY3RpdmUsXHJcbiAgICBTY3JvbGxUcmFja2VyRGlyZWN0aXZlLFxyXG4gICAgU2Nyb2xsSW50b1ZpZXdEaXJlY3RpdmUsXHJcbiAgICBJbWFnZUxvYWREaXJlY3RpdmUsXHJcbiAgICAvLyBjb21wb25lbnRzXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBUb29sdGlwQ29tcG9uZW50LFxyXG4gICAgRGVsaW1ldGVyQ29tcG9uZW50LFxyXG4gICAgVG9nZ2xlU3dpdGNoZXJDb21wb25lbnQsXHJcbiAgICBDaGVja21hcmtDb21wb25lbnQsXHJcbiAgICBUZW1wbGF0ZUNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBDbG9zZUNvbXBvbmVudCxcclxuICAgIEhhbWJ1cmdlckNvbXBvbmVudCxcclxuICAgIEhhbWJ1cmdlck1lbnVDb21wb25lbnQsXHJcbiAgICBEb3RzQ29tcG9uZW50LFxyXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFNvcnRpbmdDb21wb25lbnQsXHJcbiAgICBMb2FkTW9yZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIExvYWRDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBJY29uQ29tcG9uZW50LFxyXG4gICAgLy8gbG9hZGVyc1xyXG4gICAgQm91bmNlTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgQ2lyY2xlTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgLy8gbW9kYWxcclxuICAgIE1vZGFsQ29tcG9uZW50LFxyXG4gICAgTW9kYWxPcGVuRGlyZWN0aXZlLFxyXG4gICAgTW9kYWxPcGVuT25DbGlja0RpcmVjdGl2ZSxcclxuICAgIERlZmF1bHRNb2RhbEhlYWRlckNvbXBvbmVudCxcclxuICAgIERlZmF1bHRNb2RhbEZvb3RlckNvbXBvbmVudCxcclxuICAgIC8vIHBpcGVzXHJcbiAgICBTd2l0Y2hNdWx0aUNhc2VQaXBlICAgICAgICBcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvbnRBd2Vzb21lTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICAvLyBkaXJlY3RpdmVzXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBTaG93SGlkZUVsZW1lbnREaXJlY3RpdmUsXHJcbiAgICBJZkRpcmVjdGl2ZSxcclxuICAgIFRocm93RWxlbWVudE9uSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBUZW1wbGF0ZVJlZmVyZW5jZURpcmVjdGl2ZSxcclxuICAgIE1vdXNlRG93bkRpcmVjdGl2ZSxcclxuICAgIENvbXBvbmVudFNpemVEaXJlY3RpdmUsXHJcbiAgICBEZXN0cm95UGFyZW50RGlyZWN0aXZlLFxyXG4gICAgRG9tQ2hhbmdlc0RpcmVjdGl2ZSxcclxuICAgIFNjcm9sbFRyYWNrZXJEaXJlY3RpdmUsXHJcbiAgICBTY3JvbGxJbnRvVmlld0RpcmVjdGl2ZSxcclxuICAgIEltYWdlTG9hZERpcmVjdGl2ZSxcclxuICAgIC8vIGNvbXBvbmVudHNcclxuICAgIEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRvb2x0aXBDb21wb25lbnQsXHJcbiAgICBEZWxpbWV0ZXJDb21wb25lbnQsXHJcbiAgICBDbG9zZUNvbXBvbmVudCxcclxuICAgIENoZWNrbWFya0NvbXBvbmVudCxcclxuICAgIFRlbXBsYXRlQ29udGVudENvbXBvbmVudCxcclxuICAgIFRvZ2dsZVN3aXRjaGVyQ29tcG9uZW50LFxyXG4gICAgRG90c0NvbXBvbmVudCxcclxuICAgIEhhbWJ1cmdlckNvbXBvbmVudCxcclxuICAgIEhhbWJ1cmdlck1lbnVDb21wb25lbnQsXHJcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxyXG4gICAgU29ydGluZ0NvbXBvbmVudCxcclxuICAgIExvYWRNb3JlQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgTG9hZENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIEljb25Db21wb25lbnQsXHJcbiAgICAvLyBsb2FkZXJzXHJcbiAgICBCb3VuY2VMb2FkZXJDb21wb25lbnQsXHJcbiAgICBDaXJjbGVMb2FkZXJDb21wb25lbnQsXHJcbiAgICAvLyBtb2RhbFxyXG4gICAgTW9kYWxDb21wb25lbnQsXHJcbiAgICBNb2RhbE9wZW5EaXJlY3RpdmUsXHJcbiAgICBNb2RhbE9wZW5PbkNsaWNrRGlyZWN0aXZlLFxyXG4gICAgRGVmYXVsdE1vZGFsSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgRGVmYXVsdE1vZGFsRm9vdGVyQ29tcG9uZW50LFxyXG4gICAgLy8gcGlwZXNcclxuICAgIFN3aXRjaE11bHRpQ2FzZVBpcGUgICAgICAgIFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbRE9DVU1FTlRfUFJPVklERVJTLCBXSU5ET1dfUFJPVklERVJTXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4U2ZjQ29tbW9uTW9kdWxlIHsgfVxyXG4iXX0=
@@ -76,6 +76,15 @@ export function lastItem(collection) {
76
76
  export function all(collection, predicate) {
77
77
  return any(collection) ? collection.filter(predicate).length == collection.length : false;
78
78
  }
79
+ /**
80
+ * Return count by predicate
81
+ * @param collection Array of objects
82
+ * @param predicate Function to define check logic
83
+ * @returns Items count
84
+ */
85
+ export function count(collection, predicate) {
86
+ return collection.filter(predicate).length;
87
+ }
79
88
  /**
80
89
  * Return items from collection by predicate function
81
90
  * @param collection Array of items
@@ -268,4 +277,4 @@ export function updateItemBy(collection, predicate, newItem) {
268
277
  export function getCollectionOrEmpty(collection) {
269
278
  return isDefined(collection) ? collection : [];
270
279
  }
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL3V0aWxzL2NvbGxlY3Rpb25zLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FBSSxVQUF1QztJQUMxRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSyxVQUF1QixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBSSxVQUFvQixFQUFFLEtBQVE7SUFDckQsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDO1dBQ2YsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsS0FBSyxlQUFlLENBQUMsZUFBZSxDQUFDO0FBQzVGLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUksVUFBb0IsRUFBRSxTQUErQjtJQUM5RSxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxlQUFlLENBQUM7QUFDbEcsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUksVUFBc0IsRUFBRSxvQkFBb0I7QUFDekUsUUFBZ0IsRUFBRSxLQUFRO0lBQzFCLE9BQU8s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LENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Db25zdGFudHMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tIFwiLi4vZW51bXNcIjtcclxuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSBcIi4vY29tbW9uLnV0aWxzXCI7XHJcbmltcG9ydCB7IGlzTnVsbE9yRW1wdHlTdHJpbmcgfSBmcm9tIFwiLi9zdHJpbmcudXRpbHNcIjtcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBjb2xsZWN0aW9uIG5vdCBlbXB0eVxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGNvbGxlY3Rpb24gbm90IGVtcHR5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYW55PFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+IHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGlzRGVmaW5lZChjb2xsZWN0aW9uKSAmJiAoY29sbGVjdGlvbiBhcyBBcnJheTxUPikubGVuZ3RoID4gMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGNvbGxlY3Rpb24gaGFzIHN1Y2ggdmFsdWVcclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZm91bmQgdmFsdWUgaW4gY29sbGVjdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc0l0ZW08VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIHZhbHVlOiBUKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYW55KGNvbGxlY3Rpb24pXHJcbiAgICAgICAgJiYgY29sbGVjdGlvbi5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSB2YWx1ZSkgIT09IENvbW1vbkNvbnN0YW50cy5OT1RfRk9VTkRfSU5ERVg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBjb2xsZWN0aW9uIGhhcyBzdWNoIHZhbHVlIGJ5IHByZWRpY2F0ZSBmdW5jdGlvblxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gcHJlZGljYXRlIEZ1bmN0aW9uIHRvIGRlZmluZSBjaGVjayBsb2dpY1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZvdW5kIHZhbHVlIGluIGNvbGxlY3Rpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNJdGVtQnk8VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIHByZWRpY2F0ZTogKGl0ZW06IFQpID0+IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBhbnkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5maW5kSW5kZXgocHJlZGljYXRlKSAhPT0gQ29tbW9uQ29uc3RhbnRzLk5PVF9GT1VORF9JTkRFWDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGNvbGxlY3Rpb24gb2Ygb2JqZWN0cyBoYXMgc3VjaCB2YWx1ZSBhcyBvYmplY3RcclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2Ygb2JqZWN0c1xyXG4gKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgbmFtZVxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmb3VuZCB2YWx1ZSBpbiBjb2xsZWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaGFzT2JqZWN0SXRlbTxUPihjb2xsZWN0aW9uOiBBcnJheTxhbnk+LCAvLyBUT0RPIDwtLSBBcnJheTxUPlxyXG4gICAgcHJvcGVydHk6IHN0cmluZywgdmFsdWU6IFQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBhbnkoY29sbGVjdGlvbilcclxuICAgICAgICAmJiBjb2xsZWN0aW9uLmZpbmRJbmRleChpdGVtID0+XHJcbiAgICAgICAgICAgIGl0ZW0uaGFzT3duUHJvcGVydHkocHJvcGVydHkpXHJcbiAgICAgICAgICAgICYmIGl0ZW1bcHJvcGVydHldID09PSB2YWx1ZSkgIT09IENvbW1vbkNvbnN0YW50cy5OT1RfRk9VTkRfSU5ERVg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdmFsdWUgZnJvbSBjb2xsZWN0aW9uIGJ5IHByZWRpY2F0ZSBmdW5jdGlvblxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gcHJlZGljYXRlIEZ1bmN0aW9uIHRvIGRlZmluZSBzZWFyY2ggbG9naWNcclxuICogQHJldHVybnMgVmFsdWUgZnJvbSBjb2xsZWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZmlyc3RPckRlZmF1bHQ8VD4oY29sbGVjdGlvbjogQXJyYXk8VD4gfCBudWxsIHwgdW5kZWZpbmVkLFxyXG4gICAgcHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbilcclxuICAgIDogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gYW55KGNvbGxlY3Rpb24pID8gY29sbGVjdGlvbj8uZmluZChwcmVkaWNhdGUpIDogdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGZpcnN0IGl0ZW0gZnJvbSBjb2xsZWN0aW9uXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIGl0ZW1zXHJcbiAqIEByZXR1cm5zIEZpcnN0IHZhbHVlIGZyb20gY29sbGVjdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0SXRlbTxUPihjb2xsZWN0aW9uOiBBcnJheTxUPik6IFQgfCBudWxsIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBhbnkoY29sbGVjdGlvbikgPyBjb2xsZWN0aW9uWzBdIDogbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBsYXN0IGl0ZW0gZnJvbSBjb2xsZWN0aW9uXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIGl0ZW1zXHJcbiAqIEByZXR1cm5zIExhc3QgdmFsdWUgZnJvbSBjb2xsZWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbGFzdEl0ZW08VD4oY29sbGVjdGlvbjogQXJyYXk8VD4pOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gYW55KGNvbGxlY3Rpb24pID8gY29sbGVjdGlvbltjb2xsZWN0aW9uLmxlbmd0aCAtIDFdIDogbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBUcnVlIGlmIGFsbCB2YWx1ZXMgbWF0Y2ggcHJlZGljYXRlIGZ1bmN0aW9uXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIG9iamVjdHNcclxuICogQHBhcmFtIHByZWRpY2F0ZSBGdW5jdGlvbiB0byBkZWZpbmUgY2hlY2sgbG9naWNcclxuICogQHJldHVybnMgVHJ1ZSBpZiBhbGwgdmFsdWVzIG1hdGNoIHByZWRpY2F0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFsbDxUPihjb2xsZWN0aW9uOiBBcnJheTxUPiwgcHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGFueShjb2xsZWN0aW9uKSA/IGNvbGxlY3Rpb24uZmlsdGVyKHByZWRpY2F0ZSkubGVuZ3RoID09IGNvbGxlY3Rpb24ubGVuZ3RoIDogZmFsc2U7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gaXRlbXMgZnJvbSBjb2xsZWN0aW9uIGJ5IHByZWRpY2F0ZSBmdW5jdGlvblxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gcHJlZGljYXRlIEZ1bmN0aW9uIHRvIGRlZmluZSBzZWFyY2ggbG9naWNcclxuICogQHJldHVybnMgVmFsdWVzIGZyb20gY29sbGVjdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHdoZXJlPFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+LCBwcmVkaWNhdGU6IChpdGVtOiBUKSA9PiBib29sZWFuKVxyXG4gICAgOiBBcnJheTxUPiB8IG51bGwgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIGFueShjb2xsZWN0aW9uKSA/IGNvbGxlY3Rpb24uZmlsdGVyKHByZWRpY2F0ZSkgOiBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHNsaWNlZCBjb2xsZWN0aW9uIGJ5IHBhZ2UgbnVtYmVyIGFuZCBwYWdlIHNpemVcclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHBhcmFtIHBhZ2UgUGFnZSBudW1iZXJcclxuICogQHBhcmFtIHNpemUgUGFnZSBzaXplXHJcbiAqIEByZXR1cm5zIFNsaWNlZCBjb2xsZWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2tpcDxUPihjb2xsZWN0aW9uOiBBcnJheTxUPiwgcGFnZTogbnVtYmVyLCBzaXplOiBudW1iZXIpOiBBcnJheTxUPiB7XHJcbiAgICBpZiAoYW55KGNvbGxlY3Rpb24pKSB7XHJcbiAgICAgICAgbGV0IHN0YXJ0ID0gKHBhZ2UgLSAxKSAqIHNpemU7XHJcbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb24uc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgc2l6ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzb3J0PFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+LCBkaXJlY3Rpb246IFNvcnRpbmdEaXJlY3Rpb24gPSBTb3J0aW5nRGlyZWN0aW9uLkFzY2VuZGluZyk6IEFycmF5PFQ+IHtcclxuICAgIGlmIChhbnkoY29sbGVjdGlvbikpIHtcclxuICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IFNvcnRpbmdEaXJlY3Rpb24uQXNjZW5kaW5nXHJcbiAgICAgICAgICAgID8gY29sbGVjdGlvbi5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gYSAtIGIpXHJcbiAgICAgICAgICAgIDogY29sbGVjdGlvbi5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gYiAtIGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb2xsZWN0aW9uO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHNvcnRlZCBjb2xsZWN0aW9uIG9mIG9iamVjdHMgYnkgcHJvcGVydHlcclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHBhcmFtIHByb3BlcnR5IFByb3BlcnR5IG5hbWVcclxuICogQHBhcmFtIGRpcmVjdGlvbiBTb3J0aW5nIGRpcmVjdGlvblxyXG4gKiBAcmV0dXJucyBTb3J0ZWQgY29sbGVjdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRCeTxUPihjb2xsZWN0aW9uOiBBcnJheTxUPiwgcHJvcGVydHk6IHN0cmluZyxcclxuICAgIGRpcmVjdGlvbjogU29ydGluZ0RpcmVjdGlvbik6IEFycmF5PFQ+IHtcclxuICAgIGlmIChhbnkoY29sbGVjdGlvbikpIHtcclxuICAgICAgICBsZXQgX3NvcnRGdW5jID0gKGE6IGFueSwgYjogYW55KSA9PlxyXG4gICAgICAgICAgICAodDE6IG51bWJlciwgdDI6IG51bWJlcikgPT5cclxuICAgICAgICAgICAgICAgIChhW3Byb3BlcnR5XSA+IGJbcHJvcGVydHldID8gdDEgOiB0Mik7XHJcblxyXG4gICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT0gU29ydGluZ0RpcmVjdGlvbi5Bc2NlbmRpbmdcclxuICAgICAgICAgICAgPyBjb2xsZWN0aW9uLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiBfc29ydEZ1bmMoYSwgYikoMSwgLTEpKVxyXG4gICAgICAgICAgICA6IGNvbGxlY3Rpb24uc29ydCgoYTogYW55LCBiOiBhbnkpID0+IF9zb3J0RnVuYyhhLCBiKSgtMSwgMSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb2xsZWN0aW9uO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHNvcnRlZCBjb2xsZWN0aW9uIG9mIG9iamVjdHMgYnkgcGF0aFxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gcGF0aCBQYXRoIHRvIHByb3BlcnR5XHJcbiAqIEBwYXJhbSBkaXJlY3Rpb24gU29ydGluZyBkaXJlY3Rpb25cclxuICogQHJldHVybnMgU29ydGVkIGNvbGxlY3Rpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzb3J0QnlQYXRoPFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+LCBwYXRoOiBzdHJpbmcsIGRpcmVjdGlvbjogU29ydGluZ0RpcmVjdGlvbilcclxuICAgIDogQXJyYXk8VD4ge1xyXG4gICAgaWYgKGFueShjb2xsZWN0aW9uKSkge1xyXG4gICAgICAgIGlmIChpc051bGxPckVtcHR5U3RyaW5nKHBhdGgpKVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbGxlY3Rpb24gdXRpbHMgfCBTb3J0IEJ5IFBhdGggZnVuY3Rpb24gLS0+IFBhdGggaXMgZW1wdHkuJyk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhdGhQYXJ0cyA9IHBhdGguc3BsaXQoJy4nKTtcclxuXHJcbiAgICAgICAgaWYgKCFhbnkocGF0aFBhcnRzKSlcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2xsZWN0aW9uIHV0aWxzIHwgU29ydCBCeSBQYXRoIGZ1bmN0aW9uIC0tPiBQYXRoIGlzIGluY29ycmVjdC4nKTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFydHNMZW5ndGggPSBwYXRoUGFydHMubGVuZ3RoO1xyXG5cclxuICAgICAgICBjb2xsZWN0aW9uLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBpID0gMDtcclxuICAgICAgICAgICAgd2hpbGUgKGkgPCBwYXJ0c0xlbmd0aCkgeyBhID0gYVtwYXRoUGFydHNbaV1dOyBiID0gYltwYXRoUGFydHNbaV1dOyBpKys7IH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT0gU29ydGluZ0RpcmVjdGlvbi5Bc2NlbmRpbmdcclxuICAgICAgICAgICAgICAgID8gYSA+PSBiID8gMSA6IC0xXHJcbiAgICAgICAgICAgICAgICA6IGEgPiBiID8gLTEgOiAxO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBjb2xsZWN0aW9uIHdpdGhvdXQgbWF0Y2hlc1xyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcmV0dXJucyBDb2xsZWN0aW9uIHdpdGhvdXQgbWF0Y2hlc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRpc3RpbmN0PFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+KTogQXJyYXk8VD4ge1xyXG4gICAgcmV0dXJuIGFueShjb2xsZWN0aW9uKVxyXG4gICAgICAgID8gY29sbGVjdGlvbi5maWx0ZXIoKHZhbHVlLCBpbmRleCwgc2VsZikgPT4gc2VsZi5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXgpXHJcbiAgICAgICAgOiBjb2xsZWN0aW9uO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHN1bSB2YWx1ZSBmcm9tIGNvbGxlY3Rpb24gaXRlbXMgYnkgbWFwIGZ1bmN0aW9uXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIGl0ZW1zXHJcbiAqIEBwYXJhbSBzZWxlY3QgTWFwIGZ1bmN0aW9uXHJcbiAqIEByZXR1cm5zIFN1bSB2YWx1ZSBvZiBjb2xlY3Rpb24gaXRlbXNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzdW08VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIHNlbGVjdDogKGl0ZW06IFQpID0+IG51bWJlcik6IG51bWJlciB7XHJcbiAgICByZXR1cm4gYW55KGNvbGxlY3Rpb24pXHJcbiAgICAgICAgPyBjb2xsZWN0aW9uXHJcbiAgICAgICAgICAgIC5tYXAoc2VsZWN0KVxyXG4gICAgICAgICAgICAucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhICsgYiB9LCAwKVxyXG4gICAgICAgIDogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBtYXggdmFsdWUgZnJvbSBjb2xsZWN0aW9uIGl0ZW1zIGJ5IG1hcCBmdW5jdGlvblxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gc2VsZWN0IE1hcCBmdW5jdGlvblxyXG4gKiBAcmV0dXJucyBNYXggdmFsdWUgb2YgY29sbGVjdGlvbiBpdGVtc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1heDxUPihjb2xsZWN0aW9uOiBBcnJheTxUPiwgc2VsZWN0OiAoaXRlbTogVCkgPT4gbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGlmIChhbnkoY29sbGVjdGlvbikpXHJcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KC4uLmNvbGxlY3Rpb24ubWFwKHNlbGVjdCkpO1xyXG5cclxuICAgIHRocm93IG5ldyBFcnJvcignQ29sbGVjdGlvbiB1dGlscyB8IE1heCBmdW5jdGlvbiAtLT4gQ29sbGVjdGlvbiBpcyBlbXB0eS4nKVxyXG59XHJcblxyXG4vKipcclxuICogRGVsZXRlIGl0ZW1zIGZyb20gY29sbGVjdGlvbiBieSBwcmVkaWNhdGVcclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHBhcmFtIHByZWRpY2F0ZSBGdW5jdGlvbiB0byBkZWZpbmUgcmVtb3ZlIGxvZ2ljXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlPFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+LCBwcmVkaWNhdGU6IChpdGVtOiBUKSA9PiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB2YXIgaSA9IGNvbGxlY3Rpb24ubGVuZ3RoO1xyXG4gICAgd2hpbGUgKGktLSkge1xyXG4gICAgICAgIGlmIChwcmVkaWNhdGUoY29sbGVjdGlvbltpXSkpIHtcclxuICAgICAgICAgICAgY29sbGVjdGlvbi5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogQWRkIGl0ZW0gdG8gY29sbGVjdGlvblxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gaXRlbSBOZXcgaXRlbVxyXG4gKiBAcGFyYW0gcHJlZGljYXRlIEZ1bmN0aW9uIHRvIGRlZmluZSBpZiBhbGxvd2VkIHRvIGFkZCBuZXcgaXRlbVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHN1Y2Nlc3NmdWxseSBhZGRlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEl0ZW08VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIGl0ZW06IFQsXHJcbiAgICBwcmVkaWNhdGU6IChpdGVtOiBUKSA9PiBib29sZWFuKTogYm9vbGVhbiB7XHJcblxyXG4gICAgaWYgKCFpc0RlZmluZWQoY29sbGVjdGlvbikpXHJcbiAgICAgICAgY29sbGVjdGlvbiA9IG5ldyBBcnJheTxUPigpO1xyXG5cclxuICAgIGlmIChpc0RlZmluZWQocHJlZGljYXRlKSAmJiBwcmVkaWNhdGUoaXRlbSkpXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGNvbGxlY3Rpb24ucHVzaChpdGVtKTtcclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERlbGV0ZSBpdGVtIGZyb20gY29sbGVjdGlvblxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gaXRlbSBJdGVtIHRvIGRlbGV0ZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHN1Y2Nlc3NmdWxseSByZW1vdmVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlSXRlbTxUPihjb2xsZWN0aW9uOiBBcnJheTxUPiwgaXRlbTogVCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGlzRGVmaW5lZChpdGVtKSAmJiBoYXNJdGVtKGNvbGxlY3Rpb24sIGl0ZW0pKSB7XHJcbiAgICAgICAgY29sbGVjdGlvbi5zcGxpY2UoY29sbGVjdGlvbi5pbmRleE9mKGl0ZW0pLCAxKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWxldGUgaXRlbSBmcm9tIGNvbGxlY3Rpb24gYnkgcHJlZGljYXRlXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIGl0ZW1zXHJcbiAqIEBwYXJhbSBwcmVkaWNhdGUgRnVuY3Rpb24gdG8gZGVmaW5lIHJlbW92ZSBsb2dpY1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHN1Y2Nlc3NmdWxseSByZW1vdmVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlSXRlbUJ5PFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+LCBwcmVkaWNhdGU6IChpdGVtOiBUKSA9PiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBmb3VuZEl0ZW06IFQgfCBudWxsIHwgdW5kZWZpbmVkID0gZmlyc3RPckRlZmF1bHQoY29sbGVjdGlvbiwgcHJlZGljYXRlKTtcclxuICAgIGlmIChpc0RlZmluZWQoZm91bmRJdGVtKSkge1xyXG4gICAgICAgIGNvbGxlY3Rpb24uc3BsaWNlKGNvbGxlY3Rpb24uaW5kZXhPZihmb3VuZEl0ZW0gYXMgVCksIDEpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFVwZGF0ZSBpdGVtIGluIGNvbGxlY3Rpb24gYnkgcHJlZGljYXRlXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIGl0ZW1zXHJcbiAqIEBwYXJhbSBwcmVkaWNhdGUgRnVuY3Rpb24gdG8gZGVmaW5lIGl0ZW0gZm9yIGRlbGV0aW5nXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgc3VjY2Vzc2Z1bGx5IHJlbW92ZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVJdGVtQnk8VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIHByZWRpY2F0ZTogKGl0ZW06IFQpID0+IGJvb2xlYW4sIG5ld0l0ZW06IFQpXHJcbiAgICA6IEFycmF5PFQ+IHwgbnVsbCB7XHJcbiAgICBjb25zdCBpdGVtSW5kZXggPSBjb2xsZWN0aW9uLmZpbmRJbmRleChwcmVkaWNhdGUpO1xyXG5cclxuICAgIGlmIChpdGVtSW5kZXggIT09IENvbW1vbkNvbnN0YW50cy5OT1RfRk9VTkRfSU5ERVgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBjb2xsZWN0aW9uLnNsaWNlKDApO1xyXG4gICAgICAgIHJlc3VsdFtpdGVtSW5kZXhdID0ge1xyXG4gICAgICAgICAgICAuLi5jb2xsZWN0aW9uW2l0ZW1JbmRleF0sXHJcbiAgICAgICAgICAgIC4uLm5ld0l0ZW1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiByZXN1bHRcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBjb2xsZWN0aW9uIG9yIGVtcHR5IGlmIGNvbGxlY3Rpb24gaXMgbm90IGRlZmluZWRcclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHJldHVybnMgQ29sbGVjdGlvbiBvciBlbXB0eVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbGxlY3Rpb25PckVtcHR5PFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+KTogQXJyYXk8VD4ge1xyXG4gICAgcmV0dXJuIGlzRGVmaW5lZChjb2xsZWN0aW9uKSA/IGNvbGxlY3Rpb24gOiBbXTtcclxufSJdfQ==
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL3V0aWxzL2NvbGxlY3Rpb25zLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FBSSxVQUF1QztJQUMxRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSyxVQUF1QixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBSSxVQUFvQixFQUFFLEtBQVE7SUFDckQsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDO1dBQ2YsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsS0FBSyxlQUFlLENBQUMsZUFBZSxDQUFDO0FBQzVGLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUksVUFBb0IsRUFBRSxTQUErQjtJQUM5RSxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxlQUFlLENBQUM7QUFDbEcsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUksVUFBc0IsRUFBRSxvQkFBb0I7QUFDekUsUUFBZ0IsRUFBRSxLQUFRO0lBQzFCLE9BQU8s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Q0FBQztRQUNGLE9BQU8sTUFBTSxDQUFBO0tBQ2hCO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUksVUFBb0I7SUFDeEQsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Db25zdGFudHMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tIFwiLi4vZW51bXNcIjtcclxuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSBcIi4vY29tbW9uLnV0aWxzXCI7XHJcbmltcG9ydCB7IGlzTnVsbE9yRW1wdHlTdHJpbmcgfSBmcm9tIFwiLi9zdHJpbmcudXRpbHNcIjtcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBjb2xsZWN0aW9uIG5vdCBlbXB0eVxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGNvbGxlY3Rpb24gbm90IGVtcHR5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYW55PFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+IHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGlzRGVmaW5lZChjb2xsZWN0aW9uKSAmJiAoY29sbGVjdGlvbiBhcyBBcnJheTxUPikubGVuZ3RoID4gMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGNvbGxlY3Rpb24gaGFzIHN1Y2ggdmFsdWVcclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZm91bmQgdmFsdWUgaW4gY29sbGVjdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc0l0ZW08VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIHZhbHVlOiBUKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYW55KGNvbGxlY3Rpb24pXHJcbiAgICAgICAgJiYgY29sbGVjdGlvbi5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSB2YWx1ZSkgIT09IENvbW1vbkNvbnN0YW50cy5OT1RfRk9VTkRfSU5ERVg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBjb2xsZWN0aW9uIGhhcyBzdWNoIHZhbHVlIGJ5IHByZWRpY2F0ZSBmdW5jdGlvblxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gcHJlZGljYXRlIEZ1bmN0aW9uIHRvIGRlZmluZSBjaGVjayBsb2dpY1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZvdW5kIHZhbHVlIGluIGNvbGxlY3Rpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNJdGVtQnk8VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIHByZWRpY2F0ZTogKGl0ZW06IFQpID0+IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBhbnkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5maW5kSW5kZXgocHJlZGljYXRlKSAhPT0gQ29tbW9uQ29uc3RhbnRzLk5PVF9GT1VORF9JTkRFWDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGNvbGxlY3Rpb24gb2Ygb2JqZWN0cyBoYXMgc3VjaCB2YWx1ZSBhcyBvYmplY3RcclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2Ygb2JqZWN0c1xyXG4gKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgbmFtZVxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmb3VuZCB2YWx1ZSBpbiBjb2xsZWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaGFzT2JqZWN0SXRlbTxUPihjb2xsZWN0aW9uOiBBcnJheTxhbnk+LCAvLyBUT0RPIDwtLSBBcnJheTxUPlxyXG4gICAgcHJvcGVydHk6IHN0cmluZywgdmFsdWU6IFQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBhbnkoY29sbGVjdGlvbilcclxuICAgICAgICAmJiBjb2xsZWN0aW9uLmZpbmRJbmRleChpdGVtID0+XHJcbiAgICAgICAgICAgIGl0ZW0uaGFzT3duUHJvcGVydHkocHJvcGVydHkpXHJcbiAgICAgICAgICAgICYmIGl0ZW1bcHJvcGVydHldID09PSB2YWx1ZSkgIT09IENvbW1vbkNvbnN0YW50cy5OT1RfRk9VTkRfSU5ERVg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdmFsdWUgZnJvbSBjb2xsZWN0aW9uIGJ5IHByZWRpY2F0ZSBmdW5jdGlvblxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gcHJlZGljYXRlIEZ1bmN0aW9uIHRvIGRlZmluZSBzZWFyY2ggbG9naWNcclxuICogQHJldHVybnMgVmFsdWUgZnJvbSBjb2xsZWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZmlyc3RPckRlZmF1bHQ8VD4oY29sbGVjdGlvbjogQXJyYXk8VD4gfCBudWxsIHwgdW5kZWZpbmVkLFxyXG4gICAgcHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbilcclxuICAgIDogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gYW55KGNvbGxlY3Rpb24pID8gY29sbGVjdGlvbj8uZmluZChwcmVkaWNhdGUpIDogdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGZpcnN0IGl0ZW0gZnJvbSBjb2xsZWN0aW9uXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIGl0ZW1zXHJcbiAqIEByZXR1cm5zIEZpcnN0IHZhbHVlIGZyb20gY29sbGVjdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0SXRlbTxUPihjb2xsZWN0aW9uOiBBcnJheTxUPik6IFQgfCBudWxsIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBhbnkoY29sbGVjdGlvbikgPyBjb2xsZWN0aW9uWzBdIDogbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBsYXN0IGl0ZW0gZnJvbSBjb2xsZWN0aW9uXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIGl0ZW1zXHJcbiAqIEByZXR1cm5zIExhc3QgdmFsdWUgZnJvbSBjb2xsZWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbGFzdEl0ZW08VD4oY29sbGVjdGlvbjogQXJyYXk8VD4pOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gYW55KGNvbGxlY3Rpb24pID8gY29sbGVjdGlvbltjb2xsZWN0aW9uLmxlbmd0aCAtIDFdIDogbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBUcnVlIGlmIGFsbCB2YWx1ZXMgbWF0Y2ggcHJlZGljYXRlIGZ1bmN0aW9uXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIG9iamVjdHNcclxuICogQHBhcmFtIHByZWRpY2F0ZSBGdW5jdGlvbiB0byBkZWZpbmUgY2hlY2sgbG9naWNcclxuICogQHJldHVybnMgVHJ1ZSBpZiBhbGwgdmFsdWVzIG1hdGNoIHByZWRpY2F0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFsbDxUPihjb2xsZWN0aW9uOiBBcnJheTxUPiwgcHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGFueShjb2xsZWN0aW9uKSA/IGNvbGxlY3Rpb24uZmlsdGVyKHByZWRpY2F0ZSkubGVuZ3RoID09IGNvbGxlY3Rpb24ubGVuZ3RoIDogZmFsc2U7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gY291bnQgYnkgcHJlZGljYXRlXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIG9iamVjdHNcclxuICogQHBhcmFtIHByZWRpY2F0ZSBGdW5jdGlvbiB0byBkZWZpbmUgY2hlY2sgbG9naWNcclxuICogQHJldHVybnMgSXRlbXMgY291bnRcclxuICovXHJcbiBleHBvcnQgZnVuY3Rpb24gY291bnQ8VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIHByZWRpY2F0ZTogKGl0ZW06IFQpID0+IGJvb2xlYW4pOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uZmlsdGVyKHByZWRpY2F0ZSkubGVuZ3RoO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGl0ZW1zIGZyb20gY29sbGVjdGlvbiBieSBwcmVkaWNhdGUgZnVuY3Rpb25cclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHBhcmFtIHByZWRpY2F0ZSBGdW5jdGlvbiB0byBkZWZpbmUgc2VhcmNoIGxvZ2ljXHJcbiAqIEByZXR1cm5zIFZhbHVlcyBmcm9tIGNvbGxlY3Rpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB3aGVyZTxUPihjb2xsZWN0aW9uOiBBcnJheTxUPiwgcHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbilcclxuICAgIDogQXJyYXk8VD4gfCBudWxsIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBhbnkoY29sbGVjdGlvbikgPyBjb2xsZWN0aW9uLmZpbHRlcihwcmVkaWNhdGUpIDogbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBzbGljZWQgY29sbGVjdGlvbiBieSBwYWdlIG51bWJlciBhbmQgcGFnZSBzaXplXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIGl0ZW1zXHJcbiAqIEBwYXJhbSBwYWdlIFBhZ2UgbnVtYmVyXHJcbiAqIEBwYXJhbSBzaXplIFBhZ2Ugc2l6ZVxyXG4gKiBAcmV0dXJucyBTbGljZWQgY29sbGVjdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNraXA8VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIHBhZ2U6IG51bWJlciwgc2l6ZTogbnVtYmVyKTogQXJyYXk8VD4ge1xyXG4gICAgaWYgKGFueShjb2xsZWN0aW9uKSkge1xyXG4gICAgICAgIGxldCBzdGFydCA9IChwYWdlIC0gMSkgKiBzaXplO1xyXG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uLnNsaWNlKHN0YXJ0LCBzdGFydCArIHNpemUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb2xsZWN0aW9uO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc29ydDxUPihjb2xsZWN0aW9uOiBBcnJheTxUPiwgZGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uID0gU29ydGluZ0RpcmVjdGlvbi5Bc2NlbmRpbmcpOiBBcnJheTxUPiB7XHJcbiAgICBpZiAoYW55KGNvbGxlY3Rpb24pKSB7XHJcbiAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBTb3J0aW5nRGlyZWN0aW9uLkFzY2VuZGluZ1xyXG4gICAgICAgICAgICA/IGNvbGxlY3Rpb24uc29ydCgoYTogYW55LCBiOiBhbnkpID0+IGEgLSBiKVxyXG4gICAgICAgICAgICA6IGNvbGxlY3Rpb24uc29ydCgoYTogYW55LCBiOiBhbnkpID0+IGIgLSBhKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBzb3J0ZWQgY29sbGVjdGlvbiBvZiBvYmplY3RzIGJ5IHByb3BlcnR5XHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIGl0ZW1zXHJcbiAqIEBwYXJhbSBwcm9wZXJ0eSBQcm9wZXJ0eSBuYW1lXHJcbiAqIEBwYXJhbSBkaXJlY3Rpb24gU29ydGluZyBkaXJlY3Rpb25cclxuICogQHJldHVybnMgU29ydGVkIGNvbGxlY3Rpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzb3J0Qnk8VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIHByb3BlcnR5OiBzdHJpbmcsXHJcbiAgICBkaXJlY3Rpb246IFNvcnRpbmdEaXJlY3Rpb24pOiBBcnJheTxUPiB7XHJcbiAgICBpZiAoYW55KGNvbGxlY3Rpb24pKSB7XHJcbiAgICAgICAgbGV0IF9zb3J0RnVuYyA9IChhOiBhbnksIGI6IGFueSkgPT5cclxuICAgICAgICAgICAgKHQxOiBudW1iZXIsIHQyOiBudW1iZXIpID0+XHJcbiAgICAgICAgICAgICAgICAoYVtwcm9wZXJ0eV0gPiBiW3Byb3BlcnR5XSA/IHQxIDogdDIpO1xyXG5cclxuICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IFNvcnRpbmdEaXJlY3Rpb24uQXNjZW5kaW5nXHJcbiAgICAgICAgICAgID8gY29sbGVjdGlvbi5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gX3NvcnRGdW5jKGEsIGIpKDEsIC0xKSlcclxuICAgICAgICAgICAgOiBjb2xsZWN0aW9uLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiBfc29ydEZ1bmMoYSwgYikoLTEsIDEpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBzb3J0ZWQgY29sbGVjdGlvbiBvZiBvYmplY3RzIGJ5IHBhdGhcclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHBhcmFtIHBhdGggUGF0aCB0byBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gZGlyZWN0aW9uIFNvcnRpbmcgZGlyZWN0aW9uXHJcbiAqIEByZXR1cm5zIFNvcnRlZCBjb2xsZWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc29ydEJ5UGF0aDxUPihjb2xsZWN0aW9uOiBBcnJheTxUPiwgcGF0aDogc3RyaW5nLCBkaXJlY3Rpb246IFNvcnRpbmdEaXJlY3Rpb24pXHJcbiAgICA6IEFycmF5PFQ+IHtcclxuICAgIGlmIChhbnkoY29sbGVjdGlvbikpIHtcclxuICAgICAgICBpZiAoaXNOdWxsT3JFbXB0eVN0cmluZyhwYXRoKSlcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2xsZWN0aW9uIHV0aWxzIHwgU29ydCBCeSBQYXRoIGZ1bmN0aW9uIC0tPiBQYXRoIGlzIGVtcHR5LicpO1xyXG5cclxuICAgICAgICBjb25zdCBwYXRoUGFydHMgPSBwYXRoLnNwbGl0KCcuJyk7XHJcblxyXG4gICAgICAgIGlmICghYW55KHBhdGhQYXJ0cykpXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sbGVjdGlvbiB1dGlscyB8IFNvcnQgQnkgUGF0aCBmdW5jdGlvbiAtLT4gUGF0aCBpcyBpbmNvcnJlY3QuJyk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcnRzTGVuZ3RoID0gcGF0aFBhcnRzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgY29sbGVjdGlvbi5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgaSA9IDA7XHJcbiAgICAgICAgICAgIHdoaWxlIChpIDwgcGFydHNMZW5ndGgpIHsgYSA9IGFbcGF0aFBhcnRzW2ldXTsgYiA9IGJbcGF0aFBhcnRzW2ldXTsgaSsrOyB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IFNvcnRpbmdEaXJlY3Rpb24uQXNjZW5kaW5nXHJcbiAgICAgICAgICAgICAgICA/IGEgPj0gYiA/IDEgOiAtMVxyXG4gICAgICAgICAgICAgICAgOiBhID4gYiA/IC0xIDogMTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gY29sbGVjdGlvbiB3aXRob3V0IG1hdGNoZXNcclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHJldHVybnMgQ29sbGVjdGlvbiB3aXRob3V0IG1hdGNoZXNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkaXN0aW5jdDxUPihjb2xsZWN0aW9uOiBBcnJheTxUPik6IEFycmF5PFQ+IHtcclxuICAgIHJldHVybiBhbnkoY29sbGVjdGlvbilcclxuICAgICAgICA/IGNvbGxlY3Rpb24uZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIHNlbGYpID0+IHNlbGYuaW5kZXhPZih2YWx1ZSkgPT09IGluZGV4KVxyXG4gICAgICAgIDogY29sbGVjdGlvbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBzdW0gdmFsdWUgZnJvbSBjb2xsZWN0aW9uIGl0ZW1zIGJ5IG1hcCBmdW5jdGlvblxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gc2VsZWN0IE1hcCBmdW5jdGlvblxyXG4gKiBAcmV0dXJucyBTdW0gdmFsdWUgb2YgY29sZWN0aW9uIGl0ZW1zXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc3VtPFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+LCBzZWxlY3Q6IChpdGVtOiBUKSA9PiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGFueShjb2xsZWN0aW9uKVxyXG4gICAgICAgID8gY29sbGVjdGlvblxyXG4gICAgICAgICAgICAubWFwKHNlbGVjdClcclxuICAgICAgICAgICAgLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYSArIGIgfSwgMClcclxuICAgICAgICA6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gbWF4IHZhbHVlIGZyb20gY29sbGVjdGlvbiBpdGVtcyBieSBtYXAgZnVuY3Rpb25cclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHBhcmFtIHNlbGVjdCBNYXAgZnVuY3Rpb25cclxuICogQHJldHVybnMgTWF4IHZhbHVlIG9mIGNvbGxlY3Rpb24gaXRlbXNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYXg8VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIHNlbGVjdDogKGl0ZW06IFQpID0+IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBpZiAoYW55KGNvbGxlY3Rpb24pKVxyXG4gICAgICAgIHJldHVybiBNYXRoLm1heCguLi5jb2xsZWN0aW9uLm1hcChzZWxlY3QpKTtcclxuXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbGxlY3Rpb24gdXRpbHMgfCBNYXggZnVuY3Rpb24gLS0+IENvbGxlY3Rpb24gaXMgZW1wdHkuJylcclxufVxyXG5cclxuLyoqXHJcbiAqIERlbGV0ZSBpdGVtcyBmcm9tIGNvbGxlY3Rpb24gYnkgcHJlZGljYXRlXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIGl0ZW1zXHJcbiAqIEBwYXJhbSBwcmVkaWNhdGUgRnVuY3Rpb24gdG8gZGVmaW5lIHJlbW92ZSBsb2dpY1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZTxUPihjb2xsZWN0aW9uOiBBcnJheTxUPiwgcHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdmFyIGkgPSBjb2xsZWN0aW9uLmxlbmd0aDtcclxuICAgIHdoaWxlIChpLS0pIHtcclxuICAgICAgICBpZiAocHJlZGljYXRlKGNvbGxlY3Rpb25baV0pKSB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24uc3BsaWNlKGksIDEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZCBpdGVtIHRvIGNvbGxlY3Rpb25cclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHBhcmFtIGl0ZW0gTmV3IGl0ZW1cclxuICogQHBhcmFtIHByZWRpY2F0ZSBGdW5jdGlvbiB0byBkZWZpbmUgaWYgYWxsb3dlZCB0byBhZGQgbmV3IGl0ZW1cclxuICogQHJldHVybnMgVHJ1ZSBpZiBzdWNjZXNzZnVsbHkgYWRkZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRJdGVtPFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+LCBpdGVtOiBULFxyXG4gICAgcHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbik6IGJvb2xlYW4ge1xyXG5cclxuICAgIGlmICghaXNEZWZpbmVkKGNvbGxlY3Rpb24pKVxyXG4gICAgICAgIGNvbGxlY3Rpb24gPSBuZXcgQXJyYXk8VD4oKTtcclxuXHJcbiAgICBpZiAoaXNEZWZpbmVkKHByZWRpY2F0ZSkgJiYgcHJlZGljYXRlKGl0ZW0pKVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBjb2xsZWN0aW9uLnB1c2goaXRlbSk7XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWxldGUgaXRlbSBmcm9tIGNvbGxlY3Rpb25cclxuICogQHBhcmFtIGNvbGxlY3Rpb24gQXJyYXkgb2YgaXRlbXNcclxuICogQHBhcmFtIGl0ZW0gSXRlbSB0byBkZWxldGVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBzdWNjZXNzZnVsbHkgcmVtb3ZlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUl0ZW08VD4oY29sbGVjdGlvbjogQXJyYXk8VD4sIGl0ZW06IFQpOiBib29sZWFuIHtcclxuICAgIGlmIChpc0RlZmluZWQoaXRlbSkgJiYgaGFzSXRlbShjb2xsZWN0aW9uLCBpdGVtKSkge1xyXG4gICAgICAgIGNvbGxlY3Rpb24uc3BsaWNlKGNvbGxlY3Rpb24uaW5kZXhPZihpdGVtKSwgMSk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG4vKipcclxuICogRGVsZXRlIGl0ZW0gZnJvbSBjb2xsZWN0aW9uIGJ5IHByZWRpY2F0ZVxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gcHJlZGljYXRlIEZ1bmN0aW9uIHRvIGRlZmluZSByZW1vdmUgbG9naWNcclxuICogQHJldHVybnMgVHJ1ZSBpZiBzdWNjZXNzZnVsbHkgcmVtb3ZlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUl0ZW1CeTxUPihjb2xsZWN0aW9uOiBBcnJheTxUPiwgcHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZm91bmRJdGVtOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCA9IGZpcnN0T3JEZWZhdWx0KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSk7XHJcbiAgICBpZiAoaXNEZWZpbmVkKGZvdW5kSXRlbSkpIHtcclxuICAgICAgICBjb2xsZWN0aW9uLnNwbGljZShjb2xsZWN0aW9uLmluZGV4T2YoZm91bmRJdGVtIGFzIFQpLCAxKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBVcGRhdGUgaXRlbSBpbiBjb2xsZWN0aW9uIGJ5IHByZWRpY2F0ZVxyXG4gKiBAcGFyYW0gY29sbGVjdGlvbiBBcnJheSBvZiBpdGVtc1xyXG4gKiBAcGFyYW0gcHJlZGljYXRlIEZ1bmN0aW9uIHRvIGRlZmluZSBpdGVtIGZvciBkZWxldGluZ1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHN1Y2Nlc3NmdWxseSByZW1vdmVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlSXRlbUJ5PFQ+KGNvbGxlY3Rpb246IEFycmF5PFQ+LCBwcmVkaWNhdGU6IChpdGVtOiBUKSA9PiBib29sZWFuLCBuZXdJdGVtOiBUKVxyXG4gICAgOiBBcnJheTxUPiB8IG51bGwge1xyXG4gICAgY29uc3QgaXRlbUluZGV4ID0gY29sbGVjdGlvbi5maW5kSW5kZXgocHJlZGljYXRlKTtcclxuXHJcbiAgICBpZiAoaXRlbUluZGV4ICE9PSBDb21tb25Db25zdGFudHMuTk9UX0ZPVU5EX0lOREVYKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY29sbGVjdGlvbi5zbGljZSgwKTtcclxuICAgICAgICByZXN1bHRbaXRlbUluZGV4XSA9IHtcclxuICAgICAgICAgICAgLi4uY29sbGVjdGlvbltpdGVtSW5kZXhdLFxyXG4gICAgICAgICAgICAuLi5uZXdJdGVtXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gY29sbGVjdGlvbiBvciBlbXB0eSBpZiBjb2xsZWN0aW9uIGlzIG5vdCBkZWZpbmVkXHJcbiAqIEBwYXJhbSBjb2xsZWN0aW9uIEFycmF5IG9mIGl0ZW1zXHJcbiAqIEByZXR1cm5zIENvbGxlY3Rpb24gb3IgZW1wdHlcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xsZWN0aW9uT3JFbXB0eTxUPihjb2xsZWN0aW9uOiBBcnJheTxUPik6IEFycmF5PFQ+IHtcclxuICAgIHJldHVybiBpc0RlZmluZWQoY29sbGVjdGlvbikgPyBjb2xsZWN0aW9uIDogW107XHJcbn0iXX0=
@@ -1,4 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { isEqualDateTimes } from './date-time.utils';
2
3
  /**
3
4
  * Return true if value defined
4
5
  * @param value Value to check
@@ -13,7 +14,9 @@ export function isDefined(value) {
13
14
  * @returns True if value is object
14
15
  */
15
16
  export function isObject(value) {
16
- return (isDefined(value) && typeof value === 'object' && !Array.isArray(value));
17
+ return (isDefined(value) && typeof value === 'object'
18
+ && !Array.isArray(value)
19
+ && !(value instanceof Date || value instanceof File));
17
20
  }
18
21
  /**
19
22
  * Return true if data is observable
@@ -112,4 +115,70 @@ export function isEmail(value) {
112
115
  export function parseBoolean(value) {
113
116
  return /^true$/i.test(value);
114
117
  }
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9jb21tb24udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUEyQjtJQUNwRCxPQUFVLEtBQUssS0FBSyxTQUFTLElBQU8sS0FBSyxLQUFLLElBQUksQ0FBQztBQUN2RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUMvQixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNwRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBUztJQUNqQyxPQUFPLElBQUksWUFBWSxVQUFVLENBQUM7QUFDdEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFRLEVBQUUsUUFBZ0IsRUFBRSxRQUFhLElBQUk7SUFDN0UsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3RELElBQUksTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7S0FDL0I7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEdBQVEsRUFBRSxRQUFnQjtJQUMvRCxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDOUIsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDeEI7QUFDTCxDQUFDO0FBRUQ7Ozs7SUFJSTtBQUVKOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFXLEVBQUUsR0FBRyxPQUFjO0lBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtRQUNmLE9BQU8sTUFBTSxDQUFDO0lBRWxCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUUvQixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7WUFDdEIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO29CQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ2pEO1NBQ0o7S0FDSjtJQUVELE9BQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUksSUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFFakQ7Ozs7S0FJSztBQUNMLE1BQU0sVUFBVSxTQUFTLENBQUMsTUFBVztJQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZTtJQUMzQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLEtBQWE7SUFDakMsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FDeEIsMkpBQTJKLENBQzlKLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWE7SUFDdEMsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWUgZGVmaW5lZFxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiB2YWx1ZSBpcyBub3QgbnVsbCBhbmQgZGVmaW5lZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmaW5lZDxUPih2YWx1ZTogVCB8IHVuZGVmaW5lZCB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIHJldHVybiA8VD52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIDxUPnZhbHVlICE9PSBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWUgaXMgb2JqZWN0XHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBjaGVja1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGlzIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoaXNEZWZpbmVkKHZhbHVlKSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBkYXRhIGlzIG9ic2VydmFibGVcclxuICogQHBhcmFtIGRhdGEgT2JqZWN0IHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZGF0YSBpcyBvYnNlcnZhYmxlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNBc3luY0RhdGEoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gZGF0YSBpbnN0YW5jZW9mIE9ic2VydmFibGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gZXh0ZW5kZWQgb2JqZWN0IHdpdGggbmV3IHByb3BlcnR5XHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IHRvIGV4dGVuZCBieSBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gcHJvcGVydHkgTmV3IHByb3BlcnR5IG5hbWUgXHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBmb3IgbmV3IHByb3BlcnR5XHJcbiAqIEByZXR1cm5zIEV4dGVuZGVkIG9iamVjdCB3aXRoIG5ldyBwcm9wZXJ0eVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFByb3BlcnR5VG9PYmplY3Qob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBhbnkgPSBudWxsKTogYW55IHtcclxuICAgIGlmIChpc0RlZmluZWQocHJvcGVydHkpICYmICFvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcbiAgICAgICAgbGV0IG5ld09iajogYW55ID0ge307XHJcbiAgICAgICAgbmV3T2JqW3Byb3BlcnR5XSA9IHZhbHVlO1xyXG4gICAgICAgIG9iaiA9IHsgLi4ub2JqLCAuLi5uZXdPYmogfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JqO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHByb3BlcnR5IGZyb20gb2JqZWN0XHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IGZvciByZW1vdmluZyBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgbmFtZSB0byByZW1vdmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcm9wZXJ0eUZyb21PYmplY3Qob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcbiAgICAgICAgZGVsZXRlIG9ialtwcm9wZXJ0eV07XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gICogRGVlcCBtZXJnZSBvYmplY3Qgd2l0aCBvdGhlcnNcclxuICAqIEBwYXJhbSB0YXJnZXQgT2JqZWN0IHRvIG1lcmdlXHJcbiAgKiBAcGFyYW0gc291cmNlcyBcclxuICAqL1xyXG5cclxuLyoqXHJcbiAqIERlZXAgbWVyZ2Ugb2JqZWN0IHdpdGggb3RoZXJzXHJcbiAqIEBwYXJhbSB0YXJnZXQgIE9iamVjdCB0byBtZXJnZVxyXG4gKiBAcGFyYW0gc291cmNlcyBPYmplY3RzIHRvIGJlIG1lcmdlZCB3aXRoIHRhcmdldFxyXG4gKiBAcmV0dXJucyBNZXJnZWQgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VEZWVwKHRhcmdldDogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSB7XHJcbiAgICBpZiAoIXNvdXJjZXMubGVuZ3RoKVxyXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XHJcblxyXG4gICAgY29uc3Qgc291cmNlID0gc291cmNlcy5zaGlmdCgpO1xyXG5cclxuICAgIGlmIChpc09iamVjdCh0YXJnZXQpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcclxuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KHNvdXJjZVtrZXldKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0YXJnZXRba2V5XSkgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHt9IH0pO1xyXG4gICAgICAgICAgICAgICAgbWVyZ2VEZWVwKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XTogc291cmNlW2tleV0gfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1lcmdlRGVlcCh0YXJnZXQsIC4uLnNvdXJjZXMpO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHR5cGUncyBwcm9wZXJ0eSBuYW1lIHNhZmV0eVxyXG4gKiBAcGFyYW0gbmFtZSBLZXlPZiBwcm9wZXJ0eVxyXG4gKiBAcmV0dXJucyBUeXBlJ3MgcHJvcGVydHkgbmFtZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IG5hbWVvZiA9IDxUPihuYW1lOiBrZXlvZiBUKSA9PiBuYW1lO1xyXG5cclxuLyoqXHJcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgaW5wdXQgaXMgYSBOdW1iZXIgb3Igc29tZXRoaW5nIHRoYXQgY2FuIGJlIGNvZXJjZWQgdG8gYSBOdW1iZXJcclxuICAgKiBAcGFyYW0gLSBUaGUgaW5wdXQgdG8gYmUgdGVzdGVkXHJcbiAgICogQHJldHVybnMgLSBBbiBpbmRpY2F0aW9uIGlmIHRoZSBpbnB1dCBpcyBhIE51bWJlciBvciBjYW4gYmUgY29lcmNlZCB0byBhIE51bWJlclxyXG4gICAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1lcmljKG51bWJlcjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobnVtYmVyKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBjdXJyZW50IGJyb3dzZXIgaXMgQ2hyb21lXHJcbiAqIEByZXR1cm5zIElmIGN1cnJlbnQgYnJvd3NlciBpcyBDaHJvbWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0Nocm9tZUJyb3dzZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiAvR29vZ2xlIEluYy8udGVzdChuYXZpZ2F0b3IudmVuZG9yKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlIGlzIHZhbGlkIGVtYWlsIGFkZHJlc3NcclxuICogQHJldHVybnMgVHJ1ZSBpZiBpdCdzIHZhbGlkIGVtYWlsIGFkZHJlc3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VtYWlsKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpc0RlZmluZWQodmFsdWUubWF0Y2goXHJcbiAgICAgICAgL14oKFtePD4oKVtcXF1cXFxcLiw7Olxcc0BcXFwiXSsoXFwuW148PigpW1xcXVxcXFwuLDs6XFxzQFxcXCJdKykqKXwoXFxcIi4rXFxcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcXSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC9cclxuICAgICkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgc3RyaW5nIGlzIFwidHJ1ZVwiXHJcbiAqIEByZXR1cm5zIHBhcnNlZCBzdHJpbmcgYXMgYm9vbGVhblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQm9vbGVhbih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gL150cnVlJC9pLnRlc3QodmFsdWUpO1xyXG59Il19
118
+ /**
119
+ * Return true if values equal
120
+ * @param obj1 First value to compare
121
+ * @param obj2 Second value to compare
122
+ * @returns True if equal
123
+ */
124
+ export function isEqual(obj1, obj2) {
125
+ /**
126
+ * More accurately check the type of a JavaScript object
127
+ * @param {Object} obj The object
128
+ * @return {String} The object type
129
+ */
130
+ function getType(obj) {
131
+ return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();
132
+ }
133
+ function areArraysEqual() {
134
+ // Check length
135
+ if (obj1.length !== obj2.length)
136
+ return false;
137
+ // Check each item in the array
138
+ for (let i = 0; i < obj1.length; i++) {
139
+ if (!isEqual(obj1[i], obj2[i]))
140
+ return false;
141
+ }
142
+ // If no errors, return true
143
+ return true;
144
+ }
145
+ function areObjectsEqual() {
146
+ if (Object.keys(obj1).length !== Object.keys(obj2).length)
147
+ return false;
148
+ // Check each item in the object
149
+ for (let key in obj1) {
150
+ if (Object.prototype.hasOwnProperty.call(obj1, key)) {
151
+ if (!isEqual(obj1[key], obj2[key])) {
152
+ return false;
153
+ }
154
+ }
155
+ }
156
+ // If no errors, return true
157
+ return true;
158
+ }
159
+ function areFunctionsEqual() {
160
+ return obj1.toString() === obj2.toString();
161
+ }
162
+ function arePrimativesEqual() {
163
+ return obj1 === obj2;
164
+ }
165
+ function areDatesEqual() {
166
+ return isEqualDateTimes(obj1, obj2);
167
+ }
168
+ // Get the object type
169
+ let type = getType(obj1);
170
+ // If the two items are not the same type, return false
171
+ if (type !== getType(obj2))
172
+ return false;
173
+ // Compare based on type
174
+ if (type === 'array')
175
+ return areArraysEqual();
176
+ if (type === 'date')
177
+ return areDatesEqual();
178
+ if (type === 'object')
179
+ return areObjectsEqual();
180
+ if (type === 'function')
181
+ return areFunctionsEqual();
182
+ return arePrimativesEqual();
183
+ }
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9jb21tb24udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUEyQjtJQUNwRCxPQUFVLEtBQUssS0FBSyxTQUFTLElBQU8sS0FBSyxLQUFLLElBQUksQ0FBQztBQUN2RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUMvQixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7V0FDOUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztXQUNyQixDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBUztJQUNqQyxPQUFPLElBQUksWUFBWSxVQUFVLENBQUM7QUFDdEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFRLEVBQUUsUUFBZ0IsRUFBRSxRQUFhLElBQUk7SUFDN0UsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3RELElBQUksTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLEdBQUcsR0FBRyxFQUFF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TyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXpCLHVEQUF1RDtJQUN2RCxJQUFJLElBQUksS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFekMsd0JBQXdCO0lBQ3hCLElBQUksSUFBSSxLQUFLLE9BQU87UUFBRSxPQUFPLGNBQWMsRUFBRSxDQUFDO0lBRTlDLElBQUksSUFBSSxLQUFLLE1BQU07UUFBRSxPQUFPLGFBQWEsRUFBRSxDQUFDO0lBRTVDLElBQUksSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLGVBQWUsRUFBRSxDQUFDO0lBRWhELElBQUksSUFBSSxLQUFLLFVBQVU7UUFBRSxPQUFPLGlCQUFpQixFQUFFLENBQUM7SUFFcEQsT0FBTyxrQkFBa0IsRUFBRSxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGlzRXF1YWxEYXRlVGltZXMgfSBmcm9tICcuL2RhdGUtdGltZS51dGlscyc7XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWUgZGVmaW5lZFxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiB2YWx1ZSBpcyBub3QgbnVsbCBhbmQgZGVmaW5lZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmaW5lZDxUPih2YWx1ZTogVCB8IHVuZGVmaW5lZCB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIHJldHVybiA8VD52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIDxUPnZhbHVlICE9PSBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWUgaXMgb2JqZWN0XHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBjaGVja1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGlzIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoaXNEZWZpbmVkKHZhbHVlKSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXHJcbiAgICAgICAgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpXHJcbiAgICAgICAgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBGaWxlKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBkYXRhIGlzIG9ic2VydmFibGVcclxuICogQHBhcmFtIGRhdGEgT2JqZWN0IHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZGF0YSBpcyBvYnNlcnZhYmxlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNBc3luY0RhdGEoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gZGF0YSBpbnN0YW5jZW9mIE9ic2VydmFibGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gZXh0ZW5kZWQgb2JqZWN0IHdpdGggbmV3IHByb3BlcnR5XHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IHRvIGV4dGVuZCBieSBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gcHJvcGVydHkgTmV3IHByb3BlcnR5IG5hbWUgXHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBmb3IgbmV3IHByb3BlcnR5XHJcbiAqIEByZXR1cm5zIEV4dGVuZGVkIG9iamVjdCB3aXRoIG5ldyBwcm9wZXJ0eVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFByb3BlcnR5VG9PYmplY3Qob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBhbnkgPSBudWxsKTogYW55IHtcclxuICAgIGlmIChpc0RlZmluZWQocHJvcGVydHkpICYmICFvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcbiAgICAgICAgbGV0IG5ld09iajogYW55ID0ge307XHJcbiAgICAgICAgbmV3T2JqW3Byb3BlcnR5XSA9IHZhbHVlO1xyXG4gICAgICAgIG9iaiA9IHsgLi4ub2JqLCAuLi5uZXdPYmogfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JqO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHByb3BlcnR5IGZyb20gb2JqZWN0XHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IGZvciByZW1vdmluZyBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgbmFtZSB0byByZW1vdmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcm9wZXJ0eUZyb21PYmplY3Qob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcbiAgICAgICAgZGVsZXRlIG9ialtwcm9wZXJ0eV07XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gICogRGVlcCBtZXJnZSBvYmplY3Qgd2l0aCBvdGhlcnNcclxuICAqIEBwYXJhbSB0YXJnZXQgT2JqZWN0IHRvIG1lcmdlXHJcbiAgKiBAcGFyYW0gc291cmNlcyBcclxuICAqL1xyXG5cclxuLyoqXHJcbiAqIERlZXAgbWVyZ2Ugb2JqZWN0IHdpdGggb3RoZXJzXHJcbiAqIEBwYXJhbSB0YXJnZXQgIE9iamVjdCB0byBtZXJnZVxyXG4gKiBAcGFyYW0gc291cmNlcyBPYmplY3RzIHRvIGJlIG1lcmdlZCB3aXRoIHRhcmdldFxyXG4gKiBAcmV0dXJucyBNZXJnZWQgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VEZWVwKHRhcmdldDogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSB7XHJcbiAgICBpZiAoIXNvdXJjZXMubGVuZ3RoKVxyXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XHJcblxyXG4gICAgY29uc3Qgc291cmNlID0gc291cmNlcy5zaGlmdCgpO1xyXG5cclxuICAgIGlmIChpc09iamVjdCh0YXJnZXQpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcclxuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KHNvdXJjZVtrZXldKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0YXJnZXRba2V5XSkgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHt9IH0pO1xyXG4gICAgICAgICAgICAgICAgbWVyZ2VEZWVwKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XTogc291cmNlW2tleV0gfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1lcmdlRGVlcCh0YXJnZXQsIC4uLnNvdXJjZXMpO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHR5cGUncyBwcm9wZXJ0eSBuYW1lIHNhZmV0eVxyXG4gKiBAcGFyYW0gbmFtZSBLZXlPZiBwcm9wZXJ0eVxyXG4gKiBAcmV0dXJucyBUeXBlJ3MgcHJvcGVydHkgbmFtZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IG5hbWVvZiA9IDxUPihuYW1lOiBrZXlvZiBUKSA9PiBuYW1lO1xyXG5cclxuLyoqXHJcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgaW5wdXQgaXMgYSBOdW1iZXIgb3Igc29tZXRoaW5nIHRoYXQgY2FuIGJlIGNvZXJjZWQgdG8gYSBOdW1iZXJcclxuICAgKiBAcGFyYW0gLSBUaGUgaW5wdXQgdG8gYmUgdGVzdGVkXHJcbiAgICogQHJldHVybnMgLSBBbiBpbmRpY2F0aW9uIGlmIHRoZSBpbnB1dCBpcyBhIE51bWJlciBvciBjYW4gYmUgY29lcmNlZCB0byBhIE51bWJlclxyXG4gICAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1lcmljKG51bWJlcjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobnVtYmVyKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBjdXJyZW50IGJyb3dzZXIgaXMgQ2hyb21lXHJcbiAqIEByZXR1cm5zIElmIGN1cnJlbnQgYnJvd3NlciBpcyBDaHJvbWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0Nocm9tZUJyb3dzZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiAvR29vZ2xlIEluYy8udGVzdChuYXZpZ2F0b3IudmVuZG9yKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlIGlzIHZhbGlkIGVtYWlsIGFkZHJlc3NcclxuICogQHJldHVybnMgVHJ1ZSBpZiBpdCdzIHZhbGlkIGVtYWlsIGFkZHJlc3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VtYWlsKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpc0RlZmluZWQodmFsdWUubWF0Y2goXHJcbiAgICAgICAgL14oKFtePD4oKVtcXF1cXFxcLiw7Olxcc0BcXFwiXSsoXFwuW148PigpW1xcXVxcXFwuLDs6XFxzQFxcXCJdKykqKXwoXFxcIi4rXFxcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcXSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC9cclxuICAgICkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgc3RyaW5nIGlzIFwidHJ1ZVwiXHJcbiAqIEByZXR1cm5zIHBhcnNlZCBzdHJpbmcgYXMgYm9vbGVhblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQm9vbGVhbih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gL150cnVlJC9pLnRlc3QodmFsdWUpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWVzIGVxdWFsXHJcbiAqIEBwYXJhbSBvYmoxIEZpcnN0IHZhbHVlIHRvIGNvbXBhcmVcclxuICogQHBhcmFtIG9iajIgU2Vjb25kIHZhbHVlIHRvIGNvbXBhcmVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBlcXVhbFxyXG4gKi9cclxuIGV4cG9ydCBmdW5jdGlvbiBpc0VxdWFsKG9iajE6IGFueSwgb2JqMjogYW55KSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb3JlIGFjY3VyYXRlbHkgY2hlY2sgdGhlIHR5cGUgb2YgYSBKYXZhU2NyaXB0IG9iamVjdFxyXG4gICAgICogQHBhcmFtICB7T2JqZWN0fSBvYmogVGhlIG9iamVjdFxyXG4gICAgICogQHJldHVybiB7U3RyaW5nfSAgICAgVGhlIG9iamVjdCB0eXBlXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIGdldFR5cGUob2JqOiBhbnkpIHtcclxuICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopLnNsaWNlKDgsIC0xKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgZnVuY3Rpb24gYXJlQXJyYXlzRXF1YWwoKSB7XHJcbiAgXHJcbiAgICAgIC8vIENoZWNrIGxlbmd0aFxyXG4gICAgICBpZiAob2JqMS5sZW5ndGggIT09IG9iajIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgXHJcbiAgICAgIC8vIENoZWNrIGVhY2ggaXRlbSBpbiB0aGUgYXJyYXlcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmoxLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKCFpc0VxdWFsKG9iajFbaV0sIG9iajJbaV0pKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgLy8gSWYgbm8gZXJyb3JzLCByZXR1cm4gdHJ1ZVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICBcclxuICAgIH1cclxuICBcclxuICAgIGZ1bmN0aW9uIGFyZU9iamVjdHNFcXVhbCgpIHtcclxuICBcclxuICAgICAgaWYgKE9iamVjdC5rZXlzKG9iajEpLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMob2JqMikubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgXHJcbiAgICAgIC8vIENoZWNrIGVhY2ggaXRlbSBpbiB0aGUgb2JqZWN0XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiBvYmoxKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmoxLCBrZXkpKSB7XHJcbiAgICAgICAgICBpZiAoIWlzRXF1YWwob2JqMVtrZXldLCBvYmoyW2tleV0pKSB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIC8vIElmIG5vIGVycm9ycywgcmV0dXJuIHRydWVcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgXHJcbiAgICB9XHJcbiAgXHJcbiAgICBmdW5jdGlvbiBhcmVGdW5jdGlvbnNFcXVhbCgpIHtcclxuICAgICAgcmV0dXJuIG9iajEudG9TdHJpbmcoKSA9PT0gb2JqMi50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgZnVuY3Rpb24gYXJlUHJpbWF0aXZlc0VxdWFsKCkge1xyXG4gICAgICByZXR1cm4gb2JqMSA9PT0gb2JqMjtcclxuICAgIH1cclxuICBcclxuICAgIGZ1bmN0aW9uIGFyZURhdGVzRXF1YWwoKSB7XHJcbiAgICAgIHJldHVybiBpc0VxdWFsRGF0ZVRpbWVzKG9iajEsIG9iajIpO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgLy8gR2V0IHRoZSBvYmplY3QgdHlwZVxyXG4gICAgbGV0IHR5cGUgPSBnZXRUeXBlKG9iajEpO1xyXG4gIFxyXG4gICAgLy8gSWYgdGhlIHR3byBpdGVtcyBhcmUgbm90IHRoZSBzYW1lIHR5cGUsIHJldHVybiBmYWxzZVxyXG4gICAgaWYgKHR5cGUgIT09IGdldFR5cGUob2JqMikpIHJldHVybiBmYWxzZTtcclxuICBcclxuICAgIC8vIENvbXBhcmUgYmFzZWQgb24gdHlwZVxyXG4gICAgaWYgKHR5cGUgPT09ICdhcnJheScpIHJldHVybiBhcmVBcnJheXNFcXVhbCgpO1xyXG4gIFxyXG4gICAgaWYgKHR5cGUgPT09ICdkYXRlJykgcmV0dXJuIGFyZURhdGVzRXF1YWwoKTtcclxuICBcclxuICAgIGlmICh0eXBlID09PSAnb2JqZWN0JykgcmV0dXJuIGFyZU9iamVjdHNFcXVhbCgpO1xyXG4gIFxyXG4gICAgaWYgKHR5cGUgPT09ICdmdW5jdGlvbicpIHJldHVybiBhcmVGdW5jdGlvbnNFcXVhbCgpO1xyXG4gIFxyXG4gICAgcmV0dXJuIGFyZVByaW1hdGl2ZXNFcXVhbCgpO1xyXG4gIH0iXX0=
@@ -212,6 +212,16 @@ export function isEqualDates(date1, date2) {
212
212
  date2Value.setHours(0, 0, 0, 0);
213
213
  return date1Value.getTime() === date2Value.getTime();
214
214
  }
215
+ /**
216
+ * Return true if first and second datetime are equal
217
+ * @param date1 First datetime value
218
+ * @param date2 Second datetime value
219
+ * @returns True if first and second datetime are equal
220
+ */
221
+ export function isEqualDateTimes(date1, date2) {
222
+ const date1Value = new Date(date1), date2Value = new Date(date2);
223
+ return date1Value.getTime() === date2Value.getTime();
224
+ }
215
225
  /**
216
226
  * Return true if first date greater than second date
217
227
  * @param date1 First date value
@@ -252,4 +262,4 @@ export function isDateTimeGreatOrEqual(date1, date2) {
252
262
  return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate(), date1.getHours(), date1.getMinutes())
253
263
  >= new Date(date2.getFullYear(), date2.getMonth(), date2.getDate(), date2.getHours(), date2.getMinutes());
254
264
  }
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9kYXRlLXRpbWUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQzs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBVSxFQUFFLE1BQWM7SUFDakQsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQVUsRUFBRSxJQUFZO0lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFVLEVBQUUsU0FBaUI7SUFDaEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLElBQVUsRUFBRSxJQUFZO0lBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLE1B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Q0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7VUFDakUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUMzRSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBVyxFQUFFLEtBQVc7SUFDdkQsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztXQUNoRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBVyxFQUFFLEtBQVc7SUFDcEQsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFDbEUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztVQUNuQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFDN0QsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxLQUFXLEVBQUUsS0FBVztJQUMzRCxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUNsRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1dBQ2xDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUM5RCxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVUaW1lQ29uc3RhbnRzIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiLi9jb21tb24udXRpbHNcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXQgbWludXRlcyBmb3IgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBtaW51dGUgTWludXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIERhdGUgd2l0aCBtaW51dGUgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRNaW51dGVzKGRhdGU6IERhdGUsIG1pbnV0ZTogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXRNaW51dGVzKG1pbnV0ZSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogU2V0IGhvdXJzIGZvciBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIGhvdXIgSG91ciB2YWx1ZVxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggaG91ciB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldEhvdXJzKGRhdGU6IERhdGUsIGhvdXI6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0SG91cnMoaG91cik7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogU2V0IGRheSBmb3IgZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXlOdW1iZXIgRGF5IG51bWJlciBcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIGRheSBudW1iZXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXREYXkoZGF0ZTogRGF0ZSwgZGF5TnVtYmVyOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIGNvbnN0IG5leHREYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBuZXh0RGF0ZS5zZXREYXRlKGRheU51bWJlcik7XHJcbiAgICByZXR1cm4gbmV4dERhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgeWVhciBmb3IgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSB5ZWFyIFllYXIgdmFsdWVcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIHllYXIgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRZZWFyKGRhdGU6IERhdGUsIHllYXI6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0RnVsbFllYXIoeWVhcik7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogU2V0IHNlY29uZHMgZm9yIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gdmFsdWUgU2Vjb25kcyB2YWx1ZVxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggbWludXRlIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0U2Vjb25kcyhkYXRlOiBEYXRlLCB2YWx1ZTogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXRTZWNvbmRzKHZhbHVlKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgbWlsbGlzZWNvbmRzIGZvciBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIHZhbHVlIE1pbGxpc2Vjb25kcyB2YWx1ZVxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggbWludXRlIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0TWlsbGlzZWNvbmRzKGRhdGU6IERhdGUsIHZhbHVlOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcmVzdWx0LnNldE1pbGxpc2Vjb25kcyh2YWx1ZSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogU2V0IDAgZm9yIHNlY29uZHMgYW5kIG1pbGxpc2Vjb25kcyBvZiBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIG1pbnV0ZSB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldERlZmF1bHRTZWNvbmRzQW5kTWlsaXNlY29uZHMoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0U2Vjb25kcygwKTtcclxuICAgIHJlc3VsdC5zZXRNaWxsaXNlY29uZHMoMCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IG5leHQgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIE5leHQgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE5leHREYXRlKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IG5leHREYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBuZXh0RGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgMSlcclxuICAgIHJldHVybiBuZXh0RGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBuZXh0IG1vbnRoIGFzIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBOZXh0IG1vbnRoIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0TW9udGgoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgY29uc3QgbmV4dE1vbnRoID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBuZXh0TW9udGguc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpICsgMSlcclxuICAgIHJldHVybiBuZXh0TW9udGg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgcHJldmlvdXMgbW9udGggYXMgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIFByZXZpb3VzIG1vbnRoIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRQcmV2aW91c01vbnRoKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IHByZXZNb250aCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcHJldk1vbnRoLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSAtIDEpO1xyXG4gICAgcmV0dXJuIHByZXZNb250aDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBuZXh0IHllYXIgYXMgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIE5leHQgeWVhciBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dFllYXIoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgY29uc3QgbmV4dFllYXIgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIG5leHRZZWFyLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSArIDEpO1xyXG4gICAgcmV0dXJuIG5leHRZZWFyO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHByZXZpb3VzIHllYXIgYXMgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIFByZXZpb3VzIHllYXIgYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFByZXZpb3VzWWVhcihkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBjb25zdCBwcmV2WWVhciA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcHJldlllYXIuc2V0RnVsbFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpIC0gMSk7XHJcbiAgICByZXR1cm4gcHJldlllYXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gZmlyc3QgZGF5IG9mIG1vbnRoIGFzIGRhdGUgZnJvbSBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgRmlyc3QgZGF5IG9mIG1vbnRoIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXJzdERheU9mTW9udGgoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgaWYgKGlzRGVmaW5lZChkYXRlKSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgICAgIG1vbnRoID0gZGF0ZS5nZXRNb250aCgpO1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gbGFzdCBkYXkgb2YgbW9udGggYXMgZGF0ZSBmcm9tIGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBMYXN0IGRheSBvZiBtb250aCBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdERheU9mTW9udGgoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgaWYgKGlzRGVmaW5lZChkYXRlKSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgICAgIG1vbnRoID0gZGF0ZS5nZXRNb250aCgpO1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGZpcnN0IGRheSBvZiB5ZWFyIGFzIGRhdGUgZnJvbSBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgRmlyc3QgZGF5IG9mIHllYXIgYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0RGF5T2ZZZWFyKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGlmIChpc0RlZmluZWQoZGF0ZSkgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAwLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBsYXN0IGRheSBvZiB5ZWFyIGFzIGRhdGUgZnJvbSBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgTGFzdCBkYXkgb2YgeWVhciBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdERheU9mWWVhcihkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBpZiAoaXNEZWZpbmVkKGRhdGUpICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMTIsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGZpcnN0IGRheSBvZiBtb250aCBhcyBkYXRlXHJcbiAqIEBwYXJhbSB5ZWFyIFllYXIgdmFsdWVcclxuICogQHBhcmFtIG1vbnRoIE1vbnRoIHZhbHVlXHJcbiAqIEByZXR1cm5zIEZpcnN0IGRheSBvZiBtb250aFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0RGF5T2ZNb250aEJ5WWVhckFuZE1vbnRoKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IERhdGUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBsYXN0IGRheSBvZiBtb250aCBhcyBkYXRlXHJcbiAqIEBwYXJhbSB5ZWFyIFllYXIgdmFsdWVcclxuICogQHBhcmFtIG1vbnRoIE1vbnRoIHZhbHVlXHJcbiAqIEByZXR1cm5zIExhc3QgZGF5IG9mIG1vbnRoXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdERheU9mTW9udGhCeVllYXJBbmRNb250aCh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHdlZWsgbnVtYmVyIGluIG1vbnRoIGZyb20gZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIFdlZWsgbnVtYmVyXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2Vla3NOdW1iZXJJbk1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xyXG4gICAgY29uc3QgZmlyc3RPZk1vbnRoID0gZ2V0Rmlyc3REYXlPZk1vbnRoKGRhdGUpLFxyXG4gICAgICAgIGxhc3RPZk1vbnRoID0gZ2V0TGFzdERheU9mTW9udGgoZGF0ZSksXHJcbiAgICAgICAgdXNlZCA9IGZpcnN0T2ZNb250aC5nZXREYXkoKSArIGxhc3RPZk1vbnRoLmdldERhdGUoKTtcclxuICAgIHJldHVybiBNYXRoLmNlaWwodXNlZCAvIERhdGVUaW1lQ29uc3RhbnRzLkRBWVNfSU5fV0VFSyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBmaXJzdCBhbmQgc2Vjb25kIGRhdGUgYXJlIGVxdWFsXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZpcnN0IGFuZCBzZWNvbmQgZGF0ZSBhcmUgZXF1YWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VxdWFsRGF0ZXMoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBkYXRlMVZhbHVlID0gbmV3IERhdGUoZGF0ZTEpLFxyXG4gICAgICAgIGRhdGUyVmFsdWUgPSBuZXcgRGF0ZShkYXRlMik7XHJcbiAgICBkYXRlMVZhbHVlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xyXG4gICAgZGF0ZTJWYWx1ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcclxuXHJcbiAgICByZXR1cm4gZGF0ZTFWYWx1ZS5nZXRUaW1lKCkgPT09IGRhdGUyVmFsdWUuZ2V0VGltZSgpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgZGF0ZSBncmVhdGVyIHRoYW4gc2Vjb25kIGRhdGVcclxuICogQHBhcmFtIGRhdGUxIEZpcnN0IGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUyIFNlY29uZCBkYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgZGF0ZSBncmVhdGVyIHRoYW4gc2Vjb25kIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVHcmVhdChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCkpXHJcbiAgICAgICAgPiBuZXcgRGF0ZShkYXRlMi5nZXRGdWxsWWVhcigpLCBkYXRlMi5nZXRNb250aCgpLCBkYXRlMi5nZXREYXRlKCkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgZGF0ZSBncmVhdGVyIG9yIGVxdWFsIHRvIHNlY29uZCBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZpcnN0IGRhdGUgZ3JlYXRlciBvciBlcXVhbCB0byBzZWNvbmQgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZUdyZWF0T3JFcXVhbChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCkpXHJcbiAgICAgICAgPj0gbmV3IERhdGUoZGF0ZTIuZ2V0RnVsbFllYXIoKSwgZGF0ZTIuZ2V0TW9udGgoKSwgZGF0ZTIuZ2V0RGF0ZSgpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGZpcnN0IGRhdGUgdGltZSBncmVhdGVyIHRoYW4gc2Vjb25kIGRhdGUgdGltZVxyXG4gKiBAcGFyYW0gZGF0ZTEgRmlyc3QgZGF0ZSB0aW1lIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZSB0aW1lIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgZGF0ZSB0aW1lIGdyZWF0ZXIgdGhhbiBzZWNvbmQgZGF0ZSB0aW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlVGltZUdyZWF0KGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUxLmdldEZ1bGxZZWFyKCksIGRhdGUxLmdldE1vbnRoKCksIGRhdGUxLmdldERhdGUoKSxcclxuICAgICAgICBkYXRlMS5nZXRIb3VycygpLCBkYXRlMS5nZXRNaW51dGVzKCkpXHJcbiAgICAgICAgPiBuZXcgRGF0ZShkYXRlMi5nZXRGdWxsWWVhcigpLCBkYXRlMi5nZXRNb250aCgpLCBkYXRlMi5nZXREYXRlKCksXHJcbiAgICAgICAgICAgIGRhdGUyLmdldEhvdXJzKCksIGRhdGUyLmdldE1pbnV0ZXMoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBmaXJzdCBkYXRlIHRpbWUgZ3JlYXRlciBvciBlcXVhbCB0byBzZWNvbmQgZGF0ZSB0aW1lXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRlIHRpbWUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUyIFNlY29uZCBkYXRlIHRpbWUgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmaXJzdCBkYXRlIHRpbWUgZ3JlYXRlciBvciBlcXVhbCB0byBzZWNvbmQgZGF0ZSB0aW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlVGltZUdyZWF0T3JFcXVhbChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCksXHJcbiAgICAgICAgZGF0ZTEuZ2V0SG91cnMoKSwgZGF0ZTEuZ2V0TWludXRlcygpKVxyXG4gICAgICAgID49IG5ldyBEYXRlKGRhdGUyLmdldEZ1bGxZZWFyKCksIGRhdGUyLmdldE1vbnRoKCksIGRhdGUyLmdldERhdGUoKSxcclxuICAgICAgICAgICAgZGF0ZTIuZ2V0SG91cnMoKSwgZGF0ZTIuZ2V0TWludXRlcygpKTtcclxufSJdfQ==
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9kYXRlLXRpbWUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQzs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBVSxFQUFFLE1BQWM7SUFDakQsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQVUsRUFBRSxJQUFZO0lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFVLEVBQUUsU0FBaUI7SUFDaEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLElBQVUsRUFBRSxJQUFZO0lBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLE1B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QUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQzdELEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsS0FBVyxFQUFFLEtBQVc7SUFDM0QsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFDbEUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztXQUNsQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFDOUQsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlVGltZUNvbnN0YW50cyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSBcIi4vY29tbW9uLnV0aWxzXCI7XHJcblxyXG4vKipcclxuICogU2V0IG1pbnV0ZXMgZm9yIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gbWludXRlIE1pbnV0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggbWludXRlIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0TWludXRlcyhkYXRlOiBEYXRlLCBtaW51dGU6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0TWludXRlcyhtaW51dGUpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNldCBob3VycyBmb3IgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBob3VyIEhvdXIgdmFsdWVcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIGhvdXIgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRIb3VycyhkYXRlOiBEYXRlLCBob3VyOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcmVzdWx0LnNldEhvdXJzKGhvdXIpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNldCBkYXkgZm9yIGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF5TnVtYmVyIERheSBudW1iZXIgXHJcbiAqIEByZXR1cm5zIERhdGUgd2l0aCBkYXkgbnVtYmVyXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0RGF5KGRhdGU6IERhdGUsIGRheU51bWJlcjogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCBuZXh0RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgbmV4dERhdGUuc2V0RGF0ZShkYXlOdW1iZXIpO1xyXG4gICAgcmV0dXJuIG5leHREYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogU2V0IHllYXIgZm9yIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0geWVhciBZZWFyIHZhbHVlXHJcbiAqIEByZXR1cm5zIERhdGUgd2l0aCB5ZWFyIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0WWVhcihkYXRlOiBEYXRlLCB5ZWFyOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcmVzdWx0LnNldEZ1bGxZZWFyKHllYXIpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNldCBzZWNvbmRzIGZvciBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIHZhbHVlIFNlY29uZHMgdmFsdWVcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIG1pbnV0ZSB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFNlY29uZHMoZGF0ZTogRGF0ZSwgdmFsdWU6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0U2Vjb25kcyh2YWx1ZSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogU2V0IG1pbGxpc2Vjb25kcyBmb3IgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSB2YWx1ZSBNaWxsaXNlY29uZHMgdmFsdWVcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIG1pbnV0ZSB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldE1pbGxpc2Vjb25kcyhkYXRlOiBEYXRlLCB2YWx1ZTogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXRNaWxsaXNlY29uZHModmFsdWUpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNldCAwIGZvciBzZWNvbmRzIGFuZCBtaWxsaXNlY29uZHMgb2YgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIERhdGUgd2l0aCBtaW51dGUgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXREZWZhdWx0U2Vjb25kc0FuZE1pbGlzZWNvbmRzKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcmVzdWx0LnNldFNlY29uZHMoMCk7XHJcbiAgICByZXN1bHQuc2V0TWlsbGlzZWNvbmRzKDApO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBuZXh0IGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBOZXh0IGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0RGF0ZShkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBjb25zdCBuZXh0RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgbmV4dERhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIDEpXHJcbiAgICByZXR1cm4gbmV4dERhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgbmV4dCBtb250aCBhcyBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgTmV4dCBtb250aCBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dE1vbnRoKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IG5leHRNb250aCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgbmV4dE1vbnRoLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSArIDEpXHJcbiAgICByZXR1cm4gbmV4dE1vbnRoO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHByZXZpb3VzIG1vbnRoIGFzIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBQcmV2aW91cyBtb250aCBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJldmlvdXNNb250aChkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBjb25zdCBwcmV2TW9udGggPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHByZXZNb250aC5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgLSAxKTtcclxuICAgIHJldHVybiBwcmV2TW9udGg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgbmV4dCB5ZWFyIGFzIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBOZXh0IHllYXIgYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE5leHRZZWFyKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IG5leHRZZWFyID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBuZXh0WWVhci5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCkgKyAxKTtcclxuICAgIHJldHVybiBuZXh0WWVhcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBwcmV2aW91cyB5ZWFyIGFzIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBQcmV2aW91cyB5ZWFyIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRQcmV2aW91c1llYXIoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgY29uc3QgcHJldlllYXIgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHByZXZZZWFyLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSAtIDEpO1xyXG4gICAgcmV0dXJuIHByZXZZZWFyO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGZpcnN0IGRheSBvZiBtb250aCBhcyBkYXRlIGZyb20gZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIEZpcnN0IGRheSBvZiBtb250aCBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3REYXlPZk1vbnRoKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGlmIChpc0RlZmluZWQoZGF0ZSkgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgICAgICBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGxhc3QgZGF5IG9mIG1vbnRoIGFzIGRhdGUgZnJvbSBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgTGFzdCBkYXkgb2YgbW9udGggYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldExhc3REYXlPZk1vbnRoKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGlmIChpc0RlZmluZWQoZGF0ZSkgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgICAgICBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCAwKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBmaXJzdCBkYXkgb2YgeWVhciBhcyBkYXRlIGZyb20gZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIEZpcnN0IGRheSBvZiB5ZWFyIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXJzdERheU9mWWVhcihkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBpZiAoaXNEZWZpbmVkKGRhdGUpICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gbGFzdCBkYXkgb2YgeWVhciBhcyBkYXRlIGZyb20gZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIExhc3QgZGF5IG9mIHllYXIgYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldExhc3REYXlPZlllYXIoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgaWYgKGlzRGVmaW5lZChkYXRlKSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIDEyLCAwKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBmaXJzdCBkYXkgb2YgbW9udGggYXMgZGF0ZVxyXG4gKiBAcGFyYW0geWVhciBZZWFyIHZhbHVlXHJcbiAqIEBwYXJhbSBtb250aCBNb250aCB2YWx1ZVxyXG4gKiBAcmV0dXJucyBGaXJzdCBkYXkgb2YgbW9udGhcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXJzdERheU9mTW9udGhCeVllYXJBbmRNb250aCh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gbGFzdCBkYXkgb2YgbW9udGggYXMgZGF0ZVxyXG4gKiBAcGFyYW0geWVhciBZZWFyIHZhbHVlXHJcbiAqIEBwYXJhbSBtb250aCBNb250aCB2YWx1ZVxyXG4gKiBAcmV0dXJucyBMYXN0IGRheSBvZiBtb250aFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldExhc3REYXlPZk1vbnRoQnlZZWFyQW5kTW9udGgoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCAwKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB3ZWVrIG51bWJlciBpbiBtb250aCBmcm9tIGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBXZWVrIG51bWJlclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFdlZWtzTnVtYmVySW5Nb250aChkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IGdldEZpcnN0RGF5T2ZNb250aChkYXRlKSxcclxuICAgICAgICBsYXN0T2ZNb250aCA9IGdldExhc3REYXlPZk1vbnRoKGRhdGUpLFxyXG4gICAgICAgIHVzZWQgPSBmaXJzdE9mTW9udGguZ2V0RGF5KCkgKyBsYXN0T2ZNb250aC5nZXREYXRlKCk7XHJcbiAgICByZXR1cm4gTWF0aC5jZWlsKHVzZWQgLyBEYXRlVGltZUNvbnN0YW50cy5EQVlTX0lOX1dFRUspO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgYW5kIHNlY29uZCBkYXRlIGFyZSBlcXVhbFxyXG4gKiBAcGFyYW0gZGF0ZTEgRmlyc3QgZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZTIgU2Vjb25kIGRhdGUgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmaXJzdCBhbmQgc2Vjb25kIGRhdGUgYXJlIGVxdWFsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNFcXVhbERhdGVzKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZGF0ZTFWYWx1ZSA9IG5ldyBEYXRlKGRhdGUxKSxcclxuICAgICAgICBkYXRlMlZhbHVlID0gbmV3IERhdGUoZGF0ZTIpO1xyXG4gICAgZGF0ZTFWYWx1ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcclxuICAgIGRhdGUyVmFsdWUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGUxVmFsdWUuZ2V0VGltZSgpID09PSBkYXRlMlZhbHVlLmdldFRpbWUoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGZpcnN0IGFuZCBzZWNvbmQgZGF0ZXRpbWUgYXJlIGVxdWFsXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRldGltZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZTIgU2Vjb25kIGRhdGV0aW1lIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgYW5kIHNlY29uZCBkYXRldGltZSBhcmUgZXF1YWxcclxuICovXHJcbiBleHBvcnQgZnVuY3Rpb24gaXNFcXVhbERhdGVUaW1lcyhkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGRhdGUxVmFsdWUgPSBuZXcgRGF0ZShkYXRlMSksXHJcbiAgICAgICAgZGF0ZTJWYWx1ZSA9IG5ldyBEYXRlKGRhdGUyKTtcclxuXHJcbiAgICByZXR1cm4gZGF0ZTFWYWx1ZS5nZXRUaW1lKCkgPT09IGRhdGUyVmFsdWUuZ2V0VGltZSgpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgZGF0ZSBncmVhdGVyIHRoYW4gc2Vjb25kIGRhdGVcclxuICogQHBhcmFtIGRhdGUxIEZpcnN0IGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUyIFNlY29uZCBkYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgZGF0ZSBncmVhdGVyIHRoYW4gc2Vjb25kIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVHcmVhdChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCkpXHJcbiAgICAgICAgPiBuZXcgRGF0ZShkYXRlMi5nZXRGdWxsWWVhcigpLCBkYXRlMi5nZXRNb250aCgpLCBkYXRlMi5nZXREYXRlKCkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgZGF0ZSBncmVhdGVyIG9yIGVxdWFsIHRvIHNlY29uZCBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZpcnN0IGRhdGUgZ3JlYXRlciBvciBlcXVhbCB0byBzZWNvbmQgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZUdyZWF0T3JFcXVhbChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCkpXHJcbiAgICAgICAgPj0gbmV3IERhdGUoZGF0ZTIuZ2V0RnVsbFllYXIoKSwgZGF0ZTIuZ2V0TW9udGgoKSwgZGF0ZTIuZ2V0RGF0ZSgpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGZpcnN0IGRhdGUgdGltZSBncmVhdGVyIHRoYW4gc2Vjb25kIGRhdGUgdGltZVxyXG4gKiBAcGFyYW0gZGF0ZTEgRmlyc3QgZGF0ZSB0aW1lIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZSB0aW1lIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgZGF0ZSB0aW1lIGdyZWF0ZXIgdGhhbiBzZWNvbmQgZGF0ZSB0aW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlVGltZUdyZWF0KGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUxLmdldEZ1bGxZZWFyKCksIGRhdGUxLmdldE1vbnRoKCksIGRhdGUxLmdldERhdGUoKSxcclxuICAgICAgICBkYXRlMS5nZXRIb3VycygpLCBkYXRlMS5nZXRNaW51dGVzKCkpXHJcbiAgICAgICAgPiBuZXcgRGF0ZShkYXRlMi5nZXRGdWxsWWVhcigpLCBkYXRlMi5nZXRNb250aCgpLCBkYXRlMi5nZXREYXRlKCksXHJcbiAgICAgICAgICAgIGRhdGUyLmdldEhvdXJzKCksIGRhdGUyLmdldE1pbnV0ZXMoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBmaXJzdCBkYXRlIHRpbWUgZ3JlYXRlciBvciBlcXVhbCB0byBzZWNvbmQgZGF0ZSB0aW1lXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRlIHRpbWUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUyIFNlY29uZCBkYXRlIHRpbWUgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmaXJzdCBkYXRlIHRpbWUgZ3JlYXRlciBvciBlcXVhbCB0byBzZWNvbmQgZGF0ZSB0aW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlVGltZUdyZWF0T3JFcXVhbChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCksXHJcbiAgICAgICAgZGF0ZTEuZ2V0SG91cnMoKSwgZGF0ZTEuZ2V0TWludXRlcygpKVxyXG4gICAgICAgID49IG5ldyBEYXRlKGRhdGUyLmdldEZ1bGxZZWFyKCksIGRhdGUyLmdldE1vbnRoKCksIGRhdGUyLmdldERhdGUoKSxcclxuICAgICAgICAgICAgZGF0ZTIuZ2V0SG91cnMoKSwgZGF0ZTIuZ2V0TWludXRlcygpKTtcclxufSJdfQ==
@@ -1,7 +1,7 @@
1
- export { isDefined, isObject, isAsyncData, addPropertyToObject, removePropertyFromObject, mergeDeep, nameof, isNumeric, isChromeBrowser, isEmail, parseBoolean } from './common.utils';
1
+ export { isDefined, isObject, isAsyncData, addPropertyToObject, removePropertyFromObject, mergeDeep, nameof, isNumeric, isChromeBrowser, isEmail, parseBoolean, isEqual } from './common.utils';
2
2
  export { isNullOrEmptyString, contains, trim } from './string.utils';
3
- export { setMinutes, setHours, setDay, setYear, setSeconds, setMilliseconds, setDefaultSecondsAndMiliseconds, getNextDate, getNextMonth, getPreviousMonth, getNextYear, getPreviousYear, getFirstDayOfMonth, getLastDayOfMonth, getFirstDayOfYear, getLastDayOfYear, getFirstDayOfMonthByYearAndMonth, getLastDayOfMonthByYearAndMonth, getWeeksNumberInMonth, isEqualDates, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual } from './date-time.utils';
3
+ export { setMinutes, setHours, setDay, setYear, setSeconds, setMilliseconds, setDefaultSecondsAndMiliseconds, getNextDate, getNextMonth, getPreviousMonth, getNextYear, getPreviousYear, getFirstDayOfMonth, getLastDayOfMonth, getFirstDayOfYear, getLastDayOfYear, getFirstDayOfMonthByYearAndMonth, getLastDayOfMonthByYearAndMonth, getWeeksNumberInMonth, isEqualDates, isEqualDateTimes, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual } from './date-time.utils';
4
4
  export { parseFileSize, getFileExtension, readAsDataURL, isImage } from './file.utils';
5
5
  export { getCssLikeValue, getValueFromCssLikeValue, getCalcValue, getRotateValue, addClasses, removeClasses, rgbToHex, hexToRgb, replaceRgbOpacity } from './ui.utils';
6
- export { any, hasItem, hasItemBy, hasObjectItem, firstOrDefault, firstItem, lastItem, all, where, skip, sort, sortBy, sortByPath, distinct, sum, max, remove, addItem, removeItem, removeItemBy, updateItemBy, getCollectionOrEmpty } from './collections.utils';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULGVBQWUsRUFDZixPQUFPLEVBQ1AsWUFBWSxFQUNmLE1BQU0sZ0JBQWdCLENBQUE7QUFFdkIsT0FBTyxFQUNILG1CQUFtQixFQUNuQixRQUFRLEVBQ1IsSUFBSSxFQUNQLE1BQU0sZ0JBQWdCLENBQUE7QUFFdkIsT0FBTyxFQUNILFVBQVUsRUFDVixRQUFRLEVBQ1IsTUFBTSxFQUNOLE9BQU8sRUFDUCxVQUFVLEVBQ1YsZUFBZSxFQUNmLCtCQUErQixFQUMvQixXQUFXLEVBQ1gsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osV0FBVyxFQUNYLGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3pCLE1BQU0sbUJBQW1CLENBQUE7QUFFMUIsT0FBTyxFQUNILGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLE9BQU8sRUFDVixNQUFNLGNBQWMsQ0FBQTtBQUVyQixPQUFPLEVBQ0gsZUFBZSxFQUNmLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osY0FBYyxFQUNkLFVBQVUsRUFDVixhQUFhLEVBQ2IsUUFBUSxFQUNSLFFBQVEsRUFDUixpQkFBaUIsRUFDcEIsTUFBTSxZQUFZLENBQUE7QUFFbkIsT0FBTyxFQUNILEdBQUcsRUFDSCxPQUFPLEVBQ1AsU0FBUyxFQUNULGFBQWEsRUFDYixjQUFjLEVBQ2QsU0FBUyxFQUNULFFBQVEsRUFDUixHQUFHLEVBQ0gsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsR0FBRyxFQUNILEdBQUcsRUFDSCxNQUFNLEVBQ04sT0FBTyxFQUNQLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLG9CQUFvQixFQUN2QixNQUFNLHFCQUFxQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcclxuICAgIGlzRGVmaW5lZCxcclxuICAgIGlzT2JqZWN0LFxyXG4gICAgaXNBc3luY0RhdGEsXHJcbiAgICBhZGRQcm9wZXJ0eVRvT2JqZWN0LFxyXG4gICAgcmVtb3ZlUHJvcGVydHlGcm9tT2JqZWN0LFxyXG4gICAgbWVyZ2VEZWVwLFxyXG4gICAgbmFtZW9mLFxyXG4gICAgaXNOdW1lcmljLFxyXG4gICAgaXNDaHJvbWVCcm93c2VyLFxyXG4gICAgaXNFbWFpbCxcclxuICAgIHBhcnNlQm9vbGVhblxyXG59IGZyb20gJy4vY29tbW9uLnV0aWxzJ1xyXG5cclxuZXhwb3J0IHtcclxuICAgIGlzTnVsbE9yRW1wdHlTdHJpbmcsXHJcbiAgICBjb250YWlucyxcclxuICAgIHRyaW1cclxufSBmcm9tICcuL3N0cmluZy51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBzZXRNaW51dGVzLFxyXG4gICAgc2V0SG91cnMsXHJcbiAgICBzZXREYXksXHJcbiAgICBzZXRZZWFyLFxyXG4gICAgc2V0U2Vjb25kcyxcclxuICAgIHNldE1pbGxpc2Vjb25kcyxcclxuICAgIHNldERlZmF1bHRTZWNvbmRzQW5kTWlsaXNlY29uZHMsXHJcbiAgICBnZXROZXh0RGF0ZSxcclxuICAgIGdldE5leHRNb250aCxcclxuICAgIGdldFByZXZpb3VzTW9udGgsXHJcbiAgICBnZXROZXh0WWVhcixcclxuICAgIGdldFByZXZpb3VzWWVhcixcclxuICAgIGdldEZpcnN0RGF5T2ZNb250aCxcclxuICAgIGdldExhc3REYXlPZk1vbnRoLFxyXG4gICAgZ2V0Rmlyc3REYXlPZlllYXIsXHJcbiAgICBnZXRMYXN0RGF5T2ZZZWFyLFxyXG4gICAgZ2V0Rmlyc3REYXlPZk1vbnRoQnlZZWFyQW5kTW9udGgsXHJcbiAgICBnZXRMYXN0RGF5T2ZNb250aEJ5WWVhckFuZE1vbnRoLFxyXG4gICAgZ2V0V2Vla3NOdW1iZXJJbk1vbnRoLFxyXG4gICAgaXNFcXVhbERhdGVzLFxyXG4gICAgaXNEYXRlR3JlYXQsXHJcbiAgICBpc0RhdGVHcmVhdE9yRXF1YWwsXHJcbiAgICBpc0RhdGVUaW1lR3JlYXQsXHJcbiAgICBpc0RhdGVUaW1lR3JlYXRPckVxdWFsXHJcbn0gZnJvbSAnLi9kYXRlLXRpbWUudXRpbHMnXHJcblxyXG5leHBvcnQge1xyXG4gICAgcGFyc2VGaWxlU2l6ZSxcclxuICAgIGdldEZpbGVFeHRlbnNpb24sXHJcbiAgICByZWFkQXNEYXRhVVJMLFxyXG4gICAgaXNJbWFnZVxyXG59IGZyb20gJy4vZmlsZS51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBnZXRDc3NMaWtlVmFsdWUsXHJcbiAgICBnZXRWYWx1ZUZyb21Dc3NMaWtlVmFsdWUsXHJcbiAgICBnZXRDYWxjVmFsdWUsXHJcbiAgICBnZXRSb3RhdGVWYWx1ZSxcclxuICAgIGFkZENsYXNzZXMsXHJcbiAgICByZW1vdmVDbGFzc2VzLFxyXG4gICAgcmdiVG9IZXgsXHJcbiAgICBoZXhUb1JnYixcclxuICAgIHJlcGxhY2VSZ2JPcGFjaXR5XHJcbn0gZnJvbSAnLi91aS51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBhbnksXHJcbiAgICBoYXNJdGVtLFxyXG4gICAgaGFzSXRlbUJ5LFxyXG4gICAgaGFzT2JqZWN0SXRlbSxcclxuICAgIGZpcnN0T3JEZWZhdWx0LFxyXG4gICAgZmlyc3RJdGVtLFxyXG4gICAgbGFzdEl0ZW0sXHJcbiAgICBhbGwsXHJcbiAgICB3aGVyZSxcclxuICAgIHNraXAsXHJcbiAgICBzb3J0LFxyXG4gICAgc29ydEJ5LFxyXG4gICAgc29ydEJ5UGF0aCxcclxuICAgIGRpc3RpbmN0LFxyXG4gICAgc3VtLFxyXG4gICAgbWF4LFxyXG4gICAgcmVtb3ZlLFxyXG4gICAgYWRkSXRlbSxcclxuICAgIHJlbW92ZUl0ZW0sXHJcbiAgICByZW1vdmVJdGVtQnksXHJcbiAgICB1cGRhdGVJdGVtQnksXHJcbiAgICBnZXRDb2xsZWN0aW9uT3JFbXB0eVxyXG59IGZyb20gJy4vY29sbGVjdGlvbnMudXRpbHMnIl19
6
+ export { any, hasItem, hasItemBy, hasObjectItem, firstOrDefault, firstItem, lastItem, all, where, skip, sort, sortBy, sortByPath, distinct, sum, max, remove, addItem, removeItem, removeItemBy, updateItemBy, getCollectionOrEmpty, count } from './collections.utils';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULGVBQWUsRUFDZixPQUFPLEVBQ1AsWUFBWSxFQUNaLE9BQU8sRUFDVixNQUFNLGdCQUFnQixDQUFBO0FBRXZCLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsUUFBUSxFQUNSLElBQUksRUFDUCxNQUFNLGdCQUFnQixDQUFBO0FBRXZCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDZiwrQkFBK0IsRUFDL0IsV0FBVyxFQUNYLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZ0NBQWdDLEVBQ2hDLCtCQUErQixFQUMvQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixzQkFBc0IsRUFDekIsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQ0gsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsT0FBTyxFQUNWLE1BQU0sY0FBYyxDQUFBO0FBRXJCLE9BQU8sRUFDSCxlQUFlLEVBQ2Ysd0JBQXdCLEVBQ3hCLFlBQVksRUFDWixjQUFjLEVBQ2QsVUFBVSxFQUNWLGFBQWEsRUFDYixRQUFRLEVBQ1IsUUFBUSxFQUNSLGlCQUFpQixFQUNwQixNQUFNLFlBQVksQ0FBQTtBQUVuQixPQUFPLEVBQ0gsR0FBRyxFQUNILE9BQU8sRUFDUCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGNBQWMsRUFDZCxTQUFTLEVBQ1QsUUFBUSxFQUNSLEdBQUcsRUFDSCxLQUFLLEVBQ0wsSUFBSSxFQUNKLElBQUksRUFDSixNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsRUFDUixHQUFHLEVBQ0gsR0FBRyxFQUNILE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLEtBQUssRUFDUixNQUFNLHFCQUFxQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcclxuICAgIGlzRGVmaW5lZCxcclxuICAgIGlzT2JqZWN0LFxyXG4gICAgaXNBc3luY0RhdGEsXHJcbiAgICBhZGRQcm9wZXJ0eVRvT2JqZWN0LFxyXG4gICAgcmVtb3ZlUHJvcGVydHlGcm9tT2JqZWN0LFxyXG4gICAgbWVyZ2VEZWVwLFxyXG4gICAgbmFtZW9mLFxyXG4gICAgaXNOdW1lcmljLFxyXG4gICAgaXNDaHJvbWVCcm93c2VyLFxyXG4gICAgaXNFbWFpbCxcclxuICAgIHBhcnNlQm9vbGVhbixcclxuICAgIGlzRXF1YWxcclxufSBmcm9tICcuL2NvbW1vbi51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBpc051bGxPckVtcHR5U3RyaW5nLFxyXG4gICAgY29udGFpbnMsXHJcbiAgICB0cmltXHJcbn0gZnJvbSAnLi9zdHJpbmcudXRpbHMnXHJcblxyXG5leHBvcnQge1xyXG4gICAgc2V0TWludXRlcyxcclxuICAgIHNldEhvdXJzLFxyXG4gICAgc2V0RGF5LFxyXG4gICAgc2V0WWVhcixcclxuICAgIHNldFNlY29uZHMsXHJcbiAgICBzZXRNaWxsaXNlY29uZHMsXHJcbiAgICBzZXREZWZhdWx0U2Vjb25kc0FuZE1pbGlzZWNvbmRzLFxyXG4gICAgZ2V0TmV4dERhdGUsXHJcbiAgICBnZXROZXh0TW9udGgsXHJcbiAgICBnZXRQcmV2aW91c01vbnRoLFxyXG4gICAgZ2V0TmV4dFllYXIsXHJcbiAgICBnZXRQcmV2aW91c1llYXIsXHJcbiAgICBnZXRGaXJzdERheU9mTW9udGgsXHJcbiAgICBnZXRMYXN0RGF5T2ZNb250aCxcclxuICAgIGdldEZpcnN0RGF5T2ZZZWFyLFxyXG4gICAgZ2V0TGFzdERheU9mWWVhcixcclxuICAgIGdldEZpcnN0RGF5T2ZNb250aEJ5WWVhckFuZE1vbnRoLFxyXG4gICAgZ2V0TGFzdERheU9mTW9udGhCeVllYXJBbmRNb250aCxcclxuICAgIGdldFdlZWtzTnVtYmVySW5Nb250aCxcclxuICAgIGlzRXF1YWxEYXRlcyxcclxuICAgIGlzRXF1YWxEYXRlVGltZXMsXHJcbiAgICBpc0RhdGVHcmVhdCxcclxuICAgIGlzRGF0ZUdyZWF0T3JFcXVhbCxcclxuICAgIGlzRGF0ZVRpbWVHcmVhdCxcclxuICAgIGlzRGF0ZVRpbWVHcmVhdE9yRXF1YWxcclxufSBmcm9tICcuL2RhdGUtdGltZS51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBwYXJzZUZpbGVTaXplLFxyXG4gICAgZ2V0RmlsZUV4dGVuc2lvbixcclxuICAgIHJlYWRBc0RhdGFVUkwsXHJcbiAgICBpc0ltYWdlXHJcbn0gZnJvbSAnLi9maWxlLnV0aWxzJ1xyXG5cclxuZXhwb3J0IHtcclxuICAgIGdldENzc0xpa2VWYWx1ZSxcclxuICAgIGdldFZhbHVlRnJvbUNzc0xpa2VWYWx1ZSxcclxuICAgIGdldENhbGNWYWx1ZSxcclxuICAgIGdldFJvdGF0ZVZhbHVlLFxyXG4gICAgYWRkQ2xhc3NlcyxcclxuICAgIHJlbW92ZUNsYXNzZXMsXHJcbiAgICByZ2JUb0hleCxcclxuICAgIGhleFRvUmdiLFxyXG4gICAgcmVwbGFjZVJnYk9wYWNpdHlcclxufSBmcm9tICcuL3VpLnV0aWxzJ1xyXG5cclxuZXhwb3J0IHtcclxuICAgIGFueSxcclxuICAgIGhhc0l0ZW0sXHJcbiAgICBoYXNJdGVtQnksXHJcbiAgICBoYXNPYmplY3RJdGVtLFxyXG4gICAgZmlyc3RPckRlZmF1bHQsXHJcbiAgICBmaXJzdEl0ZW0sXHJcbiAgICBsYXN0SXRlbSxcclxuICAgIGFsbCxcclxuICAgIHdoZXJlLFxyXG4gICAgc2tpcCxcclxuICAgIHNvcnQsXHJcbiAgICBzb3J0QnksXHJcbiAgICBzb3J0QnlQYXRoLFxyXG4gICAgZGlzdGluY3QsXHJcbiAgICBzdW0sXHJcbiAgICBtYXgsXHJcbiAgICByZW1vdmUsXHJcbiAgICBhZGRJdGVtLFxyXG4gICAgcmVtb3ZlSXRlbSxcclxuICAgIHJlbW92ZUl0ZW1CeSxcclxuICAgIHVwZGF0ZUl0ZW1CeSxcclxuICAgIGdldENvbGxlY3Rpb25PckVtcHR5LFxyXG4gICAgY291bnRcclxufSBmcm9tICcuL2NvbGxlY3Rpb25zLnV0aWxzJyJdfQ==