jsbox-cview 1.5.21 → 1.5.23

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 (114) hide show
  1. package/components/alert/input-alert.ts +5 -7
  2. package/components/alert/login-alert.ts +7 -7
  3. package/components/alert/plain-alert.ts +3 -3
  4. package/components/alert/uialert.ts +14 -6
  5. package/components/base.ts +12 -8
  6. package/components/custom-navigation-bar.ts +106 -88
  7. package/components/dialogs/dialog-sheet.ts +12 -8
  8. package/components/dialogs/form-dialog.ts +29 -16
  9. package/components/dialogs/list-dialog.ts +26 -20
  10. package/components/dialogs/text-dialog.ts +13 -8
  11. package/components/dynamic-contextmenu-view.ts +57 -25
  12. package/components/dynamic-itemsize-matrix.ts +45 -40
  13. package/components/dynamic-preference-listview.ts +135 -117
  14. package/components/dynamic-rowheight-list.ts +32 -20
  15. package/components/enhanced-imageview.ts +37 -28
  16. package/components/flowlayout.ts +61 -42
  17. package/components/image-pager.ts +33 -29
  18. package/components/page-control.ts +15 -11
  19. package/components/pageviewer-titlebar.ts +29 -22
  20. package/components/pageviewer.ts +33 -23
  21. package/components/refresh-button.ts +8 -8
  22. package/components/rotating-view.ts +24 -20
  23. package/components/searchbar.ts +113 -65
  24. package/components/sheet.ts +23 -17
  25. package/components/single-views.ts +228 -72
  26. package/components/spinners/loading-dual-ring.ts +21 -15
  27. package/components/spinners/loading-wedges.ts +24 -18
  28. package/components/spinners/spinner-androidstyle.ts +58 -47
  29. package/components/static-preference-listview.ts +197 -151
  30. package/components/symbol-button.ts +23 -22
  31. package/components/tabbar.ts +80 -64
  32. package/controller/base-controller.ts +42 -35
  33. package/controller/controller-router.ts +4 -4
  34. package/controller/pageviewer-controller.ts +41 -27
  35. package/controller/presented-page-controller.ts +27 -15
  36. package/controller/splitview-controller.ts +77 -44
  37. package/controller/tabbar-controller.ts +33 -23
  38. package/dist/components/alert/input-alert.js +3 -3
  39. package/dist/components/alert/login-alert.js +5 -5
  40. package/dist/components/alert/plain-alert.js +1 -1
  41. package/dist/components/alert/uialert.js +4 -4
  42. package/dist/components/base.js +2 -1
  43. package/dist/components/custom-navigation-bar.js +61 -59
  44. package/dist/components/dialogs/dialog-sheet.js +5 -5
  45. package/dist/components/dialogs/form-dialog.js +2 -2
  46. package/dist/components/dialogs/list-dialog.js +15 -15
  47. package/dist/components/dialogs/text-dialog.js +6 -6
  48. package/dist/components/dynamic-contextmenu-view.js +11 -8
  49. package/dist/components/dynamic-itemsize-matrix.js +15 -13
  50. package/dist/components/dynamic-preference-listview.js +95 -90
  51. package/dist/components/dynamic-rowheight-list.js +7 -6
  52. package/dist/components/enhanced-imageview.js +18 -16
  53. package/dist/components/flowlayout.js +15 -14
  54. package/dist/components/image-pager.js +22 -21
  55. package/dist/components/page-control.js +2 -2
  56. package/dist/components/pageviewer-titlebar.js +20 -17
  57. package/dist/components/pageviewer.js +13 -12
  58. package/dist/components/refresh-button.js +5 -5
  59. package/dist/components/rotating-view.js +11 -11
  60. package/dist/components/searchbar.js +53 -41
  61. package/dist/components/sheet.js +4 -4
  62. package/dist/components/single-views.js +68 -68
  63. package/dist/components/spinners/loading-dual-ring.js +10 -10
  64. package/dist/components/spinners/loading-wedges.js +15 -15
  65. package/dist/components/spinners/spinner-androidstyle.js +45 -43
  66. package/dist/components/static-preference-listview.js +101 -102
  67. package/dist/components/symbol-button.js +14 -13
  68. package/dist/components/tabbar.js +54 -50
  69. package/dist/controller/base-controller.js +17 -14
  70. package/dist/controller/pageviewer-controller.js +13 -11
  71. package/dist/controller/presented-page-controller.js +6 -4
  72. package/dist/controller/splitview-controller.js +48 -31
  73. package/dist/controller/tabbar-controller.js +13 -12
  74. package/dist/test/custom-navigation-bar.js +11 -9
  75. package/dist/test/dynamic-contextmenu-view.js +16 -14
  76. package/dist/test/dynamic-itemsize-matrix.js +18 -17
  77. package/dist/test/dynamic-preference-listview.js +29 -29
  78. package/dist/test/flowlayout.js +33 -27
  79. package/dist/test/form-dialog.js +15 -13
  80. package/dist/test/pageviewer-controller.js +10 -7
  81. package/dist/test/pageviewer-titlebar.js +3 -3
  82. package/dist/test/pageviewer.js +16 -7
  83. package/dist/test/refresh-button.js +4 -4
  84. package/dist/test/searchbar.js +7 -7
  85. package/dist/test/splitview-controller.js +14 -11
  86. package/dist/test/static-preference-listview.js +29 -30
  87. package/dist/test/tabbar-controller.js +15 -12
  88. package/dist/utils/colors.js +1 -2
  89. package/dist/utils/l10n.js +28 -28
  90. package/dist/utils/path.js +2 -2
  91. package/dist/utils/rect.js +30 -8
  92. package/dist/utils/uitools.js +29 -19
  93. package/index.ts +43 -43
  94. package/package.json +2 -2
  95. package/test/custom-navigation-bar.ts +28 -28
  96. package/test/dynamic-contextmenu-view.ts +23 -21
  97. package/test/dynamic-itemsize-matrix.ts +27 -22
  98. package/test/dynamic-preference-listview.ts +35 -35
  99. package/test/flowlayout.ts +43 -33
  100. package/test/form-dialog.ts +44 -43
  101. package/test/pageviewer-controller.ts +13 -11
  102. package/test/pageviewer-titlebar.ts +4 -5
  103. package/test/pageviewer.ts +17 -8
  104. package/test/refresh-button.ts +5 -5
  105. package/test/searchbar.ts +8 -8
  106. package/test/splitview-controller.ts +31 -30
  107. package/test/static-preference-listview.ts +35 -34
  108. package/test/tabbar-controller.ts +32 -29
  109. package/utils/colors.ts +7 -8
  110. package/utils/cvid.ts +1 -2
  111. package/utils/l10n.ts +32 -32
  112. package/utils/path.ts +9 -9
  113. package/utils/rect.ts +31 -8
  114. package/utils/uitools.ts +30 -22
