@nativescript-community/ui-pager 13.0.43 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -55
- package/angular/esm2020/index.mjs +4 -4
- package/angular/esm2020/nativescript-community-ui-pager-angular.mjs +4 -1
- package/angular/esm2020/pager-items-comp.mjs +11 -4
- package/angular/fesm2015/nativescript-community-ui-pager-angular.mjs +17 -6
- package/angular/fesm2015/nativescript-community-ui-pager-angular.mjs.map +1 -1
- package/angular/fesm2020/nativescript-community-ui-pager-angular.mjs +17 -6
- package/angular/fesm2020/nativescript-community-ui-pager-angular.mjs.map +1 -1
- package/angular/package.json +2 -2
- package/index.android.d.ts +4 -9
- package/index.android.js +165 -213
- package/index.android.js.map +1 -1
- package/index.common.d.ts +14 -17
- package/index.common.js +35 -32
- package/index.common.js.map +1 -1
- package/index.ios.d.ts +3 -9
- package/index.ios.js +109 -177
- package/index.ios.js.map +1 -1
- package/package.json +10 -10
- package/platforms/android/include.gradle +0 -13
- package/platforms/android/native-api-usage.json +1 -6
- package/platforms/ios/native-api-usage.json +0 -1
- package/react/index.d.ts +47 -40
- package/react/index.js +33 -6
- package/react/index.js.map +1 -1
- package/references.d.ts +1 -2
- package/svelte/index.js +11 -1
- package/svelte/index.js.map +1 -1
- package/typings/viewpager2.d.ts +1 -1
- package/vue/pager.js +8 -1
- package/vue/pager.js.map +1 -1
- package/.pnpm-debug.log +0 -1
- package/CHANGELOG.md +0 -350
- package/angular/nativescript-community-ui-pager-angular.d.ts +0 -2
- package/platforms/ios/Podfile +0 -1
- package/typings/objc!CHIPageControl.d.ts +0 -197
package/README.md
CHANGED
@@ -51,12 +51,7 @@
|
|
51
51
|
* [Usage in Svelte](#usage-in-svelte)
|
52
52
|
* [Examples](#examples-2)
|
53
53
|
* [Usage in Vue](#usage-in-vue)
|
54
|
-
* [Examples](#examples-3)
|
55
|
-
* [Demos and Development](#demos-and-development)
|
56
|
-
* [Setup](#setup)
|
57
|
-
* [Build](#build)
|
58
|
-
* [Demos](#demos)
|
59
|
-
* [Questions](#questions)
|
54
|
+
* [Examples](#examples-3)
|
60
55
|
|
61
56
|
|
62
57
|
[](#installation)
|
@@ -90,8 +85,6 @@ Run the following command from the root of your project:
|
|
90
85
|
| autoPlay | `boolean` |
|
91
86
|
| disableSwipe | `boolean` |
|
92
87
|
| showIndicator | `boolean` |
|
93
|
-
| indicatorColor | `Color` or `string` |
|
94
|
-
| indicatorSelectedColor | `Color` or `string` |
|
95
88
|
|
96
89
|
|
97
90
|
```
|
@@ -181,50 +174,4 @@ Vue.use(Pager);
|
|
181
174
|
- [Static Pager](demo-snippets/vue/StaticPager.vue)
|
182
175
|
- A simple pager example using static content.
|
183
176
|
- [Basic Pager](demo-snippets/vue/BasicPager.vue)
|
184
|
-
- A simple pager example using dynamic content.
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
[](#demos-and-development)
|
189
|
-
|
190
|
-
## Demos and Development
|
191
|
-
|
192
|
-
|
193
|
-
### Setup
|
194
|
-
|
195
|
-
To run the demos, you must clone this repo **recursively**.
|
196
|
-
|
197
|
-
```
|
198
|
-
git clone https://github.com/@nativescript-community/ui-pager.git --recursive
|
199
|
-
```
|
200
|
-
|
201
|
-
**Install Dependencies:**
|
202
|
-
```bash
|
203
|
-
npm i # or 'yarn install' or 'pnpm install'
|
204
|
-
```
|
205
|
-
|
206
|
-
**Interactive Menu:**
|
207
|
-
|
208
|
-
To start the interactive menu, run `npm start` (or `yarn start` or `pnpm start`). This will list all of the commonly used scripts.
|
209
|
-
|
210
|
-
### Build
|
211
|
-
|
212
|
-
```bash
|
213
|
-
npm run build
|
214
|
-
|
215
|
-
npm run build.angular # or for Angular
|
216
|
-
```
|
217
|
-
|
218
|
-
### Demos
|
219
|
-
|
220
|
-
```bash
|
221
|
-
npm run demo.[ng|react|svelte|vue].[ios|android]
|
222
|
-
|
223
|
-
npm run demo.svelte.ios # Example
|
224
|
-
```
|
225
|
-
|
226
|
-
[](#questions)
|
227
|
-
|
228
|
-
## Questions
|
229
|
-
|
230
|
-
If you have any questions/issues/comments please feel free to create an issue or start a conversation in the [NativeScript Community Discord](https://nativescript.org/discord).
|
177
|
+
- A simple pager example using dynamic content.
|
@@ -12,7 +12,7 @@ export class PagerComponent extends TemplatedItemsComponent {
|
|
12
12
|
}
|
13
13
|
}
|
14
14
|
PagerComponent.ɵfac = function PagerComponent_Factory(t) { return new (t || PagerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.IterableDiffers)); };
|
15
|
-
PagerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: PagerComponent, selectors: [["Pager"]], features: [i0.ɵɵProvidersFeature([
|
15
|
+
PagerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PagerComponent, selectors: [["Pager"]], features: [i0.ɵɵProvidersFeature([
|
16
16
|
{
|
17
17
|
provide: TEMPLATED_ITEMS_COMPONENT,
|
18
18
|
useExisting: forwardRef(() => PagerComponent)
|
@@ -41,8 +41,8 @@ PagerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: PagerComponent, selectors:
|
|
41
41
|
export class PagerModule {
|
42
42
|
}
|
43
43
|
PagerModule.ɵfac = function PagerModule_Factory(t) { return new (t || PagerModule)(); };
|
44
|
-
PagerModule.ɵmod = i0.ɵɵdefineNgModule({ type: PagerModule });
|
45
|
-
PagerModule.ɵinj = i0.ɵɵdefineInjector({});
|
44
|
+
PagerModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PagerModule });
|
45
|
+
PagerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
46
46
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PagerModule, [{
|
47
47
|
type: NgModule,
|
48
48
|
args: [{
|
@@ -52,4 +52,4 @@ PagerModule.ɵinj = i0.ɵɵdefineInjector({});
|
|
52
52
|
}]
|
53
53
|
}], null, null); })();
|
54
54
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(PagerModule, { declarations: [PagerComponent, TemplateKeyDirective, PagerItemDirective], exports: [PagerComponent, TemplateKeyDirective, PagerItemDirective] }); })();
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdWktcGFnZXIvYW5ndWxhci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4SSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRWxJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBZXZHLE1BQU0sT0FBTyxjQUFlLFNBQVEsdUJBQXVCO0lBT3ZELFlBQVksV0FBdUIsRUFBRSxnQkFBaUM7UUFDbEUsS0FBSyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFSRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDbkMsQ0FBQzs7NEVBSFEsY0FBYztpRUFBZCxjQUFjLDJEQVBaO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHlCQUF5QjtnQkFDbEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7YUFDaEQ7U0FDSjtRQVRXLHlDQUFtQjtRQUMzQix1Q0FBbUM7UUFDdkMsaUJBQW9COzt1RkFTWCxjQUFjO2NBYjFCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsT0FBTztnQkFDakIsUUFBUSxFQUFFOzt5QkFFVztnQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUseUJBQXlCO3dCQUNsQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUM7cUJBQ2hEO2lCQUNKO2FBQ0o7O0FBa0JELE1BQU0sT0FBTyxXQUFXOztzRUFBWCxXQUFXOzZEQUFYLFdBQVc7O3VGQUFYLFdBQVc7Y0FMdkIsUUFBUTtlQUFDO2dCQUNOLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsQ0FBQztnQkFDeEUsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDO2dCQUNuRSxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzthQUM5Qjs7d0ZBQ1ksV0FBVyxtQkFqQlgsY0FBYyxFQWFRLG9CQUFvQixFQUFFLGtCQUFrQixhQWI5RCxjQUFjLEVBY0csb0JBQW9CLEVBQUUsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSXRlcmFibGVEaWZmZXJzLCBOT19FUlJPUlNfU0NIRU1BLCBOZ01vZHVsZSwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQYWdlciB9IGZyb20gJ0BuYXRpdmVzY3JpcHQtY29tbXVuaXR5L3VpLXBhZ2VyJztcbmltcG9ydCB7IFBhZ2VySXRlbURpcmVjdGl2ZSwgVEVNUExBVEVEX0lURU1TX0NPTVBPTkVOVCwgVGVtcGxhdGVLZXlEaXJlY3RpdmUsIFRlbXBsYXRlZEl0ZW1zQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlci1pdGVtcy1jb21wJztcblxuZXhwb3J0IHsgUGFnZXJJdGVtRGlyZWN0aXZlLCBUZW1wbGF0ZWRJdGVtc0NvbXBvbmVudCwgVGVtcGxhdGVLZXlEaXJlY3RpdmUgfSBmcm9tICcuL3BhZ2VyLWl0ZW1zLWNvbXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1BhZ2VyJyxcbiAgICB0ZW1wbGF0ZTogYCA8RGV0YWNoZWRDb250YWluZXI+XG4gICAgICAgIDxQbGFjZWhvbGRlciAjbG9hZGVyPjwvUGxhY2Vob2xkZXI+XG4gICAgPC9EZXRhY2hlZENvbnRhaW5lcj5gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBURU1QTEFURURfSVRFTVNfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGFnZXJDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VyQ29tcG9uZW50IGV4dGVuZHMgVGVtcGxhdGVkSXRlbXNDb21wb25lbnQge1xuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpOiBQYWdlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRlbXBsYXRlZEl0ZW1zVmlldztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdGVtcGxhdGVkSXRlbXNWaWV3OiBQYWdlcjtcblxuICAgIGNvbnN0cnVjdG9yKF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLCBfaXRlcmFibGVEaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMpIHtcbiAgICAgICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9pdGVyYWJsZURpZmZlcnMpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtQYWdlckNvbXBvbmVudCwgVGVtcGxhdGVLZXlEaXJlY3RpdmUsIFBhZ2VySXRlbURpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW1BhZ2VyQ29tcG9uZW50LCBUZW1wbGF0ZUtleURpcmVjdGl2ZSwgUGFnZXJJdGVtRGlyZWN0aXZlXSxcbiAgICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQV1cbn0pXG5leHBvcnQgY2xhc3MgUGFnZXJNb2R1bGUge31cbiJdfQ==
|
@@ -1,2 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
1
4
|
export * from './index';
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlc2NyaXB0LWNvbW11bml0eS11aS1wYWdlci1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3VpLXBhZ2VyL2FuZ3VsYXIvbmF0aXZlc2NyaXB0LWNvbW11bml0eS11aS1wYWdlci1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
@@ -70,6 +70,8 @@ export class TemplatedItemsComponent {
|
|
70
70
|
setItemTemplates() {
|
71
71
|
if (!this.items)
|
72
72
|
return;
|
73
|
+
// The itemTemplateQuery may be changed after list items are added that contain <template> inside,
|
74
|
+
// so cache and use only the original template to avoid errors.
|
73
75
|
this.itemTemplate = this.itemTemplateQuery;
|
74
76
|
if (this._templateMap) {
|
75
77
|
if (Trace.isEnabled()) {
|
@@ -110,6 +112,8 @@ export class TemplatedItemsComponent {
|
|
110
112
|
PagerLog(`onItemLoading: ${index} - Reusing existing view`);
|
111
113
|
}
|
112
114
|
viewRef = args.view[NG_VIEW];
|
115
|
+
// Getting angular view from original element (in cases when ProxyViewContainer
|
116
|
+
// is used NativeScript internally wraps it in a StackLayout)
|
113
117
|
if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
|
114
118
|
viewRef = args.view.getChildAt(0)[NG_VIEW];
|
115
119
|
}
|
@@ -138,6 +142,8 @@ export class TemplatedItemsComponent {
|
|
138
142
|
PagerLog(`onItemDisposing: ${args.index} - Removing angular view`);
|
139
143
|
}
|
140
144
|
viewRef = args.view[NG_VIEW];
|
145
|
+
// Getting angular view from original element (in cases when ProxyViewContainer
|
146
|
+
// is used NativeScript internally wraps it in a StackLayout)
|
141
147
|
if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
|
142
148
|
viewRef = args.view.getChildAt(0)[NG_VIEW];
|
143
149
|
}
|
@@ -197,7 +203,7 @@ export class TemplatedItemsComponent {
|
|
197
203
|
}
|
198
204
|
}
|
199
205
|
TemplatedItemsComponent.ɵfac = function TemplatedItemsComponent_Factory(t) { return new (t || TemplatedItemsComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.IterableDiffers)); };
|
200
|
-
TemplatedItemsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: TemplatedItemsComponent, selectors: [["ng-component"]], contentQueries: function TemplatedItemsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
206
|
+
TemplatedItemsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TemplatedItemsComponent, selectors: [["ng-component"]], contentQueries: function TemplatedItemsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
201
207
|
i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);
|
202
208
|
} if (rf & 2) {
|
203
209
|
let _t;
|
@@ -256,6 +262,7 @@ export class PagerItemDirective {
|
|
256
262
|
ngOnInit() {
|
257
263
|
this.applyConfig();
|
258
264
|
const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);
|
265
|
+
// Filter out text nodes and comments
|
259
266
|
const realViews = viewRef.rootNodes.filter((node) => !isInvisibleNode(node));
|
260
267
|
if (realViews.length > 0) {
|
261
268
|
const view = realViews[0];
|
@@ -265,7 +272,7 @@ export class PagerItemDirective {
|
|
265
272
|
}
|
266
273
|
}
|
267
274
|
PagerItemDirective.ɵfac = function PagerItemDirective_Factory(t) { return new (t || PagerItemDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(TEMPLATED_ITEMS_COMPONENT, 1), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
|
268
|
-
PagerItemDirective.ɵdir = i0.ɵɵdefineDirective({ type: PagerItemDirective, selectors: [["", "pagerItem", ""]] });
|
275
|
+
PagerItemDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PagerItemDirective, selectors: [["", "pagerItem", ""]] });
|
269
276
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PagerItemDirective, [{
|
270
277
|
type: Directive,
|
271
278
|
args: [{
|
@@ -289,7 +296,7 @@ export class TemplateKeyDirective {
|
|
289
296
|
}
|
290
297
|
}
|
291
298
|
TemplateKeyDirective.ɵfac = function TemplateKeyDirective_Factory(t) { return new (t || TemplateKeyDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(TEMPLATED_ITEMS_COMPONENT, 1)); };
|
292
|
-
TemplateKeyDirective.ɵdir = i0.ɵɵdefineDirective({ type: TemplateKeyDirective, selectors: [["", "pagerTemplateKey", ""]], inputs: { pagerTemplateKey: "pagerTemplateKey" } });
|
299
|
+
TemplateKeyDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TemplateKeyDirective, selectors: [["", "pagerTemplateKey", ""]], inputs: { pagerTemplateKey: "pagerTemplateKey" } });
|
293
300
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TemplateKeyDirective, [{
|
294
301
|
type: Directive,
|
295
302
|
args: [{ selector: '[pagerTemplateKey]' }]
|
@@ -301,4 +308,4 @@ TemplateKeyDirective.ɵdir = i0.ɵɵdefineDirective({ type: TemplateKeyDirective
|
|
301
308
|
}] }]; }, { pagerTemplateKey: [{
|
302
309
|
type: Input
|
303
310
|
}] }); })();
|
304
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXItaXRlbXMtY29tcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91aS1wYWdlci9hbmd1bGFyL3BhZ2VyLWl0ZW1zLWNvbXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUVULFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFFTCxlQUFlLEVBR2YsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLG1CQUFtQixJQUFJLGtCQUFrQixFQUM1QyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRyxPQUFPLEVBQTRCLFVBQVUsRUFBWSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQUd2RCxlQUFlLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFOUMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0FBYzdCLE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQW1CLFNBQWUsRUFBUyxJQUFVLEVBQVMsS0FBYyxFQUFTLElBQWMsRUFBUyxHQUFhO1FBQXRHLGNBQVMsR0FBVCxTQUFTLENB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QWpDUSxrQkFBa0IsNkRBS2YseUJBQXlCO3VEQUw1QixrQkFBa0I7dUZBQWxCLGtCQUFrQjtjQUg5QixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGFBQWE7YUFDMUI7Z0VBUXNCLHVCQUF1QjtzQkFGckMsTUFBTTt1QkFBQyx5QkFBeUI7O3NCQUNoQyxJQUFJOztBQStCYixNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFlBQ1ksV0FBNkIsRUFHN0IsSUFBNkI7UUFIN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBRzdCLFNBQUksR0FBSixJQUFJLENBQXlCO0lBQ3RDLENBQUM7SUFFSixJQUNJLGdCQUFnQixDQUFDLEtBQVU7UUFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0wsQ0FBQzs7d0ZBYlEsb0JBQW9CLDZEQUdqQix5QkFBeUI7eURBSDVCLG9CQUFvQjt1RkFBcEIsb0JBQW9CO2NBRGhDLFNBQVM7ZUFBQyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRTtnRUFNdkIsdUJBQXVCO3NCQUZwQyxNQUFNO3VCQUFDLHlCQUF5Qjs7c0JBQ2hDLElBQUk7d0JBS0wsZ0JBQWdCO2tCQURuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlRGlmZmVyLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICDJtWlzTGlzdExpa2VJdGVyYWJsZSBhcyBpc0xpc3RMaWtlSXRlcmFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdlciwgUGFnZXJFcnJvciwgUGFnZXJJdGVtLCBQYWdlckxvZyB9IGZyb20gJ0BuYXRpdmVzY3JpcHQtY29tbXVuaXR5L3VpLXBhZ2VyJztcbmltcG9ydCB7IGV4dHJhY3RTaW5nbGVWaWV3UmVjdXJzaXZlLCBpc0ludmlzaWJsZU5vZGUsIHJlZ2lzdGVyRWxlbWVudCB9IGZyb20gJ0BuYXRpdmVzY3JpcHQvYW5ndWxhcic7XG5pbXBvcnQgeyBFdmVudERhdGEsIEtleWVkVGVtcGxhdGUsIExheW91dEJhc2UsIFRlbXBsYXRlLCBUcmFjZSwgVmlldywgaXNJT1MgfSBmcm9tICdAbmF0aXZlc2NyaXB0L2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUFycmF5IH0gZnJvbSAnQG5hdGl2ZXNjcmlwdC9jb3JlL2RhdGEvb2JzZXJ2YWJsZS1hcnJheSc7XG5pbXBvcnQgeyBwcm9maWxlIH0gZnJvbSAnQG5hdGl2ZXNjcmlwdC9jb3JlL3Byb2ZpbGluZyc7XG5pbXBvcnQgeyBJdGVtRXZlbnREYXRhLCBJdGVtc1NvdXJjZSB9IGZyb20gJ0BuYXRpdmVzY3JpcHQvY29yZS91aS9saXN0LXZpZXcnO1xuXG5yZWdpc3RlckVsZW1lbnQoJ1BhZ2VyJywgKCkgPT4gUGFnZXIpO1xucmVnaXN0ZXJFbGVtZW50KCdQYWdlckl0ZW0nLCAoKSA9PiBQYWdlckl0ZW0pO1xuXG5jb25zdCBOR19WSUVXID0gJ19uZ1ZpZXdSZWYnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VyVGVtcGxhdGVkSXRlbXNWaWV3IHtcbiAgICBpdGVtczogYW55W10gfCBJdGVtc1NvdXJjZTtcbiAgICBpdGVtVGVtcGxhdGU6IHN0cmluZyB8IFRlbXBsYXRlO1xuICAgIGl0ZW1UZW1wbGF0ZXM/OiBzdHJpbmcgfCBLZXllZFRlbXBsYXRlW107XG5cbiAgICByZWZyZXNoKCk6IHZvaWQ7XG5cbiAgICBvbihldmVudDogJ2l0ZW1EaXNwb3NpbmcnIHwgJ2l0ZW1Mb2FkaW5nJywgY2FsbGJhY2s6IChhcmdzOiBJdGVtRXZlbnREYXRhKSA9PiB2b2lkLCB0aGlzQXJnPzogYW55KTtcblxuICAgIG9mZihldmVudDogJ2l0ZW1Mb2FkaW5nJyB8ICdpdGVtRGlzcG9zaW5nJywgY2FsbGJhY2s6IChhcmdzOiBFdmVudERhdGEpID0+IHZvaWQsIHRoaXNBcmc/OiBhbnkpO1xufVxuXG5leHBvcnQgY2xhc3MgSXRlbUNvbnRleHQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyAkaW1wbGljaXQ/OiBhbnksIHB1YmxpYyBpdGVtPzogYW55LCBwdWJsaWMgaW5kZXg/OiBudW1iZXIsIHB1YmxpYyBldmVuPzogYm9vbGVhbiwgcHVibGljIG9kZD86IGJvb2xlYW4pIHt9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dXBJdGVtVmlld0FyZ3Mge1xuICAgIHZpZXc6IEVtYmVkZGVkVmlld1JlZjxhbnk+O1xuICAgIGRhdGE6IGFueTtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIGNvbnRleHQ6IEl0ZW1Db250ZXh0O1xufVxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRlbXBsYXRlZEl0ZW1zQ29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjaywgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IG5hdGl2ZUVsZW1lbnQoKTogUGFnZXI7XG5cbiAgICBwcm90ZWN0ZWQgdGVtcGxhdGVkSXRlbXNWaWV3OiBQYWdlcjtcbiAgICBwcm90ZWN0ZWQgX2l0ZW1zOiBhbnk7XG4gICAgcHJvdGVjdGVkIF9kaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPEtleWVkVGVtcGxhdGU+O1xuICAgIHByb3RlY3RlZCBfdGVtcGxhdGVNYXA6IE1hcDxzdHJpbmcsIEtleWVkVGVtcGxhdGU+O1xuICAgIHByaXZhdGUgX3NlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgICBAVmlld0NoaWxkKCdsb2FkZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogZmFsc2UgfSkgbG9hZGVyOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNldHVwSXRlbVZpZXcgPSBuZXcgRXZlbnRFbWl0dGVyPFNldHVwSXRlbVZpZXdBcmdzPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IGZhbHNlIH0pIGl0ZW1UZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxJdGVtQ29udGV4dD47XG5cbiAgICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEl0ZW1Db250ZXh0PjtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGl0ZW1zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gICAgfVxuXG4gICAgc2V0IGl0ZW1zKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5faXRlbXMgPSB2YWx1ZTtcbiAgICAgICAgbGV0IG5lZWREaWZmZXIgPSB0cnVlO1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYnNlcnZhYmxlQXJyYXkpIHtcbiAgICAgICAgICAgIG5lZWREaWZmZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmVlZERpZmZlciAmJiAhdGhpcy5fZGlmZmVyICYmIGlzTGlzdExpa2VJdGVyYWJsZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpZmZlciA9IHRoaXMuX2l0ZXJhYmxlRGlmZmVycy5maW5kKHRoaXMuX2l0ZW1zKS5jcmVhdGUoKF9pbmRleCwgaXRlbSkgPT4gaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRlbXBsYXRlZEl0ZW1zVmlldy5pdGVtcyA9IHRoaXMuX2l0ZW1zO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSW5kZXg7XG4gICAgfVxuXG4gICAgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnRlbXBsYXRlZEl0ZW1zVmlldy5zZWxlY3RlZEluZGV4ID0gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICghIXRoaXMuX3NlbGVjdGVkSW5kZXgpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpc0lPUykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlZEl0ZW1zVmlldy5zY3JvbGxUb0luZGV4QW5pbWF0ZWQodGhpcy5fc2VsZWN0ZWRJbmRleCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlZEl0ZW1zVmlldy5zZWxlY3RlZEluZGV4ID0gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgX2l0ZXJhYmxlRGlmZmVyczogSXRlcmFibGVEaWZmZXJzKSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVkSXRlbXNWaWV3ID0gX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICB0aGlzLnRlbXBsYXRlZEl0ZW1zVmlldy5vbignaXRlbUxvYWRpbmcnLCB0aGlzLm9uSXRlbUxvYWRpbmcsIHRoaXMpO1xuICAgICAgICB0aGlzLnRlbXBsYXRlZEl0ZW1zVmlldy5vbignaXRlbURpc3Bvc2luZycsIHRoaXMub25JdGVtRGlzcG9zaW5nLCB0aGlzKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIGlmIChUcmFjZS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgUGFnZXJMb2coJ1RlbXBsYXRlZEl0ZW1zVmlldy5uZ0FmdGVyQ29udGVudEluaXQoKScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0SXRlbVRlbXBsYXRlcygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlZEl0ZW1zVmlldy5vZmYoJ2l0ZW1Mb2FkaW5nJywgdGhpcy5vbkl0ZW1Mb2FkaW5nLCB0aGlzKTtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZWRJdGVtc1ZpZXcub2ZmKCdpdGVtRGlzcG9zaW5nJywgdGhpcy5vbkl0ZW1EaXNwb3NpbmcsIHRoaXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SXRlbVRlbXBsYXRlcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLml0ZW1zKSByZXR1cm47XG4gICAgICAgIC8vIFRoZSBpdGVtVGVtcGxhdGVRdWVyeSBtYXkgYmUgY2hhbmdlZCBhZnRlciBsaXN0IGl0ZW1zIGFyZSBhZGRlZCB0aGF0IGNvbnRhaW4gPHRlbXBsYXRlPiBpbnNpZGUsXG4gICAgICAgIC8vIHNvIGNhY2hlIGFuZCB1c2Ugb25seSB0aGUgb3JpZ2luYWwgdGVtcGxhdGUgdG8gYXZvaWQgZXJyb3JzLlxuICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IHRoaXMuaXRlbVRlbXBsYXRlUXVlcnk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlTWFwKSB7XG4gICAgICAgICAgICBpZiAoVHJhY2UuaXNFbmFibGVkKCkpIHtcbiAgICAgICAgICAgICAgICBQYWdlckxvZygnU2V0dGluZyB0ZW1wbGF0ZXMnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdGVtcGxhdGVzOiBLZXllZFRlbXBsYXRlW10gPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3RlbXBsYXRlTWFwLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGVzLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlZEl0ZW1zVmlldy5pdGVtVGVtcGxhdGVzID0gdGVtcGxhdGVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyVGVtcGxhdGUoa2V5OiBzdHJpbmcsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJdGVtQ29udGV4dD4pIHtcbiAgICAgICAgaWYgKFRyYWNlLmlzRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICBQYWdlckxvZyhgcmVnaXN0ZXJUZW1wbGF0ZSBmb3Iga2V5OiAke2tleX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fdGVtcGxhdGVNYXApIHtcbiAgICAgICAgICAgIHRoaXMuX3RlbXBsYXRlTWFwID0gbmV3IE1hcDxzdHJpbmcsIEtleWVkVGVtcGxhdGU+KCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBrZXllZFRlbXBsYXRlID0ge1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgY3JlYXRlVmlldzogdGhpcy5nZXRJdGVtVGVtcGxhdGVWaWV3RmFjdG9yeSh0ZW1wbGF0ZSlcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl90ZW1wbGF0ZU1hcC5zZXQoa2V5LCBrZXllZFRlbXBsYXRlKTtcbiAgICB9XG5cbiAgICBAcHJvZmlsZVxuICAgIHB1YmxpYyBvbkl0ZW1Mb2FkaW5nKGFyZ3M6IEl0ZW1FdmVudERhdGEpIHtcbiAgICAgICAgaWYgKCFhcmdzLnZpZXcgJiYgIXRoaXMuaXRlbVRlbXBsYXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXRlbXMpIHJldHVybjtcblxuICAgICAgICBjb25zdCBpbmRleCA9IGFyZ3MuaW5kZXg7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gKGFyZ3Mub2JqZWN0IGFzIGFueSkuaXRlbXM7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdHlwZW9mIGl0ZW1zLmdldEl0ZW0gPT09ICdmdW5jdGlvbicgPyBpdGVtcy5nZXRJdGVtKGluZGV4KSA6IGl0ZW1zW2luZGV4XTtcbiAgICAgICAgbGV0IHZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxJdGVtQ29udGV4dD47XG5cbiAgICAgICAgaWYgKGFyZ3Mudmlldykge1xuICAgICAgICAgICAgaWYgKFRyYWNlLmlzRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgUGFnZXJMb2coYG9uSXRlbUxvYWRpbmc6ICR7aW5kZXh9IC0gUmV1c2luZyBleGlzdGluZyB2aWV3YCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZpZXdSZWYgPSBhcmdzLnZpZXdbTkdfVklFV107XG4gICAgICAgICAgICAvLyBHZXR0aW5nIGFuZ3VsYXIgdmlldyBmcm9tIG9yaWdpbmFsIGVsZW1lbnQgKGluIGNhc2VzIHdoZW4gUHJveHlWaWV3Q29udGFpbmVyXG4gICAgICAgICAgICAvLyBpcyB1c2VkIE5hdGl2ZVNjcmlwdCBpbnRlcm5hbGx5IHdyYXBzIGl0IGluIGEgU3RhY2tMYXlvdXQpXG4gICAgICAgICAgICBpZiAoIXZpZXdSZWYgJiYgYXJncy52aWV3IGluc3RhbmNlb2YgTGF5b3V0QmFzZSAmJiBhcmdzLnZpZXcuZ2V0Q2hpbGRyZW5Db3VudCgpID4gMCkge1xuICAgICAgICAgICAgICAgIHZpZXdSZWYgPSBhcmdzLnZpZXcuZ2V0Q2hpbGRBdCgwKVtOR19WSUVXXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF2aWV3UmVmICYmIFRyYWNlLmlzRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgUGFnZXJFcnJvcihgVmlld1JlZmVyZW5jZSBub3QgZm91bmQgZm9yIGl0ZW0gJHtpbmRleH0uIFZpZXcgcmVjeWNsaW5nIGlzIG5vdCB3b3JraW5nYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZpZXdSZWYpIHtcbiAgICAgICAgICAgIGlmIChUcmFjZS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIFBhZ2VyTG9nKGBvbkl0ZW1Mb2FkaW5nOiAke2luZGV4fSAtIENyZWF0aW5nIHZpZXcgZnJvbSB0ZW1wbGF0ZWApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2aWV3UmVmID0gdGhpcy5sb2FkZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuaXRlbVRlbXBsYXRlLCBuZXcgSXRlbUNvbnRleHQoKSwgMCk7XG4gICAgICAgICAgICBhcmdzLnZpZXcgPSBnZXRJdGVtVmlld1Jvb3Qodmlld1JlZik7XG4gICAgICAgICAgICBhcmdzLnZpZXdbTkdfVklFV10gPSB2aWV3UmVmO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXR1cFZpZXdSZWYodmlld1JlZiwgY3VycmVudEl0ZW0sIGluZGV4KTtcblxuICAgICAgICB0aGlzLmRldGVjdENoYW5nZXNPbkNoaWxkKHZpZXdSZWYsIGluZGV4KTtcbiAgICB9XG5cbiAgICBAcHJvZmlsZVxuICAgIHB1YmxpYyBvbkl0ZW1EaXNwb3NpbmcoYXJnczogSXRlbUV2ZW50RGF0YSkge1xuICAgICAgICBpZiAoIWFyZ3Mudmlldykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCB2aWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8SXRlbUNvbnRleHQ+O1xuXG4gICAgICAgIGlmIChhcmdzLnZpZXcpIHtcbiAgICAgICAgICAgIGlmIChUcmFjZS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIFBhZ2VyTG9nKGBvbkl0ZW1EaXNwb3Npbmc6ICR7YXJncy5pbmRleH0gLSBSZW1vdmluZyBhbmd1bGFyIHZpZXdgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmlld1JlZiA9IGFyZ3Mudmlld1tOR19WSUVXXTtcbiAgICAgICAgICAgIC8vIEdldHRpbmcgYW5ndWxhciB2aWV3IGZyb20gb3JpZ2luYWwgZWxlbWVudCAoaW4gY2FzZXMgd2hlbiBQcm94eVZpZXdDb250YWluZXJcbiAgICAgICAgICAgIC8vIGlzIHVzZWQgTmF0aXZlU2NyaXB0IGludGVybmFsbHkgd3JhcHMgaXQgaW4gYSBTdGFja0xheW91dClcbiAgICAgICAgICAgIGlmICghdmlld1JlZiAmJiBhcmdzLnZpZXcgaW5zdGFuY2VvZiBMYXlvdXRCYXNlICYmIGFyZ3Mudmlldy5nZXRDaGlsZHJlbkNvdW50KCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgdmlld1JlZiA9IGFyZ3Mudmlldy5nZXRDaGlsZEF0KDApW05HX1ZJRVddO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXZpZXdSZWYgJiYgVHJhY2UuaXNFbmFibGVkKCkpIHtcbiAgICAgICAgICAgICAgICBQYWdlckVycm9yKGBWaWV3UmVmZXJlbmNlIG5vdCBmb3VuZCBmb3IgaXRlbSAke2FyZ3MuaW5kZXh9LiBWaWV3IGRpc3Bvc2luZyBpcyBub3Qgd29ya2luZ2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZpZXdSZWYpIHtcbiAgICAgICAgICAgIGlmIChUcmFjZS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIFBhZ2VyTG9nKGBvbkl0ZW1EaXNwb3Npbmc6ICR7YXJncy5pbmRleH0gLSBEaXNwb3NpbmcgdmlldyByZWZlcmVuY2VgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmlld1JlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0dXBWaWV3UmVmKHZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxJdGVtQ29udGV4dD4sIGRhdGE6IGFueSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdmlld1JlZi5jb250ZXh0O1xuICAgICAgICBjb250ZXh0LiRpbXBsaWNpdCA9IGRhdGE7XG4gICAgICAgIGNvbnRleHQuaXRlbSA9IGRhdGE7XG4gICAgICAgIGNvbnRleHQuaW5kZXggPSBpbmRleDtcbiAgICAgICAgY29udGV4dC5ldmVuID0gaW5kZXggJSAyID09PSAwO1xuICAgICAgICBjb250ZXh0Lm9kZCA9ICFjb250ZXh0LmV2ZW47XG5cbiAgICAgICAgdGhpcy5zZXR1cEl0ZW1WaWV3Lm5leHQoe1xuICAgICAgICAgICAgdmlldzogdmlld1JlZixcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEl0ZW1UZW1wbGF0ZVZpZXdGYWN0b3J5KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJdGVtQ29udGV4dD4pOiAoKSA9PiBWaWV3IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLmxvYWRlci5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGUsIG5ldyBJdGVtQ29udGV4dCgpLCAwKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdFZpZXcgPSBnZXRJdGVtVmlld1Jvb3Qodmlld1JlZik7XG4gICAgICAgICAgICByZXN1bHRWaWV3W05HX1ZJRVddID0gdmlld1JlZjtcblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFZpZXc7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgQHByb2ZpbGVcbiAgICBwcml2YXRlIGRldGVjdENoYW5nZXNPbkNoaWxkKHZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxJdGVtQ29udGV4dD4sIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKFRyYWNlLmlzRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICBQYWdlckxvZyhgTWFudWFsbHkgZGV0ZWN0IGNoYW5nZXMgaW4gY2hpbGQ6ICR7aW5kZXh9YCk7XG4gICAgICAgIH1cblxuICAgICAgICB2aWV3UmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB2aWV3UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKSB7XG4gICAgICAgIGlmICh0aGlzLl9kaWZmZXIpIHtcbiAgICAgICAgICAgIGlmIChUcmFjZS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIFBhZ2VyTG9nKCduZ0RvQ2hlY2soKSAtIGV4ZWN1dGUgZGlmZmVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLl9kaWZmZXIuZGlmZih0aGlzLl9pdGVtcyk7XG4gICAgICAgICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICAgICAgICAgIGlmIChUcmFjZS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICBQYWdlckxvZygnbmdEb0NoZWNrKCkgLSByZWZyZXNoJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZWRJdGVtc1ZpZXcucmVmcmVzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudFZpZXcge1xuICAgIHJvb3ROb2RlczogYW55W107XG5cbiAgICBkZXN0cm95KCk6IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIFJvb3RMb2NhdG9yID0gKG5vZGVzOiBhbnlbXSwgbmVzdExldmVsOiBudW1iZXIpID0+IFZpZXc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJdGVtVmlld1Jvb3Qodmlld1JlZjogQ29tcG9uZW50Vmlldywgcm9vdExvY2F0b3I6IFJvb3RMb2NhdG9yID0gZXh0cmFjdFNpbmdsZVZpZXdSZWN1cnNpdmUgYXMgYW55KTogVmlldyB7XG4gICAgcmV0dXJuIHJvb3RMb2NhdG9yKHZpZXdSZWYucm9vdE5vZGVzLCAwKTtcbn1cblxuZXhwb3J0IGNvbnN0IFRFTVBMQVRFRF9JVEVNU19DT01QT05FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48VGVtcGxhdGVkSXRlbXNDb21wb25lbnQ+KCdUZW1wbGF0ZWRJdGVtc0NvbXBvbmVudCcpO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1twYWdlckl0ZW1dJ1xufSlcbmV4cG9ydCBjbGFzcyBQYWdlckl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgaXRlbTogUGFnZXJJdGVtO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgIEBJbmplY3QoVEVNUExBVEVEX0lURU1TX0NPTVBPTkVOVClcbiAgICAgICAgQEhvc3QoKVxuICAgICAgICBwcml2YXRlIG93bmVyOiBUZW1wbGF0ZWRJdGVtc0NvbXBvbmVudCxcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7fVxuXG4gICAgcHJpdmF0ZSBlbnN1cmVJdGVtKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5pdGVtID0gbmV3IFBhZ2VySXRlbSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBseUNvbmZpZygpIHtcbiAgICAgICAgdGhpcy5lbnN1cmVJdGVtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYXBwbHlDb25maWcoKTtcblxuICAgICAgICBjb25zdCB2aWV3UmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgLy8gRmlsdGVyIG91dCB0ZXh0IG5vZGVzIGFuZCBjb21tZW50c1xuICAgICAgICBjb25zdCByZWFsVmlld3MgPSB2aWV3UmVmLnJvb3ROb2Rlcy5maWx0ZXIoKG5vZGUpID0+ICFpc0ludmlzaWJsZU5vZGUobm9kZSkpO1xuXG4gICAgICAgIGlmIChyZWFsVmlld3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgdmlldyA9IHJlYWxWaWV3c1swXTtcbiAgICAgICAgICAgIHRoaXMuaXRlbS5hZGRDaGlsZCh2aWV3KTtcbiAgICAgICAgICAgIHRoaXMub3duZXIubmF0aXZlRWxlbWVudC5fYWRkQ2hpbGRGcm9tQnVpbGRlcignUGFnZXJJdGVtJywgdGhpcy5pdGVtKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3BhZ2VyVGVtcGxhdGVLZXldJyB9KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlS2V5RGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgQEluamVjdChURU1QTEFURURfSVRFTVNfQ09NUE9ORU5UKVxuICAgICAgICBASG9zdCgpXG4gICAgICAgIHByaXZhdGUgY29tcDogVGVtcGxhdGVkSXRlbXNDb21wb25lbnRcbiAgICApIHt9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBwYWdlclRlbXBsYXRlS2V5KHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcCAmJiB0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXAucmVnaXN0ZXJUZW1wbGF0ZSh2YWx1ZSwgdGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
311
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXItaXRlbXMtY29tcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91aS1wYWdlci9hbmd1bGFyL3BhZ2VyLWl0ZW1zLWNvbXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUVULFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFFTCxlQUFlLEVBR2YsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLG1CQUFtQixJQUFJLGtCQUFrQixFQUM1QyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRyxPQUFPLEVBQTRCLFVBQVUsRUFBWSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQUd2RCxlQUFlLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFOUMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0FBYzdCLE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQW1CLFNBQWUsRUFBUyxJQUFVLEVBQVMsS0FBYyxFQUFTLElBQWMsRUFBUyxHQUFhO1FBQXRHLGNBQVMsR0FBVCxTQUFTLENB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Q0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekU7SUFDTCxDQUFDOztvRkFqQ1Esa0JBQWtCLDZEQUtmLHlCQUF5QjtxRUFMNUIsa0JBQWtCO3VGQUFsQixrQkFBa0I7Y0FIOUIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxhQUFhO2FBQzFCOztzQkFNUSxNQUFNO3VCQUFDLHlCQUF5Qjs7c0JBQ2hDLElBQUk7O0FBK0JiLE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsWUFDWSxXQUE2QixFQUc3QixJQUE2QjtRQUg3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFHN0IsU0FBSSxHQUFKLElBQUksQ0FBeUI7SUFDdEMsQ0FBQztJQUVKLElBQ0ksZ0JBQWdCLENBQUMsS0FBVTtRQUMzQixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdkQ7SUFDTCxDQUFDOzt3RkFiUSxvQkFBb0IsNkRBR2pCLHlCQUF5Qjt1RUFINUIsb0JBQW9CO3VGQUFwQixvQkFBb0I7Y0FEaEMsU0FBUztlQUFDLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFOztzQkFJcEMsTUFBTTt1QkFBQyx5QkFBeUI7O3NCQUNoQyxJQUFJO3dCQUtMLGdCQUFnQjtrQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBJdGVyYWJsZURpZmZlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgybVpc0xpc3RMaWtlSXRlcmFibGUgYXMgaXNMaXN0TGlrZUl0ZXJhYmxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFnZXIsIFBhZ2VyRXJyb3IsIFBhZ2VySXRlbSwgUGFnZXJMb2cgfSBmcm9tICdAbmF0aXZlc2NyaXB0LWNvbW11bml0eS91aS1wYWdlcic7XG5pbXBvcnQgeyBleHRyYWN0U2luZ2xlVmlld1JlY3Vyc2l2ZSwgaXNJbnZpc2libGVOb2RlLCByZWdpc3RlckVsZW1lbnQgfSBmcm9tICdAbmF0aXZlc2NyaXB0L2FuZ3VsYXInO1xuaW1wb3J0IHsgRXZlbnREYXRhLCBLZXllZFRlbXBsYXRlLCBMYXlvdXRCYXNlLCBUZW1wbGF0ZSwgVHJhY2UsIFZpZXcsIGlzSU9TIH0gZnJvbSAnQG5hdGl2ZXNjcmlwdC9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGVBcnJheSB9IGZyb20gJ0BuYXRpdmVzY3JpcHQvY29yZS9kYXRhL29ic2VydmFibGUtYXJyYXknO1xuaW1wb3J0IHsgcHJvZmlsZSB9IGZyb20gJ0BuYXRpdmVzY3JpcHQvY29yZS9wcm9maWxpbmcnO1xuaW1wb3J0IHsgSXRlbUV2ZW50RGF0YSwgSXRlbXNTb3VyY2UgfSBmcm9tICdAbmF0aXZlc2NyaXB0L2NvcmUvdWkvbGlzdC12aWV3JztcblxucmVnaXN0ZXJFbGVtZW50KCdQYWdlcicsICgpID0+IFBhZ2VyKTtcbnJlZ2lzdGVyRWxlbWVudCgnUGFnZXJJdGVtJywgKCkgPT4gUGFnZXJJdGVtKTtcblxuY29uc3QgTkdfVklFVyA9ICdfbmdWaWV3UmVmJztcblxuZXhwb3J0IGludGVyZmFjZSBQYWdlclRlbXBsYXRlZEl0ZW1zVmlldyB7XG4gICAgaXRlbXM6IGFueVtdIHwgSXRlbXNTb3VyY2U7XG4gICAgaXRlbVRlbXBsYXRlOiBzdHJpbmcgfCBUZW1wbGF0ZTtcbiAgICBpdGVtVGVtcGxhdGVzPzogc3RyaW5nIHwgS2V5ZWRUZW1wbGF0ZVtdO1xuXG4gICAgcmVmcmVzaCgpOiB2b2lkO1xuXG4gICAgb24oZXZlbnQ6ICdpdGVtRGlzcG9zaW5nJyB8ICdpdGVtTG9hZGluZycsIGNhbGxiYWNrOiAoYXJnczogSXRlbUV2ZW50RGF0YSkgPT4gdm9pZCwgdGhpc0FyZz86IGFueSk7XG5cbiAgICBvZmYoZXZlbnQ6ICdpdGVtTG9hZGluZycgfCAnaXRlbURpc3Bvc2luZycsIGNhbGxiYWNrOiAoYXJnczogRXZlbnREYXRhKSA9PiB2b2lkLCB0aGlzQXJnPzogYW55KTtcbn1cblxuZXhwb3J0IGNsYXNzIEl0ZW1Db250ZXh0IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgJGltcGxpY2l0PzogYW55LCBwdWJsaWMgaXRlbT86IGFueSwgcHVibGljIGluZGV4PzogbnVtYmVyLCBwdWJsaWMgZXZlbj86IGJvb2xlYW4sIHB1YmxpYyBvZGQ/OiBib29sZWFuKSB7fVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldHVwSXRlbVZpZXdBcmdzIHtcbiAgICB2aWV3OiBFbWJlZGRlZFZpZXdSZWY8YW55PjtcbiAgICBkYXRhOiBhbnk7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICBjb250ZXh0OiBJdGVtQ29udGV4dDtcbn1cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUZW1wbGF0ZWRJdGVtc0NvbXBvbmVudCBpbXBsZW1lbnRzIERvQ2hlY2ssIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcHVibGljIGFic3RyYWN0IGdldCBuYXRpdmVFbGVtZW50KCk6IFBhZ2VyO1xuXG4gICAgcHJvdGVjdGVkIHRlbXBsYXRlZEl0ZW1zVmlldzogUGFnZXI7XG4gICAgcHJvdGVjdGVkIF9pdGVtczogYW55O1xuICAgIHByb3RlY3RlZCBfZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxLZXllZFRlbXBsYXRlPjtcbiAgICBwcm90ZWN0ZWQgX3RlbXBsYXRlTWFwOiBNYXA8c3RyaW5nLCBLZXllZFRlbXBsYXRlPjtcbiAgICBwcml2YXRlIF9zZWxlY3RlZEluZGV4OiBudW1iZXI7XG4gICAgQFZpZXdDaGlsZCgnbG9hZGVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlIH0pIGxvYWRlcjogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzZXR1cEl0ZW1WaWV3ID0gbmV3IEV2ZW50RW1pdHRlcjxTZXR1cEl0ZW1WaWV3QXJncz4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiBmYWxzZSB9KSBpdGVtVGVtcGxhdGVRdWVyeTogVGVtcGxhdGVSZWY8SXRlbUNvbnRleHQ+O1xuXG4gICAgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJdGVtQ29udGV4dD47XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpdGVtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICAgIH1cblxuICAgIHNldCBpdGVtcyh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gdmFsdWU7XG4gICAgICAgIGxldCBuZWVkRGlmZmVyID0gdHJ1ZTtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZUFycmF5KSB7XG4gICAgICAgICAgICBuZWVkRGlmZmVyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5lZWREaWZmZXIgJiYgIXRoaXMuX2RpZmZlciAmJiBpc0xpc3RMaWtlSXRlcmFibGUodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLl9kaWZmZXIgPSB0aGlzLl9pdGVyYWJsZURpZmZlcnMuZmluZCh0aGlzLl9pdGVtcykuY3JlYXRlKChfaW5kZXgsIGl0ZW0pID0+IGl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50ZW1wbGF0ZWRJdGVtc1ZpZXcuaXRlbXMgPSB0aGlzLl9pdGVtcztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBzZWxlY3RlZEluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4O1xuICAgIH1cblxuICAgIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSB2YWx1ZTtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZWRJdGVtc1ZpZXcuc2VsZWN0ZWRJbmRleCA9IHRoaXMuX3NlbGVjdGVkSW5kZXg7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAoISF0aGlzLl9zZWxlY3RlZEluZGV4KSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNJT1MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZWRJdGVtc1ZpZXcuc2Nyb2xsVG9JbmRleEFuaW1hdGVkKHRoaXMuX3NlbGVjdGVkSW5kZXgsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZWRJdGVtc1ZpZXcuc2VsZWN0ZWRJbmRleCA9IHRoaXMuX3NlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIF9pdGVyYWJsZURpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycykge1xuICAgICAgICB0aGlzLnRlbXBsYXRlZEl0ZW1zVmlldyA9IF9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy50ZW1wbGF0ZWRJdGVtc1ZpZXcub24oJ2l0ZW1Mb2FkaW5nJywgdGhpcy5vbkl0ZW1Mb2FkaW5nLCB0aGlzKTtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZWRJdGVtc1ZpZXcub24oJ2l0ZW1EaXNwb3NpbmcnLCB0aGlzLm9uSXRlbURpc3Bvc2luZywgdGhpcyk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAoVHJhY2UuaXNFbmFibGVkKCkpIHtcbiAgICAgICAgICAgIFBhZ2VyTG9nKCdUZW1wbGF0ZWRJdGVtc1ZpZXcubmdBZnRlckNvbnRlbnRJbml0KCknKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldEl0ZW1UZW1wbGF0ZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZWRJdGVtc1ZpZXcub2ZmKCdpdGVtTG9hZGluZycsIHRoaXMub25JdGVtTG9hZGluZywgdGhpcyk7XG4gICAgICAgIHRoaXMudGVtcGxhdGVkSXRlbXNWaWV3Lm9mZignaXRlbURpc3Bvc2luZycsIHRoaXMub25JdGVtRGlzcG9zaW5nLCB0aGlzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEl0ZW1UZW1wbGF0ZXMoKSB7XG4gICAgICAgIGlmICghdGhpcy5pdGVtcykgcmV0dXJuO1xuICAgICAgICAvLyBUaGUgaXRlbVRlbXBsYXRlUXVlcnkgbWF5IGJlIGNoYW5nZWQgYWZ0ZXIgbGlzdCBpdGVtcyBhcmUgYWRkZWQgdGhhdCBjb250YWluIDx0ZW1wbGF0ZT4gaW5zaWRlLFxuICAgICAgICAvLyBzbyBjYWNoZSBhbmQgdXNlIG9ubHkgdGhlIG9yaWdpbmFsIHRlbXBsYXRlIHRvIGF2b2lkIGVycm9ycy5cbiAgICAgICAgdGhpcy5pdGVtVGVtcGxhdGUgPSB0aGlzLml0ZW1UZW1wbGF0ZVF1ZXJ5O1xuXG4gICAgICAgIGlmICh0aGlzLl90ZW1wbGF0ZU1hcCkge1xuICAgICAgICAgICAgaWYgKFRyYWNlLmlzRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgUGFnZXJMb2coJ1NldHRpbmcgdGVtcGxhdGVzJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlczogS2V5ZWRUZW1wbGF0ZVtdID0gW107XG4gICAgICAgICAgICB0aGlzLl90ZW1wbGF0ZU1hcC5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRlbXBsYXRlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZWRJdGVtc1ZpZXcuaXRlbVRlbXBsYXRlcyA9IHRlbXBsYXRlcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlclRlbXBsYXRlKGtleTogc3RyaW5nLCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8SXRlbUNvbnRleHQ+KSB7XG4gICAgICAgIGlmIChUcmFjZS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgUGFnZXJMb2coYHJlZ2lzdGVyVGVtcGxhdGUgZm9yIGtleTogJHtrZXl9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX3RlbXBsYXRlTWFwKSB7XG4gICAgICAgICAgICB0aGlzLl90ZW1wbGF0ZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBLZXllZFRlbXBsYXRlPigpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2V5ZWRUZW1wbGF0ZSA9IHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGNyZWF0ZVZpZXc6IHRoaXMuZ2V0SXRlbVRlbXBsYXRlVmlld0ZhY3RvcnkodGVtcGxhdGUpXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fdGVtcGxhdGVNYXAuc2V0KGtleSwga2V5ZWRUZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgQHByb2ZpbGVcbiAgICBwdWJsaWMgb25JdGVtTG9hZGluZyhhcmdzOiBJdGVtRXZlbnREYXRhKSB7XG4gICAgICAgIGlmICghYXJncy52aWV3ICYmICF0aGlzLml0ZW1UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLml0ZW1zKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaW5kZXggPSBhcmdzLmluZGV4O1xuICAgICAgICBjb25zdCBpdGVtcyA9IChhcmdzLm9iamVjdCBhcyBhbnkpLml0ZW1zO1xuICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IHR5cGVvZiBpdGVtcy5nZXRJdGVtID09PSAnZnVuY3Rpb24nID8gaXRlbXMuZ2V0SXRlbShpbmRleCkgOiBpdGVtc1tpbmRleF07XG4gICAgICAgIGxldCB2aWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8SXRlbUNvbnRleHQ+O1xuXG4gICAgICAgIGlmIChhcmdzLnZpZXcpIHtcbiAgICAgICAgICAgIGlmIChUcmFjZS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIFBhZ2VyTG9nKGBvbkl0ZW1Mb2FkaW5nOiAke2luZGV4fSAtIFJldXNpbmcgZXhpc3Rpbmcgdmlld2ApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2aWV3UmVmID0gYXJncy52aWV3W05HX1ZJRVddO1xuICAgICAgICAgICAgLy8gR2V0dGluZyBhbmd1bGFyIHZpZXcgZnJvbSBvcmlnaW5hbCBlbGVtZW50IChpbiBjYXNlcyB3aGVuIFByb3h5Vmlld0NvbnRhaW5lclxuICAgICAgICAgICAgLy8gaXMgdXNlZCBOYXRpdmVTY3JpcHQgaW50ZXJuYWxseSB3cmFwcyBpdCBpbiBhIFN0YWNrTGF5b3V0KVxuICAgICAgICAgICAgaWYgKCF2aWV3UmVmICYmIGFyZ3MudmlldyBpbnN0YW5jZW9mIExheW91dEJhc2UgJiYgYXJncy52aWV3LmdldENoaWxkcmVuQ291bnQoKSA+IDApIHtcbiAgICAgICAgICAgICAgICB2aWV3UmVmID0gYXJncy52aWV3LmdldENoaWxkQXQoMClbTkdfVklFV107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdmlld1JlZiAmJiBUcmFjZS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIFBhZ2VyRXJyb3IoYFZpZXdSZWZlcmVuY2Ugbm90IGZvdW5kIGZvciBpdGVtICR7aW5kZXh9LiBWaWV3IHJlY3ljbGluZyBpcyBub3Qgd29ya2luZ2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2aWV3UmVmKSB7XG4gICAgICAgICAgICBpZiAoVHJhY2UuaXNFbmFibGVkKCkpIHtcbiAgICAgICAgICAgICAgICBQYWdlckxvZyhgb25JdGVtTG9hZGluZzogJHtpbmRleH0gLSBDcmVhdGluZyB2aWV3IGZyb20gdGVtcGxhdGVgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmlld1JlZiA9IHRoaXMubG9hZGVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLml0ZW1UZW1wbGF0ZSwgbmV3IEl0ZW1Db250ZXh0KCksIDApO1xuICAgICAgICAgICAgYXJncy52aWV3ID0gZ2V0SXRlbVZpZXdSb290KHZpZXdSZWYpO1xuICAgICAgICAgICAgYXJncy52aWV3W05HX1ZJRVddID0gdmlld1JlZjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0dXBWaWV3UmVmKHZpZXdSZWYsIGN1cnJlbnRJdGVtLCBpbmRleCk7XG5cbiAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzT25DaGlsZCh2aWV3UmVmLCBpbmRleCk7XG4gICAgfVxuXG4gICAgQHByb2ZpbGVcbiAgICBwdWJsaWMgb25JdGVtRGlzcG9zaW5nKGFyZ3M6IEl0ZW1FdmVudERhdGEpIHtcbiAgICAgICAgaWYgKCFhcmdzLnZpZXcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPEl0ZW1Db250ZXh0PjtcblxuICAgICAgICBpZiAoYXJncy52aWV3KSB7XG4gICAgICAgICAgICBpZiAoVHJhY2UuaXNFbmFibGVkKCkpIHtcbiAgICAgICAgICAgICAgICBQYWdlckxvZyhgb25JdGVtRGlzcG9zaW5nOiAke2FyZ3MuaW5kZXh9IC0gUmVtb3ZpbmcgYW5ndWxhciB2aWV3YCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZpZXdSZWYgPSBhcmdzLnZpZXdbTkdfVklFV107XG4gICAgICAgICAgICAvLyBHZXR0aW5nIGFuZ3VsYXIgdmlldyBmcm9tIG9yaWdpbmFsIGVsZW1lbnQgKGluIGNhc2VzIHdoZW4gUHJveHlWaWV3Q29udGFpbmVyXG4gICAgICAgICAgICAvLyBpcyB1c2VkIE5hdGl2ZVNjcmlwdCBpbnRlcm5hbGx5IHdyYXBzIGl0IGluIGEgU3RhY2tMYXlvdXQpXG4gICAgICAgICAgICBpZiAoIXZpZXdSZWYgJiYgYXJncy52aWV3IGluc3RhbmNlb2YgTGF5b3V0QmFzZSAmJiBhcmdzLnZpZXcuZ2V0Q2hpbGRyZW5Db3VudCgpID4gMCkge1xuICAgICAgICAgICAgICAgIHZpZXdSZWYgPSBhcmdzLnZpZXcuZ2V0Q2hpbGRBdCgwKVtOR19WSUVXXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF2aWV3UmVmICYmIFRyYWNlLmlzRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgUGFnZXJFcnJvcihgVmlld1JlZmVyZW5jZSBub3QgZm91bmQgZm9yIGl0ZW0gJHthcmdzLmluZGV4fS4gVmlldyBkaXNwb3NpbmcgaXMgbm90IHdvcmtpbmdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2aWV3UmVmKSB7XG4gICAgICAgICAgICBpZiAoVHJhY2UuaXNFbmFibGVkKCkpIHtcbiAgICAgICAgICAgICAgICBQYWdlckxvZyhgb25JdGVtRGlzcG9zaW5nOiAke2FyZ3MuaW5kZXh9IC0gRGlzcG9zaW5nIHZpZXcgcmVmZXJlbmNlYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZpZXdSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldHVwVmlld1JlZih2aWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8SXRlbUNvbnRleHQ+LCBkYXRhOiBhbnksIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHZpZXdSZWYuY29udGV4dDtcbiAgICAgICAgY29udGV4dC4kaW1wbGljaXQgPSBkYXRhO1xuICAgICAgICBjb250ZXh0Lml0ZW0gPSBkYXRhO1xuICAgICAgICBjb250ZXh0LmluZGV4ID0gaW5kZXg7XG4gICAgICAgIGNvbnRleHQuZXZlbiA9IGluZGV4ICUgMiA9PT0gMDtcbiAgICAgICAgY29udGV4dC5vZGQgPSAhY29udGV4dC5ldmVuO1xuXG4gICAgICAgIHRoaXMuc2V0dXBJdGVtVmlldy5uZXh0KHtcbiAgICAgICAgICAgIHZpZXc6IHZpZXdSZWYsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBjb250ZXh0XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRJdGVtVGVtcGxhdGVWaWV3RmFjdG9yeSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8SXRlbUNvbnRleHQ+KTogKCkgPT4gVmlldyB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2aWV3UmVmID0gdGhpcy5sb2FkZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlLCBuZXcgSXRlbUNvbnRleHQoKSwgMCk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHRWaWV3ID0gZ2V0SXRlbVZpZXdSb290KHZpZXdSZWYpO1xuICAgICAgICAgICAgcmVzdWx0Vmlld1tOR19WSUVXXSA9IHZpZXdSZWY7XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHRWaWV3O1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIEBwcm9maWxlXG4gICAgcHJpdmF0ZSBkZXRlY3RDaGFuZ2VzT25DaGlsZCh2aWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8SXRlbUNvbnRleHQ+LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChUcmFjZS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgUGFnZXJMb2coYE1hbnVhbGx5IGRldGVjdCBjaGFuZ2VzIGluIGNoaWxkOiAke2luZGV4fWApO1xuICAgICAgICB9XG5cbiAgICAgICAgdmlld1JlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdmlld1JlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICBpZiAodGhpcy5fZGlmZmVyKSB7XG4gICAgICAgICAgICBpZiAoVHJhY2UuaXNFbmFibGVkKCkpIHtcbiAgICAgICAgICAgICAgICBQYWdlckxvZygnbmdEb0NoZWNrKCkgLSBleGVjdXRlIGRpZmZlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5fZGlmZmVyLmRpZmYodGhpcy5faXRlbXMpO1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoVHJhY2UuaXNFbmFibGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgUGFnZXJMb2coJ25nRG9DaGVjaygpIC0gcmVmcmVzaCcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMudGVtcGxhdGVkSXRlbXNWaWV3LnJlZnJlc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRWaWV3IHtcbiAgICByb290Tm9kZXM6IGFueVtdO1xuXG4gICAgZGVzdHJveSgpOiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBSb290TG9jYXRvciA9IChub2RlczogYW55W10sIG5lc3RMZXZlbDogbnVtYmVyKSA9PiBWaWV3O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SXRlbVZpZXdSb290KHZpZXdSZWY6IENvbXBvbmVudFZpZXcsIHJvb3RMb2NhdG9yOiBSb290TG9jYXRvciA9IGV4dHJhY3RTaW5nbGVWaWV3UmVjdXJzaXZlIGFzIGFueSk6IFZpZXcge1xuICAgIHJldHVybiByb290TG9jYXRvcih2aWV3UmVmLnJvb3ROb2RlcywgMCk7XG59XG5cbmV4cG9ydCBjb25zdCBURU1QTEFURURfSVRFTVNfQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPFRlbXBsYXRlZEl0ZW1zQ29tcG9uZW50PignVGVtcGxhdGVkSXRlbXNDb21wb25lbnQnKTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcGFnZXJJdGVtXSdcbn0pXG5leHBvcnQgY2xhc3MgUGFnZXJJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIGl0ZW06IFBhZ2VySXRlbTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICBASW5qZWN0KFRFTVBMQVRFRF9JVEVNU19DT01QT05FTlQpXG4gICAgICAgIEBIb3N0KClcbiAgICAgICAgcHJpdmF0ZSBvd25lcjogVGVtcGxhdGVkSXRlbXNDb21wb25lbnQsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxuICAgICkge31cblxuICAgIHByaXZhdGUgZW5zdXJlSXRlbSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLml0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbSA9IG5ldyBQYWdlckl0ZW0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlDb25maWcoKSB7XG4gICAgICAgIHRoaXMuZW5zdXJlSXRlbSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmFwcGx5Q29uZmlnKCk7XG5cbiAgICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgICAgIC8vIEZpbHRlciBvdXQgdGV4dCBub2RlcyBhbmQgY29tbWVudHNcbiAgICAgICAgY29uc3QgcmVhbFZpZXdzID0gdmlld1JlZi5yb290Tm9kZXMuZmlsdGVyKChub2RlKSA9PiAhaXNJbnZpc2libGVOb2RlKG5vZGUpKTtcblxuICAgICAgICBpZiAocmVhbFZpZXdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHZpZXcgPSByZWFsVmlld3NbMF07XG4gICAgICAgICAgICB0aGlzLml0ZW0uYWRkQ2hpbGQodmlldyk7XG4gICAgICAgICAgICB0aGlzLm93bmVyLm5hdGl2ZUVsZW1lbnQuX2FkZENoaWxkRnJvbUJ1aWxkZXIoJ1BhZ2VySXRlbScsIHRoaXMuaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1twYWdlclRlbXBsYXRlS2V5XScgfSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUtleURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgIEBJbmplY3QoVEVNUExBVEVEX0lURU1TX0NPTVBPTkVOVClcbiAgICAgICAgQEhvc3QoKVxuICAgICAgICBwcml2YXRlIGNvbXA6IFRlbXBsYXRlZEl0ZW1zQ29tcG9uZW50XG4gICAgKSB7fVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgcGFnZXJUZW1wbGF0ZUtleSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXAgJiYgdGhpcy50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wLnJlZ2lzdGVyVGVtcGxhdGUodmFsdWUsIHRoaXMudGVtcGxhdGVSZWYpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
@@ -71,6 +71,8 @@ class TemplatedItemsComponent {
|
|
71
71
|
setItemTemplates() {
|
72
72
|
if (!this.items)
|
73
73
|
return;
|
74
|
+
// The itemTemplateQuery may be changed after list items are added that contain <template> inside,
|
75
|
+
// so cache and use only the original template to avoid errors.
|
74
76
|
this.itemTemplate = this.itemTemplateQuery;
|
75
77
|
if (this._templateMap) {
|
76
78
|
if (Trace.isEnabled()) {
|
@@ -111,6 +113,8 @@ class TemplatedItemsComponent {
|
|
111
113
|
PagerLog(`onItemLoading: ${index} - Reusing existing view`);
|
112
114
|
}
|
113
115
|
viewRef = args.view[NG_VIEW];
|
116
|
+
// Getting angular view from original element (in cases when ProxyViewContainer
|
117
|
+
// is used NativeScript internally wraps it in a StackLayout)
|
114
118
|
if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
|
115
119
|
viewRef = args.view.getChildAt(0)[NG_VIEW];
|
116
120
|
}
|
@@ -139,6 +143,8 @@ class TemplatedItemsComponent {
|
|
139
143
|
PagerLog(`onItemDisposing: ${args.index} - Removing angular view`);
|
140
144
|
}
|
141
145
|
viewRef = args.view[NG_VIEW];
|
146
|
+
// Getting angular view from original element (in cases when ProxyViewContainer
|
147
|
+
// is used NativeScript internally wraps it in a StackLayout)
|
142
148
|
if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
|
143
149
|
viewRef = args.view.getChildAt(0)[NG_VIEW];
|
144
150
|
}
|
@@ -198,7 +204,7 @@ class TemplatedItemsComponent {
|
|
198
204
|
}
|
199
205
|
}
|
200
206
|
TemplatedItemsComponent.ɵfac = function TemplatedItemsComponent_Factory(t) { return new (t || TemplatedItemsComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.IterableDiffers)); };
|
201
|
-
TemplatedItemsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: TemplatedItemsComponent, selectors: [["ng-component"]], contentQueries: function TemplatedItemsComponent_ContentQueries(rf, ctx, dirIndex) {
|
207
|
+
TemplatedItemsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TemplatedItemsComponent, selectors: [["ng-component"]], contentQueries: function TemplatedItemsComponent_ContentQueries(rf, ctx, dirIndex) {
|
202
208
|
if (rf & 1) {
|
203
209
|
i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);
|
204
210
|
}
|
@@ -265,6 +271,7 @@ class PagerItemDirective {
|
|
265
271
|
ngOnInit() {
|
266
272
|
this.applyConfig();
|
267
273
|
const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);
|
274
|
+
// Filter out text nodes and comments
|
268
275
|
const realViews = viewRef.rootNodes.filter((node) => !isInvisibleNode(node));
|
269
276
|
if (realViews.length > 0) {
|
270
277
|
const view = realViews[0];
|
@@ -274,7 +281,7 @@ class PagerItemDirective {
|
|
274
281
|
}
|
275
282
|
}
|
276
283
|
PagerItemDirective.ɵfac = function PagerItemDirective_Factory(t) { return new (t || PagerItemDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(TEMPLATED_ITEMS_COMPONENT, 1), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
|
277
|
-
PagerItemDirective.ɵdir = i0.ɵɵdefineDirective({ type: PagerItemDirective, selectors: [["", "pagerItem", ""]] });
|
284
|
+
PagerItemDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PagerItemDirective, selectors: [["", "pagerItem", ""]] });
|
278
285
|
(function () {
|
279
286
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PagerItemDirective, [{
|
280
287
|
type: Directive,
|
@@ -302,7 +309,7 @@ class TemplateKeyDirective {
|
|
302
309
|
}
|
303
310
|
}
|
304
311
|
TemplateKeyDirective.ɵfac = function TemplateKeyDirective_Factory(t) { return new (t || TemplateKeyDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(TEMPLATED_ITEMS_COMPONENT, 1)); };
|
305
|
-
TemplateKeyDirective.ɵdir = i0.ɵɵdefineDirective({ type: TemplateKeyDirective, selectors: [["", "pagerTemplateKey", ""]], inputs: { pagerTemplateKey: "pagerTemplateKey" } });
|
312
|
+
TemplateKeyDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TemplateKeyDirective, selectors: [["", "pagerTemplateKey", ""]], inputs: { pagerTemplateKey: "pagerTemplateKey" } });
|
306
313
|
(function () {
|
307
314
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TemplateKeyDirective, [{
|
308
315
|
type: Directive,
|
@@ -328,7 +335,7 @@ class PagerComponent extends TemplatedItemsComponent {
|
|
328
335
|
}
|
329
336
|
}
|
330
337
|
PagerComponent.ɵfac = function PagerComponent_Factory(t) { return new (t || PagerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.IterableDiffers)); };
|
331
|
-
PagerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: PagerComponent, selectors: [["Pager"]], features: [i0.ɵɵProvidersFeature([
|
338
|
+
PagerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PagerComponent, selectors: [["Pager"]], features: [i0.ɵɵProvidersFeature([
|
332
339
|
{
|
333
340
|
provide: TEMPLATED_ITEMS_COMPONENT,
|
334
341
|
useExisting: forwardRef(() => PagerComponent)
|
@@ -361,8 +368,8 @@ PagerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: PagerComponent, selectors:
|
|
361
368
|
class PagerModule {
|
362
369
|
}
|
363
370
|
PagerModule.ɵfac = function PagerModule_Factory(t) { return new (t || PagerModule)(); };
|
364
|
-
PagerModule.ɵmod = i0.ɵɵdefineNgModule({ type: PagerModule });
|
365
|
-
PagerModule.ɵinj = i0.ɵɵdefineInjector({});
|
371
|
+
PagerModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PagerModule });
|
372
|
+
PagerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
366
373
|
(function () {
|
367
374
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PagerModule, [{
|
368
375
|
type: NgModule,
|
@@ -375,5 +382,9 @@ PagerModule.ɵinj = i0.ɵɵdefineInjector({});
|
|
375
382
|
})();
|
376
383
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(PagerModule, { declarations: [PagerComponent, TemplateKeyDirective, PagerItemDirective], exports: [PagerComponent, TemplateKeyDirective, PagerItemDirective] }); })();
|
377
384
|
|
385
|
+
/**
|
386
|
+
* Generated bundle index. Do not edit.
|
387
|
+
*/
|
388
|
+
|
378
389
|
export { PagerComponent, PagerItemDirective, PagerModule, TemplateKeyDirective, TemplatedItemsComponent };
|
379
390
|
//# sourceMappingURL=nativescript-community-ui-pager-angular.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nativescript-community-ui-pager-angular.mjs","sources":["../../../../src/ui-pager/angular/pager-items-comp.ts","../../../../src/ui-pager/angular/index.ts"],"sourcesContent":["import {\n AfterContentInit,\n Component,\n ContentChild,\n Directive,\n DoCheck,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Host,\n Inject,\n InjectionToken,\n Input,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ɵisListLikeIterable as isListLikeIterable\n} from '@angular/core';\nimport { Pager, PagerError, PagerItem, PagerLog } from '@nativescript-community/ui-pager';\nimport { extractSingleViewRecursive, isInvisibleNode, registerElement } from '@nativescript/angular';\nimport { EventData, KeyedTemplate, LayoutBase, Template, Trace, View, isIOS } from '@nativescript/core';\nimport { ObservableArray } from '@nativescript/core/data/observable-array';\nimport { profile } from '@nativescript/core/profiling';\nimport { ItemEventData, ItemsSource } from '@nativescript/core/ui/list-view';\n\nregisterElement('Pager', () => Pager);\nregisterElement('PagerItem', () => PagerItem);\n\nconst NG_VIEW = '_ngViewRef';\n\nexport interface PagerTemplatedItemsView {\n items: any[] | ItemsSource;\n itemTemplate: string | Template;\n itemTemplates?: string | KeyedTemplate[];\n\n refresh(): void;\n\n on(event: 'itemDisposing' | 'itemLoading', callback: (args: ItemEventData) => void, thisArg?: any);\n\n off(event: 'itemLoading' | 'itemDisposing', callback: (args: EventData) => void, thisArg?: any);\n}\n\nexport class ItemContext {\n constructor(public $implicit?: any, public item?: any, public index?: number, public even?: boolean, public odd?: boolean) {}\n}\n\nexport interface SetupItemViewArgs {\n view: EmbeddedViewRef<any>;\n data: any;\n index: number;\n context: ItemContext;\n}\n@Component({\n template: ''\n})\nexport abstract class TemplatedItemsComponent implements DoCheck, OnDestroy, AfterContentInit {\n public abstract get nativeElement(): Pager;\n\n protected templatedItemsView: Pager;\n protected _items: any;\n protected _differ: IterableDiffer<KeyedTemplate>;\n protected _templateMap: Map<string, KeyedTemplate>;\n private _selectedIndex: number;\n @ViewChild('loader', { read: ViewContainerRef, static: false }) loader: ViewContainerRef;\n\n @Output()\n public setupItemView = new EventEmitter<SetupItemViewArgs>();\n\n @ContentChild(TemplateRef, { static: false }) itemTemplateQuery: TemplateRef<ItemContext>;\n\n itemTemplate: TemplateRef<ItemContext>;\n\n @Input()\n get items() {\n return this._items;\n }\n\n set items(value: any) {\n this._items = value;\n let needDiffer = true;\n if (value instanceof ObservableArray) {\n needDiffer = false;\n }\n if (needDiffer && !this._differ && isListLikeIterable(value)) {\n this._differ = this._iterableDiffers.find(this._items).create((_index, item) => item);\n }\n\n this.templatedItemsView.items = this._items;\n }\n\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n set selectedIndex(value) {\n this._selectedIndex = value;\n this.templatedItemsView.selectedIndex = this._selectedIndex;\n }\n\n ngAfterViewInit() {\n if (!!this._selectedIndex) {\n setTimeout(() => {\n if (isIOS) {\n this.templatedItemsView.scrollToIndexAnimated(this._selectedIndex, false);\n }\n this.templatedItemsView.selectedIndex = this._selectedIndex;\n });\n }\n }\n\n constructor(_elementRef: ElementRef, private _iterableDiffers: IterableDiffers) {\n this.templatedItemsView = _elementRef.nativeElement;\n\n this.templatedItemsView.on('itemLoading', this.onItemLoading, this);\n this.templatedItemsView.on('itemDisposing', this.onItemDisposing, this);\n }\n\n ngAfterContentInit() {\n if (Trace.isEnabled()) {\n PagerLog('TemplatedItemsView.ngAfterContentInit()');\n }\n this.setItemTemplates();\n }\n\n ngOnDestroy() {\n this.templatedItemsView.off('itemLoading', this.onItemLoading, this);\n this.templatedItemsView.off('itemDisposing', this.onItemDisposing, this);\n }\n\n private setItemTemplates() {\n if (!this.items) return;\n // The itemTemplateQuery may be changed after list items are added that contain <template> inside,\n // so cache and use only the original template to avoid errors.\n this.itemTemplate = this.itemTemplateQuery;\n\n if (this._templateMap) {\n if (Trace.isEnabled()) {\n PagerLog('Setting templates');\n }\n\n const templates: KeyedTemplate[] = [];\n this._templateMap.forEach((value) => {\n templates.push(value);\n });\n this.templatedItemsView.itemTemplates = templates;\n }\n }\n\n public registerTemplate(key: string, template: TemplateRef<ItemContext>) {\n if (Trace.isEnabled()) {\n PagerLog(`registerTemplate for key: ${key}`);\n }\n\n if (!this._templateMap) {\n this._templateMap = new Map<string, KeyedTemplate>();\n }\n\n const keyedTemplate = {\n key,\n createView: this.getItemTemplateViewFactory(template)\n };\n\n this._templateMap.set(key, keyedTemplate);\n }\n\n @profile\n public onItemLoading(args: ItemEventData) {\n if (!args.view && !this.itemTemplate) {\n return;\n }\n\n if (!this.items) return;\n\n const index = args.index;\n const items = (args.object as any).items;\n const currentItem = typeof items.getItem === 'function' ? items.getItem(index) : items[index];\n let viewRef: EmbeddedViewRef<ItemContext>;\n\n if (args.view) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemLoading: ${index} - Reusing existing view`);\n }\n\n viewRef = args.view[NG_VIEW];\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n viewRef = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (!viewRef && Trace.isEnabled()) {\n PagerError(`ViewReference not found for item ${index}. View recycling is not working`);\n }\n }\n\n if (!viewRef) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemLoading: ${index} - Creating view from template`);\n }\n\n viewRef = this.loader.createEmbeddedView(this.itemTemplate, new ItemContext(), 0);\n args.view = getItemViewRoot(viewRef);\n args.view[NG_VIEW] = viewRef;\n }\n\n this.setupViewRef(viewRef, currentItem, index);\n\n this.detectChangesOnChild(viewRef, index);\n }\n\n @profile\n public onItemDisposing(args: ItemEventData) {\n if (!args.view) {\n return;\n }\n let viewRef: EmbeddedViewRef<ItemContext>;\n\n if (args.view) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemDisposing: ${args.index} - Removing angular view`);\n }\n\n viewRef = args.view[NG_VIEW];\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n viewRef = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (!viewRef && Trace.isEnabled()) {\n PagerError(`ViewReference not found for item ${args.index}. View disposing is not working`);\n }\n }\n\n if (viewRef) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemDisposing: ${args.index} - Disposing view reference`);\n }\n\n viewRef.destroy();\n }\n }\n\n public setupViewRef(viewRef: EmbeddedViewRef<ItemContext>, data: any, index: number): void {\n const context = viewRef.context;\n context.$implicit = data;\n context.item = data;\n context.index = index;\n context.even = index % 2 === 0;\n context.odd = !context.even;\n\n this.setupItemView.next({\n view: viewRef,\n data,\n index,\n context\n });\n }\n\n protected getItemTemplateViewFactory(template: TemplateRef<ItemContext>): () => View {\n return () => {\n const viewRef = this.loader.createEmbeddedView(template, new ItemContext(), 0);\n const resultView = getItemViewRoot(viewRef);\n resultView[NG_VIEW] = viewRef;\n\n return resultView;\n };\n }\n\n @profile\n private detectChangesOnChild(viewRef: EmbeddedViewRef<ItemContext>, index: number) {\n if (Trace.isEnabled()) {\n PagerLog(`Manually detect changes in child: ${index}`);\n }\n\n viewRef.markForCheck();\n viewRef.detectChanges();\n }\n\n ngDoCheck() {\n if (this._differ) {\n if (Trace.isEnabled()) {\n PagerLog('ngDoCheck() - execute differ');\n }\n\n const changes = this._differ.diff(this._items);\n if (changes) {\n if (Trace.isEnabled()) {\n PagerLog('ngDoCheck() - refresh');\n }\n\n this.templatedItemsView.refresh();\n }\n }\n }\n}\n\nexport interface ComponentView {\n rootNodes: any[];\n\n destroy(): void;\n}\n\nexport type RootLocator = (nodes: any[], nestLevel: number) => View;\n\nexport function getItemViewRoot(viewRef: ComponentView, rootLocator: RootLocator = extractSingleViewRecursive as any): View {\n return rootLocator(viewRef.rootNodes, 0);\n}\n\nexport const TEMPLATED_ITEMS_COMPONENT = new InjectionToken<TemplatedItemsComponent>('TemplatedItemsComponent');\n\n@Directive({\n selector: '[pagerItem]'\n})\nexport class PagerItemDirective implements OnInit {\n private item: PagerItem;\n\n constructor(\n private templateRef: TemplateRef<any>,\n @Inject(TEMPLATED_ITEMS_COMPONENT)\n @Host()\n private owner: TemplatedItemsComponent,\n private viewContainer: ViewContainerRef\n ) {}\n\n private ensureItem() {\n if (!this.item) {\n this.item = new PagerItem();\n }\n }\n\n private applyConfig() {\n this.ensureItem();\n }\n\n ngOnInit() {\n this.applyConfig();\n\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\n // Filter out text nodes and comments\n const realViews = viewRef.rootNodes.filter((node) => !isInvisibleNode(node));\n\n if (realViews.length > 0) {\n const view = realViews[0];\n this.item.addChild(view);\n this.owner.nativeElement._addChildFromBuilder('PagerItem', this.item);\n }\n }\n}\n\n@Directive({ selector: '[pagerTemplateKey]' })\nexport class TemplateKeyDirective {\n constructor(\n private templateRef: TemplateRef<any>,\n @Inject(TEMPLATED_ITEMS_COMPONENT)\n @Host()\n private comp: TemplatedItemsComponent\n ) {}\n\n @Input()\n set pagerTemplateKey(value: any) {\n if (this.comp && this.templateRef) {\n this.comp.registerTemplate(value, this.templateRef);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, IterableDiffers, NO_ERRORS_SCHEMA, NgModule, forwardRef } from '@angular/core';\n\nimport { Pager } from '@nativescript-community/ui-pager';\nimport { PagerItemDirective, TEMPLATED_ITEMS_COMPONENT, TemplateKeyDirective, TemplatedItemsComponent } from './pager-items-comp';\n\nexport { PagerItemDirective, TemplatedItemsComponent, TemplateKeyDirective } from './pager-items-comp';\n\n@Component({\n selector: 'Pager',\n template: ` <DetachedContainer>\n <Placeholder #loader></Placeholder>\n </DetachedContainer>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TEMPLATED_ITEMS_COMPONENT,\n useExisting: forwardRef(() => PagerComponent)\n }\n ]\n})\nexport class PagerComponent extends TemplatedItemsComponent {\n public get nativeElement(): Pager {\n return this.templatedItemsView;\n }\n\n protected templatedItemsView: Pager;\n\n constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers) {\n super(_elementRef, _iterableDiffers);\n }\n}\n\n@NgModule({\n declarations: [PagerComponent, TemplateKeyDirective, PagerItemDirective],\n exports: [PagerComponent, TemplateKeyDirective, PagerItemDirective],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class PagerModule {}\n"],"names":["isListLikeIterable"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"nativescript-community-ui-pager-angular.mjs","sources":["../../../../src/ui-pager/angular/pager-items-comp.ts","../../../../src/ui-pager/angular/index.ts","../../../../src/ui-pager/angular/nativescript-community-ui-pager-angular.ts"],"sourcesContent":["import {\n AfterContentInit,\n Component,\n ContentChild,\n Directive,\n DoCheck,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Host,\n Inject,\n InjectionToken,\n Input,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ɵisListLikeIterable as isListLikeIterable\n} from '@angular/core';\nimport { Pager, PagerError, PagerItem, PagerLog } from '@nativescript-community/ui-pager';\nimport { extractSingleViewRecursive, isInvisibleNode, registerElement } from '@nativescript/angular';\nimport { EventData, KeyedTemplate, LayoutBase, Template, Trace, View, isIOS } from '@nativescript/core';\nimport { ObservableArray } from '@nativescript/core/data/observable-array';\nimport { profile } from '@nativescript/core/profiling';\nimport { ItemEventData, ItemsSource } from '@nativescript/core/ui/list-view';\n\nregisterElement('Pager', () => Pager);\nregisterElement('PagerItem', () => PagerItem);\n\nconst NG_VIEW = '_ngViewRef';\n\nexport interface PagerTemplatedItemsView {\n items: any[] | ItemsSource;\n itemTemplate: string | Template;\n itemTemplates?: string | KeyedTemplate[];\n\n refresh(): void;\n\n on(event: 'itemDisposing' | 'itemLoading', callback: (args: ItemEventData) => void, thisArg?: any);\n\n off(event: 'itemLoading' | 'itemDisposing', callback: (args: EventData) => void, thisArg?: any);\n}\n\nexport class ItemContext {\n constructor(public $implicit?: any, public item?: any, public index?: number, public even?: boolean, public odd?: boolean) {}\n}\n\nexport interface SetupItemViewArgs {\n view: EmbeddedViewRef<any>;\n data: any;\n index: number;\n context: ItemContext;\n}\n@Component({\n template: ''\n})\nexport abstract class TemplatedItemsComponent implements DoCheck, OnDestroy, AfterContentInit {\n public abstract get nativeElement(): Pager;\n\n protected templatedItemsView: Pager;\n protected _items: any;\n protected _differ: IterableDiffer<KeyedTemplate>;\n protected _templateMap: Map<string, KeyedTemplate>;\n private _selectedIndex: number;\n @ViewChild('loader', { read: ViewContainerRef, static: false }) loader: ViewContainerRef;\n\n @Output()\n public setupItemView = new EventEmitter<SetupItemViewArgs>();\n\n @ContentChild(TemplateRef, { static: false }) itemTemplateQuery: TemplateRef<ItemContext>;\n\n itemTemplate: TemplateRef<ItemContext>;\n\n @Input()\n get items() {\n return this._items;\n }\n\n set items(value: any) {\n this._items = value;\n let needDiffer = true;\n if (value instanceof ObservableArray) {\n needDiffer = false;\n }\n if (needDiffer && !this._differ && isListLikeIterable(value)) {\n this._differ = this._iterableDiffers.find(this._items).create((_index, item) => item);\n }\n\n this.templatedItemsView.items = this._items;\n }\n\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n set selectedIndex(value) {\n this._selectedIndex = value;\n this.templatedItemsView.selectedIndex = this._selectedIndex;\n }\n\n ngAfterViewInit() {\n if (!!this._selectedIndex) {\n setTimeout(() => {\n if (isIOS) {\n this.templatedItemsView.scrollToIndexAnimated(this._selectedIndex, false);\n }\n this.templatedItemsView.selectedIndex = this._selectedIndex;\n });\n }\n }\n\n constructor(_elementRef: ElementRef, private _iterableDiffers: IterableDiffers) {\n this.templatedItemsView = _elementRef.nativeElement;\n\n this.templatedItemsView.on('itemLoading', this.onItemLoading, this);\n this.templatedItemsView.on('itemDisposing', this.onItemDisposing, this);\n }\n\n ngAfterContentInit() {\n if (Trace.isEnabled()) {\n PagerLog('TemplatedItemsView.ngAfterContentInit()');\n }\n this.setItemTemplates();\n }\n\n ngOnDestroy() {\n this.templatedItemsView.off('itemLoading', this.onItemLoading, this);\n this.templatedItemsView.off('itemDisposing', this.onItemDisposing, this);\n }\n\n private setItemTemplates() {\n if (!this.items) return;\n // The itemTemplateQuery may be changed after list items are added that contain <template> inside,\n // so cache and use only the original template to avoid errors.\n this.itemTemplate = this.itemTemplateQuery;\n\n if (this._templateMap) {\n if (Trace.isEnabled()) {\n PagerLog('Setting templates');\n }\n\n const templates: KeyedTemplate[] = [];\n this._templateMap.forEach((value) => {\n templates.push(value);\n });\n this.templatedItemsView.itemTemplates = templates;\n }\n }\n\n public registerTemplate(key: string, template: TemplateRef<ItemContext>) {\n if (Trace.isEnabled()) {\n PagerLog(`registerTemplate for key: ${key}`);\n }\n\n if (!this._templateMap) {\n this._templateMap = new Map<string, KeyedTemplate>();\n }\n\n const keyedTemplate = {\n key,\n createView: this.getItemTemplateViewFactory(template)\n };\n\n this._templateMap.set(key, keyedTemplate);\n }\n\n @profile\n public onItemLoading(args: ItemEventData) {\n if (!args.view && !this.itemTemplate) {\n return;\n }\n\n if (!this.items) return;\n\n const index = args.index;\n const items = (args.object as any).items;\n const currentItem = typeof items.getItem === 'function' ? items.getItem(index) : items[index];\n let viewRef: EmbeddedViewRef<ItemContext>;\n\n if (args.view) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemLoading: ${index} - Reusing existing view`);\n }\n\n viewRef = args.view[NG_VIEW];\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n viewRef = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (!viewRef && Trace.isEnabled()) {\n PagerError(`ViewReference not found for item ${index}. View recycling is not working`);\n }\n }\n\n if (!viewRef) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemLoading: ${index} - Creating view from template`);\n }\n\n viewRef = this.loader.createEmbeddedView(this.itemTemplate, new ItemContext(), 0);\n args.view = getItemViewRoot(viewRef);\n args.view[NG_VIEW] = viewRef;\n }\n\n this.setupViewRef(viewRef, currentItem, index);\n\n this.detectChangesOnChild(viewRef, index);\n }\n\n @profile\n public onItemDisposing(args: ItemEventData) {\n if (!args.view) {\n return;\n }\n let viewRef: EmbeddedViewRef<ItemContext>;\n\n if (args.view) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemDisposing: ${args.index} - Removing angular view`);\n }\n\n viewRef = args.view[NG_VIEW];\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n viewRef = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (!viewRef && Trace.isEnabled()) {\n PagerError(`ViewReference not found for item ${args.index}. View disposing is not working`);\n }\n }\n\n if (viewRef) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemDisposing: ${args.index} - Disposing view reference`);\n }\n\n viewRef.destroy();\n }\n }\n\n public setupViewRef(viewRef: EmbeddedViewRef<ItemContext>, data: any, index: number): void {\n const context = viewRef.context;\n context.$implicit = data;\n context.item = data;\n context.index = index;\n context.even = index % 2 === 0;\n context.odd = !context.even;\n\n this.setupItemView.next({\n view: viewRef,\n data,\n index,\n context\n });\n }\n\n protected getItemTemplateViewFactory(template: TemplateRef<ItemContext>): () => View {\n return () => {\n const viewRef = this.loader.createEmbeddedView(template, new ItemContext(), 0);\n const resultView = getItemViewRoot(viewRef);\n resultView[NG_VIEW] = viewRef;\n\n return resultView;\n };\n }\n\n @profile\n private detectChangesOnChild(viewRef: EmbeddedViewRef<ItemContext>, index: number) {\n if (Trace.isEnabled()) {\n PagerLog(`Manually detect changes in child: ${index}`);\n }\n\n viewRef.markForCheck();\n viewRef.detectChanges();\n }\n\n ngDoCheck() {\n if (this._differ) {\n if (Trace.isEnabled()) {\n PagerLog('ngDoCheck() - execute differ');\n }\n\n const changes = this._differ.diff(this._items);\n if (changes) {\n if (Trace.isEnabled()) {\n PagerLog('ngDoCheck() - refresh');\n }\n\n this.templatedItemsView.refresh();\n }\n }\n }\n}\n\nexport interface ComponentView {\n rootNodes: any[];\n\n destroy(): void;\n}\n\nexport type RootLocator = (nodes: any[], nestLevel: number) => View;\n\nexport function getItemViewRoot(viewRef: ComponentView, rootLocator: RootLocator = extractSingleViewRecursive as any): View {\n return rootLocator(viewRef.rootNodes, 0);\n}\n\nexport const TEMPLATED_ITEMS_COMPONENT = new InjectionToken<TemplatedItemsComponent>('TemplatedItemsComponent');\n\n@Directive({\n selector: '[pagerItem]'\n})\nexport class PagerItemDirective implements OnInit {\n private item: PagerItem;\n\n constructor(\n private templateRef: TemplateRef<any>,\n @Inject(TEMPLATED_ITEMS_COMPONENT)\n @Host()\n private owner: TemplatedItemsComponent,\n private viewContainer: ViewContainerRef\n ) {}\n\n private ensureItem() {\n if (!this.item) {\n this.item = new PagerItem();\n }\n }\n\n private applyConfig() {\n this.ensureItem();\n }\n\n ngOnInit() {\n this.applyConfig();\n\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\n // Filter out text nodes and comments\n const realViews = viewRef.rootNodes.filter((node) => !isInvisibleNode(node));\n\n if (realViews.length > 0) {\n const view = realViews[0];\n this.item.addChild(view);\n this.owner.nativeElement._addChildFromBuilder('PagerItem', this.item);\n }\n }\n}\n\n@Directive({ selector: '[pagerTemplateKey]' })\nexport class TemplateKeyDirective {\n constructor(\n private templateRef: TemplateRef<any>,\n @Inject(TEMPLATED_ITEMS_COMPONENT)\n @Host()\n private comp: TemplatedItemsComponent\n ) {}\n\n @Input()\n set pagerTemplateKey(value: any) {\n if (this.comp && this.templateRef) {\n this.comp.registerTemplate(value, this.templateRef);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, IterableDiffers, NO_ERRORS_SCHEMA, NgModule, forwardRef } from '@angular/core';\n\nimport { Pager } from '@nativescript-community/ui-pager';\nimport { PagerItemDirective, TEMPLATED_ITEMS_COMPONENT, TemplateKeyDirective, TemplatedItemsComponent } from './pager-items-comp';\n\nexport { PagerItemDirective, TemplatedItemsComponent, TemplateKeyDirective } from './pager-items-comp';\n\n@Component({\n selector: 'Pager',\n template: ` <DetachedContainer>\n <Placeholder #loader></Placeholder>\n </DetachedContainer>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TEMPLATED_ITEMS_COMPONENT,\n useExisting: forwardRef(() => PagerComponent)\n }\n ]\n})\nexport class PagerComponent extends TemplatedItemsComponent {\n public get nativeElement(): Pager {\n return this.templatedItemsView;\n }\n\n protected templatedItemsView: Pager;\n\n constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers) {\n super(_elementRef, _iterableDiffers);\n }\n}\n\n@NgModule({\n declarations: [PagerComponent, TemplateKeyDirective, PagerItemDirective],\n exports: [PagerComponent, TemplateKeyDirective, PagerItemDirective],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class PagerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["isListLikeIterable"],"mappings":";;;;;;;;;AA8BA,eAAe,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC;AACtC,eAAe,CAAC,WAAW,EAAE,MAAM,SAAS,CAAC,CAAC;AAE9C,MAAM,OAAO,GAAG,YAAY,CAAC;MAchB,WAAW,CAAA;IACpB,WAAmB,CAAA,SAAe,EAAS,IAAU,EAAS,KAAc,EAAS,IAAc,EAAS,GAAa,EAAA;AAAtG,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAM;AAAS,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;AAAS,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAS;AAAS,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAU;AAAS,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAU;KAAI;AAChI,CAAA;MAWqB,uBAAuB,CAAA;IAwDzC,WAAY,CAAA,WAAuB,EAAU,gBAAiC,EAAA;AAAjC,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAiB;AA7CvE,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAqB,CAAC;AA8CzD,QAAA,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC;AAEpD,QAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;KAC3E;AA5CD,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IAED,IAAI,KAAK,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,KAAK,YAAY,eAAe,EAAE;YAClC,UAAU,GAAG,KAAK,CAAC;AACtB,SAAA;QACD,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,IAAIA,mBAAkB,CAAC,KAAK,CAAC,EAAE;YAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC;AACzF,SAAA;QAED,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;KAC/C;AAED,IAAA,IACI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IAED,IAAI,aAAa,CAAC,KAAK,EAAA;AACnB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;KAC/D;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE;YACvB,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAC7E,iBAAA;gBACD,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;AAChE,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;IASD,kBAAkB,GAAA;AACd,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACnB,QAAQ,CAAC,yCAAyC,CAAC,CAAC;AACvD,SAAA;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;KAC5E;IAEO,gBAAgB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;;;AAGxB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAE3C,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;gBACnB,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACjC,aAAA;YAED,MAAM,SAAS,GAAoB,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAChC,gBAAA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,SAAS,CAAC;AACrD,SAAA;KACJ;IAEM,gBAAgB,CAAC,GAAW,EAAE,QAAkC,EAAA;AACnE,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACnB,YAAA,QAAQ,CAAC,CAAA,0BAAA,EAA6B,GAAG,CAAA,CAAE,CAAC,CAAC;AAChD,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACpB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;AACxD,SAAA;AAED,QAAA,MAAM,aAAa,GAAG;YAClB,GAAG;AACH,YAAA,UAAU,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC;SACxD,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;KAC7C;AAGM,IAAA,aAAa,CAAC,IAAmB,EAAA;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAClC,OAAO;AACV,SAAA;QAED,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;AAExB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,MAAM,KAAK,GAAI,IAAI,CAAC,MAAc,CAAC,KAAK,CAAC;QACzC,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9F,QAAA,IAAI,OAAqC,CAAC;QAE1C,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACnB,gBAAA,QAAQ,CAAC,CAAA,eAAA,EAAkB,KAAK,CAAA,wBAAA,CAA0B,CAAC,CAAC;AAC/D,aAAA;AAED,YAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;;AAG7B,YAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,YAAY,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE;AACjF,gBAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9C,aAAA;AAED,YAAA,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AAC/B,gBAAA,UAAU,CAAC,CAAA,iCAAA,EAAoC,KAAK,CAAA,+BAAA,CAAiC,CAAC,CAAC;AAC1F,aAAA;AACJ,SAAA;QAED,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACnB,gBAAA,QAAQ,CAAC,CAAA,eAAA,EAAkB,KAAK,CAAA,8BAAA,CAAgC,CAAC,CAAC;AACrE,aAAA;AAED,YAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;AAClF,YAAA,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAChC,SAAA;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAE/C,QAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KAC7C;AAGM,IAAA,eAAe,CAAC,IAAmB,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO;AACV,SAAA;AACD,QAAA,IAAI,OAAqC,CAAC;QAE1C,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACnB,gBAAA,QAAQ,CAAC,CAAoB,iBAAA,EAAA,IAAI,CAAC,KAAK,CAAA,wBAAA,CAA0B,CAAC,CAAC;AACtE,aAAA;AAED,YAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;;AAG7B,YAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,YAAY,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE;AACjF,gBAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9C,aAAA;AAED,YAAA,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AAC/B,gBAAA,UAAU,CAAC,CAAoC,iCAAA,EAAA,IAAI,CAAC,KAAK,CAAA,+BAAA,CAAiC,CAAC,CAAC;AAC/F,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACnB,gBAAA,QAAQ,CAAC,CAAoB,iBAAA,EAAA,IAAI,CAAC,KAAK,CAAA,2BAAA,CAA6B,CAAC,CAAC;AACzE,aAAA;YAED,OAAO,CAAC,OAAO,EAAE,CAAC;AACrB,SAAA;KACJ;AAEM,IAAA,YAAY,CAAC,OAAqC,EAAE,IAAS,EAAE,KAAa,EAAA;AAC/E,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AAChC,QAAA,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;AACzB,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,QAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,OAAO,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AAE5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,EAAE,OAAO;YACb,IAAI;YACJ,KAAK;YACL,OAAO;AACV,SAAA,CAAC,CAAC;KACN;AAES,IAAA,0BAA0B,CAAC,QAAkC,EAAA;AACnE,QAAA,OAAO,MAAK;AACR,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/E,YAAA,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AAC5C,YAAA,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAE9B,YAAA,OAAO,UAAU,CAAC;AACtB,SAAC,CAAC;KACL;IAGO,oBAAoB,CAAC,OAAqC,EAAE,KAAa,EAAA;AAC7E,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACnB,YAAA,QAAQ,CAAC,CAAA,kCAAA,EAAqC,KAAK,CAAA,CAAE,CAAC,CAAC;AAC1D,SAAA;QAED,OAAO,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,CAAC,aAAa,EAAE,CAAC;KAC3B;IAED,SAAS,GAAA;QACL,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;gBACnB,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AAC5C,aAAA;AAED,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,YAAA,IAAI,OAAO,EAAE;AACT,gBAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;oBACnB,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AACrC,iBAAA;AAED,gBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;AACrC,aAAA;AACJ,SAAA;KACJ;;8FAhPiB,uBAAuB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAA,CAAA;0EAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,sCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA;QAAA,IAAA,EAAA,GAAA,CAAA,EAAA;wCAa3B,WAAW,EAAA,CAAA,CAAA,CAAA;;;;;;;;mCALI,gBAAgB,CAAA,CAAA;;;;;;;AAwG7C,UAAA,CAAA;IADC,OAAO;CA2CP,EAAA,uBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,OAAO;CA+BP,EAAA,uBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA,CAAA;AA6BD,UAAA,CAAA;IADC,OAAO;CAQP,EAAA,uBAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,IAAA,CAAA,CAAA;;4EA/NiB,uBAAuB,EAAA,CAAA;kBAH5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,EAAE;iBACf,CAAA;+FASmE,MAAM,EAAA,CAAA;sBAArE,SAAS;uBAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAGvD,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAGuC,iBAAiB,EAAA,CAAA;sBAA9D,YAAY;gBAAC,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAKxC,KAAK,EAAA,CAAA;sBADR,KAAK;gBAmBF,aAAa,EAAA,CAAA;sBADhB,KAAK;gBA6EC,aAAa,EAAA,EAAA,EA6Cb,eAAe,EAAA,EAAA,EA2Dd,oBAAoB,EAAA,EAAA,EAAA,CAAA,CAAA;AAAA,CAAA,GAAA,CAAA;SAmChB,eAAe,CAAC,OAAsB,EAAE,cAA2B,0BAAiC,EAAA;IAChH,OAAO,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC;AAEM,MAAM,yBAAyB,GAAG,IAAI,cAAc,CAA0B,yBAAyB,CAAC,CAAC;MAKnG,kBAAkB,CAAA;AAG3B,IAAA,WAAA,CACY,WAA6B,EAG7B,KAA8B,EAC9B,aAA+B,EAAA;AAJ/B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;AAG7B,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAyB;AAC9B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;KACvC;IAEI,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;AAC/B,SAAA;KACJ;IAEO,WAAW,GAAA;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,WAAW,EAAE,CAAC;AAEnB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;AAExE,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAE7E,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACzE,SAAA;KACJ;;AAjCQ,kBAAA,CAAA,IAAA,GAAA,SAAA,0BAAA,CAAA,CAAA,IAAA,OAAA,KAAA,CAAA,IAAA,kBAAkB,6DAKf,yBAAyB,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,EAAA,CAAA;qEAL5B,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;4EAAlB,kBAAkB,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;iBAC1B,CAAA;;;8BAMQ,MAAM;+BAAC,yBAAyB,CAAA;;8BAChC,IAAI;;;;MA+BA,oBAAoB,CAAA;IAC7B,WACY,CAAA,WAA6B,EAG7B,IAA6B,EAAA;AAH7B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;AAG7B,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAyB;KACrC;IAEJ,IACI,gBAAgB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACvD,SAAA;KACJ;;AAbQ,oBAAA,CAAA,IAAA,GAAA,SAAA,4BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,oBAAoB,6DAGjB,yBAAyB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;uEAH5B,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,CAAA,CAAA;;4EAApB,oBAAoB,EAAA,CAAA;kBADhC,SAAS;mBAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAA;;;8BAIpC,MAAM;+BAAC,yBAAyB,CAAA;;8BAChC,IAAI;;SAKL,gBAAgB,EAAA,CAAA;sBADnB,KAAK;;;;ACzVJ,MAAO,cAAe,SAAQ,uBAAuB,CAAA;IAOvD,WAAY,CAAA,WAAuB,EAAE,gBAAiC,EAAA;AAClE,QAAA,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;KACxC;AARD,IAAA,IAAW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAClC;;4EAHQ,cAAc,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAA,CAAA;AAAd,cAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,cAAc,EAPZ,SAAA,EAAA,CAAA,CAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC;AAChD,aAAA;AACJ,SAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA;QAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AATW,YAAA,EAAmB,CAAA,cAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,CAAA;YAC3B,EAAmC,CAAA,SAAA,CAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YACvC,EAAoB,CAAA,YAAA,EAAA,CAAA;;;;4EASX,cAAc,EAAA,CAAA;kBAb1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,CAAA;;AAEW,wBAAA,CAAA;oBACrB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC;AAChD,yBAAA;AACJ,qBAAA;iBACJ,CAAA;;;MAkBY,WAAW,CAAA;;sEAAX,WAAW,GAAA,CAAA,EAAA,CAAA;6DAAX,WAAW,EAAA,CAAA,CAAA;;;4EAAX,WAAW,EAAA,CAAA;kBALvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;AACxE,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;oBACnE,OAAO,EAAE,CAAC,gBAAgB,CAAC;iBAC9B,CAAA;;;wFACY,WAAW,EAAA,EAAA,YAAA,EAAA,CAjBX,cAAc,EAaQ,oBAAoB,EAAE,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAb9D,cAAc,EAcG,oBAAoB,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AClCtE;;AAEG;;;;"}
|
@@ -71,6 +71,8 @@ class TemplatedItemsComponent {
|
|
71
71
|
setItemTemplates() {
|
72
72
|
if (!this.items)
|
73
73
|
return;
|
74
|
+
// The itemTemplateQuery may be changed after list items are added that contain <template> inside,
|
75
|
+
// so cache and use only the original template to avoid errors.
|
74
76
|
this.itemTemplate = this.itemTemplateQuery;
|
75
77
|
if (this._templateMap) {
|
76
78
|
if (Trace.isEnabled()) {
|
@@ -111,6 +113,8 @@ class TemplatedItemsComponent {
|
|
111
113
|
PagerLog(`onItemLoading: ${index} - Reusing existing view`);
|
112
114
|
}
|
113
115
|
viewRef = args.view[NG_VIEW];
|
116
|
+
// Getting angular view from original element (in cases when ProxyViewContainer
|
117
|
+
// is used NativeScript internally wraps it in a StackLayout)
|
114
118
|
if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
|
115
119
|
viewRef = args.view.getChildAt(0)[NG_VIEW];
|
116
120
|
}
|
@@ -139,6 +143,8 @@ class TemplatedItemsComponent {
|
|
139
143
|
PagerLog(`onItemDisposing: ${args.index} - Removing angular view`);
|
140
144
|
}
|
141
145
|
viewRef = args.view[NG_VIEW];
|
146
|
+
// Getting angular view from original element (in cases when ProxyViewContainer
|
147
|
+
// is used NativeScript internally wraps it in a StackLayout)
|
142
148
|
if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
|
143
149
|
viewRef = args.view.getChildAt(0)[NG_VIEW];
|
144
150
|
}
|
@@ -198,7 +204,7 @@ class TemplatedItemsComponent {
|
|
198
204
|
}
|
199
205
|
}
|
200
206
|
TemplatedItemsComponent.ɵfac = function TemplatedItemsComponent_Factory(t) { return new (t || TemplatedItemsComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.IterableDiffers)); };
|
201
|
-
TemplatedItemsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: TemplatedItemsComponent, selectors: [["ng-component"]], contentQueries: function TemplatedItemsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
207
|
+
TemplatedItemsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TemplatedItemsComponent, selectors: [["ng-component"]], contentQueries: function TemplatedItemsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
202
208
|
i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);
|
203
209
|
} if (rf & 2) {
|
204
210
|
let _t;
|
@@ -257,6 +263,7 @@ class PagerItemDirective {
|
|
257
263
|
ngOnInit() {
|
258
264
|
this.applyConfig();
|
259
265
|
const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);
|
266
|
+
// Filter out text nodes and comments
|
260
267
|
const realViews = viewRef.rootNodes.filter((node) => !isInvisibleNode(node));
|
261
268
|
if (realViews.length > 0) {
|
262
269
|
const view = realViews[0];
|
@@ -266,7 +273,7 @@ class PagerItemDirective {
|
|
266
273
|
}
|
267
274
|
}
|
268
275
|
PagerItemDirective.ɵfac = function PagerItemDirective_Factory(t) { return new (t || PagerItemDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(TEMPLATED_ITEMS_COMPONENT, 1), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
|
269
|
-
PagerItemDirective.ɵdir = i0.ɵɵdefineDirective({ type: PagerItemDirective, selectors: [["", "pagerItem", ""]] });
|
276
|
+
PagerItemDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PagerItemDirective, selectors: [["", "pagerItem", ""]] });
|
270
277
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PagerItemDirective, [{
|
271
278
|
type: Directive,
|
272
279
|
args: [{
|
@@ -290,7 +297,7 @@ class TemplateKeyDirective {
|
|
290
297
|
}
|
291
298
|
}
|
292
299
|
TemplateKeyDirective.ɵfac = function TemplateKeyDirective_Factory(t) { return new (t || TemplateKeyDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(TEMPLATED_ITEMS_COMPONENT, 1)); };
|
293
|
-
TemplateKeyDirective.ɵdir = i0.ɵɵdefineDirective({ type: TemplateKeyDirective, selectors: [["", "pagerTemplateKey", ""]], inputs: { pagerTemplateKey: "pagerTemplateKey" } });
|
300
|
+
TemplateKeyDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TemplateKeyDirective, selectors: [["", "pagerTemplateKey", ""]], inputs: { pagerTemplateKey: "pagerTemplateKey" } });
|
294
301
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TemplateKeyDirective, [{
|
295
302
|
type: Directive,
|
296
303
|
args: [{ selector: '[pagerTemplateKey]' }]
|
@@ -312,7 +319,7 @@ class PagerComponent extends TemplatedItemsComponent {
|
|
312
319
|
}
|
313
320
|
}
|
314
321
|
PagerComponent.ɵfac = function PagerComponent_Factory(t) { return new (t || PagerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.IterableDiffers)); };
|
315
|
-
PagerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: PagerComponent, selectors: [["Pager"]], features: [i0.ɵɵProvidersFeature([
|
322
|
+
PagerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PagerComponent, selectors: [["Pager"]], features: [i0.ɵɵProvidersFeature([
|
316
323
|
{
|
317
324
|
provide: TEMPLATED_ITEMS_COMPONENT,
|
318
325
|
useExisting: forwardRef(() => PagerComponent)
|
@@ -341,8 +348,8 @@ PagerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: PagerComponent, selectors:
|
|
341
348
|
class PagerModule {
|
342
349
|
}
|
343
350
|
PagerModule.ɵfac = function PagerModule_Factory(t) { return new (t || PagerModule)(); };
|
344
|
-
PagerModule.ɵmod = i0.ɵɵdefineNgModule({ type: PagerModule });
|
345
|
-
PagerModule.ɵinj = i0.ɵɵdefineInjector({});
|
351
|
+
PagerModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PagerModule });
|
352
|
+
PagerModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
346
353
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PagerModule, [{
|
347
354
|
type: NgModule,
|
348
355
|
args: [{
|
@@ -353,5 +360,9 @@ PagerModule.ɵinj = i0.ɵɵdefineInjector({});
|
|
353
360
|
}], null, null); })();
|
354
361
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(PagerModule, { declarations: [PagerComponent, TemplateKeyDirective, PagerItemDirective], exports: [PagerComponent, TemplateKeyDirective, PagerItemDirective] }); })();
|
355
362
|
|
363
|
+
/**
|
364
|
+
* Generated bundle index. Do not edit.
|
365
|
+
*/
|
366
|
+
|
356
367
|
export { PagerComponent, PagerItemDirective, PagerModule, TemplateKeyDirective, TemplatedItemsComponent };
|
357
368
|
//# sourceMappingURL=nativescript-community-ui-pager-angular.mjs.map
|