jsbox-cview 1.6.6 → 1.6.8

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 (141) hide show
  1. package/README.md +4 -0
  2. package/dist/components/alert/input-alert.d.ts +22 -0
  3. package/dist/components/alert/login-alert.d.ts +21 -0
  4. package/dist/components/alert/plain-alert.d.ts +15 -0
  5. package/dist/components/alert/uialert.d.ts +29 -0
  6. package/{components/base.ts → dist/components/base.d.ts} +9 -28
  7. package/dist/components/custom-navigation-bar.d.ts +117 -0
  8. package/dist/components/dialogs/dialog-sheet.d.ts +46 -0
  9. package/dist/components/dialogs/dialog-sheet.js +4 -2
  10. package/dist/components/dialogs/form-dialog.d.ts +15 -0
  11. package/dist/components/dialogs/list-dialog.d.ts +23 -0
  12. package/dist/components/dialogs/list-dialog.js +1 -1
  13. package/dist/components/dialogs/text-dialog.d.ts +13 -0
  14. package/dist/components/dynamic-contextmenu-view.d.ts +40 -0
  15. package/dist/components/dynamic-itemsize-matrix.d.ts +79 -0
  16. package/dist/components/dynamic-itemsize-matrix.js +1 -0
  17. package/dist/components/dynamic-itemsize-section-matrix.d.ts +115 -0
  18. package/dist/components/dynamic-preference-listview.d.ts +63 -0
  19. package/dist/components/dynamic-rowheight-list.d.ts +38 -0
  20. package/dist/components/enhanced-imageview.d.ts +41 -0
  21. package/dist/components/flowlayout.d.ts +63 -0
  22. package/dist/components/image-pager.d.ts +49 -0
  23. package/dist/components/oc-webview.d.ts +64 -0
  24. package/dist/components/page-control.d.ts +45 -0
  25. package/dist/components/pageviewer-titlebar.d.ts +48 -0
  26. package/dist/components/pageviewer.d.ts +41 -0
  27. package/dist/components/pageviewer.js +12 -3
  28. package/dist/components/refresh-button.d.ts +25 -0
  29. package/dist/components/rotating-view.d.ts +45 -0
  30. package/dist/components/searchbar.d.ts +118 -0
  31. package/dist/components/sheet.d.ts +42 -0
  32. package/dist/components/single-views.d.ts +289 -0
  33. package/dist/components/spinners/loading-dual-ring.d.ts +18 -0
  34. package/dist/components/spinners/loading-wedges.d.ts +15 -0
  35. package/dist/components/spinners/spinner-androidstyle.d.ts +30 -0
  36. package/dist/components/static-preference-listview.d.ts +389 -0
  37. package/dist/components/symbol-button.d.ts +39 -0
  38. package/dist/components/tabbar.d.ts +140 -0
  39. package/dist/controller/base-controller.d.ts +108 -0
  40. package/dist/controller/base-controller.js +10 -25
  41. package/dist/controller/controller-router.d.ts +48 -0
  42. package/dist/controller/controller-router.js +2 -1
  43. package/dist/controller/controller-status.d.ts +16 -0
  44. package/dist/controller/controller-status.js +19 -0
  45. package/dist/controller/pageviewer-controller.d.ts +38 -0
  46. package/dist/controller/pageviewer-controller.js +32 -3
  47. package/dist/controller/presented-page-controller.d.ts +41 -0
  48. package/dist/controller/splitview-controller.d.ts +90 -0
  49. package/dist/controller/splitview-controller.js +5 -0
  50. package/dist/controller/tabbar-controller.d.ts +49 -0
  51. package/dist/controller/tabbar-controller.js +2 -3
  52. package/{index.ts → dist/index.d.ts} +2 -0
  53. package/dist/index.js +2 -0
  54. package/dist/utils/colors.d.ts +7 -0
  55. package/dist/utils/cvid.d.ts +11 -0
  56. package/dist/utils/l10n.d.ts +1 -0
  57. package/dist/utils/path.d.ts +8 -0
  58. package/dist/utils/rect.d.ts +38 -0
  59. package/dist/utils/uitools.d.ts +75 -0
  60. package/package.json +20 -6
  61. package/.prettierignore +0 -6
  62. package/.prettierrc +0 -3
  63. package/components/alert/input-alert.ts +0 -64
  64. package/components/alert/login-alert.ts +0 -66
  65. package/components/alert/plain-alert.ts +0 -39
  66. package/components/alert/uialert.ts +0 -107
  67. package/components/custom-navigation-bar.ts +0 -579
  68. package/components/dialogs/dialog-sheet.ts +0 -111
  69. package/components/dialogs/form-dialog.ts +0 -63
  70. package/components/dialogs/list-dialog.ts +0 -119
  71. package/components/dialogs/text-dialog.ts +0 -44
  72. package/components/dynamic-contextmenu-view.ts +0 -115
  73. package/components/dynamic-itemsize-matrix.ts +0 -206
  74. package/components/dynamic-itemsize-section-matrix.ts +0 -363
  75. package/components/dynamic-preference-listview.ts +0 -684
  76. package/components/dynamic-rowheight-list.ts +0 -77
  77. package/components/enhanced-imageview.ts +0 -132
  78. package/components/flowlayout.ts +0 -248
  79. package/components/image-pager.ts +0 -180
  80. package/components/oc-webview.ts +0 -177
  81. package/components/page-control.ts +0 -93
  82. package/components/pageviewer-titlebar.ts +0 -166
  83. package/components/pageviewer.ts +0 -125
  84. package/components/refresh-button.ts +0 -83
  85. package/components/rotating-view.ts +0 -133
  86. package/components/searchbar.ts +0 -398
  87. package/components/sheet.ts +0 -104
  88. package/components/single-views.ts +0 -956
  89. package/components/spinners/loading-dual-ring.ts +0 -97
  90. package/components/spinners/loading-wedges.ts +0 -106
  91. package/components/spinners/spinner-androidstyle.ts +0 -269
  92. package/components/static-preference-listview.ts +0 -1282
  93. package/components/symbol-button.ts +0 -108
  94. package/components/tabbar.ts +0 -453
  95. package/controller/base-controller.ts +0 -214
  96. package/controller/controller-router.ts +0 -73
  97. package/controller/pageviewer-controller.ts +0 -93
  98. package/controller/presented-page-controller.ts +0 -76
  99. package/controller/splitview-controller.ts +0 -359
  100. package/controller/tabbar-controller.ts +0 -131
  101. package/dist/test/custom-navigation-bar.js +0 -40
  102. package/dist/test/dialog-sheet.js +0 -40
  103. package/dist/test/dynamic-contextmenu-view.js +0 -66
  104. package/dist/test/dynamic-itemsize-matrix.js +0 -74
  105. package/dist/test/dynamic-itemsize-section-matrix.js +0 -138
  106. package/dist/test/dynamic-preference-listview.js +0 -150
  107. package/dist/test/flowlayout.js +0 -76
  108. package/dist/test/form-dialog.js +0 -51
  109. package/dist/test/oc-webview.js +0 -195
  110. package/dist/test/pageviewer-controller.js +0 -20
  111. package/dist/test/pageviewer-titlebar.js +0 -18
  112. package/dist/test/pageviewer.js +0 -32
  113. package/dist/test/refresh-button.js +0 -26
  114. package/dist/test/searchbar.js +0 -36
  115. package/dist/test/splitview-controller.js +0 -41
  116. package/dist/test/static-preference-listview.js +0 -143
  117. package/dist/test/tabbar-controller.js +0 -48
  118. package/test/custom-navigation-bar.ts +0 -40
  119. package/test/dialog-sheet.ts +0 -40
  120. package/test/dynamic-contextmenu-view.ts +0 -67
  121. package/test/dynamic-itemsize-matrix.ts +0 -74
  122. package/test/dynamic-itemsize-section-matrix.ts +0 -142
  123. package/test/dynamic-preference-listview.ts +0 -151
  124. package/test/flowlayout.ts +0 -79
  125. package/test/form-dialog.ts +0 -48
  126. package/test/oc-webview.ts +0 -197
  127. package/test/pageviewer-controller.ts +0 -21
  128. package/test/pageviewer-titlebar.ts +0 -18
  129. package/test/pageviewer.ts +0 -31
  130. package/test/refresh-button.ts +0 -26
  131. package/test/searchbar.ts +0 -38
  132. package/test/splitview-controller.ts +0 -42
  133. package/test/static-preference-listview.ts +0 -142
  134. package/test/tabbar-controller.ts +0 -49
  135. package/tsconfig.json +0 -122
  136. package/utils/colors.ts +0 -17
  137. package/utils/cvid.ts +0 -32
  138. package/utils/l10n.ts +0 -42
  139. package/utils/path.ts +0 -97
  140. package/utils/rect.ts +0 -90
  141. package/utils/uitools.ts +0 -122