@@ -7,7 +7,8 @@ const base_1 = require("./base");
7
7
  *
8
8
  * 可以自动更新 rowHeight 的 list
9
9
  *
10
- * 核心策略为 list 的所有行均为 cview,且每一个 cview 需要实现一个方法:heightToWidth(width: number) => number
10
+ * 核心策略为 list 的所有行均为 cview,且每一个 cview 需要实现一个方法:
11
+ * heightToWidth(width: number) => number
11
12
  * 通过这个方法汇报自己在某个宽度的时候所需要的高度,这必须任何时候均立即可用;
12
13
  *
13
14
  * 特别参数
@@ -18,18 +19,18 @@ const base_1 = require("./base");
18
19
  * 除了 props.data, props.template 和 events.rowHeight 不可用,其他均和 list 一致
19
20
  */
20
21
  class DynamicRowHeightList extends base_1.Base {
21
- constructor({ sections, rows, props, layout, events }) {
22
+ constructor({ sections, rows, props, layout, events, }) {
22
23
  super();
23
24
  this._defineView = () => {
24
25
  let data;
25
26
  if (sections && sections.length > 0) {
26
- data = sections.map(n => ({
27
+ data = sections.map((n) => ({
27
28
  title: n.title,
28
- rows: n.rows.map(r => r.definition)
29
+ rows: n.rows.map((r) => r.definition),
29
30
  }));
30
31
  }
31
32
  else if (rows && rows.length > 0) {
32
- data = rows.map(r => r.definition);
33
+ data = rows.map((r) => r.definition);
33
34
  }
34
35
  else {
35
36
  throw new Error("sections or rows must be provided");
@@ -49,7 +50,7 @@ class DynamicRowHeightList extends base_1.Base {
49
50
  else {
50
51
  throw new Error("sections or rows must be provided");
51
52
  }
52
- } }, events)
53
+ } }, events),
53
54
  };
54
55
  };
55
56
  }
