ngx-sfc-common 0.0.19 → 0.0.21

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 (92) 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/dots/dots.component.mjs +2 -2
  5. package/esm2020/lib/components/hamburger/menu/hamburger-menu.component.mjs +2 -2
  6. package/esm2020/lib/components/icon/icon.component.mjs +5 -1
  7. package/esm2020/lib/components/index.mjs +2 -1
  8. package/esm2020/lib/components/load-container/load-container.component.mjs +38 -19
  9. package/esm2020/lib/components/load-container/load-container.enum.mjs +6 -1
  10. package/esm2020/lib/components/load-container/models/load-container.model.mjs +1 -1
  11. package/esm2020/lib/components/load-container/models/load-more-parameters.model.mjs +1 -1
  12. package/esm2020/lib/components/load-container/models/load-more-predicate-parameters.model.mjs +2 -0
  13. package/esm2020/lib/components/load-container/models/load-more.model.mjs +1 -1
  14. package/esm2020/lib/components/load-container/service/load-more.service.mjs +4 -4
  15. package/esm2020/lib/components/load-more-button/load-more-button.component.mjs +2 -2
  16. package/esm2020/lib/components/loader/bounce/bounce-loader.component.mjs +2 -2
  17. package/esm2020/lib/components/loader/circle/circle-loader.component.mjs +2 -2
  18. package/esm2020/lib/components/modal/directive/click/modal-open-on-click.directive.mjs +6 -4
  19. package/esm2020/lib/components/modal/directive/open/modal-open.directive.mjs +5 -6
  20. package/esm2020/lib/components/modal/footer/default/default-modal-footer.component.mjs +24 -12
  21. package/esm2020/lib/components/modal/footer/default/default-modal-footer.model.mjs +1 -1
  22. package/esm2020/lib/components/modal/header/default/default-modal-header.component.mjs +5 -4
  23. package/esm2020/lib/components/modal/header/default/default-modal-header.model.mjs +1 -1
  24. package/esm2020/lib/components/modal/modal.component.mjs +15 -6
  25. package/esm2020/lib/components/modal/service/modal.event.mjs +2 -0
  26. package/esm2020/lib/components/modal/service/modal.service.mjs +14 -9
  27. package/esm2020/lib/components/pagination/pagination.component.mjs +2 -2
  28. package/esm2020/lib/components/sorting/sorting.component.mjs +2 -2
  29. package/esm2020/lib/components/toggle-switcher/toggle-switcher.component.mjs +2 -2
  30. package/esm2020/lib/constants/common.constants.mjs +2 -1
  31. package/esm2020/lib/constants/ui.constants.mjs +4 -1
  32. package/esm2020/lib/directives/if/if.directive.mjs +26 -0
  33. package/esm2020/lib/directives/index.mjs +2 -1
  34. package/esm2020/lib/directives/scroll-into-view/scroll-into-view.directive.mjs +18 -8
  35. package/esm2020/lib/directives/show-hide-element/show-hide-element.directive.mjs +1 -1
  36. package/esm2020/lib/enums/compare.enum.mjs +10 -0
  37. package/esm2020/lib/enums/index.mjs +2 -1
  38. package/esm2020/lib/models/class.model.mjs +2 -0
  39. package/esm2020/lib/models/index.mjs +2 -0
  40. package/esm2020/lib/ngx-sfc-common.module.mjs +6 -2
  41. package/esm2020/lib/utils/collections.utils.mjs +10 -1
  42. package/esm2020/lib/utils/common.utils.mjs +71 -2
  43. package/esm2020/lib/utils/date-time.utils.mjs +41 -1
  44. package/esm2020/lib/utils/file.utils.mjs +24 -1
  45. package/esm2020/lib/utils/index.mjs +5 -5
  46. package/fesm2015/ngx-sfc-common.mjs +469 -224
  47. package/fesm2015/ngx-sfc-common.mjs.map +1 -1
  48. package/fesm2020/ngx-sfc-common.mjs +465 -223
  49. package/fesm2020/ngx-sfc-common.mjs.map +1 -1
  50. package/lib/components/button/button.component.d.ts +4 -3
  51. package/lib/components/checkmark/checkmark.component.d.ts +1 -2
  52. package/lib/components/icon/icon.component.d.ts +2 -2
  53. package/lib/components/index.d.ts +2 -0
  54. package/lib/components/load-container/load-container.component.d.ts +3 -2
  55. package/lib/components/load-container/load-container.enum.d.ts +4 -0
  56. package/lib/components/load-container/models/load-container.model.d.ts +5 -2
  57. package/lib/components/load-container/models/load-more-parameters.model.d.ts +2 -1
  58. package/lib/components/load-container/models/load-more-predicate-parameters.model.d.ts +3 -0
  59. package/lib/components/load-container/models/load-more.model.d.ts +1 -0
  60. package/lib/components/load-container/service/load-more.service.d.ts +1 -1
  61. package/lib/components/modal/directive/open/modal-open.directive.d.ts +0 -1
  62. package/lib/components/modal/footer/default/default-modal-footer.component.d.ts +1 -1
  63. package/lib/components/modal/footer/default/default-modal-footer.model.d.ts +4 -2
  64. package/lib/components/modal/header/default/default-modal-header.component.d.ts +1 -1
  65. package/lib/components/modal/header/default/default-modal-header.model.d.ts +1 -1
  66. package/lib/components/modal/modal.component.d.ts +5 -3
  67. package/lib/components/modal/service/modal.event.d.ts +4 -0
  68. package/lib/components/modal/service/modal.service.d.ts +6 -5
  69. package/lib/constants/common.constants.d.ts +1 -0
  70. package/lib/constants/ui.constants.d.ts +3 -0
  71. package/lib/directives/if/if.directive.d.ts +11 -0
  72. package/lib/directives/index.d.ts +1 -0
  73. package/lib/directives/scroll-into-view/scroll-into-view.directive.d.ts +6 -2
  74. package/lib/enums/compare.enum.d.ts +7 -0
  75. package/lib/enums/index.d.ts +1 -0
  76. package/lib/models/class.model.d.ts +3 -0
  77. package/lib/models/index.d.ts +1 -0
  78. package/lib/ngx-sfc-common.module.d.ts +36 -35
  79. package/lib/utils/collections.utils.d.ts +7 -0
  80. package/lib/utils/common.utils.d.ts +7 -0
  81. package/lib/utils/date-time.utils.d.ts +25 -0
  82. package/lib/utils/file.utils.d.ts +13 -0
  83. package/lib/utils/index.d.ts +4 -4
  84. package/package.json +1 -1
  85. package/styles/_colors.scss +1 -0
  86. package/styles/_index.scss +2 -0
  87. package/styles/_mixins-delimeter.scss +21 -0
  88. package/styles/_mixins-scroll.scss +38 -0
  89. package/styles/_mixins.scss +10 -23
  90. package/styles/_variables.scss +5 -0
  91. package/styles/themes/_dark.scss +2 -2
  92. package/styles/themes/_default.scss +2 -2
@@ -88,10 +88,10 @@ export class PaginationComponent {
88
88
  }
89
89
  }
90
90
  PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PaginationComponent, deps: [{ token: i1.PaginationService }], target: i0.ɵɵFactoryTarget.Component });
91
- PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: PaginationComponent, selector: "sfc-pagination", inputs: { count: "count", full: "full", limits: "limits", data$: "data$" }, ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"vm.any\">\r\n <li [sfcShowHideElement]=\"vm.previousPage\" (click)=\"onPageClick(vm.previous)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\r\n </button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of vm.range\" (click)=\"onPageClick(page)\">\r\n <button [class.active]=\"vm.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\" (click)=\"onPageClick(vm.total)\">\r\n <button>{{vm.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"vm.nextPage\" (click)=\"onPageClick(vm.next)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\r\n </button>\r\n </li>\r\n </ul>\r\n <sfc-delimeter></sfc-delimeter>\r\n</div>", styles: [":host{width:100%;display:inline-block}:host .container{position:relative;text-align:center}:host .container ul{list-style:none;margin:0;padding:0;display:flex;justify-content:center;-webkit-user-select:none;user-select:none}:host .container ul li{display:block;float:left;padding:.31em}:host .container ul li:first-child{border:none}:host .container ul li button,:host .container ul li span{background:none;border:none;border-radius:50%;box-sizing:border-box;display:block;font-size:1em;height:2.5em;min-width:2.5em;line-height:2.5em;padding:0}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button,:host .container ul li span,:host-context(.sfc-default-theme) :host .container ul li span{color:#0009}:host-context(.sfc-dark-theme) :host .container ul li button,:host-context(.sfc-dark-theme) :host .container ul li span{color:#fff}:host .container ul li button{outline:none;position:relative;transition:all .17s linear}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button{color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button{color:#fff}:host .container ul li button:before{border-radius:50%;content:\"\";cursor:pointer;height:0;left:50%;opacity:0;position:absolute;transform:translate(-50%,-50%);transition:all .17s linear;top:50%;width:0}:host .container ul li button:before,:host-context(.sfc-default-theme) :host .container ul li button:before{background:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:before{background:#f5f7fa}:host .container ul li button:hover:not(.active),:host-context(.sfc-default-theme) :host .container ul li button:hover:not(.active){color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:hover:not(.active){color:#fff}:host .container ul li button:hover:not(.active):before{animation:hover-animation .51s linear forwards;width:2.5em;height:2.5em}:host .container ul li button.active{color:#545e61!important}:host .container ul li button.active,:host-context(.sfc-default-theme) :host .container ul li button.active{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container ul li button.active{background:#f5f7fa}@keyframes hover-animation{0%{opacity:1}to{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i4.ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: ["sfcShowHideElement", "delay"] }, { kind: "component", type: i5.DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
91
+ PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: PaginationComponent, selector: "sfc-pagination", inputs: { count: "count", full: "full", limits: "limits", data$: "data$" }, ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"vm.any\">\r\n <li [sfcShowHideElement]=\"vm.previousPage\" (click)=\"onPageClick(vm.previous)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\r\n </button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of vm.range\" (click)=\"onPageClick(page)\">\r\n <button [class.active]=\"vm.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\" (click)=\"onPageClick(vm.total)\">\r\n <button>{{vm.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"vm.nextPage\" (click)=\"onPageClick(vm.next)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\r\n </button>\r\n </li>\r\n </ul>\r\n <sfc-delimeter></sfc-delimeter>\r\n</div>", styles: [":host{width:100%;display:inline-block}:host .container{position:relative;text-align:center}:host .container ul{list-style:none;margin:0;padding:0;display:flex;justify-content:center;-webkit-user-select:none;user-select:none}:host .container ul li{display:block;float:left;padding:.31em}:host .container ul li:first-child{border:none}:host .container ul li button,:host .container ul li span{transition:color .5s ease;background:none;border:none;border-radius:50%;box-sizing:border-box;display:block;font-size:1em;height:2.5em;min-width:2.5em;line-height:2.5em;padding:0}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button,:host .container ul li span,:host-context(.sfc-default-theme) :host .container ul li span{color:#0009}:host-context(.sfc-dark-theme) :host .container ul li button,:host-context(.sfc-dark-theme) :host .container ul li span{color:#fff}:host .container ul li button{transition:color .5s ease;outline:none;position:relative;transition:all .17s linear}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button{color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button{color:#fff}:host .container ul li button:before{transition:background .5s ease;border-radius:50%;content:\"\";cursor:pointer;height:0;left:50%;opacity:0;position:absolute;transform:translate(-50%,-50%);transition:all .17s linear;top:50%;width:0}:host .container ul li button:before,:host-context(.sfc-default-theme) :host .container ul li button:before{background:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:before{background:#f5f7fa}:host .container ul li button:hover:not(.active){transition:color .5s ease}:host .container ul li button:hover:not(.active),:host-context(.sfc-default-theme) :host .container ul li button:hover:not(.active){color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:hover:not(.active){color:#fff}:host .container ul li button:hover:not(.active):before{animation:hover-animation .51s linear forwards;width:2.5em;height:2.5em}:host .container ul li button.active{transition:background .5s ease;color:#545e61!important}:host .container ul li button.active,:host-context(.sfc-default-theme) :host .container ul li button.active{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container ul li button.active{background:#f5f7fa}@keyframes hover-animation{0%{opacity:1}to{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i4.ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: ["sfcShowHideElement", "delay"] }, { kind: "component", type: i5.DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
92
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PaginationComponent, decorators: [{
93
93
  type: Component,
94
- args: [{ selector: 'sfc-pagination', template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"vm.any\">\r\n <li [sfcShowHideElement]=\"vm.previousPage\" (click)=\"onPageClick(vm.previous)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\r\n </button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of vm.range\" (click)=\"onPageClick(page)\">\r\n <button [class.active]=\"vm.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\" (click)=\"onPageClick(vm.total)\">\r\n <button>{{vm.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"vm.nextPage\" (click)=\"onPageClick(vm.next)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\r\n </button>\r\n </li>\r\n </ul>\r\n <sfc-delimeter></sfc-delimeter>\r\n</div>", styles: [":host{width:100%;display:inline-block}:host .container{position:relative;text-align:center}:host .container ul{list-style:none;margin:0;padding:0;display:flex;justify-content:center;-webkit-user-select:none;user-select:none}:host .container ul li{display:block;float:left;padding:.31em}:host .container ul li:first-child{border:none}:host .container ul li button,:host .container ul li span{background:none;border:none;border-radius:50%;box-sizing:border-box;display:block;font-size:1em;height:2.5em;min-width:2.5em;line-height:2.5em;padding:0}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button,:host .container ul li span,:host-context(.sfc-default-theme) :host .container ul li span{color:#0009}:host-context(.sfc-dark-theme) :host .container ul li button,:host-context(.sfc-dark-theme) :host .container ul li span{color:#fff}:host .container ul li button{outline:none;position:relative;transition:all .17s linear}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button{color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button{color:#fff}:host .container ul li button:before{border-radius:50%;content:\"\";cursor:pointer;height:0;left:50%;opacity:0;position:absolute;transform:translate(-50%,-50%);transition:all .17s linear;top:50%;width:0}:host .container ul li button:before,:host-context(.sfc-default-theme) :host .container ul li button:before{background:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:before{background:#f5f7fa}:host .container ul li button:hover:not(.active),:host-context(.sfc-default-theme) :host .container ul li button:hover:not(.active){color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:hover:not(.active){color:#fff}:host .container ul li button:hover:not(.active):before{animation:hover-animation .51s linear forwards;width:2.5em;height:2.5em}:host .container ul li button.active{color:#545e61!important}:host .container ul li button.active,:host-context(.sfc-default-theme) :host .container ul li button.active{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container ul li button.active{background:#f5f7fa}@keyframes hover-animation{0%{opacity:1}to{opacity:0}}\n"] }]
94
+ args: [{ selector: 'sfc-pagination', template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"vm.any\">\r\n <li [sfcShowHideElement]=\"vm.previousPage\" (click)=\"onPageClick(vm.previous)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\r\n </button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of vm.range\" (click)=\"onPageClick(page)\">\r\n <button [class.active]=\"vm.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\" (click)=\"onPageClick(vm.total)\">\r\n <button>{{vm.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"vm.nextPage\" (click)=\"onPageClick(vm.next)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\r\n </button>\r\n </li>\r\n </ul>\r\n <sfc-delimeter></sfc-delimeter>\r\n</div>", styles: [":host{width:100%;display:inline-block}:host .container{position:relative;text-align:center}:host .container ul{list-style:none;margin:0;padding:0;display:flex;justify-content:center;-webkit-user-select:none;user-select:none}:host .container ul li{display:block;float:left;padding:.31em}:host .container ul li:first-child{border:none}:host .container ul li button,:host .container ul li span{transition:color .5s ease;background:none;border:none;border-radius:50%;box-sizing:border-box;display:block;font-size:1em;height:2.5em;min-width:2.5em;line-height:2.5em;padding:0}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button,:host .container ul li span,:host-context(.sfc-default-theme) :host .container ul li span{color:#0009}:host-context(.sfc-dark-theme) :host .container ul li button,:host-context(.sfc-dark-theme) :host .container ul li span{color:#fff}:host .container ul li button{transition:color .5s ease;outline:none;position:relative;transition:all .17s linear}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button{color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button{color:#fff}:host .container ul li button:before{transition:background .5s ease;border-radius:50%;content:\"\";cursor:pointer;height:0;left:50%;opacity:0;position:absolute;transform:translate(-50%,-50%);transition:all .17s linear;top:50%;width:0}:host .container ul li button:before,:host-context(.sfc-default-theme) :host .container ul li button:before{background:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:before{background:#f5f7fa}:host .container ul li button:hover:not(.active){transition:color .5s ease}:host .container ul li button:hover:not(.active),:host-context(.sfc-default-theme) :host .container ul li button:hover:not(.active){color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:hover:not(.active){color:#fff}:host .container ul li button:hover:not(.active):before{animation:hover-animation .51s linear forwards;width:2.5em;height:2.5em}:host .container ul li button.active{transition:background .5s ease;color:#545e61!important}:host .container ul li button.active,:host-context(.sfc-default-theme) :host .container ul li button.active{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container ul li button.active{background:#f5f7fa}@keyframes hover-animation{0%{opacity:1}to{opacity:0}}\n"] }]
95
95
  }], ctorParameters: function () { return [{ type: i1.PaginationService }]; }, propDecorators: { count: [{
96
96
  type: Input
97
97
  }], full: [{
@@ -50,10 +50,10 @@ export class SortingComponent {
50
50
  }
51
51
  }
52
52
  SortingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SortingComponent, deps: [{ token: i1.SortingService }], target: i0.ɵɵFactoryTarget.Component });
53
- SortingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SortingComponent, selector: "sfc-sorting", inputs: { id: "id", model: "model" }, host: { listeners: { "click": "sort()" }, properties: { "class.enabled": "this.enabled", "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"enabled\" class=\"icons\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n </div>\r\n</div>", styles: [":host{cursor:default;text-overflow:ellipsis;overflow:hidden}:host.enabled{cursor:pointer}:host .container{display:flex;min-width:0}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container:hover{color:#ffce54}:host .container .content{display:flex;-webkit-user-select:none;user-select:none}:host .container .icons{margin:0 .31em;font-size:.7em;display:flex;align-items:center;transition:all .3s}:host.active .container{color:#ffce54}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
53
+ SortingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SortingComponent, selector: "sfc-sorting", inputs: { id: "id", model: "model" }, host: { listeners: { "click": "sort()" }, properties: { "class.enabled": "this.enabled", "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"enabled\" class=\"icons\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n </div>\r\n</div>", styles: [":host{cursor:default;text-overflow:ellipsis;overflow:hidden}:host.enabled{cursor:pointer}:host .container{display:flex;min-width:0;transition:color .5s ease}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container:hover{color:#ffce54}:host .container .content{display:flex;-webkit-user-select:none;user-select:none}:host .container .icons{margin:0 .31em;font-size:.7em;display:flex;align-items:center;transition:all .3s}:host.active .container{color:#ffce54}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SortingComponent, decorators: [{
55
55
  type: Component,
56
- args: [{ selector: 'sfc-sorting', template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"enabled\" class=\"icons\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n </div>\r\n</div>", styles: [":host{cursor:default;text-overflow:ellipsis;overflow:hidden}:host.enabled{cursor:pointer}:host .container{display:flex;min-width:0}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container:hover{color:#ffce54}:host .container .content{display:flex;-webkit-user-select:none;user-select:none}:host .container .icons{margin:0 .31em;font-size:.7em;display:flex;align-items:center;transition:all .3s}:host.active .container{color:#ffce54}\n"] }]
56
+ args: [{ selector: 'sfc-sorting', template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"enabled\" class=\"icons\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n </div>\r\n</div>", styles: [":host{cursor:default;text-overflow:ellipsis;overflow:hidden}:host.enabled{cursor:pointer}:host .container{display:flex;min-width:0;transition:color .5s ease}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container:hover{color:#ffce54}:host .container .content{display:flex;-webkit-user-select:none;user-select:none}:host .container .icons{margin:0 .31em;font-size:.7em;display:flex;align-items:center;transition:all .3s}:host.active .container{color:#ffce54}\n"] }]
57
57
  }], ctorParameters: function () { return [{ type: i1.SortingService }]; }, propDecorators: { id: [{
58
58
  type: Input
59
59
  }], model: [{
@@ -13,10 +13,10 @@ export class ToggleSwitcherComponent {
13
13
  }
14
14
  }
15
15
  ToggleSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToggleSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- ToggleSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ToggleSwitcherComponent, selector: "sfc-toggle-switcher", inputs: { active: "active", disabled: "disabled", leftModel: "leftModel", rightModel: "rightModel" }, host: { listeners: { "click": "onClick()" }, properties: { "class.active": "this.active", "class.disabled": "this.disabled" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"toggle\"></div>\r\n <div class=\"names\">\r\n <p class=\"left\">\r\n <fa-icon *ngIf=\"leftModel.icon\" [icon]=\"leftModel.icon\"></fa-icon>\r\n <span>{{leftModel.label}}</span>\r\n </p>\r\n <p class=\"right\">\r\n <fa-icon *ngIf=\"rightModel.icon\" [icon]=\"rightModel.icon\"></fa-icon>\r\n <span>{{rightModel.label}}</span>\r\n </p>\r\n </div>\r\n</div>", styles: [":host .container,:host .toggle{height:100%;border-radius:100px}:host .container{width:100%;background-color:#e6e9ed;color:#545e61;border-radius:100px;position:relative;cursor:pointer}:host .container .toggle{position:absolute;width:50%;background-color:#fff;box-shadow:0 .125em .5em #656d78;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}:host .container .names{font-size:90%;font-weight:bolder;width:100%;height:100%;position:relative;display:flex;justify-content:space-around;align-items:center;-webkit-user-select:none;user-select:none;overflow:hidden}:host .container .names p{font-size:90%;text-align:center;margin:0;padding:.5em 1em}:host .container .names p.right{opacity:.5}:host .container .names p fa-icon{margin-right:.25em}:host.active .container{background-color:#e6e9ed}:host.active .container .toggle{transform:translate(100%);background-color:#fff}:host.active .container .names{color:#545e61}:host.active .container .names .left{opacity:.5}:host.active .container .names .right{opacity:1}:host.disabled{pointer-events:none}:host.disabled .container,:host-context(.sfc-default-theme) :host.disabled .container{background-color:#f6f6f6}:host-context(.sfc-dark-theme) :host.disabled .container{background-color:#656d78}:host.disabled .container .toggle{box-shadow:none}:host.disabled .container .toggle,:host-context(.sfc-default-theme) :host.disabled .container .toggle{background-color:#e6e9ed}:host-context(.sfc-dark-theme) :host.disabled .container .toggle{background-color:#aab2bd}:host.disabled .container .names,:host-context(.sfc-default-theme) :host.disabled .container .names{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled .container .names{color:#e9e9e9}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
16
+ ToggleSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ToggleSwitcherComponent, selector: "sfc-toggle-switcher", inputs: { active: "active", disabled: "disabled", leftModel: "leftModel", rightModel: "rightModel" }, host: { listeners: { "click": "onClick()" }, properties: { "class.active": "this.active", "class.disabled": "this.disabled" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"toggle\"></div>\r\n <div class=\"names\">\r\n <p class=\"left\">\r\n <fa-icon *ngIf=\"leftModel.icon\" [icon]=\"leftModel.icon\"></fa-icon>\r\n <span>{{leftModel.label}}</span>\r\n </p>\r\n <p class=\"right\">\r\n <fa-icon *ngIf=\"rightModel.icon\" [icon]=\"rightModel.icon\"></fa-icon>\r\n <span>{{rightModel.label}}</span>\r\n </p>\r\n </div>\r\n</div>", styles: [":host .container,:host .toggle{height:100%;border-radius:100px}:host .container{width:100%;background-color:#e6e9ed;color:#545e61;border-radius:100px;position:relative;cursor:pointer}:host .container .toggle{position:absolute;width:50%;background-color:#fff;box-shadow:0 .125em .5em #656d78;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}:host .container .names{font-size:90%;font-weight:bolder;width:100%;height:100%;position:relative;display:flex;justify-content:space-around;align-items:center;-webkit-user-select:none;user-select:none;overflow:hidden}:host .container .names p{font-size:90%;text-align:center;margin:0;padding:.5em 1em}:host .container .names p.right{opacity:.5}:host.active .container{background-color:#e6e9ed}:host.active .container .toggle{transform:translate(100%);background-color:#fff}:host.active .container .names{color:#545e61}:host.active .container .names .left{opacity:.5}:host.active .container .names .right{opacity:1}:host.disabled{pointer-events:none}:host.disabled .container{transition:background-color .5s ease}:host.disabled .container,:host-context(.sfc-default-theme) :host.disabled .container{background-color:#f6f6f6}:host-context(.sfc-dark-theme) :host.disabled .container{background-color:#656d78}:host.disabled .container .toggle{transition:background-color .5s ease;box-shadow:none}:host.disabled .container .toggle,:host-context(.sfc-default-theme) :host.disabled .container .toggle{background-color:#e6e9ed}:host-context(.sfc-dark-theme) :host.disabled .container .toggle{background-color:#aab2bd}:host.disabled .container .names{transition:color .5s ease}:host.disabled .container .names,:host-context(.sfc-default-theme) :host.disabled .container .names{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled .container .names{color:#e9e9e9}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ToggleSwitcherComponent, decorators: [{
18
18
  type: Component,
19
- args: [{ selector: 'sfc-toggle-switcher', template: "<div class=\"container\">\r\n <div class=\"toggle\"></div>\r\n <div class=\"names\">\r\n <p class=\"left\">\r\n <fa-icon *ngIf=\"leftModel.icon\" [icon]=\"leftModel.icon\"></fa-icon>\r\n <span>{{leftModel.label}}</span>\r\n </p>\r\n <p class=\"right\">\r\n <fa-icon *ngIf=\"rightModel.icon\" [icon]=\"rightModel.icon\"></fa-icon>\r\n <span>{{rightModel.label}}</span>\r\n </p>\r\n </div>\r\n</div>", styles: [":host .container,:host .toggle{height:100%;border-radius:100px}:host .container{width:100%;background-color:#e6e9ed;color:#545e61;border-radius:100px;position:relative;cursor:pointer}:host .container .toggle{position:absolute;width:50%;background-color:#fff;box-shadow:0 .125em .5em #656d78;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}:host .container .names{font-size:90%;font-weight:bolder;width:100%;height:100%;position:relative;display:flex;justify-content:space-around;align-items:center;-webkit-user-select:none;user-select:none;overflow:hidden}:host .container .names p{font-size:90%;text-align:center;margin:0;padding:.5em 1em}:host .container .names p.right{opacity:.5}:host .container .names p fa-icon{margin-right:.25em}:host.active .container{background-color:#e6e9ed}:host.active .container .toggle{transform:translate(100%);background-color:#fff}:host.active .container .names{color:#545e61}:host.active .container .names .left{opacity:.5}:host.active .container .names .right{opacity:1}:host.disabled{pointer-events:none}:host.disabled .container,:host-context(.sfc-default-theme) :host.disabled .container{background-color:#f6f6f6}:host-context(.sfc-dark-theme) :host.disabled .container{background-color:#656d78}:host.disabled .container .toggle{box-shadow:none}:host.disabled .container .toggle,:host-context(.sfc-default-theme) :host.disabled .container .toggle{background-color:#e6e9ed}:host-context(.sfc-dark-theme) :host.disabled .container .toggle{background-color:#aab2bd}:host.disabled .container .names,:host-context(.sfc-default-theme) :host.disabled .container .names{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled .container .names{color:#e9e9e9}\n"] }]
19
+ args: [{ selector: 'sfc-toggle-switcher', template: "<div class=\"container\">\r\n <div class=\"toggle\"></div>\r\n <div class=\"names\">\r\n <p class=\"left\">\r\n <fa-icon *ngIf=\"leftModel.icon\" [icon]=\"leftModel.icon\"></fa-icon>\r\n <span>{{leftModel.label}}</span>\r\n </p>\r\n <p class=\"right\">\r\n <fa-icon *ngIf=\"rightModel.icon\" [icon]=\"rightModel.icon\"></fa-icon>\r\n <span>{{rightModel.label}}</span>\r\n </p>\r\n </div>\r\n</div>", styles: [":host .container,:host .toggle{height:100%;border-radius:100px}:host .container{width:100%;background-color:#e6e9ed;color:#545e61;border-radius:100px;position:relative;cursor:pointer}:host .container .toggle{position:absolute;width:50%;background-color:#fff;box-shadow:0 .125em .5em #656d78;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}:host .container .names{font-size:90%;font-weight:bolder;width:100%;height:100%;position:relative;display:flex;justify-content:space-around;align-items:center;-webkit-user-select:none;user-select:none;overflow:hidden}:host .container .names p{font-size:90%;text-align:center;margin:0;padding:.5em 1em}:host .container .names p.right{opacity:.5}:host.active .container{background-color:#e6e9ed}:host.active .container .toggle{transform:translate(100%);background-color:#fff}:host.active .container .names{color:#545e61}:host.active .container .names .left{opacity:.5}:host.active .container .names .right{opacity:1}:host.disabled{pointer-events:none}:host.disabled .container{transition:background-color .5s ease}:host.disabled .container,:host-context(.sfc-default-theme) :host.disabled .container{background-color:#f6f6f6}:host-context(.sfc-dark-theme) :host.disabled .container{background-color:#656d78}:host.disabled .container .toggle{transition:background-color .5s ease;box-shadow:none}:host.disabled .container .toggle,:host-context(.sfc-default-theme) :host.disabled .container .toggle{background-color:#e6e9ed}:host-context(.sfc-dark-theme) :host.disabled .container .toggle{background-color:#aab2bd}:host.disabled .container .names{transition:color .5s ease}:host.disabled .container .names,:host-context(.sfc-default-theme) :host.disabled .container .names{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled .container .names{color:#e9e9e9}\n"] }]
20
20
  }], ctorParameters: function () { return []; }, propDecorators: { active: [{
21
21
  type: Input
22
22
  }, {
@@ -5,4 +5,5 @@ CommonConstants.EMPTY_STRING = '';
5
5
  CommonConstants.MOUSE_BUTTON_LEFT = 0;
6
6
  CommonConstants.FULL_PERCENTAGE = 100;
7
7
  CommonConstants.COMMON_TEXT_DELIMETER = '/';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29uc3RhbnRzL2NvbW1vbi5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGVBQWU7O0FBQ2pCLCtCQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDckIsNEJBQVksR0FBRyxFQUFFLENBQUM7QUFDbEIsaUNBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLCtCQUFlLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLHFDQUFxQixHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb21tb25Db25zdGFudHMge1xyXG4gICAgc3RhdGljIE5PVF9GT1VORF9JTkRFWCA9IC0xO1xyXG4gICAgc3RhdGljIEVNUFRZX1NUUklORyA9ICcnO1xyXG4gICAgc3RhdGljIE1PVVNFX0JVVFRPTl9MRUZUID0gMDtcclxuICAgIHN0YXRpYyBGVUxMX1BFUkNFTlRBR0UgPSAxMDA7XHJcbiAgICBzdGF0aWMgQ09NTU9OX1RFWFRfREVMSU1FVEVSID0gJy8nO1xyXG59Il19
8
+ CommonConstants.PERCENTAGE_SYMBOL = '%';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29uc3RhbnRzL2NvbW1vbi5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGVBQWU7O0FBQ2pCLCtCQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDckIsNEJBQVksR0FBRyxFQUFFLENBQUM7QUFDbEIsaUNBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLCtCQUFlLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLHFDQUFxQixHQUFHLEdBQUcsQ0FBQztBQUM1QixpQ0FBaUIsR0FBRyxHQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ29tbW9uQ29uc3RhbnRzIHtcclxuICAgIHN0YXRpYyBOT1RfRk9VTkRfSU5ERVggPSAtMTtcclxuICAgIHN0YXRpYyBFTVBUWV9TVFJJTkcgPSAnJztcclxuICAgIHN0YXRpYyBNT1VTRV9CVVRUT05fTEVGVCA9IDA7XHJcbiAgICBzdGF0aWMgRlVMTF9QRVJDRU5UQUdFID0gMTAwO1xyXG4gICAgc3RhdGljIENPTU1PTl9URVhUX0RFTElNRVRFUiA9ICcvJztcclxuICAgIHN0YXRpYyBQRVJDRU5UQUdFX1NZTUJPTCA9ICclJztcclxufSJdfQ==
@@ -4,7 +4,10 @@ UIConstants.CSS_PIXELS = 'px';
4
4
  UIConstants.CSS_PERCENTAGE = '%';
5
5
  UIConstants.CSS_DEGREES = 'deg';
6
6
  UIConstants.CSS_EM = 'em';
7
+ UIConstants.CSS_CH = 'ch';
7
8
  UIConstants.CSS_INITIAL = 'initial';
9
+ UIConstants.CSS_INHERIT = 'inherit';
10
+ UIConstants.CSS_NONE = 'none';
8
11
  UIConstants.CSS_VISIBILITY_VISIBLE = 'visible';
9
12
  UIConstants.CSS_VISIBILITY_HIDDEN = 'hidden';
10
13
  UIConstants.CSS_WIDTH = 'width';
@@ -17,4 +20,4 @@ UIConstants.CSS_CLASS_FIXED = 'fixed';
17
20
  UIConstants.CSS_CLASS_BACKGROUND = 'background';
18
21
  UIConstants.CSS_CLASS_TOP = 'top';
19
22
  UIConstants.RGB_OPACITY_PLACEHOLDER = '{opacity}';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb25zdGFudHMvdWkuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXOztBQUNiLHNCQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ2xCLDBCQUFjLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLHVCQUFXLEdBQUcsS0FBSyxDQUFDO0FBQ3BCLGtCQUFNLEdBQUcsSUFBSSxDQUFDO0FBRWQsdUJBQVcsR0FBRyxTQUFTLENBQUM7QUFDeEIsa0NBQXNCLEdBQUcsU0FBUyxDQUFDO0FBQ25DLGlDQUFxQixHQUFHLFFBQVEsQ0FBQztBQUVqQyxxQkFBUyxHQUFHLE9BQU8sQ0FBQztBQUNwQixvQkFBUSxHQUFHLE1BQU0sQ0FBQztBQUNsQixxQkFBUyxHQUFHLE9BQU8sQ0FBQztBQUNwQixxQkFBUyxHQUFHLE9BQU8sQ0FBQztBQUNwQixtQkFBTyxHQUFHLEtBQUssQ0FBQztBQUNoQixzQkFBVSxHQUFHLFFBQVEsQ0FBQztBQUN0QiwyQkFBZSxHQUFHLE9BQU8sQ0FBQztBQUMxQixnQ0FBb0IsR0FBRyxZQUFZLENBQUM7QUFDcEMseUJBQWEsR0FBRyxLQUFLLENBQUM7QUFFdEIsbUNBQXVCLEdBQUcsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVJQ29uc3RhbnRzIHtcclxuICAgIHN0YXRpYyBDU1NfUElYRUxTID0gJ3B4JztcclxuICAgIHN0YXRpYyBDU1NfUEVSQ0VOVEFHRSA9ICclJztcclxuICAgIHN0YXRpYyBDU1NfREVHUkVFUyA9ICdkZWcnO1xyXG4gICAgc3RhdGljIENTU19FTSA9ICdlbSc7XHJcblxyXG4gICAgc3RhdGljIENTU19JTklUSUFMID0gJ2luaXRpYWwnO1xyXG4gICAgc3RhdGljIENTU19WSVNJQklMSVRZX1ZJU0lCTEUgPSAndmlzaWJsZSc7XHJcbiAgICBzdGF0aWMgQ1NTX1ZJU0lCSUxJVFlfSElEREVOID0gJ2hpZGRlbic7XHJcblxyXG4gICAgc3RhdGljIENTU19XSURUSCA9ICd3aWR0aCc7XHJcbiAgICBzdGF0aWMgQ1NTX0xFRlQgPSAnbGVmdCc7XHJcbiAgICBzdGF0aWMgQ1NTX1JJR0hUID0gJ3JpZ2h0JztcclxuICAgIHN0YXRpYyBDU1NfU1RBUlQgPSAnc3RhcnQnO1xyXG4gICAgc3RhdGljIENTU19FTkQgPSAnZW5kJztcclxuICAgIHN0YXRpYyBDU1NfQ0VOVEVSID0gJ2NlbnRlcic7XHJcbiAgICBzdGF0aWMgQ1NTX0NMQVNTX0ZJWEVEID0gJ2ZpeGVkJztcclxuICAgIHN0YXRpYyBDU1NfQ0xBU1NfQkFDS0dST1VORCA9ICdiYWNrZ3JvdW5kJztcclxuICAgIHN0YXRpYyBDU1NfQ0xBU1NfVE9QID0gJ3RvcCc7XHJcblxyXG4gICAgc3RhdGljIFJHQl9PUEFDSVRZX1BMQUNFSE9MREVSID0gJ3tvcGFjaXR5fSc7XHJcbn1cclxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb25zdGFudHMvdWkuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXOztBQUNiLHNCQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ2xCLDBCQUFjLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLHVCQUFXLEdBQUcsS0FBSyxDQUFDO0FBQ3BCLGtCQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ2Qsa0JBQU0sR0FBRyxJQUFJLENBQUM7QUFFZCx1QkFBVyxHQUFHLFNBQVMsQ0FBQztBQUN4Qix1QkFBVyxHQUFHLFNBQVMsQ0FBQztBQUN4QixvQkFBUSxHQUFHLE1BQU0sQ0FBQztBQUNsQixrQ0FBc0IsR0FBRyxTQUFTLENBQUM7QUFDbkMsaUNBQXFCLEdBQUcsUUFBUSxDQUFDO0FBRWpDLHFCQUFTLEdBQUcsT0FBTyxDQUFDO0FBQ3BCLG9CQUFRLEdBQUcsTUFBTSxDQUFDO0FBQ2xCLHFCQUFTLEdBQUcsT0FBTyxDQUFDO0FBQ3BCLHFCQUFTLEdBQUcsT0FBTyxDQUFDO0FBQ3BCLG1CQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ2hCLHNCQUFVLEdBQUcsUUFBUSxDQUFDO0FBQ3RCLDJCQUFlLEdBQUcsT0FBTyxDQUFDO0FBQzFCLGdDQUFvQixHQUFHLFlBQVksQ0FBQztBQUNwQyx5QkFBYSxHQUFHLEtBQUssQ0FBQztBQUV0QixtQ0FBdUIsR0FBRyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVUlDb25zdGFudHMge1xyXG4gICAgc3RhdGljIENTU19QSVhFTFMgPSAncHgnO1xyXG4gICAgc3RhdGljIENTU19QRVJDRU5UQUdFID0gJyUnO1xyXG4gICAgc3RhdGljIENTU19ERUdSRUVTID0gJ2RlZyc7XHJcbiAgICBzdGF0aWMgQ1NTX0VNID0gJ2VtJztcclxuICAgIHN0YXRpYyBDU1NfQ0ggPSAnY2gnO1xyXG5cclxuICAgIHN0YXRpYyBDU1NfSU5JVElBTCA9ICdpbml0aWFsJztcclxuICAgIHN0YXRpYyBDU1NfSU5IRVJJVCA9ICdpbmhlcml0JztcclxuICAgIHN0YXRpYyBDU1NfTk9ORSA9ICdub25lJztcclxuICAgIHN0YXRpYyBDU1NfVklTSUJJTElUWV9WSVNJQkxFID0gJ3Zpc2libGUnO1xyXG4gICAgc3RhdGljIENTU19WSVNJQklMSVRZX0hJRERFTiA9ICdoaWRkZW4nO1xyXG5cclxuICAgIHN0YXRpYyBDU1NfV0lEVEggPSAnd2lkdGgnO1xyXG4gICAgc3RhdGljIENTU19MRUZUID0gJ2xlZnQnO1xyXG4gICAgc3RhdGljIENTU19SSUdIVCA9ICdyaWdodCc7XHJcbiAgICBzdGF0aWMgQ1NTX1NUQVJUID0gJ3N0YXJ0JztcclxuICAgIHN0YXRpYyBDU1NfRU5EID0gJ2VuZCc7XHJcbiAgICBzdGF0aWMgQ1NTX0NFTlRFUiA9ICdjZW50ZXInO1xyXG4gICAgc3RhdGljIENTU19DTEFTU19GSVhFRCA9ICdmaXhlZCc7XHJcbiAgICBzdGF0aWMgQ1NTX0NMQVNTX0JBQ0tHUk9VTkQgPSAnYmFja2dyb3VuZCc7XHJcbiAgICBzdGF0aWMgQ1NTX0NMQVNTX1RPUCA9ICd0b3AnO1xyXG5cclxuICAgIHN0YXRpYyBSR0JfT1BBQ0lUWV9QTEFDRUhPTERFUiA9ICd7b3BhY2l0eX0nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { UIConstants } from '../../constants';
3
+ import * as i0 from "@angular/core";
4
+ export class IfDirective {
5
+ constructor(el) {
6
+ this.el = el;
7
+ this.display = this.style.display;
8
+ }
9
+ set sfcIf(show) {
10
+ this.style.display = show
11
+ ? this.display || UIConstants.CSS_INITIAL
12
+ : UIConstants.CSS_NONE;
13
+ }
14
+ get style() { return this.el.nativeElement.style; }
15
+ }
16
+ IfDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IfDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
17
+ IfDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: IfDirective, selector: "[sfcIf]", inputs: { sfcIf: "sfcIf" }, ngImport: i0 });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IfDirective, decorators: [{
19
+ type: Directive,
20
+ args: [{
21
+ selector: '[sfcIf]'
22
+ }]
23
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { sfcIf: [{
24
+ type: Input
25
+ }] } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL2lmL2lmLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSzlDLE1BQU0sT0FBTyxXQUFXO0lBYXRCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDcEMsQ0FBQztJQWJELElBQ0ksS0FBSyxDQUFDLElBQWE7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSTtZQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUMsV0FBVztZQUN6QyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBSUQsSUFBWSxLQUFLLEtBQVUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDOzt3R0FYckQsV0FBVzs0RkFBWCxXQUFXOzJGQUFYLFdBQVc7a0JBSHZCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7aUJBQ3BCO2lHQUlLLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVUlDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc2ZjSWZdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSWZEaXJlY3RpdmUge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZmNJZihzaG93OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnN0eWxlLmRpc3BsYXkgPSBzaG93XHJcbiAgICAgID8gdGhpcy5kaXNwbGF5IHx8IFVJQ29uc3RhbnRzLkNTU19JTklUSUFMXHJcbiAgICAgIDogVUlDb25zdGFudHMuQ1NTX05PTkU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc3BsYXk6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBnZXQgc3R5bGUoKTogYW55IHsgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZTsgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSB0aGlzLnN0eWxlLmRpc3BsYXk7XHJcbiAgfVxyXG59Il19
@@ -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,10 @@
1
+ /**
2
+ * Flag for validation compare
3
+ */
4
+ export var Compare;
5
+ (function (Compare) {
6
+ Compare["More"] = "more";
7
+ Compare["Less"] = "less";
8
+ })(Compare || (Compare = {}));
9
+ ;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9lbnVtcy9jb21wYXJlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxPQUdYO0FBSEQsV0FBWSxPQUFPO0lBQ2Ysd0JBQWEsQ0FBQTtJQUNiLHdCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUhXLE9BQU8sS0FBUCxPQUFPLFFBR2xCO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBGbGFnIGZvciB2YWxpZGF0aW9uIGNvbXBhcmVcclxuICovXHJcbmV4cG9ydCBlbnVtIENvbXBhcmUge1xyXG4gICAgTW9yZSA9ICdtb3JlJyxcclxuICAgIExlc3MgPSAnbGVzcydcclxufTsiXX0=
@@ -6,4 +6,5 @@ export { SortingDirection } from './sorting-direction.enum';
6
6
  export { Theme } from './theme.enum';
7
7
  export { UIClass } from './ui.enum';
8
8
  export { Sequence } from './sequence.enum';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDb21wb25lbnRTaXplIH0gZnJvbSAnLi9zaXplLmVudW0nO1xyXG5leHBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICcuL2RpcmVjdGlvbi5lbnVtJztcclxuZXhwb3J0IHsgTWVkaWFMaW1pdHMgfSBmcm9tICcuL21lZGlhLmVudW0nO1xyXG5leHBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJy4vcG9zaXRpb24uZW51bSc7XHJcbmV4cG9ydCB7IFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuL3NvcnRpbmctZGlyZWN0aW9uLmVudW0nO1xyXG5leHBvcnQgeyBUaGVtZSB9IGZyb20gJy4vdGhlbWUuZW51bSc7XHJcbmV4cG9ydCB7IFVJQ2xhc3MgfSBmcm9tICcuL3VpLmVudW0nO1xyXG5leHBvcnQgeyBTZXF1ZW5jZSB9IGZyb20gJy4vc2VxdWVuY2UuZW51bSc7XHJcbiJdfQ==
9
+ export { Compare } from './compare.enum';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ29tcG9uZW50U2l6ZSB9IGZyb20gJy4vc2l6ZS5lbnVtJztcclxuZXhwb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnLi9kaXJlY3Rpb24uZW51bSc7XHJcbmV4cG9ydCB7IE1lZGlhTGltaXRzIH0gZnJvbSAnLi9tZWRpYS5lbnVtJztcclxuZXhwb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuL3Bvc2l0aW9uLmVudW0nO1xyXG5leHBvcnQgeyBTb3J0aW5nRGlyZWN0aW9uIH0gZnJvbSAnLi9zb3J0aW5nLWRpcmVjdGlvbi5lbnVtJztcclxuZXhwb3J0IHsgVGhlbWUgfSBmcm9tICcuL3RoZW1lLmVudW0nO1xyXG5leHBvcnQgeyBVSUNsYXNzIH0gZnJvbSAnLi91aS5lbnVtJztcclxuZXhwb3J0IHsgU2VxdWVuY2UgfSBmcm9tICcuL3NlcXVlbmNlLmVudW0nO1xyXG5leHBvcnQgeyBDb21wYXJlIH0gZnJvbSAnLi9jb21wYXJlLmVudW0nO1xyXG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNmYy1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9uZ3gtc2ZjLWNvbW1vbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDakIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbkIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCx5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0Isa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixhQUFhLEVBQ2IsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixhQUFhLEVBQ2QsTUFBTSxjQUFjLENBQUM7O0FBMkZ0QixNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0I7UUF2RjNCLGFBQWE7UUFDYixxQkFBcUI7UUFDckIsd0JBQXdCO1FBQ3hCLDRCQUE0QjtRQUM1QiwwQkFBMEI7UUFDMUIsa0JBQWtCO1FBQ2xCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLHNCQUFzQjtRQUN0QixhQUFhO1FBQ2IsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQix1QkFBdUI7UUFDdkIsc0JBQXNCO1FBQ3RCLGFBQWE7UUFDYixVQUFVO1FBQ1YscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQixRQUFRO1FBQ1IsY0FBYztRQUNkLGtCQUFrQjtRQUNsQix5QkFBeUI7UUFDekIsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQixRQUFRO1FBQ1IsbUJBQW1CLGFBR25CLFlBQVk7UUFDWixpQkFBaUI7UUFHakIsYUFBYTtRQUNiLHFCQUFxQjtRQUNyQix3QkFBd0I7UUFDeEIsNEJBQTRCO1FBQzVCLDBCQUEwQjtRQUMxQixrQkFBa0I7UUFDbEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsc0JBQXNCO1FBQ3RCLHVCQUF1QjtRQUN2QixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsd0JBQXdCO1FBQ3hCLHVCQUF1QjtRQUN2QixhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsYUFBYTtRQUNiLFVBQVU7UUFDVixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLFFBQVE7UUFDUixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6QiwyQkFBMkI7UUFDM0IsMkJBQTJCO1FBQzNCLFFBQVE7UUFDUixtQkFBbUI7Z0hBSVYsa0JBQWtCLGFBRmxCLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsWUE1Qy9DLFlBQVk7UUFDWixpQkFBaUI7MkZBNkNSLGtCQUFrQjtrQkF6RjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGFBQWE7d0JBQ2IscUJBQXFCO3dCQUNyQix3QkFBd0I7d0JBQ3hCLDRCQUE0Qjt3QkFDNUIsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsUUFBUTt3QkFDUixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6QiwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsUUFBUTt3QkFDUixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGFBQWE7d0JBQ2IscUJBQXFCO3dCQUNyQix3QkFBd0I7d0JBQ3hCLDRCQUE0Qjt3QkFDNUIsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3dCQUN2QixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsUUFBUTt3QkFDUixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6QiwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsUUFBUTt3QkFDUixtQkFBbUI7cUJBQ3BCO29CQUNELFNBQVMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5pbXBvcnQge1xyXG4gIERPQ1VNRU5UX1BST1ZJREVSUyxcclxuICBXSU5ET1dfUFJPVklERVJTXHJcbn0gZnJvbSAnLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxyXG4gIFNob3dIaWRlRWxlbWVudERpcmVjdGl2ZSxcclxuICBUaHJvd0VsZW1lbnRPbkhvdmVyRGlyZWN0aXZlLFxyXG4gIFRlbXBsYXRlUmVmZXJlbmNlRGlyZWN0aXZlLFxyXG4gIE1vdXNlRG93bkRpcmVjdGl2ZSxcclxuICBDb21wb25lbnRTaXplRGlyZWN0aXZlLFxyXG4gIERlc3Ryb3lQYXJlbnREaXJlY3RpdmUsXHJcbiAgRG9tQ2hhbmdlc0RpcmVjdGl2ZSxcclxuICBTY3JvbGxUcmFja2VyRGlyZWN0aXZlLFxyXG4gIFNjcm9sbEludG9WaWV3RGlyZWN0aXZlLFxyXG4gIEltYWdlTG9hZERpcmVjdGl2ZVxyXG59IGZyb20gJy4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IFN3aXRjaE11bHRpQ2FzZVBpcGUgfSBmcm9tICcuL3BpcGVzJztcclxuaW1wb3J0IHtcclxuICBCdXR0b25Db21wb25lbnQsXHJcbiAgVG9vbHRpcENvbXBvbmVudCxcclxuICBEZWxpbWV0ZXJDb21wb25lbnQsXHJcbiAgQm91bmNlTG9hZGVyQ29tcG9uZW50LFxyXG4gIENpcmNsZUxvYWRlckNvbXBvbmVudCxcclxuICBNb2RhbENvbXBvbmVudCxcclxuICBNb2RhbE9wZW5PbkNsaWNrRGlyZWN0aXZlLFxyXG4gIE1vZGFsT3BlbkRpcmVjdGl2ZSxcclxuICBEZWZhdWx0TW9kYWxIZWFkZXJDb21wb25lbnQsXHJcbiAgRGVmYXVsdE1vZGFsRm9vdGVyQ29tcG9uZW50LFxyXG4gIEhhbWJ1cmdlckNvbXBvbmVudCxcclxuICBIYW1idXJnZXJNZW51Q29tcG9uZW50LFxyXG4gIERvdHNDb21wb25lbnQsXHJcbiAgVG9nZ2xlU3dpdGNoZXJDb21wb25lbnQsXHJcbiAgQ2hlY2ttYXJrQ29tcG9uZW50LFxyXG4gIFRlbXBsYXRlQ29udGVudENvbXBvbmVudCxcclxuICBDbG9zZUNvbXBvbmVudCxcclxuICBQYWdpbmF0aW9uQ29tcG9uZW50LFxyXG4gIFNvcnRpbmdDb21wb25lbnQsXHJcbiAgTG9hZENvbnRhaW5lckNvbXBvbmVudCxcclxuICBMb2FkTW9yZUJ1dHRvbkNvbXBvbmVudCxcclxuICBJY29uQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9jb21wb25lbnRzJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAvLyBkaXJlY3RpdmVzXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBTaG93SGlkZUVsZW1lbnREaXJlY3RpdmUsXHJcbiAgICBUaHJvd0VsZW1lbnRPbkhvdmVyRGlyZWN0aXZlLFxyXG4gICAgVGVtcGxhdGVSZWZlcmVuY2VEaXJlY3RpdmUsXHJcbiAgICBNb3VzZURvd25EaXJlY3RpdmUsXHJcbiAgICBDb21wb25lbnRTaXplRGlyZWN0aXZlLFxyXG4gICAgRGVzdHJveVBhcmVudERpcmVjdGl2ZSxcclxuICAgIERvbUNoYW5nZXNEaXJlY3RpdmUsXHJcbiAgICBTY3JvbGxUcmFja2VyRGlyZWN0aXZlLFxyXG4gICAgU2Nyb2xsSW50b1ZpZXdEaXJlY3RpdmUsXHJcbiAgICBJbWFnZUxvYWREaXJlY3RpdmUsXHJcbiAgICAvLyBjb21wb25lbnRzXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBUb29sdGlwQ29tcG9uZW50LFxyXG4gICAgRGVsaW1ldGVyQ29tcG9uZW50LFxyXG4gICAgVG9nZ2xlU3dpdGNoZXJDb21wb25lbnQsXHJcbiAgICBDaGVja21hcmtDb21wb25lbnQsXHJcbiAgICBUZW1wbGF0ZUNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBDbG9zZUNvbXBvbmVudCxcclxuICAgIEhhbWJ1cmdlckNvbXBvbmVudCxcclxuICAgIEhhbWJ1cmdlck1lbnVDb21wb25lbnQsXHJcbiAgICBEb3RzQ29tcG9uZW50LFxyXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFNvcnRpbmdDb21wb25lbnQsXHJcbiAgICBMb2FkTW9yZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIExvYWRDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBJY29uQ29tcG9uZW50LFxyXG4gICAgLy8gbG9hZGVyc1xyXG4gICAgQm91bmNlTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgQ2lyY2xlTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgLy8gbW9kYWxcclxuICAgIE1vZGFsQ29tcG9uZW50LFxyXG4gICAgTW9kYWxPcGVuRGlyZWN0aXZlLFxyXG4gICAgTW9kYWxPcGVuT25DbGlja0RpcmVjdGl2ZSxcclxuICAgIERlZmF1bHRNb2RhbEhlYWRlckNvbXBvbmVudCxcclxuICAgIERlZmF1bHRNb2RhbEZvb3RlckNvbXBvbmVudCxcclxuICAgIC8vIHBpcGVzXHJcbiAgICBTd2l0Y2hNdWx0aUNhc2VQaXBlICAgICAgICBcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvbnRBd2Vzb21lTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICAvLyBkaXJlY3RpdmVzXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBTaG93SGlkZUVsZW1lbnREaXJlY3RpdmUsXHJcbiAgICBUaHJvd0VsZW1lbnRPbkhvdmVyRGlyZWN0aXZlLFxyXG4gICAgVGVtcGxhdGVSZWZlcmVuY2VEaXJlY3RpdmUsXHJcbiAgICBNb3VzZURvd25EaXJlY3RpdmUsXHJcbiAgICBDb21wb25lbnRTaXplRGlyZWN0aXZlLFxyXG4gICAgRGVzdHJveVBhcmVudERpcmVjdGl2ZSxcclxuICAgIERvbUNoYW5nZXNEaXJlY3RpdmUsXHJcbiAgICBTY3JvbGxUcmFja2VyRGlyZWN0aXZlLFxyXG4gICAgU2Nyb2xsSW50b1ZpZXdEaXJlY3RpdmUsXHJcbiAgICBJbWFnZUxvYWREaXJlY3RpdmUsXHJcbiAgICAvLyBjb21wb25lbnRzXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBUb29sdGlwQ29tcG9uZW50LFxyXG4gICAgRGVsaW1ldGVyQ29tcG9uZW50LFxyXG4gICAgQ2xvc2VDb21wb25lbnQsXHJcbiAgICBDaGVja21hcmtDb21wb25lbnQsXHJcbiAgICBUZW1wbGF0ZUNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBUb2dnbGVTd2l0Y2hlckNvbXBvbmVudCxcclxuICAgIERvdHNDb21wb25lbnQsXHJcbiAgICBIYW1idXJnZXJDb21wb25lbnQsXHJcbiAgICBIYW1idXJnZXJNZW51Q29tcG9uZW50LFxyXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFNvcnRpbmdDb21wb25lbnQsXHJcbiAgICBMb2FkTW9yZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIExvYWRDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBJY29uQ29tcG9uZW50LFxyXG4gICAgLy8gbG9hZGVyc1xyXG4gICAgQm91bmNlTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgQ2lyY2xlTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgLy8gbW9kYWxcclxuICAgIE1vZGFsQ29tcG9uZW50LFxyXG4gICAgTW9kYWxPcGVuRGlyZWN0aXZlLFxyXG4gICAgTW9kYWxPcGVuT25DbGlja0RpcmVjdGl2ZSxcclxuICAgIERlZmF1bHRNb2RhbEhlYWRlckNvbXBvbmVudCxcclxuICAgIERlZmF1bHRNb2RhbEZvb3RlckNvbXBvbmVudCxcclxuICAgIC8vIHBpcGVzXHJcbiAgICBTd2l0Y2hNdWx0aUNhc2VQaXBlICAgICAgICBcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW0RPQ1VNRU5UX1BST1ZJREVSUywgV0lORE9XX1BST1ZJREVSU11cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFNmY0NvbW1vbk1vZHVsZSB7IH1cclxuIl19
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=