@tetacom/ng-components 1.0.35 → 1.0.38

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 (101) hide show
  1. package/assets/icons.svg +503 -657
  2. package/component/expand-card/expand-card/expand-card.component.d.ts +13 -0
  3. package/component/expand-card/expand-card.module.d.ts +12 -0
  4. package/component/expand-card/public-api.d.ts +2 -0
  5. package/component/file-upload/file-upload.module.d.ts +2 -1
  6. package/component/modal/modal-container/modal-container.component.d.ts +1 -1
  7. package/component/modal/modal.service.d.ts +1 -1
  8. package/component/modal/model/i-modal-result.d.ts +2 -1
  9. package/component/modal/model/modal-instance.d.ts +2 -2
  10. package/component/public-api.d.ts +2 -0
  11. package/component/resize-panel/resize-panel/resize-panel.component.d.ts +1 -0
  12. package/component/table/enum/select-type.enum.d.ts +2 -2
  13. package/directive/context-menu/context-menu.directive.d.ts +4 -1
  14. package/directive/drag-drop/drag-container.directive.d.ts +32 -0
  15. package/directive/drag-drop/drag-drop.module.d.ts +11 -0
  16. package/directive/drag-drop/drag-drop.service.d.ts +40 -0
  17. package/directive/drag-drop/drag-placeholder.directive.d.ts +6 -0
  18. package/directive/drag-drop/drag-preview.directive.d.ts +8 -0
  19. package/directive/drag-drop/drag.directive.d.ts +31 -0
  20. package/directive/drag-drop/model/drag-container-instance.d.ts +11 -0
  21. package/directive/drag-drop/model/drag-instance.d.ts +9 -0
  22. package/directive/drag-drop/model/drag-process.d.ts +4 -0
  23. package/directive/drag-drop/model/drag-selection.d.ts +6 -0
  24. package/directive/drag-drop/model/drop-event.d.ts +8 -0
  25. package/directive/drag-drop/model/drop-target.d.ts +3 -0
  26. package/directive/drag-drop/model/point.d.ts +4 -0
  27. package/directive/drag-drop/model/public-api.d.ts +7 -0
  28. package/directive/drag-drop/public-api.d.ts +7 -0
  29. package/directive/let/let.directive.d.ts +18 -0
  30. package/directive/let/let.module.d.ts +8 -0
  31. package/directive/let/public-api.d.ts +2 -0
  32. package/directive/public-api.d.ts +2 -1
  33. package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +3 -3
  34. package/esm2020/component/dropdown/dropdown-base.mjs +3 -4
  35. package/esm2020/component/expand-card/expand-card/expand-card.component.mjs +36 -0
  36. package/esm2020/component/expand-card/expand-card.module.mjs +42 -0
  37. package/esm2020/component/expand-card/public-api.mjs +3 -0
  38. package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +3 -3
  39. package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +4 -3
  40. package/esm2020/component/file-upload/file-upload.module.mjs +5 -4
  41. package/esm2020/component/modal/modal-container/modal-container.component.mjs +7 -7
  42. package/esm2020/component/modal/modal.service.mjs +1 -1
  43. package/esm2020/component/modal/model/i-modal-result.mjs +1 -1
  44. package/esm2020/component/modal/model/modal-instance.mjs +4 -2
  45. package/esm2020/component/public-api.mjs +5 -1
  46. package/esm2020/component/resize-panel/resize-panel/resize-panel.component.mjs +6 -3
  47. package/esm2020/component/table/default/default-head-cell/default-head-cell.component.mjs +2 -2
  48. package/esm2020/component/table/enum/select-type.enum.mjs +3 -3
  49. package/esm2020/component/table/service/table.service.mjs +5 -20
  50. package/esm2020/component/table/table/table.component.mjs +7 -4
  51. package/esm2020/component/table/table-body/table-body.component.mjs +4 -4
  52. package/esm2020/component/table/table-head/table-head.component.mjs +4 -4
  53. package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +3 -3
  54. package/esm2020/directive/context-menu/context-menu.directive.mjs +36 -11
  55. package/esm2020/directive/drag-drop/drag-container.directive.mjs +92 -0
  56. package/esm2020/directive/drag-drop/drag-drop.module.mjs +41 -0
  57. package/esm2020/directive/drag-drop/drag-drop.service.mjs +140 -0
  58. package/esm2020/directive/drag-drop/drag-placeholder.directive.mjs +14 -0
  59. package/esm2020/directive/drag-drop/drag-preview.directive.mjs +16 -0
  60. package/esm2020/directive/drag-drop/drag.directive.mjs +128 -0
  61. package/esm2020/directive/drag-drop/model/drag-container-instance.mjs +8 -0
  62. package/esm2020/directive/drag-drop/model/drag-instance.mjs +7 -0
  63. package/esm2020/directive/drag-drop/model/drag-process.mjs +2 -0
  64. package/esm2020/directive/drag-drop/model/drag-selection.mjs +2 -0
  65. package/esm2020/directive/drag-drop/model/drop-event.mjs +2 -0
  66. package/esm2020/directive/drag-drop/model/drop-target.mjs +2 -0
  67. package/esm2020/directive/drag-drop/model/point.mjs +2 -0
  68. package/esm2020/directive/drag-drop/model/public-api.mjs +8 -0
  69. package/esm2020/directive/drag-drop/public-api.mjs +8 -0
  70. package/esm2020/directive/let/let.directive.mjs +38 -0
  71. package/esm2020/directive/let/let.module.mjs +25 -0
  72. package/esm2020/directive/let/public-api.mjs +3 -0
  73. package/esm2020/directive/public-api.mjs +3 -2
  74. package/esm2020/observable/public-api.mjs +2 -0
  75. package/esm2020/observable/zoneObservable.mjs +15 -0
  76. package/esm2020/public-api.mjs +3 -1
  77. package/esm2020/util/date-util.mjs +41 -1
  78. package/esm2020/util/forms-util.mjs +7 -1
  79. package/fesm2015/tetacom-ng-components.mjs +968 -340
  80. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  81. package/fesm2020/tetacom-ng-components.mjs +953 -337
  82. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  83. package/observable/public-api.d.ts +1 -0
  84. package/observable/zoneObservable.d.ts +5 -0
  85. package/package.json +6 -2
  86. package/public-api.d.ts +1 -0
  87. package/style/button.scss +1 -1
  88. package/style/input.scss +1 -1
  89. package/style/layout.scss +30 -2
  90. package/style/list.scss +9 -4
  91. package/style/modal.scss +2 -0
  92. package/style/presets/color-presets.scss +77 -79
  93. package/style/presets/font-presets.scss +21 -21
  94. package/style/presets/shadow-presets.scss +6 -6
  95. package/style/radio.scss +2 -2
  96. package/style/switch.scss +3 -3
  97. package/style/table.scss +1 -2
  98. package/style/toolbar.scss +1 -1
  99. package/style/util/button-util.scss +2 -2
  100. package/util/date-util.d.ts +1 -0
  101. package/util/forms-util.d.ts +1 -0