@@ -11,7 +11,8 @@ const cvid_1 = require("../utils/cvid");
11
11
  *
12
12
  * 请注意:此组件使用了Runtime代码重新设置了Tapped事件。
13
13
  * 与以前使用touchesEnded事件来实现相比,可以避免在滑动手指时误触发。
14
- * 但因此带来了副作用:必须在关闭前通过releaseGestureObject释放掉此视图中自定义的NSObject,否则再次启动可能会有问题。
14
+ * 但因此带来了副作用:必须在关闭前通过releaseGestureObject释放掉此视图中自定义的NSObject
15
+ * 否则再次启动可能会有问题。
15
16
  *
16
17
  * Props:
17
18
  * src: string, 图片地址
@@ -22,14 +23,14 @@ const cvid_1 = require("../utils/cvid");
22
23
  * lowerLocationTouched: (sender: EnhancedImageView) => void, 下半部分被点击
23
24
  */
24
25
  class EnhancedImageView extends base_1.Base {
25
- constructor({ props, layout, events = {} }) {
26
+ constructor({ props, layout, events = {}, }) {
26
27
  super();
27
28
  this._props = Object.assign({ maxZoomScale: 2 }, props);
28
29
  this._scroll = new single_views_1.Scroll({
29
30
  props: {
30
31
  zoomEnabled: true,
31
32
  doubleTapToZoom: false,
32
- maxZoomScale: this._props.maxZoomScale
33
+ maxZoomScale: this._props.maxZoomScale,
33
34
  },
34
35
  layout: $layout.fill,
35
36
  views: [
@@ -38,13 +39,13 @@ class EnhancedImageView extends base_1.Base {
38
39
  props: {
39
40
  id: "image",
40
41
  src: this._props.src,
41
- contentMode: 1
42
+ contentMode: 1,
42
43
  },
43
- layout: $layout.fill
44
- }
44
+ layout: $layout.fill,
45
+ },
45
46
  ],
46
47
  events: {
47
- ready: view => {
48
+ ready: (view) => {
48
49
  $delay(0.1, () => this._addGesture(view, (gesture) => {
49
50
  const location = gesture.$locationInView(view.ocValue());
50
51
  const realLocation = $point(location.x - view.bounds.x, location.y - view.bounds.y);
@@ -58,23 +59,23 @@ class EnhancedImageView extends base_1.Base {
58
59
  events.lowerLocationTouched(this);
59
60
  }
60
61
  }));
61
- }
62
- }
62
+ },
63
+ },
63
64
  });
64
65
  this._defineView = () => {
65
66
  return {
66
67
  type: "view",
67
68
  props: {
68
- id: this.id
69
+ id: this.id,
69
70
  },
70
71
  views: [this._scroll.definition],
71
72
  layout,
72
73
  events: {
73
- layoutSubviews: sender => {
74
+ layoutSubviews: (sender) => {
74
75
  $delay(0.1, () => (this.src = this.src));
75
76
  $delay(0.3, () => (this.src = this.src));
76
- }
77
- }
77
+ },
78
+ },
78
79
  };
79
80
  };
80
81
  }
@@ -83,11 +84,12 @@ class EnhancedImageView extends base_1.Base {
83
84
  $define({
84
85
  type: objectId + ": NSObject",
85
86
  events: {
86
- tapped: event
87
- }
87
+ tapped: event,
88
+ },
88
89
  });
89
90
  const object = $objc(objectId).$new();
90
- $objc_retain(object); // 此步骤是必须的,否则将很快被系统释放掉,但是必须在关闭时手动释放掉,否则再次启动可能会有问题
91
+ $objc_retain(object); // 此步骤是必须的,否则将很快被系统释放掉,
92
+ // 但是必须在关闭时手动释放掉,否则再次启动可能会有问题
91
93
  this._gestureObject = object;
92
94
  const tapGestureRecognizer = $objc("UITapGestureRecognizer")
