@24i/bigscreen-sdk 1.0.54-alpha.2836 → 2.1.1-alpha.2133

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 (278) hide show
  1. package/README.md +3 -2
  2. package/package.json +34 -53
  3. package/packages/adobe-heartbeat/src/AdobeHeartbeat.ts +9 -9
  4. package/packages/async-image/src/AsyncImage.tsx +10 -15
  5. package/packages/developer-tools/PlayerDebugWindow/README.md +1 -1
  6. package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolsList.tsx +0 -11
  7. package/packages/developer-tools/src/PlayerDebugWindow/PlayerDebugWindow.tsx +5 -5
  8. package/packages/developer-tools/src/PlayerDebugWindow/constants.ts +0 -15
  9. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoDetail.tsx +1 -2
  10. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoProvider.ts +5 -57
  11. package/packages/developer-tools/src/TechnicalInfo/__mocks__/Device.ts +0 -12
  12. package/packages/developer-tools/src/TechnicalInfo/translations.ts +0 -8
  13. package/packages/device/src/getKeyDigit.ts +2 -2
  14. package/packages/device/src/resolver/resolver.ts +5 -18
  15. package/packages/digital-clock/src/DigitalClock.tsx +4 -15
  16. package/packages/driver-androidtv/src/DeviceAndroidTV.ts +9 -92
  17. package/packages/driver-androidtv/src/__mocks__/javaScriptBridge.ts +5 -38
  18. package/packages/driver-androidtv/src/index.ts +0 -1
  19. package/packages/driver-androidtv/src/keymap.ts +0 -18
  20. package/packages/driver-androidtv/src/types.ts +16 -144
  21. package/packages/driver-base/src/DeviceBase.ts +2 -80
  22. package/packages/driver-base/src/KeyMap/Key.ts +1 -8
  23. package/packages/driver-base/src/KeyMap/KeyMap.ts +0 -4
  24. package/packages/driver-base/src/KeyMap/interface.ts +0 -1
  25. package/packages/driver-base/src/KeyMap/overrideValues.ts +1 -2
  26. package/packages/driver-base/src/__mocks__/DeviceBase.ts +0 -24
  27. package/packages/driver-base/src/__mocks__/keyMap.ts +0 -1
  28. package/packages/driver-base/src/index.ts +0 -3
  29. package/packages/driver-base/src/types/DeviceEvent.ts +0 -2
  30. package/packages/driver-base/src/types/KeycodeKeyMap.ts +0 -1
  31. package/packages/driver-browser/src/DeviceBrowser.ts +0 -26
  32. package/packages/driver-browser/src/keymap.ts +0 -8
  33. package/packages/driver-entone/src/DeviceEntone.ts +1 -31
  34. package/packages/driver-entone/src/keymap.ts +0 -1
  35. package/packages/driver-hbbtv/src/DeviceHbbTV.ts +0 -26
  36. package/packages/driver-kreatv/src/DeviceKreaTV.ts +0 -26
  37. package/packages/driver-saphi/src/DeviceSaphi.ts +0 -26
  38. package/packages/driver-tizen/src/DeviceTizen.ts +7 -126
  39. package/packages/driver-tizen/src/ITizen.ts +202 -15116
  40. package/packages/driver-tizen/src/IWebapis.ts +87 -8643
  41. package/packages/driver-tizen/src/TizenKeys.ts +2 -4
  42. package/packages/driver-tizen/src/__mocks__/tizen.ts +8 -7
  43. package/packages/driver-tizen/src/constants.ts +195 -1
  44. package/packages/driver-tizen/src/types.ts +14 -0
  45. package/packages/driver-vidaa/src/DeviceVidaa.ts +2 -29
  46. package/packages/driver-vidaa/src/__mocks__/vidaa.ts +1 -1
  47. package/packages/driver-vidaa/src/keymap.ts +0 -2
  48. package/packages/driver-webos/src/DeviceWebos.ts +0 -55
  49. package/packages/driver-webos/src/__mocks__/webos.ts +0 -33
  50. package/packages/driver-webos/src/constants.ts +0 -1
  51. package/packages/driver-webos/src/keymap.ts +1 -2
  52. package/packages/driver-webos/src/types.ts +0 -30
  53. package/packages/driver-xbox/src/DeviceXbox.ts +1 -30
  54. package/packages/driver-xbox/src/keymap.ts +1 -1
  55. package/packages/epg/README.md +1 -3
  56. package/packages/epg/src/v2/Cell.tsx +2 -16
  57. package/packages/epg/src/v2/DataManager.ts +41 -112
  58. package/packages/epg/src/v2/DatePicker.tsx +3 -9
  59. package/packages/epg/src/v2/DateToast/DateToast.tsx +9 -12
  60. package/packages/epg/src/v2/Day.tsx +3 -6
  61. package/packages/epg/src/v2/Epg.tsx +5 -5
  62. package/packages/epg/src/v2/MockGenerator/generator.ts +2 -3
  63. package/packages/epg/src/v2/ProgramInfo/utils.ts +3 -4
  64. package/packages/epg/src/v2/Row.tsx +1 -3
  65. package/packages/epg/src/v2/TimelineSection.tsx +1 -4
  66. package/packages/epg/src/v2/basic/CellsManager.tsx +2 -7
  67. package/packages/epg/src/v2/basic/RowsManager.tsx +1 -3
  68. package/packages/epg/src/v2/interface.ts +0 -13
  69. package/packages/events-manager/src/EventsManager.ts +56 -1
  70. package/packages/focus/README.md +0 -33
  71. package/packages/focus/src/IFocusable.ts +0 -1
  72. package/packages/focus/src/Layout/Base.tsx +6 -41
  73. package/packages/focus/src/Layout/Matrix.tsx +19 -51
  74. package/packages/focus/src/Layout/__test__/Base.spec.ts +180 -0
  75. package/packages/focus/src/Layout/__test__/Horizontal.spec.ts +94 -0
  76. package/packages/focus/src/Layout/__test__/Matrix.spec.ts +261 -0
  77. package/packages/focus/src/Layout/__test__/Vertical.spec.ts +46 -0
  78. package/packages/focus/src/Layout/__test__/isRtl.spec.ts +23 -0
  79. package/packages/focus/src/Layout/__test__/shared.ts +19 -0
  80. package/packages/focus/src/focusFirstExisting.ts +1 -7
  81. package/packages/focus/src/index.ts +1 -2
  82. package/packages/gallup/src/Gallup.ts +3 -3
  83. package/packages/grid/src/Base/Base.tsx +10 -15
  84. package/packages/grid/src/FirstOnlyGrid/FirstOnlyGrid.tsx +2 -4
  85. package/packages/grid/src/UnifiedGridController/UnifiedGridController.ts +6 -6
  86. package/packages/icon/src/Icon.tsx +5 -27
  87. package/packages/input/README.md +1 -1
  88. package/packages/input/src/Input.tsx +10 -16
  89. package/packages/interactable/README.md +1 -2
  90. package/packages/interactable/src/Interactable.tsx +3 -9
  91. package/packages/interactable/src/interface.ts +0 -1
  92. package/packages/jsx/src/index.ts +1 -1
  93. package/packages/jsx/src/test-utils/index.ts +0 -1
  94. package/packages/keyboard/src/Backdrop/Backdrop.scss +0 -2
  95. package/packages/keyboard/src/KeyboardBase.tsx +4 -16
  96. package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.scss +0 -4
  97. package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.tsx +20 -28
  98. package/packages/keyboard/src/WhitelabelKeyboard/_sizes.1080.scss +0 -1
  99. package/packages/keyboard/src/WhitelabelKeyboard/_sizes.scss +0 -1
  100. package/packages/keyboard/src/WhitelabelKeyboard/layouts/index.ts +0 -12
  101. package/packages/keyboard/src/WhitelabelKeyboard/types.ts +0 -1
  102. package/packages/keyboard/src/utils/caret.ts +8 -5
  103. package/packages/keyboard/src/utils/input.ts +6 -5
  104. package/packages/l10n/README.md +0 -18
  105. package/packages/l10n/src/date/common.ts +6 -18
  106. package/packages/l10n/src/date/cs.ts +8 -2
  107. package/packages/l10n/src/date/en-001.ts +3 -3
  108. package/packages/l10n/src/date/en-common.ts +4 -5
  109. package/packages/l10n/src/date/en-us.ts +3 -3
  110. package/packages/l10n/src/date/iso.ts +13 -12
  111. package/packages/l10n/src/date/types.ts +0 -9
  112. package/packages/l10n/src/l10n.ts +3 -61
  113. package/packages/list/src/Base/Base.tsx +9 -19
  114. package/packages/list/src/Base/interface.ts +2 -2
  115. package/packages/list/src/BasicList/BasicList.tsx +7 -7
  116. package/packages/list/src/CenteredList/CenteredList.tsx +2 -2
  117. package/packages/list/src/CenteredList/controller.ts +1 -0
  118. package/packages/list/src/EdgeOffsetList/EdgeOffsetList.tsx +10 -10
  119. package/packages/list/src/FirstOnlyList/FirstOnlyList.tsx +2 -2
  120. package/packages/list/src/FirstOnlyVariedList/FirstOnlyVariedList.tsx +2 -2
  121. package/packages/list/src/FixedToEndList/FixedToEndList.tsx +2 -2
  122. package/packages/list/src/UnifiedListController/UnifiedListController.ts +2 -6
  123. package/packages/list/src/interface.ts +2 -2
  124. package/packages/logger/src/loggers/ConsoleLogger/ConsoleLogger.ts +1 -7
  125. package/packages/logger/src/loggers/SentryLogger/Sentry.ts +0 -1
  126. package/packages/logger/src/loggers/SentryLogger/SentryLogger.ts +3 -5
  127. package/packages/menu/src/MenuAndContentContainer/MenuAndContentContainer.tsx +3 -31
  128. package/packages/menu/src/MenuAndContentContainer/interface.ts +0 -8
  129. package/packages/modal-service/README.md +1 -4
  130. package/packages/modal-service/src/ModalService.tsx +5 -29
  131. package/packages/perf-utils/README.md +120 -1
  132. package/packages/perf-utils/src/array/filter.ts +54 -1
  133. package/packages/perf-utils/src/array/find.ts +43 -1
  134. package/packages/perf-utils/src/array/findIndex.ts +43 -1
  135. package/packages/perf-utils/src/array/forEach.ts +48 -1
  136. package/packages/perf-utils/src/array/includes.ts +41 -1
  137. package/packages/perf-utils/src/array/includesNaN.ts +32 -1
  138. package/packages/perf-utils/src/array/index.ts +7 -1
  139. package/packages/perf-utils/src/array/map.ts +52 -1
  140. package/packages/player-ui/README.md +1 -1
  141. package/packages/player-ui/src/CurrentTime.tsx +2 -2
  142. package/packages/player-ui/src/Duration.tsx +2 -2
  143. package/packages/player-ui/src/PauseButton.tsx +0 -8
  144. package/packages/player-ui/src/PlayerInteractable.tsx +0 -1
  145. package/packages/player-ui/src/PlayerTime.tsx +1 -3
  146. package/packages/player-ui/src/PlayerUI.tsx +35 -68
  147. package/packages/player-ui/src/RemainingTime.tsx +2 -2
  148. package/packages/player-ui/src/Seekbar.tsx +18 -110
  149. package/packages/player-ui/src/Seeking.ts +16 -57
  150. package/packages/player-ui/src/Subtitles.tsx +2 -2
  151. package/packages/player-ui/src/index.ts +0 -1
  152. package/packages/player-ui/src/mocks.ts +8 -32
  153. package/packages/player-ui/src/timeUtils.ts +3 -3
  154. package/packages/player-ui/src/types.ts +3 -9
  155. package/packages/router/README.md +0 -1
  156. package/packages/router/src/Route.tsx +27 -61
  157. package/packages/router/src/Router.tsx +14 -63
  158. package/packages/router/src/history.ts +1 -8
  159. package/packages/router/src/index.ts +1 -1
  160. package/packages/router/src/utils.ts +4 -9
  161. package/packages/sass-utils/src/linear-gradient.scss +4 -9
  162. package/packages/sass-utils/src/scale.1080.scss +1 -3
  163. package/packages/sass-utils/src/scale.720.scss +1 -1
  164. package/packages/time/README.md +1 -4
  165. package/packages/time/src/Time.ts +13 -35
  166. package/packages/time/src/constants.ts +0 -1
  167. package/packages/toast/src/ToastService.tsx +5 -16
  168. package/packages/types-bigscreen-jsx/README.md +4 -5
  169. package/packages/types-bigscreen-jsx/index.d.ts +67 -72
  170. package/packages/utils/README.md +0 -27
  171. package/packages/utils/src/elementUtils.ts +0 -25
  172. package/packages/utils/src/index.ts +0 -8
  173. package/packages/utils/src/scaledImage.ts +3 -6
  174. package/packages/utils/src/textUtils.ts +14 -46
  175. package/packages/utils/src/wait.ts +1 -3
  176. package/packages/utils/src/xhr/xhrSend.ts +1 -3
  177. package/packages/utils/src/xhr/xhrSendRetry.ts +1 -3
  178. package/packages/zapping/src/ChannelZapping.ts +0 -9
  179. package/packages/zapping/src/Zapping.tsx +0 -10
  180. package/ci/is_ci_job_skippable.sh +0 -153
  181. package/packages/analytics/README.md +0 -8
  182. package/packages/analytics/src/A.ts +0 -1
  183. package/packages/analytics/src/Analytics.ts +0 -1
  184. package/packages/analytics/src/analyticsOnScroll.ts +0 -1
  185. package/packages/analytics/src/clients/ConsoleAnalytics/ConsoleAnalytics.ts +0 -1
  186. package/packages/analytics/src/clients/ConsoleAnalytics/index.ts +0 -1
  187. package/packages/analytics/src/clients/GoogleAnalytics/GoogleAnalytics.ts +0 -196
  188. package/packages/analytics/src/clients/GoogleAnalytics/constants.ts +0 -126
  189. package/packages/analytics/src/clients/GoogleAnalytics/getUrl.ts +0 -17
  190. package/packages/analytics/src/clients/GoogleAnalytics/index.ts +0 -2
  191. package/packages/analytics/src/clients/GoogleAnalytics/interface.ts +0 -82
  192. package/packages/analytics/src/clients/GoogleAnalytics/mapPayload.ts +0 -51
  193. package/packages/analytics/src/clients/GoogleAnalytics/prepareBody.ts +0 -14
  194. package/packages/analytics/src/clients/TealiumAnalytics/TealiumAnalytics.ts +0 -181
  195. package/packages/analytics/src/clients/TealiumAnalytics/constants.ts +0 -106
  196. package/packages/analytics/src/clients/TealiumAnalytics/findForLanguage.ts +0 -9
  197. package/packages/analytics/src/clients/TealiumAnalytics/index.ts +0 -4
  198. package/packages/analytics/src/clients/TealiumAnalytics/interface.ts +0 -35
  199. package/packages/analytics/src/clients/TealiumAnalytics/mappers/__mocks__/mediaPayload.ts +0 -72
  200. package/packages/analytics/src/clients/TealiumAnalytics/mappers/helper.ts +0 -36
  201. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapAppError.ts +0 -13
  202. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapAppOpen.ts +0 -13
  203. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapFavoriteAdd.ts +0 -11
  204. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapFavoriteRemove.ts +0 -11
  205. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapPlayerClose.ts +0 -15
  206. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapPlayerOpen.ts +0 -15
  207. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSceneView.ts +0 -18
  208. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearch.ts +0 -18
  209. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearchFailed.ts +0 -8
  210. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearchSuccess.ts +0 -8
  211. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoPause.ts +0 -15
  212. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoProgress.ts +0 -18
  213. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoResume.ts +0 -15
  214. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoStart.ts +0 -15
  215. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoStop.ts +0 -15
  216. package/packages/analytics/src/clients/TealiumAnalytics/types.ts +0 -161
  217. package/packages/analytics/src/clients/TwentyFourIQ/TwentyFourIQClient.ts +0 -107
  218. package/packages/analytics/src/clients/TwentyFourIQ/constants.ts +0 -111
  219. package/packages/analytics/src/clients/TwentyFourIQ/helper.ts +0 -34
  220. package/packages/analytics/src/clients/TwentyFourIQ/index.ts +0 -2
  221. package/packages/analytics/src/clients/TwentyFourIQ/interface.ts +0 -34
  222. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdEvent.ts +0 -20
  223. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBase.ts +0 -24
  224. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBuffering.ts +0 -15
  225. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerClose.ts +0 -25
  226. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerOpen.ts +0 -17
  227. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapSceneView.ts +0 -15
  228. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapScroll.ts +0 -17
  229. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoComplete.ts +0 -22
  230. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoPause.ts +0 -25
  231. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoProgress.ts +0 -25
  232. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStart.ts +0 -34
  233. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStop.ts +0 -32
  234. package/packages/analytics/src/clients/TwentyFourIQ/types.ts +0 -132
  235. package/packages/analytics/src/constants.ts +0 -1
  236. package/packages/analytics/src/index.ts +0 -3
  237. package/packages/analytics/src/interface.ts +0 -1
  238. package/packages/analytics/src/utils/generateSessionId.ts +0 -8
  239. package/packages/device/src/driver/index.firetv.ts +0 -1
  240. package/packages/device/src/driver/index.smartcast.tv.ts +0 -1
  241. package/packages/driver-base/src/types/AdInfo.ts +0 -5
  242. package/packages/driver-base/src/types/InAppPurchase.ts +0 -25
  243. package/packages/driver-firetv/src/DeviceFireTV.ts +0 -91
  244. package/packages/driver-firetv/src/__mocks__/javaScriptBridge.ts +0 -45
  245. package/packages/driver-firetv/src/index.ts +0 -1
  246. package/packages/driver-firetv/src/types.ts +0 -1
  247. package/packages/driver-smartcast/src/DeviceSmartCast.ts +0 -394
  248. package/packages/driver-smartcast/src/__mocks__/api.ts +0 -79
  249. package/packages/driver-smartcast/src/index.ts +0 -1
  250. package/packages/driver-smartcast/src/keymap.ts +0 -9
  251. package/packages/driver-smartcast/src/types.ts +0 -111
  252. package/packages/focus/src/hasFocus.ts +0 -36
  253. package/packages/jsx/src/test-utils/keyup.ts +0 -27
  254. package/packages/keyboard/src/WhitelabelKeyboard/layouts/arabic.ts +0 -27
  255. package/packages/keyboard/src/WhitelabelKeyboard/layouts/burmese.ts +0 -27
  256. package/packages/keyboard/src/WhitelabelKeyboard/layouts/dari.ts +0 -28
  257. package/packages/keyboard/src/WhitelabelKeyboard/layouts/korean.ts +0 -26
  258. package/packages/keyboard/src/WhitelabelKeyboard/layouts/pashto.ts +0 -27
  259. package/packages/keyboard/src/WhitelabelKeyboard/layouts/persian.ts +0 -27
  260. package/packages/keyboard/src/WhitelabelKeyboard/layouts/russian.ts +0 -27
  261. package/packages/keyboard/src/WhitelabelKeyboard/layouts/spanish.ts +0 -26
  262. package/packages/keyboard/src/WhitelabelKeyboard/layouts/tibetan.ts +0 -26
  263. package/packages/keyboard/src/WhitelabelKeyboard/layouts/turkish.ts +0 -26
  264. package/packages/keyboard/src/WhitelabelKeyboard/layouts/ukrainian.ts +0 -27
  265. package/packages/keyboard/src/WhitelabelKeyboard/layouts/urdu.ts +0 -26
  266. package/packages/keyboard/src/utils/setInputSelectionRange.ts +0 -10
  267. package/packages/l10n/src/date/de.ts +0 -97
  268. package/packages/l10n/src/date/es.ts +0 -71
  269. package/packages/l10n/src/date/fr.ts +0 -94
  270. package/packages/l10n/src/date/he.ts +0 -101
  271. package/packages/time/src/adapters/24iMediaTimeApi.ts +0 -47
  272. package/packages/time/src/services/24iMediaTimeApi/24iMediaTimeApi.ts +0 -43
  273. package/packages/time/src/services/24iMediaTimeApi/index.ts +0 -6
  274. package/packages/utils/src/forceReflow.ts +0 -14
  275. package/packages/utils/src/keyPress/index.ts +0 -6
  276. package/packages/utils/src/keyPress/keyPressSimulator.ts +0 -74
  277. package/packages/utils/src/keyPress/simulateKeyPress.ts +0 -25
  278. package/utils/release/release.ts +0 -156
