uicore-ts 1.1.379 → 1.1.381

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.
@@ -3,6 +3,7 @@ import { LooseObject, UIView } from "./UIView";
3
3
  export declare class UINativeScrollView extends UIView {
4
4
  animationDuration: number;
5
5
  private _contentOffset?;
6
+ broadcastsPageDidScrollInSubtree: boolean;
6
7
  constructor(elementID?: string, viewHTMLElement?: (HTMLElement & LooseObject) | null | undefined);
7
8
  didScrollToPosition(offsetPosition: UIPoint): void;
8
9
  get scrollsX(): boolean;
@@ -22,11 +22,13 @@ __export(UINativeScrollView_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(UINativeScrollView_exports);
24
24
  var import_UIPoint = require("./UIPoint");
25
+ var import_UIObject = require("./UIObject");
25
26
  var import_UIView = require("./UIView");
26
27
  class UINativeScrollView extends import_UIView.UIView {
27
28
  constructor(elementID, viewHTMLElement) {
28
29
  super(elementID, viewHTMLElement);
29
30
  this.animationDuration = 0;
31
+ this.broadcastsPageDidScrollInSubtree = import_UIObject.YES;
30
32
  this.style.cssText = this.style.cssText + "-webkit-overflow-scrolling: touch;";
31
33
  this.style.overflow = "auto";
32
34
  this.viewHTMLElement.addEventListener("scroll", () => {
@@ -41,10 +43,12 @@ class UINativeScrollView extends import_UIView.UIView {
41
43
  );
42
44
  this._contentOffset = new import_UIPoint.UIPoint(this.viewHTMLElement.scrollLeft, this.viewHTMLElement.scrollTop);
43
45
  this.didScrollToPosition(this._contentOffset);
44
- this.broadcastEventInSubtree({
45
- name: import_UIView.UIView.broadcastEventName.PageDidScroll,
46
- parameters: void 0
47
- });
46
+ if (this.broadcastsPageDidScrollInSubtree) {
47
+ this.broadcastEventInSubtree({
48
+ name: import_UIView.UIView.broadcastEventName.PageDidScroll,
49
+ parameters: void 0
50
+ });
51
+ }
48
52
  });
49
53
  }
50
54
  didScrollToPosition(offsetPosition) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../scripts/UINativeScrollView.ts"],
4
- "sourcesContent": ["import { UIPoint } from \"./UIPoint\"\nimport { LooseObject, UIView } from \"./UIView\"\n\n\nexport class UINativeScrollView extends UIView {\n \n animationDuration = 0\n private _contentOffset?: UIPoint\n \n constructor(elementID?: string, viewHTMLElement?: (HTMLElement & LooseObject) | null | undefined) {\n \n super(elementID, viewHTMLElement)\n \n this.style.cssText = this.style.cssText + \"-webkit-overflow-scrolling: touch;\"\n this.style.overflow = \"auto\"\n \n this.viewHTMLElement.addEventListener(\"scroll\", () => {\n \n this.resizingHandles.forEach(\n handle => handle.style.transform = (\"\" + handle.style.transform).replace(\n new RegExp(\"translateX\\\\(([^)]+)\\\\)\"),\n \"\"\n ).replace(\n new RegExp(\"translateY\\\\(([^)]+)\\\\)\"),\n \"\"\n ) + \"translateX(\" + this.viewHTMLElement.scrollLeft + \"px)\" + \" translateY(\" + this.viewHTMLElement.scrollTop + \"px)\"\n )\n \n this._contentOffset = new UIPoint(this.viewHTMLElement.scrollLeft, this.viewHTMLElement.scrollTop)\n \n this.didScrollToPosition(this._contentOffset)\n \n this.broadcastEventInSubtree({\n name: UIView.broadcastEventName.PageDidScroll,\n parameters: undefined\n })\n \n })\n \n }\n \n \n didScrollToPosition(offsetPosition: UIPoint) {\n \n \n }\n \n \n get scrollsX() {\n const result = (this.style.overflowX == \"scroll\")\n return result\n }\n \n set scrollsX(scrolls: boolean) {\n if (scrolls) {\n this.style.overflowX = \"scroll\"\n }\n else {\n this.style.overflowX = \"hidden\"\n }\n }\n \n \n get scrollsY() {\n const result = (this.style.overflowY == \"scroll\")\n return result\n }\n \n set scrollsY(scrolls: boolean) {\n if (scrolls) {\n this.style.overflowY = \"scroll\"\n }\n else {\n this.style.overflowY = \"hidden\"\n }\n }\n \n \n get contentOffset() {\n if (!this._contentOffset) {\n this._contentOffset = new UIPoint(this.viewHTMLElement.scrollLeft, this.viewHTMLElement.scrollTop)\n }\n return this._contentOffset\n }\n \n \n set contentOffset(offsetPoint: UIPoint) {\n \n this._contentOffset = offsetPoint.copy()\n \n if (this.animationDuration) {\n \n this.scrollXTo(this.viewHTMLElement, offsetPoint.x, this.animationDuration)\n this.scrollYTo(this.viewHTMLElement, offsetPoint.y, this.animationDuration)\n \n return\n \n }\n \n this.viewHTMLElement.scrollLeft = offsetPoint.x\n this.viewHTMLElement.scrollTop = offsetPoint.y\n \n }\n \n \n scrollToBottom() {\n \n this.contentOffset = new UIPoint(this.contentOffset.x, this.scrollSize.height - this.frame.height)\n \n }\n \n scrollToTop() {\n \n this.contentOffset = new UIPoint(this.contentOffset.x, 0)\n \n }\n \n get isScrolledToBottom() {\n \n return this.contentOffset.isEqualTo(new UIPoint(this.contentOffset.x, this.scrollSize.height -\n this.frame.height))\n \n }\n \n get isScrolledToTop() {\n \n return this.contentOffset.isEqualTo(new UIPoint(this.contentOffset.x, 0))\n \n }\n \n \n scrollYTo(element: HTMLElement & LooseObject, to: number, duration: number) {\n \n duration = duration * 1000\n \n const start = element.scrollTop\n const change = to - start\n const increment = 10\n \n const animateScroll = (elapsedTime: number) => {\n elapsedTime += increment\n const position = this.easeInOut(elapsedTime, start, change, duration)\n element.scrollTop = position\n if (elapsedTime < duration) {\n setTimeout(function () {\n animateScroll(elapsedTime)\n }, increment)\n }\n }\n \n animateScroll(0)\n }\n \n scrollXTo(element: HTMLElement & LooseObject, to: number, duration: number) {\n \n duration = duration * 1000\n \n const start = element.scrollTop\n const change = to - start\n const increment = 10\n \n const animateScroll = (elapsedTime: number) => {\n elapsedTime += increment\n const position = this.easeInOut(elapsedTime, start, change, duration)\n element.scrollLeft = position\n if (elapsedTime < duration) {\n setTimeout(function () {\n animateScroll(elapsedTime)\n }, increment)\n }\n }\n \n animateScroll(0)\n }\n \n easeInOut(currentTime: number, start: number, change: number, duration: number) {\n currentTime /= duration / 2\n if (currentTime < 1) {\n return change / 2 * currentTime * currentTime + start\n }\n currentTime -= 1\n return -change / 2 * (currentTime * (currentTime - 2) - 1) + start\n }\n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { UIPoint } from \"./UIPoint\"\nimport { YES } from \"./UIObject\"\nimport { LooseObject, UIView } from \"./UIView\"\n\n\nexport class UINativeScrollView extends UIView {\n \n animationDuration = 0\n private _contentOffset?: UIPoint\n broadcastsPageDidScrollInSubtree = YES\n \n constructor(elementID?: string, viewHTMLElement?: (HTMLElement & LooseObject) | null | undefined) {\n \n super(elementID, viewHTMLElement)\n \n this.style.cssText = this.style.cssText + \"-webkit-overflow-scrolling: touch;\"\n this.style.overflow = \"auto\"\n \n this.viewHTMLElement.addEventListener(\"scroll\", () => {\n \n this.resizingHandles.forEach(\n handle => handle.style.transform = (\"\" + handle.style.transform).replace(\n new RegExp(\"translateX\\\\(([^)]+)\\\\)\"),\n \"\"\n ).replace(\n new RegExp(\"translateY\\\\(([^)]+)\\\\)\"),\n \"\"\n ) + \"translateX(\" + this.viewHTMLElement.scrollLeft + \"px)\" + \" translateY(\" + this.viewHTMLElement.scrollTop + \"px)\"\n )\n \n this._contentOffset = new UIPoint(this.viewHTMLElement.scrollLeft, this.viewHTMLElement.scrollTop)\n \n this.didScrollToPosition(this._contentOffset)\n \n if (this.broadcastsPageDidScrollInSubtree) {\n this.broadcastEventInSubtree({\n name: UIView.broadcastEventName.PageDidScroll,\n parameters: undefined\n })\n }\n \n })\n \n }\n \n \n didScrollToPosition(offsetPosition: UIPoint) {\n \n \n }\n \n \n get scrollsX() {\n const result = (this.style.overflowX == \"scroll\")\n return result\n }\n \n set scrollsX(scrolls: boolean) {\n if (scrolls) {\n this.style.overflowX = \"scroll\"\n }\n else {\n this.style.overflowX = \"hidden\"\n }\n }\n \n \n get scrollsY() {\n const result = (this.style.overflowY == \"scroll\")\n return result\n }\n \n set scrollsY(scrolls: boolean) {\n if (scrolls) {\n this.style.overflowY = \"scroll\"\n }\n else {\n this.style.overflowY = \"hidden\"\n }\n }\n \n \n get contentOffset() {\n if (!this._contentOffset) {\n this._contentOffset = new UIPoint(this.viewHTMLElement.scrollLeft, this.viewHTMLElement.scrollTop)\n }\n return this._contentOffset\n }\n \n \n set contentOffset(offsetPoint: UIPoint) {\n \n this._contentOffset = offsetPoint.copy()\n \n if (this.animationDuration) {\n \n this.scrollXTo(this.viewHTMLElement, offsetPoint.x, this.animationDuration)\n this.scrollYTo(this.viewHTMLElement, offsetPoint.y, this.animationDuration)\n \n return\n \n }\n \n this.viewHTMLElement.scrollLeft = offsetPoint.x\n this.viewHTMLElement.scrollTop = offsetPoint.y\n \n }\n \n \n scrollToBottom() {\n \n this.contentOffset = new UIPoint(this.contentOffset.x, this.scrollSize.height - this.frame.height)\n \n }\n \n scrollToTop() {\n \n this.contentOffset = new UIPoint(this.contentOffset.x, 0)\n \n }\n \n get isScrolledToBottom() {\n \n return this.contentOffset.isEqualTo(new UIPoint(this.contentOffset.x, this.scrollSize.height -\n this.frame.height))\n \n }\n \n get isScrolledToTop() {\n \n return this.contentOffset.isEqualTo(new UIPoint(this.contentOffset.x, 0))\n \n }\n \n \n scrollYTo(element: HTMLElement & LooseObject, to: number, duration: number) {\n \n duration = duration * 1000\n \n const start = element.scrollTop\n const change = to - start\n const increment = 10\n \n const animateScroll = (elapsedTime: number) => {\n elapsedTime += increment\n const position = this.easeInOut(elapsedTime, start, change, duration)\n element.scrollTop = position\n if (elapsedTime < duration) {\n setTimeout(function () {\n animateScroll(elapsedTime)\n }, increment)\n }\n }\n \n animateScroll(0)\n }\n \n scrollXTo(element: HTMLElement & LooseObject, to: number, duration: number) {\n \n duration = duration * 1000\n \n const start = element.scrollTop\n const change = to - start\n const increment = 10\n \n const animateScroll = (elapsedTime: number) => {\n elapsedTime += increment\n const position = this.easeInOut(elapsedTime, start, change, duration)\n element.scrollLeft = position\n if (elapsedTime < duration) {\n setTimeout(function () {\n animateScroll(elapsedTime)\n }, increment)\n }\n }\n \n animateScroll(0)\n }\n \n easeInOut(currentTime: number, start: number, change: number, duration: number) {\n currentTime /= duration / 2\n if (currentTime < 1) {\n return change / 2 * currentTime * currentTime + start\n }\n currentTime -= 1\n return -change / 2 * (currentTime * (currentTime - 2) - 1) + start\n }\n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -92,6 +92,7 @@ class UITableView extends import_UINativeScrollView.UINativeScrollView {
92
92
  this._fullHeightView.userInteractionEnabled = import_UIObject.NO;
93
93
  this.addSubview(this._fullHeightView);
94
94
  this.style.overflowAnchor = "none";
95
+ this.broadcastsPageDidScrollInSubtree = import_UIObject.NO;
95
96
  this.scrollsX = import_UIObject.NO;
96
97
  this._setupViewportScrollAndResizeHandlersIfNeeded();
97
98
  this._setupGridAccessibility();
@@ -282,7 +283,7 @@ class UITableView extends import_UINativeScrollView.UINativeScrollView {
282
283
  const previousCellIndex = this._keyboardFocusedCellIndex;
283
284
  if (rowIndex >= 0 && rowIndex !== previousRowIndex) {
284
285
  const row = this.visibleRowWithIndex(rowIndex);
285
- if (row && typeof row.firstButtonCellIndex === "function") {
286
+ if (row == null ? void 0 : row.firstButtonCellIndex) {
286
287
  cellIndex = row.firstButtonCellIndex();
287
288
  }
288
289
  }
@@ -315,19 +316,20 @@ class UITableView extends import_UINativeScrollView.UINativeScrollView {
315
316
  return;
316
317
  }
317
318
  const row = this.visibleRowWithIndex(rowIndex);
318
- if (row && typeof row.setKeyboardFocusedCellIndex === "function") {
319
+ if (row == null ? void 0 : row.setKeyboardFocusedCellIndex) {
319
320
  row.setKeyboardFocusedCellIndex(void 0);
320
321
  }
321
322
  }
322
323
  _applyKeyboardFocusToVisibleRows(clearAll = false) {
323
324
  this._visibleRows.forEach((row) => {
324
- if (typeof row.setKeyboardFocusedCellIndex !== "function") {
325
+ const keyboardNavigableRow = row;
326
+ if (!keyboardNavigableRow.setKeyboardFocusedCellIndex) {
325
327
  return;
326
328
  }
327
- if (clearAll || row._UITableViewRowIndex !== this._keyboardFocusedRowIndex) {
328
- row.setKeyboardFocusedCellIndex(void 0);
329
+ if (clearAll || keyboardNavigableRow._UITableViewRowIndex !== this._keyboardFocusedRowIndex) {
330
+ keyboardNavigableRow.setKeyboardFocusedCellIndex(void 0);
329
331
  } else {
330
- row.setKeyboardFocusedCellIndex(this._keyboardFocusedCellIndex);
332
+ keyboardNavigableRow.setKeyboardFocusedCellIndex(this._keyboardFocusedCellIndex);
331
333
  }
332
334
  });
333
335
  }
@@ -802,7 +804,7 @@ class UITableView extends import_UINativeScrollView.UINativeScrollView {
802
804
  }
803
805
  this._reconcileVisibleRowsWithIndexes(visibleIndexes);
804
806
  this._layoutAllRows();
805
- if (Math.abs(this.viewHTMLElement.scrollTop - workingScrollTop) >= 0.01) {
807
+ if (Math.abs(viewportState.scrollTop - workingScrollTop) >= 0.01) {
806
808
  this.viewHTMLElement.scrollTop = workingScrollTop;
807
809
  }
808
810
  this._layoutVisibleRowSubtrees();
@@ -863,13 +865,17 @@ class UITableView extends import_UINativeScrollView.UINativeScrollView {
863
865
  this._isPreparingRowsForMeasurement = import_UIObject.YES;
864
866
  try {
865
867
  this._visibleRows.forEach((row) => {
866
- if (row._UITableViewRequiresLayout) {
868
+ const shouldLayoutRowSubtree = row._UITableViewRequiresLayout || row.needsLayout;
869
+ if (shouldLayoutRowSubtree) {
867
870
  row.setNeedsLayout();
871
+ row.forEachViewInSubtree((view) => {
872
+ const frame = view.isVirtualLayouting ? view._frameForVirtualLayouting : view._frame;
873
+ if (frame) {
874
+ view._lastReportedHeight = frame.height.integerValue;
875
+ }
876
+ view.layoutIfNeeded();
877
+ });
868
878
  }
869
- row.forEachViewInSubtree((view) => {
870
- view._lastReportedHeight = view.frame.height.integerValue;
871
- view.layoutIfNeeded();
872
- });
873
879
  row._UITableViewRequiresLayout = import_UIObject.NO;
874
880
  if ((0, import_UIObject.IS_DEFINED)(row._UITableViewWasHiddenBeforeLayout)) {
875
881
  row.hidden = row._UITableViewWasHiddenBeforeLayout;
@@ -933,7 +939,7 @@ class UITableView extends import_UINativeScrollView.UINativeScrollView {
933
939
  view._UITableViewRequiresLayout = import_UIObject.YES;
934
940
  this._visibleRows.push(view);
935
941
  if (view.superview !== this) {
936
- this.addSubview(view);
942
+ this.addSubview(view, void 0, import_UIObject.NO);
937
943
  }
938
944
  view.tabIndex = -1;
939
945
  view.forEachViewInSubtree((subview) => {
@@ -1021,9 +1027,7 @@ class UITableView extends import_UINativeScrollView.UINativeScrollView {
1021
1027
  }
1022
1028
  didScrollToPosition(offsetPosition) {
1023
1029
  super.didScrollToPosition(offsetPosition);
1024
- this.forEachViewInSubtree((view) => {
1025
- view._isPointerValid = import_UIObject.NO;
1026
- });
1030
+ import_UIView.UIView._invalidateViewsWithValidPointers();
1027
1031
  this._scheduleDrawVisibleRows();
1028
1032
  }
1029
1033
  willMoveToSuperview(superview) {
@@ -1105,14 +1109,16 @@ class UITableView extends import_UINativeScrollView.UINativeScrollView {
1105
1109
  super.clearIntrinsicSizeCache();
1106
1110
  }
1107
1111
  _layoutAllRows(positions = this._rowPositions) {
1112
+ var _a;
1108
1113
  const rowBounds = this.contentBounds.rectangleWithInsets(this.sidePadding, this.sidePadding, 0, 0);
1109
1114
  const sortedRows = this._visibleRows.sort(
1110
1115
  (rowA, rowB) => rowA._UITableViewRowIndex - rowB._UITableViewRowIndex
1111
1116
  );
1112
1117
  this._isAssigningRowFrames = import_UIObject.YES;
1113
1118
  try {
1114
- sortedRows.forEach((row, index) => {
1115
- var _a, _b, _c;
1119
+ let nextSiblingElement = this._fullHeightView.viewHTMLElement;
1120
+ for (let index = sortedRows.length - 1; index >= 0; index--) {
1121
+ const row = sortedRows[index];
1116
1122
  const frame = rowBounds.copy();
1117
1123
  const positionObject = this._rowPositionWithIndex(row._UITableViewRowIndex, positions);
1118
1124
  frame.min.y = positionObject.topY;
@@ -1120,11 +1126,11 @@ class UITableView extends import_UINativeScrollView.UINativeScrollView {
1120
1126
  row.frame = frame;
1121
1127
  row._lastReportedHeight = frame.height.integerValue;
1122
1128
  row.viewHTMLElement.setAttribute("aria-rowindex", String(((_a = row._UITableViewRowIndex) != null ? _a : 0) + 1));
1123
- const nextSiblingElement = (_c = (_b = sortedRows[index + 1]) == null ? void 0 : _b.viewHTMLElement) != null ? _c : this._fullHeightView.viewHTMLElement;
1124
1129
  if (row.viewHTMLElement.nextSibling !== nextSiblingElement) {
1125
1130
  this.viewHTMLElement.insertBefore(row.viewHTMLElement, nextSiblingElement);
1126
1131
  }
1127
- });
1132
+ nextSiblingElement = row.viewHTMLElement;
1133
+ }
1128
1134
  } finally {
1129
1135
  this._isAssigningRowFrames = import_UIObject.NO;
1130
1136
  }