93
95
  .$alloc()
@@ -6,7 +6,8 @@ const base_1 = require("./base");
6
6
  * 流式布局:间距固定,项目高度固定但宽度不定,左对齐,自动换行,不能滚动。
7
7
  *
8
8
  * 注意事项:
9
- * 1. 此控件默认是可变高度的,但前提是布局中必须有关于高度的约束。如果不需要可变高度,可以设置fixedHeight为true
9
+ * 1. 此控件默认是可变高度的,但前提是布局中必须有关于高度的约束。
10
+ * 如果不需要可变高度,可以设置fixedHeight为true
10
11
  * 1. 此控件的边缘是不留白的,这和Matrix不同
11
12
  * 2. itemWidth 如果超过总宽度,会被设定为总宽度
12
13
  * 3. maxRows 可以控制最大行数,如果超过则会被截断
@@ -32,7 +33,7 @@ const base_1 = require("./base");
32
33
  * - get items(): FlowlayoutItem[] 获取子视图
33
34
  */
34
35
  class Flowlayout extends base_1.Base {
35
- constructor({ props, layout, events }) {
36
+ constructor({ props, layout, events, }) {
36
37
  super();
37
38
  this._width = 0;
38
39
  this._props = props;
@@ -43,7 +44,7 @@ class Flowlayout extends base_1.Base {
43
44
  didSelect: events === null || events === void 0 ? void 0 : events.didSelect,
44
45
  didLongPress: events === null || events === void 0 ? void 0 : events.didLongPress,
45
46
  flowlayout: this,
46
- index
47
+ index,
47
48
  }));
48
49
  this._defineView = () => ({
49
50
  type: "view",
@@ -53,16 +54,16 @@ class Flowlayout extends base_1.Base {
53
54
  },
54
55
  layout,
55
56
  events: {
56
- layoutSubviews: sender => {
57
+ layoutSubviews: (sender) => {
57
58
  if (this._width !== sender.frame.width) {
58
59
  this._width = sender.frame.width;
59
60
  const height = this._layoutWrappers();
60
61
  if (!this._props.fixedHeight)
61
62
  sender.updateLayout((make) => make.height.equalTo(height));
62
63
  }
63
- }
64
+ },
64
65
  },
65
- views: this._wrappers.map(wrapper => wrapper.definition)
66
+ views: this._wrappers.map((wrapper) => wrapper.definition),
66
67
  });
67
68
  }
68
69
  cell(index) {
@@ -81,11 +82,11 @@ class Flowlayout extends base_1.Base {
81
82
  didSelect: (_a = this._events) === null || _a === void 0 ? void 0 : _a.didSelect,
82
83
  didLongPress: (_b = this._events) === null || _b === void 0 ? void 0 : _b.didLongPress,
83
84
  flowlayout: this,
84
- index
85
+ index,
85
86
  });
86
87
  });
87
- this.view.views.forEach(v => v.remove());
88
- this._wrappers.forEach(wrapper => this.view.add(wrapper.definition));
88
+ this.view.views.forEach((v) => v.remove());
89
+ this._wrappers.forEach((wrapper) => this.view.add(wrapper.definition));
89
90
  const height = this._layoutWrappers();
90
91
  if (!this._props.fixedHeight)
91
92
  this.view.updateLayout((make) => make.height.equalTo(height));
@@ -144,7 +145,7 @@ class Flowlayout extends base_1.Base {
144
145
  }
145
146
  exports.Flowlayout = Flowlayout;