@@ -1,108 +0,0 @@
1
- import { Base } from "./base";
2
-
3
- interface SymbolButtonProps {
4
- enabled: boolean;
5
- symbol?: string;
6
- image?: UIImage;
7
- src?: string;
8
- tintColor: UIColor;
9
- contentMode: number;
10
- insets: JBInsets;
11
- menu?: UiTypes.ContextMenuOptions<UIButtonView>;
12
- hidden: boolean;
13
- }
14
-
15
- /**
16
- * 创建可以自动规范symbol大小的button,兼容image,可以设定insets
17
- * props:
18
- * - symbol
19
- * - image
20
- * - tintColor
21
- * - insets
22
- * - enabled
23
- * - menu
24
- * - hidden
25
- * events:
26
- * - tapped
27
- */
28
- export class SymbolButton extends Base<UIButtonView, UiTypes.ButtonOptions> {
29
- _props: SymbolButtonProps;
30
- _defineView: () => UiTypes.ButtonOptions;
31
- constructor({
32
- props,
33
- layout,
34
- events = {},
35
- }: {
36
- props: Partial<SymbolButtonProps>;
37
- layout?: (make: MASConstraintMaker, view: UIButtonView) => void;
38
- events?: UiTypes.BaseViewEvents<UIButtonView>;
39
- }) {
40
- super();
41
- this._props = {
42
- enabled: true,
43
- contentMode: 1,
44
- insets: $insets(12.5, 12.5, 12.5, 12.5),
45
- tintColor: $color("primaryText"),
46
- hidden: false,
47
- ...props,
48
- };
49
- this._layout = layout;
50
- this._defineView = () => {
51
- const props = this._props.menu
52
- ? {
53
- radius: 0,
54
- bgcolor: $color("clear"),
55
- id: this.id,
56
- menu: this._props.menu,
57
- enabled: this._props.enabled,
58
- hidden: this._props.hidden,
59
- }
60
- : {
61
- radius: 0,
62
- bgcolor: $color("clear"),
63
- id: this.id,
64
- enabled: this._props.enabled,
65
- hidden: this._props.hidden,
66
- };
67
- return {
68
- type: "button",
69
- props,
70
- views: [
71
- {
72
- type: "image",
73
- props: {
74
- id: "image",
75
- symbol: this._props.symbol,
76
- image: this._props.image,
77
- src: this._props.src,
78
- tintColor: this._props.tintColor,
79
- contentMode: this._props.contentMode,
80
- },
81
- layout: (make, view: UIImageView) => {
82
- make.edges.insets(this._props.insets);
83
- make.center.equalTo(view.super);
84
- },
85
- },
86
- ],
87
- layout: this._layout,
88
- events,
89
- };
90
- };
91
- }
92
-
93
- set tintColor(tintColor: UIColor) {
94
- (this.view.get("image") as UIImageView).tintColor = tintColor;
95
- }
96
-
97
- set image(image: UIImage) {
98
- (this.view.get("image") as UIImageView).image = image;
99
- }
100
-
101
- set symbol(symbol: string) {
102
- (this.view.get("image") as UIImageView).symbol = symbol;
103
- }
104
-
105
- set src(src: string) {
106
- (this.view.get("image") as UIImageView).src = src;
107
- }
108
- }
@@ -1,453 +0,0 @@
1
- import { footBarDefaultSegmentColor } from "../utils/colors";
2
- import { Base } from "./base";
3
-
4
- class ImageLabelCell extends Base<UIView, UiTypes.ViewOptions> {
5
- _props: {
6
- symbol?: string;
7
- image?: UIImage;
8
- text: string;
9
- index: number;
10
- selectedSegmentTintColor: UIColor;
11
- defaultSegmentTintColor: UIColor;
12
- selected?: boolean;
13
- };
14
- layouts: {
15
- image_tightened: (make: MASConstraintMaker, view: AllUIView) => void;
16
- label_tightened: (make: MASConstraintMaker, view: AllUIView) => void;
17
- image_loosed: (make: MASConstraintMaker, view: AllUIView) => void;
18
- label_loosed: (make: MASConstraintMaker, view: AllUIView) => void;
19
- };
20
- _defineView: () => UiTypes.ViewOptions;
21
- constructor({
22
- props,
23
- events = {},
24
- }: {
25
- props: {
26
- symbol?: string;
27
- image?: UIImage;
28
- text: string;
29
- index: number;
30
- selectedSegmentTintColor: UIColor;
31
- defaultSegmentTintColor: UIColor;
32
- selected?: boolean;
33
- };
34
- events: {
35
- tapped?: (index: number) => void;
36
- };
37
- }) {
38
- super();
39
- this._props = props;
40
- this.layouts = {
41
- image_tightened: (make, view) => {
42
- make.centerX.equalTo(view.super);
43
- make.size.equalTo($size(25, 25));
44
- make.top.inset(7);
45
- },
46
- label_tightened: (make, view) => {
47
- make.centerX.equalTo(view.super);
48
- make.top.equalTo(view.prev.bottom);
49
- },
50
- image_loosed: (make, view) => {
51
- make.centerX.equalTo(view.super).offset(-35);
52
- make.centerY.equalTo(view.super);
53
- make.size.equalTo($size(25, 25));
54
- },
55
- label_loosed: (make, view) => {
56
- make.left.equalTo(view.prev.right).inset(10);
57
- make.centerY.equalTo(view.super);
58
- },
59
- };
60
- this._defineView = () => {
61
- return {
62
- type: "view",
63
- props: {
64
- id: this.id,
65
- userInteractionEnabled: true,
66
- },
67
- views: [
68
- {
69
- type: "image",
70
- props: {
71
- id: "image",
72
- symbol: this._props.symbol,
73
- image: this._props.image,
74
- contentMode: 1,
75
- },
76
- },
77
- {
78
- type: "label",
79
- props: {
80
- id: "label",
81
- text: this._props.text,
82
- align: $align.center,
83
- },
84
- },
85
- ],
86
- events: {
87
- tapped: (sender) => {
88
- if (events.tapped) events.tapped(this._props.index);
89
- },
90
- },
91
- };
92
- };
93
- }
94
-
95
- set selected(selected) {
96
- this._props.selected = selected;
97
- const color = selected ? this._props.selectedSegmentTintColor : this._props.defaultSegmentTintColor;
98
- this.view.get("image").tintColor = color;
99
- const label = this.view.get("label") as UILabelView;
100
- label.textColor = color;
101
- }
102
-
103
- get selected() {
104
- return this._props.selected;
105
- }
106
-
107
- _useTightenedLayout() {
108
- this.view.get("image").remakeLayout(this.layouts.image_tightened);
109
- this.view.get("label").remakeLayout(this.layouts.label_tightened);
110
- const label = this.view.get("label") as UILabelView;
111
- label.font = $font(10);
112
- }
113
-
114
- _useLoosedLayout() {
115
- this.view.get("image").remakeLayout(this.layouts.image_loosed);
116
- this.view.get("label").remakeLayout(this.layouts.label_loosed);
117
- const label = this.view.get("label") as UILabelView;
118
- label.font = $font(14);
119
- }
120
- }
121
-
122
- class ImageCell extends Base<UIView, UiTypes.ViewOptions> {
123
- _props: {
124
- symbol?: string;
125
- image?: UIImage;
126
- index: number;
127
- selectedSegmentTintColor: UIColor;
128
- defaultSegmentTintColor: UIColor;
129
- selected?: boolean;
130
- };
131
- layouts: {
132
- image_tightened: (make: MASConstraintMaker, view: AllUIView) => void;
133
- image_loosed: (make: MASConstraintMaker, view: AllUIView) => void;
134
- };
135
- _defineView: () => UiTypes.ViewOptions;
136
- constructor({
137
- props,
138
- events = {},
139
- }: {
140
- props: {
141
- symbol?: string;
142
- image?: UIImage;
143
- index: number;
144
- selectedSegmentTintColor: UIColor;
145
- defaultSegmentTintColor: UIColor;
146
- selected?: boolean;
147
- };
148
- events: {
149
- tapped?: (index: number) => void;
150
- };
151
- }) {
152
- super();
153
- this._props = props;
154
- this.layouts = {
155
- image_tightened: (make, view) => {
156
- make.center.equalTo(view.super);
157
- make.size.equalTo($size(30, 30));
158
- },
159
- image_loosed: (make, view) => {
160
- make.center.equalTo(view.super);
161
- make.size.equalTo($size(30, 30));
162
- },
163
- };
164
- this._defineView = () => {
165
- return {
166
- type: "view",
167
- props: {
168
- id: this.id,
169
- userInteractionEnabled: true,
170
- },
171
- views: [
172
- {
173
- type: "image",
174
- props: {
175
- id: "image",
176
- symbol: this._props.symbol,
177
- image: this._props.image,
178
- contentMode: 1,
179
- },
180
- },
181
- ],
182
- events: {
183
- tapped: (sender) => {
184
- if (events.tapped) events.tapped(this._props.index);
185
- },
186
- },
187
- };
188
- };
189
- }
190
-
191
- set selected(selected) {
192
- this._props.selected = selected;
193
- const color = selected ? this._props.selectedSegmentTintColor : this._props.defaultSegmentTintColor;
194
- this.view.get("image").tintColor = color;
195
- }
196
-
197
- get selected() {
198
- return this._props.selected;
199
- }
200
-
201
- _useTightenedLayout() {
202
- this.view.get("image").remakeLayout(this.layouts.image_tightened);
203
- }
204
-
205
- _useLoosedLayout() {
206
- this.view.get("image").remakeLayout(this.layouts.image_loosed);
207
- }
208
- }
209
-
210
- /**
211
- * 本组件是为了仿制 UITabBar
212
- * 本组件不能指定布局而是应该指定 height(如果需要的话)
213
- * 典型的使用方式是添加在布局为$layout.fill的视图中,并指定 items
214
- *
215
- * props:
216
- *
217
- * - 只写 height: number = 50
218
- * - 只写 items: {symbol?: string, image?:UIImage, title?: string}[]
219
- * - 只写 bgcolor?: UIColor 如果不指定则背景使用blur(style 10),若指定则使用纯色视图
220
- * - 读写 index: number = 0
221
- * - 只写 selectedSegmentTintColor = $color("tintColor")
222
- * - 只写 defaultSegmentTintColor = colors.footBarDefaultSegmentColor
223
- *
224
- * events:
225
- *
226
- * - changed: (cview, index) => void
227
- * - doubleTapped: (cview, index) => void
228
- *
229
- * methods:
230
- *
231
- * - hide(animated=true) 隐藏
232
- * - show(animated=true) 显示
233
- */
234
- export class TabBar extends Base<UIView | UIBlurView, UiTypes.ViewOptions | UiTypes.BlurOptions> {
235
- _props: {
236
- height: number;
237
- items: { symbol?: string; image?: UIImage; title?: string }[];
238
- index: number;
239
- selectedSegmentTintColor: UIColor;
240
- defaultSegmentTintColor: UIColor;
241
- bgcolor?: UIColor;
242
- };
243
- _index: number;
244
- _cells: (ImageLabelCell | ImageCell)[];
245
- _events: {
246
- changed?: (cview: TabBar, index: number) => void;
247
- doubleTapped?: (cview: TabBar, index: number) => void;
248
- };
249
- _defineView: () => UiTypes.ViewOptions | UiTypes.BlurOptions;
250
- constructor({
251
- props,
252
- events = {},
253
- }: {
254
- props: {
255
- height?: number;
256
- items: { symbol?: string; image?: UIImage; title?: string }[];
257
- index?: number;
258
- selectedSegmentTintColor?: UIColor;
259
- defaultSegmentTintColor?: UIColor;
260
- bgcolor?: UIColor;
261
- };
262
- events: {
263
- changed?: (cview: TabBar, index: number) => void;
264
- doubleTapped?: (cview: TabBar, index: number) => void;
265
- };
266
- }) {
267
- super();
268
- this._props = {
269
- height: 50,
270
- index: 0,
271
- selectedSegmentTintColor: $color("systemLink"),
272
- defaultSegmentTintColor: footBarDefaultSegmentColor,
273
- //bgcolor: $color("secondarySurface"),
274
- ...props,
275
- };
276
- this._index = this._props.index;
277
- this._events = events;
278
- this._cells = this._defineCells();
279
- this._defineView = () => {
280
- const stack: UiTypes.StackOptions = {
281
- type: "stack",
282
- props: {
283
- axis: $stackViewAxis.horizontal,
284
- distribution: $stackViewDistribution.fillEqually,
285
- spacing: 0,
286
- stack: {
287
- views: this._cells.map((n) => n.definition),
288
- },
289
- },
290
- layout: (make, view) => {
291
- make.height.equalTo(this._props.height - 0.5);
292
- make.left.right.equalTo(view.super.safeArea);
293
- make.top.equalTo(view.prev.bottom);
294
- },
295
- };
296
- const line: UiTypes.ViewOptions = {
297
- type: "view",
298
- props: {
299
- bgcolor: $color("separatorColor"),
300
- },
301
- layout: (make, view) => {
302
- make.top.left.right.inset(0);
303
- make.height.equalTo(0.5);
304
- },
305
- };
306
- if (this._props.bgcolor) {
307
- return {
308
- type: "view",
309
- props: {
310
- id: this.id,
311
- bgcolor: this._props.bgcolor,
312
- },
313
- layout: (make, view) => {
314
- make.left.right.bottom.inset(0);
315
- make.top.equalTo(view.super.safeAreaBottom).inset(-this._props.height);
316
- },
317
- views: [line, stack],
318
- events: {
319
- ready: (sender) => (this.index = this._index),
320
- layoutSubviews: (sender) => {
321
- const windowWidth = sender.frame.width;
322
- if (windowWidth > 600) {
323
- this._useLoosedLayout();
324
- } else {
325
- this._useTightenedLayout();
326
- }
327
- },
328
- },
329
- };
330
- } else {
331
- return {
332
- type: "blur",
333
- props: {
334
- id: this.id,
335
- style: 10,
336
- },
337
- layout: (make, view) => {
338
- make.left.right.bottom.inset(0);
339
- make.top.equalTo(view.super.safeAreaBottom).inset(-this._props.height);
340
- },
341
- views: [line, stack],
342
- events: {
343
- ready: (sender) => (this.index = this._index),
344
- layoutSubviews: (sender) => {
345
- const windowWidth = sender.frame.width;
346
- if (windowWidth > 600) {
347
- this._useLoosedLayout();
348
- } else {
349
- this._useTightenedLayout();
350
- }
351
- },
352
- },
353
- };
354
- }
355
- };
356
- }
357
-
358
- _defineCells() {
359
- return this._props.items.map((n, i) => {
360
- if (n.title) {
361
- return new ImageLabelCell({
362
- props: {
363
- symbol: n.symbol,
364
- image: n.image ? n.image.alwaysTemplate : undefined,
365
- text: n.title,
366
- index: i,
367
- selectedSegmentTintColor: this._props.selectedSegmentTintColor,
368
- defaultSegmentTintColor: this._props.defaultSegmentTintColor,
369
- },
370
- events: {
371
- tapped: (index) => {
372
- if (index !== this.index) {
373
- this.index = index;
374
- if (this._events.changed) this._events.changed(this, index);
375
- } else {
376
- if (this._events.doubleTapped) this._events.doubleTapped(this, index);
377
- }
378
- },
379
- },
380
- });
381
- } else {
382
- return new ImageCell({
383
- props: {
384
- symbol: n.symbol,
385
- image: n.image ? n.image.alwaysTemplate : undefined,
386
- index: i,
387
- selectedSegmentTintColor: this._props.selectedSegmentTintColor,
388
- defaultSegmentTintColor: this._props.defaultSegmentTintColor,
389
- },
390
- events: {
391
- tapped: (index) => {
392
- if (index !== this.index) {
393
- this.index = index;
394
- if (this._events.changed) this._events.changed(this, index);
395
- } else {
396
- if (this._events.doubleTapped) this._events.doubleTapped(this, index);
397
- }
398
- },
399
- },
400
- });
401
- }
402
- });
403
- }
404
-
405
- get index() {
406
- return this._index;
407
- }
408
-
409
- set index(index) {
410
- this._index = index;
411
- this._cells.forEach((n, i) => {
412
- n.selected = i === this._index;
413
- });
414
- }
415
-
416
- hide(animated = true) {
417
- this.view.remakeLayout((make, view) => {
418
- make.left.right.bottom.inset(0);
419
- make.height.equalTo(0);
420
- });
421
- if (animated) {
422
- $ui.animate({
423
- duration: 0.3,
424
- animation: () => this.view.relayout(),
425
- });
426
- }
427
- }
428
-
429
- show(animated = true) {
430
- this.view.remakeLayout((make, view) => {
431
- make.left.right.bottom.inset(0);
432
- make.top.equalTo(view.super.safeAreaBottom).inset(-this._props.height);
433
- });
434
- if (animated) {
435
- $ui.animate({
436
- duration: 0.3,
437
- animation: () => this.view.relayout(),
438
- });
439
- }
440
- }
441
-
442
- _useTightenedLayout() {
443
- this._cells.forEach((n) => {
444
- n._useTightenedLayout();
445
- });
446
- }
447
-
448
- _useLoosedLayout() {
449
- this._cells.forEach((n) => {
450
- n._useLoosedLayout();
451
- });
452
- }
453
- }