@@ -1,26 +1,11 @@
1
- import { format } from 'date-fns';
2
- import * as fnsLocales from 'date-fns/locale';
3
1
  import { EventsManager, IEvents } from '@24i/bigscreen-sdk/events-manager';
4
- import { csDateFormatter } from './date/cs';
5
- import { deDateFormatter } from './date/de';
6
- import { esDateFormatter } from './date/es';
7
- import { frDateFormatter } from './date/fr';
8
- import { heDateFormatter } from './date/he';
9
2
  import { isoDateFormatter } from './date/iso';
10
3
  import { Formatters } from './types';
11
- import { DateTimeFormatOptions } from './date/types';
12
4
 
13
5
  type Events = {
14
6
  'localechange': () => void,
15
7
  };
16
-
17
- type DateFnsConfig = Partial<
18
- Record<NonNullable<DateTimeFormatOptions['formatType']>, string | null>
19
- >;
20
-
21
8
  class L10n implements IEvents<Events> {
22
- private dateFnsConfig: DateFnsConfig = {};
23
-
24
9
  private readonly events = new EventsManager<Events>();
25
10
 
26
11
  addEventListener = this.events.addEventListener;
@@ -34,11 +19,6 @@ class L10n implements IEvents<Events> {
34
19
  private readonly formatters: Formatters = {
35
20
  date: {
36
21
  iso: isoDateFormatter,
37
- cs: csDateFormatter,
38
- fr: frDateFormatter,
39
- es: esDateFormatter,
40
- de: deDateFormatter,
41
- he: heDateFormatter,
42
22
  },
43
23
  };
44
24
 
@@ -53,53 +33,15 @@ class L10n implements IEvents<Events> {
53
33
  return this.formatters[formatter].iso;
54
34
  }
55
35
 
56
- init(config: DateFnsConfig) {
57
- this.dateFnsConfig = config;
58
- }
59
-
60
36
  setLocale(locale: string) {
61
37
  if (locale === this.locale) return;
62
38
  this.locale = locale;
63
39
  this.triggerEvent('localechange');
64
40
  }
65
41
 
66
- getDateFnsFormatter = (
67
- timestamp: number | Date,
68
- locale: string,
69
- fallbackCb: (options?: DateTimeFormatOptions) => string,
70
- fallbackFormatType?: DateTimeFormatOptions['formatType'],
71
- ) => (
72
- (options?: DateTimeFormatOptions): string => {
73
- const { formatType, ...baseOptions } = options || {};
74
- const dateFnsBsFormat = this.dateFnsConfig?.[formatType || fallbackFormatType!];
75
- if (!dateFnsBsFormat) {
76
- if (!options || Object.keys(baseOptions).length === 0) {
77
- return fallbackCb();
78
- }
79
- return fallbackCb(baseOptions);
80
- }
81
- return format(
82
- timestamp,
83
- dateFnsBsFormat,
84
- { locale: fnsLocales[locale as keyof typeof fnsLocales] },
85
- );
86
- }
87
- );
88
-
89
- date(timestamp: number | Date, locale: string = this.locale) {
90
- const formatter = this.getFormatterByLocale('date', locale)(timestamp);
91
-
92
- return {
93
- toLocaleString: this.getDateFnsFormatter(
94
- timestamp, locale, formatter.toLocaleString,
95
- ),
96
- toLocaleTimeString: this.getDateFnsFormatter(
97
- timestamp, locale, formatter.toLocaleTimeString, 'timeFormat',
98
- ),
99
- toLocaleDateString: this.getDateFnsFormatter(
100
- timestamp, locale, formatter.toLocaleDateString, 'dateFormatShort',
101
- ),
102
- };
42
+ date(timestamp: number | Date, locale?: string) {
43
+ const formatter = this.getFormatterByLocale('date', locale);
44
+ return formatter(timestamp);
103
45
  }
104
46
 
105
47
  addFormatter<T extends keyof Formatters, U extends keyof Formatters[T]>(
@@ -100,13 +100,11 @@ export class ListBase<T extends Item<U>, U>
100
100
  componentDidMount() {
101
101
  this.scrollerDom.current!.addEventListener('wheel', this.onWheel);
102
102
  this.scroller.current!.wrapRef.current!.addEventListener('keyup', this.onKeyUp);
103
- window.document.addEventListener('keyup', this.onGlobalKeyUp, true);
104
103
  }
105
104
 
106
105
  componentWillUnmount() {
107
106
  this.scrollerDom.current!.removeEventListener('wheel', this.onWheel);
108
107
  this.scroller.current!.wrapRef.current!.removeEventListener('keyup', this.onKeyUp);
109
- window.document.removeEventListener('keyup', this.onGlobalKeyUp, true);
110
108
  }
111
109
 
112
110
  onKeyDown = (event: KeyboardEvent) => {
@@ -132,9 +130,6 @@ export class ListBase<T extends Item<U>, U>
132
130
  onKeyUp = () => {
133
131
  this.stopFastScrolling();
134
132
  this.fastFocusingOptimizer.stop();
135
- };
136
-
137
- onGlobalKeyUp = () => {
138
133
  this.preventBlurCounter = 0;
139
134
  };
140
135
 
@@ -157,6 +152,14 @@ export class ListBase<T extends Item<U>, U>
157
152
  }
158
153
  };
159
154
 
155
+ shouldPreventBlur(event: KeyboardEvent) {
156
+ const { horizontal, preventBlurOnLongPress } = this.props;
157
+ return (this.preventBlurCounter >= PREVENT_BLUR_ON_LONG_PRESS_KEYDOWNS && (
158
+ (preventBlurOnLongPress.forward && isForward(event, horizontal))
159
+ || (preventBlurOnLongPress.backward && isBackward(event, horizontal))
160
+ ));
161
+ }
162
+
160
163
  getRefAtIndex(i: number): Reference<T> {
161
164
  const ref = this.itemRefs[i];
162
165
  if (!ref) {
@@ -198,14 +201,6 @@ export class ListBase<T extends Item<U>, U>
198
201
  this.fastScrollingCounter.reset();
199
202
  }
200
203
 
201
- shouldPreventBlur(event: KeyboardEvent) {
202
- const { horizontal, preventBlurOnLongPress } = this.props;
203
- return (this.preventBlurCounter >= PREVENT_BLUR_ON_LONG_PRESS_KEYDOWNS && (
204
- (preventBlurOnLongPress.forward && isForward(event, horizontal))
205
- || (preventBlurOnLongPress.backward && isBackward(event, horizontal))
206
- ));
207
- }
208
-
209
204
  animatedScrollStarted() {
210
205
  this.isAnimatedScrollRunning = true;
211
206
  }
@@ -365,10 +360,7 @@ export class ListBase<T extends Item<U>, U>
365
360
  }
366
361
 
367
362
  render() {
368
- const {
369
- horizontal, className,
370
- mrcuMountingPoint, mrcuForward, mrcuBackward, forward, backward,
371
- } = this.props;
363
+ const { horizontal, className, mrcuMountingPoint } = this.props;
372
364
  return (
373
365
  <Scroller
374
366
  className={className}
@@ -383,8 +375,6 @@ export class ListBase<T extends Item<U>, U>
383
375
  ref={this.mrcuRef}
384
376
  getMountingPoint={() => mrcuMountingPoint || this.scroller.current!.wrapRef}
385
377
  {...this.props}
386
- forward={mrcuForward || forward}
387
- backward={mrcuBackward || backward}
388
378
  />
389
379
  </Scroller>
390
380
  );
@@ -4,11 +4,11 @@ export type MouseNavigationProps = {
4
4
  /**
5
5
  * Function to call on the press of the right arrow.
6
6
  */
7
- forward(): void,
7
+ forward(): boolean,
8
8
  /**
9
9
  * Function to call on the press of the left arrow.
10
10
  */
11
- backward(): void,
11
+ backward(): boolean,
12
12
  /**
13
13
  * Function which determines whether to show the forward arrow.
14
14
  */
@@ -127,34 +127,34 @@ export class BasicList<T extends Item<U>, U>
127
127
  this.controller.focusCurrentItem(options);
128
128
  }
129
129
 
130
- scrollTo(index: number, animate?: boolean) {
130
+ scrollTo(index: number) {
131
131
  const list = this.base.current!;
132
132
  const safeIndex = Math.max(0, Math.min(index, list.data.length - 1));
133
133
  if (list.index === safeIndex) return;
134
134
  if (list.index < safeIndex) {
135
- this.scrollToForward(safeIndex, animate);
135
+ this.scrollToForward(safeIndex);
136
136
  } else {
137
- this.scrollToBackward(safeIndex, animate);
137
+ this.scrollToBackward(safeIndex);
138
138
  }
139
139
  }
140
140
 
141
- private scrollToForward(index: number, animate?: boolean) {
141
+ private scrollToForward(index: number) {
142
142
  const { visibleItems } = this.props;
143
143
  const list = this.base.current!;
144
144
  list.index = index;
145
145
  const scrollTarget = list.index - visibleItems + VISIBLE_ITEMS_OFFSET;
146
146
  if (scrollTarget > this.controller.scrollIndex) {
147
- this.controller.scroll(scrollTarget, animate);
147
+ this.controller.scroll(scrollTarget);
148
148
  }
149
149
  }
150
150
 
151
- private scrollToBackward(index: number, animate?: boolean) {
151
+ private scrollToBackward(index: number) {
152
152
  const { firstScrollStep, scrollStep } = this.props;
153
153
  const list = this.base.current!;
154
154
  list.index = index;
155
155
  const offset = firstScrollStep < scrollStep ? 1 : 0;
156
156
  if (list.index - offset < this.controller.scrollIndex) {
157
- this.controller.scroll(list.index, animate);
157
+ this.controller.scroll(list.index);
158
158
  }
159
159
  }
160
160
 
@@ -90,12 +90,12 @@ export class CenteredList<T extends Item<U>, U>
90
90
  this.controller.focusCurrentItem(options);
91
91
  }
92
92
 
93
- scrollTo(index: number, animate?: boolean) {
93
+ scrollTo(index: number) {
94
94
  const list = this.base.current!;
95
95
  const safeIndex = Math.max(0, Math.min(index, list.data.length - 1));
96
96
  if (list.index === safeIndex) return;
97
97
  list.index = safeIndex;
98
- this.controller.scroll(list.index, animate);
98
+ this.controller.scroll(list.index);
99
99
  }
100
100
 
101
101
  render() {
@@ -30,6 +30,7 @@ export class CenteredListController<T> extends UnifiedListController<T, Props<an
30
30
  this.scrollListScroller(-this.topOffset);
31
31
  if (initialFocusIndex !== 0) {
32
32
  base.index = initialFocusIndex!;
33
+ this.focusCurrentItem();
33
34
  this.scroll(base.index, false);
34
35
  }
35
36
  }
@@ -81,14 +81,14 @@ export class EdgeOffsetList<T extends Item<U>, U>
81
81
  const list = this.base.current!;
82
82
  list.index = Math.max(
83
83
  0,
84
- Math.min(scrollIndex + visibleItems - VISIBLE_ITEMS_OFFSET - 1, list.data.length - 1),
84
+ Math.min(scrollIndex + visibleItems - VISIBLE_ITEMS_OFFSET, list.data.length - 1),
85
85
  );
86
86
  this.forward();
87
87
  };
88
88
 
89
89
  mrcuBackward = () => {
90
90
  const list = this.base.current!;
91
- list.index = this.controller.scrollIndex + 1;
91
+ list.index = this.controller.scrollIndex;
92
92
  this.backward();
93
93
  };
94
94
 
@@ -120,18 +120,18 @@ export class EdgeOffsetList<T extends Item<U>, U>
120
120
  this.controller.focusCurrentItem(options);
121
121
  }
122
122
 
123
- scrollTo(index: number, animate?: boolean) {
123
+ scrollTo(index: number) {
124
124
  const list = this.base.current!;
125
125
  const safeIndex = Math.max(0, Math.min(index, list.data.length - 1));
126
126
  if (list.index === safeIndex) return;
127
127
  if (list.index < safeIndex) {
128
- this.scrollToForward(safeIndex, animate);
128
+ this.scrollToForward(safeIndex);
129
129
  } else {
130
- this.scrollToBackward(safeIndex, animate);
130
+ this.scrollToBackward(safeIndex);
131
131
  }
132
132
  }
133
133
 
134
- private scrollToForward(index: number, animate?: boolean) {
134
+ private scrollToForward(index: number) {
135
135
  const { visibleItems, edgeOffset } = this.props;
136
136
  const list = this.base.current!;
137
137
  list.index = index;
@@ -140,16 +140,16 @@ export class EdgeOffsetList<T extends Item<U>, U>
140
140
  : edgeOffset + list.index - list.data.length - 1;
141
141
  const scrollTarget = list.index - visibleItems + offset + VISIBLE_ITEMS_OFFSET;
142
142
  if (scrollTarget > this.controller.scrollIndex) {
143
- this.controller.scroll(scrollTarget, animate);
143
+ this.controller.scroll(scrollTarget);
144
144
  }
145
145
  }
146
146
 
147
- private scrollToBackward(index: number, animate?: boolean) {
147
+ private scrollToBackward(index: number) {
148
148
  const { edgeOffset } = this.props;
149
149
  const list = this.base.current!;
150
150
  list.index = index;
151
- if (list.index <= this.controller.scrollIndex) {
152
- this.controller.scroll(list.index < edgeOffset ? 0 : list.index - edgeOffset, animate);
151
+ if (list.index < this.controller.scrollIndex) {
152
+ this.controller.scroll(list.index < edgeOffset ? 0 : list.index - edgeOffset);
153
153
  }
154
154
  }
155
155
 
@@ -96,12 +96,12 @@ export class FirstOnlyList<T extends Item<U>, U>
96
96
  this.controller.focusCurrentItem(options);
97
97
  }
98
98
 
99
- scrollTo(index: number, animate?: boolean) {
99
+ scrollTo(index: number) {
100
100
  const list = this.base.current!;
101
101
  const safeIndex = Math.max(0, Math.min(index, list.data.length - 1));
102
102
  if (list.index === safeIndex) return;
103
103
  list.index = safeIndex;
104
- this.controller.scroll(list.index, animate);
104
+ this.controller.scroll(list.index);
105
105
  }
106
106
 
107
107
  render() {
@@ -106,12 +106,12 @@ export class FirstOnlyVariedList<T extends Item<U>, U> extends Component<Props<T
106
106
  this.controller.focusCurrentItem(options);
107
107
  }
108
108
 
109
- scrollTo(index: number, animate?: boolean) {
109
+ scrollTo(index: number) {
110
110
  const list = this.base.current!;
111
111
  const safeIndex = Math.max(0, Math.min(index, list.data.length - 1));
112
112
  if (list.index === safeIndex) return;
113
113
  list.index = safeIndex;
114
- this.controller.scroll(0, animate);
114
+ this.controller.scroll(0);
115
115
  }
116
116
 
117
117
  render() {
@@ -99,12 +99,12 @@ export class FixedToEndList<T extends Item<U>, U>
99
99
  this.controller.focusCurrentItem(options);
100
100
  }
101
101
 
102
- scrollTo(index: number, animate?: boolean) {
102
+ scrollTo(index: number) {
103
103
  const list = this.base.current!;
104
104
  const safeIndex = Math.max(0, Math.min(index, list.data.length - 1));
105
105
  if (list.index === safeIndex) return;
106
106
  list.index = safeIndex;
107
- this.controller.scroll(list.index, animate);
107
+ this.controller.scroll(list.index);
108
108
  }
109
109
 
110
110
  render() {
@@ -144,16 +144,12 @@ extends SharedProps<any, any> = SharedProps<any, any>>
144
144
  if (backward) {
145
145
  nextScrollIndex = this.scrollPixelsToIndex(scrollValuePx, backward);
146
146
  if (this.lastScrollIndex !== nextScrollIndex) {
147
- for (let i = this.lastScrollIndex - 1; i >= nextScrollIndex; i--) {
148
- this.adjustItemsOffsetsBackward(i);
149
- }
147
+ this.adjustItemsOffsetsBackward(nextScrollIndex);
150
148
  }
151
149
  } else {
152
150
  nextScrollIndex = this.scrollPixelsToIndex(scrollValuePx, backward);
153
151
  if (this.lastScrollIndex !== nextScrollIndex) {
154
- for (let i = this.lastScrollIndex + 1; i <= nextScrollIndex; i++) {
155
- this.adjustItemsOffsetsForward(i);
156
- }
152
+ this.adjustItemsOffsetsForward(nextScrollIndex);
157
153
  }
158
154
  }
159
155
  this.lastScrollIndex = nextScrollIndex;
@@ -12,7 +12,7 @@ export interface List<
12
12
  controller: UnifiedListController<U>,
13
13
  appendData(data: U[]): void,
14
14
  prependData(data: U[]): void,
15
- scrollTo(index: number, animate?: boolean): void,
15
+ scrollTo(index: number): void,
16
16
  }
17
17
 
18
18
  export interface VariedList<
@@ -22,7 +22,7 @@ export interface VariedList<
22
22
  controller: UnifiedVariedListController<U>,
23
23
  appendData(data: U[]): void,
24
24
  prependData(data: U[]): void,
25
- scrollTo(index: number, animate?: boolean): void,
25
+ scrollTo(index: number): void,
26
26
  }
27
27
 
28
28
  export interface ListComponent<
@@ -43,13 +43,7 @@ export class ConsoleLogger extends LoggerBase {
43
43
  let errorMessage = category ? `[${category.toUpperCase()}] ${message}` : message;
44
44
  if (additionalData) {
45
45
  if (additionalData.message) errorMessage += ` - ${additionalData.message}`;
46
- let stringifiedAdditionalData;
47
- try {
48
- stringifiedAdditionalData = JSON.stringify(
49
- additionalData, null, LOG_MESSAGE_SPACE_SIZE,
50
- );
51
- } catch {}
52
- logFunction(errorMessage, stringifiedAdditionalData);
46
+ logFunction(errorMessage, JSON.stringify(additionalData, null, LOG_MESSAGE_SPACE_SIZE));
53
47
  } else {
54
48
  logFunction(errorMessage);
55
49
  }
@@ -1,2 +1 @@
1
1
  export * as Sentry from '@sentry/browser';
2
- export { ErrorEvent } from '@sentry/types';
@@ -3,7 +3,7 @@ import { IStorage, Storage as DefaultStorage } from '@24i/bigscreen-sdk/storage'
3
3
  import { LogOptions, LogLevel, SentryLoggerEnvironment, XhrBreadcrumbData } from '../../types';
4
4
  import { getFormattedMemoryHeapInfo, getFormattedUsedLocalStorageSize } from '../../utils';
5
5
  import { LoggerBase, Config as LoggerBaseConfig } from '../LoggerBase';
6
- import { Sentry, ErrorEvent } from './Sentry';
6
+ import { Sentry } from './Sentry';
7
7
 
8
8
  type Config = {
9
9
  sentryOptions: Sentry.BrowserOptions;
@@ -46,7 +46,7 @@ export class SentryLogger extends LoggerBase {
46
46
  const { beforeSend, ...restOptions } = options;
47
47
  Sentry.init({
48
48
  ...restOptions,
49
- beforeSend: async (event: ErrorEvent, hint: Sentry.EventHint) => {
49
+ beforeSend: async (event: Sentry.Event, hint: Sentry.EventHint) => {
50
50
  if (this.mute) return null;
51
51
  await this.sendMemoryInfo(event);
52
52
  return beforeSend ? beforeSend(event, hint) : event;
@@ -170,9 +170,7 @@ export class SentryLogger extends LoggerBase {
170
170
  }
171
171
  if (additionalData) {
172
172
  if (additionalData.message) logMessage += ` - ${additionalData.message}`;
173
- try {
174
- scope.setExtra(contextKeys.ADDITIONAL_DATA, JSON.stringify(additionalData));
175
- } catch {}
173
+ scope.setExtra(contextKeys.ADDITIONAL_DATA, JSON.stringify(additionalData));
176
174
  }
177
175
  Sentry.captureMessage(logMessage, level);
178
176
  });
@@ -100,7 +100,7 @@ export class MenuAndContentContainer<T extends string = string>
100
100
  * Handles opening with mouse.
101
101
  * @param event mouse event
102
102
  */
103
- onMouseDown = (event: MouseEvent) => {
103
+ onMouseMove = (event: MouseEvent) => {
104
104
  const menu = this.menu.current!;
105
105
  if (this.isMenuAvailable() && !menu.isOpen()) {
106
106
  menu.open();
@@ -108,30 +108,6 @@ export class MenuAndContentContainer<T extends string = string>
108
108
  }
109
109
  };
110
110
 
111
- /**
112
- * Handles hover with mouse.
113
- * @param event mouse event
114
- */
115
- onMouseEnter = (event: MouseEvent) => {
116
- const menu = this.menu.current!;
117
- if (this.isMenuAvailable() && !menu.isOpen() && menu.mrcuEnter) {
118
- menu.mrcuEnter();
119
- stopEvent(event);
120
- }
121
- };
122
-
123
- /**
124
- * Handles hover end with mouse.
125
- * @param event mouse event
126
- */
127
- onMouseLeave = (event: MouseEvent) => {
128
- const menu = this.menu.current!;
129
- if (this.isMenuAvailable() && !menu.isOpen() && menu.mrcuLeave) {
130
- menu.mrcuLeave();
131
- stopEvent(event);
132
- }
133
- };
134
-
135
111
  /**
136
112
  * Handles adding/removing mouse listeners based on whether the mouse is used or not.
137
113
  * @param event mouse active event
@@ -161,9 +137,7 @@ export class MenuAndContentContainer<T extends string = string>
161
137
  if (!this.listensToMouse) {
162
138
  this.listensToMouse = true;
163
139
  if (!this.menu.current!.isOpen()) this.mouseTriggerElementDisplayToggler.show();
164
- this.mouseTriggerElement.current!.addEventListener('mousedown', this.onMouseDown);
165
- this.mouseTriggerElement.current!.addEventListener('mouseenter', this.onMouseEnter);
166
- this.mouseTriggerElement.current!.addEventListener('mouseleave', this.onMouseLeave);
140
+ this.mouseTriggerElement.current!.addEventListener('mousemove', this.onMouseMove);
167
141
  }
168
142
  }
169
143
 
@@ -174,9 +148,7 @@ export class MenuAndContentContainer<T extends string = string>
174
148
  if (this.listensToMouse) {
175
149
  this.listensToMouse = false;
176
150
  if (!this.menu.current!.isOpen()) this.mouseTriggerElementDisplayToggler.hide();
177
- this.mouseTriggerElement.current!.removeEventListener('mousedown', this.onMouseDown);
178
- this.mouseTriggerElement.current!.removeEventListener('mouseenter', this.onMouseEnter);
179
- this.mouseTriggerElement.current!.removeEventListener('mouseleave', this.onMouseLeave);
151
+ this.mouseTriggerElement.current!.removeEventListener('mousemove', this.onMouseMove);
180
152
  }
181
153
  }
182
154
 
@@ -112,14 +112,6 @@ export interface Menu<
112
112
  * Function to close the menu.
113
113
  */
114
114
  close(): void,
115
- /**
116
- * Function for "hover" effect on the menu.
117
- */
118
- mrcuEnter?(): void,
119
- /**
120
- * Function for ending "hover" effect on the menu.
121
- */
122
- mrcuLeave?(): void,
123
115
  /**
124
116
  * Renders new menu items.
125
117
  * @param items new items to render
@@ -9,10 +9,7 @@ sidebar_label: Modal Service
9
9
  A component which helps managing modal windows. Handles rendering and focus management.
10
10
 
11
11
  ## Props
12
- - ```ref``` - the reference to the modal service instance
13
- - ```className``` - custom class name for modal service div
14
- - ```isFocusable``` - whether is modal focusable or not
15
- - ```onCloseLastModal``` - function called when the last modal is closed
12
+ - ref - the reference to the modal service instance
16
13
 
17
14
  ## Provided functionality
18
15
  - exports interface which needs to be implemented by the modal component
@@ -1,36 +1,27 @@
1
- import { Component, createRef, Reference, clearNode, DeclareProps } from '@24i/bigscreen-sdk/jsx';
1
+ import { Component, createRef, Reference, clearNode } from '@24i/bigscreen-sdk/jsx';
2
2
  import {
3
3
  setActiveElementAsFocusCandidate, focusCandidate, refocusAfterHashChange,
4
4
  } from '@24i/bigscreen-sdk/focus';
5
- import { noop } from '@24i/bigscreen-sdk/utils';
6
5
  import { IModal } from './IModal';
7
6
  import './ModalService.styles';
8
7
 
9
8
  type Props = {
10
9
  className?: string;
11
10
  isFocusable?: boolean;
12
- onCloseLastModal?: Function,
13
11
  };
14
12
 
15
- type RenderFunction = (ref:Reference) => JSX.Element;
16
-
17
13
  export class ModalService extends Component<Props> {
18
14
  private openState = false;
19
15
 
20
16
  private readonly rootRef = createRef<HTMLDivElement>();
21
17
 
22
- private readonly modalQueue: RenderFunction[] = [];
23
-
24
18
  modalRef = createRef<any>();
25
19
 
26
20
  static defaultProps = {
27
21
  className: '',
28
22
  isFocusable: true,
29
- onCloseLastModal: noop,
30
23
  };
31
24
 
32
- declare props: DeclareProps<Props, typeof ModalService.defaultProps>;
33
-
34
25
  componentDidMount() {
35
26
  window.addEventListener('hashchange', this.onHashChange);
36
27
  }
@@ -46,22 +37,10 @@ export class ModalService extends Component<Props> {
46
37
  };
47
38
 
48
39
  getMountedComponent() {
49
- return this.modalRef as Reference<IModal>;
50
- }
51
-
52
- private enqueueModal(modal: RenderFunction) {
53
- this.modalQueue.push(modal);
40
+ return this.modalRef;
54
41
  }
55
42
 
56
- private dequeueModal() {
57
- return this.modalQueue.shift();
58
- }
59
-
60
- open<T extends IModal>(render: (ref: Reference<T>) => JSX.Element, queueModal = false) {
61
- if (queueModal && this.openState) {
62
- this.enqueueModal(render);
63
- return;
64
- }
43
+ open<T extends IModal>(render: (ref: Reference<T>) => JSX.Element) {
65
44
  const { isFocusable } = this.props;
66
45
  this.openState = true;
67
46
  this.clearMount(
@@ -74,16 +53,13 @@ export class ModalService extends Component<Props> {
74
53
  }
75
54
  }
76
55
 
77
- close(ignoreQueue = false) {
78
- const { isFocusable, onCloseLastModal } = this.props;
56
+ close() {
57
+ const { isFocusable } = this.props;
79
58
  this.openState = false;
80
59
  clearNode(this.rootRef);
81
60
  if (isFocusable) {
82
61
  focusCandidate();
83
62
  }
84
- const modalFromQueue = this.dequeueModal();
85
- if (modalFromQueue && !ignoreQueue) this.open(modalFromQueue);
86
- if (!this.modalQueue.length) onCloseLastModal();
87
63
  }
88
64
 
89
65
  isOpen() {