146
147
  class WrapperView extends base_1.Base {
147
- constructor({ item, menu, didSelect, didLongPress, flowlayout, index }) {
148
+ constructor({ item, menu, didSelect, didLongPress, flowlayout, index, }) {
148
149
  super();
149
150
  this.item = item;
150
151
  const props = {
@@ -160,15 +161,15 @@ class WrapperView extends base_1.Base {
160
161
  props,
161
162
  views: [item.definition],
162
163
  events: {
163
- tapped: sender => {
164
+ tapped: (sender) => {
164
165
  if (didSelect)
165
166
  didSelect(flowlayout, index, item);
166
167
  },
167
- longPressed: sender => {
168
+ longPressed: (sender) => {
168
169
  if (didLongPress)
169
170
  didLongPress(flowlayout, index, item);
170
- }
171
- }
171
+ },
172
+ },
172
173
  });
173
174
  }
174
175
  set frame(frame) {
@@ -6,7 +6,8 @@ const single_views_1 = require("./single-views");
6
6
  /**
7
7
  * 图片浏览组件
8
8
  *
9
- * 与内置的Gallery组件相比,ImagePager组件可以动态刷新,适用于图片数量较多的场景,以及需要动态加载图片列表的场景
9
+ * 与内置的Gallery组件相比,ImagePager组件可以动态刷新,
10
+ * 适用于图片数量较多的场景,以及需要动态加载图片列表的场景
10
11
  *
11
12
  */
12
13
  class ImagePager extends base_1.Base {
@@ -21,7 +22,7 @@ class ImagePager extends base_1.Base {
21
22
  * - changed: (page: number) => void - 页码变化时触发
22
23
  * - tapped: (sender: ImagePager) => void - 点击图片时触发
23
24
  */
24
- constructor({ props, layout, events = {} }) {
25
+ constructor({ props, layout, events = {}, }) {
25
26
  super();
26
27
  this._props = Object.assign({ srcs: [], page: 0, doubleTapToZoom: true }, props);
27
28
  this._pageLoadRecorder = {};
@@ -40,7 +41,7 @@ class ImagePager extends base_1.Base {
40
41
  id: "scroll",
41
42
  zoomEnabled: true,
42
43
  maxZoomScale: 3,
43
- doubleTapToZoom: this._props.doubleTapToZoom
44
+ doubleTapToZoom: this._props.doubleTapToZoom,
44
45
  },
45
46
  layout: $layout.fill,
46
47
  views: [
@@ -48,20 +49,20 @@ class ImagePager extends base_1.Base {
48
49
  type: "image",
49
50
  props: {
50
51
  id: "image",
51
- contentMode: $contentMode.scaleAspectFit
52
- }
53
- }
54
- ]
55
- }
56
- ]
52
+ contentMode: $contentMode.scaleAspectFit,
53
+ },
54
+ },
55
+ ],
56
+ },
57
+ ],
57
58
  },
58
- data: this._props.srcs.map(n => {
59
+ data: this._props.srcs.map((n) => {
59
60
  return { image: { src: n } };
60
- })
61
+ }),
61
62
  },
62
63
  layout: $layout.fill,
63
64
  events: {
64
- ready: sender => {
65
+ ready: (sender) => {
65
66
  // 如果没有此处的relayout,则会出现莫名其妙的bug
66
67
  sender.relayout();
67
68
  if (!this._matrix.view)
@@ -84,22 +85,22 @@ class ImagePager extends base_1.Base {
84
85
  if (oldPage !== this.page && events.changed)
85
86
  events.changed(this.page);
86
87
  },
87
- didScroll: sender => {
88
+ didScroll: (sender) => {
88
89
  this.loadsrc(this.page + 1, true);
89
90
  this.loadsrc(this.page - 1, true);
90
- }
91
- }
91
+ },
92
+ },
92
93
  });
93
94
  this._defineView = () => {
94
95
  return {
95
96
  type: "view",
96
97
  props: {
97
- id: this.id
98
+ id: this.id,
98
99
  },
99
100
  layout,
100
101
  views: [this._matrix.definition],
101
102
  events: {
102
- layoutSubviews: sender => {
103
+ layoutSubviews: (sender) => {
103
104
  this._pageLoadRecorder = {};
104
105
  sender.relayout();
105
106
  if (!this._matrix.view)
@@ -108,8 +109,8 @@ class ImagePager extends base_1.Base {
108
109
  this.page = this.page;
109
110
  $delay(0.1, () => this.loadsrc(this.page, true));
110
111
  $delay(0.3, () => this.loadsrc(this.page, true));
111
- }
112
- }
112
+ },
113
+ },
113
114
  };
114
115
  };
115
116
  }
