@nativescript-community/ui-collectionview 4.0.52 → 4.0.55

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.
@@ -17,12 +17,12 @@ export declare class CollectionView extends CollectionViewBase {
17
17
  layoutManager: androidx.recyclerview.widget.RecyclerView.LayoutManager;
18
18
  owner?: WeakRef<CollectionView>;
19
19
  };
20
+ private recyclerListener;
20
21
  private templateTypeNumberString;
21
22
  private templateStringTypeNumber;
22
23
  private _currentNativeItemType;
23
24
  private currentSpanCount;
24
25
  private _viewHolders;
25
- private _viewHolderChildren;
26
26
  private _scrollOrLoadMoreChangeCount;
27
27
  private _nScrollListener;
28
28
  scrolling: boolean;
@@ -37,6 +37,8 @@ export declare class CollectionView extends CollectionViewBase {
37
37
  nestedScrollingEnabled: boolean;
38
38
  itemViewCacheSize: number;
39
39
  extraLayoutSpace: number;
40
+ recycledViewPool: com.nativescript.collectionview.RecycledViewPool;
41
+ recycledViewPoolDisposeListener: com.nativescript.collectionview.RecycledViewPool.ViewPoolListener;
40
42
  createNativeView(): any;
41
43
  initNativeView(): void;
42
44
  disposeNativeView(): void;
@@ -55,7 +57,13 @@ export declare class CollectionView extends CollectionViewBase {
55
57
  get android(): androidx.recyclerview.widget.RecyclerView;
56
58
  get layoutManager(): androidsupportv7widgetRecyclerView.LayoutManager;
57
59
  _getViewLayoutParams(): androidviewViewGroup.LayoutParams;
60
+ defaultPoolSize: number;
61
+ desiredPoolSize: Map<string, number>;
62
+ private setNativePoolSize;
63
+ private setPoolSizes;
64
+ setPoolSize(key: string, size: number): void;
58
65
  protected updateScrollBarVisibility(value: any): void;
66
+ private enumerateViewHolders;
59
67
  startDragging(index: number): void;
60
68
  isDragging: boolean;
61
69
  startViewHolderDragging(index: any, viewHolder: CollectionViewCellHolder): void;
@@ -91,6 +99,8 @@ export declare class CollectionView extends CollectionViewBase {
91
99
  onItemIdGeneratorChanged(oldValue: any, newValue: any): void;
92
100
  clearTemplateTypes(): void;
93
101
  getItemViewType(position: number): number;
102
+ templateKeyToNativeItem(key: string): number;
103
+ nativeItemToTemplateKey(item: number): string;
94
104
  disposeViewHolderViews(): void;
95
105
  getKeyByValue(viewType: number): string;
96
106
  onCreateViewHolder(parent: android.view.ViewGroup, viewType: number): CollectionViewCellHolder;
package/index.android.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ChangeType, ContentView, CoreTypes, FlexboxLayout, Property, ProxyViewContainer, Trace, View, ViewBase, booleanConverter, paddingBottomProperty, paddingLeftProperty, paddingRightProperty, paddingTopProperty, profile } from '@nativescript/core';
1
+ import { ChangeType, ContentView, CoreTypes, Property, ProxyViewContainer, Trace, View, ViewBase, booleanConverter, paddingBottomProperty, paddingLeftProperty, paddingRightProperty, paddingTopProperty, profile } from '@nativescript/core';
2
2
  import { layout } from '@nativescript/core/utils/utils';
3
3
  import { reorderLongPressEnabledProperty, reorderingEnabledProperty, reverseLayoutProperty, scrollBarIndicatorVisibleProperty } from '.';
4
4
  import { CLog, CLogTypes, CollectionViewBase, ListViewViewTypes, isScrollEnabledProperty, orientationProperty } from './index-common';
@@ -72,7 +72,6 @@ var LongPressGestureListenerImpl = /** @class */ (function (_super) {
72
72
  };
73
73
  return LongPressGestureListenerImpl;
74
74
  }(android.view.GestureDetector.SimpleOnGestureListener));
75
- let CellViewHolder;
76
75
  let LayoutParams;
77
76
  const extraLayoutSpaceProperty = new Property({
78
77
  name: 'extraLayoutSpace'
@@ -92,12 +91,13 @@ export class CollectionView extends CollectionViewBase {
92
91
  this.templateStringTypeNumber = new Map();
93
92
  this._currentNativeItemType = 0;
94
93
  this.currentSpanCount = 1;
95
- this._viewHolders = new Array();
96
- this._viewHolderChildren = new Array();
94
+ this._viewHolders = new Set();
97
95
  this._scrollOrLoadMoreChangeCount = 0;
98
96
  this.scrolling = false;
99
97
  this.needsScrollStartEvent = false;
100
98
  this.animateItemUpdate = false;
99
+ this.defaultPoolSize = 10;
100
+ this.desiredPoolSize = new Map();
101
101
  this.isDragging = false;
102
102
  this._layedOut = false;
103
103
  }
@@ -112,6 +112,52 @@ export class CollectionView extends CollectionViewBase {
112
112
  this.setOnLayoutChangeListener();
113
113
  super.initNativeView();
114
114
  const nativeView = this.nativeViewProtected;
115
+ this.recycledViewPool = new com.nativescript.collectionview.RecycledViewPool();
116
+ this.recycledViewPoolDisposeListener = new com.nativescript.collectionview.RecycledViewPool.ViewPoolListener({
117
+ onViewHolderDisposed: (holder) => {
118
+ if (Trace.isEnabled()) {
119
+ CLog(CLogTypes.log, 'onViewHolderDisposed', holder);
120
+ }
121
+ if (this._viewHolders) {
122
+ this._viewHolders.delete(holder);
123
+ }
124
+ const isNonSync = holder['defaultItemView'] === true;
125
+ const view = isNonSync ? holder.view.content : holder.view;
126
+ const args = {
127
+ eventName: CollectionViewBase.itemDisposingEvent,
128
+ index: holder.getAdapterPosition(),
129
+ object: this,
130
+ view,
131
+ android: holder
132
+ };
133
+ this.notify(args);
134
+ if (view && view.isLoaded) {
135
+ view.callUnloaded();
136
+ }
137
+ view._isAddedToNativeVisualTree = false;
138
+ view._tearDownUI();
139
+ }
140
+ });
141
+ this.recycledViewPool.mListener = this.recycledViewPoolDisposeListener;
142
+ const recyclerListener = (this.recyclerListener = new androidx.recyclerview.widget.RecyclerView.RecyclerListener({
143
+ onViewRecycled: (holder) => {
144
+ if (Trace.isEnabled()) {
145
+ CLog(CLogTypes.log, 'onViewRecycled', holder);
146
+ }
147
+ const isNonSync = holder['defaultItemView'] === true;
148
+ const view = isNonSync ? holder.view.content : holder.view;
149
+ const args = {
150
+ eventName: CollectionViewBase.itemRecyclingEvent,
151
+ index: holder.getAdapterPosition(),
152
+ object: this,
153
+ view,
154
+ android: holder
155
+ };
156
+ this.notify(args);
157
+ }
158
+ }));
159
+ nativeView.setRecyclerListener(recyclerListener);
160
+ nativeView.setRecycledViewPool(this.recycledViewPool);
115
161
  let layoutManager;
116
162
  if (CollectionViewBase.layoutStyles[this.layoutStyle]) {
117
163
  layoutManager = CollectionViewBase.layoutStyles[this.layoutStyle].createLayout(this);
@@ -133,6 +179,10 @@ export class CollectionView extends CollectionViewBase {
133
179
  }
134
180
  disposeNativeView() {
135
181
  const nativeView = this.nativeViewProtected;
182
+ nativeView.setRecyclerListener(null);
183
+ nativeView.setRecycledViewPool(null);
184
+ this.recycledViewPoolDisposeListener = null;
185
+ this.recycledViewPool = null;
136
186
  if (nativeView.scrollListener) {
137
187
  this.nativeView.removeOnScrollListener(nativeView.scrollListener);
138
188
  nativeView.scrollListener = null;
@@ -155,15 +205,7 @@ export class CollectionView extends CollectionViewBase {
155
205
  this.refresh();
156
206
  }
157
207
  getViewForItemAtIndex(index) {
158
- let result;
159
- this._viewHolders.some(function (cellItemView, key) {
160
- if (cellItemView && cellItemView.getAdapterPosition() === index) {
161
- result = cellItemView.view;
162
- return true;
163
- }
164
- return false;
165
- });
166
- return result;
208
+ return this.enumerateViewHolders((v) => (v.getAdapterPosition() === index ? v.view : undefined));
167
209
  }
168
210
  set spanSize(inter) {
169
211
  if (!(typeof inter === 'function')) {
@@ -318,6 +360,30 @@ export class CollectionView extends CollectionViewBase {
318
360
  return this._vlayoutParams;
319
361
  }
320
362
  }
363
+ setNativePoolSize(key, nativeIndex) {
364
+ if (this.desiredPoolSize.has(key)) {
365
+ this.nativeViewProtected.getRecycledViewPool().setMaxRecycledViews(nativeIndex, this.desiredPoolSize.get(key));
366
+ }
367
+ else {
368
+ if (this.defaultPoolSize >= 0) {
369
+ this.nativeViewProtected.getRecycledViewPool().setMaxRecycledViews(nativeIndex, this.defaultPoolSize);
370
+ }
371
+ }
372
+ }
373
+ setPoolSizes() {
374
+ if (!this.nativeViewProtected || !this.templateTypeNumberString) {
375
+ return;
376
+ }
377
+ this.desiredPoolSize.forEach((v, k) => {
378
+ if (this.templateTypeNumberString.has(k)) {
379
+ this.nativeViewProtected.getRecycledViewPool().setMaxRecycledViews(this.templateTypeNumberString.get(k), v);
380
+ }
381
+ });
382
+ }
383
+ setPoolSize(key, size) {
384
+ this.desiredPoolSize.set(key, size);
385
+ this.setPoolSizes();
386
+ }
321
387
  [paddingTopProperty.getDefault]() {
322
388
  return { value: this._defaultPaddingTop, unit: 'px' };
323
389
  }
@@ -399,16 +465,19 @@ export class CollectionView extends CollectionViewBase {
399
465
  this.nativeViewProtected.setVerticalScrollBarEnabled(value);
400
466
  }
401
467
  }
468
+ enumerateViewHolders(cb) {
469
+ let result, v;
470
+ for (let it = this._viewHolders.values(), cellItemView = null; (cellItemView = it.next().value);) {
471
+ result = cb(cellItemView);
472
+ if (result) {
473
+ return result;
474
+ }
475
+ }
476
+ return result;
477
+ }
402
478
  startDragging(index) {
403
479
  if (this.reorderEnabled && this._itemTouchHelper) {
404
- let viewHolder;
405
- this._viewHolders.some((v) => {
406
- if (v.getAdapterPosition() === index) {
407
- viewHolder = v;
408
- return true;
409
- }
410
- return false;
411
- });
480
+ const viewHolder = this.enumerateViewHolders((v) => (v.getAdapterPosition() === index ? v : undefined));
412
481
  if (viewHolder) {
413
482
  this.startViewHolderDragging(index, viewHolder);
414
483
  }
@@ -612,13 +681,16 @@ export class CollectionView extends CollectionViewBase {
612
681
  this._listViewAdapter.notifyDataSetChanged();
613
682
  }
614
683
  eachChild(callback) {
615
- this._viewHolders.forEach(({ view }, nativeView) => {
616
- if (view.parent instanceof CollectionView) {
617
- callback(view);
618
- }
619
- else {
620
- if (view.parent) {
621
- callback(view.parent);
684
+ this.enumerateViewHolders((v) => {
685
+ const view = v.view;
686
+ if (view) {
687
+ if (view.parent instanceof CollectionView) {
688
+ callback(view);
689
+ }
690
+ else {
691
+ if (view.parent) {
692
+ callback(view.parent);
693
+ }
622
694
  }
623
695
  }
624
696
  });
@@ -628,7 +700,7 @@ export class CollectionView extends CollectionViewBase {
628
700
  if (!view) {
629
701
  return;
630
702
  }
631
- const ids = this._viewHolders
703
+ const ids = Array.from(this._viewHolders)
632
704
  .map((s) => s['position'])
633
705
  .filter((s) => s !== null)
634
706
  .sort((a, b) => a - b);
@@ -761,7 +833,6 @@ export class CollectionView extends CollectionViewBase {
761
833
  this.templateStringTypeNumber.clear();
762
834
  }
763
835
  getItemViewType(position) {
764
- let resultType = 0;
765
836
  let selectorType = 'default';
766
837
  if (this._itemTemplateSelector) {
767
838
  const selector = this._itemTemplateSelector;
@@ -770,25 +841,50 @@ export class CollectionView extends CollectionViewBase {
770
841
  selectorType = selector(dataItem, position, this.items);
771
842
  }
772
843
  }
773
- if (!this.templateTypeNumberString.has(selectorType)) {
774
- resultType = this._currentNativeItemType;
775
- this.templateTypeNumberString.set(selectorType, resultType);
776
- this.templateStringTypeNumber.set(resultType, selectorType);
777
- this._currentNativeItemType++;
844
+ return this.templateKeyToNativeItem(selectorType);
845
+ }
846
+ templateKeyToNativeItem(key) {
847
+ if (!this.templateTypeNumberString) {
848
+ this.templateTypeNumberString = new Map();
849
+ this._currentNativeItemType = 0;
850
+ this._itemTemplatesInternal.forEach((v, i) => {
851
+ this.templateTypeNumberString.set(v.key, this._currentNativeItemType);
852
+ this.templateStringTypeNumber.set(this._currentNativeItemType, v.key);
853
+ this.setNativePoolSize(v.key, this._currentNativeItemType);
854
+ this._currentNativeItemType++;
855
+ });
856
+ this._currentNativeItemType = Math.max(this._itemTemplatesInternal.size, 100);
778
857
  }
779
- else {
780
- resultType = this.templateTypeNumberString.get(selectorType);
858
+ if (!this.templateTypeNumberString.has(key)) {
859
+ this.templateTypeNumberString.set(key, this._currentNativeItemType);
860
+ this.templateStringTypeNumber.set(this._currentNativeItemType, key);
861
+ this.setNativePoolSize(key, this._currentNativeItemType);
862
+ this._currentNativeItemType++;
781
863
  }
782
- return resultType;
864
+ return this.templateTypeNumberString.get(key);
865
+ }
866
+ nativeItemToTemplateKey(item) {
867
+ var _a;
868
+ let result;
869
+ (_a = this.templateTypeNumberString) === null || _a === void 0 ? void 0 : _a.forEach((value, key, map) => {
870
+ if (value === item) {
871
+ result = key;
872
+ }
873
+ }, this);
874
+ return result;
783
875
  }
784
876
  disposeViewHolderViews() {
785
- this._viewHolders.forEach((v) => {
877
+ this.enumerateViewHolders((v) => {
878
+ const view = v.view;
879
+ if (view && view.isLoaded) {
880
+ view.callUnloaded();
881
+ }
882
+ view._isAddedToNativeVisualTree = false;
883
+ view._tearDownUI();
786
884
  v.view = null;
787
885
  v.clickListener = null;
788
886
  });
789
- this._viewHolders = new Array();
790
- this._viewHolderChildren.forEach((v) => this._removeViewCore(v));
791
- this._viewHolderChildren = new Array();
887
+ this._viewHolders = new Set();
792
888
  }
793
889
  getKeyByValue(viewType) {
794
890
  return this.templateStringTypeNumber.get(viewType);
@@ -801,8 +897,9 @@ export class CollectionView extends CollectionViewBase {
801
897
  parentView.id = 'collectionViewHolder';
802
898
  view = parentView;
803
899
  }
804
- this._viewHolderChildren.push(view);
805
- this._addView(view);
900
+ view._setupAsRootView(this._context);
901
+ view._isAddedToNativeVisualTree = true;
902
+ view.callLoaded();
806
903
  if (!CollectionViewCellHolder) {
807
904
  CollectionViewCellHolder = com.nativescript.collectionview.CollectionViewCellHolder;
808
905
  }
@@ -828,7 +925,10 @@ export class CollectionView extends CollectionViewBase {
828
925
  if (isNonSync) {
829
926
  holder['defaultItemView'] = true;
830
927
  }
831
- this._viewHolders.push(holder);
928
+ this._viewHolders.add(holder);
929
+ if (Trace.isEnabled()) {
930
+ CLog(CLogTypes.log, 'onCreateViewHolder', this._viewHolders.size);
931
+ }
832
932
  return holder;
833
933
  }
834
934
  onBindViewHolder(holder, position) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"../src/","sources":["index.android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"../src/","sources":["index.android.ts"],"names":[],"mappings":"AACA,OAAO,EACH,UAAU,EAEV,WAAW,EACX,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,OAAO,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAA4C,+BAA+B,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,MAAM,GAAG,CAAC;AACnL,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEtI,cAAc,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsF/B,IAAI,YAAwD,CAAC;AAE7D,MAAM,wBAAwB,GAAG,IAAI,QAAQ,CAA6B;IACtE,IAAI,EAAE,kBAAkB;CAC3B,CAAC,CAAC;AACH,MAAM,yBAAyB,GAAG,IAAI,QAAQ,CAA6B;IACvE,IAAI,EAAE,mBAAmB;CAC5B,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAAG,IAAI,QAAQ,CAA8B;IAC7E,IAAI,EAAE,wBAAwB;IAC9B,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,gBAAgB;CACnC,CAAC,CAAC;AACH,MAAM,OAAO,cAAe,SAAQ,kBAAkB;IAAtD;;QAWY,6BAAwB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACrD,6BAAwB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACrD,2BAAsB,GAAG,CAAC,CAAC;QAE3B,qBAAgB,GAAG,CAAC,CAAC;QAIrB,iBAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;QAEnD,iCAA4B,GAAG,CAAC,CAAC;QAEzC,cAAS,GAAG,KAAK,CAAC;QAClB,0BAAqB,GAAG,KAAK,CAAC;QAYvB,sBAAiB,GAAG,KAAK,CAAC;QAqUjC,oBAAe,GAAG,EAAE,CAAC;QACrB,oBAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;QAkIjD,eAAU,GAAG,KAAK,CAAC;QA6PnB,cAAS,GAAG,KAAK,CAAC;IAkTtB,CAAC;IA9+BU,gBAAgB;QAEnB,IAAI,CAAC,0BAA0B,EAAE;YAC7B,0BAA0B,GAAG,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,YAAmB,CAAC;SACpF;QACD,MAAM,YAAY,GAAI,0BAAkC,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAY3F,OAAO,YAAY,CAAC;IACxB,CAAC;IAGM,cAAc;QACjB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAC/E,IAAI,CAAC,+BAA+B,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;YACzG,oBAAoB,EAAE,CAAC,MAAgC,EAAE,EAAE;gBACvD,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;oBACnB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC;iBACvD;gBACD,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;iBACpC;gBACD,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;gBACrD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAE,MAAM,CAAC,IAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBAE5E,MAAM,IAAI,GAAG;oBACT,SAAS,EAAE,kBAAkB,CAAC,kBAAkB;oBAChD,KAAK,EAAE,MAAM,CAAC,kBAAkB,EAAE;oBAClC,MAAM,EAAE,IAAI;oBACZ,IAAI;oBACJ,OAAO,EAAE,MAAM;iBAClB,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClB,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACvB,IAAI,CAAC,YAAY,EAAE,CAAC;iBACvB;gBACD,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;gBACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;SACJ,CAAC,CAAC;QACF,IAAI,CAAC,gBAAwB,CAAC,SAAS,GAAG,IAAI,CAAC,+BAA+B,CAAC;QAChF,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC;YAC7G,cAAc,EAAE,CAAC,MAAgC,EAAE,EAAE;gBACjD,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;oBACnB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;iBACjD;gBACD,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;gBACrD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAE,MAAM,CAAC,IAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC5E,MAAM,IAAI,GAAG;oBACT,SAAS,EAAE,kBAAkB,CAAC,kBAAkB;oBAChD,KAAK,EAAE,MAAM,CAAC,kBAAkB,EAAE;oBAClC,MAAM,EAAE,IAAI;oBACZ,IAAI;oBACJ,OAAO,EAAE,MAAM;iBAClB,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;SACJ,CAAC,CAAC,CAAC;QACJ,UAAU,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QACjD,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAStD,IAAI,aAAsE,CAAC;QAC3E,IAAI,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACnD,aAAa,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACxF;aAAM;YACH,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SAGrG;QAED,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC3C,UAAU,CAAC,aAAa,GAAG,aAAa,CAAC;QACzC,UAAU,CAAC,mBAAmB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,mBAAmB,CAAC;YACrF,aAAa,KAAI,CAAC;YAClB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,6BAA6B,EAAE,CAAC;QAIxG,QAAQ,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAE5C,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACM,iBAAiB;QAQpB,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC5C,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACrC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,UAAU,CAAC,cAAc,EAAE;YAC3B,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAClE,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAChC;QACD,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACtC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC9B,CAAC;IAED,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAGM,qBAAqB,CAAC,KAAa;QACtC,OAAO,IAAI,CAAC,oBAAoB,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,IAAI,QAAQ,CAAC,KAA8B;QACvC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,EAAE;YAChC,OAAO;SACV;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,aAAa,IAAI,aAAa,CAAC,mBAAmB,CAAC,EAAE;YACrD,IAAI,KAAK,EAAE;gBACP,aAAa,CAAC,mBAAmB,CAAC,CAC9B,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,CAC9C,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC;oBACzD,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE;wBACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;wBAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBACtE,CAAC;iBACJ,CAAC,CACL,CACJ,CAAC;aACL;iBAAM;gBACH,aAAa,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;aAC5C;SACJ;IACL,CAAC;IACD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEO,oBAAoB;QACxB,IAAI,IAAI,CAAC,4BAA4B,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;gBAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC;oBAClF,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC1D,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;iBACzC,CAAC,CAAC;gBACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACnG,UAAU,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;gBAC/C,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;aAC9C;SACJ;IACL,CAAC;IAEO,oBAAoB;QACxB,IAAI,IAAI,CAAC,4BAA4B,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC5C,IAAI,UAAU,CAAC,cAAc,EAAE;gBAC3B,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBAClE,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAChC;SACJ;IACL,CAAC;IACO,sBAAsB,CAAC,IAA+C,EAAE,SAAiB,EAAE,EAAW,EAAE,EAAW;QACvH,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACtG,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACnG,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACtG,OAAO;YACH,MAAM,EAAE,IAAI;YACZ,SAAS;YACT,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,iBAAiB,EAAE;YACjD,sBAAsB,EAAE,MAAM,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC;YACjD,EAAE;YACF,EAAE;SACL,CAAC;IACN,CAAC;IAEM,UAAU,CAAC,IAA+C,EAAE,EAAU,EAAE,EAAU;QACrF,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1B,OAAO;SACV;QACD,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,EAAE;gBACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;aAC/F;SACJ;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;SAC1F;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YACxE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9C,IAAI,aAAa,CAAC,uCAAuC,CAAC,EAAE;gBACxD,MAAM,kBAAkB,GAAG,aAAa,CAAC,uCAAuC,CAAC,EAAE,CAAC;gBACpF,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACrE,IAAI,kBAAkB,KAAK,iBAAiB,EAAE;oBAC1C,IAAI,CAAC,MAAM,CAAC;wBACR,SAAS,EAAE,kBAAkB,CAAC,kBAAkB;wBAChD,MAAM,EAAE,IAAI;qBACf,CAAC,CAAC;iBACN;aACJ;iBAAM,IAAI,aAAa,CAAC,wCAAwC,CAAC,IAAI,aAAa,CAAC,cAAc,CAAC,EAAE;gBACjG,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACrE,SAAS,GAAG,aAAa,CAAC,wCAAwC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC/E,IAAI,kBAAkB,GAAG,CAAC,CAAC;gBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,kBAAkB,EAAE;wBACnC,kBAAkB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;qBACrC;iBACJ;gBACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACrE,IAAI,kBAAkB,IAAI,iBAAiB,EAAE;oBACzC,IAAI,CAAC,MAAM,CAAC;wBACR,SAAS,EAAE,kBAAkB,CAAC,kBAAkB;wBAChD,MAAM,EAAE,IAAI;qBACf,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAEM,oBAAoB,CAAC,IAA+C,EAAE,QAAgB;QACzF,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,KAAK,CAAC,EAAE;YAElC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAEvB,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE;gBACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;aACrF;SACJ;aAAM,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,KAAK,CAAC,EAAE;YAE1C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;IACL,CAAC;IAEM,gBAAgB,CAAC,GAAW,EAAE,QAAa,EAAE,OAAa;QAC7D,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,GAAG,KAAK,kBAAkB,CAAC,WAAW,IAAI,GAAG,KAAK,kBAAkB,CAAC,gBAAgB,IAAI,GAAG,KAAK,kBAAkB,CAAC,cAAc,IAAI,GAAG,KAAK,kBAAkB,CAAC,kBAAkB,EAAE;YACrL,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;IACL,CAAC;IAEM,mBAAmB,CAAC,GAAW,EAAE,QAAa,EAAE,OAAa;QAChE,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAElD,IAAI,GAAG,KAAK,kBAAkB,CAAC,WAAW,IAAI,GAAG,KAAK,kBAAkB,CAAC,gBAAgB,IAAI,GAAG,KAAK,kBAAkB,CAAC,cAAc,IAAI,GAAG,KAAK,kBAAkB,CAAC,kBAAkB,EAAE;YACrL,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;IACL,CAAC;IAGD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC;IAC9E,CAAC;IACD,oBAAoB;QAChB,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,YAAY,GAAG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;gBACnE,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;aAChG;YACD,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,YAAY,GAAG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;gBACnE,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;aAChG;YACD,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;IACL,CAAC;IAKO,iBAAiB,CAAC,GAAW,EAAE,WAAmB;QACtD,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SAClH;aAAM;YACH,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE;gBAC3B,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;aACzG;SACJ;IACL,CAAC;IACO,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAC7D,OAAO;SACV;QACD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACtC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC/G;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,WAAW,CAAC,GAAW,EAAE,IAAY;QACxC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,CAAC,kBAAkB,CAAC,UAAU,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;IACD,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,KAA2B;QACtD,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,CAAC,oBAAoB,CAAC,UAAU,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5D,CAAC;IACD,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,KAA2B;QACxD,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,CAAC,qBAAqB,CAAC,UAAU,CAAC;QAC9B,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7D,CAAC;IACD,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,KAA2B;QACzD,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,CAAC,mBAAmB,CAAC,UAAU,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3D,CAAC;IACD,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAA2B;QACvD,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEM,CAAC,mBAAmB,CAAC,UAAU,CAAC;QACnC,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAkB;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE;YACpD,OAAO;SACV;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACrB,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;SACtC;aAAM;YACH,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACnE,CAAC;IACD,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,KAAc;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,aAAa,IAAK,aAAqB,CAAC,gBAAgB,EAAE;YACzD,aAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAClD;IACL,CAAC;IACD,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,KAAc;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,aAAa,IAAK,aAAqB,CAAC,gBAAgB,EAAE;YACzD,aAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAElD;IACL,CAAC;IACD,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC,KAAc;QACrD,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IACD,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,KAAa;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,aAAa,IAAI,aAAa,CAAC,qBAAqB,CAAC,EAAE;YACvD,aAAa,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC;SAC/C;IACL,CAAC;IACD,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,KAAa;QAC/C,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IACD,CAAC,iCAAiC,CAAC,UAAU,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,CAAC,iCAAiC,CAAC,SAAS,CAAC,CAAC,KAAc;QACxD,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IACS,yBAAyB,CAAC,KAAK;QACrC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3B,OAAO;SACV;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;YACnC,IAAI,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;SACjE;aAAM;YACH,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;SAC/D;IACL,CAAC;IACO,oBAAoB,CAAU,EAAsC;QACxE,IAAI,MAAS,EAAE,CAA2B,CAAC;QAC3C,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,YAAY,GAA6B,IAAI,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAI;YACzH,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;YAC1B,IAAI,MAAM,EAAE;gBACR,OAAO,MAAM,CAAC;aACjB;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACM,aAAa,CAAC,KAAa;QAC9B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAA2B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAClI,IAAI,UAAU,EAAE;gBACZ,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;aACnD;SACJ;IACL,CAAC;IAED,uBAAuB,CAAC,KAAK,EAAE,UAAoC;QAG/D,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;YACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SAC/C;IACL,CAAC;IACD,kBAAkB,CAAC,WAAqC;QACpD,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAChD,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO;SACV;QACD,MAAM,IAAI,GAAG,cAAc,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,MAAM,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAAE,UAAsC,CAAC,CAAC;SACzG;IACL,CAAC;IACD,oBAAoB,CAAC,WAAmB,EAAE,WAAmB;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAEtC,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAGlD,KAAK,CAAC,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAIM,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC,KAAc;QAC7D,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,4BAA4B,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1I,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC;oBACzF,qBAAqB,EAAE,CAAC,IAAuB,EAAE,KAA+B,EAAE,EAAE;wBAChF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE;4BAC/C,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;yBAC9C;wBACD,OAAO,KAAK,CAAC;oBACjB,CAAC;oBACD,YAAY,EAAE,CAAC,MAAiD,EAAE,MAAsC,EAAE,EAAE,GAAE,CAAC;oBAC/G,oCAAoC,EAAE,CAAC,iBAA0B,EAAE,EAAE,GAAE,CAAC;iBAC3E,CAAC,CAAC;aACN;YACD,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC7E;aAAM;YACH,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aAChF;SACJ;IACL,CAAC;IACM,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,KAAc;QACvD,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;gBAChC,MAAM,eAAe,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC;gBACrE,IAAI,CAAC,wBAAwB,GAAG,IAAI,cAAc,CAAC,eAAe,CAAC,EAAE,GAAG,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/I,IAAI,CAAC,wBAAwB,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,gBAAgB,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBACxG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACxE;SACJ;IACL,CAAC;IAED,uBAAuB;QACnB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;IACL,CAAC;IACD,6BAA6B,CAAC,QAAQ,EAAE,QAAQ;QAC5C,KAAK,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,qBAAqB,CAAC,QAAQ,EAAE,QAAQ;QACpC,KAAK,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;QACrC,KAAK,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAEO,yBAAyB;QAC7B,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,oBAAoB;gBACrB,IAAI,CAAC,oBAAoB;oBACzB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC;wBACzC,cAAc,CAAC,CAAoB,EAAE,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc,EAAE,OAAe,EAAE,MAAc,EAAE,QAAgB,EAAE,SAAiB;4BAC/J,IAAI,IAAI,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE;gCAClF,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gCACzC,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;oCAC7C,KAAK,CAAC,wBAAwB,EAAE,CAAC;iCACpC;6BACJ;wBACL,CAAC;qBACJ,CAAC,CAAC;YAEP,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SACjF;IACL,CAAC;IAED,gBAAgB;QACZ,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,aAAa,IAAI,aAAa,CAAC,cAAc,CAAC,EAAE;YAChD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACnE,IAAI,QAAQ,KAAK,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE;gBAC9C,aAAa,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACxC,aAAa,CAAC,aAAa,EAAE,CAAC;aACjC;SACJ;IACL,CAAC;IAED,eAAe;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IACD,0BAA0B,CAAC,QAAqC,EAAE,QAAqC;QACnG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,KAAK,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IACD,2BAA2B,CAAC,QAAqC,EAAE,QAAqC;QACpG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,KAAK,CAAC,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IACM,QAAQ,CAAC,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc;QACpE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACjB,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SAC9C;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAGH,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,EAAE;YACjF,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IACpC,CAAC;IACM,yBAAyB,CAAC,KAAuB;QACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YACtD,OAAO;SACV;QACD,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC5I;QACD,QAAQ,KAAK,CAAC,MAAM,EAAE;YAClB,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC;gBACpB,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChF,OAAO;aACV;YACD,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;gBACjB,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE;oBACtB,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;iBAChF;gBAED,OAAO;aACV;YACD,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC;gBACpB,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE;oBACtB,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;iBAC/E;gBACD,OAAO;aACV;YACD,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC/B,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC7D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,OAAO,EAAE;oBAEhC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;wBACzB,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;qBACpE;yBAAM;wBACH,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBACjE,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;qBACrE;iBACJ;qBAAM;oBACH,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;wBACzB,IAAI,KAAK,GAAG,OAAO,EAAE;4BACjB,IAAI,OAAO,GAAG,CAAC,EAAE;gCACb,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;6BACtE;4BACD,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;yBACzF;6BAAM;4BACH,IAAI,KAAK,GAAG,CAAC,EAAE;gCACX,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;6BACpE;4BACD,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC;yBACtF;qBACJ;yBAAM;wBACH,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC3C,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;yBACnF;wBACD,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE;4BACtB,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;yBAChF;qBACJ;iBACJ;gBACD,OAAO;aACV;SACJ;QACD,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,QAAsC;QAE5C,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACpB,IAAI,IAAI,EAAE;gBACN,IAAI,IAAI,CAAC,MAAM,YAAY,cAAc,EAAE;oBACvC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAClB;qBAAM;oBAEH,IAAI,IAAI,CAAC,MAAM,EAAE;wBACb,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACzB;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,mBAAmB;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;aACzB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3F,CAAC;IACM,oBAAoB,CAAC,KAAa;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,KAAK,CAAC;SAChB;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAiE,CAAC;QAC7F,IAAI,aAAa,CAAC,8BAA8B,CAAC,EAAE;YAC/C,MAAM,KAAK,GAAG,aAAa,CAAC,4BAA4B,EAAE,CAAC;YAC3D,MAAM,IAAI,GAAG,aAAa,CAAC,2BAA2B,EAAE,CAAC;YACzD,OAAO,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC;SAC1C;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAIM,OAAO;QACV,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3B,OAAO;SACV;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO;SACV;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QACjE,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACvF,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAC5B;aAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YAC3B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAC5B;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG;YACT,SAAS,EAAE,kBAAkB,CAAC,kBAAkB;YAChD,MAAM,EAAE,IAAI;SACf,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAGD,IAAI,YAAY;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC1I,CAAC;IACD,IAAI,eAAe;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,IAAI,CAAC,6BAA6B,EAAE,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC7E,CAAC;IACD,IAAI,eAAe;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,IAAI,CAAC,2BAA2B,EAAE,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC3E,CAAC;IACM,aAAa,CAAC,KAAa,EAAE,WAAoB,IAAI;QACxD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3B,OAAO;SACV;QACD,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SAC1D;aAAM;YACH,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACpD;IACL,CAAC;IAEO,WAAW,CAAC,UAA4E;QAC5F,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC5C,MAAM,OAAO,GAAG;YACZ,GAAG,EAAE,UAAU,CAAC,aAAa,EAAE;YAC/B,KAAK,EAAE,UAAU,CAAC,eAAe,EAAE;YACnC,MAAM,EAAE,UAAU,CAAC,gBAAgB,EAAE;YACrC,IAAI,EAAE,UAAU,CAAC,cAAc,EAAE;SACpC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACpD,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpF,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAEO,qBAAqB,CAAC,YAAwC;QAClE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC9D,OAAO,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,gBAAgB,CAAC;YAC5E,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YACpC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YACtD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YAClD,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;SACjD,CAAC,CAAC;QAGH,OAAO,OAAO,CAAC;IACnB,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAEM,OAAO,CAAC,CAAS;QACpB,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACrC,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,SAAS,CAAC,CAAS;QACtB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QACZ,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACpC,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACnD;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,wBAAwB,CAAC,QAAQ,EAAE,QAAQ;QACvC,KAAK,CAAC,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SACrD;IACL,CAAC;IAEM,kBAAkB;QACrB,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAEM,eAAe,CAAC,QAAgB;QACnC,IAAI,YAAY,GAAW,SAAS,CAAC;QACrC,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,QAAQ,EAAE;gBACV,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAC3D;SACJ;QACD,OAAO,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAUtD,CAAC;IACM,uBAAuB,CAAC,GAAW;QACtC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAChC,IAAI,CAAC,wBAAwB,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC1D,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACtE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC3D,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAGjF;QACD,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACzC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACpE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;YACpE,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACzD,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC;QACD,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IACM,uBAAuB,CAAC,IAAY;;QACvC,IAAI,MAAc,CAAC;QACnB,MAAA,IAAI,CAAC,wBAAwB,0CAAE,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvD,IAAI,KAAK,KAAK,IAAI,EAAE;gBAChB,MAAM,GAAG,GAAG,CAAC;aAChB;QACL,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACpB,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACvB,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;YACD,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;YACd,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAGM,kBAAkB,CAAC,MAA8B,EAAE,QAAgB;QACtE,IAAI,IAAI,GAAS,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnG,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS,CAAC;QAErC,IAAI,SAAS,IAAI,IAAI,YAAY,kBAAkB,EAAE;YACjD,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,EAAE,GAAG,sBAAsB,CAAC;YACvC,IAAI,GAAG,UAAU,CAAC;SACrB;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,wBAAwB,EAAE;YAC3B,wBAAwB,GAAG,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,wBAA+B,CAAC;SAC9F;QAED,MAAM,MAAM,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE7D,MAAM,cAAc,GAAG,IAAI,CAAC;QAC5B,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;YACxD,OAAO,EAAE,GAAG,EAAE;gBACV,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAC7C,cAAc,CAAC,MAAM,CAA8B;oBAC/C,SAAS,EAAE,kBAAkB,CAAC,YAAY;oBAC1C,MAAM,EAAE,cAAc;oBACtB,KAAK,EAAE,QAAQ;oBACf,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;oBACtC,IAAI,EAAE,MAAM,CAAC,IAAI;iBACpB,CAAC,CAAC;YACP,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;QACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,SAAS,EAAE;YACX,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;SACpC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE9B,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACrE;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAGM,gBAAgB,CAAC,MAAgC,EAAE,QAAgB;QACtE,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;SACrD;QACD,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;QACrD,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;QAE9B,IAAI,GAAG,SAAS,CAAC,CAAC,CAAE,IAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAExD,MAAM,IAAI,GAAG;YACT,SAAS,EAAE,kBAAkB,CAAC,gBAAgB;YAC9C,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,IAAI;YACZ,IAAI;YACJ,cAAc;YACd,OAAO,EAAE,MAAM;SAClB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAElB,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;YACjC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEhB,MAAM,CAAC,IAAoB,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;SACpD;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3D,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACpC,IAAI,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,IAAI,UAAU,EAAE;gBACZ,MAAM,IAAI,QAAQ,CAAC;aACtB;iBAAM;gBACH,KAAK,IAAI,QAAQ,CAAC;aACrB;SACJ;QACD,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;SACxD;QACD,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;SAC1D;QASD,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAC;SAC3D;IACL,CAAC;IAED,cAAc,CAAC,MAAM;QACjB,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAC9B,CAAC;;AAzhCa,yCAA0B,GAAG,CAAC,CAAC;AAC/B,wCAAyB,GAAG,CAAC,CAAC;AA2C5C;IADC,OAAO;sDAmBP;AAGD;IADC,OAAO;oDAqFP;AAqlBD;IADC,OAAO;6CA4BP;AAyKD;IADC,OAAO;wDA8CP;AAGD;IADC,OAAO;sDAwDP;AAcL,IAAI,wBAAkD,CAAC;AAOvD,IAAI,0BAAsD,CAAC;AAC3D,yBAAyB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACvD,wBAAwB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACtD,8BAA8B,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nativescript-community/ui-collectionview",
3
- "version": "4.0.52",
3
+ "version": "4.0.55",
4
4
  "description": "Allows you to easily add a collection view (grid list view) to your projects. Supports vertical and horizontal modes, templating, and more.",
5
5
  "main": "./index",
6
6
  "sideEffects": false,
@@ -56,5 +56,5 @@
56
56
  },
57
57
  "license": "Apache-2.0",
58
58
  "readmeFilename": "README.md",
59
- "gitHead": "f08082222fa5f9a349dae93c9f5e6e0bd613754f"
59
+ "gitHead": "38a7128702807c112d2521a9cabffcd183b08ac1"
60
60
  }
@@ -0,0 +1,85 @@
1
+ package com.nativescript.collectionview;
2
+
3
+ import android.util.SparseArray;
4
+
5
+ import androidx.recyclerview.widget.RecyclerView;
6
+
7
+ import java.util.ArrayList;
8
+
9
+ public class RecycledViewPool extends RecyclerView.RecycledViewPool {
10
+
11
+ public RecycledViewPool() {
12
+ super();
13
+ }
14
+
15
+ private static final int DEFAULT_MAX_SCRAP = 5;
16
+ public interface ViewPoolListener {
17
+ void onViewHolderDisposed(RecyclerView.ViewHolder holder);
18
+ }
19
+ public ViewPoolListener mListener;
20
+
21
+ static class ScrapData {
22
+ final ArrayList<RecyclerView.ViewHolder> mScrapHeap = new ArrayList<>();
23
+ int mMaxScrap = DEFAULT_MAX_SCRAP;
24
+ }
25
+
26
+ SparseArray<ScrapData> mScrap = new SparseArray<>();
27
+
28
+ @Override
29
+ public void setMaxRecycledViews(int viewType, int max) {
30
+ ScrapData scrapData = getScrapDataForType(viewType);
31
+ scrapData.mMaxScrap = max;
32
+ final ArrayList<RecyclerView.ViewHolder> scrapHeap = scrapData.mScrapHeap;
33
+ while (scrapHeap.size() > max) {
34
+ scrapHeap.remove(scrapHeap.size() - 1);
35
+ }
36
+ super.setMaxRecycledViews(viewType, max);
37
+ }
38
+
39
+ @Override
40
+ public void putRecycledView(RecyclerView.ViewHolder scrap) {
41
+ final int viewType = scrap.getItemViewType();
42
+ super.putRecycledView(scrap);
43
+ final ArrayList<RecyclerView.ViewHolder> scrapHeap = getScrapDataForType(viewType).mScrapHeap;
44
+ if (mScrap.get(viewType).mMaxScrap <= scrapHeap.size()) {
45
+ if(mListener != null) {
46
+ mListener.onViewHolderDisposed(scrap);
47
+ }
48
+ return;
49
+ }
50
+ scrapHeap.add(scrap);
51
+ }
52
+
53
+ @Override
54
+ public void clear() {
55
+ for (int i = 0; i < mScrap.size(); i++) {
56
+ ScrapData data = mScrap.valueAt(i);
57
+ for (RecyclerView.ViewHolder scrap: data.mScrapHeap) {
58
+ if(mListener != null) {
59
+ mListener.onViewHolderDisposed(scrap);
60
+ }
61
+ }
62
+ data.mScrapHeap.clear();
63
+ }
64
+ super.clear();
65
+ }
66
+
67
+ @Override
68
+ public RecyclerView.ViewHolder getRecycledView(int viewType) {
69
+ RecyclerView.ViewHolder result = super.getRecycledView(viewType);
70
+ if(result != null) {
71
+ ScrapData data = getScrapDataForType(viewType);
72
+ data.mScrapHeap.remove(result);
73
+ }
74
+ return result;
75
+ }
76
+
77
+ private ScrapData getScrapDataForType(int viewType) {
78
+ ScrapData scrapData = mScrap.get(viewType);
79
+ if (scrapData == null) {
80
+ scrapData = new ScrapData();
81
+ mScrap.put(viewType, scrapData);
82
+ }
83
+ return scrapData;
84
+ }
85
+ }
@@ -2,6 +2,7 @@
2
2
  "uses": [
3
3
  "com.nativescript.collectionview*:*",
4
4
  "androidx.recyclerview.widget:RecyclerView*",
5
+ "androidx.recyclerview.widget.RecyclerView:RecycledViewPool*",
5
6
  "androidx.recyclerview.widget.RecyclerView:ViewHolder*",
6
7
  "androidx.recyclerview.widget.RecyclerView:Adapter*",
7
8
  "androidx.recyclerview.widget.RecyclerView:OnItemTouchListener*",
package/svelte/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
+ /// <reference types="svelte-native" />
1
2
  import { NativeViewElementNode, ViewNode } from 'svelte-native/dom';
2
3
  import { CollectionView } from '..';
3
4
  declare module '@nativescript/core/ui/core/view-base' {
4
5
  interface ViewBase {
5
- __SvelteComponent__?: any;
6
+ __SvelteComponent__?: SvelteComponent;
6
7
  __SvelteComponentBuilder__?: any;
7
8
  __CollectionViewCurrentIndex__?: number;
8
9
  }
@@ -14,6 +15,7 @@ export default class CollectionViewViewElement extends NativeViewElementNode<Col
14
15
  private getComponentForView;
15
16
  onInsertedChild(childNode: ViewNode, index: number): void;
16
17
  onRemovedChild(childNode: ViewNode): void;
18
+ private disposeListItem;
17
19
  private updateListItem;
18
20
  static register(): void;
19
21
  }
package/svelte/index.js CHANGED
@@ -4,6 +4,7 @@ import { ContentView, LayoutBase, StackLayout, ViewBase } from '@nativescript/co
4
4
  import { NativeViewElementNode, TemplateElement, ViewNode, createElement, registerElement } from 'svelte-native/dom';
5
5
  import { flush } from 'svelte/internal';
6
6
  import { CollectionView } from '..';
7
+ const SVELTE_VIEW = '_svelteViewRef';
7
8
  class SvelteKeyedTemplate {
8
9
  constructor(key, templateEl) {
9
10
  this._key = key;
@@ -34,6 +35,7 @@ export default class CollectionViewViewElement extends NativeViewElementNode {
34
35
  const nativeView = this.nativeView;
35
36
  nativeView.itemViewLoader = (viewType) => this.loadView(viewType);
36
37
  this.nativeView.on(CollectionView.itemLoadingEvent, this.updateListItem, this);
38
+ this.nativeView.on(CollectionView.itemDisposingEvent, this.disposeListItem, this);
37
39
  }
38
40
  loadView(viewType) {
39
41
  if (Array.isArray(this.nativeElement.itemTemplates)) {
@@ -82,6 +84,13 @@ export default class CollectionViewViewElement extends NativeViewElementNode {
82
84
  this.nativeView.removeTemplate(key);
83
85
  }
84
86
  }
87
+ disposeListItem(args) {
88
+ const _view = args.view;
89
+ if (_view.__SvelteComponent__) {
90
+ _view.__SvelteComponent__.$destroy();
91
+ _view.__SvelteComponent__ = null;
92
+ }
93
+ }
85
94
  updateListItem(args) {
86
95
  const _view = args.view;
87
96
  const props = { item: args.bindingContext, index: args.index };
@@ -108,6 +117,9 @@ export default class CollectionViewViewElement extends NativeViewElementNode {
108
117
  registerElement('collectionview', () => new CollectionViewViewElement());
109
118
  }
110
119
  }
120
+ __decorate([
121
+ profile
122
+ ], CollectionViewViewElement.prototype, "disposeListItem", null);
111
123
  __decorate([
112
124
  profile
113
125
  ], CollectionViewViewElement.prototype, "updateListItem", null);