@nstudio/ui-collectionview 4.0.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +396 -0
  3. package/angular/collectionview.component.d.ts +82 -0
  4. package/angular/esm2020/collectionview.component.mjs +394 -0
  5. package/angular/esm2020/index.mjs +19 -0
  6. package/angular/esm2020/nstudio-ui-collectionview-angular.mjs +5 -0
  7. package/angular/fesm2015/nstudio-ui-collectionview-angular.mjs +421 -0
  8. package/angular/fesm2015/nstudio-ui-collectionview-angular.mjs.map +1 -0
  9. package/angular/fesm2020/nstudio-ui-collectionview-angular.mjs +416 -0
  10. package/angular/fesm2020/nstudio-ui-collectionview-angular.mjs.map +1 -0
  11. package/angular/index.d.ts +8 -0
  12. package/angular/package.json +26 -0
  13. package/common.d.ts +191 -0
  14. package/common.js +610 -0
  15. package/common.js.map +1 -0
  16. package/index.android.d.ts +117 -0
  17. package/index.android.js +1097 -0
  18. package/index.android.js.map +1 -0
  19. package/index.d.ts +16 -0
  20. package/index.ios.d.ts +118 -0
  21. package/index.ios.js +1123 -0
  22. package/index.ios.js.map +1 -0
  23. package/package.json +57 -0
  24. package/platforms/android/AndroidManifest.xml +3 -0
  25. package/platforms/android/include.gradle +7 -0
  26. package/platforms/android/java/com/nativescript/collectionview/Adapter.java +66 -0
  27. package/platforms/android/java/com/nativescript/collectionview/AdapterInterface.java +19 -0
  28. package/platforms/android/java/com/nativescript/collectionview/CollectionViewCellHolder.java +12 -0
  29. package/platforms/android/java/com/nativescript/collectionview/GridLayoutManager.java +72 -0
  30. package/platforms/android/java/com/nativescript/collectionview/OnScrollListener.java +35 -0
  31. package/platforms/android/java/com/nativescript/collectionview/PreCachingGridLayoutManager.java +51 -0
  32. package/platforms/android/java/com/nativescript/collectionview/RecycledViewPool.java +85 -0
  33. package/platforms/android/java/com/nativescript/collectionview/RecyclerView.java +46 -0
  34. package/platforms/android/java/com/nativescript/collectionview/SizeChangedListener.java +6 -0
  35. package/platforms/android/java/com/nativescript/collectionview/SpanSizeLookup.java +26 -0
  36. package/platforms/android/native-api-usage.json +29 -0
  37. package/platforms/android/res/layout/collectionview.xml +5 -0
  38. package/platforms/android/ui_collectionview.aar +0 -0
  39. package/react/index.d.ts +119 -0
  40. package/react/index.js +148 -0
  41. package/react/index.js.map +1 -0
  42. package/svelte/index.d.ts +21 -0
  43. package/svelte/index.js +143 -0
  44. package/svelte/index.js.map +1 -0
  45. package/vue/component.d.ts +38 -0
  46. package/vue/component.js +104 -0
  47. package/vue/component.js.map +1 -0
  48. package/vue/index.d.ts +4 -0
  49. package/vue/index.js +12 -0
  50. package/vue/index.js.map +1 -0