@@ -139,14 +140,14 @@ class ImagePager extends base_1.Base {
139
140
  set page(page) {
140
141
  this._matrix.view.scrollTo({
141
142
  indexPath: $indexPath(0, page),
142
- animated: false
143
+ animated: false,
143
144
  });
144
145
  this._props.page = page;
145
146
  }
146
147
  scrollToPage(page) {
147
148
  this._matrix.view.scrollTo({
148
149
  indexPath: $indexPath(0, page),
149
- animated: true
150
+ animated: true,
150
151
  });
151
152
  this._props.page = page;
152
153
  }
@@ -35,7 +35,7 @@ class PageControl extends single_views_1.Runtime {
35
35
  * - changed: (sender: PageControl, currentPage: number) => void
36
36
  *
37
37
  */
38
- constructor({ props, layout, events = {} }) {
38
+ constructor({ props, layout, events = {}, }) {
39
39
  const { numberOfPages = 3, currentPage = 0, pageIndicatorTintColor, currentPageIndicatorTintColor } = props, restProps = __rest(props, ["numberOfPages", "currentPage", "pageIndicatorTintColor", "currentPageIndicatorTintColor"]);
40
40
  const { changed } = events, restEvents = __rest(events, ["changed"]);
41
41
  super({ props: restProps, layout, events: restEvents });
@@ -63,7 +63,7 @@ class PageControl extends single_views_1.Runtime {
63
63
  this._currentPage = currentPage;
64
64
  if (this._changed)
65
65
  this._changed(this, currentPage);
66
- })
66
+ }),
67
67
  });
68
68
  return pageControl;
69
69
  }
@@ -36,12 +36,13 @@ class PageViewerTitleBar extends base_1.Base {
36
36
  * @param events 事件
37
37
  * - changed: (cview, index) => void 在点击变更 index 的时候回调
38
38
  */
39
- constructor({ props, layout, events = {} }) {
39
+ constructor({ props, layout, events = {}, }) {
40
40
  super();
41
41
  this._props = Object.assign({ index: 0, selectedItemColor: $color("systemLink"), defaultItemColor: $color("secondaryText") }, props);
42
42
  const { changed } = events, restEvents = __rest(events, ["changed"]);
43
43
  this._floatedIndex = this._props.index;
44
- this._lineStartLocationPercentage = this._floatedIndex / this._props.items.length;
44
+ this._lineStartLocationPercentage =
45
+ this._floatedIndex / this._props.items.length;
45
46
  this.labels = this._props.items.map((n, i) => {
46
47
  return new single_views_1.Label({
47
48
  props: {
@@ -51,15 +52,15 @@ class PageViewerTitleBar extends base_1.Base {
51
52
  ? this._props.selectedItemColor
52
53
  : this._props.defaultItemColor,
53
54
  align: $align.center,
54
- userInteractionEnabled: true
55
+ userInteractionEnabled: true,
55
56
  },
56
57
  events: {
57
- tapped: sender => {
58
+ tapped: (sender) => {
58
59
  this.index = i;
59
60
  if (changed)
60
61
  changed(this, i);
61
- }
62
- }
62
+ },
63
+ },
63
64
  });
64
65
  });
65
66
  this.stack = new single_views_1.Stack({
@@ -67,44 +68,46 @@ class PageViewerTitleBar extends base_1.Base {
67
68
  axis: $stackViewAxis.horizontal,
68
69
  distribution: $stackViewDistribution.fillEqually,
69
70
  stack: {
70
- views: this.labels.map(n => n.definition)
71
- }
71
+ views: this.labels.map((n) => n.definition),
72
+ },
72
73
  },
73
- layout: $layout.fill
74
+ layout: $layout.fill,
74
75
  });
75
76
  this.placeholderView = new single_views_1.ContentView({
76
77
  props: {
77
- bgcolor: $color("clear")
78
+ bgcolor: $color("clear"),
78
79
  },
79
80
  layout: (make, view) => {
80
81
  make.left.bottom.inset(0);
81
- make.width.equalTo(view.super).multipliedBy(this._floatedIndex / this._props.items.length);
82
- }
82
+ make.width
83
+ .equalTo(view.super)
84
+ .multipliedBy(this._floatedIndex / this._props.items.length);
85
+ },
83
86
  });
84
87
  this.line = new single_views_1.ContentView({
85
88
  props: {
86
- bgcolor: this._props.selectedItemColor
89
+ bgcolor: this._props.selectedItemColor,
87
90
  },
88
91
  layout: (make, view) => {
89
92
  make.height.equalTo(4);
90
93
  make.width.equalTo(view.super).dividedBy(this._props.items.length);
91
94
  make.bottom.inset(0);
92
95
  make.left.equalTo(view.prev.right);
93
- }
96
+ },
94
97
  });