@@ -0,0 +1,8 @@
1
+ export class DragContainerInstance {
2
+ constructor(options) {
3
+ this.data = options.data;
4
+ this.previewTemplate = options.previewTemplate;
5
+ this.viewContainer = options.viewContainer;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1jb250YWluZXItaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL2RyYWctZHJvcC9tb2RlbC9kcmFnLWNvbnRhaW5lci1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8scUJBQXFCO0lBS2hDLFlBQVksT0FJWDtRQUNDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgRHJhZ0NvbnRhaW5lckluc3RhbmNlPFQ+IHtcbiAgZGF0YTogVFtdO1xuICBwcmV2aWV3VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczoge1xuICAgIGRhdGE6IFRbXSxcbiAgICBwcmV2aWV3VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxuICB9KSB7XG4gICAgdGhpcy5kYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgIHRoaXMucHJldmlld1RlbXBsYXRlID0gb3B0aW9ucy5wcmV2aWV3VGVtcGxhdGU7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyID0gb3B0aW9ucy52aWV3Q29udGFpbmVyO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ export class DragInstance {
2
+ constructor(options) {
3
+ this.container = options.container;
4
+ this.data = options.data;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvZHJhZy1kcm9wL21vZGVsL2RyYWctaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFlBQVk7SUFJdkIsWUFBWSxPQUdYO1FBQ0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RyYWdDb250YWluZXJJbnN0YW5jZX0gZnJvbSAnLi9kcmFnLWNvbnRhaW5lci1pbnN0YW5jZSc7XG5cbmV4cG9ydCBjbGFzcyBEcmFnSW5zdGFuY2U8VD4ge1xuICBjb250YWluZXI6IERyYWdDb250YWluZXJJbnN0YW5jZTxUPjtcbiAgZGF0YTogVDtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzoge1xuICAgIGNvbnRhaW5lcjogRHJhZ0NvbnRhaW5lckluc3RhbmNlPFQ+LFxuICAgIGRhdGE6IFRcbiAgfSkge1xuICAgIHRoaXMuY29udGFpbmVyID0gb3B0aW9ucy5jb250YWluZXI7XG4gICAgdGhpcy5kYXRhID0gb3B0aW9ucy5kYXRhO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1wcm9jZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZS9kcmFnLWRyb3AvbW9kZWwvZHJhZy1wcm9jZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RyYWdTZWxlY3Rpb259IGZyb20gJy4vZHJhZy1zZWxlY3Rpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyYWdQcm9jZXNzPFQ+IHtcbiAgc2VsZWN0aW9uOiBEcmFnU2VsZWN0aW9uPFQ+O1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zZWxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL2RyYWctZHJvcC9tb2RlbC9kcmFnLXNlbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEcmFnQ29udGFpbmVySW5zdGFuY2V9IGZyb20gJy4vZHJhZy1jb250YWluZXItaW5zdGFuY2UnO1xuaW1wb3J0IHtEcmFnSW5zdGFuY2V9IGZyb20gJy4vZHJhZy1pbnN0YW5jZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJhZ1NlbGVjdGlvbjxUPiB7XG4gIGNvbnRhaW5lcjogRHJhZ0NvbnRhaW5lckluc3RhbmNlPFQ+O1xuICBpdGVtczogRHJhZ0luc3RhbmNlPFQ+W107XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvZHJhZy1kcm9wL21vZGVsL2Ryb3AtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHJvcFRhcmdldH0gZnJvbSAnLi9kcm9wLXRhcmdldCc7XG5pbXBvcnQge0RyYWdJbnN0YW5jZX0gZnJvbSAnLi9kcmFnLWluc3RhbmNlJztcbmltcG9ydCB7RHJhZ0NvbnRhaW5lckluc3RhbmNlfSBmcm9tICcuL2RyYWctY29udGFpbmVyLWluc3RhbmNlJztcblxuZXhwb3J0IGludGVyZmFjZSBEcm9wRXZlbnQ8VD4ge1xuICBjb250YWluZXI6IERyYWdDb250YWluZXJJbnN0YW5jZTxUPixcbiAgdGFyZ2V0OiBEcm9wVGFyZ2V0PFQ+LFxuICBkYXRhOiBEcmFnSW5zdGFuY2U8VD5bXVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC10YXJnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL2RyYWctZHJvcC9tb2RlbC9kcm9wLXRhcmdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEcmFnSW5zdGFuY2V9IGZyb20gJy4vZHJhZy1pbnN0YW5jZSc7XG5pbXBvcnQge0RyYWdDb250YWluZXJJbnN0YW5jZX0gZnJvbSAnLi9kcmFnLWNvbnRhaW5lci1pbnN0YW5jZSc7XG5cbmV4cG9ydCB0eXBlIERyb3BUYXJnZXQ8VD4gPSBEcmFnSW5zdGFuY2U8VD4gfCBEcmFnQ29udGFpbmVySW5zdGFuY2U8VD47XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL2RyYWctZHJvcC9tb2RlbC9wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQb2ludCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,8 @@
1
+ export * from './drag-container-instance';
2
+ export * from './drag-instance';
3
+ export * from './drag-process';
4
+ export * from './drag-selection';
5
+ export * from './drop-event';
6
+ export * from './drop-target';
7
+ export * from './point';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvZHJhZy1kcm9wL21vZGVsL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJhZy1jb250YWluZXItaW5zdGFuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLWluc3RhbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1wcm9jZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1zZWxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wLWV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcC10YXJnZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9wb2ludCc7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export * from './drag.directive';
2
+ export * from './drag-container.directive';
3
+ export * from './drag-drop.module';
4
+ export * from './drag-placeholder.directive';
5
+ export * from './drag-preview.directive';
6
+ export * from './drag-drop.service';
7
+ export * from './model/public-api';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvZHJhZy1kcm9wL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJhZy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLWRyb3AubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1wbGFjZWhvbGRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLXByZXZpZXcuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9kcmFnLWRyb3Auc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { Directive, Inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LetDirective {
4
+ constructor(viewContainer, templateRef) {
5
+ viewContainer.createEmbeddedView(templateRef, new LetContext(this));
6
+ }
7
+ static ngTemplateContextGuard(_dir, _ctx) {
8
+ return true;
9
+ }
10
+ }
11
+ LetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetDirective, deps: [{ token: ViewContainerRef }, { token: TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
12
+ LetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: LetDirective, selector: "[tetaLet]", inputs: { tetaLet: "tetaLet" }, ngImport: i0 });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetDirective, decorators: [{
14
+ type: Directive,
15
+ args: [{
16
+ selector: '[tetaLet]'
17
+ }]
18
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef, decorators: [{
19
+ type: Inject,
20
+ args: [ViewContainerRef]
21
+ }] }, { type: i0.TemplateRef, decorators: [{
22
+ type: Inject,
23
+ args: [TemplateRef]
24
+ }] }]; }, propDecorators: { tetaLet: [{
25
+ type: Input
26
+ }] } });
27
+ export class LetContext {
28
+ constructor(internalDirectiveInstance) {
29
+ this.internalDirectiveInstance = internalDirectiveInstance;
30
+ }
31
+ get $implicit() {
32
+ return this.internalDirectiveInstance.tetaLet;
33
+ }
34
+ get tetaLet() {
35
+ return this.internalDirectiveInstance.tetaLet;
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvbGV0L2xldC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLdEYsTUFBTSxPQUFPLFlBQVk7SUFJdkIsWUFDNEIsYUFBK0IsRUFDcEMsV0FBdUM7UUFFNUQsYUFBYSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxJQUFJLFVBQVUsQ0FBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQzNCLElBQXFCLEVBQ3JCLElBQVM7UUFFVCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O3lHQWhCVSxZQUFZLGtCQUtiLGdCQUFnQixhQUNoQixXQUFXOzZGQU5WLFlBQVk7MkZBQVosWUFBWTtrQkFIeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztpQkFDdEI7OzBCQU1JLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDdkIsTUFBTTsyQkFBQyxXQUFXOzRDQUpyQixPQUFPO3NCQUROLEtBQUs7O0FBa0JSLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQTZCLHlCQUEwQztRQUExQyw4QkFBeUIsR0FBekIseUJBQXlCLENBQWlCO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5qZWN0LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGV0YUxldF0nXG59KVxuZXhwb3J0IGNsYXNzIExldERpcmVjdGl2ZTxUPiB7XG4gIEBJbnB1dCgpXG4gIHRldGFMZXQhOiBUO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoVmlld0NvbnRhaW5lclJlZikgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBASW5qZWN0KFRlbXBsYXRlUmVmKSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8TGV0Q29udGV4dDxUPj4sXG4gICkge1xuICAgIHZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlUmVmLCBuZXcgTGV0Q29udGV4dDxUPih0aGlzKSk7XG4gIH1cblxuICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxUPihcbiAgICBfZGlyOiBMZXREaXJlY3RpdmU8VD4sXG4gICAgX2N0eDogYW55LFxuICApOiBfY3R4IGlzIExldERpcmVjdGl2ZTxFeGNsdWRlPFQsIG51bGwgfCB1bmRlZmluZWQ+PiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExldENvbnRleHQ8VD4gaW1wbGVtZW50cyBDb250ZXh0V2l0aEltcGxpY2l0PFQ+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbnRlcm5hbERpcmVjdGl2ZUluc3RhbmNlOiBMZXREaXJlY3RpdmU8VD4pIHtcbiAgfVxuXG4gIGdldCAkaW1wbGljaXQoKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxEaXJlY3RpdmVJbnN0YW5jZS50ZXRhTGV0O1xuICB9XG5cbiAgZ2V0IHRldGFMZXQoKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxEaXJlY3RpdmVJbnN0YW5jZS50ZXRhTGV0O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dFdpdGhJbXBsaWNpdDxUPiB7XG4gICRpbXBsaWNpdDogVDtcbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { LetDirective } from './let.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class LetModule {
6
+ }
7
+ LetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ LetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, declarations: [LetDirective], imports: [CommonModule], exports: [LetDirective] });
9
+ LetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, imports: [[
10
+ CommonModule
11
+ ]] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: LetModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ declarations: [
16
+ LetDirective
17
+ ], exports: [
18
+ LetDirective
19
+ ],
20
+ imports: [
21
+ CommonModule
22
+ ]
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvbGV0L2xldC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQVk3QyxNQUFNLE9BQU8sU0FBUzs7c0dBQVQsU0FBUzt1R0FBVCxTQUFTLGlCQVJsQixZQUFZLGFBS1osWUFBWSxhQUhaLFlBQVk7dUdBTUgsU0FBUyxZQUpYO1lBQ1AsWUFBWTtTQUNiOzJGQUVVLFNBQVM7a0JBVnJCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLFlBQVk7cUJBQ2IsRUFBRSxPQUFPLEVBQUU7d0JBQ1YsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0xldERpcmVjdGl2ZX0gZnJvbSAnLi9sZXQuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTGV0RGlyZWN0aXZlXG4gIF0sIGV4cG9ydHM6IFtcbiAgICBMZXREaXJlY3RpdmVcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExldE1vZHVsZSB7XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './let.module';
2
+ export * from './let.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvbGV0L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGV0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xldC5kaXJlY3RpdmUnO1xuIl19
@@ -1,15 +1,16 @@
1
1
  export * from './click-outside/public-api';
2
2
  export * from './context-menu/public-api';
3
3
  export * from './disable-control/public-api';
4
+ export * from './drag-drop/public-api';
4
5
  export * from './drag-sort/public-api';
5
6
  export * from './dynamic-content-base.directive';
6
7
  export * from './highlight/public-api';
7
8
  export * from './hint/public-api';
8
9
  export * from './loader/public-api';
9
10
  export * from './only-number/public-api';
10
- export * from '../component/resize-panel/public-api';
11
11
  export * from './teta-template/public-api';
12
12
  export * from './tooltip/public-api';
13
13
  export * from './no-autofill/public-api';
14
14
  export * from './resize-drag/public-api';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsaWNrLW91dHNpZGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQtbWVudS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZGlzYWJsZS1jb250cm9sL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLXNvcnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtY29udGVudC1iYXNlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2hpZ2hsaWdodC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vaGludC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGVyL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9vbmx5LW51bWJlci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4uL2NvbXBvbmVudC9yZXNpemUtcGFuZWwvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3RldGEtdGVtcGxhdGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2x0aXAvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL25vLWF1dG9maWxsL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNpemUtZHJhZy9wdWJsaWMtYXBpJztcbiJdfQ==
15
+ export * from './let/public-api';
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2xpY2stb3V0c2lkZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1tZW51L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9kaXNhYmxlLWNvbnRyb2wvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2RyYWctZHJvcC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1zb3J0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWNvbnRlbnQtYmFzZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9oaWdobGlnaHQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2hpbnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xvYWRlci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vb25seS1udW1iZXIvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3RldGEtdGVtcGxhdGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2x0aXAvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL25vLWF1dG9maWxsL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNpemUtZHJhZy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGV0L3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './zoneObservable';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vYnNlcnZhYmxlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vem9uZU9ic2VydmFibGUnO1xuIl19
@@ -0,0 +1,15 @@
1
+ import { Observable, pipe } from 'rxjs';
2
+ export function tetaZoneFull(ngZone) {
3
+ return source => new Observable(subscriber => source.subscribe({
4
+ next: value => ngZone.run(() => subscriber.next(value)),
5
+ error: (error) => ngZone.run(() => subscriber.error(error)),
6
+ complete: () => ngZone.run(() => subscriber.complete()),
7
+ }));
8
+ }
9
+ export function tetaZoneFree(ngZone) {
10
+ return source => new Observable(subscriber => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));
11
+ }
12
+ export function tetaZoneOptimized(ngZone) {
13
+ return pipe(tetaZoneFree(ngZone), tetaZoneFull(ngZone));
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZU9ic2VydmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb2JzZXJ2YWJsZS96b25lT2JzZXJ2YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQTJCLFVBQVUsRUFBRSxJQUFJLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEUsTUFBTSxVQUFVLFlBQVksQ0FBSSxNQUFjO0lBQzVDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FDZCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUMxQixNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ2YsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELEtBQUssRUFBRSxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUN4RCxDQUFDLENBQ0gsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFJLE1BQWM7SUFDNUMsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUNkLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQzFCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQzdELENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE1BQWM7SUFDakQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSwgcGlwZX0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXRhWm9uZUZ1bGw8VD4obmdab25lOiBOZ1pvbmUpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gc291cmNlID0+XG4gICAgbmV3IE9ic2VydmFibGUoc3Vic2NyaWJlciA9PlxuICAgICAgc291cmNlLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHZhbHVlID0+IG5nWm9uZS5ydW4oKCkgPT4gc3Vic2NyaWJlci5uZXh0KHZhbHVlKSksXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IHVua25vd24pID0+IG5nWm9uZS5ydW4oKCkgPT4gc3Vic2NyaWJlci5lcnJvcihlcnJvcikpLFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gbmdab25lLnJ1bigoKSA9PiBzdWJzY3JpYmVyLmNvbXBsZXRlKCkpLFxuICAgICAgfSksXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRldGFab25lRnJlZTxUPihuZ1pvbmU6IE5nWm9uZSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBzb3VyY2UgPT5cbiAgICBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmVyID0+XG4gICAgICBuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKSksXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRldGFab25lT3B0aW1pemVkPFQ+KG5nWm9uZTogTmdab25lKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIHBpcGUodGV0YVpvbmVGcmVlKG5nWm9uZSksIHRldGFab25lRnVsbChuZ1pvbmUpKTtcbn1cbiJdfQ==
@@ -20,4 +20,6 @@ export * from './common/public-api';
20
20
  export * from './util/public-api';
21
21
  /* locale */
22
22
  export * from './locale/public-api';
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx3QkFBd0IsQ0FBQztBQUV2Qzs7R0FFRztBQUNILGNBQWMsd0JBQXdCLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDOztHQUVHO0FBQ0gsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQzs7R0FFRztBQUNILGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsWUFBWTtBQUNaLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXBvbmVudHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudC9wdWJsaWMtYXBpJztcblxuLyoqXG4gKiBEaXJlY3RpdmVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlL3B1YmxpYy1hcGknO1xuXG4vKipcbiAqIFBpcGVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vcGlwZS9wdWJsaWMtYXBpJztcblxuLyoqXG4gKiBDb21tb25cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24vcHVibGljLWFwaSc7XG5cbi8qKlxuICogVXRpbFxuICovXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvcHVibGljLWFwaSc7XG5cbi8qIGxvY2FsZSAqL1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGUvcHVibGljLWFwaSc7XG4iXX0=
23
+ /* observable util */
24
+ export * from './observable/public-api';
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx3QkFBd0IsQ0FBQztBQUV2Qzs7R0FFRztBQUNILGNBQWMsd0JBQXdCLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDOztHQUVHO0FBQ0gsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQzs7R0FFRztBQUNILGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsWUFBWTtBQUNaLGNBQWMscUJBQXFCLENBQUM7QUFFcEMscUJBQXFCO0FBQ3JCLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXBvbmVudHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudC9wdWJsaWMtYXBpJztcblxuLyoqXG4gKiBEaXJlY3RpdmVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlL3B1YmxpYy1hcGknO1xuXG4vKipcbiAqIFBpcGVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vcGlwZS9wdWJsaWMtYXBpJztcblxuLyoqXG4gKiBDb21tb25cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24vcHVibGljLWFwaSc7XG5cbi8qKlxuICogVXRpbFxuICovXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvcHVibGljLWFwaSc7XG5cbi8qIGxvY2FsZSAqL1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGUvcHVibGljLWFwaSc7XG5cbi8qIG9ic2VydmFibGUgdXRpbCAqL1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZhYmxlL3B1YmxpYy1hcGknO1xuIl19
@@ -144,6 +144,46 @@ export class DateUtil {
144
144
  static isValidDate(date) {
145
145
  return date instanceof Date && !isNaN(date.getTime());
146
146
  }
147
+ static millisecondToHumanFormat(milliSeconds, maxValue = 5000, showDays = false) {
148
+ const negative = milliSeconds < 0;
149
+ if (negative) {
150
+ milliSeconds = -milliSeconds;
151
+ }
152
+ let d;
153
+ if (showDays) {
154
+ d = Math.trunc(milliSeconds / (60000 * 60 * 24));
155
+ milliSeconds = milliSeconds - 60000 * 60 * 24 * d;
156
+ }
157
+ const h = Math.trunc(milliSeconds / (60000 * 60));
158
+ milliSeconds = milliSeconds - 60000 * 60 * h;
159
+ const m = Math.trunc(milliSeconds / 60000);
160
+ milliSeconds = milliSeconds - 60000 * m;
161
+ const s = Math.trunc(milliSeconds / 1000);
162
+ milliSeconds = milliSeconds - 1000 * s;
163
+ const frac = milliSeconds;
164
+ let result = m ? m + ' м ' : ''; // start with minutes
165
+ if (maxValue < 60000 * 60) {
166
+ if (s) {
167
+ result = result + s + ' с '; // add seconds value
168
+ }
169
+ if (s === 0 && !m) {
170
+ result = result + '0 c';
171
+ }
172
+ }
173
+ if (maxValue < 5000) {
174
+ result = frac ? result + frac + ' мс ' : result;
175
+ }
176
+ if (h) {
177
+ result = h + ' ч ' + result;
178
+ }
179
+ if (d) {
180
+ result = d + 'д ' + result;
181
+ }
182
+ if (negative) {
183
+ result = '-' + result;
184
+ }
185
+ return result.trim();
186
+ }
147
187
  static fillConvertDates(result, input) {
148
188
  for (const key in input) {
149
189
  if (!input.hasOwnProperty || !input.hasOwnProperty(key)) {
@@ -195,4 +235,4 @@ export class DateUtil {
195
235
  return null;
196
236
  }
197
237
  }
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWwvZGF0ZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxNQUFNLE9BQU8sUUFBUTtJQUNuQjs7T0FFRztJQUVJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBVSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUU7WUFDaEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFFcEMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDaEMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBRUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFVLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDeEMsSUFBSSxJQUFJLElBQUksSUFBSSxZQUFZLElBQUksRUFBRTtZQUNoQyxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVwQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQVc7UUFDbkMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxLQUFL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eEQ7aUJBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7Z0JBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDekQ7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQzthQUNyQjtTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUFrQjtRQUN4RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDeEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEMsT0FBTyxRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDMUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cHJlcGVuZFplcm99IGZyb20gJy4uL3BpcGUvdXRpbC9udW1iZXItaGVscGVyJztcblxuZXhwb3J0IGNsYXNzIERhdGVVdGlsIHtcbiAgLyoqXG4gICAqINCS0YvRh9C10YHRgtGMIG4t0LTQvdC10LlcbiAgICovXG5cbiAgcHVibGljIHN0YXRpYyBzdWJ0cmFjdERheXMoZGF0ZTogRGF0ZSwgZGF5cyA9IDApOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKGRhdGUgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpO1xuXG4gICAgICBkdC5zZXREYXRlKGR0LmdldERhdGUoKSAtIGRheXMpO1xuICAgICAgcmV0dXJuIGR0O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqINCU0L7QsdCw0LLQuNGC0Ywgbi3QtNC90LXQuVxuICAgKi9cblxuICBwdWJsaWMgc3RhdGljIGFkZERheXMoZGF0ZTogRGF0ZSwgZGF5cyA9IDApOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKGRhdGUgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpO1xuXG4gICAgICBkdC5zZXREYXRlKGR0LmdldERhdGUoKSArIGRheXMpO1xuICAgICAgcmV0dXJuIGR0O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqINCf0L7Qu9GD0YfQuNGC0Ywg0LTQsNGC0YMg0LjQtyDRgdGC0YDQvtC60LhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2VTdHJpbmcoZGF0OiBzdHJpbmcpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKCFkYXQgfHwgZGF0Lmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnRzID0gZGF0LnNwbGl0KCcgJyk7XG4gICAgY29uc3QgZHRQYXJ0ID0gcGFydHNbMF0uc3BsaXQoJy4nKTtcbiAgICBjb25zdCB0UGFydCA9IHBhcnRzWzFdPy5zcGxpdCgnOicpID8/IFsnMCcsICcwJywgJzAnXTtcbiAgICBjb25zdCBwYXJzZWREYXRlID0gbmV3IERhdGUoXG4gICAgICBwYXJzZUludChkdFBhcnRbMl0sIDEwKSxcbiAgICAgIHBhcnNlSW50KGR0UGFydFsxXSwgMTApIC0gMSxcbiAgICAgIHBhcnNlSW50KGR0UGFydFswXSwgMTApLFxuICAgICAgcGFyc2VJbnQodFBhcnRbMF0sIDEwKSxcbiAgICAgIHBhcnNlSW50KHRQYXJ0WzFdLCAxMCksXG4gICAgICBwYXJzZUludCh0UGFydFsyXSwgMTApXG4gICAgKTtcbiAgICBpZiAoaXNOYU4ocGFyc2VkRGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlZERhdGU7XG4gIH1cblxuICAvKipcbiAgICog0J/RgNC40LLQtdGB0YLQuCDQtNCw0YLRgyDQuiDRgdGC0YDQvtC60LVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdG9TdHJpbmcoZGF0OiBEYXRlKTogc3RyaW5nIHtcbiAgICBpZiAoIWRhdCB8fCAhKGRhdCBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IG1vbnRoID0gZGF0LmdldE1vbnRoKCkgKyAxO1xuICAgIHJldHVybiBgJHtwcmVwZW5kWmVybyhkYXQuZ2V0RGF0ZSgpLCAyKX0uXG4gICAgJHtwcmVwZW5kWmVybyhtb250aCwgMil9LlxuICAgICR7ZGF0LmdldEZ1bGxZZWFyKCl9XG4gICAgJHtwcmVwZW5kWmVybyhkYXQuZ2V0SG91cnMoKSwgMil9OlxuICAgICR7cHJlcGVuZFplcm8oZGF0LmdldE1pbnV0ZXMoKSwgMil9OlxuICAgICR7cHJlcGVuZFplcm8oZGF0LmdldFNlY29uZHMoKSwgMil9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDQn9C+0LTQs9C+0YLQvtCy0LrQsCDQtNCw0YLRiyDQuiDQvtGC0L/RgNCw0LLQutC1INC90LAg0YHQtdGA0LLQtdGALCDRh9GC0L7QsdGLINC90LXQsdGL0LvQviDRgdC80LXRidC10L3QuNGPINGH0LDRgdC+0LJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFVUQzJEYXRlTG9jYWwoZGF0ZT86IERhdGUpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKGRhdGUgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0TXM6IG51bWJlciA9XG4gICAgICAgIG5ldyBEYXRlKFxuICAgICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgICAgZGF0ZS5nZXREYXRlKClcbiAgICAgICAgKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSB0aW1lem9uZU9mZnNldE1zKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICog0J/QvtC00LPQvtGC0L7QstC60LAg0LTQsNGC0Ysg0Log0L7RgtC/0YDQsNCy0LrQtSDQvdCwINGB0LXRgNCy0LXRgCwg0YfRgtC+0LHRiyDQvdC10LHRi9C70L4g0YHQvNC10YnQtdC90LjRjyDRh9Cw0YHQvtCyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNvbnZlcnREYXRlTG9jYWwyVVRDKGRhdGU/OiBEYXRlKTogRGF0ZSB8IG51bGwge1xuICAgIGlmIChkYXRlICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBjb25zdCB0aW1lem9uZU9mZnNldE1zOiBudW1iZXIgPVxuICAgICAgICBuZXcgRGF0ZShcbiAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICAgIGRhdGUuZ2V0RGF0ZSgpXG4gICAgICAgICkuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwO1xuICAgICAgcmV0dXJuIGRhdGUgPT0gbnVsbCA/IG51bGwgOiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSArIHRpbWV6b25lT2Zmc2V0TXMpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydERhdGVTdHJpbmdzVG9EYXRlcyhpbnB1dDogYW55KTogYW55IHtcbiAgICBjb25zdCByZWdleElzbzg2MDEgPVxuICAgICAgL15cXGR7NH0tXFxkXFxkLVxcZFxcZFRcXGRcXGQ6XFxkXFxkOlxcZFxcZChcXC5cXGQrKT8oKFsrLV1cXGRcXGQ6XFxkXFxkKXxaKT8kL2k7XG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycgJiYgcmVnZXhJc284NjAxLnRlc3QoaW5wdXQpKSB7XG4gICAgICByZXR1cm4gRGF0ZVV0aWwuY29udmVydFN0cmluZ1RvTG9jYWxEYXRlKGlucHV0KTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ29iamVjdCcgfHwgIWlucHV0KSB7XG4gICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfVxuICAgIGxldCByZXM6IGFueSB8IGFueVtdO1xuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICByZXMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzID0ge307XG4gICAgfVxuICAgIHJldHVybiBEYXRlVXRpbC5maWxsQ29udmVydERhdGVTdHJpbmdzVG9EYXRlcyhyZXMsIGlucHV0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydERhdGVzKGlucHV0OiBhbnkgfCBhbnlbXSk6IGFueSB8IGFueVtdIHtcbiAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnb2JqZWN0JyB8fCAhaW5wdXQpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgcmV0dXJuIERhdGVVdGlsLmNvbnZlcnRVVEMyRGF0ZUxvY2FsKGlucHV0KTtcbiAgICB9XG4gICAgbGV0IHJlczogYW55IHwgYW55W107XG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIHJlcyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXMgPSB7fTtcbiAgICB9XG4gICAgcmV0dXJuIERhdGVVdGlsLmZpbGxDb252ZXJ0RGF0ZXMocmVzLCBpbnB1dCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE1vbnRoRGF5c0NvdW50KGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSArIDEsIDApLmdldERhdGUoKTtcbiAgfVxuXG4gIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQvNC10YHRj9GG0LXQsiDQvNC10LbQtNGDINC00LLRg9C80Y8g0LTQsNGC0LDQvNC4XG4gIHB1YmxpYyBzdGF0aWMgZ2V0UmFuZ2VPZk1vbnRocyhzdGFydDogRGF0ZSwgZW5kOiBEYXRlKTogRGF0ZVtdIHtcbiAgICBpZiAoc3RhcnQgPiBlbmQgfHwgIXN0YXJ0IHx8ICFlbmQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCByZXNEYXRlczogRGF0ZVtdID0gW107XG4gICAgbGV0IGkgPSAwO1xuICAgIGxldCBkYXRlVG1wID0gbmV3IERhdGUoc3RhcnQuZ2V0RnVsbFllYXIoKSwgc3RhcnQuZ2V0TW9udGgoKSArIGksIDEpO1xuICAgIHdoaWxlIChlbmQgPj0gZGF0ZVRtcCkge1xuICAgICAgcmVzRGF0ZXMucHVzaChkYXRlVG1wKTtcbiAgICAgIGkrKztcbiAgICAgIGRhdGVUbXAgPSBuZXcgRGF0ZShzdGFydC5nZXRGdWxsWWVhcigpLCBzdGFydC5nZXRNb250aCgpICsgaSwgMSk7XG4gICAgfVxuICAgIHJldHVybiByZXNEYXRlcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGVUb01vbnRoKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICBjb25zdCByZXMgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSwgMCwgMCwgMCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGVUb0RheShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzID0gbmV3IERhdGUoXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgIDAsXG4gICAgICAwLFxuICAgICAgMFxuICAgICk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGVUb0hvdXIoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IHJlcyA9IG5ldyBEYXRlKFxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgZGF0ZS5nZXREYXRlKCksXG4gICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAwLFxuICAgICAgMFxuICAgICk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9JU09TdHJpbmcoZGF0ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgbmV3IERhdGUoZGF0ZSAtIG5ldyBEYXRlKCkuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKVxuICAgICAgICAudG9JU09TdHJpbmcoKVxuICAgICAgICAuc2xpY2UoMCwgLTUpICsgJ1onXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZERhdGUoZGF0ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBmaWxsQ29udmVydERhdGVzKHJlc3VsdDogYW55LCBpbnB1dDogYW55KTogYW55IHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBpbnB1dCkge1xuICAgICAgaWYgKCFpbnB1dC5oYXNPd25Qcm9wZXJ0eSB8fCAhaW5wdXQuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpbnB1dC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IGlucHV0W2tleV07XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdmFsdWUgPSBEYXRlVXRpbC5jb252ZXJ0VVRDMkRhdGVMb2NhbCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gRGF0ZVV0aWwuY29udmVydERhdGVzKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBmaWxsQ29udmVydERhdGVTdHJpbmdzVG9EYXRlcyhyZXN1bHQ6IGFueSwgaW5wdXQ6IGFueSk6IGFueSB7XG4gICAgY29uc3QgcmVnZXhJc284NjAxID1cbiAgICAgIC9eXFxkezR9LVxcZFxcZC1cXGRcXGRUXFxkXFxkOlxcZFxcZDpcXGRcXGQoXFwuXFxkKyk/KChbKy1dXFxkXFxkOlxcZFxcZCl8Wj8pPyQvaTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBpbnB1dCkge1xuICAgICAgaWYgKCFpbnB1dC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dFtrZXldO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgcmVnZXhJc284NjAxLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gRGF0ZVV0aWwuY29udmVydFN0cmluZ1RvTG9jYWxEYXRlKHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXN1bHRba2V5XSA9IERhdGVVdGlsLmNvbnZlcnREYXRlU3RyaW5nc1RvRGF0ZXModmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNvbnZlcnRTdHJpbmdUb0xvY2FsRGF0ZShkYXRlU3RyaW5nOiBzdHJpbmcpOiBEYXRlIHwgbnVsbCB7XG4gICAgY29uc3QgbWlsbGlzZWNvbmRzID0gRGF0ZS5wYXJzZShkYXRlU3RyaW5nKTtcbiAgICBpZiAoIWlzTmFOKG1pbGxpc2Vjb25kcykpIHtcbiAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUobWlsbGlzZWNvbmRzKTtcbiAgICAgIHJldHVybiBEYXRlVXRpbC5jb252ZXJ0RGF0ZUxvY2FsMlVUQyhkdCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWwvZGF0ZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxNQUFNLE9BQU8sUUFBUTtJQUNuQjs7T0FFRztJQUVJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBVSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUU7WUFDaEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFFcEMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDaEMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBRUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFVLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDeEMsSUFBSSxJQUFJLElBQUksSUFBSSxZQUFZLElBQUksRUFBRTtZQUNoQyxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVwQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQVc7UUFDbkMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxLQUFL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LEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEMsT0FBTyxRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDMUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cHJlcGVuZFplcm99IGZyb20gJy4uL3BpcGUvdXRpbC9udW1iZXItaGVscGVyJztcblxuZXhwb3J0IGNsYXNzIERhdGVVdGlsIHtcbiAgLyoqXG4gICAqINCS0YvRh9C10YHRgtGMIG4t0LTQvdC10LlcbiAgICovXG5cbiAgcHVibGljIHN0YXRpYyBzdWJ0cmFjdERheXMoZGF0ZTogRGF0ZSwgZGF5cyA9IDApOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKGRhdGUgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpO1xuXG4gICAgICBkdC5zZXREYXRlKGR0LmdldERhdGUoKSAtIGRheXMpO1xuICAgICAgcmV0dXJuIGR0O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqINCU0L7QsdCw0LLQuNGC0Ywgbi3QtNC90LXQuVxuICAgKi9cblxuICBwdWJsaWMgc3RhdGljIGFkZERheXMoZGF0ZTogRGF0ZSwgZGF5cyA9IDApOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKGRhdGUgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpO1xuXG4gICAgICBkdC5zZXREYXRlKGR0LmdldERhdGUoKSArIGRheXMpO1xuICAgICAgcmV0dXJuIGR0O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqINCf0L7Qu9GD0YfQuNGC0Ywg0LTQsNGC0YMg0LjQtyDRgdGC0YDQvtC60LhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2VTdHJpbmcoZGF0OiBzdHJpbmcpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKCFkYXQgfHwgZGF0Lmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnRzID0gZGF0LnNwbGl0KCcgJyk7XG4gICAgY29uc3QgZHRQYXJ0ID0gcGFydHNbMF0uc3BsaXQoJy4nKTtcbiAgICBjb25zdCB0UGFydCA9IHBhcnRzWzFdPy5zcGxpdCgnOicpID8/IFsnMCcsICcwJywgJzAnXTtcbiAgICBjb25zdCBwYXJzZWREYXRlID0gbmV3IERhdGUoXG4gICAgICBwYXJzZUludChkdFBhcnRbMl0sIDEwKSxcbiAgICAgIHBhcnNlSW50KGR0UGFydFsxXSwgMTApIC0gMSxcbiAgICAgIHBhcnNlSW50KGR0UGFydFswXSwgMTApLFxuICAgICAgcGFyc2VJbnQodFBhcnRbMF0sIDEwKSxcbiAgICAgIHBhcnNlSW50KHRQYXJ0WzFdLCAxMCksXG4gICAgICBwYXJzZUludCh0UGFydFsyXSwgMTApXG4gICAgKTtcbiAgICBpZiAoaXNOYU4ocGFyc2VkRGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlZERhdGU7XG4gIH1cblxuICAvKipcbiAgICog0J/RgNC40LLQtdGB0YLQuCDQtNCw0YLRgyDQuiDRgdGC0YDQvtC60LVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdG9TdHJpbmcoZGF0OiBEYXRlKTogc3RyaW5nIHtcbiAgICBpZiAoIWRhdCB8fCAhKGRhdCBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IG1vbnRoID0gZGF0LmdldE1vbnRoKCkgKyAxO1xuICAgIHJldHVybiBgJHtwcmVwZW5kWmVybyhkYXQuZ2V0RGF0ZSgpLCAyKX0uXG4gICAgJHtwcmVwZW5kWmVybyhtb250aCwgMil9LlxuICAgICR7ZGF0LmdldEZ1bGxZZWFyKCl9XG4gICAgJHtwcmVwZW5kWmVybyhkYXQuZ2V0SG91cnMoKSwgMil9OlxuICAgICR7cHJlcGVuZFplcm8oZGF0LmdldE1pbnV0ZXMoKSwgMil9OlxuICAgICR7cHJlcGVuZFplcm8oZGF0LmdldFNlY29uZHMoKSwgMil9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDQn9C+0LTQs9C+0YLQvtCy0LrQsCDQtNCw0YLRiyDQuiDQvtGC0L/RgNCw0LLQutC1INC90LAg0YHQtdGA0LLQtdGALCDRh9GC0L7QsdGLINC90LXQsdGL0LvQviDRgdC80LXRidC10L3QuNGPINGH0LDRgdC+0LJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFVUQzJEYXRlTG9jYWwoZGF0ZT86IERhdGUpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKGRhdGUgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0TXM6IG51bWJlciA9XG4gICAgICAgIG5ldyBEYXRlKFxuICAgICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgICAgZGF0ZS5nZXREYXRlKClcbiAgICAgICAgKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSB0aW1lem9uZU9mZnNldE1zKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICog0J/QvtC00LPQvtGC0L7QstC60LAg0LTQsNGC0Ysg0Log0L7RgtC/0YDQsNCy0LrQtSDQvdCwINGB0LXRgNCy0LXRgCwg0YfRgtC+0LHRiyDQvdC10LHRi9C70L4g0YHQvNC10YnQtdC90LjRjyDRh9Cw0YHQvtCyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNvbnZlcnREYXRlTG9jYWwyVVRDKGRhdGU/OiBEYXRlKTogRGF0ZSB8IG51bGwge1xuICAgIGlmIChkYXRlICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBjb25zdCB0aW1lem9uZU9mZnNldE1zOiBudW1iZXIgPVxuICAgICAgICBuZXcgRGF0ZShcbiAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICAgIGRhdGUuZ2V0RGF0ZSgpXG4gICAgICAgICkuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwO1xuICAgICAgcmV0dXJuIGRhdGUgPT0gbnVsbCA/IG51bGwgOiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSArIHRpbWV6b25lT2Zmc2V0TXMpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydERhdGVTdHJpbmdzVG9EYXRlcyhpbnB1dDogYW55KTogYW55IHtcbiAgICBjb25zdCByZWdleElzbzg2MDEgPVxuICAgICAgL15cXGR7NH0tXFxkXFxkLVxcZFxcZFRcXGRcXGQ6XFxkXFxkOlxcZFxcZChcXC5cXGQrKT8oKFsrLV1cXGRcXGQ6XFxkXFxkKXxaKT8kL2k7XG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycgJiYgcmVnZXhJc284NjAxLnRlc3QoaW5wdXQpKSB7XG4gICAgICByZXR1cm4gRGF0ZVV0aWwuY29udmVydFN0cmluZ1RvTG9jYWxEYXRlKGlucHV0KTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ29iamVjdCcgfHwgIWlucHV0KSB7XG4gICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfVxuICAgIGxldCByZXM6IGFueSB8IGFueVtdO1xuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICByZXMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzID0ge307XG4gICAgfVxuICAgIHJldHVybiBEYXRlVXRpbC5maWxsQ29udmVydERhdGVTdHJpbmdzVG9EYXRlcyhyZXMsIGlucHV0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydERhdGVzKGlucHV0OiBhbnkgfCBhbnlbXSk6IGFueSB8IGFueVtdIHtcbiAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnb2JqZWN0JyB8fCAhaW5wdXQpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgcmV0dXJuIERhdGVVdGlsLmNvbnZlcnRVVEMyRGF0ZUxvY2FsKGlucHV0KTtcbiAgICB9XG4gICAgbGV0IHJlczogYW55IHwgYW55W107XG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIHJlcyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXMgPSB7fTtcbiAgICB9XG4gICAgcmV0dXJuIERhdGVVdGlsLmZpbGxDb252ZXJ0RGF0ZXMocmVzLCBpbnB1dCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE1vbnRoRGF5c0NvdW50KGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSArIDEsIDApLmdldERhdGUoKTtcbiAgfVxuXG4gIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQvNC10YHRj9GG0LXQsiDQvNC10LbQtNGDINC00LLRg9C80Y8g0LTQsNGC0LDQvNC4XG4gIHB1YmxpYyBzdGF0aWMgZ2V0UmFuZ2VPZk1vbnRocyhzdGFydDogRGF0ZSwgZW5kOiBEYXRlKTogRGF0ZVtdIHtcbiAgICBpZiAoc3RhcnQgPiBlbmQgfHwgIXN0YXJ0IHx8ICFlbmQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCByZXNEYXRlczogRGF0ZVtdID0gW107XG4gICAgbGV0IGkgPSAwO1xuICAgIGxldCBkYXRlVG1wID0gbmV3IERhdGUoc3RhcnQuZ2V0RnVsbFllYXIoKSwgc3RhcnQuZ2V0TW9udGgoKSArIGksIDEpO1xuICAgIHdoaWxlIChlbmQgPj0gZGF0ZVRtcCkge1xuICAgICAgcmVzRGF0ZXMucHVzaChkYXRlVG1wKTtcbiAgICAgIGkrKztcbiAgICAgIGRhdGVUbXAgPSBuZXcgRGF0ZShzdGFydC5nZXRGdWxsWWVhcigpLCBzdGFydC5nZXRNb250aCgpICsgaSwgMSk7XG4gICAgfVxuICAgIHJldHVybiByZXNEYXRlcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGVUb01vbnRoKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICBjb25zdCByZXMgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSwgMCwgMCwgMCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGVUb0RheShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzID0gbmV3IERhdGUoXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgIDAsXG4gICAgICAwLFxuICAgICAgMFxuICAgICk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGVUb0hvdXIoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IHJlcyA9IG5ldyBEYXRlKFxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgZGF0ZS5nZXREYXRlKCksXG4gICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAwLFxuICAgICAgMFxuICAgICk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9JU09TdHJpbmcoZGF0ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgbmV3IERhdGUoZGF0ZSAtIG5ldyBEYXRlKCkuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKVxuICAgICAgICAudG9JU09TdHJpbmcoKVxuICAgICAgICAuc2xpY2UoMCwgLTUpICsgJ1onXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZERhdGUoZGF0ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG1pbGxpc2Vjb25kVG9IdW1hbkZvcm1hdChtaWxsaVNlY29uZHM6IG51bWJlciwgbWF4VmFsdWUgPSA1MDAwLCBzaG93RGF5cyA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICBjb25zdCBuZWdhdGl2ZSA9IG1pbGxpU2Vjb25kcyA8IDA7XG4gICAgaWYgKG5lZ2F0aXZlKSB7XG4gICAgICBtaWxsaVNlY29uZHMgPSAtbWlsbGlTZWNvbmRzO1xuICAgIH1cbiAgICBsZXQgZDtcbiAgICBpZiAoc2hvd0RheXMpIHtcbiAgICAgIGQgPSBNYXRoLnRydW5jKG1pbGxpU2Vjb25kcyAvICg2MDAwMCAqIDYwICogMjQpKTtcbiAgICAgIG1pbGxpU2Vjb25kcyA9IG1pbGxpU2Vjb25kcyAtIDYwMDAwICogNjAgKiAyNCAqIGQ7XG4gICAgfVxuICAgIGNvbnN0IGggPSBNYXRoLnRydW5jKG1pbGxpU2Vjb25kcyAvICg2MDAwMCAqIDYwKSk7XG4gICAgbWlsbGlTZWNvbmRzID0gbWlsbGlTZWNvbmRzIC0gNjAwMDAgKiA2MCAqIGg7XG4gICAgY29uc3QgbSA9IE1hdGgudHJ1bmMobWlsbGlTZWNvbmRzIC8gNjAwMDApO1xuICAgIG1pbGxpU2Vjb25kcyA9IG1pbGxpU2Vjb25kcyAtIDYwMDAwICogbTtcbiAgICBjb25zdCBzID0gTWF0aC50cnVuYyhtaWxsaVNlY29uZHMgLyAxMDAwKTtcbiAgICBtaWxsaVNlY29uZHMgPSBtaWxsaVNlY29uZHMgLSAxMDAwICogcztcbiAgICBjb25zdCBmcmFjID0gbWlsbGlTZWNvbmRzO1xuICAgIGxldCByZXN1bHQgPSBtID8gbSArICcg0LwgJyA6ICcnOyAvLyBzdGFydCB3aXRoIG1pbnV0ZXNcbiAgICBpZiAobWF4VmFsdWUgPCA2MDAwMCAqIDYwKSB7XG4gICAgICBpZiAocykge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBzICsgJyDRgSAnOyAvLyBhZGQgc2Vjb25kcyB2YWx1ZVxuICAgICAgfVxuXG4gICAgICBpZihzID09PSAwICYmICFtKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCArICcwIGMnXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChtYXhWYWx1ZSA8IDUwMDApIHtcbiAgICAgIHJlc3VsdCA9IGZyYWMgPyByZXN1bHQgKyBmcmFjICsgJyDQvNGBICcgOiByZXN1bHQ7XG4gICAgfVxuXG4gICAgaWYgKGgpIHtcbiAgICAgIHJlc3VsdCA9IGggKyAnINGHICcgKyByZXN1bHQ7XG4gICAgfVxuICAgIGlmIChkKSB7XG4gICAgICByZXN1bHQgPSBkICsgJ9C0ICcgKyByZXN1bHQ7XG4gICAgfVxuICAgIGlmIChuZWdhdGl2ZSkge1xuICAgICAgcmVzdWx0ID0gJy0nICsgcmVzdWx0O1xuICAgIH1cblxuXG5cbiAgICByZXR1cm4gcmVzdWx0LnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbGxDb252ZXJ0RGF0ZXMocmVzdWx0OiBhbnksIGlucHV0OiBhbnkpOiBhbnkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGlucHV0KSB7XG4gICAgICBpZiAoIWlucHV0Lmhhc093blByb3BlcnR5IHx8ICFpbnB1dC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKGlucHV0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gaW5wdXRba2V5XTtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IERhdGVVdGlsLmNvbnZlcnRVVEMyRGF0ZUxvY2FsKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBEYXRlVXRpbC5jb252ZXJ0RGF0ZXModmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbGxDb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKHJlc3VsdDogYW55LCBpbnB1dDogYW55KTogYW55IHtcbiAgICBjb25zdCByZWdleElzbzg2MDEgPVxuICAgICAgL15cXGR7NH0tXFxkXFxkLVxcZFxcZFRcXGRcXGQ6XFxkXFxkOlxcZFxcZChcXC5cXGQrKT8oKFsrLV1cXGRcXGQ6XFxkXFxkKXxaPyk/JC9pO1xuICAgIGZvciAoY29uc3Qga2V5IGluIGlucHV0KSB7XG4gICAgICBpZiAoIWlucHV0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCB2YWx1ZSA9IGlucHV0W2tleV07XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiByZWdleElzbzg2MDEudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBEYXRlVXRpbC5jb252ZXJ0U3RyaW5nVG9Mb2NhbERhdGUodmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gRGF0ZVV0aWwuY29udmVydERhdGVTdHJpbmdzVG9EYXRlcyh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY29udmVydFN0cmluZ1RvTG9jYWxEYXRlKGRhdGVTdHJpbmc6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcbiAgICBjb25zdCBtaWxsaXNlY29uZHMgPSBEYXRlLnBhcnNlKGRhdGVTdHJpbmcpO1xuICAgIGlmICghaXNOYU4obWlsbGlzZWNvbmRzKSkge1xuICAgICAgY29uc3QgZHQgPSBuZXcgRGF0ZShtaWxsaXNlY29uZHMpO1xuICAgICAgcmV0dXJuIERhdGVVdGlsLmNvbnZlcnREYXRlTG9jYWwyVVRDKGR0KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -17,6 +17,12 @@ export class FormsUtil {
17
17
  return (formGroup.controls[controlName]?.invalid &&
18
18
  formGroup.controls[controlName]?.dirty);
19
19
  }
20
+ static getControlErrors(formGroup, controlName) {
21
+ if (FormsUtil.controlIsInvalid(formGroup, controlName)) {
22
+ return Object.keys(formGroup.controls[controlName]?.errors);
23
+ }
24
+ return [];
25
+ }
20
26
  static matchValuesValidator(matchTo) {
21
27
  return (control) => !!control.parent &&
22
28
  !!control.parent.value &&
@@ -58,4 +64,4 @@ export class FormsUtil {
58
64
  return validators;
59
65
  }
60
66
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zvcm1zLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBRVQsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXRELE1BQU0sT0FBTyxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUFvQjtRQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksT0FBTyxZQUFZLFdBQVcsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDekM7aUJBQU0sSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO2dCQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBb0IsRUFBRSxXQUFtQjtRQUMvRCxPQUFPLENBQ0wsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPO1lBQ3hDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FDekIsT0FBZTtRQUVmLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFLENBQzNELENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUNoQixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSztZQUN0RCxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FDZixLQUFjO1FBRWQsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUUsQ0FDM0QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2hCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDdEIsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJO1lBQ3JCLEtBQUs7WUFDSCxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQXNCLEVBQUUsUUFBYTtRQUM5RCxNQUFNLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBbUIsRUFBRSxFQUFFO1lBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUM3QjtnQkFDRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUNuRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUTthQUMzQixFQUNELFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQ2hDLENBQUM7WUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQW1CO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDbkIsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO1lBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUNsRDtRQUNELElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7WUFDM0IsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uL2NvbXBvbmVudC90YWJsZS9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgQXJyYXlVdGlsIH0gZnJvbSAnLi4vY29tbW9uL3V0aWwvYXJyYXktdXRpbCc7XG5cbmV4cG9ydCBjbGFzcyBGb3Jtc1V0aWwge1xuICBzdGF0aWMgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGNvbnRyb2xJc0ludmFsaWQoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8uaW52YWxpZCAmJlxuICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8uZGlydHlcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIG1hdGNoVmFsdWVzVmFsaWRhdG9yKFxuICAgIG1hdGNoVG86IHN0cmluZ1xuICApOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PlxuICAgICAgISFjb250cm9sLnBhcmVudCAmJlxuICAgICAgISFjb250cm9sLnBhcmVudC52YWx1ZSAmJlxuICAgICAgY29udHJvbC52YWx1ZSA9PT0gY29udHJvbC5wYXJlbnQuY29udHJvbHNbbWF0Y2hUb10udmFsdWVcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogeyBpc01hdGNoaW5nOiBmYWxzZSB9O1xuICB9XG5cbiAgc3RhdGljIHJlcXVpcmVkSWYoXG4gICAgdmFsdWU6IGJvb2xlYW5cbiAgKTogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICAgICEhY29udHJvbC5wYXJlbnQgJiZcbiAgICAgICEhY29udHJvbC5wYXJlbnQudmFsdWUgJiZcbiAgICAgIGNvbnRyb2wudmFsdWUgIT0gbnVsbCAmJlxuICAgICAgdmFsdWVcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogeyBpc01hdGNoaW5nOiBmYWxzZSB9O1xuICB9XG5cbiAgc3RhdGljIGluaXRGb3JtRnJvbUNvbHVtbnMoY29sdW1uczogVGFibGVDb2x1bW5bXSwgZGF0YUl0ZW06IGFueSkge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICBjb25zdCBmbGF0ID0gQXJyYXlVdGlsLmZsYXR0ZW4oY29sdW1ucywgJ2NvbHVtbnMnKTtcbiAgICBmbGF0LmZvckVhY2goKGNvbHVtbjogVGFibGVDb2x1bW4pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogZGF0YUl0ZW0gPyBkYXRhSXRlbVtjb2x1bW4ubmFtZV0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgZGlzYWJsZWQ6ICFjb2x1bW4uZWRpdGFibGUsXG4gICAgICAgIH0sXG4gICAgICAgIEZvcm1zVXRpbC5nZXRWYWxpZGF0b3JzKGNvbHVtbilcbiAgICAgICk7XG4gICAgICBmb3JtLnJlZ2lzdGVyQ29udHJvbChjb2x1bW4ubmFtZSwgY29udHJvbCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBzdGF0aWMgZ2V0VmFsaWRhdG9ycyhjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuICAgIGlmIChjb2x1bW4ucmVxdWlyZWQpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5taW5WYWx1ZSAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oY29sdW1uLm1pblZhbHVlKSk7XG4gICAgfVxuICAgIGlmIChjb2x1bW4ubWF4VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGNvbHVtbi5tYXhWYWx1ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxufVxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zvcm1zLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBRVQsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE1BQU0sT0FBTyxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUFvQjtRQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksT0FBTyxZQUFZLFdBQVcsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7YUFDdkM7aUJBQU0sSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO2dCQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBb0IsRUFBRSxXQUFtQjtRQUMvRCxPQUFPLENBQ0wsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPO1lBQ3hDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFvQixFQUFFLFdBQW1CO1FBQy9ELElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRTtZQUN0RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM3RDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FDekIsT0FBZTtRQUVmLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFLENBQzNELENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUNoQixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSztZQUN0RCxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FDZixLQUFjO1FBRWQsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUUsQ0FDM0QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2hCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDdEIsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJO1lBQ3JCLEtBQUs7WUFDSCxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQXNCLEVBQUUsUUFBYTtRQUM5RCxNQUFNLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBbUIsRUFBRSxFQUFFO1lBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUM3QjtnQkFDRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUNuRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUTthQUMzQixFQUNELFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQ2hDLENBQUM7WUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQW1CO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDbkIsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO1lBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUNsRDtRQUNELElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7WUFDM0IsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RhYmxlQ29sdW1ufSBmcm9tICcuLi9jb21wb25lbnQvdGFibGUvY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7QXJyYXlVdGlsfSBmcm9tICcuLi9jb21tb24vdXRpbC9hcnJheS11dGlsJztcblxuZXhwb3J0IGNsYXNzIEZvcm1zVXRpbCB7XG4gIHN0YXRpYyB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCh7b25seVNlbGY6IHRydWV9KTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7b25seVNlbGY6IHRydWV9KTtcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBjb250cm9sSXNJbnZhbGlkKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb250cm9sTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV0/LmludmFsaWQgJiZcbiAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV0/LmRpcnR5XG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb250cm9sRXJyb3JzKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb250cm9sTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGlmIChGb3Jtc1V0aWwuY29udHJvbElzSW52YWxpZChmb3JtR3JvdXAsIGNvbnRyb2xOYW1lKSkge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV0/LmVycm9ycyk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHN0YXRpYyBtYXRjaFZhbHVlc1ZhbGlkYXRvcihcbiAgICBtYXRjaFRvOiBzdHJpbmdcbiAgKTogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICAgICEhY29udHJvbC5wYXJlbnQgJiZcbiAgICAgICEhY29udHJvbC5wYXJlbnQudmFsdWUgJiZcbiAgICAgIGNvbnRyb2wudmFsdWUgPT09IGNvbnRyb2wucGFyZW50LmNvbnRyb2xzW21hdGNoVG9dLnZhbHVlXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtpc01hdGNoaW5nOiBmYWxzZX07XG4gIH1cblxuICBzdGF0aWMgcmVxdWlyZWRJZihcbiAgICB2YWx1ZTogYm9vbGVhblxuICApOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PlxuICAgICAgISFjb250cm9sLnBhcmVudCAmJlxuICAgICAgISFjb250cm9sLnBhcmVudC52YWx1ZSAmJlxuICAgICAgY29udHJvbC52YWx1ZSAhPSBudWxsICYmXG4gICAgICB2YWx1ZVxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7aXNNYXRjaGluZzogZmFsc2V9O1xuICB9XG5cbiAgc3RhdGljIGluaXRGb3JtRnJvbUNvbHVtbnMoY29sdW1uczogVGFibGVDb2x1bW5bXSwgZGF0YUl0ZW06IGFueSkge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICBjb25zdCBmbGF0ID0gQXJyYXlVdGlsLmZsYXR0ZW4oY29sdW1ucywgJ2NvbHVtbnMnKTtcbiAgICBmbGF0LmZvckVhY2goKGNvbHVtbjogVGFibGVDb2x1bW4pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogZGF0YUl0ZW0gPyBkYXRhSXRlbVtjb2x1bW4ubmFtZV0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgZGlzYWJsZWQ6ICFjb2x1bW4uZWRpdGFibGUsXG4gICAgICAgIH0sXG4gICAgICAgIEZvcm1zVXRpbC5nZXRWYWxpZGF0b3JzKGNvbHVtbilcbiAgICAgICk7XG4gICAgICBmb3JtLnJlZ2lzdGVyQ29udHJvbChjb2x1bW4ubmFtZSwgY29udHJvbCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBzdGF0aWMgZ2V0VmFsaWRhdG9ycyhjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuICAgIGlmIChjb2x1bW4ucmVxdWlyZWQpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5taW5WYWx1ZSAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oY29sdW1uLm1pblZhbHVlKSk7XG4gICAgfVxuICAgIGlmIChjb2x1bW4ubWF4VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGNvbHVtbi5tYXhWYWx1ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxufVxuIl19