@apipass/containers 1.0.117 → 1.0.119

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.
@@ -25,7 +25,6 @@ export declare class ApipassInfiniteScrollComponent implements OnInit, OnDestroy
25
25
  loading: boolean;
26
26
  filter: Record<string, any>;
27
27
  nextPageFn: (params: any) => Promise<any[]>;
28
- previousPageFn: (params: any) => Promise<any[]>;
29
28
  refreshItems: EventEmitter<RefreshItemsEvent>;
30
29
  showEmptyList: boolean;
31
30
  emptyListMessage: string;
@@ -39,7 +38,6 @@ export declare class ApipassInfiniteScrollComponent implements OnInit, OnDestroy
39
38
  loadingChange: EventEmitter<boolean>;
40
39
  currentPageChange: EventEmitter<number>;
41
40
  itemsTemplate: TemplateRef<any>;
42
- private isFirstScrollToTop;
43
41
  protected loadingNextPage: boolean;
44
42
  protected loadingPreviousPage: boolean;
45
43
  constructor();
@@ -48,8 +46,6 @@ export declare class ApipassInfiniteScrollComponent implements OnInit, OnDestroy
48
46
  loadingPages(): boolean;
49
47
  showListLoader(): boolean;
50
48
  protected nextPage(): Promise<void>;
51
- protected previousPage(): Promise<void>;
52
- private scrollToLastElementBeforePreviousPage;
53
49
  static ɵfac: i0.ɵɵFactoryDeclaration<ApipassInfiniteScrollComponent, never>;
54
- static ɵcmp: i0.ɵɵComponentDeclaration<ApipassInfiniteScrollComponent, "apipass-infinite-scroll-component", never, { "currentPage": { "alias": "currentPage"; "required": false; }; "items": { "alias": "items"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "nextPageFn": { "alias": "nextPageFn"; "required": false; }; "previousPageFn": { "alias": "previousPageFn"; "required": false; }; "refreshItems": { "alias": "refreshItems"; "required": false; }; "showEmptyList": { "alias": "showEmptyList"; "required": false; }; "emptyListMessage": { "alias": "emptyListMessage"; "required": false; }; "infiniteScrollDownDistance": { "alias": "infiniteScrollDownDistance"; "required": false; }; "infiniteScrollUpDistance": { "alias": "infiniteScrollUpDistance"; "required": false; }; "infiniteScrollThrottle": { "alias": "infiniteScrollThrottle"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "minHeight": { "alias": "minHeight"; "required": false; }; }, { "onNextPage": "onNextPage"; "onPreviousPage": "onPreviousPage"; "loadingChange": "loadingChange"; "currentPageChange": "currentPageChange"; }, ["itemsTemplate"], never, false, never>;
50
+ static ɵcmp: i0.ɵɵComponentDeclaration<ApipassInfiniteScrollComponent, "apipass-infinite-scroll-component", never, { "currentPage": { "alias": "currentPage"; "required": false; }; "items": { "alias": "items"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "nextPageFn": { "alias": "nextPageFn"; "required": false; }; "refreshItems": { "alias": "refreshItems"; "required": false; }; "showEmptyList": { "alias": "showEmptyList"; "required": false; }; "emptyListMessage": { "alias": "emptyListMessage"; "required": false; }; "infiniteScrollDownDistance": { "alias": "infiniteScrollDownDistance"; "required": false; }; "infiniteScrollUpDistance": { "alias": "infiniteScrollUpDistance"; "required": false; }; "infiniteScrollThrottle": { "alias": "infiniteScrollThrottle"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "minHeight": { "alias": "minHeight"; "required": false; }; }, { "onNextPage": "onNextPage"; "onPreviousPage": "onPreviousPage"; "loadingChange": "loadingChange"; "currentPageChange": "currentPageChange"; }, ["itemsTemplate"], never, false, never>;
55
51
  }
@@ -27,7 +27,6 @@ class ApipassInfiniteScrollComponent {
27
27
  loading;
28
28
  filter = {};
29
29
  nextPageFn;
30
- previousPageFn;
31
30
  refreshItems = new EventEmitter();
32
31
  showEmptyList;
33
32
  emptyListMessage = 'No Records Found...';
@@ -41,7 +40,6 @@ class ApipassInfiniteScrollComponent {
41
40
  loadingChange = new EventEmitter();
42
41
  currentPageChange = new EventEmitter();
43
42
  itemsTemplate;
44
- isFirstScrollToTop;
45
43
  loadingNextPage;
46
44
  loadingPreviousPage;
47
45
  constructor() {
@@ -73,7 +71,6 @@ class ApipassInfiniteScrollComponent {
73
71
  }
74
72
  try {
75
73
  this.loadingNextPage = true;
76
- this.isFirstScrollToTop = true;
77
74
  this.onNextPage.emit({
78
75
  currentPage: this.currentPage,
79
76
  nextPage: this.currentPage + 1
@@ -82,68 +79,27 @@ class ApipassInfiniteScrollComponent {
82
79
  const nextItems = await this.nextPageFn({
83
80
  ...this.filter,
84
81
  page: this.currentPage,
85
- pageSize: this.pageSize
82
+ pageSize: this.pageSize,
83
+ nextPageId: this.items[this.items.length - 1].id
86
84
  });
87
85
  if (nextItems?.length === 0) {
88
86
  this.currentPage--;
89
87
  return;
90
88
  }
91
89
  this.currentPageChange.emit(this._currentPage);
92
- const needRemoveLastPageSizeItems = this.currentPage > 2;
93
- this._items = needRemoveLastPageSizeItems ? this._items?.slice(this.pageSize).concat(nextItems) : this._items.concat(nextItems);
90
+ this._items = this._items?.concat(nextItems);
94
91
  }
95
92
  finally {
96
93
  this.loadingNextPage = false;
97
94
  }
98
95
  }
99
- async previousPage() {
100
- if (this.loadingPages()) {
101
- return;
102
- }
103
- try {
104
- this.loadingPreviousPage = true;
105
- this.currentPage = this.isFirstScrollToTop ? this.currentPage - 2 : this.currentPage - 1;
106
- const needScrollToLastElementBeforePreviousPage = this.currentPage > 0;
107
- this.currentPage = this.currentPage > 0 ? this.currentPage : 1;
108
- const previousItems = await this.previousPageFn({
109
- ...this.filter,
110
- page: this.currentPage,
111
- pageSize: this.pageSize
112
- });
113
- if (previousItems?.length === 0) {
114
- return;
115
- }
116
- this.currentPageChange.emit(this._currentPage);
117
- if (needScrollToLastElementBeforePreviousPage) {
118
- const currentItems = this.items?.slice(0, this.pageSize);
119
- this.items = previousItems.concat(currentItems);
120
- this.scrollToLastElementBeforePreviousPage();
121
- }
122
- else {
123
- this.items = previousItems;
124
- }
125
- }
126
- finally {
127
- this.isFirstScrollToTop = false;
128
- this.loadingPreviousPage = false;
129
- }
130
- }
131
- scrollToLastElementBeforePreviousPage() {
132
- setTimeout(() => {
133
- const scrollElement = document.getElementById(`apipass-infinite-scroll-list-${this.getCurrentId}`);
134
- const executionId = document.getElementById(`apipass-infinite-scroll-item-${this.getCurrentId}-${this.pageSize}`);
135
- if (scrollElement && executionId) {
136
- scrollElement.scrollTo({ top: executionId.offsetTop + executionId.clientHeight });
137
- }
138
- });
139
- }
140
96
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ApipassInfiniteScrollComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
141
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: ApipassInfiniteScrollComponent, selector: "apipass-infinite-scroll-component", inputs: { currentPage: "currentPage", items: "items", pageSize: "pageSize", loading: "loading", filter: "filter", nextPageFn: "nextPageFn", previousPageFn: "previousPageFn", refreshItems: "refreshItems", showEmptyList: "showEmptyList", emptyListMessage: "emptyListMessage", infiniteScrollDownDistance: "infiniteScrollDownDistance", infiniteScrollUpDistance: "infiniteScrollUpDistance", infiniteScrollThrottle: "infiniteScrollThrottle", maxHeight: "maxHeight", minHeight: "minHeight" }, outputs: { onNextPage: "onNextPage", onPreviousPage: "onPreviousPage", loadingChange: "loadingChange", currentPageChange: "currentPageChange" }, queries: [{ propertyName: "itemsTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div class=\"apipass-infinite-scroll-component\">\n <div class=\"apipass-infinite-scroll-list\"\n *ngIf=\"items?.length > 0\"\n [id]=\"'apipass-infinite-scroll-list-' + getCurrentId\"\n [style.max-height]=\"maxHeight\"\n [style.min-height]=\"minHeight\"\n infiniteScroll\n [infiniteScrollDistance]=\"infiniteScrollDownDistance\"\n [infiniteScrollUpDistance]=\"infiniteScrollUpDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollDisabled]=\"loadingPages()\"\n (scrolled)=\"nextPage()\"\n (scrolledUp)=\"previousPage()\"\n [scrollWindow]=\"false\">\n <overlay-loader-component class=\"loader-top\" *ngIf=\"loadingPreviousPage\"></overlay-loader-component>\n <div class=\"apipass-infinite-scroll-item\"\n *ngFor=\"let item of items; let index = index\"\n [id]=\"'apipass-infinite-scroll-item-' + getCurrentId + '-' + (index + 1)\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div class=\"loader-bottom-content\" *ngIf=\"loadingNextPage\">\n <overlay-loader-component class=\"loader-bottom\"></overlay-loader-component>\n </div>\n </div>\n <div class=\"apipass-infinite-scroll-list-no-rows\" *ngIf=\"this.showEmptyList && !showListLoader() && items?.length === 0\">\n {{emptyListMessage}}\n </div>\n</div>\n", styles: [".apipass-infinite-scroll-component .apipass-infinite-scroll-list{box-sizing:border-box;position:relative;max-height:calc(100vh - 450px);min-height:100px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent;overscroll-behavior:contain}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar{width:4px;position:absolute;inset:0}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb{background:#CBCBCB;border-radius:2px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.7)}.apipass-infinite-scroll-component .apipass-infinite-scroll-list .loader-bottom-content{position:sticky}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component{display:flex;justify-content:center;align-items:center;position:absolute;background:rgba(255,255,255,.7607843137);z-index:999;width:100%}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-top{top:0;box-shadow:0 5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-bottom{bottom:0;box-shadow:0 -5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component ::ng-deep mat-spinner{width:25px!important;height:50px;--mdc-circular-progress-size: 50px;--mdc-circular-progress-active-indicator-width: 50px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list-no-rows{width:100%;height:40px;display:flex;justify-content:center;align-items:center;margin-top:10px;border-radius:5px;border:1px solid #CCC;background:#EEE;color:var(--color-fonts-tertiary)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i3.OverlayLoaderComponent, selector: "overlay-loader-component" }] });
97
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: ApipassInfiniteScrollComponent, selector: "apipass-infinite-scroll-component", inputs: { currentPage: "currentPage", items: "items", pageSize: "pageSize", loading: "loading", filter: "filter", nextPageFn: "nextPageFn", refreshItems: "refreshItems", showEmptyList: "showEmptyList", emptyListMessage: "emptyListMessage", infiniteScrollDownDistance: "infiniteScrollDownDistance", infiniteScrollUpDistance: "infiniteScrollUpDistance", infiniteScrollThrottle: "infiniteScrollThrottle", maxHeight: "maxHeight", minHeight: "minHeight" }, outputs: { onNextPage: "onNextPage", onPreviousPage: "onPreviousPage", loadingChange: "loadingChange", currentPageChange: "currentPageChange" }, queries: [{ propertyName: "itemsTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div class=\"apipass-infinite-scroll-component\">\n <div class=\"apipass-infinite-scroll-list\"\n *ngIf=\"items?.length > 0\"\n [id]=\"'apipass-infinite-scroll-list-' + getCurrentId\"\n [style.max-height]=\"maxHeight\"\n [style.min-height]=\"minHeight\"\n infiniteScroll\n [infiniteScrollDistance]=\"infiniteScrollDownDistance\"\n [infiniteScrollUpDistance]=\"infiniteScrollUpDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollDisabled]=\"loadingPages()\"\n (scrolled)=\"nextPage()\"\n [scrollWindow]=\"false\">\n <overlay-loader-component class=\"loader-top\" *ngIf=\"loadingPreviousPage\"></overlay-loader-component>\n <div class=\"apipass-infinite-scroll-item\"\n *ngFor=\"let item of items; let index = index\"\n [id]=\"'apipass-infinite-scroll-item-' + getCurrentId + '-' + (index + 1)\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div class=\"loader-bottom-content\" *ngIf=\"loadingNextPage\">\n <overlay-loader-component class=\"loader-bottom\"></overlay-loader-component>\n </div>\n </div>\n <div class=\"apipass-infinite-scroll-list-no-rows\" *ngIf=\"this.showEmptyList && !showListLoader() && items?.length === 0\">\n {{emptyListMessage}}\n </div>\n</div>\n", styles: [".apipass-infinite-scroll-component .apipass-infinite-scroll-list{box-sizing:border-box;position:relative;max-height:calc(100vh - 450px);min-height:100px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent;overscroll-behavior:contain}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar{width:4px;position:absolute;inset:0}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb{background:#CBCBCB;border-radius:2px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.7)}.apipass-infinite-scroll-component .apipass-infinite-scroll-list .loader-bottom-content{position:sticky}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component{display:flex;justify-content:center;align-items:center;position:absolute;background:rgba(255,255,255,.7607843137);z-index:999;width:100%}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-top{top:0;box-shadow:0 5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-bottom{bottom:0;box-shadow:0 -5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component ::ng-deep mat-spinner{width:25px!important;height:50px;--mdc-circular-progress-size: 50px;--mdc-circular-progress-active-indicator-width: 50px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list-no-rows{width:100%;height:40px;display:flex;justify-content:center;align-items:center;margin-top:10px;border-radius:5px;border:1px solid #CCC;background:#EEE;color:var(--color-fonts-tertiary)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i3.OverlayLoaderComponent, selector: "overlay-loader-component" }] });
142
98
  }
143
99
  export { ApipassInfiniteScrollComponent };
144
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ApipassInfiniteScrollComponent, decorators: [{
145
101
  type: Component,
146
- args: [{ selector: 'apipass-infinite-scroll-component', template: "<div class=\"apipass-infinite-scroll-component\">\n <div class=\"apipass-infinite-scroll-list\"\n *ngIf=\"items?.length > 0\"\n [id]=\"'apipass-infinite-scroll-list-' + getCurrentId\"\n [style.max-height]=\"maxHeight\"\n [style.min-height]=\"minHeight\"\n infiniteScroll\n [infiniteScrollDistance]=\"infiniteScrollDownDistance\"\n [infiniteScrollUpDistance]=\"infiniteScrollUpDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollDisabled]=\"loadingPages()\"\n (scrolled)=\"nextPage()\"\n (scrolledUp)=\"previousPage()\"\n [scrollWindow]=\"false\">\n <overlay-loader-component class=\"loader-top\" *ngIf=\"loadingPreviousPage\"></overlay-loader-component>\n <div class=\"apipass-infinite-scroll-item\"\n *ngFor=\"let item of items; let index = index\"\n [id]=\"'apipass-infinite-scroll-item-' + getCurrentId + '-' + (index + 1)\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div class=\"loader-bottom-content\" *ngIf=\"loadingNextPage\">\n <overlay-loader-component class=\"loader-bottom\"></overlay-loader-component>\n </div>\n </div>\n <div class=\"apipass-infinite-scroll-list-no-rows\" *ngIf=\"this.showEmptyList && !showListLoader() && items?.length === 0\">\n {{emptyListMessage}}\n </div>\n</div>\n", styles: [".apipass-infinite-scroll-component .apipass-infinite-scroll-list{box-sizing:border-box;position:relative;max-height:calc(100vh - 450px);min-height:100px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent;overscroll-behavior:contain}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar{width:4px;position:absolute;inset:0}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb{background:#CBCBCB;border-radius:2px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.7)}.apipass-infinite-scroll-component .apipass-infinite-scroll-list .loader-bottom-content{position:sticky}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component{display:flex;justify-content:center;align-items:center;position:absolute;background:rgba(255,255,255,.7607843137);z-index:999;width:100%}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-top{top:0;box-shadow:0 5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-bottom{bottom:0;box-shadow:0 -5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component ::ng-deep mat-spinner{width:25px!important;height:50px;--mdc-circular-progress-size: 50px;--mdc-circular-progress-active-indicator-width: 50px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list-no-rows{width:100%;height:40px;display:flex;justify-content:center;align-items:center;margin-top:10px;border-radius:5px;border:1px solid #CCC;background:#EEE;color:var(--color-fonts-tertiary)!important}\n"] }]
102
+ args: [{ selector: 'apipass-infinite-scroll-component', template: "<div class=\"apipass-infinite-scroll-component\">\n <div class=\"apipass-infinite-scroll-list\"\n *ngIf=\"items?.length > 0\"\n [id]=\"'apipass-infinite-scroll-list-' + getCurrentId\"\n [style.max-height]=\"maxHeight\"\n [style.min-height]=\"minHeight\"\n infiniteScroll\n [infiniteScrollDistance]=\"infiniteScrollDownDistance\"\n [infiniteScrollUpDistance]=\"infiniteScrollUpDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollDisabled]=\"loadingPages()\"\n (scrolled)=\"nextPage()\"\n [scrollWindow]=\"false\">\n <overlay-loader-component class=\"loader-top\" *ngIf=\"loadingPreviousPage\"></overlay-loader-component>\n <div class=\"apipass-infinite-scroll-item\"\n *ngFor=\"let item of items; let index = index\"\n [id]=\"'apipass-infinite-scroll-item-' + getCurrentId + '-' + (index + 1)\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div class=\"loader-bottom-content\" *ngIf=\"loadingNextPage\">\n <overlay-loader-component class=\"loader-bottom\"></overlay-loader-component>\n </div>\n </div>\n <div class=\"apipass-infinite-scroll-list-no-rows\" *ngIf=\"this.showEmptyList && !showListLoader() && items?.length === 0\">\n {{emptyListMessage}}\n </div>\n</div>\n", styles: [".apipass-infinite-scroll-component .apipass-infinite-scroll-list{box-sizing:border-box;position:relative;max-height:calc(100vh - 450px);min-height:100px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent;overscroll-behavior:contain}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar{width:4px;position:absolute;inset:0}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb{background:#CBCBCB;border-radius:2px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.7)}.apipass-infinite-scroll-component .apipass-infinite-scroll-list .loader-bottom-content{position:sticky}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component{display:flex;justify-content:center;align-items:center;position:absolute;background:rgba(255,255,255,.7607843137);z-index:999;width:100%}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-top{top:0;box-shadow:0 5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-bottom{bottom:0;box-shadow:0 -5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component ::ng-deep mat-spinner{width:25px!important;height:50px;--mdc-circular-progress-size: 50px;--mdc-circular-progress-active-indicator-width: 50px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list-no-rows{width:100%;height:40px;display:flex;justify-content:center;align-items:center;margin-top:10px;border-radius:5px;border:1px solid #CCC;background:#EEE;color:var(--color-fonts-tertiary)!important}\n"] }]
147
103
  }], ctorParameters: function () { return []; }, propDecorators: { currentPage: [{
148
104
  type: Input
149
105
  }], items: [{
@@ -156,8 +112,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
156
112
  type: Input
157
113
  }], nextPageFn: [{
158
114
  type: Input
159
- }], previousPageFn: [{
160
- type: Input
161
115
  }], refreshItems: [{
162
116
  type: Input
163
117
  }], showEmptyList: [{
@@ -186,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
186
140
  type: ContentChild,
187
141
  args: [TemplateRef]
188
142
  }] } });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29udGFpbmVycy9zcmMvYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwvYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29udGFpbmVycy9zcmMvYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwvYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFpQnJILE1BS2EsOEJBQThCO0lBRWpDLGFBQWEsR0FBbUIsRUFBRSxDQUFBO0lBQ3pCLFVBQVUsQ0FBUTtJQUVuQyxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEIsQ0FBQztJQUVPLE1BQU0sR0FBVSxFQUFFLENBQUE7SUFDbEIsWUFBWSxHQUFXLENBQUMsQ0FBQTtJQUVoQyxJQUNJLFdBQVcsQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO0lBQzFCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDMUIsQ0FBQztJQUVELElBQ0ksS0FBSyxDQUFDLEtBQVk7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7SUFDckIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUNwQixDQUFDO0lBR00sUUFBUSxHQUFXLEVBQUUsQ0FBQTtJQUdyQixPQUFPLENBQVM7SUFHaEIsTUFBTSxHQUF3QixFQUFFLENBQUE7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QkFEZCxLQUFLO2dCQVVGLEtBQUs7c0JBRFIsS0FBSztnQkFVQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFJQywwQkFBMEI7c0JBRGhDLEtBQUs7Z0JBSUMsd0JBQXdCO3NCQUQ5QixLQUFLO2dCQUlDLHNCQUFzQjtzQkFENUIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLE1BQU07Z0JBSUEsY0FBYztzQkFEcEIsTUFBTTtnQkFJQSxhQUFhO3NCQURuQixNQUFNO2dCQUlBLGlCQUFpQjtzQkFEdkIsTUFBTTtnQkFHb0IsYUFBYTtzQkFBdkMsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0UGFnZUV2ZW50IHtcbiAgY3VycmVudFBhZ2U6IG51bWJlclxuICBuZXh0UGFnZTogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJldmlvdXNQYWdlRXZlbnQge1xuICBjdXJyZW50UGFnZTogbnVtYmVyXG4gIHByZXZpb3VzUGFnZTogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaEl0ZW1zRXZlbnQge1xuICBjb250aW51ZU9uVGhlU2FtZVBhZ2U/OiBib29sZWFuXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwaXBhc3MtaW5maW5pdGUtc2Nyb2xsLWNvbXBvbmVudCcsXG4gIHRlbXBsYXRlVXJsOiAnYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBcGlwYXNzSW5maW5pdGVTY3JvbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdXG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1cnJlbnRJZDogc3RyaW5nXG5cbiAgZ2V0IGdldEN1cnJlbnRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50SWRcbiAgfVxuXG4gIHByaXZhdGUgX2l0ZW1zOiBhbnlbXSA9IFtdXG4gIHByaXZhdGUgX2N1cnJlbnRQYWdlOiBudW1iZXIgPSAxXG5cbiAgQElucHV0KClcbiAgc2V0IGN1cnJlbnRQYWdlKHBhZ2U6IG51bWJlcikge1xuICAgIHRoaXMuX2N1cnJlbnRQYWdlID0gcGFnZVxuICB9XG5cbiAgZ2V0IGN1cnJlbnRQYWdlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRQYWdlXG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgaXRlbXMoaXRlbXM6IGFueVtdKSB7XG4gICAgdGhpcy5faXRlbXMgPSBpdGVtc1xuICB9XG5cbiAgZ2V0IGl0ZW1zKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXNcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gNTBcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbG9hZGluZzogYm9vbGVhblxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaWx0ZXI6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBuZXh0UGFnZUZuOiAocGFyYW1zOiBhbnkpID0+IFByb21pc2U8YW55W10+XG5cbiAgQElucHV0KClcbiAgcHVibGljIHByZXZpb3VzUGFnZUZuOiAocGFyYW1zOiBhbnkpID0+IFByb21pc2U8YW55W10+XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlZnJlc2hJdGVtczogRXZlbnRFbWl0dGVyPFJlZnJlc2hJdGVtc0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVmcmVzaEl0ZW1zRXZlbnQ+KClcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0VtcHR5TGlzdDogYm9vbGVhblxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbXB0eUxpc3RNZXNzYWdlOiBzdHJpbmcgPSAnTm8gUmVjb3JkcyBGb3VuZC4uLidcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaW5maW5pdGVTY3JvbGxEb3duRGlzdGFuY2U6IG51bWJlciA9IDJcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaW5maW5pdGVTY3JvbGxVcERpc3RhbmNlOiBudW1iZXIgPSAwLjVcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaW5maW5pdGVTY3JvbGxUaHJvdHRsZTogbnVtYmVyID0gMTUwXG5cbiAgQElucHV0KClcbiAgcHVibGljIG1heEhlaWdodDogc3RyaW5nID0gJzEwMHZoJ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW5IZWlnaHQ6IHN0cmluZyA9ICc1MHB4J1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25OZXh0UGFnZTogRXZlbnRFbWl0dGVyPE5leHRQYWdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxOZXh0UGFnZUV2ZW50PigpXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvblByZXZpb3VzUGFnZTogRXZlbnRFbWl0dGVyPFByZXZpb3VzUGFnZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8UHJldmlvdXNQYWdlRXZlbnQ+KClcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGxvYWRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY3VycmVudFBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KClcblxuICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKSBpdGVtc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByaXZhdGUgaXNGaXJzdFNjcm9sbFRvVG9wOiBib29sZWFuXG4gIHByb3RlY3RlZCBsb2FkaW5nTmV4dFBhZ2U6IGJvb2xlYW5cbiAgcHJvdGVjdGVkIGxvYWRpbmdQcmV2aW91c1BhZ2U6IGJvb2xlYW5cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9jdXJyZW50SWQgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMilcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJlZnJlc2hJdGVtcy5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xuICAgICAgaWYgKCEkZXZlbnQ/LmNvbnRpbnVlT25UaGVTYW1lUGFnZSkge1xuICAgICAgICB0aGlzLl9jdXJyZW50UGFnZSA9IDBcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZUNoYW5nZS5lbWl0KHRoaXMuX2N1cnJlbnRQYWdlKVxuICAgICAgfVxuICAgIH0pKVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucz8uZm9yRWFjaChzdWJzY3JpcHRpb24gPT4ge1xuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgICB9KVxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdXG4gIH1cblxuICBwdWJsaWMgbG9hZGluZ1BhZ2VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdOZXh0UGFnZSB8fCB0aGlzLmxvYWRpbmdQcmV2aW91c1BhZ2VcbiAgfVxuXG4gIHB1YmxpYyBzaG93TGlzdExvYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nXG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmV4dFBhZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMubG9hZGluZ1BhZ2VzKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2FkaW5nTmV4dFBhZ2UgPSB0cnVlXG4gICAgICB0aGlzLmlzRmlyc3RTY3JvbGxUb1RvcCA9IHRydWVcbiAgICAgIHRoaXMub25OZXh0UGFnZS5lbWl0KHtcbiAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXG4gICAgICAgIG5leHRQYWdlOiB0aGlzLmN1cnJlbnRQYWdlICsgMVxuICAgICAgfSlcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UrK1xuICAgICAgY29uc3QgbmV4dEl0ZW1zID0gYXdhaXQgdGhpcy5uZXh0UGFnZUZuKHtcbiAgICAgICAgLi4udGhpcy5maWx0ZXIsXG4gICAgICAgIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXG4gICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplXG4gICAgICB9KVxuICAgICAgaWYgKG5leHRJdGVtcz8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UtLVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudFBhZ2VDaGFuZ2UuZW1pdCh0aGlzLl9jdXJyZW50UGFnZSlcbiAgICAgIGNvbnN0IG5lZWRSZW1vdmVMYXN0UGFnZVNpemVJdGVtcyA9IHRoaXMuY3VycmVudFBhZ2UgPiAyO1xuICAgICAgdGhpcy5faXRlbXMgPSBuZWVkUmVtb3ZlTGFzdFBhZ2VTaXplSXRlbXMgPyB0aGlzLl9pdGVtcz8uc2xpY2UodGhpcy5wYWdlU2l6ZSkuY29uY2F0KG5leHRJdGVtcykgOiB0aGlzLl9pdGVtcy5jb25jYXQobmV4dEl0ZW1zKVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmdOZXh0UGFnZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBwcmV2aW91c1BhZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMubG9hZGluZ1BhZ2VzKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2FkaW5nUHJldmlvdXNQYWdlID0gdHJ1ZVxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuaXNGaXJzdFNjcm9sbFRvVG9wID8gdGhpcy5jdXJyZW50UGFnZSAtIDIgOiB0aGlzLmN1cnJlbnRQYWdlIC0gMVxuICAgICAgY29uc3QgbmVlZFNjcm9sbFRvTGFzdEVsZW1lbnRCZWZvcmVQcmV2aW91c1BhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlID4gMFxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuY3VycmVudFBhZ2UgPiAwID8gdGhpcy5jdXJyZW50UGFnZSA6IDFcbiAgICAgIGNvbnN0IHByZXZpb3VzSXRlbXMgPSBhd2FpdCB0aGlzLnByZXZpb3VzUGFnZUZuKHtcbiAgICAgICAgLi4udGhpcy5maWx0ZXIsXG4gICAgICAgIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXG4gICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplXG4gICAgICB9KVxuICAgICAgaWYgKHByZXZpb3VzSXRlbXM/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudFBhZ2VDaGFuZ2UuZW1pdCh0aGlzLl9jdXJyZW50UGFnZSlcbiAgICAgIGlmIChuZWVkU2Nyb2xsVG9MYXN0RWxlbWVudEJlZm9yZVByZXZpb3VzUGFnZSkge1xuICAgICAgICBjb25zdCBjdXJyZW50SXRlbXMgPSB0aGlzLml0ZW1zPy5zbGljZSgwLCB0aGlzLnBhZ2VTaXplKTtcbiAgICAgICAgdGhpcy5pdGVtcyA9IHByZXZpb3VzSXRlbXMuY29uY2F0KGN1cnJlbnRJdGVtcylcbiAgICAgICAgdGhpcy5zY3JvbGxUb0xhc3RFbGVtZW50QmVmb3JlUHJldmlvdXNQYWdlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLml0ZW1zID0gcHJldmlvdXNJdGVtc1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzRmlyc3RTY3JvbGxUb1RvcCA9IGZhbHNlXG4gICAgICB0aGlzLmxvYWRpbmdQcmV2aW91c1BhZ2UgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9MYXN0RWxlbWVudEJlZm9yZVByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwtbGlzdC0ke3RoaXMuZ2V0Q3VycmVudElkfWApO1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwtaXRlbS0ke3RoaXMuZ2V0Q3VycmVudElkfS0ke3RoaXMucGFnZVNpemV9YClcbiAgICAgIGlmIChzY3JvbGxFbGVtZW50ICYmIGV4ZWN1dGlvbklkKSB7XG4gICAgICAgIHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG8oeyB0b3A6IGV4ZWN1dGlvbklkLm9mZnNldFRvcCArIGV4ZWN1dGlvbklkLmNsaWVudEhlaWdodCB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImFwaXBhc3MtaW5maW5pdGUtc2Nyb2xsLWNvbXBvbmVudFwiPlxuICA8ZGl2IGNsYXNzPVwiYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwtbGlzdFwiXG4gICAgICAgKm5nSWY9XCJpdGVtcz8ubGVuZ3RoID4gMFwiXG4gICAgICAgW2lkXT1cIidhcGlwYXNzLWluZmluaXRlLXNjcm9sbC1saXN0LScgKyBnZXRDdXJyZW50SWRcIlxuICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cIm1heEhlaWdodFwiXG4gICAgICAgW3N0eWxlLm1pbi1oZWlnaHRdPVwibWluSGVpZ2h0XCJcbiAgICAgICBpbmZpbml0ZVNjcm9sbFxuICAgICAgIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cImluZmluaXRlU2Nyb2xsRG93bkRpc3RhbmNlXCJcbiAgICAgICBbaW5maW5pdGVTY3JvbGxVcERpc3RhbmNlXT1cImluZmluaXRlU2Nyb2xsVXBEaXN0YW5jZVwiXG4gICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiaW5maW5pdGVTY3JvbGxUaHJvdHRsZVwiXG4gICAgICAgW2luZmluaXRlU2Nyb2xsRGlzYWJsZWRdPVwibG9hZGluZ1BhZ2VzKClcIlxuICAgICAgIChzY3JvbGxlZCk9XCJuZXh0UGFnZSgpXCJcbiAgICAgICAoc2Nyb2xsZWRVcCk9XCJwcmV2aW91c1BhZ2UoKVwiXG4gICAgICAgW3Njcm9sbFdpbmRvd109XCJmYWxzZVwiPlxuICAgIDxvdmVybGF5LWxvYWRlci1jb21wb25lbnQgY2xhc3M9XCJsb2FkZXItdG9wXCIgKm5nSWY9XCJsb2FkaW5nUHJldmlvdXNQYWdlXCI+PC9vdmVybGF5LWxvYWRlci1jb21wb25lbnQ+XG4gICAgPGRpdiBjbGFzcz1cImFwaXBhc3MtaW5maW5pdGUtc2Nyb2xsLWl0ZW1cIlxuICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgIFtpZF09XCInYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwtaXRlbS0nICsgZ2V0Q3VycmVudElkICsgJy0nICsgKGluZGV4ICsgMSlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtc1RlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxvYWRlci1ib3R0b20tY29udGVudFwiICpuZ0lmPVwibG9hZGluZ05leHRQYWdlXCI+XG4gICAgICA8b3ZlcmxheS1sb2FkZXItY29tcG9uZW50IGNsYXNzPVwibG9hZGVyLWJvdHRvbVwiPjwvb3ZlcmxheS1sb2FkZXItY29tcG9uZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImFwaXBhc3MtaW5maW5pdGUtc2Nyb2xsLWxpc3Qtbm8tcm93c1wiICpuZ0lmPVwidGhpcy5zaG93RW1wdHlMaXN0ICYmICFzaG93TGlzdExvYWRlcigpICYmIGl0ZW1zPy5sZW5ndGggPT09IDBcIj5cbiAgICB7e2VtcHR5TGlzdE1lc3NhZ2V9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29udGFpbmVycy9zcmMvYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwvYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29udGFpbmVycy9zcmMvYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwvYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFpQnJILE1BS2EsOEJBQThCO0lBRWpDLGFBQWEsR0FBbUIsRUFBRSxDQUFBO0lBQ3pCLFVBQVUsQ0FBUTtJQUVuQyxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEIsQ0FBQztJQUVPLE1BQU0sR0FBVSxFQUFFLENBQUE7SUFDbEIsWUFBWSxHQUFXLENBQUMsQ0FBQTtJQUVoQyxJQUNJLFdBQVcsQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO0lBQzFCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDMUIsQ0FBQztJQUVELElBQ0ksS0FBSyxDQUFDLEtBQVk7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7SUFDckIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUNwQixDQUFDO0lBR00sUUFBUSxHQUFXLEVBQUUsQ0FBQTtJQUdyQixPQUFPLENBQVM7SUFHaEIsTUFBTSxHQUF3QixFQUFFLENBQUE7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LEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7U0FDN0M7Z0JBQVM7WUFDUixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztTQUM5QjtJQUNILENBQUM7dUdBeklVLDhCQUE4QjsyRkFBOUIsOEJBQThCLHlzQkE4RTNCLFdBQVcsZ0RDcEczQixxMkNBMkJBOztTRExhLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNFLG1DQUFtQzswRUFpQnpDLFdBQVc7c0JBRGQsS0FBSztnQkFVRixLQUFLO3NCQURSLEtBQUs7Z0JBVUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLDBCQUEwQjtzQkFEaEMsS0FBSztnQkFJQyx3QkFBd0I7c0JBRDlCLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsTUFBTTtnQkFJQSxjQUFjO3NCQURwQixNQUFNO2dCQUlBLGFBQWE7c0JBRG5CLE1BQU07Z0JBSUEsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUdvQixhQUFhO3NCQUF2QyxZQUFZO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRQYWdlRXZlbnQge1xuICBjdXJyZW50UGFnZTogbnVtYmVyXG4gIG5leHRQYWdlOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmV2aW91c1BhZ2VFdmVudCB7XG4gIGN1cnJlbnRQYWdlOiBudW1iZXJcbiAgcHJldmlvdXNQYWdlOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoSXRlbXNFdmVudCB7XG4gIGNvbnRpbnVlT25UaGVTYW1lUGFnZT86IGJvb2xlYW5cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwtY29tcG9uZW50JyxcbiAgdGVtcGxhdGVVcmw6ICdhcGlwYXNzLWluZmluaXRlLXNjcm9sbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydhcGlwYXNzLWluZmluaXRlLXNjcm9sbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFwaXBhc3NJbmZpbml0ZVNjcm9sbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW11cbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudElkOiBzdHJpbmdcblxuICBnZXQgZ2V0Q3VycmVudElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRJZFxuICB9XG5cbiAgcHJpdmF0ZSBfaXRlbXM6IGFueVtdID0gW11cbiAgcHJpdmF0ZSBfY3VycmVudFBhZ2U6IG51bWJlciA9IDFcblxuICBASW5wdXQoKVxuICBzZXQgY3VycmVudFBhZ2UocGFnZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fY3VycmVudFBhZ2UgPSBwYWdlXG4gIH1cblxuICBnZXQgY3VycmVudFBhZ2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFBhZ2VcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBpdGVtcyhpdGVtczogYW55W10pIHtcbiAgICB0aGlzLl9pdGVtcyA9IGl0ZW1zXG4gIH1cblxuICBnZXQgaXRlbXMoKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2VTaXplOiBudW1iZXIgPSA1MFxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuXG5cbiAgQElucHV0KClcbiAgcHVibGljIGZpbHRlcjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5leHRQYWdlRm46IChwYXJhbXM6IGFueSkgPT4gUHJvbWlzZTxhbnlbXT5cblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVmcmVzaEl0ZW1zOiBFdmVudEVtaXR0ZXI8UmVmcmVzaEl0ZW1zRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWZyZXNoSXRlbXNFdmVudD4oKVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93RW1wdHlMaXN0OiBib29sZWFuXG5cbiAgQElucHV0KClcbiAgcHVibGljIGVtcHR5TGlzdE1lc3NhZ2U6IHN0cmluZyA9ICdObyBSZWNvcmRzIEZvdW5kLi4uJ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmZpbml0ZVNjcm9sbERvd25EaXN0YW5jZTogbnVtYmVyID0gMlxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmZpbml0ZVNjcm9sbFVwRGlzdGFuY2U6IG51bWJlciA9IDAuNVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmZpbml0ZVNjcm9sbFRocm90dGxlOiBudW1iZXIgPSAxNTBcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4SGVpZ2h0OiBzdHJpbmcgPSAnMTAwdmgnXG5cbiAgQElucHV0KClcbiAgcHVibGljIG1pbkhlaWdodDogc3RyaW5nID0gJzUwcHgnXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvbk5leHRQYWdlOiBFdmVudEVtaXR0ZXI8TmV4dFBhZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE5leHRQYWdlRXZlbnQ+KClcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9uUHJldmlvdXNQYWdlOiBFdmVudEVtaXR0ZXI8UHJldmlvdXNQYWdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxQcmV2aW91c1BhZ2VFdmVudD4oKVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbG9hZGluZ0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjdXJyZW50UGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKVxuXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIGl0ZW1zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJvdGVjdGVkIGxvYWRpbmdOZXh0UGFnZTogYm9vbGVhblxuICBwcm90ZWN0ZWQgbG9hZGluZ1ByZXZpb3VzUGFnZTogYm9vbGVhblxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2N1cnJlbnRJZCA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucmVmcmVzaEl0ZW1zLnN1YnNjcmliZSgoJGV2ZW50KSA9PiB7XG4gICAgICBpZiAoISRldmVudD8uY29udGludWVPblRoZVNhbWVQYWdlKSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRQYWdlID0gMFxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlQ2hhbmdlLmVtaXQodGhpcy5fY3VycmVudFBhZ2UpXG4gICAgICB9XG4gICAgfSkpXG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zPy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH0pXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW11cbiAgfVxuXG4gIHB1YmxpYyBsb2FkaW5nUGFnZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubG9hZGluZ05leHRQYWdlIHx8IHRoaXMubG9hZGluZ1ByZXZpb3VzUGFnZVxuICB9XG5cbiAgcHVibGljIHNob3dMaXN0TG9hZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBuZXh0UGFnZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5sb2FkaW5nUGFnZXMoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRyeSB7XG4gICAgICB0aGlzLmxvYWRpbmdOZXh0UGFnZSA9IHRydWVcbiAgICAgIHRoaXMub25OZXh0UGFnZS5lbWl0KHtcbiAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXG4gICAgICAgIG5leHRQYWdlOiB0aGlzLmN1cnJlbnRQYWdlICsgMVxuICAgICAgfSlcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UrK1xuICAgICAgY29uc3QgbmV4dEl0ZW1zID0gYXdhaXQgdGhpcy5uZXh0UGFnZUZuKHtcbiAgICAgICAgLi4udGhpcy5maWx0ZXIsXG4gICAgICAgIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXG4gICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLFxuICAgICAgICBuZXh0UGFnZUlkOiB0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMV0uaWRcbiAgICAgIH0pXG4gICAgICBpZiAobmV4dEl0ZW1zPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZS0tXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgdGhpcy5jdXJyZW50UGFnZUNoYW5nZS5lbWl0KHRoaXMuX2N1cnJlbnRQYWdlKVxuICAgICAgdGhpcy5faXRlbXMgPSB0aGlzLl9pdGVtcz8uY29uY2F0KG5leHRJdGVtcylcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2FkaW5nTmV4dFBhZ2UgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImFwaXBhc3MtaW5maW5pdGUtc2Nyb2xsLWNvbXBvbmVudFwiPlxuICA8ZGl2IGNsYXNzPVwiYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwtbGlzdFwiXG4gICAgICAgKm5nSWY9XCJpdGVtcz8ubGVuZ3RoID4gMFwiXG4gICAgICAgW2lkXT1cIidhcGlwYXNzLWluZmluaXRlLXNjcm9sbC1saXN0LScgKyBnZXRDdXJyZW50SWRcIlxuICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cIm1heEhlaWdodFwiXG4gICAgICAgW3N0eWxlLm1pbi1oZWlnaHRdPVwibWluSGVpZ2h0XCJcbiAgICAgICBpbmZpbml0ZVNjcm9sbFxuICAgICAgIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cImluZmluaXRlU2Nyb2xsRG93bkRpc3RhbmNlXCJcbiAgICAgICBbaW5maW5pdGVTY3JvbGxVcERpc3RhbmNlXT1cImluZmluaXRlU2Nyb2xsVXBEaXN0YW5jZVwiXG4gICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiaW5maW5pdGVTY3JvbGxUaHJvdHRsZVwiXG4gICAgICAgW2luZmluaXRlU2Nyb2xsRGlzYWJsZWRdPVwibG9hZGluZ1BhZ2VzKClcIlxuICAgICAgIChzY3JvbGxlZCk9XCJuZXh0UGFnZSgpXCJcbiAgICAgICBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCI+XG4gICAgPG92ZXJsYXktbG9hZGVyLWNvbXBvbmVudCBjbGFzcz1cImxvYWRlci10b3BcIiAqbmdJZj1cImxvYWRpbmdQcmV2aW91c1BhZ2VcIj48L292ZXJsYXktbG9hZGVyLWNvbXBvbmVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwtaXRlbVwiXG4gICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgW2lkXT1cIidhcGlwYXNzLWluZmluaXRlLXNjcm9sbC1pdGVtLScgKyBnZXRDdXJyZW50SWQgKyAnLScgKyAoaW5kZXggKyAxKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1zVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibG9hZGVyLWJvdHRvbS1jb250ZW50XCIgKm5nSWY9XCJsb2FkaW5nTmV4dFBhZ2VcIj5cbiAgICAgIDxvdmVybGF5LWxvYWRlci1jb21wb25lbnQgY2xhc3M9XCJsb2FkZXItYm90dG9tXCI+PC9vdmVybGF5LWxvYWRlci1jb21wb25lbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYXBpcGFzcy1pbmZpbml0ZS1zY3JvbGwtbGlzdC1uby1yb3dzXCIgKm5nSWY9XCJ0aGlzLnNob3dFbXB0eUxpc3QgJiYgIXNob3dMaXN0TG9hZGVyKCkgJiYgaXRlbXM/Lmxlbmd0aCA9PT0gMFwiPlxuICAgIHt7ZW1wdHlMaXN0TWVzc2FnZX19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -431,7 +431,6 @@ class ApipassInfiniteScrollComponent {
431
431
  loading;
432
432
  filter = {};
433
433
  nextPageFn;
434
- previousPageFn;
435
434
  refreshItems = new EventEmitter();
436
435
  showEmptyList;
437
436
  emptyListMessage = 'No Records Found...';
@@ -445,7 +444,6 @@ class ApipassInfiniteScrollComponent {
445
444
  loadingChange = new EventEmitter();
446
445
  currentPageChange = new EventEmitter();
447
446
  itemsTemplate;
448
- isFirstScrollToTop;
449
447
  loadingNextPage;
450
448
  loadingPreviousPage;
451
449
  constructor() {
@@ -477,7 +475,6 @@ class ApipassInfiniteScrollComponent {
477
475
  }
478
476
  try {
479
477
  this.loadingNextPage = true;
480
- this.isFirstScrollToTop = true;
481
478
  this.onNextPage.emit({
482
479
  currentPage: this.currentPage,
483
480
  nextPage: this.currentPage + 1
@@ -486,67 +483,26 @@ class ApipassInfiniteScrollComponent {
486
483
  const nextItems = await this.nextPageFn({
487
484
  ...this.filter,
488
485
  page: this.currentPage,
489
- pageSize: this.pageSize
486
+ pageSize: this.pageSize,
487
+ nextPageId: this.items[this.items.length - 1].id
490
488
  });
491
489
  if (nextItems?.length === 0) {
492
490
  this.currentPage--;
493
491
  return;
494
492
  }
495
493
  this.currentPageChange.emit(this._currentPage);
496
- const needRemoveLastPageSizeItems = this.currentPage > 2;
497
- this._items = needRemoveLastPageSizeItems ? this._items?.slice(this.pageSize).concat(nextItems) : this._items.concat(nextItems);
494
+ this._items = this._items?.concat(nextItems);
498
495
  }
499
496
  finally {
500
497
  this.loadingNextPage = false;
501
498
  }
502
499
  }
503
- async previousPage() {
504
- if (this.loadingPages()) {
505
- return;
506
- }
507
- try {
508
- this.loadingPreviousPage = true;
509
- this.currentPage = this.isFirstScrollToTop ? this.currentPage - 2 : this.currentPage - 1;
510
- const needScrollToLastElementBeforePreviousPage = this.currentPage > 0;
511
- this.currentPage = this.currentPage > 0 ? this.currentPage : 1;
512
- const previousItems = await this.previousPageFn({
513
- ...this.filter,
514
- page: this.currentPage,
515
- pageSize: this.pageSize
516
- });
517
- if (previousItems?.length === 0) {
518
- return;
519
- }
520
- this.currentPageChange.emit(this._currentPage);
521
- if (needScrollToLastElementBeforePreviousPage) {
522
- const currentItems = this.items?.slice(0, this.pageSize);
523
- this.items = previousItems.concat(currentItems);
524
- this.scrollToLastElementBeforePreviousPage();
525
- }
526
- else {
527
- this.items = previousItems;
528
- }
529
- }
530
- finally {
531
- this.isFirstScrollToTop = false;
532
- this.loadingPreviousPage = false;
533
- }
534
- }
535
- scrollToLastElementBeforePreviousPage() {
536
- setTimeout(() => {
537
- const scrollElement = document.getElementById(`apipass-infinite-scroll-list-${this.getCurrentId}`);
538
- const executionId = document.getElementById(`apipass-infinite-scroll-item-${this.getCurrentId}-${this.pageSize}`);
539
- if (scrollElement && executionId) {
540
- scrollElement.scrollTo({ top: executionId.offsetTop + executionId.clientHeight });
541
- }
542
- });
543
- }
544
500
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ApipassInfiniteScrollComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
545
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: ApipassInfiniteScrollComponent, selector: "apipass-infinite-scroll-component", inputs: { currentPage: "currentPage", items: "items", pageSize: "pageSize", loading: "loading", filter: "filter", nextPageFn: "nextPageFn", previousPageFn: "previousPageFn", refreshItems: "refreshItems", showEmptyList: "showEmptyList", emptyListMessage: "emptyListMessage", infiniteScrollDownDistance: "infiniteScrollDownDistance", infiniteScrollUpDistance: "infiniteScrollUpDistance", infiniteScrollThrottle: "infiniteScrollThrottle", maxHeight: "maxHeight", minHeight: "minHeight" }, outputs: { onNextPage: "onNextPage", onPreviousPage: "onPreviousPage", loadingChange: "loadingChange", currentPageChange: "currentPageChange" }, queries: [{ propertyName: "itemsTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div class=\"apipass-infinite-scroll-component\">\n <div class=\"apipass-infinite-scroll-list\"\n *ngIf=\"items?.length > 0\"\n [id]=\"'apipass-infinite-scroll-list-' + getCurrentId\"\n [style.max-height]=\"maxHeight\"\n [style.min-height]=\"minHeight\"\n infiniteScroll\n [infiniteScrollDistance]=\"infiniteScrollDownDistance\"\n [infiniteScrollUpDistance]=\"infiniteScrollUpDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollDisabled]=\"loadingPages()\"\n (scrolled)=\"nextPage()\"\n (scrolledUp)=\"previousPage()\"\n [scrollWindow]=\"false\">\n <overlay-loader-component class=\"loader-top\" *ngIf=\"loadingPreviousPage\"></overlay-loader-component>\n <div class=\"apipass-infinite-scroll-item\"\n *ngFor=\"let item of items; let index = index\"\n [id]=\"'apipass-infinite-scroll-item-' + getCurrentId + '-' + (index + 1)\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div class=\"loader-bottom-content\" *ngIf=\"loadingNextPage\">\n <overlay-loader-component class=\"loader-bottom\"></overlay-loader-component>\n </div>\n </div>\n <div class=\"apipass-infinite-scroll-list-no-rows\" *ngIf=\"this.showEmptyList && !showListLoader() && items?.length === 0\">\n {{emptyListMessage}}\n </div>\n</div>\n", styles: [".apipass-infinite-scroll-component .apipass-infinite-scroll-list{box-sizing:border-box;position:relative;max-height:calc(100vh - 450px);min-height:100px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent;overscroll-behavior:contain}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar{width:4px;position:absolute;inset:0}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb{background:#CBCBCB;border-radius:2px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.7)}.apipass-infinite-scroll-component .apipass-infinite-scroll-list .loader-bottom-content{position:sticky}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component{display:flex;justify-content:center;align-items:center;position:absolute;background:rgba(255,255,255,.7607843137);z-index:999;width:100%}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-top{top:0;box-shadow:0 5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-bottom{bottom:0;box-shadow:0 -5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component ::ng-deep mat-spinner{width:25px!important;height:50px;--mdc-circular-progress-size: 50px;--mdc-circular-progress-active-indicator-width: 50px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list-no-rows{width:100%;height:40px;display:flex;justify-content:center;align-items:center;margin-top:10px;border-radius:5px;border:1px solid #CCC;background:#EEE;color:var(--color-fonts-tertiary)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i3$2.OverlayLoaderComponent, selector: "overlay-loader-component" }] });
501
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: ApipassInfiniteScrollComponent, selector: "apipass-infinite-scroll-component", inputs: { currentPage: "currentPage", items: "items", pageSize: "pageSize", loading: "loading", filter: "filter", nextPageFn: "nextPageFn", refreshItems: "refreshItems", showEmptyList: "showEmptyList", emptyListMessage: "emptyListMessage", infiniteScrollDownDistance: "infiniteScrollDownDistance", infiniteScrollUpDistance: "infiniteScrollUpDistance", infiniteScrollThrottle: "infiniteScrollThrottle", maxHeight: "maxHeight", minHeight: "minHeight" }, outputs: { onNextPage: "onNextPage", onPreviousPage: "onPreviousPage", loadingChange: "loadingChange", currentPageChange: "currentPageChange" }, queries: [{ propertyName: "itemsTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div class=\"apipass-infinite-scroll-component\">\n <div class=\"apipass-infinite-scroll-list\"\n *ngIf=\"items?.length > 0\"\n [id]=\"'apipass-infinite-scroll-list-' + getCurrentId\"\n [style.max-height]=\"maxHeight\"\n [style.min-height]=\"minHeight\"\n infiniteScroll\n [infiniteScrollDistance]=\"infiniteScrollDownDistance\"\n [infiniteScrollUpDistance]=\"infiniteScrollUpDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollDisabled]=\"loadingPages()\"\n (scrolled)=\"nextPage()\"\n [scrollWindow]=\"false\">\n <overlay-loader-component class=\"loader-top\" *ngIf=\"loadingPreviousPage\"></overlay-loader-component>\n <div class=\"apipass-infinite-scroll-item\"\n *ngFor=\"let item of items; let index = index\"\n [id]=\"'apipass-infinite-scroll-item-' + getCurrentId + '-' + (index + 1)\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div class=\"loader-bottom-content\" *ngIf=\"loadingNextPage\">\n <overlay-loader-component class=\"loader-bottom\"></overlay-loader-component>\n </div>\n </div>\n <div class=\"apipass-infinite-scroll-list-no-rows\" *ngIf=\"this.showEmptyList && !showListLoader() && items?.length === 0\">\n {{emptyListMessage}}\n </div>\n</div>\n", styles: [".apipass-infinite-scroll-component .apipass-infinite-scroll-list{box-sizing:border-box;position:relative;max-height:calc(100vh - 450px);min-height:100px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent;overscroll-behavior:contain}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar{width:4px;position:absolute;inset:0}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb{background:#CBCBCB;border-radius:2px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.7)}.apipass-infinite-scroll-component .apipass-infinite-scroll-list .loader-bottom-content{position:sticky}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component{display:flex;justify-content:center;align-items:center;position:absolute;background:rgba(255,255,255,.7607843137);z-index:999;width:100%}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-top{top:0;box-shadow:0 5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-bottom{bottom:0;box-shadow:0 -5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component ::ng-deep mat-spinner{width:25px!important;height:50px;--mdc-circular-progress-size: 50px;--mdc-circular-progress-active-indicator-width: 50px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list-no-rows{width:100%;height:40px;display:flex;justify-content:center;align-items:center;margin-top:10px;border-radius:5px;border:1px solid #CCC;background:#EEE;color:var(--color-fonts-tertiary)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i3$2.OverlayLoaderComponent, selector: "overlay-loader-component" }] });
546
502
  }
547
503
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ApipassInfiniteScrollComponent, decorators: [{
548
504
  type: Component,
549
- args: [{ selector: 'apipass-infinite-scroll-component', template: "<div class=\"apipass-infinite-scroll-component\">\n <div class=\"apipass-infinite-scroll-list\"\n *ngIf=\"items?.length > 0\"\n [id]=\"'apipass-infinite-scroll-list-' + getCurrentId\"\n [style.max-height]=\"maxHeight\"\n [style.min-height]=\"minHeight\"\n infiniteScroll\n [infiniteScrollDistance]=\"infiniteScrollDownDistance\"\n [infiniteScrollUpDistance]=\"infiniteScrollUpDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollDisabled]=\"loadingPages()\"\n (scrolled)=\"nextPage()\"\n (scrolledUp)=\"previousPage()\"\n [scrollWindow]=\"false\">\n <overlay-loader-component class=\"loader-top\" *ngIf=\"loadingPreviousPage\"></overlay-loader-component>\n <div class=\"apipass-infinite-scroll-item\"\n *ngFor=\"let item of items; let index = index\"\n [id]=\"'apipass-infinite-scroll-item-' + getCurrentId + '-' + (index + 1)\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div class=\"loader-bottom-content\" *ngIf=\"loadingNextPage\">\n <overlay-loader-component class=\"loader-bottom\"></overlay-loader-component>\n </div>\n </div>\n <div class=\"apipass-infinite-scroll-list-no-rows\" *ngIf=\"this.showEmptyList && !showListLoader() && items?.length === 0\">\n {{emptyListMessage}}\n </div>\n</div>\n", styles: [".apipass-infinite-scroll-component .apipass-infinite-scroll-list{box-sizing:border-box;position:relative;max-height:calc(100vh - 450px);min-height:100px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent;overscroll-behavior:contain}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar{width:4px;position:absolute;inset:0}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb{background:#CBCBCB;border-radius:2px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.7)}.apipass-infinite-scroll-component .apipass-infinite-scroll-list .loader-bottom-content{position:sticky}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component{display:flex;justify-content:center;align-items:center;position:absolute;background:rgba(255,255,255,.7607843137);z-index:999;width:100%}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-top{top:0;box-shadow:0 5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-bottom{bottom:0;box-shadow:0 -5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component ::ng-deep mat-spinner{width:25px!important;height:50px;--mdc-circular-progress-size: 50px;--mdc-circular-progress-active-indicator-width: 50px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list-no-rows{width:100%;height:40px;display:flex;justify-content:center;align-items:center;margin-top:10px;border-radius:5px;border:1px solid #CCC;background:#EEE;color:var(--color-fonts-tertiary)!important}\n"] }]
505
+ args: [{ selector: 'apipass-infinite-scroll-component', template: "<div class=\"apipass-infinite-scroll-component\">\n <div class=\"apipass-infinite-scroll-list\"\n *ngIf=\"items?.length > 0\"\n [id]=\"'apipass-infinite-scroll-list-' + getCurrentId\"\n [style.max-height]=\"maxHeight\"\n [style.min-height]=\"minHeight\"\n infiniteScroll\n [infiniteScrollDistance]=\"infiniteScrollDownDistance\"\n [infiniteScrollUpDistance]=\"infiniteScrollUpDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollDisabled]=\"loadingPages()\"\n (scrolled)=\"nextPage()\"\n [scrollWindow]=\"false\">\n <overlay-loader-component class=\"loader-top\" *ngIf=\"loadingPreviousPage\"></overlay-loader-component>\n <div class=\"apipass-infinite-scroll-item\"\n *ngFor=\"let item of items; let index = index\"\n [id]=\"'apipass-infinite-scroll-item-' + getCurrentId + '-' + (index + 1)\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div class=\"loader-bottom-content\" *ngIf=\"loadingNextPage\">\n <overlay-loader-component class=\"loader-bottom\"></overlay-loader-component>\n </div>\n </div>\n <div class=\"apipass-infinite-scroll-list-no-rows\" *ngIf=\"this.showEmptyList && !showListLoader() && items?.length === 0\">\n {{emptyListMessage}}\n </div>\n</div>\n", styles: [".apipass-infinite-scroll-component .apipass-infinite-scroll-list{box-sizing:border-box;position:relative;max-height:calc(100vh - 450px);min-height:100px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent;overscroll-behavior:contain}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar{width:4px;position:absolute;inset:0}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb{background:#CBCBCB;border-radius:2px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.7)}.apipass-infinite-scroll-component .apipass-infinite-scroll-list .loader-bottom-content{position:sticky}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component{display:flex;justify-content:center;align-items:center;position:absolute;background:rgba(255,255,255,.7607843137);z-index:999;width:100%}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-top{top:0;box-shadow:0 5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component.loader-bottom{bottom:0;box-shadow:0 -5px 10px 2px #ffffffc2}.apipass-infinite-scroll-component .apipass-infinite-scroll-list overlay-loader-component ::ng-deep mat-spinner{width:25px!important;height:50px;--mdc-circular-progress-size: 50px;--mdc-circular-progress-active-indicator-width: 50px}.apipass-infinite-scroll-component .apipass-infinite-scroll-list-no-rows{width:100%;height:40px;display:flex;justify-content:center;align-items:center;margin-top:10px;border-radius:5px;border:1px solid #CCC;background:#EEE;color:var(--color-fonts-tertiary)!important}\n"] }]
550
506
  }], ctorParameters: function () { return []; }, propDecorators: { currentPage: [{
551
507
  type: Input
552
508
  }], items: [{
@@ -559,8 +515,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
559
515
  type: Input
560
516
  }], nextPageFn: [{
561
517
  type: Input
562
- }], previousPageFn: [{
563
- type: Input
564
518
  }], refreshItems: [{
565
519
  type: Input
566
520
  }], showEmptyList: [{
@@ -1 +1 @@
1
- {"version":3,"file":"apipass-containers.mjs","sources":["../../../projects/containers/src/centralized-container/centralized-container.component.ts","../../../projects/containers/src/centralized-container/centralized-container.component.html","../../../projects/containers/src/configuration-page-content/configuration-page.component.ts","../../../projects/containers/src/configuration-page-content/configuration-page.component.html","../../../projects/containers/src/breadcrumb/breadcrumb.component.ts","../../../projects/containers/src/breadcrumb/breadcrumb.component.html","../../../projects/containers/src/configuration-page-title/configuration-page-title.component.ts","../../../projects/containers/src/configuration-page-title/configuration-page-title.component.html","../../../projects/containers/src/duration/duration-timeline/duration-timeline.component.ts","../../../projects/containers/src/duration/duration-timeline/duration-timeline.component.html","../../../projects/containers/src/duration/duration-progressbar/duration-progressbar.component.ts","../../../projects/containers/src/duration/duration-progressbar/duration-progressbar.component.html","../../../projects/containers/src/apipass-infinite-scroll/apipass-infinite-scroll.component.ts","../../../projects/containers/src/apipass-infinite-scroll/apipass-infinite-scroll.component.html","../../../projects/containers/src/containers.module.ts","../../../projects/containers/src/apipass-containers.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'\nimport { NgScrollbar } from 'ngx-scrollbar'\n\n@Component({\n selector: 'centralized-container',\n templateUrl: 'centralized-container.component.html',\n styleUrls: ['centralized-container.component.scss']\n})\nexport class CentralizedContainerComponent {\n\n public searchTerm = ''\n\n @Input() public searchLabel: string\n @Input() public hasSearch = true\n @Input() public ignoreZoom = false\n\n @Output()\n public searchChanged = new EventEmitter<string>()\n\n @ViewChild(NgScrollbar, { static: true })\n public scrollbarRef: NgScrollbar | undefined\n\n public searchTermChanged (): void {\n this.searchChanged.emit(this.searchTerm)\n }\n\n}\n","<div class=\"centralized-container\" [ngClass]=\"{'centralized-container-zoom': !ignoreZoom}\">\n <ng-scrollbar [visibility]=\"'hover'\">\n <div class=\"list-content\">\n <div class=\"list-search\" *ngIf=\"hasSearch\">\n <mat-form-field>\n <mat-label *ngIf=\"searchLabel\">{{searchLabel}}</mat-label>\n <input matInput type=\"search\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"searchTermChanged()\" />\n <mat-icon class=\"search-icon\" matSuffix>search</mat-icon>\n </mat-form-field>\n </div>\n <ng-content></ng-content>\n </div>\n </ng-scrollbar>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'\nimport { NgScrollbar } from 'ngx-scrollbar'\nimport { Subject } from 'rxjs'\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators'\n\n@Component({\n selector: 'configuration-page-container',\n templateUrl: 'configuration-page.component.html',\n styleUrls: ['configuration-page.component.scss']\n})\nexport class ConfigurationPageComponent {\n\n public searchTerm = ''\n\n @Input() public verticalSeparate = false\n @Input() public footerPaginator = false\n @Input() public hasSearch = true\n @Input() public searchDebounceTime = 1000\n @Input() public searchLabel = ''\n\n txtQueryChanged: Subject<string> = new Subject<string>()\n\n @Output() public searchChanged = new EventEmitter<string>()\n @Output() public searchClick = new EventEmitter<string>()\n\n @ViewChild(NgScrollbar, { static: true })\n public scrollbarRef: NgScrollbar | undefined\n\n constructor () {\n this.txtQueryChanged.pipe(\n debounceTime(this.searchDebounceTime),\n distinctUntilChanged()).subscribe(model => { this.searchChanged.next(model) }\n )\n }\n\n public searchTermChanged (): void {\n this.txtQueryChanged.next(this.searchTerm)\n }\n\n public searchIconClick (): void {\n this.searchClick.next(this.searchTerm)\n }\n\n}\n","<div class=\"configuration-page-container\" [ngClass]=\"{'footer-paginator': footerPaginator}\">\n <ng-scrollbar [visibility]=\"'hover'\">\n <div class=\"list-content\">\n <div class=\"list-search\" *ngIf=\"hasSearch\">\n <mat-form-field class=\"apipass-search-input-text search-input-item small-text\"\n [ngClass]=\"{'label-input': searchLabel}\"\n appearance=\"outline\">\n <mat-label *ngIf=\"searchLabel\">{{searchLabel}}</mat-label>\n <input matInput type=\"search\" class=\"search-input\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"searchTermChanged()\"\n />\n <mat-icon class=\"search-icon\" matSuffix (click)=\"searchIconClick()\">search</mat-icon>\n </mat-form-field>\n </div>\n\n <div class=\"container-content\" [ngClass]=\"{'vertical-separate': verticalSeparate}\">\n <ng-content></ng-content>\n </div>\n </div>\n </ng-scrollbar>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core'\n\nexport interface BreadCrumbItemClickEvent {\n index: number\n item: any\n}\n\n@Component({\n selector: 'breadcrumb-component',\n templateUrl: 'breadcrumb.component.html',\n styleUrls: ['breadcrumb.component.scss']\n})\nexport class BreadcrumbComponent {\n\n @Input()\n public icon: string = 'keyboard_arrow_right'\n\n @Input()\n public items: any = []\n\n @Input()\n public labelProperty: string = 'label'\n\n @Input()\n public showBackButtonIcon: boolean = true\n\n @Input()\n public rightBackButton: boolean = false\n\n @Input()\n public backButtonIconTitle: string = 'Back'\n\n @Input()\n public backButtonIconSize: number = 25\n\n @Input()\n public backButtonIconType: string = 'primary clickable'\n\n @Input()\n public backButtonIconName: string = 'arrow_circle_left'\n\n @Input()\n public backButtonUseMaterialIcon: boolean = true\n\n @Output()\n public itemClick: EventEmitter<BreadCrumbItemClickEvent> = new EventEmitter<BreadCrumbItemClickEvent>()\n\n @Output()\n public backButtonClick: EventEmitter<void> = new EventEmitter<void>()\n\n public eventClick (index: number, item: any): any {\n this.items.splice(index + 1, this.items.length - 1)\n this.itemClick.emit({ index, item })\n }\n\n public backBreadcrumbNavigation(): void {\n const index = this.items.length - 2;\n if (index >= 0) {\n this.eventClick(index, this.items[index])\n this.backButtonClick.emit()\n }\n }\n\n}\n","<div class=\"breadcrumb-component\" *ngIf=\"items.length > 0\">\n <mat-toolbar color=\"primary\">\n <icon class=\"back-icon\" [ngClass]=\"{'left-back-button': !rightBackButton}\"\n *ngIf=\"showBackButtonIcon && !rightBackButton && items.length > 1\"\n [isMaterialIcon]=\"backButtonUseMaterialIcon\"\n [type]=\"backButtonIconType\"\n [size]=\"backButtonIconSize\"\n [title]=\"backButtonIconTitle\"\n [name]=\"backButtonIconName\"\n (onClick)=\"backBreadcrumbNavigation()\">\n </icon>\n <span *ngFor=\"let header of items; let indx = index, let last = last\">\n <a mat-button\n [ngClass]=\"!last ? 'text-link' : 'default-cursor'\"\n (click)=\"!last ? eventClick(indx, header) : undefined\">{{header[labelProperty]}}\n <mat-icon *ngIf=\"!last\">{{icon}}</mat-icon>\n </a>\n </span>\n <icon class=\"back-icon\" [ngClass]=\"{'right-back-button': rightBackButton}\"\n *ngIf=\"showBackButtonIcon && rightBackButton && items.length > 1\"\n [isMaterialIcon]=\"backButtonUseMaterialIcon\"\n [type]=\"backButtonIconType\"\n [size]=\"backButtonIconSize\"\n [title]=\"backButtonIconTitle\"\n [name]=\"backButtonIconName\"\n (onClick)=\"backBreadcrumbNavigation()\">\n </icon>\n </mat-toolbar>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'configuration-page-title',\n templateUrl: 'configuration-page-title.component.html',\n styleUrls: ['configuration-page-title.component.scss']\n})\nexport class ConfigurationPageTitleComponent {\n\n @Input() public icon: string;\n @Input() public isMaterialIcon = false;\n @Input() public materialOutline = false;\n\n @Input() public title: string;\n @Input() public buttonText: string;\n @Input() public buttonIcon: string;\n\n @Output() public onNewButtonClick = new EventEmitter<boolean>();\n\n public newButtonClick(): void {\n this.onNewButtonClick.emit(true);\n }\n\n}\n","<div class=\"configuration-title\">\n\n <div class=\"text\">\n <icon *ngIf=\"icon\"\n [ngClass]=\"{'title-icon-material': isMaterialIcon}\"\n [isMaterialIcon]=\"isMaterialIcon\"\n [materialOutline]=\"materialOutline\"\n [type]=\"'configuration-icon'\"\n [name]=\"icon\">\n </icon>\n {{title}}\n </div>\n\n <div class=\"button\" *ngIf=\"buttonText\">\n <secondary-button\n [btnClass]=\"'font-black'\"\n [icon]=\"buttonIcon\"\n [label]=\"buttonText\"\n (onClick)=\"newButtonClick()\">\n </secondary-button>\n </div>\n\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport moment from 'moment-timezone';\n\n@Component({\n selector: 'duration-timeline-component',\n templateUrl: 'duration-timeline.component.html',\n styleUrls: ['duration-timeline.component.scss']\n})\nexport class DurationTimelineComponent implements OnInit {\n\n public timeLineParts: number[] = [];\n public running: boolean\n\n private _startDate: Date;\n private _endDate: Date;\n private _durationParts: number = 0\n\n /*\n * If this option is true, depending on the total duration time and numbers of the duration parts, numbers can be repeated on timeline.\n */\n @Input()\n public onlyLargestUnit: boolean\n\n @Input()\n public runningLabel: string = '---'\n\n @Input()\n public runningTooltip: string = 'Running'\n\n @Input()\n public timezone: string = 'America/Sao_Paulo';\n\n @Input()\n set startDate(date: Date | string) {\n this._startDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get startDate(): Date {\n return this._startDate;\n }\n\n @Input()\n set endDate(date: Date | string) {\n this._endDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get endDate(): Date {\n return this._endDate;\n }\n\n @Input()\n public set durationParts(parts: number) {\n this._durationParts = parts;\n this.initialize().then()\n }\n\n get durationParts(): number {\n return this._durationParts;\n }\n\n async ngOnInit(): Promise<void> {\n await this.initialize();\n }\n\n public async initialize(): Promise<void> {\n this.running = false;\n if (!this.startDate || !this.durationParts) {\n return\n }\n if (!this.endDate) {\n this.running = true;\n }\n\n const durationTime = this.getTotalDuration(this.endDate || moment().tz(this.timezone).toDate());\n if (durationTime <= 0) {\n return\n }\n this.timeLineParts = [];\n const timeAggregation = durationTime / this.durationParts;\n for (let i = 0; i < this.durationParts; i++) {\n this.timeLineParts.push(timeAggregation * (i + 1));\n }\n }\n\n public getTotalDuration(endDate: Date): number {\n return moment(endDate).tz(this.timezone).diff(moment(this.startDate).tz(this.timezone), 'milliseconds')\n }\n\n public stringToDate(date: Date | string): Date {\n if (!date) {\n return null;\n }\n return moment(date).tz(this.timezone).toDate()\n }\n\n getDurationWidth(): string {\n return `${100 / this._durationParts}%`\n }\n\n}\n","<div class=\"duration-timeline-component\" *ngIf=\"timeLineParts?.length > 0\">\n <div class=\"duration-timeline\">\n <div class=\"duration-item\"\n [style.width]=\"getDurationWidth()\"\n [ngClass]=\"{ 'duration-item-first' : first, 'duration-item-last' : last }\"\n *ngFor=\"let duration of timeLineParts; let first = first; let last = last\">\n <span class=\"duration-label\" [matTooltip]=\"duration | durationTime: { onlyLargestUnit }\" *ngIf=\"!running || !last\">\n {{duration | durationTime: { onlyLargestUnit } }}\n </span>\n <span class=\"duration-label\" [matTooltip]=\"runningTooltip\" *ngIf=\"running && last\">\n {{runningLabel}}\n </span>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DurationPipe } from '@apipass/pipes'\nimport moment from 'moment-timezone';\n\n@Component({\n selector: 'duration-progressbar-component',\n templateUrl: 'duration-progressbar.component.html',\n styleUrls: ['duration-progressbar.component.scss']\n})\nexport class DurationProgressbarComponent implements OnInit {\n\n public running: boolean\n\n private _startDate: Date;\n private _endDate: Date;\n private _startPartDate: Date;\n private _endPartDate: Date;\n\n @Input()\n public barHeight: number = 20\n\n @Input()\n public progressHeight: number = 18\n\n @Input()\n public runningTooltip: string = 'Running'\n\n @Input()\n public progressTooltipConjunction = 'of'\n\n @Input()\n public timezone: string = 'America/Sao_Paulo';\n\n public totalDurationTime: number;\n public partDurationTime: number;\n\n public startPercentage: number;\n public progressWidth: number\n public progressPercentValue: number\n\n constructor(private readonly durationPipe: DurationPipe) {\n }\n\n @Input()\n set startPartDate(date: Date | string) {\n this._startPartDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get startPartDate(): Date {\n return this._startPartDate;\n }\n\n @Input()\n set endPartDate(date: Date | string) {\n this._endPartDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get endPartDate(): Date {\n return this._endPartDate;\n }\n\n @Input()\n set startDate(date: Date | string) {\n this._startDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get startDate(): Date {\n return this._startDate;\n }\n\n @Input()\n set endDate(date: Date | string) {\n this._endDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get endDate(): Date {\n return this._endDate;\n }\n\n async ngOnInit(): Promise<void> {\n await this.initialize();\n }\n\n public async initialize(): Promise<void> {\n this.running = false;\n if (!this.startDate || !this.startPartDate) {\n return\n }\n if (!this.endPartDate) {\n this.running = true;\n }\n\n const startPartGapTime = this.getTotalDuration(this.startDate, this.startPartDate);\n this.totalDurationTime = this.getTotalDuration(this.startDate, this.endDate || moment().tz(this.timezone).toDate());\n this.partDurationTime = this.getTotalDuration(this.startPartDate, this.endPartDate || moment().tz(this.timezone).toDate());\n\n this.startPercentage = (100 * startPartGapTime) / this.totalDurationTime\n this.progressWidth = (100 * this.partDurationTime) / this.totalDurationTime\n this.progressPercentValue = this.progressWidth\n\n if (this.progressWidth > 100) {\n this.progressWidth = 100\n } else if (this.progressWidth < 1) {\n this.progressWidth = 1\n }\n\n if (this.startPercentage + this.progressWidth > 100) {\n this.startPercentage = 100 - this.progressWidth\n }\n\n if (this.startPercentage > 99) {\n this.startPercentage = 99\n } else if (this.startPercentage < 0) {\n this.startPercentage = 0\n }\n }\n\n public getTotalDuration(startDate: Date, endDate: Date): number {\n return moment(endDate).tz(this.timezone).diff(moment(startDate).tz(this.timezone), 'milliseconds')\n }\n\n public stringToDate(date: Date | string): Date {\n if (!date) {\n return null;\n }\n return moment(date).tz(this.timezone).toDate();\n }\n\n public getTooltipText(): string {\n if (this.running) {\n return `${this.runningTooltip} (${this.durationPipe.transform(this.partDurationTime)})`\n }\n return `${this.durationPipe.transform(this.partDurationTime)} (${this.progressPercentValue.toFixed(1)}%) ${this.progressTooltipConjunction} ${this.durationPipe.transform(this.totalDurationTime)}`\n }\n\n}\n","<div class=\"duration-progressbar-component\" [ngClass]=\"{'duration-progressbar-component-running': running}\" [style.height.px]=\"barHeight\">\n <div class=\"duration-current-progress\"\n [ngClass]=\"{'duration-current-progress-running': running}\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n </div>\n <div class=\"duration-value\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n <span class=\"duration-text\" [style.height.px]=\"progressHeight\" [ngClass]=\"{'duration-text-running': running}\">\n {{partDurationTime | durationTime}} ({{progressPercentValue.toFixed(0)}}%)\n </span>\n </div>\n</div>\n","import { Component, ContentChild, EventEmitter, Input, OnDestroy, OnInit, Output, TemplateRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nexport interface NextPageEvent {\n currentPage: number\n nextPage: number\n}\n\nexport interface PreviousPageEvent {\n currentPage: number\n previousPage: number\n}\n\nexport interface RefreshItemsEvent {\n continueOnTheSamePage?: boolean\n}\n\n@Component({\n selector: 'apipass-infinite-scroll-component',\n templateUrl: 'apipass-infinite-scroll.component.html',\n styleUrls: ['apipass-infinite-scroll.component.scss']\n})\nexport class ApipassInfiniteScrollComponent implements OnInit, OnDestroy {\n\n private subscriptions: Subscription[] = []\n private readonly _currentId: string\n\n get getCurrentId(): string {\n return this._currentId\n }\n\n private _items: any[] = []\n private _currentPage: number = 1\n\n @Input()\n set currentPage(page: number) {\n this._currentPage = page\n }\n\n get currentPage(): number {\n return this._currentPage\n }\n\n @Input()\n set items(items: any[]) {\n this._items = items\n }\n\n get items(): any[] {\n return this._items\n }\n\n @Input()\n public pageSize: number = 50\n\n @Input()\n public loading: boolean\n\n @Input()\n public filter: Record<string, any> = {}\n\n @Input()\n public nextPageFn: (params: any) => Promise<any[]>\n\n @Input()\n public previousPageFn: (params: any) => Promise<any[]>\n\n @Input()\n public refreshItems: EventEmitter<RefreshItemsEvent> = new EventEmitter<RefreshItemsEvent>()\n\n @Input()\n public showEmptyList: boolean\n\n @Input()\n public emptyListMessage: string = 'No Records Found...'\n\n @Input()\n public infiniteScrollDownDistance: number = 2\n\n @Input()\n public infiniteScrollUpDistance: number = 0.5\n\n @Input()\n public infiniteScrollThrottle: number = 150\n\n @Input()\n public maxHeight: string = '100vh'\n\n @Input()\n public minHeight: string = '50px'\n\n @Output()\n public onNextPage: EventEmitter<NextPageEvent> = new EventEmitter<NextPageEvent>()\n\n @Output()\n public onPreviousPage: EventEmitter<PreviousPageEvent> = new EventEmitter<PreviousPageEvent>()\n\n @Output()\n public loadingChange: EventEmitter<boolean> = new EventEmitter<boolean>()\n\n @Output()\n public currentPageChange: EventEmitter<number> = new EventEmitter<number>()\n\n @ContentChild(TemplateRef) itemsTemplate: TemplateRef<any>;\n\n private isFirstScrollToTop: boolean\n protected loadingNextPage: boolean\n protected loadingPreviousPage: boolean\n\n constructor() {\n this._currentId = Math.random().toString(36).substring(2)\n }\n\n public ngOnInit(): void {\n this.subscriptions.push(this.refreshItems.subscribe(($event) => {\n if (!$event?.continueOnTheSamePage) {\n this._currentPage = 0\n this.currentPageChange.emit(this._currentPage)\n }\n }))\n }\n\n public ngOnDestroy(): void {\n this.subscriptions?.forEach(subscription => {\n subscription.unsubscribe()\n })\n this.subscriptions = []\n }\n\n public loadingPages(): boolean {\n return this.loadingNextPage || this.loadingPreviousPage\n }\n\n public showListLoader(): boolean {\n return this.loading\n }\n\n protected async nextPage(): Promise<void> {\n if (this.loadingPages()) {\n return\n }\n try {\n this.loadingNextPage = true\n this.isFirstScrollToTop = true\n this.onNextPage.emit({\n currentPage: this.currentPage,\n nextPage: this.currentPage + 1\n })\n this.currentPage++\n const nextItems = await this.nextPageFn({\n ...this.filter,\n page: this.currentPage,\n pageSize: this.pageSize\n })\n if (nextItems?.length === 0) {\n this.currentPage--\n return\n }\n this.currentPageChange.emit(this._currentPage)\n const needRemoveLastPageSizeItems = this.currentPage > 2;\n this._items = needRemoveLastPageSizeItems ? this._items?.slice(this.pageSize).concat(nextItems) : this._items.concat(nextItems)\n } finally {\n this.loadingNextPage = false;\n }\n }\n\n protected async previousPage(): Promise<void> {\n if (this.loadingPages()) {\n return\n }\n try {\n this.loadingPreviousPage = true\n this.currentPage = this.isFirstScrollToTop ? this.currentPage - 2 : this.currentPage - 1\n const needScrollToLastElementBeforePreviousPage = this.currentPage > 0\n this.currentPage = this.currentPage > 0 ? this.currentPage : 1\n const previousItems = await this.previousPageFn({\n ...this.filter,\n page: this.currentPage,\n pageSize: this.pageSize\n })\n if (previousItems?.length === 0) {\n return\n }\n this.currentPageChange.emit(this._currentPage)\n if (needScrollToLastElementBeforePreviousPage) {\n const currentItems = this.items?.slice(0, this.pageSize);\n this.items = previousItems.concat(currentItems)\n this.scrollToLastElementBeforePreviousPage();\n } else {\n this.items = previousItems\n }\n } finally {\n this.isFirstScrollToTop = false\n this.loadingPreviousPage = false\n }\n }\n\n private scrollToLastElementBeforePreviousPage(): void {\n setTimeout(() => {\n const scrollElement = document.getElementById(`apipass-infinite-scroll-list-${this.getCurrentId}`);\n const executionId = document.getElementById(`apipass-infinite-scroll-item-${this.getCurrentId}-${this.pageSize}`)\n if (scrollElement && executionId) {\n scrollElement.scrollTo({ top: executionId.offsetTop + executionId.clientHeight })\n }\n })\n }\n\n}\n","<div class=\"apipass-infinite-scroll-component\">\n <div class=\"apipass-infinite-scroll-list\"\n *ngIf=\"items?.length > 0\"\n [id]=\"'apipass-infinite-scroll-list-' + getCurrentId\"\n [style.max-height]=\"maxHeight\"\n [style.min-height]=\"minHeight\"\n infiniteScroll\n [infiniteScrollDistance]=\"infiniteScrollDownDistance\"\n [infiniteScrollUpDistance]=\"infiniteScrollUpDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollDisabled]=\"loadingPages()\"\n (scrolled)=\"nextPage()\"\n (scrolledUp)=\"previousPage()\"\n [scrollWindow]=\"false\">\n <overlay-loader-component class=\"loader-top\" *ngIf=\"loadingPreviousPage\"></overlay-loader-component>\n <div class=\"apipass-infinite-scroll-item\"\n *ngFor=\"let item of items; let index = index\"\n [id]=\"'apipass-infinite-scroll-item-' + getCurrentId + '-' + (index + 1)\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div class=\"loader-bottom-content\" *ngIf=\"loadingNextPage\">\n <overlay-loader-component class=\"loader-bottom\"></overlay-loader-component>\n </div>\n </div>\n <div class=\"apipass-infinite-scroll-list-no-rows\" *ngIf=\"this.showEmptyList && !showListLoader() && items?.length === 0\">\n {{emptyListMessage}}\n </div>\n</div>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { RouterModule } from '@angular/router'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { CentralizedContainerComponent } from './centralized-container/centralized-container.component'\nimport { ConfigurationPageComponent } from './configuration-page-content/configuration-page.component'\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component'\nimport { NgScrollbarModule } from 'ngx-scrollbar'\nimport { MatFormFieldModule } from '@angular/material/form-field'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatInputModule } from '@angular/material/input'\nimport { IconsModule } from '@apipass/icons'\nimport { ButtonsModule } from '@apipass/buttons'\nimport { PipeModule } from '@apipass/pipes'\nimport { LoadersModule } from '@apipass/loaders'\nimport { MatToolbarModule } from '@angular/material/toolbar'\nimport { ConfigurationPageTitleComponent } from './configuration-page-title/configuration-page-title.component'\nimport { DurationTimelineComponent } from './duration/duration-timeline/duration-timeline.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DurationProgressbarComponent } from './duration/duration-progressbar/duration-progressbar.component';\nimport { ApipassInfiniteScrollComponent } from './apipass-infinite-scroll/apipass-infinite-scroll.component';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n IconsModule,\n ButtonsModule,\n NgScrollbarModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatToolbarModule,\n PipeModule,\n MatTooltipModule,\n InfiniteScrollModule,\n LoadersModule\n ],\n declarations: [\n CentralizedContainerComponent,\n ConfigurationPageComponent,\n BreadcrumbComponent,\n ConfigurationPageTitleComponent,\n DurationTimelineComponent,\n DurationProgressbarComponent,\n ApipassInfiniteScrollComponent\n ],\n exports: [\n CentralizedContainerComponent,\n ConfigurationPageComponent,\n BreadcrumbComponent,\n ConfigurationPageTitleComponent,\n DurationTimelineComponent,\n DurationProgressbarComponent,\n ApipassInfiniteScrollComponent\n ],\n providers: []\n})\nexport class ContainersModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i4","i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAKa,6BAA6B,CAAA;IAEjC,UAAU,GAAG,EAAE,CAAA;AAEN,IAAA,WAAW,CAAQ;IACnB,SAAS,GAAG,IAAI,CAAA;IAChB,UAAU,GAAG,KAAK,CAAA;AAG3B,IAAA,aAAa,GAAG,IAAI,YAAY,EAAU,CAAA;AAG1C,IAAA,YAAY,CAAyB;IAErC,iBAAiB,GAAA;QACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KACzC;uGAhBU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAA7B,6BAA6B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAW7B,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBxB,knBAcA,EAAA,MAAA,EAAA,CAAA,syBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDNa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,knBAAA,EAAA,MAAA,EAAA,CAAA,syBAAA,CAAA,EAAA,CAAA;8BAQjB,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBAGC,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAIA,YAAY,EAAA,CAAA;sBADlB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AEd1C,MAKa,0BAA0B,CAAA;IAE9B,UAAU,GAAG,EAAE,CAAA;IAEN,gBAAgB,GAAG,KAAK,CAAA;IACxB,eAAe,GAAG,KAAK,CAAA;IACvB,SAAS,GAAG,IAAI,CAAA;IAChB,kBAAkB,GAAG,IAAI,CAAA;IACzB,WAAW,GAAG,EAAE,CAAA;AAEhC,IAAA,eAAe,GAAoB,IAAI,OAAO,EAAU,CAAA;AAEvC,IAAA,aAAa,GAAG,IAAI,YAAY,EAAU,CAAA;AAC1C,IAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAA;AAGlD,IAAA,YAAY,CAAyB;AAE5C,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,EACrC,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,IAAM,EAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,EAAE,CAC9E,CAAA;KACF;IAEM,iBAAiB,GAAA;QACtB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KAC3C;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KACvC;uGA/BU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAe1B,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzBxB,6/BAsBA,EAAA,MAAA,EAAA,CAAA,o/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDZa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,6/BAAA,EAAA,MAAA,EAAA,CAAA,o/BAAA,CAAA,EAAA,CAAA;0EAQxB,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACU,kBAAkB,EAAA,CAAA;sBAAjC,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAIW,aAAa,EAAA,CAAA;sBAA7B,MAAM;gBACU,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBAGA,YAAY,EAAA,CAAA;sBADlB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AElB1C,MAKa,mBAAmB,CAAA;IAGvB,IAAI,GAAW,sBAAsB,CAAA;IAGrC,KAAK,GAAQ,EAAE,CAAA;IAGf,aAAa,GAAW,OAAO,CAAA;IAG/B,kBAAkB,GAAY,IAAI,CAAA;IAGlC,eAAe,GAAY,KAAK,CAAA;IAGhC,mBAAmB,GAAW,MAAM,CAAA;IAGpC,kBAAkB,GAAW,EAAE,CAAA;IAG/B,kBAAkB,GAAW,mBAAmB,CAAA;IAGhD,kBAAkB,GAAW,mBAAmB,CAAA;IAGhD,yBAAyB,GAAY,IAAI,CAAA;AAGzC,IAAA,SAAS,GAA2C,IAAI,YAAY,EAA4B,CAAA;AAGhG,IAAA,eAAe,GAAuB,IAAI,YAAY,EAAQ,CAAA;IAE9D,UAAU,CAAE,KAAa,EAAE,IAAS,EAAA;AACzC,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;KACrC;IAEM,wBAAwB,GAAA;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AACzC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;AAC5B,SAAA;KACF;uGAjDU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,+fCZhC,o2CA6BA,EAAA,MAAA,EAAA,CAAA,ggBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDjBa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,o2CAAA,EAAA,MAAA,EAAA,CAAA,ggBAAA,CAAA,EAAA,CAAA;8BAOzB,IAAI,EAAA,CAAA;sBADV,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIC,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAIC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAIC,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,yBAAyB,EAAA,CAAA;sBAD/B,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,MAAM;gBAIA,eAAe,EAAA,CAAA;sBADrB,MAAM;;;AE7CT,MAKa,+BAA+B,CAAA;AAE1B,IAAA,IAAI,CAAS;IACb,cAAc,GAAG,KAAK,CAAC;IACvB,eAAe,GAAG,KAAK,CAAC;AAExB,IAAA,KAAK,CAAS;AACd,IAAA,UAAU,CAAS;AACnB,IAAA,UAAU,CAAS;AAElB,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAW,CAAC;IAEzD,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClC;uGAdU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,uRCP5C,mmBAuBA,EAAA,MAAA,EAAA,CAAA,4iBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDhBa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,mmBAAA,EAAA,MAAA,EAAA,CAAA,4iBAAA,CAAA,EAAA,CAAA;8BAMpB,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBAEU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBAEW,gBAAgB,EAAA,CAAA;sBAAhC,MAAM;;;AEdT,MAKa,yBAAyB,CAAA;IAE7B,aAAa,GAAa,EAAE,CAAC;AAC7B,IAAA,OAAO,CAAS;AAEf,IAAA,UAAU,CAAO;AACjB,IAAA,QAAQ,CAAO;IACf,cAAc,GAAW,CAAC,CAAA;AAElC;;AAEG;AAEI,IAAA,eAAe,CAAS;IAGxB,YAAY,GAAW,KAAK,CAAA;IAG5B,cAAc,GAAW,SAAS,CAAA;IAGlC,QAAQ,GAAW,mBAAmB,CAAC;IAE9C,IACI,SAAS,CAAC,IAAmB,EAAA;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAA;KACzB;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,IACI,OAAO,CAAC,IAAmB,EAAA;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAA;KACzB;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAED,IACW,aAAa,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAA;KACzB;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;AAED,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;KACzB;AAEM,IAAA,MAAM,UAAU,GAAA;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAC1C,OAAM;AACP,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAChG,IAAI,YAAY,IAAI,CAAC,EAAE;YACrB,OAAM;AACP,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,MAAM,eAAe,GAAG,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;AAC1D,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,SAAA;KACF;AAEM,IAAA,gBAAgB,CAAC,OAAa,EAAA;AACnC,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAA;KACxG;AAEM,IAAA,YAAY,CAAC,IAAmB,EAAA;QACrC,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;KAC/C;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,CAAA;KACvC;uGA3FU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,qRCRtC,+tBAeA,EAAA,MAAA,EAAA,CAAA,43BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDPa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,+tBAAA,EAAA,MAAA,EAAA,CAAA,43BAAA,CAAA,EAAA,CAAA;8BAiBhC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAWF,OAAO,EAAA,CAAA;sBADV,KAAK;gBAWK,aAAa,EAAA,CAAA;sBADvB,KAAK;;;AEhDR,MAKa,4BAA4B,CAAA;AA+BV,IAAA,YAAA,CAAA;AA7BtB,IAAA,OAAO,CAAS;AAEf,IAAA,UAAU,CAAO;AACjB,IAAA,QAAQ,CAAO;AACf,IAAA,cAAc,CAAO;AACrB,IAAA,YAAY,CAAO;IAGpB,SAAS,GAAW,EAAE,CAAA;IAGtB,cAAc,GAAW,EAAE,CAAA;IAG3B,cAAc,GAAW,SAAS,CAAA;IAGlC,0BAA0B,GAAG,IAAI,CAAA;IAGjC,QAAQ,GAAW,mBAAmB,CAAC;AAEvC,IAAA,iBAAiB,CAAS;AAC1B,IAAA,gBAAgB,CAAS;AAEzB,IAAA,eAAe,CAAS;AACxB,IAAA,aAAa,CAAQ;AACrB,IAAA,oBAAoB,CAAQ;AAEnC,IAAA,WAAA,CAA6B,YAA0B,EAAA;QAA1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;KACtD;IAED,IACI,aAAa,CAAC,IAAmB,EAAA;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAA;KACzB;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;IAED,IACI,WAAW,CAAC,IAAmB,EAAA;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAA;KACzB;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IAED,IACI,SAAS,CAAC,IAAmB,EAAA;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAA;KACzB;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,IACI,OAAO,CAAC,IAAmB,EAAA;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAA;KACzB;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAED,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;KACzB;AAEM,IAAA,MAAM,UAAU,GAAA;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAC1C,OAAM;AACP,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;AAED,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACnF,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACpH,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAE3H,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,GAAG,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,CAAA;AACxE,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,CAAA;AAC3E,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAA;AAE9C,QAAA,IAAI,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAA;AACzB,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;AACvB,SAAA;QAED,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE;YACnD,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;AAChD,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,GAAG,EAAE,EAAE;AAC7B,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;AAC1B,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;AACzB,SAAA;KACF;IAEM,gBAAgB,CAAC,SAAe,EAAE,OAAa,EAAA;AACpD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAA;KACnG;AAEM,IAAA,YAAY,CAAC,IAAmB,EAAA;QACrC,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;KAChD;IAEM,cAAc,GAAA;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAA,EAAA,EAAK,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAA;AACxF,SAAA;AACD,QAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAK,EAAA,EAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAA;KACpM;uGAhIU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,sWCTzC,y4BAkBA,EAAA,MAAA,EAAA,CAAA,ghCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDTa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,gCAAgC,EAAA,QAAA,EAAA,y4BAAA,EAAA,MAAA,EAAA,CAAA,ghCAAA,CAAA,EAAA,CAAA;qGAcnC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,0BAA0B,EAAA,CAAA;sBADhC,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAcF,aAAa,EAAA,CAAA;sBADhB,KAAK;gBAWF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAWF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAWF,OAAO,EAAA,CAAA;sBADV,KAAK;;;AExDR,MAKa,8BAA8B,CAAA;IAEjC,aAAa,GAAmB,EAAE,CAAA;AACzB,IAAA,UAAU,CAAQ;AAEnC,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,UAAU,CAAA;KACvB;IAEO,MAAM,GAAU,EAAE,CAAA;IAClB,YAAY,GAAW,CAAC,CAAA;IAEhC,IACI,WAAW,CAAC,IAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;KACzB;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,CAAA;KACzB;IAED,IACI,KAAK,CAAC,KAAY,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;KACpB;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;KACnB;IAGM,QAAQ,GAAW,EAAE,CAAA;AAGrB,IAAA,OAAO,CAAS;IAGhB,MAAM,GAAwB,EAAE,CAAA;AAGhC,IAAA,UAAU,CAAiC;AAG3C,IAAA,cAAc,CAAiC;AAG/C,IAAA,YAAY,GAAoC,IAAI,YAAY,EAAqB,CAAA;AAGrF,IAAA,aAAa,CAAS;IAGtB,gBAAgB,GAAW,qBAAqB,CAAA;IAGhD,0BAA0B,GAAW,CAAC,CAAA;IAGtC,wBAAwB,GAAW,GAAG,CAAA;IAGtC,sBAAsB,GAAW,GAAG,CAAA;IAGpC,SAAS,GAAW,OAAO,CAAA;IAG3B,SAAS,GAAW,MAAM,CAAA;AAG1B,IAAA,UAAU,GAAgC,IAAI,YAAY,EAAiB,CAAA;AAG3E,IAAA,cAAc,GAAoC,IAAI,YAAY,EAAqB,CAAA;AAGvF,IAAA,aAAa,GAA0B,IAAI,YAAY,EAAW,CAAA;AAGlE,IAAA,iBAAiB,GAAyB,IAAI,YAAY,EAAU,CAAA;AAEhD,IAAA,aAAa,CAAmB;AAEnD,IAAA,kBAAkB,CAAS;AACzB,IAAA,eAAe,CAAS;AACxB,IAAA,mBAAmB,CAAS;AAEtC,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;KAC1D;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AAC7D,YAAA,IAAI,CAAC,MAAM,EAAE,qBAAqB,EAAE;AAClC,gBAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;gBACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAC/C,aAAA;SACF,CAAC,CAAC,CAAA;KACJ;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,IAAG;YACzC,YAAY,CAAC,WAAW,EAAE,CAAA;AAC5B,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;KACxB;IAEM,YAAY,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,mBAAmB,CAAA;KACxD;IAEM,cAAc,GAAA;QACnB,OAAO,IAAI,CAAC,OAAO,CAAA;KACpB;AAES,IAAA,MAAM,QAAQ,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,OAAM;AACP,SAAA;QACD,IAAI;AACF,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;AAC3B,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;AAC9B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;AAC/B,aAAA,CAAC,CAAA;YACF,IAAI,CAAC,WAAW,EAAE,CAAA;AAClB,YAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;gBACtC,GAAG,IAAI,CAAC,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,WAAW;gBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAA;AACF,YAAA,IAAI,SAAS,EAAE,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,WAAW,EAAE,CAAA;gBAClB,OAAM;AACP,aAAA;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAC9C,YAAA,MAAM,2BAA2B,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,MAAM,GAAG,2BAA2B,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAChI,SAAA;AAAS,gBAAA;AACR,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,SAAA;KACF;AAES,IAAA,MAAM,YAAY,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,OAAM;AACP,SAAA;QACD,IAAI;AACF,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;AACxF,YAAA,MAAM,yCAAyC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;AACtE,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;AAC9D,YAAA,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;gBAC9C,GAAG,IAAI,CAAC,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,WAAW;gBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAA;AACF,YAAA,IAAI,aAAa,EAAE,MAAM,KAAK,CAAC,EAAE;gBAC/B,OAAM;AACP,aAAA;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAC9C,YAAA,IAAI,yCAAyC,EAAE;AAC7C,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzD,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBAC/C,IAAI,CAAC,qCAAqC,EAAE,CAAC;AAC9C,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,aAAa,CAAA;AAC3B,aAAA;AACF,SAAA;AAAS,gBAAA;AACR,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAA;AAC/B,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAA;AACjC,SAAA;KACF;IAEO,qCAAqC,GAAA;QAC3C,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAgC,6BAAA,EAAA,IAAI,CAAC,YAAY,CAAE,CAAA,CAAC,CAAC;AACnG,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAgC,6BAAA,EAAA,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAA,CAAE,CAAC,CAAA;YACjH,IAAI,aAAa,IAAI,WAAW,EAAE;AAChC,gBAAA,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,CAAA;AAClF,aAAA;AACH,SAAC,CAAC,CAAA;KACH;uGAvLU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAA9B,8BAA8B,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAiF3B,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvG3B,64CA4BA,EAAA,MAAA,EAAA,CAAA,6uDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,6DAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDNa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,mCAAmC,EAAA,QAAA,EAAA,64CAAA,EAAA,MAAA,EAAA,CAAA,6uDAAA,CAAA,EAAA,CAAA;0EAiBzC,WAAW,EAAA,CAAA;sBADd,KAAK;gBAUF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAUC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAIC,UAAU,EAAA,CAAA;sBADhB,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAIC,0BAA0B,EAAA,CAAA;sBADhC,KAAK;gBAIC,wBAAwB,EAAA,CAAA;sBAD9B,KAAK;gBAIC,sBAAsB,EAAA,CAAA;sBAD5B,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,UAAU,EAAA,CAAA;sBADhB,MAAM;gBAIA,cAAc,EAAA,CAAA;sBADpB,MAAM;gBAIA,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAIA,iBAAiB,EAAA,CAAA;sBADvB,MAAM;gBAGoB,aAAa,EAAA,CAAA;sBAAvC,YAAY;uBAAC,WAAW,CAAA;;;AEjF3B,MAsCa,gBAAgB,CAAA;uGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAnBzB,6BAA6B;YAC7B,0BAA0B;YAC1B,mBAAmB;YACnB,+BAA+B;YAC/B,yBAAyB;YACzB,4BAA4B;AAC5B,YAAA,8BAA8B,aAvB9B,YAAY;YACZ,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,WAAW;YACX,aAAa;YACb,iBAAiB;YACjB,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,gBAAgB;YAChB,UAAU;YACV,gBAAgB;YAChB,oBAAoB;AACpB,YAAA,aAAa,aAYb,6BAA6B;YAC7B,0BAA0B;YAC1B,mBAAmB;YACnB,+BAA+B;YAC/B,yBAAyB;YACzB,4BAA4B;YAC5B,8BAA8B,CAAA,EAAA,CAAA,CAAA;AAIrB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YApCzB,YAAY;YACZ,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,WAAW;YACX,aAAa;YACb,iBAAiB;YACjB,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,gBAAgB;YAChB,UAAU;YACV,gBAAgB;YAChB,oBAAoB;YACpB,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAsBJ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAtC5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,WAAW;wBACX,aAAa;wBACb,iBAAiB;wBACjB,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,gBAAgB;wBAChB,UAAU;wBACV,gBAAgB;wBAChB,oBAAoB;wBACpB,aAAa;AACd,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,6BAA6B;wBAC7B,0BAA0B;wBAC1B,mBAAmB;wBACnB,+BAA+B;wBAC/B,yBAAyB;wBACzB,4BAA4B;wBAC5B,8BAA8B;AAC/B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,6BAA6B;wBAC7B,0BAA0B;wBAC1B,mBAAmB;wBACnB,+BAA+B;wBAC/B,yBAAyB;wBACzB,4BAA4B;wBAC5B,8BAA8B;AAC/B,qBAAA;AACD,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;AC3DD;;AAEG;;;;"}
1
+ {"version":3,"file":"apipass-containers.mjs","sources":["../../../projects/containers/src/centralized-container/centralized-container.component.ts","../../../projects/containers/src/centralized-container/centralized-container.component.html","../../../projects/containers/src/configuration-page-content/configuration-page.component.ts","../../../projects/containers/src/configuration-page-content/configuration-page.component.html","../../../projects/containers/src/breadcrumb/breadcrumb.component.ts","../../../projects/containers/src/breadcrumb/breadcrumb.component.html","../../../projects/containers/src/configuration-page-title/configuration-page-title.component.ts","../../../projects/containers/src/configuration-page-title/configuration-page-title.component.html","../../../projects/containers/src/duration/duration-timeline/duration-timeline.component.ts","../../../projects/containers/src/duration/duration-timeline/duration-timeline.component.html","../../../projects/containers/src/duration/duration-progressbar/duration-progressbar.component.ts","../../../projects/containers/src/duration/duration-progressbar/duration-progressbar.component.html","../../../projects/containers/src/apipass-infinite-scroll/apipass-infinite-scroll.component.ts","../../../projects/containers/src/apipass-infinite-scroll/apipass-infinite-scroll.component.html","../../../projects/containers/src/containers.module.ts","../../../projects/containers/src/apipass-containers.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'\nimport { NgScrollbar } from 'ngx-scrollbar'\n\n@Component({\n selector: 'centralized-container',\n templateUrl: 'centralized-container.component.html',\n styleUrls: ['centralized-container.component.scss']\n})\nexport class CentralizedContainerComponent {\n\n public searchTerm = ''\n\n @Input() public searchLabel: string\n @Input() public hasSearch = true\n @Input() public ignoreZoom = false\n\n @Output()\n public searchChanged = new EventEmitter<string>()\n\n @ViewChild(NgScrollbar, { static: true })\n public scrollbarRef: NgScrollbar | undefined\n\n public searchTermChanged (): void {\n this.searchChanged.emit(this.searchTerm)\n }\n\n}\n","<div class=\"centralized-container\" [ngClass]=\"{'centralized-container-zoom': !ignoreZoom}\">\n <ng-scrollbar [visibility]=\"'hover'\">\n <div class=\"list-content\">\n <div class=\"list-search\" *ngIf=\"hasSearch\">\n <mat-form-field>\n <mat-label *ngIf=\"searchLabel\">{{searchLabel}}</mat-label>\n <input matInput type=\"search\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"searchTermChanged()\" />\n <mat-icon class=\"search-icon\" matSuffix>search</mat-icon>\n </mat-form-field>\n </div>\n <ng-content></ng-content>\n </div>\n </ng-scrollbar>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'\nimport { NgScrollbar } from 'ngx-scrollbar'\nimport { Subject } from 'rxjs'\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators'\n\n@Component({\n selector: 'configuration-page-container',\n templateUrl: 'configuration-page.component.html',\n styleUrls: ['configuration-page.component.scss']\n})\nexport class ConfigurationPageComponent {\n\n public searchTerm = ''\n\n @Input() public verticalSeparate = false\n @Input() public footerPaginator = false\n @Input() public hasSearch = true\n @Input() public searchDebounceTime = 1000\n @Input() public searchLabel = ''\n\n txtQueryChanged: Subject<string> = new Subject<string>()\n\n @Output() public searchChanged = new EventEmitter<string>()\n @Output() public searchClick = new EventEmitter<string>()\n\n @ViewChild(NgScrollbar, { static: true })\n public scrollbarRef: NgScrollbar | undefined\n\n constructor () {\n this.txtQueryChanged.pipe(\n debounceTime(this.searchDebounceTime),\n distinctUntilChanged()).subscribe(model => { this.searchChanged.next(model) }\n )\n }\n\n public searchTermChanged (): void {\n this.txtQueryChanged.next(this.searchTerm)\n }\n\n public searchIconClick (): void {\n this.searchClick.next(this.searchTerm)\n }\n\n}\n","<div class=\"configuration-page-container\" [ngClass]=\"{'footer-paginator': footerPaginator}\">\n <ng-scrollbar [visibility]=\"'hover'\">\n <div class=\"list-content\">\n <div class=\"list-search\" *ngIf=\"hasSearch\">\n <mat-form-field class=\"apipass-search-input-text search-input-item small-text\"\n [ngClass]=\"{'label-input': searchLabel}\"\n appearance=\"outline\">\n <mat-label *ngIf=\"searchLabel\">{{searchLabel}}</mat-label>\n <input matInput type=\"search\" class=\"search-input\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"searchTermChanged()\"\n />\n <mat-icon class=\"search-icon\" matSuffix (click)=\"searchIconClick()\">search</mat-icon>\n </mat-form-field>\n </div>\n\n <div class=\"container-content\" [ngClass]=\"{'vertical-separate': verticalSeparate}\">\n <ng-content></ng-content>\n </div>\n </div>\n </ng-scrollbar>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core'\n\nexport interface BreadCrumbItemClickEvent {\n index: number\n item: any\n}\n\n@Component({\n selector: 'breadcrumb-component',\n templateUrl: 'breadcrumb.component.html',\n styleUrls: ['breadcrumb.component.scss']\n})\nexport class BreadcrumbComponent {\n\n @Input()\n public icon: string = 'keyboard_arrow_right'\n\n @Input()\n public items: any = []\n\n @Input()\n public labelProperty: string = 'label'\n\n @Input()\n public showBackButtonIcon: boolean = true\n\n @Input()\n public rightBackButton: boolean = false\n\n @Input()\n public backButtonIconTitle: string = 'Back'\n\n @Input()\n public backButtonIconSize: number = 25\n\n @Input()\n public backButtonIconType: string = 'primary clickable'\n\n @Input()\n public backButtonIconName: string = 'arrow_circle_left'\n\n @Input()\n public backButtonUseMaterialIcon: boolean = true\n\n @Output()\n public itemClick: EventEmitter<BreadCrumbItemClickEvent> = new EventEmitter<BreadCrumbItemClickEvent>()\n\n @Output()\n public backButtonClick: EventEmitter<void> = new EventEmitter<void>()\n\n public eventClick (index: number, item: any): any {\n this.items.splice(index + 1, this.items.length - 1)\n this.itemClick.emit({ index, item })\n }\n\n public backBreadcrumbNavigation(): void {\n const index = this.items.length - 2;\n if (index >= 0) {\n this.eventClick(index, this.items[index])\n this.backButtonClick.emit()\n }\n }\n\n}\n","<div class=\"breadcrumb-component\" *ngIf=\"items.length > 0\">\n <mat-toolbar color=\"primary\">\n <icon class=\"back-icon\" [ngClass]=\"{'left-back-button': !rightBackButton}\"\n *ngIf=\"showBackButtonIcon && !rightBackButton && items.length > 1\"\n [isMaterialIcon]=\"backButtonUseMaterialIcon\"\n [type]=\"backButtonIconType\"\n [size]=\"backButtonIconSize\"\n [title]=\"backButtonIconTitle\"\n [name]=\"backButtonIconName\"\n (onClick)=\"backBreadcrumbNavigation()\">\n </icon>\n <span *ngFor=\"let header of items; let indx = index, let last = last\">\n <a mat-button\n [ngClass]=\"!last ? 'text-link' : 'default-cursor'\"\n (click)=\"!last ? eventClick(indx, header) : undefined\">{{header[labelProperty]}}\n <mat-icon *ngIf=\"!last\">{{icon}}</mat-icon>\n </a>\n </span>\n <icon class=\"back-icon\" [ngClass]=\"{'right-back-button': rightBackButton}\"\n *ngIf=\"showBackButtonIcon && rightBackButton && items.length > 1\"\n [isMaterialIcon]=\"backButtonUseMaterialIcon\"\n [type]=\"backButtonIconType\"\n [size]=\"backButtonIconSize\"\n [title]=\"backButtonIconTitle\"\n [name]=\"backButtonIconName\"\n (onClick)=\"backBreadcrumbNavigation()\">\n </icon>\n </mat-toolbar>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'configuration-page-title',\n templateUrl: 'configuration-page-title.component.html',\n styleUrls: ['configuration-page-title.component.scss']\n})\nexport class ConfigurationPageTitleComponent {\n\n @Input() public icon: string;\n @Input() public isMaterialIcon = false;\n @Input() public materialOutline = false;\n\n @Input() public title: string;\n @Input() public buttonText: string;\n @Input() public buttonIcon: string;\n\n @Output() public onNewButtonClick = new EventEmitter<boolean>();\n\n public newButtonClick(): void {\n this.onNewButtonClick.emit(true);\n }\n\n}\n","<div class=\"configuration-title\">\n\n <div class=\"text\">\n <icon *ngIf=\"icon\"\n [ngClass]=\"{'title-icon-material': isMaterialIcon}\"\n [isMaterialIcon]=\"isMaterialIcon\"\n [materialOutline]=\"materialOutline\"\n [type]=\"'configuration-icon'\"\n [name]=\"icon\">\n </icon>\n {{title}}\n </div>\n\n <div class=\"button\" *ngIf=\"buttonText\">\n <secondary-button\n [btnClass]=\"'font-black'\"\n [icon]=\"buttonIcon\"\n [label]=\"buttonText\"\n (onClick)=\"newButtonClick()\">\n </secondary-button>\n </div>\n\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport moment from 'moment-timezone';\n\n@Component({\n selector: 'duration-timeline-component',\n templateUrl: 'duration-timeline.component.html',\n styleUrls: ['duration-timeline.component.scss']\n})\nexport class DurationTimelineComponent implements OnInit {\n\n public timeLineParts: number[] = [];\n public running: boolean\n\n private _startDate: Date;\n private _endDate: Date;\n private _durationParts: number = 0\n\n /*\n * If this option is true, depending on the total duration time and numbers of the duration parts, numbers can be repeated on timeline.\n */\n @Input()\n public onlyLargestUnit: boolean\n\n @Input()\n public runningLabel: string = '---'\n\n @Input()\n public runningTooltip: string = 'Running'\n\n @Input()\n public timezone: string = 'America/Sao_Paulo';\n\n @Input()\n set startDate(date: Date | string) {\n this._startDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get startDate(): Date {\n return this._startDate;\n }\n\n @Input()\n set endDate(date: Date | string) {\n this._endDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get endDate(): Date {\n return this._endDate;\n }\n\n @Input()\n public set durationParts(parts: number) {\n this._durationParts = parts;\n this.initialize().then()\n }\n\n get durationParts(): number {\n return this._durationParts;\n }\n\n async ngOnInit(): Promise<void> {\n await this.initialize();\n }\n\n public async initialize(): Promise<void> {\n this.running = false;\n if (!this.startDate || !this.durationParts) {\n return\n }\n if (!this.endDate) {\n this.running = true;\n }\n\n const durationTime = this.getTotalDuration(this.endDate || moment().tz(this.timezone).toDate());\n if (durationTime <= 0) {\n return\n }\n this.timeLineParts = [];\n const timeAggregation = durationTime / this.durationParts;\n for (let i = 0; i < this.durationParts; i++) {\n this.timeLineParts.push(timeAggregation * (i + 1));\n }\n }\n\n public getTotalDuration(endDate: Date): number {\n return moment(endDate).tz(this.timezone).diff(moment(this.startDate).tz(this.timezone), 'milliseconds')\n }\n\n public stringToDate(date: Date | string): Date {\n if (!date) {\n return null;\n }\n return moment(date).tz(this.timezone).toDate()\n }\n\n getDurationWidth(): string {\n return `${100 / this._durationParts}%`\n }\n\n}\n","<div class=\"duration-timeline-component\" *ngIf=\"timeLineParts?.length > 0\">\n <div class=\"duration-timeline\">\n <div class=\"duration-item\"\n [style.width]=\"getDurationWidth()\"\n [ngClass]=\"{ 'duration-item-first' : first, 'duration-item-last' : last }\"\n *ngFor=\"let duration of timeLineParts; let first = first; let last = last\">\n <span class=\"duration-label\" [matTooltip]=\"duration | durationTime: { onlyLargestUnit }\" *ngIf=\"!running || !last\">\n {{duration | durationTime: { onlyLargestUnit } }}\n </span>\n <span class=\"duration-label\" [matTooltip]=\"runningTooltip\" *ngIf=\"running && last\">\n {{runningLabel}}\n </span>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DurationPipe } from '@apipass/pipes'\nimport moment from 'moment-timezone';\n\n@Component({\n selector: 'duration-progressbar-component',\n templateUrl: 'duration-progressbar.component.html',\n styleUrls: ['duration-progressbar.component.scss']\n})\nexport class DurationProgressbarComponent implements OnInit {\n\n public running: boolean\n\n private _startDate: Date;\n private _endDate: Date;\n private _startPartDate: Date;\n private _endPartDate: Date;\n\n @Input()\n public barHeight: number = 20\n\n @Input()\n public progressHeight: number = 18\n\n @Input()\n public runningTooltip: string = 'Running'\n\n @Input()\n public progressTooltipConjunction = 'of'\n\n @Input()\n public timezone: string = 'America/Sao_Paulo';\n\n public totalDurationTime: number;\n public partDurationTime: number;\n\n public startPercentage: number;\n public progressWidth: number\n public progressPercentValue: number\n\n constructor(private readonly durationPipe: DurationPipe) {\n }\n\n @Input()\n set startPartDate(date: Date | string) {\n this._startPartDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get startPartDate(): Date {\n return this._startPartDate;\n }\n\n @Input()\n set endPartDate(date: Date | string) {\n this._endPartDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get endPartDate(): Date {\n return this._endPartDate;\n }\n\n @Input()\n set startDate(date: Date | string) {\n this._startDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get startDate(): Date {\n return this._startDate;\n }\n\n @Input()\n set endDate(date: Date | string) {\n this._endDate = this.stringToDate(date);\n this.initialize().then()\n }\n\n get endDate(): Date {\n return this._endDate;\n }\n\n async ngOnInit(): Promise<void> {\n await this.initialize();\n }\n\n public async initialize(): Promise<void> {\n this.running = false;\n if (!this.startDate || !this.startPartDate) {\n return\n }\n if (!this.endPartDate) {\n this.running = true;\n }\n\n const startPartGapTime = this.getTotalDuration(this.startDate, this.startPartDate);\n this.totalDurationTime = this.getTotalDuration(this.startDate, this.endDate || moment().tz(this.timezone).toDate());\n this.partDurationTime = this.getTotalDuration(this.startPartDate, this.endPartDate || moment().tz(this.timezone).toDate());\n\n this.startPercentage = (100 * startPartGapTime) / this.totalDurationTime\n this.progressWidth = (100 * this.partDurationTime) / this.totalDurationTime\n this.progressPercentValue = this.progressWidth\n\n if (this.progressWidth > 100) {\n this.progressWidth = 100\n } else if (this.progressWidth < 1) {\n this.progressWidth = 1\n }\n\n if (this.startPercentage + this.progressWidth > 100) {\n this.startPercentage = 100 - this.progressWidth\n }\n\n if (this.startPercentage > 99) {\n this.startPercentage = 99\n } else if (this.startPercentage < 0) {\n this.startPercentage = 0\n }\n }\n\n public getTotalDuration(startDate: Date, endDate: Date): number {\n return moment(endDate).tz(this.timezone).diff(moment(startDate).tz(this.timezone), 'milliseconds')\n }\n\n public stringToDate(date: Date | string): Date {\n if (!date) {\n return null;\n }\n return moment(date).tz(this.timezone).toDate();\n }\n\n public getTooltipText(): string {\n if (this.running) {\n return `${this.runningTooltip} (${this.durationPipe.transform(this.partDurationTime)})`\n }\n return `${this.durationPipe.transform(this.partDurationTime)} (${this.progressPercentValue.toFixed(1)}%) ${this.progressTooltipConjunction} ${this.durationPipe.transform(this.totalDurationTime)}`\n }\n\n}\n","<div class=\"duration-progressbar-component\" [ngClass]=\"{'duration-progressbar-component-running': running}\" [style.height.px]=\"barHeight\">\n <div class=\"duration-current-progress\"\n [ngClass]=\"{'duration-current-progress-running': running}\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n </div>\n <div class=\"duration-value\"\n [matTooltip]=\"getTooltipText()\"\n [style.margin-left.%]=\"startPercentage\"\n [style.width.%]=\"progressWidth\"\n [style.height.px]=\"progressHeight\">\n <span class=\"duration-text\" [style.height.px]=\"progressHeight\" [ngClass]=\"{'duration-text-running': running}\">\n {{partDurationTime | durationTime}} ({{progressPercentValue.toFixed(0)}}%)\n </span>\n </div>\n</div>\n","import { Component, ContentChild, EventEmitter, Input, OnDestroy, OnInit, Output, TemplateRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nexport interface NextPageEvent {\n currentPage: number\n nextPage: number\n}\n\nexport interface PreviousPageEvent {\n currentPage: number\n previousPage: number\n}\n\nexport interface RefreshItemsEvent {\n continueOnTheSamePage?: boolean\n}\n\n@Component({\n selector: 'apipass-infinite-scroll-component',\n templateUrl: 'apipass-infinite-scroll.component.html',\n styleUrls: ['apipass-infinite-scroll.component.scss']\n})\nexport class ApipassInfiniteScrollComponent implements OnInit, OnDestroy {\n\n private subscriptions: Subscription[] = []\n private readonly _currentId: string\n\n get getCurrentId(): string {\n return this._currentId\n }\n\n private _items: any[] = []\n private _currentPage: number = 1\n\n @Input()\n set currentPage(page: number) {\n this._currentPage = page\n }\n\n get currentPage(): number {\n return this._currentPage\n }\n\n @Input()\n set items(items: any[]) {\n this._items = items\n }\n\n get items(): any[] {\n return this._items\n }\n\n @Input()\n public pageSize: number = 50\n\n @Input()\n public loading: boolean\n\n @Input()\n public filter: Record<string, any> = {}\n\n @Input()\n public nextPageFn: (params: any) => Promise<any[]>\n\n @Input()\n public refreshItems: EventEmitter<RefreshItemsEvent> = new EventEmitter<RefreshItemsEvent>()\n\n @Input()\n public showEmptyList: boolean\n\n @Input()\n public emptyListMessage: string = 'No Records Found...'\n\n @Input()\n public infiniteScrollDownDistance: number = 2\n\n @Input()\n public infiniteScrollUpDistance: number = 0.5\n\n @Input()\n public infiniteScrollThrottle: number = 150\n\n @Input()\n public maxHeight: string = '100vh'\n\n @Input()\n public minHeight: string = '50px'\n\n @Output()\n public onNextPage: EventEmitter<NextPageEvent> = new EventEmitter<NextPageEvent>()\n\n @Output()\n public onPreviousPage: EventEmitter<PreviousPageEvent> = new EventEmitter<PreviousPageEvent>()\n\n @Output()\n public loadingChange: EventEmitter<boolean> = new EventEmitter<boolean>()\n\n @Output()\n public currentPageChange: EventEmitter<number> = new EventEmitter<number>()\n\n @ContentChild(TemplateRef) itemsTemplate: TemplateRef<any>;\n\n protected loadingNextPage: boolean\n protected loadingPreviousPage: boolean\n\n constructor() {\n this._currentId = Math.random().toString(36).substring(2)\n }\n\n public ngOnInit(): void {\n this.subscriptions.push(this.refreshItems.subscribe(($event) => {\n if (!$event?.continueOnTheSamePage) {\n this._currentPage = 0\n this.currentPageChange.emit(this._currentPage)\n }\n }))\n }\n\n public ngOnDestroy(): void {\n this.subscriptions?.forEach(subscription => {\n subscription.unsubscribe()\n })\n this.subscriptions = []\n }\n\n public loadingPages(): boolean {\n return this.loadingNextPage || this.loadingPreviousPage\n }\n\n public showListLoader(): boolean {\n return this.loading\n }\n\n protected async nextPage(): Promise<void> {\n if (this.loadingPages()) {\n return\n }\n try {\n this.loadingNextPage = true\n this.onNextPage.emit({\n currentPage: this.currentPage,\n nextPage: this.currentPage + 1\n })\n this.currentPage++\n const nextItems = await this.nextPageFn({\n ...this.filter,\n page: this.currentPage,\n pageSize: this.pageSize,\n nextPageId: this.items[this.items.length - 1].id\n })\n if (nextItems?.length === 0) {\n this.currentPage--\n return\n }\n this.currentPageChange.emit(this._currentPage)\n this._items = this._items?.concat(nextItems)\n } finally {\n this.loadingNextPage = false;\n }\n }\n\n}\n","<div class=\"apipass-infinite-scroll-component\">\n <div class=\"apipass-infinite-scroll-list\"\n *ngIf=\"items?.length > 0\"\n [id]=\"'apipass-infinite-scroll-list-' + getCurrentId\"\n [style.max-height]=\"maxHeight\"\n [style.min-height]=\"minHeight\"\n infiniteScroll\n [infiniteScrollDistance]=\"infiniteScrollDownDistance\"\n [infiniteScrollUpDistance]=\"infiniteScrollUpDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollDisabled]=\"loadingPages()\"\n (scrolled)=\"nextPage()\"\n [scrollWindow]=\"false\">\n <overlay-loader-component class=\"loader-top\" *ngIf=\"loadingPreviousPage\"></overlay-loader-component>\n <div class=\"apipass-infinite-scroll-item\"\n *ngFor=\"let item of items; let index = index\"\n [id]=\"'apipass-infinite-scroll-item-' + getCurrentId + '-' + (index + 1)\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item }\"></ng-container>\n </div>\n <div class=\"loader-bottom-content\" *ngIf=\"loadingNextPage\">\n <overlay-loader-component class=\"loader-bottom\"></overlay-loader-component>\n </div>\n </div>\n <div class=\"apipass-infinite-scroll-list-no-rows\" *ngIf=\"this.showEmptyList && !showListLoader() && items?.length === 0\">\n {{emptyListMessage}}\n </div>\n</div>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { RouterModule } from '@angular/router'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { CentralizedContainerComponent } from './centralized-container/centralized-container.component'\nimport { ConfigurationPageComponent } from './configuration-page-content/configuration-page.component'\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component'\nimport { NgScrollbarModule } from 'ngx-scrollbar'\nimport { MatFormFieldModule } from '@angular/material/form-field'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatInputModule } from '@angular/material/input'\nimport { IconsModule } from '@apipass/icons'\nimport { ButtonsModule } from '@apipass/buttons'\nimport { PipeModule } from '@apipass/pipes'\nimport { LoadersModule } from '@apipass/loaders'\nimport { MatToolbarModule } from '@angular/material/toolbar'\nimport { ConfigurationPageTitleComponent } from './configuration-page-title/configuration-page-title.component'\nimport { DurationTimelineComponent } from './duration/duration-timeline/duration-timeline.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DurationProgressbarComponent } from './duration/duration-progressbar/duration-progressbar.component';\nimport { ApipassInfiniteScrollComponent } from './apipass-infinite-scroll/apipass-infinite-scroll.component';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n IconsModule,\n ButtonsModule,\n NgScrollbarModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatToolbarModule,\n PipeModule,\n MatTooltipModule,\n InfiniteScrollModule,\n LoadersModule\n ],\n declarations: [\n CentralizedContainerComponent,\n ConfigurationPageComponent,\n BreadcrumbComponent,\n ConfigurationPageTitleComponent,\n DurationTimelineComponent,\n DurationProgressbarComponent,\n ApipassInfiniteScrollComponent\n ],\n exports: [\n CentralizedContainerComponent,\n ConfigurationPageComponent,\n BreadcrumbComponent,\n ConfigurationPageTitleComponent,\n DurationTimelineComponent,\n DurationProgressbarComponent,\n ApipassInfiniteScrollComponent\n ],\n providers: []\n})\nexport class ContainersModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i4","i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apipass/containers",
3
- "version": "1.0.117",
3
+ "version": "1.0.119",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "16.0.2",
6
6
  "@angular/cdk": "16.0.1",