95
98
  this._defineView = () => {
96
99
  return {
97
100
  type: "view",
98
101
  props: {
99
- id: this.id
102
+ id: this.id,
100
103
  },
101
104
  layout,
102
105
  events: restEvents,
103
106
  views: [
104
107
  this.stack.definition,
105
108
  this.placeholderView.definition,
106
- this.line.definition
107
- ]
109
+ this.line.definition,
110
+ ],
108
111
  };
109
112
  };
110
113
  }
@@ -4,7 +4,8 @@ exports.PageViewer = void 0;
4
4
  const base_1 = require("./base");
5
5
  const single_views_1 = require("./single-views");
6
6
  /**
7
- * 与JSBox内置的Gallery功能类似,但是效果更好,可以伴随翻页实现联动效果,参见[pageviewer-titlebar.ts](./pageviewer-titlebar.ts)
7
+ * 与JSBox内置的Gallery功能类似,但是效果更好,可以伴随翻页实现联动效果
8
+ * 参见[pageviewer-titlebar.ts](./pageviewer-titlebar.ts)
8
9
  *
9
10
  * @property page: number 当前页码(无动画效果)
10
11
  * @method scrollToPage(page: number) 滚动到某一页(带有动画效果)
@@ -20,20 +21,20 @@ class PageViewer extends base_1.Base {
20
21
  * - changed: (cview, page) => void 页面改变时回调
21
22
  * - floatPageChanged: (cview, floatPage) => void 滚动时回调(用于绑定其他联合滚动的控件)
22
23
  */
23
- constructor({ props, layout, events = {} }) {
24
+ constructor({ props, layout, events = {}, }) {
24
25
  super();
25
26
  this._props = Object.assign({ page: 0 }, props);
26
27
  this._events = events;
27
28
  this._pageWidth = 0;
28
29
  this._floatPage = this._props.page;
29
- const contentViews = this._props.cviews.map(n => {
30
+ const contentViews = this._props.cviews.map((n) => {
30
31
  return new single_views_1.ContentView({
31
32
  views: [n.definition],
32
33
  layout: (make, view) => {
33
34
  make.height.width.equalTo(view.super);
34
35
  make.left.equalTo(view.prev ? view.prev.right : view.super);
35
36
  make.top.equalTo(view.super);
36
- }
37
+ },
37
38
  });
38
39
  });
39
40
  this.scroll = new single_views_1.Scroll({
@@ -41,10 +42,10 @@ class PageViewer extends base_1.Base {
41
42
  alwaysBounceVertical: false,
42
43
  alwaysBounceHorizontal: true,
43
44
  showsHorizontalIndicator: false,
44
- pagingEnabled: true
45
+ pagingEnabled: true,
45
46
  },
46
47
  events: {
47
- layoutSubviews: sender => {
48
+ layoutSubviews: (sender) => {
48
49
  this._pageWidth = sender.frame.width;
49
50
  if (this._pageWidth)
50
51
  sender.contentSize = $size(this._pageWidth * this._props.cviews.length, 0);
@@ -55,15 +56,15 @@ class PageViewer extends base_1.Base {
55
56
  if (oldPage !== this.page && this._events.changed)
56
57
  this._events.changed(this, this.page);
57
58
  },
58
- didScroll: sender => {
59
+ didScroll: (sender) => {
59
60
  const rawPage = sender.contentOffset.x / this._pageWidth;
60
61
  this._floatPage = Math.min(Math.max(0, rawPage), this._props.cviews.length - 1);
61
62
  if (this._events.floatPageChanged)
62
63
  this._events.floatPageChanged(this, this._floatPage);
63
- }
64
+ },
64
65
  },
65
66
  layout: $layout.fill,
66
- views: [...contentViews.map(n => n.definition)]
67
+ views: [...contentViews.map((n) => n.definition)],
67
68
  });
68
69
  this._defineView = () => {
69
70
  return {
@@ -72,12 +73,12 @@ class PageViewer extends base_1.Base {
72
73
  layout,
73
74
  views: [this.scroll.definition],
74
75
  events: {
75
- layoutSubviews: sender => {
76
+ layoutSubviews: (sender) => {
76
77
  sender.relayout();
77
78
  this.page = this.page;
78
79
  $delay(0.2, () => (this.page = this.page));
79
- }
80
- }
80
+ },
81
+ },
81
82
  };
82
83
  };
83
84
  }
@@ -12,7 +12,7 @@ const base_1 = require("./base");
12
12
  * - tapped
13
13
  */
14
14
  class RefreshButton extends base_1.Base {
15
- constructor({ props, layout, events = {} }) {
15
+ constructor({ props, layout, events = {}, }) {
16
16
  super();
17
17
  this._loading = false;
18
18
  this._layout = layout;
@@ -41,7 +41,7 @@ class RefreshButton extends base_1.Base {
41
41
  layout: (make, view) => {
42
42
  make.edges.insets($insets(12.5, 12.5, 12.5, 12.5));
43
43
  make.center.equalTo(view.super);
44
- }
44
+ },
45
45
  },
46
46
  {
47
47
  type: "spinner",
@@ -52,9 +52,9 @@ class RefreshButton extends base_1.Base {
52
52
  },
53
53
  layout: (make, view) => {
54
54
  make.center.equalTo(view.super);
55
- }
56
- }
57
- ]
55
+ },
56
+ },
57
+ ],
58
58
  };
59
59
  };