package/common.js ADDED
@@ -0,0 +1,610 @@
1
+ var CollectionViewBase_1;
2
+ import { Builder, CSSType, Label, Observable, ObservableArray, PercentLength, Property, ProxyViewContainer, Trace, Utils, View, addWeakEventListener, booleanConverter, heightProperty, makeParser, makeValidator, profile, removeWeakEventListener, widthProperty } from '@nativescript/core';
3
+ export const CollectionViewTraceCategory = 'NativescriptCollectionView';
4
+ /**
5
+ * Defines the different view types that {@link RadListView} can display in various scenarios.
6
+ */
7
+ export var ListViewViewTypes;
8
+ (function (ListViewViewTypes) {
9
+ /**
10
+ * Identifies a view created using the {@link itemTemplate} value.
11
+ */
12
+ ListViewViewTypes[ListViewViewTypes["ItemView"] = 0] = "ItemView";
13
+ })(ListViewViewTypes || (ListViewViewTypes = {}));
14
+ // iOS only
15
+ export var ContentInsetAdjustmentBehavior;
16
+ (function (ContentInsetAdjustmentBehavior) {
17
+ ContentInsetAdjustmentBehavior[ContentInsetAdjustmentBehavior["Always"] = 0] = "Always";
18
+ ContentInsetAdjustmentBehavior[ContentInsetAdjustmentBehavior["Automatic"] = 1] = "Automatic";
19
+ ContentInsetAdjustmentBehavior[ContentInsetAdjustmentBehavior["Never"] = 2] = "Never";
20
+ ContentInsetAdjustmentBehavior[ContentInsetAdjustmentBehavior["ScrollableAxes"] = 3] = "ScrollableAxes";
21
+ })(ContentInsetAdjustmentBehavior || (ContentInsetAdjustmentBehavior = {}));
22
+ export var CLogTypes;
23
+ (function (CLogTypes) {
24
+ CLogTypes[CLogTypes["log"] = Trace.messageType.log] = "log";
25
+ CLogTypes[CLogTypes["info"] = Trace.messageType.info] = "info";
26
+ CLogTypes[CLogTypes["warning"] = Trace.messageType.warn] = "warning";
27
+ CLogTypes[CLogTypes["error"] = Trace.messageType.error] = "error";
28
+ })(CLogTypes || (CLogTypes = {}));
29
+ export const CLog = (type, ...args) => {
30
+ Trace.write(args.map((a) => (a && typeof a === 'object' ? a.toString() : a)).join(' '), CollectionViewTraceCategory, type);
31
+ };
32
+ const autoEffectiveRowHeight = 0;
33
+ const autoEffectiveColWidth = 0;
34
+ export var knownTemplates;
35
+ (function (knownTemplates) {
36
+ knownTemplates.itemTemplate = 'itemTemplate';
37
+ })(knownTemplates || (knownTemplates = {}));
38
+ export var knownMultiTemplates;
39
+ (function (knownMultiTemplates) {
40
+ knownMultiTemplates.itemTemplates = 'itemTemplates';
41
+ })(knownMultiTemplates || (knownMultiTemplates = {}));
42
+ function toDevicePixels(length, auto = Number.NaN, parentAvailableWidth = Number.NaN) {
43
+ if (length === 'auto') {
44
+ // tslint:disable-line
45
+ return auto;
46
+ }
47
+ if (typeof length === 'number') {
48
+ return Math.floor(Utils.layout.toDevicePixels(length));
49
+ }
50
+ if (!length) {
51
+ return auto;
52
+ }
53
+ switch (length.unit) {
54
+ case 'px':
55
+ return Math.floor(length.value);
56
+ case '%':
57
+ return Math.floor(parentAvailableWidth * length.value);
58
+ case 'dip':
59
+ default:
60
+ return Math.floor(Utils.layout.toDevicePixels(length.value));
61
+ }
62
+ }
63
+ let CollectionViewBase = CollectionViewBase_1 = class CollectionViewBase extends View {
64
+ constructor() {
65
+ super();
66
+ this._innerWidth = 0;
67
+ this._innerHeight = 0;
68
+ this._dataUpdatesSuspended = false;
69
+ this.layoutStyle = 'grid';
70
+ this.plugins = [];
71
+ // public _itemIdGenerator: (item: any, index: number, items: any) => number = (_item: any, index: number) => index;
72
+ this._itemIdGenerator = null;
73
+ this.onItemsChangedInternal = (oldValue, newValue) => {
74
+ this.onItemsChanged(oldValue, newValue);
75
+ };
76
+ this.onSpanSizeChangedInternal = (oldValue, newValue) => {
77
+ this.spanSize = newValue;
78
+ this.refresh();
79
+ };
80
+ this._isDataDirty = false;
81
+ this._defaultTemplate = {
82
+ key: 'default',
83
+ createView: () => {
84
+ if (this.itemTemplate) {
85
+ return Builder.parse(this.itemTemplate, this);
86
+ }
87
+ return undefined;
88
+ }
89
+ };
90
+ this._itemTemplatesInternal = new Map();
91
+ this._itemTemplatesInternal.set(this._defaultTemplate.key, this._defaultTemplate);
92
+ }
93
+ static registerPlugin(key, plugin) {
94
+ this.plugins[key] = plugin;
95
+ }
96
+ static registerLayoutStyle(style, generator) {
97
+ this.layoutStyles[style] = generator;
98
+ }
99
+ updateInnerSize() {
100
+ const width = this.getMeasuredWidth();
101
+ const height = this.getMeasuredHeight();
102
+ this._innerWidth = width - this.effectivePaddingLeft - this.effectivePaddingRight;
103
+ if (this.colWidth) {
104
+ let newValue = toDevicePixels(this.colWidth, autoEffectiveColWidth, this._innerWidth); // We cannot use 0 for auto as it throws for android.
105
+ if (global.isAndroid) {
106
+ newValue = Math.floor(newValue);
107
+ }
108
+ if (newValue !== this._effectiveColWidth) {
109
+ this._effectiveColWidth = newValue;
110
+ }
111
+ }
112
+ this._innerHeight = height - this.effectivePaddingTop - this.effectivePaddingBottom;
113
+ if (this.rowHeight) {
114
+ let newValue = toDevicePixels(this.rowHeight, autoEffectiveRowHeight, this._innerHeight);
115
+ if (global.isAndroid) {
116
+ newValue = Math.floor(newValue);
117
+ }
118
+ if (newValue !== this._effectiveRowHeight) {
119
+ this._effectiveRowHeight = newValue;
120
+ }
121
+ }
122
+ }
123
+ // public onLayout(left: number, top: number, right: number, bottom: number) {
124
+ // super.onLayout(left, top, right, bottom);
125
+ // // on ios and during device rotation the getMeasuredWidth and getMeasuredHeight are wrong
126
+ // // so we use left, top , right, bottom
127
+ // this.updateInnerSize();
128
+ // }
129
+ onMeasure(widthMeasureSpec, heightMeasureSpec) {
130
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
131
+ // on ios and during device rotation the getMeasuredWidth and getMeasuredHeight are wrong
132
+ // so we use left, top , right, bottom
133
+ this.updateInnerSize();
134
+ }
135
+ _prepareItem(item, index) {
136
+ const context = this.getItemAtIndex(index);
137
+ if (item) {
138
+ item.bindingContext = context;
139
+ }
140
+ return context;
141
+ }
142
+ notifyLoading(args) {
143
+ this.notify(args);
144
+ }
145
+ getItemAtIndex(index) {
146
+ // will be overriden in onItemsChangedInternal
147
+ const thisItems = this.items;
148
+ return thisItems.getItem ? thisItems.getItem(index) : thisItems[index];
149
+ }
150
+ isHorizontal() {
151
+ return this.orientation === 'horizontal';
152
+ }
153
+ computeSpanCount() {
154
+ let spanCount = 1;
155
+ if (this.isHorizontal()) {
156
+ if (this._effectiveRowHeight) {
157
+ spanCount = Math.max(Math.floor(this._innerHeight / this._effectiveRowHeight), 1) || 1;
158
+ }
159
+ }
160
+ else {
161
+ if (this._effectiveColWidth) {
162
+ spanCount = Math.max(Math.floor(this._innerWidth / this._effectiveColWidth), 1) || 1;
163
+ }
164
+ }
165
+ return spanCount;
166
+ }
167
+ _onRowHeightPropertyChanged(oldValue, newValue) {
168
+ this.refresh();
169
+ }
170
+ _onColWidthPropertyChanged(oldValue, newValue) {
171
+ this.refresh();
172
+ }
173
+ onItemViewLoaderChanged() { }
174
+ get itemViewLoader() {
175
+ return this._itemViewLoader;
176
+ }
177
+ set itemViewLoader(value) {
178
+ if (this._itemViewLoader !== value) {
179
+ this._itemViewLoader = value;
180
+ this.onItemViewLoaderChanged();
181
+ }
182
+ }
183
+ get padding() {
184
+ return this.style.padding;
185
+ }
186
+ set padding(value) {
187
+ this.style.padding = value;
188
+ }
189
+ get paddingTop() {
190
+ return this.style.paddingTop;
191
+ }
192
+ set paddingTop(value) {
193
+ this.style.paddingTop = value;
194
+ }
195
+ get paddingRight() {
196
+ return this.style.paddingRight;
197
+ }
198
+ set paddingRight(value) {
199
+ this.style.paddingRight = value;
200
+ }
201
+ get paddingBottom() {
202
+ return this.style.paddingBottom;
203
+ }
204
+ set paddingBottom(value) {
205
+ this.style.paddingBottom = value;
206
+ }
207
+ get paddingLeft() {
208
+ return this.style.paddingLeft;
209
+ }
210
+ set paddingLeft(value) {
211
+ this.style.paddingLeft = value;
212
+ }
213
+ resolveTemplateView(template) {
214
+ return Builder.parse(template, this);
215
+ }
216
+ _getDefaultItemContent() {
217
+ const lbl = new Label();
218
+ lbl['defaultItemView'] = true;
219
+ lbl.bind({
220
+ targetProperty: 'text',
221
+ sourceProperty: '$value'
222
+ });
223
+ return lbl;
224
+ }
225
+ getTemplateFromSelector(templateKey) {
226
+ const key = templateKey.toLowerCase();
227
+ if (this._itemTemplatesInternal.has(key)) {
228
+ return this._itemTemplatesInternal.get(key);
229
+ }
230
+ return this._itemTemplatesInternal.get('default');
231
+ }
232
+ getViewForViewType(viewType, templateKey) {
233
+ let newView;
234
+ if (templateKey) {
235
+ const template = this.getTemplateFromSelector(templateKey);
236
+ newView = template.createView();
237
+ }
238
+ if (!newView && this._itemViewLoader !== undefined) {
239
+ newView = this._itemViewLoader(templateKey);
240
+ }
241
+ if (newView) {
242
+ return newView;
243
+ }
244
+ let templateString;
245
+ switch (viewType) {
246
+ case ListViewViewTypes.ItemView:
247
+ templateString = this.itemTemplate;
248
+ if (templateString === undefined) {
249
+ return undefined;
250
+ // return this._getDefaultItemContent();
251
+ }
252
+ break;
253
+ }
254
+ return templateString === undefined ? undefined : this.resolveTemplateView(templateString);
255
+ }
256
+ onItemTemplateSelectorChanged(oldValue, newValue) {
257
+ if (typeof newValue === 'string') {
258
+ if (!this._itemTemplateSelectorBindable) {
259
+ this._itemTemplateSelectorBindable = new ProxyViewContainer();
260
+ }
261
+ this._itemTemplateSelectorBindable.bind({
262
+ sourceProperty: null,
263
+ targetProperty: 'templateKey',
264
+ expression: newValue
265
+ });
266
+ this._itemTemplateSelector = function (item, index, items) {
267
+ item['$index'] = index;
268
+ this._itemTemplateSelectorBindable.bindingContext = item;
269
+ return this._itemTemplateSelectorBindable.get('templateKey');
270
+ };
271
+ }
272
+ else if (typeof newValue === 'function') {
273
+ this._itemTemplateSelector = newValue;
274
+ }
275
+ }
276
+ onItemIdGeneratorChanged(oldValue, newValue) {
277
+ if (typeof newValue === 'string') {
278
+ if (!this._itemIdGeneratorBindable) {
279
+ this._itemIdGeneratorBindable = new ProxyViewContainer();
280
+ }
281
+ this._itemIdGeneratorBindable.bind({
282
+ sourceProperty: null,
283
+ targetProperty: 'itemId',
284
+ expression: newValue
285
+ });
286
+ this._itemIdGenerator = function (item, index, items) {
287
+ item['$index'] = index;
288
+ this._itemIdGeneratorBindable.bindingContext = item;
289
+ return this._itemIdGeneratorBindable.get('itemId');
290
+ };
291
+ }
292
+ else if (typeof newValue === 'function') {
293
+ this._itemIdGenerator = newValue;
294
+ }
295
+ }
296
+ onTemplateAdded(t) { }
297
+ onTemplateRemoved(key) { }
298
+ addTemplate(key, t) {
299
+ if (!t.key) {
300
+ t.key = t._key;
301
+ delete t._key;
302
+ }
303
+ this._itemTemplatesInternal.set(t.key.toLowerCase(), t);
304
+ this.onTemplateAdded(t);
305
+ }
306
+ removeTemplate(key) {
307
+ const didDelete = this._itemTemplatesInternal.delete(key.toLowerCase());
308
+ if (didDelete) {
309
+ this.onTemplateRemoved(key);
310
+ }
311
+ }
312
+ onItemTemplatesChanged(oldValue, newValue) {
313
+ this._itemTemplatesInternal = new Map();
314
+ if (newValue) {
315
+ newValue.forEach((t) => {
316
+ if (!t.key) {
317
+ t.key = t._key;
318
+ delete t._key;
319
+ }
320
+ this._itemTemplatesInternal.set(t.key, t);
321
+ });
322
+ }
323
+ if (!this._itemTemplatesInternal.has(this._defaultTemplate.key)) {
324
+ this._itemTemplatesInternal.set(this._defaultTemplate.key, this._defaultTemplate);
325
+ }
326
+ }
327
+ onItemTemplateChanged(oldValue, newValue) { }
328
+ // onItemTemplateSelectorPropertyChanged(oldValue, newValue) {
329
+ // this.onItemTemplateSelectorChanged(oldValue, newValue);
330
+ // }
331
+ onItemsChanged(oldValue, newValue) {
332
+ const getItem = newValue && newValue.getItem;
333
+ this.isItemsSourceIn = typeof getItem === 'function';
334
+ // we override the method to prevent the test on every getItem
335
+ this.getItemAtIndex = this.isItemsSourceIn ? (index) => this.items.getItem(index) : (index) => this.items[index];
336
+ if (oldValue instanceof Observable) {
337
+ removeWeakEventListener(oldValue, ObservableArray.changeEvent, this.onSourceCollectionChangedInternal, this);
338
+ }
339
+ if (newValue instanceof Observable) {
340
+ addWeakEventListener(newValue, ObservableArray.changeEvent, this.onSourceCollectionChangedInternal, this);
341
+ }
342
+ this.refresh();
343
+ }
344
+ onItemTemplatesPropertyChanged(oldValue, newValue) {
345
+ this.onItemTemplatesChanged(oldValue, newValue);
346
+ }
347
+ onItemTemplatePropertyChanged(oldValue, newValue) {
348
+ this.onItemTemplateChanged(oldValue, newValue);
349
+ }
350
+ onLoaded() {
351
+ super.onLoaded();
352
+ if (this._isDataDirty && this._effectiveColWidth !== undefined && this._effectiveRowHeight !== undefined) {
353
+ this.refresh();
354
+ }
355
+ }
356
+ onSourceCollectionChanged(event) {
357
+ this.refresh();
358
+ }
359
+ onSourceCollectionChangedInternal(event) {
360
+ if (this._dataUpdatesSuspended === false) {
361
+ this.onSourceCollectionChanged(event);
362
+ }
363
+ }
364
+ // onItemsChanged(oldValue, newValue) {
365
+ // this.onItemsChangedInternal(oldValue, newValue);
366
+ // }
367
+ [widthProperty.getDefault]() {
368
+ return '100%';
369
+ }
370
+ [heightProperty.getDefault]() {
371
+ return '100%';
372
+ }
373
+ suspendUpdates() {
374
+ this._dataUpdatesSuspended = true;
375
+ }
376
+ updatesSuspended() {
377
+ return this._dataUpdatesSuspended;
378
+ }
379
+ resumeUpdates(refresh) {
380
+ this._dataUpdatesSuspended = false;
381
+ if (refresh === true) {
382
+ this.refresh();
383
+ }
384
+ }
385
+ _callItemReorderedEvent(oldPosition, newPosition, item) {
386
+ const args = {
387
+ eventName: CollectionViewBase_1.itemReorderedEvent,
388
+ object: this,
389
+ index: oldPosition,
390
+ item,
391
+ data: { targetIndex: newPosition },
392
+ view: this.draggingView
393
+ };
394
+ this.notify(args);
395
+ this.draggingView = null;
396
+ }
397
+ _reorderItemInSource(oldPosition, newPosition, callEvents = true) {
398
+ this.suspendUpdates();
399
+ const ownerSource = this.items;
400
+ const item = this.getItemAtIndex(oldPosition);
401
+ ownerSource.splice(oldPosition, 1);
402
+ ownerSource.splice(newPosition, 0, item);
403
+ this.resumeUpdates(false);
404
+ if (callEvents) {
405
+ this._callItemReorderedEvent(oldPosition, newPosition, item);
406
+ }
407
+ }
408
+ shouldMoveItemAtIndex(index) {
409
+ if (!this.reorderEnabled) {
410
+ return false;
411
+ }
412
+ const item = this.getItemAtIndex(index);
413
+ const view = (this.draggingView = this.getViewForItemAtIndex(index));
414
+ let args = {
415
+ returnValue: true,
416
+ eventName: CollectionViewBase_1.itemReorderStartingEvent,
417
+ object: this,
418
+ index,
419
+ item,
420
+ view
421
+ };
422
+ this.notify(args);
423
+ if (!args.returnValue) {
424
+ return false;
425
+ }
426
+ args = {
427
+ eventName: CollectionViewBase_1.itemReorderStartedEvent,
428
+ object: this,
429
+ index,
430
+ item,
431
+ view
432
+ };
433
+ this.notify(args);
434
+ return true;
435
+ }
436
+ };
437
+ CollectionViewBase.itemLoadingEvent = 'itemLoading';
438
+ CollectionViewBase.itemRecyclingEvent = 'itemRecycling';
439
+ CollectionViewBase.itemDisposingEvent = 'itemDisposing';
440
+ CollectionViewBase.bindedEvent = 'binded';
441
+ CollectionViewBase.scrollEvent = 'scroll';
442
+ CollectionViewBase.scrollStartEvent = 'scrollStart';
443
+ CollectionViewBase.scrollEndEvent = 'scrollEnd';
444
+ CollectionViewBase.itemTapEvent = 'itemTap';
445
+ CollectionViewBase.itemHighlightEvent = 'itemHighlight';
446
+ CollectionViewBase.itemHighlightEndEvent = 'itemHighlightEnd';
447
+ CollectionViewBase.displayItemEvent = 'displayItem';
448
+ CollectionViewBase.itemReorderedEvent = 'itemReordered';
449
+ CollectionViewBase.itemReorderStartingEvent = 'itemReorderStarting';
450
+ CollectionViewBase.itemReorderStartedEvent = 'itemReorderStarted';
451
+ CollectionViewBase.loadMoreItemsEvent = 'loadMoreItems';
452
+ CollectionViewBase.dataPopulatedEvent = 'dataPopulated';
453
+ CollectionViewBase.knownFunctions = ['itemTemplateSelector', 'itemIdGenerator', 'spanSize']; // See component-builder.ts isKnownFunction
454
+ CollectionViewBase.plugins = {};
455
+ CollectionViewBase.layoutStyles = {};
456
+ __decorate([
457
+ profile,
458
+ __metadata("design:type", Function),
459
+ __metadata("design:paramtypes", [View, Number]),
460
+ __metadata("design:returntype", void 0)
461
+ ], CollectionViewBase.prototype, "_prepareItem", null);
462
+ __decorate([
463
+ profile,
464
+ __metadata("design:type", Function),
465
+ __metadata("design:paramtypes", [Object]),
466
+ __metadata("design:returntype", void 0)
467
+ ], CollectionViewBase.prototype, "notifyLoading", null);
468
+ CollectionViewBase = CollectionViewBase_1 = __decorate([
469
+ CSSType('CollectionView'),
470
+ __metadata("design:paramtypes", [])
471
+ ], CollectionViewBase);
472
+ export { CollectionViewBase };
473
+ const defaultRowHeight = 'auto';
474
+ export const rowHeightProperty = new Property({
475
+ name: 'rowHeight',
476
+ defaultValue: defaultRowHeight,
477
+ equalityComparer: PercentLength.equals,
478
+ valueConverter: PercentLength.parse,
479
+ valueChanged: (target, oldValue, newValue) => {
480
+ target._effectiveRowHeight = PercentLength.toDevicePixels(newValue, autoEffectiveRowHeight, target._innerHeight);
481
+ target._onRowHeightPropertyChanged(oldValue, newValue);
482
+ }
483
+ });
484
+ rowHeightProperty.register(CollectionViewBase);
485
+ const defaultColWidth = { unit: '%', value: 1 };
486
+ export const colWidthProperty = new Property({
487
+ name: 'colWidth',
488
+ defaultValue: defaultColWidth,
489
+ equalityComparer: PercentLength.equals,
490
+ valueConverter: PercentLength.parse,
491
+ valueChanged: (target, oldValue, newValue) => {
492
+ if (target._innerWidth !== 0) {
493
+ target._effectiveColWidth = PercentLength.toDevicePixels(newValue, autoEffectiveColWidth, target._innerWidth);
494
+ }
495
+ target._onColWidthPropertyChanged(oldValue, newValue);
496
+ }
497
+ });
498
+ colWidthProperty.register(CollectionViewBase);
499
+ const converter = makeParser(makeValidator('horizontal', 'vertical'));
500
+ export const orientationProperty = new Property({
501
+ name: 'orientation',
502
+ defaultValue: 'vertical',
503
+ affectsLayout: true,
504
+ valueChanged: (target, oldValue, newValue) => {
505
+ target.refresh();
506
+ },
507
+ valueConverter: converter
508
+ });
509
+ orientationProperty.register(CollectionViewBase);
510
+ export const itemTemplateProperty = new Property({
511
+ name: 'itemTemplate',
512
+ valueChanged(target, oldValue, newValue) {
513
+ target.onItemTemplatePropertyChanged(oldValue, newValue);
514
+ }
515
+ });
516
+ itemTemplateProperty.register(CollectionViewBase);
517
+ export const itemTemplatesProperty = new Property({
518
+ name: 'itemTemplates',
519
+ valueConverter: (value) => {
520
+ if (typeof value === 'string') {
521
+ return Builder.parseMultipleTemplates(value);
522
+ }
523
+ return value;
524
+ },
525
+ valueChanged(target, oldValue, newValue) {
526
+ target.onItemTemplatesPropertyChanged(oldValue, newValue);
527
+ }
528
+ });
529
+ itemTemplatesProperty.register(CollectionViewBase);
530
+ export const itemTemplateSelectorProperty = new Property({
531
+ name: 'itemTemplateSelector',
532
+ defaultValue: undefined,
533
+ valueChanged(target, oldValue, newValue) {
534
+ target.onItemTemplateSelectorChanged(oldValue, newValue);
535
+ }
536
+ });
537
+ itemTemplateSelectorProperty.register(CollectionViewBase);
538
+ export const itemIdGeneratorProperty = new Property({
539
+ name: 'itemIdGenerator',
540
+ defaultValue: undefined,
541
+ valueChanged(target, oldValue, newValue) {
542
+ target.onItemIdGeneratorChanged(oldValue, newValue);
543
+ }
544
+ });
545
+ itemIdGeneratorProperty.register(CollectionViewBase);
546
+ export const itemsProperty = new Property({
547
+ name: 'items',
548
+ defaultValue: undefined,
549
+ valueChanged(target, oldValue, newValue) {
550
+ target.onItemsChangedInternal(oldValue, newValue);
551
+ }
552
+ });
553
+ itemsProperty.register(CollectionViewBase);
554
+ export const spanSizeProperty = new Property({
555
+ name: 'spanSize',
556
+ defaultValue: undefined,
557
+ valueChanged(target, oldValue, newValue) {
558
+ target.onSpanSizeChangedInternal(oldValue, newValue);
559
+ }
560
+ });
561
+ spanSizeProperty.register(CollectionViewBase);
562
+ export const isScrollEnabledProperty = new Property({
563
+ name: 'isScrollEnabled',
564
+ defaultValue: true,
565
+ valueConverter: booleanConverter
566
+ });
567
+ isScrollEnabledProperty.register(CollectionViewBase);
568
+ export const isBounceEnabledProperty = new Property({
569
+ name: 'isBounceEnabled',
570
+ defaultValue: true,
571
+ valueConverter: booleanConverter
572
+ });
573
+ isBounceEnabledProperty.register(CollectionViewBase);
574
+ export const reverseLayoutProperty = new Property({
575
+ name: 'reverseLayout',
576
+ defaultValue: false,
577
+ valueConverter: booleanConverter
578
+ });
579
+ reverseLayoutProperty.register(CollectionViewBase);
580
+ export const loadMoreThresholdProperty = new Property({
581
+ name: 'loadMoreThreshold',
582
+ defaultValue: 1,
583
+ valueConverter: (v) => parseInt(v, 10)
584
+ });
585
+ loadMoreThresholdProperty.register(CollectionViewBase);
586
+ export const reorderingEnabledProperty = new Property({
587
+ name: 'reorderEnabled',
588
+ defaultValue: false,
589
+ valueConverter: booleanConverter
590
+ });
591
+ reorderingEnabledProperty.register(CollectionViewBase);
592
+ export const reorderLongPressEnabledProperty = new Property({
593
+ name: 'reorderLongPressEnabled',
594
+ defaultValue: false,
595
+ valueConverter: booleanConverter
596
+ });
597
+ reorderLongPressEnabledProperty.register(CollectionViewBase);
598
+ export const scrollBarIndicatorVisibleProperty = new Property({
599
+ name: 'scrollBarIndicatorVisible',
600
+ defaultValue: true,
601
+ valueConverter: booleanConverter
602
+ });
603
+ scrollBarIndicatorVisibleProperty.register(CollectionViewBase);
604
+ export const autoReloadItemOnLayoutProperty = new Property({
605
+ name: 'autoReloadItemOnLayout',
606
+ defaultValue: false,
607
+ valueConverter: booleanConverter
608
+ });
609
+ autoReloadItemOnLayoutProperty.register(CollectionViewBase);
610
+ //# sourceMappingURL=common.js.map
package/common.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../packages/ui-collectionview/common.ts"],"names":[],"mappings":"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"}