60
60
  }
@@ -23,7 +23,7 @@ class RotatingView extends base_1.Base {
23
23
  * @param events 事件
24
24
  * - ready?: (cview: RotatingView) => void 默认的ready事件是自动开始旋转;也可以手动指定其他效果
25
25
  */
26
- constructor({ props, layout, events = {} }) {
26
+ constructor({ props, layout, events = {}, }) {
27
27
  super();
28
28
  this._props = Object.assign({ contentMode: 1, rps: 0.5, clockwise: true }, props);
29
29
  this._rotatingFlag = false;
@@ -39,9 +39,9 @@ class RotatingView extends base_1.Base {
39
39
  ? this._props.image.alwaysTemplate
40
40
  : this._props.image,
41
41
  tintColor: this._props.tintColor,
42
- contentMode: this._props.contentMode
42
+ contentMode: this._props.contentMode,
43
43
  },
44
- layout: $layout.fill
44
+ layout: $layout.fill,
45
45
  });
46
46
  }
47
47
  this._defineView = () => {
@@ -50,16 +50,16 @@ class RotatingView extends base_1.Base {
50
50
  props: Object.assign(Object.assign({}, this._props), { id: this.id }),
51
51
  layout,
52
52
  events: {
53
- ready: sender => {
53
+ ready: (sender) => {
54
54
  if (events.ready) {
55
55
  events.ready(this);
56
56
  }
57
57
  else {
58
58
  this.startRotating();
59
59
  }
60
- }
60
+ },
61
61
  },
62
- views: [this._innerView.definition]
62
+ views: [this._innerView.definition],
63
63
  };
64
64
  };
65
65
  }
@@ -77,14 +77,14 @@ class RotatingView extends base_1.Base {
77
77
  duration,
78
78
  options: 3 << 16,
79
79
  animation: () => {
80
- view.rotate(Math.PI * 2 / 3 * clockwiseMultiplier);
80
+ view.rotate(((Math.PI * 2) / 3) * clockwiseMultiplier);
81
81
  },
82
82
  completion: () => {
83
83
  $ui.animate({
84
84
  duration,
85
85
  options: 3 << 16,
86
86
  animation: () => {
87
- view.rotate(Math.PI * 4 / 3 * clockwiseMultiplier);
87
+ view.rotate(((Math.PI * 4) / 3) * clockwiseMultiplier);
88
88
  },
89
89
  completion: () => {
90
90
  $ui.animate({
@@ -96,11 +96,11 @@ class RotatingView extends base_1.Base {
96
96
  completion: () => {
97
97
  if (this._rotatingFlag)
98
98
  this._rotateView(view);
99
- }
99
+ },
100
100
  });
101
- }
101
+ },
102
102
  });
103
- }
103
+ },
104
104
  });
105
105
  }
106
106
  }